From 25a6458734a46c680bef60d703ebd262b20f1732 Mon Sep 17 00:00:00 2001 From: Jonathan Pelham Date: Wed, 19 Jan 2022 17:00:47 +0000 Subject: [PATCH 0001/1025] added binder link --- README.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.rst b/README.rst index 4010ecffe..a7d5ed77d 100644 --- a/README.rst +++ b/README.rst @@ -22,6 +22,18 @@ Python Control Systems Library The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems. + +Have a go now! +====== +Try out the examples in the examples folder using the binder service. + +.. image:: https://mybinder.org/badge_logo.svg + :target: https://mybinder.org/v2/gh/python-control/python-control/HEAD + + + + + Features -------- From 2d7becbcfde4d48c104cb24a332819c776e56fa6 Mon Sep 17 00:00:00 2001 From: Andrii Oriekhov Date: Sat, 5 Mar 2022 15:43:58 +0200 Subject: [PATCH 0002/1025] add GitHub URL for PyPi --- setup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.py b/setup.py index f5e766ebb..a8609148e 100644 --- a/setup.py +++ b/setup.py @@ -34,6 +34,9 @@ author='Python Control Developers', author_email='python-control-developers@lists.sourceforge.net', url='http://python-control.org', + project_urls={ + 'Source': 'https://github.com/python-control/python-control', + }, description='Python Control Systems Library', long_description=long_description, packages=find_packages(exclude=['benchmarks']), From e5a7d820247c8c78d0f95ff1be3fdc3bd763235d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 28 May 2022 09:18:22 -0700 Subject: [PATCH 0003/1025] update python-package-conda workflow to use conda instead of conda-forge --- .github/workflows/python-package-conda.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 3f1910697..0744906a7 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -38,13 +38,12 @@ jobs: pip install coveralls # Install python-control dependencies - # use conda-forge until https://github.com/numpy/numpy/issues/20233 is resolved - conda install -c conda-forge numpy matplotlib scipy + conda install numpy matplotlib scipy if [[ '${{matrix.slycot}}' == 'conda' ]]; then conda install -c conda-forge slycot fi if [[ '${{matrix.pandas}}' == 'conda' ]]; then - conda install -c conda-forge pandas + conda install pandas fi - name: Test with pytest From ca8cd0e1103bd886bd9a10650d1efaaea0fac185 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 28 May 2022 10:04:16 -0700 Subject: [PATCH 0004/1025] fix README.rst for twine --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index a7d5ed77d..f1feda7c5 100644 --- a/README.rst +++ b/README.rst @@ -24,7 +24,7 @@ operations for analysis and design of feedback control systems. Have a go now! -====== +============== Try out the examples in the examples folder using the binder service. .. image:: https://mybinder.org/badge_logo.svg From e8e87a47e045739c08aea6c7e0dc91eb1ee24b7e Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 30 May 2022 22:44:56 -0500 Subject: [PATCH 0005/1025] Add passivity module, is_passive function, and passivity_test. --- control/passivity.py | 54 +++++++++++++++++++++++++++++++++ control/tests/passivity_test.py | 25 +++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 control/passivity.py create mode 100644 control/tests/passivity_test.py diff --git a/control/passivity.py b/control/passivity.py new file mode 100644 index 000000000..f33f7ff09 --- /dev/null +++ b/control/passivity.py @@ -0,0 +1,54 @@ +''' +Author: Mark Yeatman +Date: May 15, 2022 +''' + +from . import statesp as ss +from sympy import symbols, Matrix, symarray +from lmi_sdp import LMI_NSD, to_cvxopt +from cvxopt import solvers + +import numpy as np + + +def is_passive(sys): + ''' + Indicates if a linear time invarient system is passive + + Constructs a linear matrix inequality and a feasibility optimization + such that is a solution exists, the system is passive. + + The source for the algorithm is: + McCourt, Michael J., and Panos J. Antsaklis. "Demonstrating passivity and dissipativity using computational methods." ISIS 8 (2013). + ''' + + A = sys.A + B = sys.B + C = sys.C + D = sys.D + + P = Matrix(symarray('p', A.shape)) + + # enforce symmetry in P + size = A.shape[0] + for i in range(0, size): + for j in range(0, size): + P[i, j] = P[j, i] + + # construct matrix for storage function x'*V*x + V = Matrix.vstack( + Matrix.hstack(A.T * P + P*A, P*B - C.T), + Matrix.hstack(B.T*P - C, Matrix(-D - D.T)) + ) + + # construct LMI, convert to form for feasibility solver + LMI_passivty = LMI_NSD(V, 0*V) + min_obj = 0 * symbols("x") + variables = V.free_symbols + solvers.options['show_progress'] = False + c, Gs, hs = to_cvxopt(min_obj, LMI_passivty, variables) + + # crunch feasibility solution + sol = solvers.sdp(c, Gs=Gs, hs=hs) + + return (sol["x"] is not None) diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py new file mode 100644 index 000000000..5041c4695 --- /dev/null +++ b/control/tests/passivity_test.py @@ -0,0 +1,25 @@ +''' +Author: Mark Yeatman +Date: May 30, 2022 +''' + +import pytest +import numpy +from control import ss, passivity +from sympy import Matrix + + +def test_is_passive(): + A = numpy.array([[0, 1], [-2, -2]]) + B = numpy.array([[0], [1]]) + C = numpy.array([[-1, 2]]) + D = numpy.array([[1.5]]) + sys = ss(A, B, C, D) + + assert(passivity.is_passive(sys)) + + D = -D + sys = ss(A, B, C, D) + + assert(not passivity.is_passive(sys)) + From 2eef6612a046b2982327a36ffe03beb4a0aa54f3 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 6 Jun 2022 14:32:02 -0500 Subject: [PATCH 0006/1025] Remove dependancies on lmi-sdp and sympy for is_passive. --- control/passivity.py | 53 +++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/control/passivity.py b/control/passivity.py index f33f7ff09..12c2c8ad7 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -4,11 +4,8 @@ ''' from . import statesp as ss -from sympy import symbols, Matrix, symarray -from lmi_sdp import LMI_NSD, to_cvxopt -from cvxopt import solvers - import numpy as np +import cvxopt as cvx def is_passive(sys): @@ -27,28 +24,38 @@ def is_passive(sys): C = sys.C D = sys.D - P = Matrix(symarray('p', A.shape)) - - # enforce symmetry in P - size = A.shape[0] - for i in range(0, size): - for j in range(0, size): - P[i, j] = P[j, i] - - # construct matrix for storage function x'*V*x - V = Matrix.vstack( - Matrix.hstack(A.T * P + P*A, P*B - C.T), - Matrix.hstack(B.T*P - C, Matrix(-D - D.T)) + def make_LMI_matrix(P): + V = np.vstack(( + np.hstack((A.T @ P + P@A, P@B)), + np.hstack((B.T@P, np.zeros_like(D)))) + ) + return V + + P = np.zeros_like(A) + matrix_list = [] + state_space_size = A.shape[0] + for i in range(0, state_space_size): + for j in range(0, state_space_size): + if j <= i: + P = P*0.0 + P[i, j] = 1.0 + P[j, i] = 1.0 + matrix_list.append(make_LMI_matrix(P).flatten()) + + coefficents = np.vstack(matrix_list).T + + constants = -np.vstack(( + np.hstack((np.zeros_like(A), - C.T)), + np.hstack((- C, -D - D.T))) ) - # construct LMI, convert to form for feasibility solver - LMI_passivty = LMI_NSD(V, 0*V) - min_obj = 0 * symbols("x") - variables = V.free_symbols - solvers.options['show_progress'] = False - c, Gs, hs = to_cvxopt(min_obj, LMI_passivty, variables) + number_of_opt_vars = int( + (state_space_size**2-state_space_size)/2 + state_space_size) + c = cvx.matrix(0.0, (number_of_opt_vars, 1)) # crunch feasibility solution - sol = solvers.sdp(c, Gs=Gs, hs=hs) + sol = cvx.solvers.sdp(c, + Gs=[cvx.matrix(coefficents)], + hs=[cvx.matrix(constants)]) return (sol["x"] is not None) From 147a24ea0ba9da03b3774b7993e20e785776e027 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 6 Jun 2022 14:37:53 -0500 Subject: [PATCH 0007/1025] Use sys.nstates in stead of using A.shape[0] --- control/passivity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/passivity.py b/control/passivity.py index 12c2c8ad7..2bc00f958 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -33,7 +33,7 @@ def make_LMI_matrix(P): P = np.zeros_like(A) matrix_list = [] - state_space_size = A.shape[0] + state_space_size = sys.nstates for i in range(0, state_space_size): for j in range(0, state_space_size): if j <= i: From fdb2d4ad6bf15d7565347528a69a99ce4e121fda Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 6 Jun 2022 14:58:51 -0500 Subject: [PATCH 0008/1025] Attempt to setup cvxopt similar to slycot. --- .github/workflows/python-package-conda.yml | 4 ++++ control/exception.py | 12 ++++++++++++ control/tests/conftest.py | 2 ++ control/tests/passivity_test.py | 4 ++-- setup.py | 3 ++- 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 3f1910697..e4b1aea42 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -13,6 +13,7 @@ jobs: python-version: [3.7, 3.9] slycot: ["", "conda"] pandas: [""] + cvxopt: ["conda"] array-and-matrix: [0] include: - python-version: 3.9 @@ -46,6 +47,9 @@ jobs: if [[ '${{matrix.pandas}}' == 'conda' ]]; then conda install -c conda-forge pandas fi + if [[ '${{matrix.cvxopt}}' == 'conda' ]]; then + conda install -c conda-forge cvxopt + fi - name: Test with pytest env: diff --git a/control/exception.py b/control/exception.py index f66eb7f30..d14ff87e6 100644 --- a/control/exception.py +++ b/control/exception.py @@ -84,3 +84,15 @@ def pandas_check(): except: pandas_installed = False return pandas_installed + +# Utility function to see if cvxopt is installed +cvxopt_installed = None +def cvxopt_check(): + global cvxopt_installed + if cvxopt_installed is None: + try: + import cvxopt + cvxopt_installed = True + except: + cvxopt_installed = False + return cvxopt_installed \ No newline at end of file diff --git a/control/tests/conftest.py b/control/tests/conftest.py index b67ef3674..853c1dd61 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -18,6 +18,8 @@ # pytest.param(marks=) slycotonly = pytest.mark.skipif(not control.exception.slycot_check(), reason="slycot not installed") +cvxoptonly = pytest.mark.skipif(not control.exception.cvxopt_check(), + reason="cvxopt not installed") noscipy0 = pytest.mark.skipif(StrictVersion(sp.__version__) < "1.0", reason="requires SciPy 1.0 or greater") nopython2 = pytest.mark.skipif(sys.version_info < (3, 0), diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 5041c4695..182e3923f 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -3,12 +3,12 @@ Date: May 30, 2022 ''' -import pytest import numpy from control import ss, passivity from sympy import Matrix +from control.tests.conftest import cvxoptonly - +@cvxoptonly def test_is_passive(): A = numpy.array([[0, 1], [-2, -2]]) B = numpy.array([[0], [1]]) diff --git a/setup.py b/setup.py index f5e766ebb..58e4d11cf 100644 --- a/setup.py +++ b/setup.py @@ -43,6 +43,7 @@ 'matplotlib'], extras_require={ 'test': ['pytest', 'pytest-timeout'], - 'slycot': [ 'slycot>=0.4.0' ] + 'slycot': [ 'slycot>=0.4.0' ], + 'cvxopt': [ 'cvxopt>=1.2.0' ] } ) From 04ef02dfec7a4b449f71712bc50cafe633d0f6ba Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 6 Jun 2022 21:48:39 -0700 Subject: [PATCH 0009/1025] handle t_eval for static systems in input_output_response (addresses #742) --- control/iosys.py | 13 +------------ control/tests/iosys_test.py | 31 ++++++++++++++++++++++--------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index e3719614b..6008cf43d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1762,19 +1762,8 @@ def input_output_response( warn("initial state too short; padding with zeros") X0 = np.hstack([X0, np.zeros(sys.nstates - X0.size)]) - # Check to make sure this is not a static function + # Compute the number of states nstates = _find_size(sys.nstates, X0) - if nstates == 0: - # No states => map input to output - u = U[0] if len(U.shape) == 1 else U[:, 0] - y = np.zeros((np.shape(sys._out(T[0], X0, u))[0], len(T))) - for i in range(len(T)): - u = U[i] if len(U.shape) == 1 else U[:, i] - y[:, i] = sys._out(T[i], [], u) - return TimeResponseData( - T, y, None, U, issiso=sys.issiso(), - output_labels=sys.output_index, input_labels=sys.input_index, - transpose=transpose, return_x=return_x, squeeze=squeeze) # create X0 if not given, test if X0 has correct shape X0 = _check_convert_array(X0, [(nstates,), (nstates, 1)], diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index ecb30c316..825cec5c5 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1763,27 +1763,40 @@ def test_input_output_broadcasting(): resp_bad = ct.input_output_response( sys, T, (U[0, :], U[:2, :-1]), [X0, P0]) - -def test_nonuniform_timepts(): +@pytest.mark.parametrize("nstates, ninputs, noutputs", [ + [2, 1, 1], + [4, 2, 3], + [0, 1, 1], # static function + [0, 3, 2], # static function +]) +def test_nonuniform_timepts(nstates, noutputs, ninputs): """Test non-uniform time points for simulations""" - sys = ct.LinearIOSystem(ct.rss(2, 1, 1)) + if nstates: + sys = ct.rss(nstates, noutputs, ninputs) + else: + sys = ct.ss( + [], np.zeros((0, ninputs)), np.zeros((noutputs, 0)), + np.random.rand(noutputs, ninputs)) # Start with a uniform set of times unifpts = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - uniform = [1, 2, 3, 2, 1, -1, -3, -5, -7, -3, 1] - t_unif, y_unif = ct.input_output_response(sys, unifpts, uniform) + uniform = np.outer( + np.ones(ninputs), [1, 2, 3, 2, 1, -1, -3, -5, -7, -3, 1]) + t_unif, y_unif = ct.input_output_response( + sys, unifpts, uniform, squeeze=False) # Create a non-uniform set of inputs noufpts = [0, 2, 4, 8, 10] - nonunif = [1, 3, 1, -7, 1] - t_nouf, y_nouf = ct.input_output_response(sys, noufpts, nonunif) + nonunif = np.outer(np.ones(ninputs), [1, 3, 1, -7, 1]) + t_nouf, y_nouf = ct.input_output_response( + sys, noufpts, nonunif, squeeze=False) # Make sure the outputs agree at common times - np.testing.assert_almost_equal(y_unif[noufpts], y_nouf, decimal=6) + np.testing.assert_almost_equal(y_unif[:, noufpts], y_nouf, decimal=6) # Resimulate using a new set of evaluation points t_even, y_even = ct.input_output_response( - sys, noufpts, nonunif, t_eval=unifpts) + sys, noufpts, nonunif, t_eval=unifpts, squeeze=False) np.testing.assert_almost_equal(y_unif, y_even, decimal=6) From dc46f3cf2c70a884661a1dbd2fa274ee99083c87 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 7 Jun 2022 11:48:36 -0400 Subject: [PATCH 0010/1025] Remove unused import. --- control/passivity.py | 1 - 1 file changed, 1 deletion(-) diff --git a/control/passivity.py b/control/passivity.py index 2bc00f958..f37443722 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -3,7 +3,6 @@ Date: May 15, 2022 ''' -from . import statesp as ss import numpy as np import cvxopt as cvx From 0ecc1354765cc7753d8a980ea2e70c9be79186b6 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 7 Jun 2022 11:49:47 -0400 Subject: [PATCH 0011/1025] Apply suggestions from code review Co-authored-by: Ben Greiner --- .github/workflows/python-package-conda.yml | 2 +- control/exception.py | 2 +- control/tests/passivity_test.py | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index e4b1aea42..c0e720ea8 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -13,7 +13,7 @@ jobs: python-version: [3.7, 3.9] slycot: ["", "conda"] pandas: [""] - cvxopt: ["conda"] + cvxopt: ["", "conda"] array-and-matrix: [0] include: - python-version: 3.9 diff --git a/control/exception.py b/control/exception.py index d14ff87e6..575c78c0a 100644 --- a/control/exception.py +++ b/control/exception.py @@ -95,4 +95,4 @@ def cvxopt_check(): cvxopt_installed = True except: cvxopt_installed = False - return cvxopt_installed \ No newline at end of file + return cvxopt_installed diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 182e3923f..947b5729c 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -5,7 +5,6 @@ import numpy from control import ss, passivity -from sympy import Matrix from control.tests.conftest import cvxoptonly @cvxoptonly From 649b21ee7e915fc8758413da04f4ec411ba58d61 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 7 Jun 2022 12:07:45 -0400 Subject: [PATCH 0012/1025] Update passivity.py --- control/passivity.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/control/passivity.py b/control/passivity.py index f37443722..17a64120d 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -4,8 +4,11 @@ ''' import numpy as np -import cvxopt as cvx +try: + import cvxopt as cvx +except ImportError as e: + cvx = None def is_passive(sys): ''' @@ -17,7 +20,9 @@ def is_passive(sys): The source for the algorithm is: McCourt, Michael J., and Panos J. Antsaklis. "Demonstrating passivity and dissipativity using computational methods." ISIS 8 (2013). ''' - + if cvx is None: + raise ModuleNotFoundError + A = sys.A B = sys.B C = sys.C From b73e6fe0eac04fc541056d3ee9430c767b6d126b Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 13 Jun 2022 14:19:36 -0500 Subject: [PATCH 0013/1025] Address some review comments. --- .github/workflows/python-package-conda.yml | 2 +- control/passivity.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index c0e720ea8..d8f810104 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: test-linux: - name: Python ${{ matrix.python-version }}${{ matrix.slycot && format(' with Slycot from {0}', matrix.slycot) || ' without Slycot' }}${{ matrix.pandas && ', with pandas' || '' }}${{ matrix.array-and-matrix == 1 && ', array and matrix' || '' }} + name: Python ${{ matrix.python-version }}${{ matrix.slycot && format(' with Slycot from {0}', matrix.slycot) || ' without Slycot' }}${{ matrix.pandas && ', with pandas' || '' }}${{ matrix.array-and-matrix == 1 && ', array and matrix' || '' }}${{ matrix.cvxopt && format(' with cvxopt from {0}', matrix.cvxopt) || ' without cvxopt' }} runs-on: ubuntu-latest strategy: diff --git a/control/passivity.py b/control/passivity.py index 17a64120d..109a75356 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -10,6 +10,7 @@ except ImportError as e: cvx = None + def is_passive(sys): ''' Indicates if a linear time invarient system is passive @@ -18,11 +19,13 @@ def is_passive(sys): such that is a solution exists, the system is passive. The source for the algorithm is: - McCourt, Michael J., and Panos J. Antsaklis. "Demonstrating passivity and dissipativity using computational methods." ISIS 8 (2013). + McCourt, Michael J., and Panos J. Antsaklis. + "Demonstrating passivity and dissipativity using computational methods." ISIS 8 (2013). ''' if cvx is None: + print("cvxopt required for passivity module") raise ModuleNotFoundError - + A = sys.A B = sys.B C = sys.C @@ -35,13 +38,12 @@ def make_LMI_matrix(P): ) return V - P = np.zeros_like(A) matrix_list = [] state_space_size = sys.nstates for i in range(0, state_space_size): for j in range(0, state_space_size): if j <= i: - P = P*0.0 + P = np.zeros_like(A) P[i, j] = 1.0 P[j, i] = 1.0 matrix_list.append(make_LMI_matrix(P).flatten()) From cd7ec0fce4cc73954d2c3769adff0373b9ef62b2 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 13 Jun 2022 14:56:35 -0500 Subject: [PATCH 0014/1025] Update control/passivity.py Co-authored-by: Ben Greiner --- control/passivity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/passivity.py b/control/passivity.py index 109a75356..3d376f392 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -24,7 +24,7 @@ def is_passive(sys): ''' if cvx is None: print("cvxopt required for passivity module") - raise ModuleNotFoundError + raise ModuleNotFoundError("cvxopt required for passivity module") A = sys.A B = sys.B From d65f1d230baa84cf3c74378a1505f6eea5093439 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 13 Jun 2022 15:01:52 -0500 Subject: [PATCH 0015/1025] Remove duplicate "print" statement. --- control/passivity.py | 1 - 1 file changed, 1 deletion(-) diff --git a/control/passivity.py b/control/passivity.py index 3d376f392..a87e07730 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -23,7 +23,6 @@ def is_passive(sys): "Demonstrating passivity and dissipativity using computational methods." ISIS 8 (2013). ''' if cvx is None: - print("cvxopt required for passivity module") raise ModuleNotFoundError("cvxopt required for passivity module") A = sys.A From 7e79c822d069ba13c77c210c4a9975168bea3b3b Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 13 Jun 2022 15:36:56 -0500 Subject: [PATCH 0016/1025] Fix grammar in doc string. --- control/passivity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/passivity.py b/control/passivity.py index a87e07730..df99ee20c 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -16,7 +16,7 @@ def is_passive(sys): Indicates if a linear time invarient system is passive Constructs a linear matrix inequality and a feasibility optimization - such that is a solution exists, the system is passive. + such that if a solution exists, the system is passive. The source for the algorithm is: McCourt, Michael J., and Panos J. Antsaklis. From c57b928528df7573d47651abc8db9043a2e26d5c Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 13 Jun 2022 17:08:48 -0500 Subject: [PATCH 0017/1025] Another grammar in doc string fix. --- control/passivity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/passivity.py b/control/passivity.py index df99ee20c..ad032d60b 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -13,7 +13,7 @@ def is_passive(sys): ''' - Indicates if a linear time invarient system is passive + Indicates if a linear time invariant system is passive Constructs a linear matrix inequality and a feasibility optimization such that if a solution exists, the system is passive. From 27487a9707d0ea28e41358f36e815eff792a2990 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 13 Jun 2022 19:39:29 -0500 Subject: [PATCH 0018/1025] Address edge case of stricly proper systems. --- control/passivity.py | 6 ++++++ control/tests/passivity_test.py | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/control/passivity.py b/control/passivity.py index ad032d60b..1d981c9de 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -10,6 +10,7 @@ except ImportError as e: cvx = None +lmi_epsilon = 1e-12 def is_passive(sys): ''' @@ -30,6 +31,10 @@ def is_passive(sys): C = sys.C D = sys.D + #account for strictly proper systems + [n,m] = D.shape + D = D + np.nextafter(0,1)*np.eye(n,m) + def make_LMI_matrix(P): V = np.vstack(( np.hstack((A.T @ P + P@A, P@B)), @@ -59,6 +64,7 @@ def make_LMI_matrix(P): c = cvx.matrix(0.0, (number_of_opt_vars, 1)) # crunch feasibility solution + cvx.solvers.options['show_progress'] = False sol = cvx.solvers.sdp(c, Gs=[cvx.matrix(coefficents)], hs=[cvx.matrix(constants)]) diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 947b5729c..79197866f 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -15,10 +15,22 @@ def test_is_passive(): D = numpy.array([[1.5]]) sys = ss(A, B, C, D) + # happy path is passive assert(passivity.is_passive(sys)) + # happy path not passive D = -D sys = ss(A, B, C, D) assert(not passivity.is_passive(sys)) + #edge cases of D=0 boundary condition + B *= 0 + C *= 0 + D *= 0 + sys = ss(A, B, C, D) + assert(passivity.is_passive(sys)) + + A = A*1e12 + sys = ss(A, B, C, D) + assert(passivity.is_passive(sys)) \ No newline at end of file From d6916c661a7799e5998f84f5e2d34368ace528a8 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 14 Jun 2022 06:46:56 -0500 Subject: [PATCH 0019/1025] Expand unit tests, add info to doc string for parameters and returns, rename is_passive to ispassive for naming convention consistency. Autoformat to pep8. --- control/passivity.py | 21 +++++++++++----- control/tests/passivity_test.py | 43 +++++++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 14 deletions(-) diff --git a/control/passivity.py b/control/passivity.py index 1d981c9de..b00cc6b65 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -10,11 +10,10 @@ except ImportError as e: cvx = None -lmi_epsilon = 1e-12 -def is_passive(sys): +def ispassive(sys): ''' - Indicates if a linear time invariant system is passive + Indicates if a linear time invariant (LTI) system is passive Constructs a linear matrix inequality and a feasibility optimization such that if a solution exists, the system is passive. @@ -22,6 +21,16 @@ def is_passive(sys): The source for the algorithm is: McCourt, Michael J., and Panos J. Antsaklis. "Demonstrating passivity and dissipativity using computational methods." ISIS 8 (2013). + + Parameters + ---------- + sys: A continuous LTI system + System to be checked. + + Returns + ------- + bool: + The input system passive. ''' if cvx is None: raise ModuleNotFoundError("cvxopt required for passivity module") @@ -31,9 +40,9 @@ def is_passive(sys): C = sys.C D = sys.D - #account for strictly proper systems - [n,m] = D.shape - D = D + np.nextafter(0,1)*np.eye(n,m) + # account for strictly proper systems + [n, m] = D.shape + D = D + np.nextafter(0, 1)*np.eye(n, m) def make_LMI_matrix(P): V = np.vstack(( diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 79197866f..171d3c542 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -7,8 +7,9 @@ from control import ss, passivity from control.tests.conftest import cvxoptonly + @cvxoptonly -def test_is_passive(): +def test_ispassive(): A = numpy.array([[0, 1], [-2, -2]]) B = numpy.array([[0], [1]]) C = numpy.array([[-1, 2]]) @@ -16,21 +17,47 @@ def test_is_passive(): sys = ss(A, B, C, D) # happy path is passive - assert(passivity.is_passive(sys)) + assert(passivity.ispassive(sys)) # happy path not passive D = -D sys = ss(A, B, C, D) - assert(not passivity.is_passive(sys)) + assert(not passivity.ispassive(sys)) + + +@cvxoptonly +def test_ispassive_edge_cases(): + A = numpy.array([[0, 1], [-2, -2]]) + B = numpy.array([[0], [1]]) + C = numpy.array([[-1, 2]]) + D = numpy.array([[1.5]]) - #edge cases of D=0 boundary condition - B *= 0 - C *= 0 D *= 0 + + # strictly proper sys = ss(A, B, C, D) - assert(passivity.is_passive(sys)) + assert(passivity.ispassive(sys)) + # ill conditioned A = A*1e12 sys = ss(A, B, C, D) - assert(passivity.is_passive(sys)) \ No newline at end of file + assert(passivity.ispassive(sys)) + + # different combinations of zero A,B,C,D are 0 + B *= 0 + C *= 0 + assert(passivity.ispassive(sys)) + + A *= 0 + B = numpy.array([[0], [1]]) + C = numpy.array([[-1, 2]]) + D = numpy.array([[1.5]]) + assert(passivity.ispassive(sys)) + + B *= 0 + C *= 0 + assert(passivity.ispassive(sys)) + + A *= 0 + assert(passivity.ispassive(sys)) From bb16be01ff70919971d990a3228b6ff96b9b8182 Mon Sep 17 00:00:00 2001 From: mark-yeatman Date: Tue, 14 Jun 2022 11:26:30 -0400 Subject: [PATCH 0020/1025] Parameterize unit tests. Catch edge case of A=0. --- control/passivity.py | 7 +++-- control/tests/passivity_test.py | 53 +++++++++++++-------------------- 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/control/passivity.py b/control/passivity.py index b00cc6b65..b2cf5a09e 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -44,6 +44,9 @@ def ispassive(sys): [n, m] = D.shape D = D + np.nextafter(0, 1)*np.eye(n, m) + [n, _] = A.shape + A = A - np.nextafter(0, 1)*np.eye(n) + def make_LMI_matrix(P): V = np.vstack(( np.hstack((A.T @ P + P@A, P@B)), @@ -75,7 +78,7 @@ def make_LMI_matrix(P): # crunch feasibility solution cvx.solvers.options['show_progress'] = False sol = cvx.solvers.sdp(c, - Gs=[cvx.matrix(coefficents)], - hs=[cvx.matrix(constants)]) + Gs=[cvx.matrix(coefficents)], + hs=[cvx.matrix(constants)]) return (sol["x"] is not None) diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 171d3c542..d413f6fa5 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -2,7 +2,7 @@ Author: Mark Yeatman Date: May 30, 2022 ''' - +import pytest import numpy from control import ss, passivity from control.tests.conftest import cvxoptonly @@ -25,39 +25,26 @@ def test_ispassive(): assert(not passivity.ispassive(sys)) - +A_d = numpy.array([[-2, 0], [0, 0]]) +A = numpy.array([[-3, 0], [0, -2]]) +B = numpy.array([[0], [1]]) +C = numpy.array([[-1, 2]]) +D = numpy.array([[1.5]]) @cvxoptonly -def test_ispassive_edge_cases(): - A = numpy.array([[0, 1], [-2, -2]]) - B = numpy.array([[0], [1]]) - C = numpy.array([[-1, 2]]) - D = numpy.array([[1.5]]) - - D *= 0 +@pytest.mark.parametrize( + "test_input,expected", + [((A,B,C,D*0.0), True), + ((A_d,B,C,D), True), + ((A*1e12,B,C,D*0), True), + ((A,B*0,C*0,D), True), + ((A*0,B,C,D), True), + ((A*0,B*0,C*0,D*0), True)]) +def test_ispassive_edge_cases(test_input, expected): # strictly proper + A = test_input[0] + B = test_input[1] + C = test_input[2] + D = test_input[3] sys = ss(A, B, C, D) - assert(passivity.ispassive(sys)) - - # ill conditioned - A = A*1e12 - sys = ss(A, B, C, D) - assert(passivity.ispassive(sys)) - - # different combinations of zero A,B,C,D are 0 - B *= 0 - C *= 0 - assert(passivity.ispassive(sys)) - - A *= 0 - B = numpy.array([[0], [1]]) - C = numpy.array([[-1, 2]]) - D = numpy.array([[1.5]]) - assert(passivity.ispassive(sys)) - - B *= 0 - C *= 0 - assert(passivity.ispassive(sys)) - - A *= 0 - assert(passivity.ispassive(sys)) + assert(passivity.ispassive(sys)==expected) From cf0eac302a71897424ba8eeffd6b591cfbe1cde0 Mon Sep 17 00:00:00 2001 From: mark-yeatman Date: Tue, 14 Jun 2022 11:35:13 -0400 Subject: [PATCH 0021/1025] Run autopep8. --- control/passivity.py | 4 ++-- control/tests/passivity_test.py | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/control/passivity.py b/control/passivity.py index b2cf5a09e..60b081826 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -78,7 +78,7 @@ def make_LMI_matrix(P): # crunch feasibility solution cvx.solvers.options['show_progress'] = False sol = cvx.solvers.sdp(c, - Gs=[cvx.matrix(coefficents)], - hs=[cvx.matrix(constants)]) + Gs=[cvx.matrix(coefficents)], + hs=[cvx.matrix(constants)]) return (sol["x"] is not None) diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index d413f6fa5..681d2f527 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -25,20 +25,23 @@ def test_ispassive(): assert(not passivity.ispassive(sys)) + A_d = numpy.array([[-2, 0], [0, 0]]) A = numpy.array([[-3, 0], [0, -2]]) B = numpy.array([[0], [1]]) C = numpy.array([[-1, 2]]) D = numpy.array([[1.5]]) + + @cvxoptonly @pytest.mark.parametrize( - "test_input,expected", - [((A,B,C,D*0.0), True), - ((A_d,B,C,D), True), - ((A*1e12,B,C,D*0), True), - ((A,B*0,C*0,D), True), - ((A*0,B,C,D), True), - ((A*0,B*0,C*0,D*0), True)]) + "test_input,expected", + [((A, B, C, D*0.0), True), + ((A_d, B, C, D), True), + ((A*1e12, B, C, D*0), True), + ((A, B*0, C*0, D), True), + ((A*0, B, C, D), True), + ((A*0, B*0, C*0, D*0), True)]) def test_ispassive_edge_cases(test_input, expected): # strictly proper @@ -47,4 +50,4 @@ def test_ispassive_edge_cases(test_input, expected): C = test_input[2] D = test_input[3] sys = ss(A, B, C, D) - assert(passivity.ispassive(sys)==expected) + assert(passivity.ispassive(sys) == expected) From 7e47d8060c49dd89b52fc62e849da7c521a51119 Mon Sep 17 00:00:00 2001 From: mark-yeatman Date: Wed, 15 Jun 2022 21:22:54 -0400 Subject: [PATCH 0022/1025] Add wrapper like functionality for ispassive(), so that it can be called in an object oriented style as a LTI class member. Added unit tests for transfer function and oo style calls. Ran autopep8 on lti.py. --- control/lti.py | 18 +++++++++++++----- control/passivity.py | 3 +++ control/tests/passivity_test.py | 22 +++++++++++++++++++++- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/control/lti.py b/control/lti.py index fdb4946cd..4f6624748 100644 --- a/control/lti.py +++ b/control/lti.py @@ -13,6 +13,7 @@ """ import numpy as np + from numpy import absolute, real, angle, abs from warnings import warn from . import config @@ -21,6 +22,7 @@ __all__ = ['poles', 'zeros', 'damp', 'evalfr', 'frequency_response', 'freqresp', 'dcgain', 'pole', 'zero'] + class LTI(NamedIOSystem): """LTI is a parent class to linear time-invariant (LTI) system objects. @@ -44,6 +46,7 @@ class LTI(NamedIOSystem): Note: dt processing has been moved to the NamedIOSystem class. """ + def __init__(self, inputs=1, outputs=1, states=None, name=None, **kwargs): """Assign the LTI object's numbers of inputs and ouputs.""" super().__init__( @@ -71,8 +74,7 @@ def _set_inputs(self, value): #: Deprecated inputs = property( - _get_inputs, _set_inputs, doc= - """ + _get_inputs, _set_inputs, doc=""" Deprecated attribute; use :attr:`ninputs` instead. The ``inputs`` attribute was used to store the number of system @@ -94,8 +96,7 @@ def _set_outputs(self, value): #: Deprecated outputs = property( - _get_outputs, _set_outputs, doc= - """ + _get_outputs, _set_outputs, doc=""" Deprecated attribute; use :attr:`noutputs` instead. The ``outputs`` attribute was used to store the number of system @@ -201,6 +202,11 @@ def _dcgain(self, warn_infinite): else: return zeroresp + def ispassive(self): + # importing here prevents circular dependancy + from control.passivity import ispassive + ispassive(self) + # # Deprecated functions # @@ -321,7 +327,7 @@ def damp(sys, doprint=True): wn, damping, poles = sys.damp() if doprint: print('_____Eigenvalue______ Damping___ Frequency_') - for p, d, w in zip(poles, damping, wn) : + for p, d, w in zip(poles, damping, wn): if abs(p.imag) < 1e-12: print("%10.4g %10.4g %10.4g" % (p.real, 1.0, -p.real)) @@ -330,6 +336,7 @@ def damp(sys, doprint=True): (p.real, p.imag, d, w)) return wn, damping, poles + def evalfr(sys, x, squeeze=None): """Evaluate the transfer function of an LTI system for complex frequency x. @@ -388,6 +395,7 @@ def evalfr(sys, x, squeeze=None): """ return sys.__call__(x, squeeze=squeeze) + def frequency_response(sys, omega, squeeze=None): """Frequency response of an LTI system at multiple angular frequencies. diff --git a/control/passivity.py b/control/passivity.py index 60b081826..e833fbf96 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -4,6 +4,7 @@ ''' import numpy as np +from control import statesp as ss try: import cvxopt as cvx @@ -35,6 +36,8 @@ def ispassive(sys): if cvx is None: raise ModuleNotFoundError("cvxopt required for passivity module") + sys = ss._convert_to_statespace(sys) + A = sys.A B = sys.B C = sys.C diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 681d2f527..09ef42b4a 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -4,7 +4,7 @@ ''' import pytest import numpy -from control import ss, passivity +from control import ss, passivity, tf from control.tests.conftest import cvxoptonly @@ -51,3 +51,23 @@ def test_ispassive_edge_cases(test_input, expected): D = test_input[3] sys = ss(A, B, C, D) assert(passivity.ispassive(sys) == expected) + + +def test_transfer_function(): + sys = tf([1], [1, -2]) + assert(passivity.ispassive(sys)) + + sys = tf([1], [1, 2]) + assert(not passivity.ispassive(sys)) + + +def test_oo_style(): + A = numpy.array([[0, 1], [-2, -2]]) + B = numpy.array([[0], [1]]) + C = numpy.array([[-1, 2]]) + D = numpy.array([[1.5]]) + sys = ss(A, B, C, D) + assert(sys.ispassive()) + + sys = tf([1], [1, -2]) + assert(sys.ispassive()) From d4ee3be8f1ff8d655bf40cbe3e70ca2a53302cec Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 16 Jun 2022 11:37:16 +0200 Subject: [PATCH 0023/1025] clean from old scipyy<1.3 and python2 code --- control/tests/conftest.py | 13 ++++--------- control/tests/flatsys_test.py | 11 ++++------- control/tests/iosys_test.py | 19 +------------------ control/tests/timeresp_test.py | 10 ++-------- control/tests/xferfcn_test.py | 6 ++---- doc/intro.rst | 2 +- setup.py | 2 +- 7 files changed, 15 insertions(+), 48 deletions(-) diff --git a/control/tests/conftest.py b/control/tests/conftest.py index b67ef3674..ca878337e 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -1,7 +1,6 @@ """conftest.py - pytest local plugins and fixtures""" from contextlib import contextmanager -from distutils.version import StrictVersion import os import sys @@ -18,10 +17,6 @@ # pytest.param(marks=) slycotonly = pytest.mark.skipif(not control.exception.slycot_check(), reason="slycot not installed") -noscipy0 = pytest.mark.skipif(StrictVersion(sp.__version__) < "1.0", - reason="requires SciPy 1.0 or greater") -nopython2 = pytest.mark.skipif(sys.version_info < (3, 0), - reason="requires Python 3+") matrixfilter = pytest.mark.filterwarnings("ignore:.*matrix subclass:" "PendingDeprecationWarning") matrixerrorfilter = pytest.mark.filterwarnings("error:.*matrix subclass:" @@ -110,10 +105,10 @@ def editsdefaults(): @pytest.fixture(scope="function") def mplcleanup(): - """Workaround for python2 - - python 2 does not like to mix the original mpl decorator with pytest - fixtures. So we roll our own. + """Clean up any plots and changes a test may have made to matplotlib. + + compare matplotlib.testing.decorators.cleanup() but as a fixture instead + of a decorator. """ save = mpl.units.registry.copy() try: diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index a12852759..e3584d459 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -8,8 +8,6 @@ created for that purpose. """ -from distutils.version import StrictVersion - import numpy as np import pytest import scipy as sp @@ -118,11 +116,10 @@ def test_kinematic_car(self, vehicle_flat, poly): resp = ct.input_output_response(vehicle_flat, T, ud, x0) np.testing.assert_array_almost_equal(resp.states, xd, decimal=2) - # For SciPy 1.0+, integrate equations and compare to desired - if StrictVersion(sp.__version__) >= "1.0": - t, y, x = ct.input_output_response( - vehicle_flat, T, ud, x0, return_x=True) - np.testing.assert_allclose(x, xd, atol=0.01, rtol=0.01) + # integrate equations and compare to desired + t, y, x = ct.input_output_response( + vehicle_flat, T, ud, x0, return_x=True) + np.testing.assert_allclose(x, xd, atol=0.01, rtol=0.01) def test_flat_default_output(self, vehicle_flat): # Construct a flat system with the default outputs diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 825cec5c5..db683e1a1 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -15,7 +15,7 @@ import control as ct from control import iosys as ios -from control.tests.conftest import noscipy0, matrixfilter +from control.tests.conftest import matrixfilter class TestIOSys: @@ -46,7 +46,6 @@ class TSys: return T - @noscipy0 def test_linear_iosys(self, tsys): # Create an input/output system from the linear system linsys = tsys.siso_linsys @@ -65,7 +64,6 @@ def test_linear_iosys(self, tsys): np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) - @noscipy0 def test_tf2io(self, tsys): # Create a transfer function from the state space system linsys = tsys.siso_linsys @@ -129,7 +127,6 @@ def test_iosys_print(self, tsys, capsys): ios_linearized = ios.linearize(ios_unspecified, [0, 0], [0]) print(ios_linearized) - @noscipy0 @pytest.mark.parametrize("ss", [ios.NonlinearIOSystem, ct.ss]) def test_nonlinear_iosys(self, tsys, ss): # Create a simple nonlinear I/O system @@ -236,7 +233,6 @@ def test_linearize_named_signals(self, kincar): assert lin_nocopy.find_output('x') is None assert lin_nocopy.find_state('x') is None - @noscipy0 def test_connect(self, tsys): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys @@ -294,7 +290,6 @@ def test_connect(self, tsys): np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.) - @noscipy0 @pytest.mark.parametrize( "connections, inplist, outlist", [pytest.param([[(1, 0), (0, 0, 1)]], [[(0, 0, 1)]], [[(1, 0, 1)]], @@ -338,7 +333,6 @@ def test_connect_spec_variants(self, tsys, connections, inplist, outlist): np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) - @noscipy0 @pytest.mark.parametrize( "connections, inplist, outlist", [pytest.param([['sys2.u[0]', 'sys1.y[0]']], @@ -375,7 +369,6 @@ def test_connect_spec_warnings(self, tsys, connections, inplist, outlist): np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) - @noscipy0 def test_static_nonlinearity(self, tsys): # Linear dynamical system linsys = tsys.siso_linsys @@ -400,7 +393,6 @@ def test_static_nonlinearity(self, tsys): np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=2) - @noscipy0 @pytest.mark.filterwarnings("ignore:Duplicate name::control.iosys") def test_algebraic_loop(self, tsys): # Create some linear and nonlinear systems to play with @@ -470,7 +462,6 @@ def test_algebraic_loop(self, tsys): with pytest.raises(RuntimeError): ios.input_output_response(*args) - @noscipy0 def test_summer(self, tsys): # Construct a MIMO system for testing linsys = tsys.mimo_linsys1 @@ -489,7 +480,6 @@ def test_summer(self, tsys): ios_t, ios_y = ios.input_output_response(iosys_parallel, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) - @noscipy0 def test_rmul(self, tsys): # Test right multiplication # TODO: replace with better tests when conversions are implemented @@ -510,7 +500,6 @@ def test_rmul(self, tsys): lti_t, lti_y = ct.forced_response(ioslin, T, U*U, X0) np.testing.assert_array_almost_equal(ios_y, lti_y*lti_y, decimal=3) - @noscipy0 def test_neg(self, tsys): """Test negation of a system""" @@ -533,7 +522,6 @@ def test_neg(self, tsys): lti_t, lti_y = ct.forced_response(ioslin, T, U*U, X0) np.testing.assert_array_almost_equal(ios_y, -lti_y, decimal=3) - @noscipy0 def test_feedback(self, tsys): # Set up parameters for simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 @@ -549,7 +537,6 @@ def test_feedback(self, tsys): lti_t, lti_y = ct.forced_response(linsys, T, U, X0) np.testing.assert_allclose(ios_y, lti_y,atol=0.002,rtol=0.) - @noscipy0 def test_bdalg_functions(self, tsys): """Test block diagram functions algebra on I/O systems""" # Set up parameters for simulation @@ -596,7 +583,6 @@ def test_bdalg_functions(self, tsys): ios_t, ios_y = ios.input_output_response(iosys_feedback, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) - @noscipy0 def test_algebraic_functions(self, tsys): """Test algebraic operations on I/O systems""" # Set up parameters for simulation @@ -648,7 +634,6 @@ def test_algebraic_functions(self, tsys): ios_t, ios_y = ios.input_output_response(iosys_negate, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) - @noscipy0 def test_nonsquare_bdalg(self, tsys): # Set up parameters for simulation T = tsys.T @@ -699,7 +684,6 @@ def test_nonsquare_bdalg(self, tsys): with pytest.raises(ValueError): ct.series(*args) - @noscipy0 def test_discrete(self, tsys): """Test discrete time functionality""" # Create some linear and nonlinear systems to play with @@ -868,7 +852,6 @@ def test_find_eqpts(self, tsys): assert xeq is None assert ueq is None - @noscipy0 def test_params(self, tsys): # Start with the default set of parameters ios_secord_default = ios.NonlinearIOSystem( diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index fe73ab4a9..ff712f849 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -1,7 +1,6 @@ """timeresp_test.py - test time response functions""" from copy import copy -from distutils.version import StrictVersion import numpy as np import pytest @@ -521,8 +520,6 @@ def test_impulse_response_mimo(self, tsystem): _t, yy = impulse_response(sys, T=t, input=0) np.testing.assert_array_almost_equal(yy[:,0,:], yref_notrim, decimal=4) - @pytest.mark.skipif(StrictVersion(sp.__version__) < "1.3", - reason="requires SciPy 1.3 or greater") @pytest.mark.parametrize("tsystem", ["siso_tf1"], indirect=True) def test_discrete_time_impulse(self, tsystem): # discrete time impulse sampled version should match cont time @@ -998,9 +995,6 @@ def test_time_series_data_convention_2D(self, tsystem): [6, 2, 2, False, (2, 2, 8), (2, 8)], ]) def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): - # Figure out if we have SciPy 1+ - scipy0 = StrictVersion(sp.__version__) < '1.0' - # Define the system if fcn == ct.tf and (nout > 1 or ninp > 1) and not slycot_check(): pytest.skip("Conversion of MIMO systems to transfer functions " @@ -1077,7 +1071,7 @@ def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): assert yvec.shape == (8, ) # For InputOutputSystems, also test input/output response - if isinstance(sys, ct.InputOutputSystem) and not scipy0: + if isinstance(sys, ct.InputOutputSystem): _, yvec = ct.input_output_response(sys, tvec, uvec, squeeze=squeeze) assert yvec.shape == shape2 @@ -1108,7 +1102,7 @@ def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): assert yvec.shape == (sys.noutputs, 8) # For InputOutputSystems, also test input_output_response - if isinstance(sys, ct.InputOutputSystem) and not scipy0: + if isinstance(sys, ct.InputOutputSystem): _, yvec = ct.input_output_response(sys, tvec, uvec) if squeeze is not True or sys.noutputs > 1: assert yvec.shape == (sys.noutputs, 8) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index 79273f31b..894da5594 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -12,7 +12,7 @@ from control import isctime, isdtime, sample_system, defaults from control.statesp import _convert_to_statespace from control.xferfcn import _convert_to_transfer_function -from control.tests.conftest import slycotonly, nopython2, matrixfilter +from control.tests.conftest import slycotonly, matrixfilter class TestXferFcn: @@ -448,7 +448,6 @@ def test_call_siso(self, dt, omega, resp): np.testing.assert_allclose(sys.evalfr(omega), resp, atol=1e-3) - @nopython2 def test_call_dtime(self): sys = TransferFunction([1., 3., 5], [1., 6., 2., -1], 0.1) np.testing.assert_array_almost_equal(sys(1j), -0.5 - 0.5j) @@ -741,8 +740,7 @@ def test_indexing(self): "matarrayin", [pytest.param(np.array, id="arrayin", - marks=[nopython2, - pytest.mark.skip(".__matmul__ not implemented")]), + marks=[pytest.mark.skip(".__matmul__ not implemented")]), pytest.param(np.matrix, id="matrixin", marks=matrixfilter)], diff --git a/doc/intro.rst b/doc/intro.rst index 01fe81bd0..ce01aca15 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -36,7 +36,7 @@ Installation ============ The `python-control` package can be installed using pip, conda or the -standard distutils/setuptools mechanisms. The package requires `numpy`_ and +standard setuptools mechanisms. The package requires `numpy`_ and `scipy`_, and the plotting routines require `matplotlib `_. In addition, some routines require the `slycot `_ library in order to implement diff --git a/setup.py b/setup.py index a8609148e..df3f8519d 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ packages=find_packages(exclude=['benchmarks']), classifiers=[f for f in CLASSIFIERS.split('\n') if f], install_requires=['numpy', - 'scipy', + 'scipy>=1.3', 'matplotlib'], extras_require={ 'test': ['pytest', 'pytest-timeout'], From f0393b73921c4a688490f1ca17519c37a2c6bbd5 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 16 Jun 2022 11:42:30 +0200 Subject: [PATCH 0024/1025] isort and autopep8 conftest.py --- control/tests/conftest.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/control/tests/conftest.py b/control/tests/conftest.py index ca878337e..ac35748f3 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -1,13 +1,13 @@ """conftest.py - pytest local plugins and fixtures""" -from contextlib import contextmanager import os import sys +from contextlib import contextmanager import matplotlib as mpl import numpy as np -import scipy as sp import pytest +import scipy as sp import control @@ -38,6 +38,7 @@ def control_defaults(): # assert that nothing changed it without reverting assert control.config.defaults == the_defaults + @pytest.fixture(scope="function", autouse=TEST_MATRIX_AND_ARRAY, params=[pytest.param("arrayout", marks=matrixerrorfilter), pytest.param("matrixout", marks=matrixfilter)]) @@ -106,7 +107,7 @@ def editsdefaults(): @pytest.fixture(scope="function") def mplcleanup(): """Clean up any plots and changes a test may have made to matplotlib. - + compare matplotlib.testing.decorators.cleanup() but as a fixture instead of a decorator. """ From 0cd3ac8ee0b1f250183c4c7492e67b90c7e36470 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 16 Jun 2022 11:57:45 +0200 Subject: [PATCH 0025/1025] move away from deprecated scipy namespace --- control/tests/optimal_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 1aa307b60..027b55c75 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -366,7 +366,7 @@ def test_optimal_logging(capsys): x0 = [-1, 1] # Solve it, with logging turned on (with warning due to mixed constraints) - with pytest.warns(sp.optimize.optimize.OptimizeWarning, + with pytest.warns(sp.optimize.OptimizeWarning, match="Equality and inequality .* same element"): res = opt.solve_ocp( sys, time, x0, cost, input_constraint, terminal_cost=cost, From 7f883f67b7f0e2782a1fa8e965b9e9bd7dbd691d Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 16 Jun 2022 12:19:12 +0200 Subject: [PATCH 0026/1025] Avoid PytestRemovedIn8Warning for pytest.warns(None) Details: https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests --- control/tests/iosys_test.py | 39 ++++++++++++++--------------------- control/tests/namedio_test.py | 8 +++++-- control/tests/nyquist_test.py | 7 +++++-- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index db683e1a1..693be979e 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -9,6 +9,7 @@ """ import re +import warnings import numpy as np import pytest @@ -17,6 +18,7 @@ from control import iosys as ios from control.tests.conftest import matrixfilter + class TestIOSys: @pytest.fixture @@ -1416,11 +1418,10 @@ def test_duplicates(self, tsys): nlios2 = ios.NonlinearIOSystem(None, lambda t, x, u, params: u * u, inputs=1, outputs=1, name="nlios2") - with pytest.warns(None) as record: + with warnings.catch_warnings(): + warnings.simplefilter("error") ct.InterconnectedSystem([nlios1, iosys_siso, nlios2], inputs=0, outputs=0, states=0) - if record: - pytest.fail("Warning not expected: " + record[0].message) def test_linear_interconnection(): @@ -1510,7 +1511,7 @@ def predprey(t, x, u, params={}): def pvtol(t, x, u, params={}): """Reduced planar vertical takeoff and landing dynamics""" - from math import sin, cos + from math import cos, sin m = params.get('m', 4.) # kg, system mass J = params.get('J', 0.0475) # kg m^2, system inertia r = params.get('r', 0.25) # m, thrust offset @@ -1526,7 +1527,7 @@ def pvtol(t, x, u, params={}): def pvtol_full(t, x, u, params={}): - from math import sin, cos + from math import cos, sin m = params.get('m', 4.) # kg, system mass J = params.get('J', 0.0475) # kg m^2, system inertia r = params.get('r', 0.25) # m, thrust offset @@ -1579,8 +1580,12 @@ def test_interconnect_unused_input(): inputs=['r'], outputs=['y']) - with pytest.warns(None) as record: + with warnings.catch_warnings(): # no warning if output explicitly ignored, various argument forms + warnings.simplefilter("error") + # strip out matrix warnings + warnings.filterwarnings("ignore", "the matrix subclass", + category=PendingDeprecationWarning) h = ct.interconnect([g,s,k], inputs=['r'], outputs=['y'], @@ -1595,14 +1600,6 @@ def test_interconnect_unused_input(): h = ct.interconnect([g,s,k], connections=False) - #https://docs.pytest.org/en/6.2.x/warnings.html#recwarn - for r in record: - # strip out matrix warnings - if re.match(r'.*matrix subclass', str(r.message)): - continue - print(r.message) - pytest.fail(f'Unexpected warning: {r.message}') - # warn if explicity ignored input in fact used with pytest.warns( @@ -1657,7 +1654,11 @@ def test_interconnect_unused_output(): # no warning if output explicitly ignored - with pytest.warns(None) as record: + with warnings.catch_warnings(): + warnings.simplefilter("error") + # strip out matrix warnings + warnings.filterwarnings("ignore", "the matrix subclass", + category=PendingDeprecationWarning) h = ct.interconnect([g,s,k], inputs=['r'], outputs=['y'], @@ -1672,14 +1673,6 @@ def test_interconnect_unused_output(): h = ct.interconnect([g,s,k], connections=False) - #https://docs.pytest.org/en/6.2.x/warnings.html#recwarn - for r in record: - # strip out matrix warnings - if re.match(r'.*matrix subclass', str(r.message)): - continue - print(r.message) - pytest.fail(f'Unexpected warning: {r.message}') - # warn if explicity ignored output in fact used with pytest.warns( UserWarning, diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index 3a96203a8..4925e9790 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -10,6 +10,7 @@ import re from copy import copy +import warnings import numpy as np import control as ct @@ -243,9 +244,12 @@ def test_duplicate_sysname(): sys = ct.rss(4, 1, 1) # No warnings should be generated if we reuse an an unnamed system - with pytest.warns(None) as record: + with warnings.catch_warnings(): + warnings.simplefilter("error") + # strip out matrix warnings + warnings.filterwarnings("ignore", "the matrix subclass", + category=PendingDeprecationWarning) res = sys * sys - assert not any([type(msg) == UserWarning for msg in record]) # Generate a warning if the system is named sys = ct.rss(4, 1, 1, name='sys') diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index b1aa00577..ddc69e7bb 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -8,6 +8,8 @@ """ +import warnings + import pytest import numpy as np import matplotlib.pyplot as plt @@ -225,10 +227,11 @@ def test_nyquist_encirclements(): sys = 1 / (s**2 + s + 1) with pytest.warns(UserWarning, match="encirclements was a non-integer"): count = ct.nyquist_plot(sys, omega_limits=[0.5, 1e3]) - with pytest.warns(None) as records: + with warnings.catch_warnings(): + warnings.simplefilter("error") + # strip out matrix warnings count = ct.nyquist_plot( sys, omega_limits=[0.5, 1e3], encirclement_threshold=0.2) - assert len(records) == 0 plt.title("Non-integer number of encirclements [%g]" % count) From ce11d0be328af73179307d4b63071968175fd537 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 16 Jun 2022 13:28:32 +0200 Subject: [PATCH 0027/1025] mark the whole passivity_test module as skippable --- control/tests/passivity_test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 09ef42b4a..2a12f10df 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -8,7 +8,9 @@ from control.tests.conftest import cvxoptonly -@cvxoptonly +pytestmark = cvxoptonly + + def test_ispassive(): A = numpy.array([[0, 1], [-2, -2]]) B = numpy.array([[0], [1]]) @@ -33,7 +35,6 @@ def test_ispassive(): D = numpy.array([[1.5]]) -@cvxoptonly @pytest.mark.parametrize( "test_input,expected", [((A, B, C, D*0.0), True), From f7d74b2a52e4653d602512664f6ac00111f897c6 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 16 Jun 2022 09:14:24 -0500 Subject: [PATCH 0028/1025] Fix bug in tests and lti.py. --- control/lti.py | 2 +- control/tests/passivity_test.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/control/lti.py b/control/lti.py index 4f6624748..b87944cd0 100644 --- a/control/lti.py +++ b/control/lti.py @@ -205,7 +205,7 @@ def _dcgain(self, warn_infinite): def ispassive(self): # importing here prevents circular dependancy from control.passivity import ispassive - ispassive(self) + return ispassive(self) # # Deprecated functions diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 2a12f10df..791d70b6c 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -55,10 +55,10 @@ def test_ispassive_edge_cases(test_input, expected): def test_transfer_function(): - sys = tf([1], [1, -2]) + sys = tf([1], [1, 2]) assert(passivity.ispassive(sys)) - sys = tf([1], [1, 2]) + sys = tf([1], [1, -2]) assert(not passivity.ispassive(sys)) @@ -70,5 +70,5 @@ def test_oo_style(): sys = ss(A, B, C, D) assert(sys.ispassive()) - sys = tf([1], [1, -2]) + sys = tf([1], [1, 2]) assert(sys.ispassive()) From c2255b0b087696e09717cc1591c1038b357f4ae7 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 16 Jun 2022 09:45:50 -0500 Subject: [PATCH 0029/1025] Fix merge issue. --- control/tests/conftest.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/control/tests/conftest.py b/control/tests/conftest.py index ac35748f3..1201b8746 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -17,6 +17,8 @@ # pytest.param(marks=) slycotonly = pytest.mark.skipif(not control.exception.slycot_check(), reason="slycot not installed") +cvxoptonly = pytest.mark.skipif(not control.exception.cvxopt_check(), + reason="cvxopt not installed") matrixfilter = pytest.mark.filterwarnings("ignore:.*matrix subclass:" "PendingDeprecationWarning") matrixerrorfilter = pytest.mark.filterwarnings("error:.*matrix subclass:" From 0ff91914fd7a1cd699e7376576f5242ca22da14e Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Mon, 18 Jul 2022 10:49:00 +0200 Subject: [PATCH 0030/1025] Slycot source uses setuptools_scm --- .github/workflows/control-slycot-src.yml | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/control-slycot-src.yml b/.github/workflows/control-slycot-src.yml index 13a66e426..ffbeca3f9 100644 --- a/.github/workflows/control-slycot-src.yml +++ b/.github/workflows/control-slycot-src.yml @@ -7,7 +7,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Checkout python-control + uses: actions/checkout@v3 + with: + path: python-control - name: Set up Python uses: actions/setup-python@v2 - name: Install Python dependencies @@ -24,18 +27,27 @@ jobs: # Install python-control dependencies conda install numpy matplotlib scipy + - name: Checkout Slycot + uses: actions/checkout@v3 + with: + repository: python-control/Slycot + submodules: recursive + fetch-depth: 0 + path: slycot - name: Install slycot from source + env: + BLA_VENDOR: Generic + CMAKE_GENERATOR: Unix Makefiles + working-directory: slycot run: | # Install compilers, libraries, and development environment sudo apt-get -y install gfortran cmake --fix-missing sudo apt-get -y install libblas-dev liblapack-dev - conda install -c conda-forge scikit-build; + conda install -c conda-forge scikit-build setuptools-scm # Compile and install slycot - git clone https://github.com/python-control/Slycot.git slycot - cd slycot - git submodule update --init - python setup.py build_ext install -DBLA_VENDOR=Generic + pip install -v --no-build-isolation --no-deps . - name: Test with pytest + working-directory: python-control run: xvfb-run --auto-servernum pytest control/tests From a19c501927327039ddc7bed181393574c347adb5 Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 30 Jul 2022 17:11:32 -0400 Subject: [PATCH 0031/1025] Passivity indices and support for discrete time systems. (#750) This adds support for input and output passivity indices. This implementation ignores frequency bands, relative passivity index, combined I/O passivity, and directional passivity index. This also adds support for computing indices and "is passive or not" for discrete time systems. Authored-by: Mark --- control/__init__.py | 1 + control/passivity.py | 307 ++++++++++++++++++++++++++------ control/tests/passivity_test.py | 82 ++++++++- doc/control.rst | 5 + 4 files changed, 339 insertions(+), 56 deletions(-) diff --git a/control/__init__.py b/control/__init__.py index ad2685273..e0edc96a2 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -72,6 +72,7 @@ from .config import * from .sisotool import * from .iosys import * +from .passivity import * # Exceptions from .exception import * diff --git a/control/passivity.py b/control/passivity.py index e833fbf96..2ec1a7683 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -1,42 +1,72 @@ -''' -Author: Mark Yeatman -Date: May 15, 2022 -''' +""" +Functions for passive control. + +Author: Mark Yeatman +Date: July 17, 2022 +""" import numpy as np -from control import statesp as ss +from control import statesp +from control.exception import ControlArgument, ControlDimension try: import cvxopt as cvx -except ImportError as e: +except ImportError: cvx = None +eps = np.nextafter(0, 1) + +__all__ = ["get_output_fb_index", "get_input_ff_index", "ispassive", + "solve_passivity_LMI"] + + +def solve_passivity_LMI(sys, rho=None, nu=None): + """Compute passivity indices and/or solves feasiblity via a LMI. -def ispassive(sys): - ''' - Indicates if a linear time invariant (LTI) system is passive + Constructs a linear matrix inequality (LMI) such that if a solution exists + and the last element of the solution is positive, the system `sys` is + passive. Inputs of None for `rho` or `nu` indicate that the function should + solve for that index (they are mutually exclusive, they can't both be + None, otherwise you're trying to solve a nonconvex bilinear matrix + inequality.) The last element of `solution` is either the output or input + passivity index, for `rho` = None and `nu` = None respectively. - Constructs a linear matrix inequality and a feasibility optimization - such that if a solution exists, the system is passive. + The sources for the algorithm are: - The source for the algorithm is: - McCourt, Michael J., and Panos J. Antsaklis. - "Demonstrating passivity and dissipativity using computational methods." ISIS 8 (2013). + McCourt, Michael J., and Panos J. Antsaklis + "Demonstrating passivity and dissipativity using computational + methods." + + Nicholas Kottenstette and Panos J. Antsaklis + "Relationships Between Positive Real, Passive Dissipative, & Positive + Systems", equation 36. Parameters ---------- - sys: A continuous LTI system - System to be checked. + sys : LTI + System to be checked + rho : float or None + Output feedback passivity index + nu : float or None + Input feedforward passivity index Returns ------- - bool: - The input system passive. - ''' + solution : ndarray + The LMI solution + """ if cvx is None: raise ModuleNotFoundError("cvxopt required for passivity module") - sys = ss._convert_to_statespace(sys) + if sys.ninputs != sys.noutputs: + raise ControlDimension( + "The number of system inputs must be the same as the number of " + "system outputs.") + + if rho is None and nu is None: + raise ControlArgument("rho or nu must be given a numerical value.") + + sys = statesp._convert_to_statespace(sys) A = sys.A B = sys.B @@ -45,43 +75,218 @@ def ispassive(sys): # account for strictly proper systems [n, m] = D.shape - D = D + np.nextafter(0, 1)*np.eye(n, m) + D = D + eps * np.eye(n, m) [n, _] = A.shape - A = A - np.nextafter(0, 1)*np.eye(n) - - def make_LMI_matrix(P): - V = np.vstack(( - np.hstack((A.T @ P + P@A, P@B)), - np.hstack((B.T@P, np.zeros_like(D)))) - ) - return V - - matrix_list = [] - state_space_size = sys.nstates - for i in range(0, state_space_size): - for j in range(0, state_space_size): - if j <= i: - P = np.zeros_like(A) - P[i, j] = 1.0 - P[j, i] = 1.0 - matrix_list.append(make_LMI_matrix(P).flatten()) - - coefficents = np.vstack(matrix_list).T - - constants = -np.vstack(( - np.hstack((np.zeros_like(A), - C.T)), - np.hstack((- C, -D - D.T))) - ) + A = A - eps*np.eye(n) + + def make_LMI_matrix(P, rho, nu, one): + q = sys.noutputs + Q = -rho*np.eye(q, q) + S = 1.0/2.0*(one+rho*nu)*np.eye(q) + R = -nu*np.eye(m) + if sys.isctime(): + off_diag = P@B - (C.T@S + C.T@Q@D) + return np.vstack(( + np.hstack((A.T @ P + P@A - C.T@Q@C, off_diag)), + np.hstack((off_diag.T, -(D.T@Q@D + D.T@S + S.T@D + R))) + )) + else: + off_diag = A.T@P@B - (C.T@S + C.T@Q@D) + return np.vstack(( + np.hstack((A.T @ P @ A - P - C.T@Q@C, off_diag)), + np.hstack((off_diag.T, B.T@P@B-(D.T@Q@D + D.T@S + S.T@D + R))) + )) + + def make_P_basis_matrices(n, rho, nu): + """Make list of matrix constraints for passivity LMI. + + Utility function to make basis matrices for a LMI from a + symmetric matrix P of size n by n representing a parametrized symbolic + matrix + """ + matrix_list = [] + for i in range(0, n): + for j in range(0, n): + if j <= i: + P = np.zeros((n, n)) + P[i, j] = 1 + P[j, i] = 1 + matrix_list.append(make_LMI_matrix(P, 0, 0, 0).flatten()) + zeros = eps*np.eye(n) + if rho is None: + matrix_list.append(make_LMI_matrix(zeros, 1, 0, 0).flatten()) + elif nu is None: + matrix_list.append(make_LMI_matrix(zeros, 0, 1, 0).flatten()) + return matrix_list + + + def P_pos_def_constraint(n): + """Make a list of matrix constraints for P >= 0. + + Utility function to make basis matrices for a LMI that ensures + parametrized symbolic matrix of size n by n is positive definite + """ + matrix_list = [] + for i in range(0, n): + for j in range(0, n): + if j <= i: + P = np.zeros((n, n)) + P[i, j] = -1 + P[j, i] = -1 + matrix_list.append(P.flatten()) + if rho is None or nu is None: + matrix_list.append(np.zeros((n, n)).flatten()) + return matrix_list + + n = sys.nstates + + # coefficents for passivity indices and feasibility matrix + sys_matrix_list = make_P_basis_matrices(n, rho, nu) + # get constants for numerical values of rho and nu + sys_constants = list() + if rho is not None and nu is not None: + sys_constants = -make_LMI_matrix(np.zeros_like(A), rho, nu, 1.0) + elif rho is not None: + sys_constants = -make_LMI_matrix(np.zeros_like(A), rho, eps, 1.0) + elif nu is not None: + sys_constants = -make_LMI_matrix(np.zeros_like(A), eps, nu, 1.0) + + sys_coefficents = np.vstack(sys_matrix_list).T + + # LMI to ensure P is positive definite + P_matrix_list = P_pos_def_constraint(n) + P_coefficents = np.vstack(P_matrix_list).T + P_constants = np.zeros((n, n)) + + # cost function number_of_opt_vars = int( - (state_space_size**2-state_space_size)/2 + state_space_size) + (n**2-n)/2 + n) c = cvx.matrix(0.0, (number_of_opt_vars, 1)) + #we're maximizing a passivity index, include it in the cost function + if rho is None or nu is None: + c = cvx.matrix(np.append(np.array(c), -1.0)) + + Gs = [cvx.matrix(sys_coefficents)] + [cvx.matrix(P_coefficents)] + hs = [cvx.matrix(sys_constants)] + [cvx.matrix(P_constants)] + # crunch feasibility solution cvx.solvers.options['show_progress'] = False - sol = cvx.solvers.sdp(c, - Gs=[cvx.matrix(coefficents)], - hs=[cvx.matrix(constants)]) + sol = cvx.solvers.sdp(c, Gs=Gs, hs=hs) + return sol["x"] + + +def get_output_fb_index(sys): + """Return the output feedback passivity (OFP) index for the system. + + The OFP is the largest gain that can be placed in positive feedback + with a system such that the new interconnected system is passive. + + Parameters + ---------- + sys : LTI + System to be checked + + Returns + ------- + float + The OFP index + """ + sol = solve_passivity_LMI(sys, nu=eps) + if sol is None: + raise RuntimeError("LMI passivity problem is infeasible") + else: + return sol[-1] + + +def get_input_ff_index(sys): + """Return the input feedforward passivity (IFP) index for the system. - return (sol["x"] is not None) + The IFP is the largest gain that can be placed in negative parallel + interconnection with a system such that the new interconnected system is + passive. + + Parameters + ---------- + sys : LTI + System to be checked. + + Returns + ------- + float + The IFP index + """ + sol = solve_passivity_LMI(sys, rho=eps) + if sol is None: + raise RuntimeError("LMI passivity problem is infeasible") + else: + return sol[-1] + + +def get_relative_index(sys): + """Return the relative passivity index for the system. + + (not implemented yet) + """ + raise NotImplementedError("Relative passivity index not implemented") + + +def get_combined_io_index(sys): + """Return the combined I/O passivity index for the system. + + (not implemented yet) + """ + raise NotImplementedError("Combined I/O passivity index not implemented") + + +def get_directional_index(sys): + """Return the directional passivity index for the system. + + (not implemented yet) + """ + raise NotImplementedError("Directional passivity index not implemented") + + +def ispassive(sys, ofp_index=0, ifp_index=0): + r"""Indicate if a linear time invariant (LTI) system is passive. + + Checks if system is passive with the given output feedback (OFP) and input + feedforward (IFP) passivity indices. + + Parameters + ---------- + sys : LTI + System to be checked + ofp_index : float + Output feedback passivity index + ifp_index : float + Input feedforward passivity index + + Returns + ------- + bool + The system is passive. + + Notes + ----- + Querying if the system is passive in the sense of + + .. math:: V(x) >= 0 \land \dot{V}(x) <= y^T u + + is equivalent to the default case of `ofp_index` = 0 and `ifp_index` = 0. + Note that computing the `ofp_index` and `ifp_index` for a system, then + using both values simultaneously as inputs to this function is not + guaranteed to have an output of True (the system might not be passive with + both indices at the same time). + + For more details, see [1]. + + References + ---------- + .. [1] McCourt, Michael J., and Panos J. Antsaklis + "Demonstrating passivity and dissipativity using computational + methods." + """ + return solve_passivity_LMI(sys, rho=ofp_index, nu=ifp_index) is not None diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 791d70b6c..4c95c96b9 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -4,14 +4,14 @@ ''' import pytest import numpy -from control import ss, passivity, tf +from control import ss, passivity, tf, sample_system, parallel, feedback from control.tests.conftest import cvxoptonly - +from control.exception import ControlArgument, ControlDimension pytestmark = cvxoptonly -def test_ispassive(): +def test_ispassive_ctime(): A = numpy.array([[0, 1], [-2, -2]]) B = numpy.array([[0], [1]]) C = numpy.array([[-1, 2]]) @@ -28,6 +28,69 @@ def test_ispassive(): assert(not passivity.ispassive(sys)) +def test_ispassive_dtime(): + A = numpy.array([[0, 1], [-2, -2]]) + B = numpy.array([[0], [1]]) + C = numpy.array([[-1, 2]]) + D = numpy.array([[1.5]]) + sys = ss(A, B, C, D) + sys = sample_system(sys, 1, method='bilinear') + assert(passivity.ispassive(sys)) + + +def test_passivity_indices_ctime(): + sys = tf([1, 1, 5, 0.1], [1, 2, 3, 4]) + + iff_index = passivity.get_input_ff_index(sys) + ofb_index = passivity.get_output_fb_index(sys) + + assert(isinstance(ofb_index, float)) + + sys_ff = parallel(sys, -iff_index) + sys_fb = feedback(sys, ofb_index, sign=1) + + assert(sys_ff.ispassive()) + assert(sys_fb.ispassive()) + + sys_ff = parallel(sys, -iff_index-1e-6) + sys_fb = feedback(sys, ofb_index+1e-6, sign=1) + + assert(not sys_ff.ispassive()) + assert(not sys_fb.ispassive()) + + +def test_passivity_indices_dtime(): + sys = tf([1, 1, 5, 0.1], [1, 2, 3, 4]) + sys = sample_system(sys, Ts=0.1) + iff_index = passivity.get_input_ff_index(sys) + ofb_index = passivity.get_output_fb_index(sys) + + assert(isinstance(iff_index, float)) + + sys_ff = parallel(sys, -iff_index) + sys_fb = feedback(sys, ofb_index, sign=1) + + assert(sys_ff.ispassive()) + assert(sys_fb.ispassive()) + + sys_ff = parallel(sys, -iff_index-1e-2) + sys_fb = feedback(sys, ofb_index+1e-2, sign=1) + + assert(not sys_ff.ispassive()) + assert(not sys_fb.ispassive()) + + +def test_system_dimension(): + A = numpy.array([[0, 1], [-2, -2]]) + B = numpy.array([[0], [1]]) + C = numpy.array([[-1, 2], [0, 1]]) + D = numpy.array([[1.5], [1]]) + sys = ss(A, B, C, D) + + with pytest.raises(ControlDimension): + passivity.ispassive(sys) + + A_d = numpy.array([[-2, 0], [0, 0]]) A = numpy.array([[-3, 0], [0, -2]]) B = numpy.array([[0], [1]]) @@ -44,8 +107,6 @@ def test_ispassive(): ((A*0, B, C, D), True), ((A*0, B*0, C*0, D*0), True)]) def test_ispassive_edge_cases(test_input, expected): - - # strictly proper A = test_input[0] B = test_input[1] C = test_input[2] @@ -54,6 +115,17 @@ def test_ispassive_edge_cases(test_input, expected): assert(passivity.ispassive(sys) == expected) +def test_rho_and_nu_are_none(): + A = numpy.array([[0]]) + B = numpy.array([[0]]) + C = numpy.array([[0]]) + D = numpy.array([[0]]) + sys = ss(A, B, C, D) + + with pytest.raises(ControlArgument): + passivity.solve_passivity_LMI(sys) + + def test_transfer_function(): sys = tf([1], [1, 2]) assert(passivity.ispassive(sys)) diff --git a/doc/control.rst b/doc/control.rst index fc6618d24..172790f83 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -80,6 +80,9 @@ Control system analysis describing_function evalfr freqresp + get_input_ff_index + get_output_fb_index + ispassive margin stability_margins phase_crossover_frequencies @@ -89,6 +92,8 @@ Control system analysis root_locus sisotool + + Matrix computations =================== .. autosummary:: From 813572fb18d6f0e26c2f0bb67ab82c9cb4330e36 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Fri, 5 Aug 2022 23:55:32 +0200 Subject: [PATCH 0032/1025] New job name format --- .github/workflows/python-package-conda.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 87cece16b..5db9239a3 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -4,7 +4,12 @@ on: [push, pull_request] jobs: test-linux: - name: Python ${{ matrix.python-version }}${{ matrix.slycot && format(' with Slycot from {0}', matrix.slycot) || ' without Slycot' }}${{ matrix.pandas && ', with pandas' || '' }}${{ matrix.array-and-matrix == 1 && ', array and matrix' || '' }}${{ matrix.cvxopt && format(' with cvxopt from {0}', matrix.cvxopt) || ' without cvxopt' }} + name: > + Python ${{ matrix.python-version }}; + ${{ matrix.slycot || 'without' }} Slycot; + ${{ matrix.pandas || 'without' }} Pandas; + ${{ matrix.cvxopt || 'without' }} CVXOPT; + ${{ matrix.array-and-matrix == 1 && '; array and matrix' || '' }} runs-on: ubuntu-latest strategy: From c617b33ded2c6ab5282a1f3bbf8370cdb2d7bd28 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 6 Aug 2022 00:15:36 +0200 Subject: [PATCH 0033/1025] switch to mambaforge setup with strict conda-forge channel --- .github/conda-env/test-env.yml | 11 +++++ .github/workflows/python-package-conda.yml | 52 +++++++++++----------- 2 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 .github/conda-env/test-env.yml diff --git a/.github/conda-env/test-env.yml b/.github/conda-env/test-env.yml new file mode 100644 index 000000000..cc91a1ade --- /dev/null +++ b/.github/conda-env/test-env.yml @@ -0,0 +1,11 @@ +name: test-env +dependencies: + - pip + - coverage + - coveralls + - pytest + - pytest-cov + - pytest-timeout + - numpy + - matplotlib + - scipy \ No newline at end of file diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 5db9239a3..0953f40c3 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -5,10 +5,10 @@ on: [push, pull_request] jobs: test-linux: name: > - Python ${{ matrix.python-version }}; - ${{ matrix.slycot || 'without' }} Slycot; - ${{ matrix.pandas || 'without' }} Pandas; - ${{ matrix.cvxopt || 'without' }} CVXOPT; + Py${{ matrix.python-version }}; + ${{ matrix.slycot || 'no' }} Slycot; + ${{ matrix.pandas || 'no' }} Pandas; + ${{ matrix.cvxopt || 'no' }} CVXOPT; ${{ matrix.array-and-matrix == 1 && '; array and matrix' || '' }} runs-on: ubuntu-latest @@ -27,43 +27,41 @@ jobs: array-and-matrix: 1 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - name: Install dependencies - run: | - # Set up conda - echo $CONDA/bin >> $GITHUB_PATH - conda create -q -n test-environment python=${{matrix.python-version}} - source $CONDA/bin/activate test-environment - - # Set up (virtual) X11 - sudo apt install -y xvfb + - name: Set up (virtual) X11 + run: sudo apt install -y xvfb - # Install test tools - conda install pip coverage pytest pytest-timeout - pip install coveralls + - name: Setup Conda + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: ${{ matrix.python-version }} + activate-environment: test-env + environment-file: .github/conda-env/test-env.yml + miniforge-version: latest + miniforge-variant: Mambaforge + channels: conda-forge + channel-priority: strict + auto-update-conda: false + auto-activate-base: false - # Install python-control dependencies - conda install numpy matplotlib scipy + - name: Install optional dependencies + run: | if [[ '${{matrix.slycot}}' == 'conda' ]]; then - conda install -c conda-forge slycot + mamba install slycot fi if [[ '${{matrix.pandas}}' == 'conda' ]]; then - conda install pandas + mamba install pandas fi if [[ '${{matrix.cvxopt}}' == 'conda' ]]; then - conda install -c conda-forge cvxopt + mamba install cvxopt fi - name: Test with pytest env: PYTHON_CONTROL_ARRAY_AND_MATRIX: ${{ matrix.array-and-matrix }} run: | - source $CONDA/bin/activate test-environment - # Use xvfb-run instead of pytest-xvfb to get proper mpl backend - # Use coverage instead of pytest-cov to get .coverage file - # See https://github.com/python-control/python-control/pull/504 - xvfb-run --auto-servernum coverage run -m pytest control/tests + xvfb-run --auto-servernum pytest --cov=control --cov-config=.coveragerc control/tests - name: Coveralls parallel # https://github.com/coverallsapp/github-action From afb1ce08161782b3f50a563048d4775d191c793d Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 6 Aug 2022 00:38:16 +0200 Subject: [PATCH 0034/1025] fix conda enviroment shell --- .github/workflows/python-package-conda.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 0953f40c3..4e287b45a 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -46,6 +46,7 @@ jobs: auto-activate-base: false - name: Install optional dependencies + shell: bash -l {0} run: | if [[ '${{matrix.slycot}}' == 'conda' ]]; then mamba install slycot @@ -58,6 +59,7 @@ jobs: fi - name: Test with pytest + shell: bash -l {0} env: PYTHON_CONTROL_ARRAY_AND_MATRIX: ${{ matrix.array-and-matrix }} run: | From f17c9194456b659c390c0190d14d2c38f5bc932c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 3 Aug 2022 21:34:27 -0700 Subject: [PATCH 0035/1025] fix timebase bug in InterconnectedSystem (issue #754) --- control/iosys.py | 7 +++++-- control/tests/timebase_test.py | 37 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 control/tests/timebase_test.py diff --git a/control/iosys.py b/control/iosys.py index 6008cf43d..ce717c0fb 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -871,9 +871,12 @@ def __init__(self, syslist, connections=[], inplist=[], outlist=[], if not isinstance(outlist, (list, tuple)): outlist = [outlist] - # Process keyword arguments + # Check if dt argument was given; if not, pull from systems + dt = kwargs.pop('dt', None) + + # Process keyword arguments (except dt) defaults = {'inputs': len(inplist), 'outputs': len(outlist)} - name, inputs, outputs, states, dt = _process_namedio_keywords( + name, inputs, outputs, states, _ = _process_namedio_keywords( kwargs, defaults, end=True) # Initialize the system list and index diff --git a/control/tests/timebase_test.py b/control/tests/timebase_test.py new file mode 100644 index 000000000..50d69fb88 --- /dev/null +++ b/control/tests/timebase_test.py @@ -0,0 +1,37 @@ +import pytest +import inspect +import numpy as np +import control as ct + +@pytest.mark.parametrize( + "dt1, dt2, dt3", [ + (0, 0, 0), + (0, 0.1, ValueError), + (0, None, 0), + (0.1, 0, ValueError), + (0.1, 0.1, 0.1), + (0.1, None, 0.1), + (None, 0, 0), + (None, 0.1, 0.1), + (None, None, None), + (0.2, None, 0.2), + (0.2, 0.1, ValueError), + ]) +@pytest.mark.parametrize("op", [ct.series, ct.parallel, ct.feedback]) +@pytest.mark.parametrize("type", [ct.StateSpace, ct.ss, ct.tf]) +def test_composition(dt1, dt2, dt3, op, type): + # Define the system + A, B, C, D = [[1, 1], [0, 1]], [[0], [1]], [[1, 0]], 0 + sys1 = ct.StateSpace(A, B, C, D, dt1) + sys2 = ct.StateSpace(A, B, C, D, dt2) + + # Convert to the desired form + sys1 = type(sys1) + sys2 = type(sys2) + + if inspect.isclass(dt3) and issubclass(dt3, Exception): + with pytest.raises(dt3, match="incompatible timebases"): + sys3 = op(sys1, sys2) + else: + sys3 = op(sys1, sys2) + assert sys3.dt == dt3 From 3c13f2c58eb17f37a95551a5171dc7c9ad45bd6b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 3 Aug 2022 21:54:06 -0700 Subject: [PATCH 0036/1025] add additional checks for overriding timebase --- control/tests/timebase_test.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/control/tests/timebase_test.py b/control/tests/timebase_test.py index 50d69fb88..f245f625f 100644 --- a/control/tests/timebase_test.py +++ b/control/tests/timebase_test.py @@ -35,3 +35,28 @@ def test_composition(dt1, dt2, dt3, op, type): else: sys3 = op(sys1, sys2) assert sys3.dt == dt3 + + +@pytest.mark.parametrize("dt", [None, 0, 0.1]) +def test_composition_override(dt): + # Define the system + A, B, C, D = [[1, 1], [0, 1]], [[0], [1]], [[1, 0]], 0 + sys1 = ct.ss(A, B, C, D, None, inputs='u1', outputs='y1') + sys2 = ct.ss(A, B, C, D, None, inputs='y1', outputs='y2') + + # Show that we can override the type + sys3 = ct.interconnect([sys1, sys2], inputs='u1', outputs='y2', dt=dt) + assert sys3.dt == dt + + # Overriding the type with an inconsistent type generates an error + sys1 = ct.StateSpace(A, B, C, D, 0.1, inputs='u1', outputs='y1') + if dt != 0.1 and dt is not None: + with pytest.raises(ValueError, match="incompatible timebases"): + sys3 = ct.interconnect( + [sys1, sys2], inputs='u1', outputs='y2', dt=dt) + + sys1 = ct.StateSpace(A, B, C, D, 0, inputs='u1', outputs='y1') + if dt != 0 and dt is not None: + with pytest.raises(ValueError, match="incompatible timebases"): + sys3 = ct.interconnect( + [sys1, sys2], inputs='u1', outputs='y2', dt=dt) From cf304794745baf4aa246df30feccdc3b0c43a490 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 3 Aug 2022 22:56:47 -0700 Subject: [PATCH 0037/1025] added tests for dt=True case per @sawyerbfuller suggestion --- control/tests/timebase_test.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/control/tests/timebase_test.py b/control/tests/timebase_test.py index f245f625f..a391d2fe7 100644 --- a/control/tests/timebase_test.py +++ b/control/tests/timebase_test.py @@ -8,12 +8,19 @@ (0, 0, 0), (0, 0.1, ValueError), (0, None, 0), + (0, True, ValueError), (0.1, 0, ValueError), (0.1, 0.1, 0.1), (0.1, None, 0.1), + (0.1, True, 0.1), (None, 0, 0), (None, 0.1, 0.1), (None, None, None), + (None, True, True), + (True, 0, ValueError), + (True, 0.1, 0.1), + (True, None, True), + (True, True, True), (0.2, None, 0.2), (0.2, 0.1, ValueError), ]) From c54097022899eaf51d8feb29637b26e663de88d1 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 19 Aug 2022 17:52:13 -0700 Subject: [PATCH 0038/1025] fix issue with slycot balred change in state --- control/tests/modelsimp_test.py | 48 +++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 70e94dd91..0746e3fe2 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -182,17 +182,33 @@ def testBalredTruncate(self, matarrayin): B = matarrayin([[2.], [0.], [0.], [0.]]) C = matarrayin([[0.5, 0.6875, 0.7031, 0.5]]) D = matarrayin([[0.]]) + sys = StateSpace(A, B, C, D) orders = 2 rsys = balred(sys, orders, method='truncate') + Ar, Br, Cr, Dr = rsys.A, rsys.B, rsys.C, rsys.D + + # Result from MATLAB Artrue = np.array([[-1.958, -1.194], [-1.194, -0.8344]]) Brtrue = np.array([[0.9057], [0.4068]]) Crtrue = np.array([[0.9057, 0.4068]]) Drtrue = np.array([[0.]]) - np.testing.assert_array_almost_equal(rsys.A, Artrue, decimal=2) - np.testing.assert_array_almost_equal(rsys.B, Brtrue, decimal=4) - np.testing.assert_array_almost_equal(rsys.C, Crtrue, decimal=4) - np.testing.assert_array_almost_equal(rsys.D, Drtrue, decimal=4) + + # Look for possible changes in state in slycot + T1 = np.array([[1, 0], [0, -1]]) + T2 = np.array([[-1, 0], [0, 1]]) + T3 = np.array([[0, 1], [1, 0]]) + for T in (T1, T2, T3): + if np.allclose(T @ Ar @ T, Artrue, atol=1e-2, rtol=1e-2): + # Apply a similarity transformation + Ar, Br, Cr = T @ Ar @ T, T @ Br, Cr @ T + break + + # Make sure we got the correct answer + np.testing.assert_array_almost_equal(Ar, Artrue, decimal=2) + np.testing.assert_array_almost_equal(Br, Brtrue, decimal=4) + np.testing.assert_array_almost_equal(Cr, Crtrue, decimal=4) + np.testing.assert_array_almost_equal(Dr, Drtrue, decimal=4) @slycotonly def testBalredMatchDC(self, matarrayin): @@ -207,16 +223,32 @@ def testBalredMatchDC(self, matarrayin): B = matarrayin([[2.], [0.], [0.], [0.]]) C = matarrayin([[0.5, 0.6875, 0.7031, 0.5]]) D = matarrayin([[0.]]) + sys = StateSpace(A, B, C, D) orders = 2 rsys = balred(sys,orders,method='matchdc') + Ar, Br, Cr, Dr = rsys.A, rsys.B, rsys.C, rsys.D + + # Result from MATLAB Artrue = np.array( [[-4.43094773, -4.55232904], [-4.55232904, -5.36195206]]) Brtrue = np.array([[1.36235673], [1.03114388]]) Crtrue = np.array([[1.36235673, 1.03114388]]) Drtrue = np.array([[-0.08383902]]) - np.testing.assert_array_almost_equal(rsys.A, Artrue, decimal=2) - np.testing.assert_array_almost_equal(rsys.B, Brtrue, decimal=4) - np.testing.assert_array_almost_equal(rsys.C, Crtrue, decimal=4) - np.testing.assert_array_almost_equal(rsys.D, Drtrue, decimal=4) + + # Look for possible changes in state in slycot + T1 = np.array([[1, 0], [0, -1]]) + T2 = np.array([[-1, 0], [0, 1]]) + T3 = np.array([[0, 1], [1, 0]]) + for T in (T1, T2, T3): + if np.allclose(T @ Ar @ T, Artrue, atol=1e-2, rtol=1e-2): + # Apply a similarity transformation + Ar, Br, Cr = T @ Ar @ T, T @ Br, Cr @ T + break + + # Make sure we got the correct answer + np.testing.assert_array_almost_equal(Ar, Artrue, decimal=2) + np.testing.assert_array_almost_equal(Br, Brtrue, decimal=4) + np.testing.assert_array_almost_equal(Cr, Crtrue, decimal=4) + np.testing.assert_array_almost_equal(Dr, Drtrue, decimal=4) From 9dbfa18df42276ccf45eecb51680dc97430220ce Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 6 Aug 2022 10:13:48 +0200 Subject: [PATCH 0039/1025] pip install, run examples and notebooks in conda-forge base environment --- .github/workflows/install_examples.yml | 29 ++++++++++++-------------- setup.py | 2 +- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/.github/workflows/install_examples.yml b/.github/workflows/install_examples.yml index b36ff3e7f..b1e7adb3c 100644 --- a/.github/workflows/install_examples.yml +++ b/.github/workflows/install_examples.yml @@ -1,4 +1,4 @@ -name: setup.py, examples +name: Setup, Examples, Notebooks on: [push, pull_request] @@ -7,26 +7,23 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up Python - uses: actions/setup-python@v2 - - name: Install Python dependencies + - uses: actions/checkout@v3 + - name: Install Python dependencies from conda-forge run: | - # Set up conda + # Set up conda using the preinstalled GHA conda environment echo $CONDA/bin >> $GITHUB_PATH + conda config --add channels conda-forge + conda config --set channel_priority strict - # Set up (virtual) X11 - sudo apt install -y xvfb + # Install build tools + conda install pip setuptools setuptools-scm - # Install test tools - conda install pip pytest + # Install python-control dependencies and extras + conda install numpy matplotlib scipy + conda install slycot pmw jupyter - # Install python-control dependencies - conda install numpy matplotlib scipy jupyter - conda install -c conda-forge slycot pmw - - - name: Install with setup.py - run: python setup.py install + - name: Install from source + run: pip install . - name: Run examples run: | diff --git a/setup.py b/setup.py index 2021d5eb9..45db2341b 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ exec(fd.read(), ver) version = ver.get('__version__', 'dev') except IOError: - version = 'dev' + version = '0.0.0dev' with open('README.rst') as fp: long_description = fp.read() From 3aeac6189227e4b97a868da33220ff28ab1a965c Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 6 Aug 2022 10:12:06 +0200 Subject: [PATCH 0040/1025] Build Slycot from source using PyPI wheels --- .github/workflows/control-slycot-src.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/control-slycot-src.yml b/.github/workflows/control-slycot-src.yml index ffbeca3f9..f42de8802 100644 --- a/.github/workflows/control-slycot-src.yml +++ b/.github/workflows/control-slycot-src.yml @@ -15,17 +15,14 @@ jobs: uses: actions/setup-python@v2 - name: Install Python dependencies run: | - # Set up conda - echo $CONDA/bin >> $GITHUB_PATH - # Set up (virtual) X11 sudo apt install -y xvfb # Install test tools - conda install pip pytest pytest-timeout + pip install pytest pytest-timeout # Install python-control dependencies - conda install numpy matplotlib scipy + pip install numpy matplotlib scipy - name: Checkout Slycot uses: actions/checkout@v3 @@ -43,10 +40,9 @@ jobs: # Install compilers, libraries, and development environment sudo apt-get -y install gfortran cmake --fix-missing sudo apt-get -y install libblas-dev liblapack-dev - conda install -c conda-forge scikit-build setuptools-scm # Compile and install slycot - pip install -v --no-build-isolation --no-deps . + pip install -v . - name: Test with pytest working-directory: python-control From 8c963bb306d0039a04c7f130bdc4c1ae73e703cd Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 6 Aug 2022 14:05:18 +0200 Subject: [PATCH 0041/1025] Modernize build system with PEP517 --- README.rst | 15 +++++-------- make_version.py | 58 ------------------------------------------------- pyproject.toml | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ setup.cfg | 7 ------ setup.py | 52 -------------------------------------------- 5 files changed, 64 insertions(+), 126 deletions(-) delete mode 100644 make_version.py create mode 100644 pyproject.toml delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/README.rst b/README.rst index f1feda7c5..7e2058293 100644 --- a/README.rst +++ b/README.rst @@ -97,17 +97,14 @@ To install using pip:: If you install Slycot using pip you'll need a development environment (e.g., Python development files, C and Fortran compilers). -Distutils ---------- +Installing from source +---------------------- -To install in your home directory, use:: +To install from source, get the source code of the desired branch or release +from the github repository or archive, unpack, and run from within the +toplevel `python-control` directory:: - python setup.py install --user - -To install for all users (on Linux or Mac OS):: - - python setup.py build - sudo python setup.py install + pip install . Development diff --git a/make_version.py b/make_version.py deleted file mode 100644 index 356f4d747..000000000 --- a/make_version.py +++ /dev/null @@ -1,58 +0,0 @@ -# make_version.py - generate version information -# -# Author: Clancy Rowley -# Date: 2 Apr 2015 -# Modified: Richard M. Murray, 28 Dec 2017 -# -# This script is used to create the version information for the python- -# control package. The version information is now generated directly from -# tags in the git repository. Now, *before* running setup.py, one runs -# -# python make_version.py -# -# and this generates a file with the version information. This is copied -# from binstar (https://github.com/Binstar/binstar) and seems to work well. -# -# The original version of this script also created version information for -# conda, but this stopped working when conda v3 was released. Instead, we -# now use jinja templates in conda-recipe to create the conda information. -# The current version information is used in setup.py, control/__init__.py, -# and doc/conf.py (for sphinx). - -from subprocess import check_output -import os - -def main(): - cmd = 'git describe --always --long' - # describe --long usually outputs "tag-numberofcommits-commitname" - output = check_output(cmd.split()).decode('utf-8').strip().rsplit('-',2) - if len(output) == 3: - version, build, commit = output - else: - # If the clone is shallow, describe's output won't have tag and - # number of commits. This is a particular issue on Travis-CI, - # which by default clones with a depth of 50. - # This behaviour isn't well documented in git-describe docs, - # but see, e.g., https://stackoverflow.com/a/36389573/1008142 - # and https://github.com/travis-ci/travis-ci/issues/3412 - version = 'unknown' - build = 'unknown' - # we don't ever expect just one dash from describe --long, but - # just in case: - commit = '-'.join(output) - - print("Version: %s" % version) - print("Build: %s" % build) - print("Commit: %s\n" % commit) - - filename = "control/_version.py" - print("Writing %s" % filename) - with open(filename, 'w') as fd: - if build == '0': - fd.write('__version__ = "%s"\n' % (version)) - else: - fd.write('__version__ = "%s.post%s"\n' % (version, build)) - fd.write('__commit__ = "%s"\n' % (commit)) - -if __name__ == '__main__': - main() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..89690ac8d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,58 @@ +[build-system] +requires = [ + "setuptools", + "setuptools-scm", + "wheel" +] +build-backend = "setuptools.build_meta" + +[project] +name = "control" +description = "Python Control Systems Library" +authors = [{name = "Python Control Developers", email = "python-control-developers@lists.sourceforge.net"}] +license = {text = "BSD-3-Clause"} +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Science/Research", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Topic :: Software Development", + "Topic :: Scientific/Engineering", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX", + "Operating System :: Unix", + "Operating System :: MacOS", +] +requires-python = ">=3.7" +dependencies = [ + "numpy", + "scipy>=1.3", + "matplotlib", +] +dynamic = ["version"] + +[tool.setuptools] +packages = ["control"] + +[project.optional-dependencies] +test = ["pytest", "pytest-timeout"] +slycot = [ "slycot>=0.4.0" ] +cvxopt = [ "cvxopt>=1.2.0" ] + +[project.urls] +homepage = "https//python-control.org" +source = "https://github.com/python-control/python-control" + +[tool.setuptools_scm] +write_to = "control/_version.py" + +[tool.pytest.ini_options] +addopts = "-ra" +filterwarnings = [ + "error:.*matrix subclass:PendingDeprecationWarning", +] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 5b1ce28a7..000000000 --- a/setup.cfg +++ /dev/null @@ -1,7 +0,0 @@ -[bdist_wheel] -universal=1 - -[tool:pytest] -addopts = -ra -filterwarnings = - error:.*matrix subclass:PendingDeprecationWarning diff --git a/setup.py b/setup.py deleted file mode 100644 index 45db2341b..000000000 --- a/setup.py +++ /dev/null @@ -1,52 +0,0 @@ -from setuptools import setup, find_packages - -ver = {} -try: - with open('control/_version.py') as fd: - exec(fd.read(), ver) - version = ver.get('__version__', 'dev') -except IOError: - version = '0.0.0dev' - -with open('README.rst') as fp: - long_description = fp.read() - -CLASSIFIERS = """ -Development Status :: 3 - Alpha -Intended Audience :: Science/Research -Intended Audience :: Developers -License :: OSI Approved :: BSD License -Programming Language :: Python :: 3 -Programming Language :: Python :: 3.7 -Programming Language :: Python :: 3.8 -Programming Language :: Python :: 3.9 -Topic :: Software Development -Topic :: Scientific/Engineering -Operating System :: Microsoft :: Windows -Operating System :: POSIX -Operating System :: Unix -Operating System :: MacOS -""" - -setup( - name='control', - version=version, - author='Python Control Developers', - author_email='python-control-developers@lists.sourceforge.net', - url='http://python-control.org', - project_urls={ - 'Source': 'https://github.com/python-control/python-control', - }, - description='Python Control Systems Library', - long_description=long_description, - packages=find_packages(exclude=['benchmarks']), - classifiers=[f for f in CLASSIFIERS.split('\n') if f], - install_requires=['numpy', - 'scipy>=1.3', - 'matplotlib'], - extras_require={ - 'test': ['pytest', 'pytest-timeout'], - 'slycot': [ 'slycot>=0.4.0' ], - 'cvxopt': [ 'cvxopt>=1.2.0' ] - } -) From bfb591b702986fe5e5f3b8aba9cb8c6c17755373 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 6 Aug 2022 10:17:03 +0200 Subject: [PATCH 0042/1025] Bump upper tested version to Python 3.10 --- .github/conda-env/test-env.yml | 2 +- .github/workflows/python-package-conda.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/conda-env/test-env.yml b/.github/conda-env/test-env.yml index cc91a1ade..adaf685cf 100644 --- a/.github/conda-env/test-env.yml +++ b/.github/conda-env/test-env.yml @@ -8,4 +8,4 @@ dependencies: - pytest-timeout - numpy - matplotlib - - scipy \ No newline at end of file + - scipy diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 4e287b45a..c2bf21bce 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -8,20 +8,20 @@ jobs: Py${{ matrix.python-version }}; ${{ matrix.slycot || 'no' }} Slycot; ${{ matrix.pandas || 'no' }} Pandas; - ${{ matrix.cvxopt || 'no' }} CVXOPT; + ${{ matrix.cvxopt || 'no' }} CVXOPT ${{ matrix.array-and-matrix == 1 && '; array and matrix' || '' }} runs-on: ubuntu-latest strategy: max-parallel: 5 matrix: - python-version: [3.7, 3.9] + python-version: ['3.7', '3.10'] slycot: ["", "conda"] pandas: [""] cvxopt: ["", "conda"] array-and-matrix: [0] include: - - python-version: 3.9 + - python-version: '3.10' slycot: conda pandas: conda array-and-matrix: 1 @@ -55,7 +55,7 @@ jobs: mamba install pandas fi if [[ '${{matrix.cvxopt}}' == 'conda' ]]; then - mamba install cvxopt + mamba install cvxopt fi - name: Test with pytest From 9fc6005f3de9e910fc5c61ce156cf40160b1ee85 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 20 Aug 2022 12:48:38 +0200 Subject: [PATCH 0043/1025] don't fail fast --- .github/workflows/python-package-conda.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index c2bf21bce..fb924d39c 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -14,6 +14,7 @@ jobs: strategy: max-parallel: 5 + fail-fast: false matrix: python-version: ['3.7', '3.10'] slycot: ["", "conda"] From e8fd49e3bca517959a1532555253cf69a184eaf5 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 6 Aug 2022 12:00:57 +0200 Subject: [PATCH 0044/1025] Use pytest-xvfb in conda and enforce QtAgg only in one run --- .github/conda-env/test-env.yml | 1 + .github/workflows/control-slycot-src.yml | 14 +++----------- .github/workflows/install_examples.yml | 2 +- .github/workflows/python-package-conda.yml | 11 ++++++----- control/tests/rlocus_test.py | 2 ++ control/tests/sisotool_test.py | 4 ++++ 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/conda-env/test-env.yml b/.github/conda-env/test-env.yml index adaf685cf..a4944f768 100644 --- a/.github/conda-env/test-env.yml +++ b/.github/conda-env/test-env.yml @@ -6,6 +6,7 @@ dependencies: - pytest - pytest-cov - pytest-timeout + - pytest-xvfb - numpy - matplotlib - scipy diff --git a/.github/workflows/control-slycot-src.yml b/.github/workflows/control-slycot-src.yml index f42de8802..2ce2a11dd 100644 --- a/.github/workflows/control-slycot-src.yml +++ b/.github/workflows/control-slycot-src.yml @@ -13,16 +13,8 @@ jobs: path: python-control - name: Set up Python uses: actions/setup-python@v2 - - name: Install Python dependencies - run: | - # Set up (virtual) X11 - sudo apt install -y xvfb - - # Install test tools - pip install pytest pytest-timeout - - # Install python-control dependencies - pip install numpy matplotlib scipy + - name: Install Python dependencies and test tools + run: pip install -v -e './python-control[test]' - name: Checkout Slycot uses: actions/checkout@v3 @@ -46,4 +38,4 @@ jobs: - name: Test with pytest working-directory: python-control - run: xvfb-run --auto-servernum pytest control/tests + run: pytest -v control/tests diff --git a/.github/workflows/install_examples.yml b/.github/workflows/install_examples.yml index b1e7adb3c..84cd706f5 100644 --- a/.github/workflows/install_examples.yml +++ b/.github/workflows/install_examples.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v3 - name: Install Python dependencies from conda-forge run: | - # Set up conda using the preinstalled GHA conda environment + # Set up conda using the preinstalled GHA Miniconda environment echo $CONDA/bin >> $GITHUB_PATH conda config --add channels conda-forge conda config --set channel_priority strict diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index fb924d39c..ae889fd05 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -10,6 +10,7 @@ jobs: ${{ matrix.pandas || 'no' }} Pandas; ${{ matrix.cvxopt || 'no' }} CVXOPT ${{ matrix.array-and-matrix == 1 && '; array and matrix' || '' }} + ${{ matrix.mplbackend && format('; {0}', matrix.mplbackend) }} runs-on: ubuntu-latest strategy: @@ -20,19 +21,19 @@ jobs: slycot: ["", "conda"] pandas: [""] cvxopt: ["", "conda"] + mplbackend: [""] array-and-matrix: [0] include: - python-version: '3.10' slycot: conda pandas: conda + cvxopt: conda + mplbackend: QtAgg array-and-matrix: 1 steps: - uses: actions/checkout@v3 - - name: Set up (virtual) X11 - run: sudo apt install -y xvfb - - name: Setup Conda uses: conda-incubator/setup-miniconda@v2 with: @@ -63,8 +64,8 @@ jobs: shell: bash -l {0} env: PYTHON_CONTROL_ARRAY_AND_MATRIX: ${{ matrix.array-and-matrix }} - run: | - xvfb-run --auto-servernum pytest --cov=control --cov-config=.coveragerc control/tests + MPLBACKEND: ${{ matrix.mplbackend }} + run: pytest -v --cov=control --cov-config=.coveragerc control/tests - name: Coveralls parallel # https://github.com/coverallsapp/github-action diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index a0ecebb15..4fbe70c4f 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -85,6 +85,8 @@ def test_root_locus_neg_false_gain_nonproper(self): # TODO: cover and validate negative false_gain branch in _default_gains() + @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, + reason="Requires the zoom toolbar") def test_root_locus_zoom(self): """Check the zooming functionality of the Root locus plot""" system = TransferFunction([1000], [1, 25, 100, 0]) diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index d5e9dd013..a1f468eea 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -46,6 +46,8 @@ def sys221(self): D221 = [[1., -1.]] return StateSpace(A222, B222, C221, D221) + @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, + reason="Requires the zoom toolbar") def test_sisotool(self, tsys): sisotool(tsys, Hz=False) fig = plt.gcf() @@ -114,6 +116,8 @@ def test_sisotool(self, tsys): assert_array_almost_equal( ax_step.lines[0].get_data()[1][:10], step_response_moved, 4) + @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, + reason="Requires the zoom toolbar") @pytest.mark.parametrize('tsys', [0, True], indirect=True, ids=['ctime', 'dtime']) def test_sisotool_tvect(self, tsys): From 69fb34a462015193d514ea881001b503553f2493 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 20 Aug 2022 12:03:36 +0200 Subject: [PATCH 0045/1025] Replace mplcleanup decorator use by fixture --- control/tests/config_test.py | 20 ++++++-------------- control/tests/conftest.py | 14 ++++++-------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 295c68bdd..c36f67280 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -8,7 +8,6 @@ from math import pi, log10 import matplotlib.pyplot as plt -from matplotlib.testing.decorators import cleanup as mplcleanup import numpy as np import pytest @@ -18,7 +17,6 @@ @pytest.mark.usefixtures("editsdefaults") # makes sure to reset the defaults # to the test configuration class TestConfig: - # Create a simple second order system to use for testing sys = ct.tf([10], [1, 2, 1]) @@ -28,8 +26,7 @@ def test_set_defaults(self): assert ct.config.defaults['freqplot.deg'] == 2 assert ct.config.defaults['freqplot.Hz'] is None - @mplcleanup - def test_get_param(self): + def test_get_param(self, mplcleanup): assert ct.config._get_param('freqplot', 'dB')\ == ct.config.defaults['freqplot.dB'] assert ct.config._get_param('freqplot', 'dB', 1) == 1 @@ -92,8 +89,7 @@ def test_default_deprecation(self): assert ct.config.defaults['bode.Hz'] \ == ct.config.defaults['freqplot.Hz'] - @mplcleanup - def test_fbs_bode(self): + def test_fbs_bode(self, mplcleanup): ct.use_fbs_defaults() # Generate a Bode plot @@ -137,8 +133,7 @@ def test_fbs_bode(self): phase_x, phase_y = (((plt.gcf().axes[1]).get_lines())[0]).get_data() np.testing.assert_almost_equal(phase_y[-1], -pi, decimal=2) - @mplcleanup - def test_matlab_bode(self): + def test_matlab_bode(self, mplcleanup): ct.use_matlab_defaults() # Generate a Bode plot @@ -182,8 +177,7 @@ def test_matlab_bode(self): phase_x, phase_y = (((plt.gcf().axes[1]).get_lines())[0]).get_data() np.testing.assert_almost_equal(phase_y[-1], -pi, decimal=2) - @mplcleanup - def test_custom_bode_default(self): + def test_custom_bode_default(self, mplcleanup): ct.config.defaults['freqplot.dB'] = True ct.config.defaults['freqplot.deg'] = True ct.config.defaults['freqplot.Hz'] = True @@ -204,8 +198,7 @@ def test_custom_bode_default(self): np.testing.assert_almost_equal(mag_y[0], 20*log10(10), decimal=3) np.testing.assert_almost_equal(phase_y[-1], -pi, decimal=2) - @mplcleanup - def test_bode_number_of_samples(self): + def test_bode_number_of_samples(self, mplcleanup): # Set the number of samples (default is 50, from np.logspace) mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, omega_num=87) assert len(mag_ret) == 87 @@ -219,8 +212,7 @@ def test_bode_number_of_samples(self): mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, omega_num=87) assert len(mag_ret) == 87 - @mplcleanup - def test_bode_feature_periphery_decade(self): + def test_bode_feature_periphery_decade(self, mplcleanup): # Generate a sample Bode plot to figure out the range it uses ct.reset_defaults() # Make sure starting state is correct mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, Hz=False) diff --git a/control/tests/conftest.py b/control/tests/conftest.py index 1201b8746..3f798f26c 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -1,13 +1,11 @@ """conftest.py - pytest local plugins and fixtures""" import os -import sys from contextlib import contextmanager import matplotlib as mpl import numpy as np import pytest -import scipy as sp import control @@ -45,7 +43,7 @@ def control_defaults(): params=[pytest.param("arrayout", marks=matrixerrorfilter), pytest.param("matrixout", marks=matrixfilter)]) def matarrayout(request): - """Switch the config to use np.ndarray and np.matrix as returns""" + """Switch the config to use np.ndarray and np.matrix as returns.""" restore = control.config.defaults['statesp.use_numpy_matrix'] control.use_numpy_matrix(request.param == "matrixout", warn=False) yield @@ -53,7 +51,7 @@ def matarrayout(request): def ismatarrayout(obj): - """Test if the returned object has the correct type as configured + """Test if the returned object has the correct type as configured. note that isinstance(np.matrix(obj), np.ndarray) is True """ @@ -63,7 +61,7 @@ def ismatarrayout(obj): def asmatarrayout(obj): - """Return a object according to the configured default""" + """Return a object according to the configured default.""" use_matrix = control.config.defaults['statesp.use_numpy_matrix'] matarray = np.asmatrix if use_matrix else np.asarray return matarray(obj) @@ -71,7 +69,7 @@ def asmatarrayout(obj): @contextmanager def check_deprecated_matrix(): - """Check that a call produces a deprecation warning because of np.matrix""" + """Check that a call produces a deprecation warning because of np.matrix.""" use_matrix = control.config.defaults['statesp.use_numpy_matrix'] if use_matrix: with pytest.deprecated_call(): @@ -94,13 +92,13 @@ def check_deprecated_matrix(): False)] if usebydefault or TEST_MATRIX_AND_ARRAY]) def matarrayin(request): - """Use array and matrix to construct input data in tests""" + """Use array and matrix to construct input data in tests.""" return request.param @pytest.fixture(scope="function") def editsdefaults(): - """Make sure any changes to the defaults only last during a test""" + """Make sure any changes to the defaults only last during a test.""" restore = control.config.defaults.copy() yield control.config.defaults = restore.copy() From 3dcad07abdfe694fc6fbe480a3cab574e0abf3e9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 4 Aug 2022 08:13:16 -0700 Subject: [PATCH 0046/1025] initial bspline implementation --- control/flatsys/__init__.py | 1 + control/flatsys/basis.py | 5 + control/flatsys/bspline.py | 198 ++++++++++++++++++++++++++++++++++ control/flatsys/flatsys.py | 4 + control/tests/bspline_test.py | 181 +++++++++++++++++++++++++++++++ control/tests/flatsys_test.py | 15 +-- 6 files changed, 398 insertions(+), 6 deletions(-) create mode 100644 control/flatsys/bspline.py create mode 100644 control/tests/bspline_test.py diff --git a/control/flatsys/__init__.py b/control/flatsys/__init__.py index 0926fa81a..6e8eac030 100644 --- a/control/flatsys/__init__.py +++ b/control/flatsys/__init__.py @@ -54,6 +54,7 @@ from .basis import BasisFamily from .poly import PolyFamily from .bezier import BezierFamily +from .bspline import BSplineFamily # Classes from .systraj import SystemTrajectory diff --git a/control/flatsys/basis.py b/control/flatsys/basis.py index 1ea957f52..a0986bd61 100644 --- a/control/flatsys/basis.py +++ b/control/flatsys/basis.py @@ -61,5 +61,10 @@ def __call__(self, i, t): """Evaluate the ith basis function at a point in time""" return self.eval_deriv(i, 0, t) + def eval(self, coeffs, tlist): + return [ + sum([coeffs[i] * self(i, t) for i in range(self.N)]) + for t in tlist] + def eval_deriv(self, i, j, t): raise NotImplementedError("Internal error; improper basis functions") diff --git a/control/flatsys/bspline.py b/control/flatsys/bspline.py new file mode 100644 index 000000000..5e3b98cb5 --- /dev/null +++ b/control/flatsys/bspline.py @@ -0,0 +1,198 @@ +# bspline.py - B-spline basis functions +# RMM, 2 Aug 2022 +# +# This class implements a set of B-spline basis functions that implement a +# piecewise polynomial at a set of breakpoints t0, ..., tn with given orders +# and smoothness. +# + +import numpy as np +from .basis import BasisFamily +from scipy.interpolate import BSpline, splev + +class BSplineFamily(BasisFamily): + """B-spline basis functions. + + This class represents a B-spline basis for piecewise polynomials defined + across a set of breakpoints with given order and smoothness. + + """ + def __init__(self, breakpoints, degree, smoothness=None, vars=1): + """Create a B-spline basis for piecewise smooth polynomials + + Define B-spline polynomials for a set of one or more variables. + B-splines are characterized by a set of intervals separated by break + points. On each interval we have a polynomial of a certain order + and the spline is continuous up to a given smoothness at interior + break points. + + Parameters + ---------- + breakpoints : 1D array or 2D array of float + The breakpoints for the spline(s). + + degree : int or list of ints + For each spline variable, the degree of the polynomial between + break points. If a single number is given and more than one + spline variable is specified, the same order is used for each + spline variable. + + smoothness : int or list of ints + For each spline variable, the smoothness at breakpoints (number + of derivatives that should match). + + vars : int or list of str, option + The number of spline variables or a list of spline variable names. + + """ + # Process the breakpoints for the spline */ + breakpoints = np.array(breakpoints, dtype=float) + if breakpoints.ndim == 2: + raise NotImplementedError( + "breakpoints for each spline variable not yet supported") + elif breakpoints.ndim != 1: + raise ValueError("breakpoints must be convertable to a 1D array") + elif breakpoints.size < 2: + raise ValueError("break point vector must have at least 2 values") + elif np.any(np.diff(breakpoints) <= 0): + raise ValueError("break points must be strictly increasing values") + + # Decide on the number of spline variables + if isinstance(vars, list) and all([isinstance(v, str) for v in vars]): + raise NotImplemented("list of variable names not yet supported") + elif not isinstance(vars, int): + raise TypeError("vars must be an integer or list of strings") + else: + nvars = vars + + # + # Process B-spline parameters (order, smoothness) + # + # B-splines are characterized by a set of intervals separated by + # breakpoints. On each interval we have a polynomial of a certain + # order and the spline is continuous up to a given smoothness at + # breakpoints. The code in this section allows some flexibility in + # the way that all of this information is supplied, including using + # scalar values for parameters (which are then broadcast to each + # output) and inferring values and dimensions from other + # information, when possible. + # + + # Utility function for broadcasting spline params (order, smoothness) + def process_spline_parameters( + values, length, allowed_types, minimum=0, + default=None, name='unknown'): + + # Preprocessing + if values is None and default is None: + return None + elif values is None: + values = default + elif isinstance(values, np.ndarray): + # Convert ndarray to list + values = values.tolist() + + # Figure out what type of object we were passed + if isinstance(values, allowed_types): + # Single number of an allowed type => broadcast to list + values = [values for i in range(length)] + elif all([isinstance(v, allowed_types) for v in values]): + # List of values => make sure it is the right size + if len(values) != length: + raise ValueError(f"length of '{name}' does not match n") + else: + raise ValueError(f"could not parse '{name}' keyword") + + # Check to make sure the values are OK + if values is not None and any([val < minimum for val in values]): + raise ValueError( + f"invalid value for {name}; must be at least {minimum}") + + return values + + # Degree of polynomial + degree = process_spline_parameters( + degree, nvars, (int), name='degree', minimum=1) + + # Smoothness at breakpoints; set default to degree - 1 (max possible) + smoothness = process_spline_parameters( + smoothness, nvars, (int), name='smoothness', minimum=0, + default=[d - 1 for d in degree]) + + # Make sure degree is sufficent for the level of smoothness + if any([degree[i] - smoothness[i] < 1 for i in range(nvars)]): + raise ValueError("degree must be greater than smoothness") + + # Store the parameters and process them in call_ntg() + self.nvars = nvars + self.breakpoints = breakpoints + self.degree = degree + self.smoothness = smoothness + self.nintervals = breakpoints.size - 1 + + # + # Compute parameters for a SciPy BSpline object + # + # To create a B-spline, we need to compute the knot points, keeping + # track of the use of repeated knot points at the initial knot and + # final knot as well as repeated knots at intermediate points + # depending on the desired smoothness. + # + + # Store the coefficients for each output (useful later) + self.coef_offset, self.coef_length, offset = [], [], 0 + for i in range(self.nvars): + # Compute number of coefficients for the piecewise polynomial + ncoefs = (self.degree[i] + 1) * (len(self.breakpoints) - 1) - \ + (self.smoothness[i] + 1) * (len(self.breakpoints) - 2) + + self.coef_offset.append(offset) + self.coef_length.append(ncoefs) + offset += ncoefs + self.N = offset # save the total number of coefficients + + # Create knot points for each spline variable + # TODO: extend to multi-dimensional breakpoints + self.knotpoints = [] + for i in range(self.nvars): + # Allocate space for the knotpoints + self.knotpoints.append(np.empty( + (self.degree[i] + 1) + (len(self.breakpoints) - 2) * \ + (self.degree[i] - self.smoothness[i]) + (self.degree[i] + 1))) + + # Initial knot points + self.knotpoints[i][0:self.degree[i] + 1] = self.breakpoints[0] + offset = self.degree[i] + 1 + + # Interior knot points + nknots = self.degree[i] - self.smoothness[i] + assert nknots > 0 # just in case + for j in range(1, self.breakpoints.size - 1): + self.knotpoints[i][offset:offset+nknots] = self.breakpoints[j] + offset += nknots + + # Final knot point + self.knotpoints[i][offset:offset + self.degree[i] + 1] = \ + self.breakpoints[-1] + + def eval(self, coefs, tlist): + return np.array([ + BSpline(self.knotpoints[i], + coefs[self.coef_offset[i]: + self.coef_offset[i] + self.coef_length[i]], + self.degree[i])(tlist) + for i in range(self.nvars)]) + + # Compute the kth derivative of the ith basis function at time t + def eval_deriv(self, i, k, t, squeeze=True): + """Evaluate the kth derivative of the ith basis function at time t.""" + if self.nvars > 1 or not squeeze: + raise NotImplementedError( + "derivatives of multi-variable splines not yet supported") + + # Create a coefficient vector for this spline + coefs = np.zeros(self.coef_length[0]); coefs[i] = 1 + + # Evaluate the derivative of the spline at the desired point in time + return BSpline(self.knotpoints[0], coefs, + self.degree[0]).derivative(k)(t) diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index c01eb9127..aa701af4b 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -413,7 +413,10 @@ def point_to_point( # # Start by solving the least squares problem + # TODO: add warning if rank is too small alpha, residuals, rank, s = np.linalg.lstsq(M, Z, rcond=None) + if rank < Z.size: + warnings.warn("basis too small; solution may not exist") if cost is not None or trajectory_constraints is not None: # Search over the null space to minimize cost/satisfy constraints @@ -425,6 +428,7 @@ def traj_cost(null_coeffs): coeffs = alpha + N @ null_coeffs # Evaluate the costs at the listed time points + # TODO: store Mt ahead of time, since it doesn't change costval = 0 for t in timepts: M_t = _basis_flag_matrix(sys, basis, zflag_T0, t) diff --git a/control/tests/bspline_test.py b/control/tests/bspline_test.py new file mode 100644 index 000000000..b00f856dc --- /dev/null +++ b/control/tests/bspline_test.py @@ -0,0 +1,181 @@ +"""bspline_test.py - test bsplines and their use in flat system + +RMM, 2 Aug 2022 + +This test suite checks to make sure that the bspline basic functions +supporting differential flat systetms are functioning. It doesn't do +exhaustive testing of operations on flat systems. Separate unit tests +should be created for that purpose. + +""" + +import numpy as np +import pytest +import scipy as sp + +import control as ct +import control.flatsys as fs +import control.optimal as opt + +def test_bspline_basis(): + Tf = 10 + degree = 5 + maxderiv = 4 + bspline = fs.BSplineFamily([0, Tf/3, Tf/2, Tf], degree, maxderiv) + time = np.linspace(0, Tf, 100) + + # Make sure that the knotpoint vector looks right + np.testing.assert_equal( + bspline.knotpoints, + [np.array([0, 0, 0, 0, 0, 0, + Tf/3, Tf/2, + Tf, Tf, Tf, Tf, Tf, Tf])]) + + # Repeat with default smoothness + bspline = fs.BSplineFamily([0, Tf/3, Tf/2, Tf], degree) + np.testing.assert_equal( + bspline.knotpoints, + [np.array([0, 0, 0, 0, 0, 0, + Tf/3, Tf/2, + Tf, Tf, Tf, Tf, Tf, Tf])]) + + # Sum of the B-spline curves should be one + np.testing.assert_almost_equal( + 1, sum([bspline(i, time) for i in range(bspline.N)])) + + # Sum of derivatives should be zero + for k in range(1, maxderiv): + np.testing.assert_almost_equal( + 0, sum([bspline.eval_deriv(i, k, time) + for i in range(0, bspline.N)])) + + # Make sure that the second derivative integrates to the first + time = np.linspace(0, Tf, 1000) + dt = time[1] - time[0] + for i in range(bspline.N): + for j in range(1, maxderiv): + np.testing.assert_allclose( + np.diff(bspline.eval_deriv(i, j-1, time)) / dt, + bspline.eval_deriv(i, j, time)[0:-1], + atol=0.01, rtol=0.01) + + # Exception check + with pytest.raises(IndexError, match="out of bounds"): + bspline.eval_deriv(bspline.N, 0, time) + + +@pytest.mark.parametrize( + "xf, uf, Tf", + [([1, 0], [0], 2), + ([0, 1], [0], 3), + ([1, 1], [1], 4)]) +def test_double_integrator(xf, uf, Tf): + # Define a second order integrator + sys = ct.StateSpace([[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], 0) + flatsys = fs.LinearFlatSystem(sys) + + # Define the basis set + bspline = fs.BSplineFamily([0, Tf/2, Tf], 4, 2) + + x0, u0, = [0, 0], [0] + traj = fs.point_to_point(flatsys, Tf, x0, u0, xf, uf, basis=bspline) + + # Verify that the trajectory computation is correct + x, u = traj.eval([0, Tf]) + np.testing.assert_array_almost_equal(x0, x[:, 0]) + np.testing.assert_array_almost_equal(u0, u[:, 0]) + np.testing.assert_array_almost_equal(xf, x[:, 1]) + np.testing.assert_array_almost_equal(uf, u[:, 1]) + + # Simulate the system and make sure we stay close to desired traj + T = np.linspace(0, Tf, 200) + xd, ud = traj.eval(T) + + t, y, x = ct.forced_response(sys, T, ud, x0, return_x=True) + np.testing.assert_array_almost_equal(x, xd, decimal=3) + + # Multi-dimensional splines not yet implemented + bspline = fs.BSplineFamily([0, Tf/3, Tf/2, Tf], [4, 5], [2, 3], vars=2) + with pytest.raises(NotImplementedError, match="not yet supported"): + fs.point_to_point(flatsys, Tf, x0, u0, xf, uf, basis=bspline) + + +# Bicycle model +def vehicle_flat_forward(x, u, params={}): + b = params.get('wheelbase', 3.) # get parameter values + zflag = [np.zeros(3), np.zeros(3)] # list for flag arrays + zflag[0][0] = x[0] # flat outputs + zflag[1][0] = x[1] + zflag[0][1] = u[0] * np.cos(x[2]) # first derivatives + zflag[1][1] = u[0] * np.sin(x[2]) + thdot = (u[0]/b) * np.tan(u[1]) # dtheta/dt + zflag[0][2] = -u[0] * thdot * np.sin(x[2]) # second derivatives + zflag[1][2] = u[0] * thdot * np.cos(x[2]) + return zflag + +def vehicle_flat_reverse(zflag, params={}): + b = params.get('wheelbase', 3.) # get parameter values + x = np.zeros(3); u = np.zeros(2) # vectors to store x, u + x[0] = zflag[0][0] # x position + x[1] = zflag[1][0] # y position + x[2] = np.arctan2(zflag[1][1], zflag[0][1]) # angle + u[0] = zflag[0][1] * np.cos(x[2]) + zflag[1][1] * np.sin(x[2]) + thdot_v = zflag[1][2] * np.cos(x[2]) - zflag[0][2] * np.sin(x[2]) + u[1] = np.arctan2(thdot_v, u[0]**2 / b) + return x, u + +def vehicle_update(t, x, u, params): + b = params.get('wheelbase', 3.) # get parameter values + dx = np.array([ + np.cos(x[2]) * u[0], + np.sin(x[2]) * u[0], + (u[0]/b) * np.tan(u[1]) + ]) + return dx + +def vehicle_output(t, x, u, params): return x + +# Create differentially flat input/output system +vehicle_flat = fs.FlatSystem( + vehicle_flat_forward, vehicle_flat_reverse, vehicle_update, + vehicle_output, inputs=('v', 'delta'), outputs=('x', 'y', 'theta'), + states=('x', 'y', 'theta')) + +def test_kinematic_car(): + # Define the endpoints of the trajectory + x0 = [0., -2., 0.]; u0 = [10., 0.] + xf = [100., 2., 0.]; uf = [10., 0.] + Tf = 10 + + # Set up a basis vector + bspline = fs.BSplineFamily([0, Tf/2, Tf], 5, 3) + + # Find trajectory between initial and final conditions + traj = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=bspline) + + # Verify that the trajectory computation is correct + x, u = traj.eval([0, Tf]) + np.testing.assert_array_almost_equal(x0, x[:, 0]) + np.testing.assert_array_almost_equal(u0, u[:, 0]) + np.testing.assert_array_almost_equal(xf, x[:, 1]) + np.testing.assert_array_almost_equal(uf, u[:, 1]) + +def test_bspline_errors(): + # Breakpoints must be a 1D array, in increasing order + with pytest.raises(NotImplementedError, match="not yet supported"): + basis = fs.BSplineFamily([[0, 1, 3], [0, 2, 3]], [3, 3]) + + with pytest.raises(ValueError, + match="breakpoints must be convertable to a 1D array"): + basis = fs.BSplineFamily([[[0, 1], [0, 1]], [[0, 1], [0, 1]]], [3, 3]) + + with pytest.raises(ValueError, match="must have at least 2 values"): + basis = fs.BSplineFamily([10], 2) + + with pytest.raises(ValueError, match="must be strictly increasing"): + basis = fs.BSplineFamily([1, 3, 2], 2) + + # Smoothness can't be more than dimension of splines + basis = fs.BSplineFamily([0, 1], 4, 3) # OK + with pytest.raises(ValueError, match="degree must be greater"): + basis = fs.BSplineFamily([0, 1], 4, 4) # not OK diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index e3584d459..4eb091b14 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -150,7 +150,10 @@ def test_flat_default_output(self, vehicle_flat): resp2 = ct.input_output_response(flatsys, T, u1, x0) np.testing.assert_array_almost_equal(resp1.outputs[0:2], resp2.outputs) - def test_flat_cost_constr(self): + @pytest.mark.parametrize("basis", [ + fs.PolyFamily(8), + fs.BSplineFamily([0, 3, 7, 10], 4, 2)]) + def test_flat_cost_constr(self, basis): # Double integrator system sys = ct.ss([[0, 1], [0, 0]], [[0], [1]], [[1, 0]], 0) flat_sys = fs.LinearFlatSystem(sys) @@ -159,11 +162,11 @@ def test_flat_cost_constr(self): x0 = [1, 0]; u0 = [0] xf = [0, 0]; uf = [0] Tf = 10 - T = np.linspace(0, Tf, 500) + T = np.linspace(0, Tf, 100) # Find trajectory between initial and final conditions traj = fs.point_to_point( - flat_sys, Tf, x0, u0, xf, uf, basis=fs.PolyFamily(8)) + flat_sys, Tf, x0, u0, xf, uf, basis=basis) x, u = traj.eval(T) np.testing.assert_array_almost_equal(x0, x[:, 0]) @@ -178,7 +181,7 @@ def test_flat_cost_constr(self): traj_cost = fs.point_to_point( flat_sys, timepts, x0, u0, xf, uf, cost=cost_fcn, - basis=fs.PolyFamily(8), + basis=basis, # initial_guess='lstsq', # minimize_kwargs={'method': 'trust-constr'} ) @@ -204,7 +207,7 @@ def test_flat_cost_constr(self): traj_const = fs.point_to_point( flat_sys, timepts, x0, u0, xf, uf, cost=cost_fcn, - constraints=constraints, basis=fs.PolyFamily(8), + constraints=constraints, basis=basis, ) # Verify that the trajectory computation is correct @@ -224,7 +227,7 @@ def test_flat_cost_constr(self): (sp.optimize.NonlinearConstraint, lambda x, u: x, lb, ub)] traj_nlconst = fs.point_to_point( flat_sys, timepts, x0, u0, xf, uf, cost=cost_fcn, - constraints=nl_constraints, basis=fs.PolyFamily(8), + constraints=nl_constraints, basis=basis, ) x_nlconst, u_nlconst = traj_nlconst.eval(T) np.testing.assert_almost_equal(x_const, x_nlconst) From 0ab0d0703f22281aee4bf8d7db65bda8effeb372 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 8 Aug 2022 22:14:47 -0700 Subject: [PATCH 0047/1025] add support for multiple spline variables; update docstrings --- control/flatsys/basis.py | 43 +++++++++++++++---- control/flatsys/bezier.py | 2 +- control/flatsys/bspline.py | 77 +++++++++++++++++------------------ control/flatsys/flatsys.py | 31 +++++++++----- control/flatsys/poly.py | 2 +- control/flatsys/systraj.py | 4 +- control/tests/bspline_test.py | 50 ++++++++++++++++++++--- 7 files changed, 142 insertions(+), 67 deletions(-) diff --git a/control/flatsys/basis.py b/control/flatsys/basis.py index a0986bd61..ad1d8b2a3 100644 --- a/control/flatsys/basis.py +++ b/control/flatsys/basis.py @@ -47,7 +47,11 @@ class BasisFamily: :math:`z_i^{(q)}(t)` = basis.eval_deriv(self, i, j, t) - Parameters + A basis set can either consist of a single variable that is used for + each flat output (nvars = None) or a different variable for different + flat outputs (nvars > 0). + + Attributes ---------- N : int Order of the basis set. @@ -56,15 +60,38 @@ class BasisFamily: def __init__(self, N): """Create a basis family of order N.""" self.N = N # save number of basis functions + self.nvars = None # default number of variables + self.coef_offset = [0] # coefficient offset for each variable + self.coef_length = [N] # coefficient length for each variable - def __call__(self, i, t): + def __call__(self, i, t, var=None): """Evaluate the ith basis function at a point in time""" - return self.eval_deriv(i, 0, t) + return self.eval_deriv(i, 0, t, var=var) + + def var_ncoefs(self, var): + """Get the number of coefficients for a variable""" + return self.N if self.nvars is None else self.coef_length[var] + + def eval(self, coeffs, tlist, var=None): + if self.nvars is None and var != None: + raise SystemError("multi-variable call to a scalar basis") + + elif self.nvars is None: + # Single variable basis + return [ + sum([coeffs[i] * self(i, t) for i in range(self.N)]) + for t in tlist] - def eval(self, coeffs, tlist): - return [ - sum([coeffs[i] * self(i, t) for i in range(self.N)]) - for t in tlist] + else: + # Multi-variable basis + values = np.empty((self.nvars, tlist.size)) + for j in range(self.nvars): + coef_len = self.var_ncoefs(j) + values[j] = np.array([ + sum([coeffs[i] * self(i, t, var=j) + for i in range(coef_len)]) + for t in tlist]) + return values - def eval_deriv(self, i, j, t): + def eval_deriv(self, i, j, t, var=None): raise NotImplementedError("Internal error; improper basis functions") diff --git a/control/flatsys/bezier.py b/control/flatsys/bezier.py index 7e41c546e..d2ab1f275 100644 --- a/control/flatsys/bezier.py +++ b/control/flatsys/bezier.py @@ -59,7 +59,7 @@ def __init__(self, N, T=1): self.T = T # save end of time interval # Compute the kth derivative of the ith basis function at time t - def eval_deriv(self, i, k, t): + def eval_deriv(self, i, k, t, var=None): """Evaluate the kth derivative of the ith basis function at time t.""" if i >= self.N: raise ValueError("Basis function index too high") diff --git a/control/flatsys/bspline.py b/control/flatsys/bspline.py index 5e3b98cb5..a0e5bf3f0 100644 --- a/control/flatsys/bspline.py +++ b/control/flatsys/bspline.py @@ -17,14 +17,14 @@ class BSplineFamily(BasisFamily): across a set of breakpoints with given order and smoothness. """ - def __init__(self, breakpoints, degree, smoothness=None, vars=1): + def __init__(self, breakpoints, degree, smoothness=None, vars=None): """Create a B-spline basis for piecewise smooth polynomials Define B-spline polynomials for a set of one or more variables. - B-splines are characterized by a set of intervals separated by break - points. On each interval we have a polynomial of a certain order - and the spline is continuous up to a given smoothness at interior - break points. + B-splines are used as a basis for a set of piecewise smooth + polynomials joined at breakpoints. On each interval we have a + polynomial of a given order and the spline is continuous up to a + given smoothness at interior breakpoints. Parameters ---------- @@ -41,8 +41,11 @@ def __init__(self, breakpoints, degree, smoothness=None, vars=1): For each spline variable, the smoothness at breakpoints (number of derivatives that should match). - vars : int or list of str, option - The number of spline variables or a list of spline variable names. + vars : None or int, optional + The number of spline variables. If specified as None (default), + then the spline basis describes a single variable, with no + indexing. If the number of spine variables is > 0, then the + spline basis is index using the `var` keyword. """ # Process the breakpoints for the spline */ @@ -58,17 +61,19 @@ def __init__(self, breakpoints, degree, smoothness=None, vars=1): raise ValueError("break points must be strictly increasing values") # Decide on the number of spline variables - if isinstance(vars, list) and all([isinstance(v, str) for v in vars]): - raise NotImplemented("list of variable names not yet supported") + if vars is None: + nvars = 1 + self.nvars = None # track as single variable elif not isinstance(vars, int): - raise TypeError("vars must be an integer or list of strings") + raise TypeError("vars must be an integer") else: nvars = vars + self.nvars = nvars # # Process B-spline parameters (order, smoothness) # - # B-splines are characterized by a set of intervals separated by + # B-splines are defined on a set of intervals separated by # breakpoints. On each interval we have a polynomial of a certain # order and the spline is continuous up to a given smoothness at # breakpoints. The code in this section allows some flexibility in @@ -99,14 +104,15 @@ def process_spline_parameters( elif all([isinstance(v, allowed_types) for v in values]): # List of values => make sure it is the right size if len(values) != length: - raise ValueError(f"length of '{name}' does not match n") + raise ValueError(f"length of '{name}' does not match" + f" number of variables") else: raise ValueError(f"could not parse '{name}' keyword") # Check to make sure the values are OK if values is not None and any([val < minimum for val in values]): raise ValueError( - f"invalid value for {name}; must be at least {minimum}") + f"invalid value for '{name}'; must be at least {minimum}") return values @@ -123,25 +129,23 @@ def process_spline_parameters( if any([degree[i] - smoothness[i] < 1 for i in range(nvars)]): raise ValueError("degree must be greater than smoothness") - # Store the parameters and process them in call_ntg() - self.nvars = nvars + # Store the parameters for the spline (self.nvars already stored) self.breakpoints = breakpoints self.degree = degree self.smoothness = smoothness - self.nintervals = breakpoints.size - 1 # # Compute parameters for a SciPy BSpline object # - # To create a B-spline, we need to compute the knot points, keeping - # track of the use of repeated knot points at the initial knot and + # To create a B-spline, we need to compute the knotpoints, keeping + # track of the use of repeated knotpoints at the initial knot and # final knot as well as repeated knots at intermediate points # depending on the desired smoothness. # # Store the coefficients for each output (useful later) self.coef_offset, self.coef_length, offset = [], [], 0 - for i in range(self.nvars): + for i in range(nvars): # Compute number of coefficients for the piecewise polynomial ncoefs = (self.degree[i] + 1) * (len(self.breakpoints) - 1) - \ (self.smoothness[i] + 1) * (len(self.breakpoints) - 2) @@ -151,48 +155,43 @@ def process_spline_parameters( offset += ncoefs self.N = offset # save the total number of coefficients - # Create knot points for each spline variable + # Create knotpoints for each spline variable # TODO: extend to multi-dimensional breakpoints self.knotpoints = [] - for i in range(self.nvars): + for i in range(nvars): # Allocate space for the knotpoints self.knotpoints.append(np.empty( (self.degree[i] + 1) + (len(self.breakpoints) - 2) * \ (self.degree[i] - self.smoothness[i]) + (self.degree[i] + 1))) - # Initial knot points + # Initial knotpoints (multiplicity = order) self.knotpoints[i][0:self.degree[i] + 1] = self.breakpoints[0] offset = self.degree[i] + 1 - # Interior knot points + # Interior knotpoints (multiplicity = degree - smoothness) nknots = self.degree[i] - self.smoothness[i] assert nknots > 0 # just in case for j in range(1, self.breakpoints.size - 1): self.knotpoints[i][offset:offset+nknots] = self.breakpoints[j] offset += nknots - # Final knot point + # Final knotpoint (multiplicity = order) self.knotpoints[i][offset:offset + self.degree[i] + 1] = \ self.breakpoints[-1] - def eval(self, coefs, tlist): - return np.array([ - BSpline(self.knotpoints[i], - coefs[self.coef_offset[i]: - self.coef_offset[i] + self.coef_length[i]], - self.degree[i])(tlist) - for i in range(self.nvars)]) - # Compute the kth derivative of the ith basis function at time t - def eval_deriv(self, i, k, t, squeeze=True): + def eval_deriv(self, i, k, t, var=None): """Evaluate the kth derivative of the ith basis function at time t.""" - if self.nvars > 1 or not squeeze: - raise NotImplementedError( - "derivatives of multi-variable splines not yet supported") + if self.nvars is None or (self.nvars == 1 and var is None): + # Use same variable for all requests + var = 0 + elif self.nvars > 1 and var is None: + raise SystemError( + "scalar variable call to multi-variable splines") # Create a coefficient vector for this spline - coefs = np.zeros(self.coef_length[0]); coefs[i] = 1 + coefs = np.zeros(self.coef_length[var]); coefs[i] = 1 # Evaluate the derivative of the spline at the desired point in time - return BSpline(self.knotpoints[0], coefs, - self.degree[0]).derivative(k)(t) + return BSpline(self.knotpoints[var], coefs, + self.degree[var]).derivative(k)(t) diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index aa701af4b..96034158e 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -155,6 +155,7 @@ def __init__(self, if reverse is not None: self.reverse = reverse # Save the length of the flat flag + # TODO: missing def __str__(self): return f"{NonlinearIOSystem.__str__(self)}\n\n" \ @@ -233,17 +234,19 @@ def _basis_flag_matrix(sys, basis, flag, t, params={}): column of the matrix corresponds to a basis function and each row is a derivative, with the derivatives (flag) for each output stacked on top of each other. - +l """ flagshape = [len(f) for f in flag] - M = np.zeros((sum(flagshape), basis.N * sys.ninputs)) + M = np.zeros((sum(flagshape), + sum([basis.var_ncoefs(i) for i in range(sys.ninputs)]))) flag_off = 0 - coeff_off = 0 + coef_off = 0 for i, flag_len in enumerate(flagshape): - for j, k in itertools.product(range(basis.N), range(flag_len)): - M[flag_off + k, coeff_off + j] = basis.eval_deriv(j, k, t) + coef_len = basis.var_ncoefs(i) + for j, k in itertools.product(range(coef_len), range(flag_len)): + M[flag_off + k, coef_off + j] = basis.eval_deriv(j, k, t, var=i) flag_off += flag_len - coeff_off += basis.N + coef_off += coef_len return M @@ -362,11 +365,16 @@ def point_to_point( if basis is None: basis = PolyFamily(2 * (sys.nstates + sys.ninputs)) + # If a multivariable basis was given, make sure the size is correct + if basis.nvars is not None and basis.nvars != sys.ninputs: + raise ValueError("size of basis does not match flat system size") + # Make sure we have enough basis functions to solve the problem - if basis.N * sys.ninputs < 2 * (sys.nstates + sys.ninputs): + ncoefs = sum([basis.var_ncoefs(i) for i in range(sys.ninputs)]) + if ncoefs < 2 * (sys.nstates + sys.ninputs): raise ValueError("basis set is too small") elif (cost is not None or trajectory_constraints is not None) and \ - basis.N * sys.ninputs == 2 * (sys.nstates + sys.ninputs): + ncoefs == 2 * (sys.nstates + sys.ninputs): warnings.warn("minimal basis specified; optimization not possible") cost = None trajectory_constraints = None @@ -531,11 +539,12 @@ def traj_const(null_coeffs): # Store the flag lengths and coefficients # TODO: make this more pythonic - coeff_off = 0 + coef_off = 0 for i in range(sys.ninputs): # Grab the coefficients corresponding to this flat output - systraj.coeffs.append(alpha[coeff_off:coeff_off + basis.N]) - coeff_off += basis.N + coef_len = basis.var_ncoefs(i) + systraj.coeffs.append(alpha[coef_off:coef_off + coef_len]) + coef_off += coef_len # Keep track of the length of the flat flag for this output systraj.flaglen.append(len(zflag_T0[i])) diff --git a/control/flatsys/poly.py b/control/flatsys/poly.py index 08dcfb1c9..bb3677c48 100644 --- a/control/flatsys/poly.py +++ b/control/flatsys/poly.py @@ -55,7 +55,7 @@ def __init__(self, N): super(PolyFamily, self).__init__(N) # Compute the kth derivative of the ith basis function at time t - def eval_deriv(self, i, k, t): + def eval_deriv(self, i, k, t, var=None): """Evaluate the kth derivative of the ith basis function at time t.""" if (i < k): return 0; # higher derivative than power return factorial(i)/factorial(i-k) * np.power(t, i-k) diff --git a/control/flatsys/systraj.py b/control/flatsys/systraj.py index 9d425295b..c9bde6d7a 100644 --- a/control/flatsys/systraj.py +++ b/control/flatsys/systraj.py @@ -106,11 +106,11 @@ def eval(self, tlist): for i in range(self.ninputs): flag_len = self.flaglen[i] zflag.append(np.zeros(flag_len)) - for j in range(self.basis.N): + for j in range(self.basis.var_ncoefs(i)): for k in range(flag_len): #! TODO: rewrite eval_deriv to take in time vector zflag[i][k] += self.coeffs[i][j] * \ - self.basis.eval_deriv(j, k, t) + self.basis.eval_deriv(j, k, t, var=i) # Now copy the states and inputs # TODO: revisit order of list arguments diff --git a/control/tests/bspline_test.py b/control/tests/bspline_test.py index b00f856dc..0ac59094d 100644 --- a/control/tests/bspline_test.py +++ b/control/tests/bspline_test.py @@ -59,6 +59,11 @@ def test_bspline_basis(): bspline.eval_deriv(i, j, time)[0:-1], atol=0.01, rtol=0.01) + # Make sure that ndarrays are processed the same as integer lists + degree = np.array(degree) + bspline2 = fs.BSplineFamily([0, Tf/3, Tf/2, Tf], degree, maxderiv) + np.testing.assert_equal(bspline(0, time), bspline2(0, time)) + # Exception check with pytest.raises(IndexError, match="out of bounds"): bspline.eval_deriv(bspline.N, 0, time) @@ -94,11 +99,6 @@ def test_double_integrator(xf, uf, Tf): t, y, x = ct.forced_response(sys, T, ud, x0, return_x=True) np.testing.assert_array_almost_equal(x, xd, decimal=3) - # Multi-dimensional splines not yet implemented - bspline = fs.BSplineFamily([0, Tf/3, Tf/2, Tf], [4, 5], [2, 3], vars=2) - with pytest.raises(NotImplementedError, match="not yet supported"): - fs.point_to_point(flatsys, Tf, x0, u0, xf, uf, basis=bspline) - # Bicycle model def vehicle_flat_forward(x, u, params={}): @@ -160,6 +160,25 @@ def test_kinematic_car(): np.testing.assert_array_almost_equal(xf, x[:, 1]) np.testing.assert_array_almost_equal(uf, u[:, 1]) +def test_kinematic_car_multivar(): + # Define the endpoints of the trajectory + x0 = [0., -2., 0.]; u0 = [10., 0.] + xf = [100., 2., 0.]; uf = [10., 0.] + Tf = 10 + + # Set up a basis vector + bspline = fs.BSplineFamily([0, Tf/2, Tf], [5, 6], [3, 4], vars=2) + + # Find trajectory between initial and final conditions + traj = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=bspline) + + # Verify that the trajectory computation is correct + x, u = traj.eval([0, Tf]) + np.testing.assert_array_almost_equal(x0, x[:, 0]) + np.testing.assert_array_almost_equal(u0, u[:, 0]) + np.testing.assert_array_almost_equal(xf, x[:, 1]) + np.testing.assert_array_almost_equal(uf, u[:, 1]) + def test_bspline_errors(): # Breakpoints must be a 1D array, in increasing order with pytest.raises(NotImplementedError, match="not yet supported"): @@ -179,3 +198,24 @@ def test_bspline_errors(): basis = fs.BSplineFamily([0, 1], 4, 3) # OK with pytest.raises(ValueError, match="degree must be greater"): basis = fs.BSplineFamily([0, 1], 4, 4) # not OK + + # nvars must be an integer + with pytest.raises(TypeError, match="vars must be an integer"): + basis = fs.BSplineFamily([0, 1], 4, 3, vars=['x1', 'x2']) + + # degree, smoothness must match nvars + with pytest.raises(ValueError, match="length of 'degree' does not match"): + basis = fs.BSplineFamily([0, 1], [4, 4, 4], 3, vars=2) + + # degree, smoothness must be list of ints + basis = fs.BSplineFamily([0, 1], [4, 4], 3, vars=2) # OK + with pytest.raises(ValueError, match="could not parse 'degree'"): + basis = fs.BSplineFamily([0, 1], [4, '4'], 3, vars=2) + + # degree must be strictly positive + with pytest.raises(ValueError, match="'degree'; must be at least 1"): + basis = fs.BSplineFamily([0, 1], 0, 1) + + # smoothness must be non-negative + with pytest.raises(ValueError, match="'smoothness'; must be at least 0"): + basis = fs.BSplineFamily([0, 1], 2, -1) From 78f7bbb4361b8c6118e938e6fff7946a23324500 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 12 Aug 2022 20:32:55 -0700 Subject: [PATCH 0048/1025] initial implementation of solve_flat_ocp --- control/flatsys/__init__.py | 2 +- control/flatsys/flatsys.py | 316 +++++++++++++++++++++++++++++++++- control/tests/flatsys_test.py | 98 +++++++++++ 3 files changed, 411 insertions(+), 5 deletions(-) diff --git a/control/flatsys/__init__.py b/control/flatsys/__init__.py index 6e8eac030..8ead08dce 100644 --- a/control/flatsys/__init__.py +++ b/control/flatsys/__init__.py @@ -62,4 +62,4 @@ from .linflat import LinearFlatSystem # Package functions -from .flatsys import point_to_point +from .flatsys import point_to_point, solve_flat_ocp diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 96034158e..18b3d7ec6 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -411,7 +411,7 @@ def point_to_point( # Solve for the coefficients of the flat outputs # # At this point, we need to solve the equation M alpha = zflag, where M - # is the matrix constrains for initial and final conditions and zflag = + # is the matrix constraints for initial and final conditions and zflag = # [zflag_T0; zflag_tf]. # # If there are no constraints, then we just need to solve a linear @@ -426,6 +426,11 @@ def point_to_point( if rank < Z.size: warnings.warn("basis too small; solution may not exist") + # Precompute the collocation matrix the defines the flag at timepts + Mt_list = [] + for t in timepts: + Mt_list.append(_basis_flag_matrix(sys, basis, zflag_T0, t)) + if cost is not None or trajectory_constraints is not None: # Search over the null space to minimize cost/satisfy constraints N = sp.linalg.null_space(M) @@ -438,8 +443,8 @@ def traj_cost(null_coeffs): # Evaluate the costs at the listed time points # TODO: store Mt ahead of time, since it doesn't change costval = 0 - for t in timepts: - M_t = _basis_flag_matrix(sys, basis, zflag_T0, t) + for i, t in enumerate(timepts): + M_t = Mt_list[i] # Compute flag at this time point zflag = (M_t @ coeffs).reshape(sys.ninputs, -1) @@ -477,7 +482,7 @@ def traj_const(null_coeffs): values = [] for i, t in enumerate(timepts): # Calculate the states and inputs for the flat output - M_t = _basis_flag_matrix(sys, basis, zflag_T0, t) + M_t = Mt_list[i] # Compute flag at this time point zflag = (M_t @ coeffs).reshape(sys.ninputs, -1) @@ -551,3 +556,306 @@ def traj_const(null_coeffs): # Return a function that computes inputs and states as a function of time return systraj + + +# Solve a point to point trajectory generation problem for a flat system +def solve_flat_ocp( + sys, timepts, x0=0, u0=0, basis=None, trajectory_cost=None, + terminal_cost=None, trajectory_constraints=None, + initial_guess=None, params=None, **kwargs): + """Compute trajectory between an initial and final conditions. + + Compute an optimial trajectory for a differentially flat system starting + from an initial state and input value. + + Parameters + ---------- + flatsys : FlatSystem object + Description of the differentially flat system. This object must + define a function `flatsys.forward()` that takes the system state and + produceds the flag of flat outputs and a system `flatsys.reverse()` + that takes the flag of the flat output and prodes the state and + input. + + timepts : float or 1D array_like + The list of points for evaluating cost and constraints, as well as + the time horizon. If given as a float, indicates the final time for + the trajectory (corresponding to xf) + + x0, u0 : 1D arrays + Define the initial conditions for the system. If either of the + values are given as None, they are replaced by a vector of zeros of + the appropriate dimension. + + basis : :class:`~control.flatsys.BasisFamily` object, optional + The basis functions to use for generating the trajectory. If not + specified, the :class:`~control.flatsys.PolyFamily` basis family + will be used, with the minimal number of elements required to find a + feasible trajectory (twice the number of system states) + + trajectory_cost : callable + Function that returns the integral cost given the current state + and input. Called as `cost(x, u)`. + + terminal_cost : callable + Function that returns the terminal cost given the state and input. + Called as `cost(x, u)`. + + trajectory_constraints : list of tuples, optional + List of constraints that should hold at each point in the time vector. + Each element of the list should consist of a tuple with first element + given by :class:`scipy.optimize.LinearConstraint` or + :class:`scipy.optimize.NonlinearConstraint` and the remaining + elements of the tuple are the arguments that would be passed to those + functions. The following tuples are supported: + + * (LinearConstraint, A, lb, ub): The matrix A is multiplied by stacked + vector of the state and input at each point on the trajectory for + comparison against the upper and lower bounds. + + * (NonlinearConstraint, fun, lb, ub): a user-specific constraint + function `fun(x, u)` is called at each point along the trajectory + and compared against the upper and lower bounds. + + The constraints are applied at each time point along the trajectory. + + minimize_kwargs : str, optional + Pass additional keywords to :func:`scipy.optimize.minimize`. + + Returns + ------- + traj : :class:`~control.flatsys.SystemTrajectory` object + The system trajectory is returned as an object that implements the + `eval()` function, we can be used to compute the value of the state + and input and a given time t. + + Notes + ----- + Additional keyword parameters can be used to fine tune the behavior of + the underlying optimization function. See `minimize_*` keywords in + :func:`OptimalControlProblem` for more information. + + """ + # + # Make sure the problem is one that we can handle + # + x0 = _check_convert_array(x0, [(sys.nstates,), (sys.nstates, 1)], + 'Initial state: ', squeeze=True) + u0 = _check_convert_array(u0, [(sys.ninputs,), (sys.ninputs, 1)], + 'Initial input: ', squeeze=True) + + # Process final time + timepts = np.atleast_1d(timepts) + Tf = timepts[-1] + T0 = timepts[0] if len(timepts) > 1 else T0 + + # Process keyword arguments + if trajectory_constraints is None: + # Backwards compatibility + trajectory_constraints = kwargs.pop('constraints', None) + if trajectory_cost is None: + # Compatibility with point_to_point + trajectory_cost = kwargs.pop('cost', None) + + minimize_kwargs = {} + minimize_kwargs['method'] = kwargs.pop('minimize_method', None) + minimize_kwargs['options'] = kwargs.pop('minimize_options', {}) + minimize_kwargs.update(kwargs.pop('minimize_kwargs', {})) + + if trajectory_cost is None and terminal_cost is None: + raise TypeError("need trajectory and/or terminal cost required") + + if kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) + + # + # Determine the basis function set to use and make sure it is big enough + # + + # If no basis set was specified, use a polynomial basis (poor choice...) + if basis is None: + basis = PolyFamily(2 * (sys.nstates + sys.ninputs)) + + # If a multivariable basis was given, make sure the size is correct + if basis.nvars is not None and basis.nvars != sys.ninputs: + raise ValueError("size of basis does not match flat system size") + + # Make sure we have enough basis functions to solve the problem + ncoefs = sum([basis.var_ncoefs(i) for i in range(sys.ninputs)]) + if ncoefs <= sys.nstates + sys.ninputs: + raise ValueError("basis set is too small") + + # Figure out the parameters to use, if any + params = sys.params if params is None else params + + # + # Map the initial and conditions to flat output conditions + # + # We need to compute the output "flag": [z(t), z'(t), z''(t), ...] + # and then evaluate this at the initial and final condition. + # + + zflag_T0 = sys.forward(x0, u0, params) + Z_T0 = np.hstack(zflag_T0) + + # + # Compute the matrix constraints for initial conditions + # + # This computation depends on the basis function we are using. It + # essentially amounts to evaluating the basis functions and their + # derivatives at the initial conditions. + + # Compute the flags for the initial and final states + M_T0 = _basis_flag_matrix(sys, basis, zflag_T0, T0) + + # + # Solve for the coefficients of the flat outputs + # + # At this point, we need to solve the equation M_T0 alpha = zflag_T0. + # + # If there are no additional constraints, then we just need to solve a + # linear system of equations => use least squares. Otherwise, we have a + # nonlinear optimal control problem with equality constraints => use + # scipy.optimize.minimize(). + # + + # Start by solving the least squares problem + alpha, residuals, rank, s = np.linalg.lstsq(M_T0, Z_T0, rcond=None) + if rank < Z_T0.size: + warnings.warn("basis too small; solution may not exist") + + # Precompute the collocation matrix the defines the flag at timepts + # TODO: only compute if we have trajectory cost/constraints + Mt_list = [] + for t in timepts: + Mt_list.append(_basis_flag_matrix(sys, basis, zflag_T0, t)) + + # Search over the null space to minimize cost/satisfy constraints + N = sp.linalg.null_space(M_T0) + + # Define a function to evaluate the cost along a trajectory + def traj_cost(null_coeffs): + # Add this to the existing solution + coeffs = alpha + N @ null_coeffs + costval = 0 + + # Evaluate the trajectory costs at the listed time points + if trajectory_cost is not None: + for i, t in enumerate(timepts[0:-1]): + M_t = Mt_list[i] + + # Compute flag at this time point + zflag = (M_t @ coeffs).reshape(sys.ninputs, -1) + + # Find states and inputs at the time points + x, u = sys.reverse(zflag, params) + + # Evaluate the cost at this time point + # TODO: make use of time interval + costval += trajectory_cost(x, u) + + # Evaluate the terminal_cost + if terminal_cost is not None: + M_t = Mt_list[-1] + zflag = (M_t @ coeffs).reshape(sys.ninputs, -1) + x, u = sys.reverse(zflag, params) + costval += terminal_cost(x, u) + + return costval + + # Process the constraints we were given + traj_constraints = trajectory_constraints + if traj_constraints is None: + traj_constraints = [] + elif isinstance(traj_constraints, tuple): + # TODO: Check to make sure this is really a constraint + traj_constraints = [traj_constraints] + elif not isinstance(traj_constraints, list): + raise TypeError("trajectory constraints must be a list") + + # Process constraints + minimize_constraints = [] + if len(traj_constraints) > 0: + # Set up a nonlinear function to evaluate the constraints + def traj_const(null_coeffs): + # Add this to the existing solution + coeffs = alpha + N @ null_coeffs + + # Evaluate the constraints at the listed time points + values = [] + for i, t in enumerate(timepts): + # Calculate the states and inputs for the flat output + M_t = Mt_list[i] + + # Compute flag at this time point + zflag = (M_t @ coeffs).reshape(sys.ninputs, -1) + + # Find states and inputs at the time points + states, inputs = sys.reverse(zflag, params) + + # Evaluate the constraint function along the trajectory + for type, fun, lb, ub in traj_constraints: + if type == sp.optimize.LinearConstraint: + # `fun` is A matrix associated with polytope... + values.append(fun @ np.hstack([states, inputs])) + elif type == sp.optimize.NonlinearConstraint: + values.append(fun(states, inputs)) + else: + raise TypeError( + "unknown constraint type %s" % type) + return np.array(values).flatten() + + # Store upper and lower bounds + const_lb, const_ub = [], [] + for t in timepts: + for type, fun, lb, ub in traj_constraints: + const_lb.append(lb) + const_ub.append(ub) + const_lb = np.array(const_lb).flatten() + const_ub = np.array(const_ub).flatten() + + # Store the constraint as a nonlinear constraint + minimize_constraints = [sp.optimize.NonlinearConstraint( + traj_const, const_lb, const_ub)] + + # Add initial and terminal constraints + # minimize_constraints += [sp.optimize.LinearConstraint(M, Z, Z)] + + # Process the initial condition + if initial_guess is None: + initial_guess = np.zeros(M_T0.shape[1] - M_T0.shape[0]) + else: + raise NotImplementedError("Initial guess not yet implemented.") + + # Find the optimal solution + res = sp.optimize.minimize( + traj_cost, initial_guess, constraints=minimize_constraints, + **minimize_kwargs) + if res.success: + alpha += N @ res.x + else: + raise RuntimeError( + "Unable to solve optimal control problem\n" + + "scipy.optimize.minimize returned " + res.message) + + # + # Transform the trajectory from flat outputs to states and inputs + # + + # Create a trajectory object to store the result + systraj = SystemTrajectory(sys, basis, params=params) + + # Store the flag lengths and coefficients + # TODO: make this more pythonic + coef_off = 0 + for i in range(sys.ninputs): + # Grab the coefficients corresponding to this flat output + coef_len = basis.var_ncoefs(i) + systraj.coeffs.append(alpha[coef_off:coef_off + coef_len]) + coef_off += coef_len + + # Keep track of the length of the flat flag for this output + systraj.flaglen.append(len(zflag_T0[i])) + + # Return a function that computes inputs and states as a function of time + return systraj diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 4eb091b14..710841d60 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -233,6 +233,104 @@ def test_flat_cost_constr(self, basis): np.testing.assert_almost_equal(x_const, x_nlconst) np.testing.assert_almost_equal(u_const, u_nlconst) + @pytest.mark.parametrize("basis", [ + # fs.PolyFamily(8), + fs.BSplineFamily([0, 3, 7, 10], 5, 2)]) + def test_flat_solve_ocp(self, basis): + # Double integrator system + sys = ct.ss([[0, 1], [0, 0]], [[0], [1]], [[1, 0]], 0) + flat_sys = fs.LinearFlatSystem(sys) + + # Define the endpoints of the trajectory + x0 = [1, 0]; u0 = [0] + xf = [-1, 0]; uf = [0] + Tf = 10 + T = np.linspace(0, Tf, 100) + + # Find trajectory between initial and final conditions + traj = fs.point_to_point( + flat_sys, Tf, x0, u0, xf, uf, basis=basis) + x, u = traj.eval(T) + + np.testing.assert_array_almost_equal(x0, x[:, 0]) + np.testing.assert_array_almost_equal(u0, u[:, 0]) + np.testing.assert_array_almost_equal(xf, x[:, -1]) + np.testing.assert_array_almost_equal(uf, u[:, -1]) + + # Solve with a terminal cost function + timepts = np.linspace(0, Tf, 10) + terminal_cost = opt.quadratic_cost( + flat_sys, 1e3, 1e3, x0=xf, u0=uf) + + traj_cost = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, + terminal_cost=terminal_cost, basis=basis) + + # Verify that the trajectory computation is correct + x_cost, u_cost = traj_cost.eval(T) + np.testing.assert_array_almost_equal(x0, x_cost[:, 0]) + np.testing.assert_array_almost_equal(u0, u_cost[:, 0]) + np.testing.assert_array_almost_equal(xf, x_cost[:, -1]) + np.testing.assert_array_almost_equal(uf, u_cost[:, -1]) + + # Solve with trajectory and terminal cost functions + trajectory_cost = opt.quadratic_cost(flat_sys, 0, 1, x0=xf, u0=uf) + + traj_cost = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, terminal_cost=terminal_cost, + trajectory_cost=trajectory_cost, basis=basis) + + # Verify that the trajectory computation is correct + x_cost, u_cost = traj_cost.eval(T) + np.testing.assert_array_almost_equal(x0, x_cost[:, 0]) + np.testing.assert_array_almost_equal(u0, u_cost[:, 0]) + + # Make sure we got close on the terminal condition + assert all(np.abs(x_cost[:, -1] - xf) < 0.1) + + # Make sure that we got a different answer than before + assert np.any(np.abs(x - x_cost) > 0.1) + + # Re-solve with constraint on the y deviation + lb, ub = [-2, np.min(x_cost[1])*0.95], [2, 1] + constraints = [opt.state_range_constraint(flat_sys, lb, ub)] + + # Make sure that the previous solution violated at least one constraint + assert np.any(x_cost[0, :] < lb[0]) or np.any(x_cost[0, :] > ub[0]) \ + or np.any(x_cost[1, :] < lb[1]) or np.any(x_cost[1, :] > ub[1]) + + traj_const = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, + terminal_cost=terminal_cost, trajectory_cost=trajectory_cost, + trajectory_constraints=constraints, basis=basis, + ) + + # Verify that the trajectory computation is correct + x_const, u_const = traj_const.eval(timepts) + np.testing.assert_array_almost_equal(x0, x_const[:, 0]) + np.testing.assert_array_almost_equal(u0, u_const[:, 0]) + + # Make sure we got close on the terminal condition + assert all(np.abs(x_cost[:, -1] - xf) < 0.1) + + # Make sure that the solution respects the bounds (with some slop) + for i in range(x_const.shape[0]): + assert np.all(x_const[i] >= lb[i] * 1.02) + assert np.all(x_const[i] <= ub[i] * 1.02) + + # Solve the same problem with a nonlinear constraint type + # Use alternative keywords as well + nl_constraints = [ + (sp.optimize.NonlinearConstraint, lambda x, u: x, lb, ub)] + traj_nlconst = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, + cost=trajectory_cost, terminal_cost=terminal_cost, + constraints=nl_constraints, basis=basis, + ) + x_nlconst, u_nlconst = traj_nlconst.eval(timepts) + np.testing.assert_almost_equal(x_const, x_nlconst) + np.testing.assert_almost_equal(u_const, u_nlconst) + def test_bezier_basis(self): bezier = fs.BezierFamily(4) time = np.linspace(0, 1, 100) From 05084f35c933f4a02112830271b23dd2d3fee198 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 18 Aug 2022 22:48:54 -0700 Subject: [PATCH 0049/1025] unit tests, bug fixes, algorithm improvements * add initial_guess functionality to solve_flat_ocp * pre-compute collocation matrices in point_to_point, solve_flat_ocp * updated return values for solve_flat_ocp * add __repr__ for flat basis functions * docstring improvements * additional unit tests + examples --- control/flatsys/basis.py | 4 + control/flatsys/bezier.py | 3 +- control/flatsys/bspline.py | 4 + control/flatsys/flatsys.py | 98 +++++++++------ control/flatsys/poly.py | 6 +- control/tests/flatsys_test.py | 231 +++++++++++++++++++++++++++++----- control/tests/kwargs_test.py | 4 +- examples/kincar-flatsys.py | 63 ++++++++-- 8 files changed, 335 insertions(+), 78 deletions(-) diff --git a/control/flatsys/basis.py b/control/flatsys/basis.py index ad1d8b2a3..baf2b926b 100644 --- a/control/flatsys/basis.py +++ b/control/flatsys/basis.py @@ -64,6 +64,10 @@ def __init__(self, N): self.coef_offset = [0] # coefficient offset for each variable self.coef_length = [N] # coefficient length for each variable + def __repr__(self): + return f'<{self.__class__.__name__}: nvars={self.nvars}, ' + \ + f'N={self.N}>' + def __call__(self, i, t, var=None): """Evaluate the ith basis function at a point in time""" return self.eval_deriv(i, 0, t, var=var) diff --git a/control/flatsys/bezier.py b/control/flatsys/bezier.py index d2ab1f275..241274268 100644 --- a/control/flatsys/bezier.py +++ b/control/flatsys/bezier.py @@ -78,6 +78,7 @@ def eval_deriv(self, i, k, t, var=None): # Return the kth derivative of the ith Bezier basis function return binom(n, i) * sum([ (-1)**(j-i) * - binom(n-i, j-i) * factorial(j)/factorial(j-k) * np.power(u, j-k) + binom(n-i, j-i) * factorial(j)/factorial(j-k) * \ + np.power(u, j-k) / np.power(self.T, k) for j in range(max(i, k), n+1) ]) diff --git a/control/flatsys/bspline.py b/control/flatsys/bspline.py index a0e5bf3f0..12cf49431 100644 --- a/control/flatsys/bspline.py +++ b/control/flatsys/bspline.py @@ -179,6 +179,10 @@ def process_spline_parameters( self.knotpoints[i][offset:offset + self.degree[i] + 1] = \ self.breakpoints[-1] + def __repr__(self): + return f'<{self.__class__.__name__}: nvars={self.nvars}, ' + \ + f'degree={self.degree}, smoothness={self.smoothness}>' + # Compute the kth derivative of the ith basis function at time t def eval_deriv(self, i, k, t, var=None): """Evaluate the kth derivative of the ith basis function at time t.""" diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 18b3d7ec6..78d7696f9 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -426,24 +426,23 @@ def point_to_point( if rank < Z.size: warnings.warn("basis too small; solution may not exist") - # Precompute the collocation matrix the defines the flag at timepts - Mt_list = [] - for t in timepts: - Mt_list.append(_basis_flag_matrix(sys, basis, zflag_T0, t)) - if cost is not None or trajectory_constraints is not None: # Search over the null space to minimize cost/satisfy constraints N = sp.linalg.null_space(M) + # Precompute the collocation matrix the defines the flag at timepts + Mt_list = [] + for t in timepts[1:-1]: + Mt_list.append(_basis_flag_matrix(sys, basis, zflag_T0, t)) + # Define a function to evaluate the cost along a trajectory def traj_cost(null_coeffs): # Add this to the existing solution coeffs = alpha + N @ null_coeffs # Evaluate the costs at the listed time points - # TODO: store Mt ahead of time, since it doesn't change costval = 0 - for i, t in enumerate(timepts): + for i, t in enumerate(timepts[1:-1]): M_t = Mt_list[i] # Compute flag at this time point @@ -453,7 +452,7 @@ def traj_cost(null_coeffs): x, u = sys.reverse(zflag, params) # Evaluate the cost at this time point - costval += cost(x, u) + costval += cost(x, u) * (timepts[i+1] - timepts[i]) return costval # If no cost given, override with magnitude of the coefficients @@ -480,7 +479,7 @@ def traj_const(null_coeffs): # Evaluate the constraints at the listed time points values = [] - for i, t in enumerate(timepts): + for i, t in enumerate(timepts[1:-1]): # Calculate the states and inputs for the flat output M_t = Mt_list[i] @@ -504,7 +503,7 @@ def traj_const(null_coeffs): # Store upper and lower bounds const_lb, const_ub = [], [] - for t in timepts: + for t in timepts[1:-1]: for type, fun, lb, ub in traj_constraints: const_lb.append(lb) const_ub.append(ub) @@ -515,9 +514,6 @@ def traj_const(null_coeffs): minimize_constraints = [sp.optimize.NonlinearConstraint( traj_const, const_lb, const_ub)] - # Add initial and terminal constraints - # minimize_constraints += [sp.optimize.LinearConstraint(M, Z, Z)] - # Process the initial condition if initial_guess is None: initial_guess = np.zeros(M.shape[1] - M.shape[0]) @@ -528,12 +524,13 @@ def traj_const(null_coeffs): res = sp.optimize.minimize( traj_cost, initial_guess, constraints=minimize_constraints, **minimize_kwargs) - if res.success: - alpha += N @ res.x - else: - raise RuntimeError( - "Unable to solve optimal control problem\n" + - "scipy.optimize.minimize returned " + res.message) + alpha += N @ res.x + + # See if we got an answer + if not res.success: + warnings.warn( + "unable to solve optimal control problem\n" + f"scipy.optimize.minimize: '{res.message}'", UserWarning) # # Transform the trajectory from flat outputs to states and inputs @@ -541,6 +538,11 @@ def traj_const(null_coeffs): # Create a trajectory object to store the result systraj = SystemTrajectory(sys, basis, params=params) + if cost is not None or trajectory_constraints is not None: + # Store the result of the optimization + systraj.cost = res.fun + systraj.success = res.success + systraj.message = res.message # Store the flag lengths and coefficients # TODO: make this more pythonic @@ -560,7 +562,7 @@ def traj_const(null_coeffs): # Solve a point to point trajectory generation problem for a flat system def solve_flat_ocp( - sys, timepts, x0=0, u0=0, basis=None, trajectory_cost=None, + sys, timepts, x0=0, u0=0, trajectory_cost=None, basis=None, terminal_cost=None, trajectory_constraints=None, initial_guess=None, params=None, **kwargs): """Compute trajectory between an initial and final conditions. @@ -619,6 +621,9 @@ def solve_flat_ocp( The constraints are applied at each time point along the trajectory. + initial_guess : 2D array_like, optional + Initial guess for the optimal trajectory of the flat outputs. + minimize_kwargs : str, optional Pass additional keywords to :func:`scipy.optimize.minimize`. @@ -631,9 +636,14 @@ def solve_flat_ocp( Notes ----- - Additional keyword parameters can be used to fine tune the behavior of - the underlying optimization function. See `minimize_*` keywords in - :func:`OptimalControlProblem` for more information. + 1. Additional keyword parameters can be used to fine tune the behavior + of the underlying optimization function. See `minimize_*` keywords + in :func:`OptimalControlProblem` for more information. + + 2. The return data structure includes the following additional attributes: + * success : bool indicating whether the optimization succeeded + * cost : computed cost of the returned trajectory + * message : message returned by optimization if success if False """ # @@ -705,7 +715,7 @@ def solve_flat_ocp( # essentially amounts to evaluating the basis functions and their # derivatives at the initial conditions. - # Compute the flags for the initial and final states + # Compute the flag for the initial state M_T0 = _basis_flag_matrix(sys, basis, zflag_T0, T0) # @@ -752,7 +762,7 @@ def traj_cost(null_coeffs): # Evaluate the cost at this time point # TODO: make use of time interval - costval += trajectory_cost(x, u) + costval += trajectory_cost(x, u) * (timepts[i+1] - timepts[i]) # Evaluate the terminal_cost if terminal_cost is not None: @@ -821,22 +831,37 @@ def traj_const(null_coeffs): # Add initial and terminal constraints # minimize_constraints += [sp.optimize.LinearConstraint(M, Z, Z)] - # Process the initial condition + # Process the initial guess if initial_guess is None: - initial_guess = np.zeros(M_T0.shape[1] - M_T0.shape[0]) + initial_coefs = np.ones(M_T0.shape[1] - M_T0.shape[0]) else: - raise NotImplementedError("Initial guess not yet implemented.") + # Compute the map from coefficients to flat outputs + initial_coefs = [] + for i in range(sys.ninputs): + M_z = np.array([ + basis.eval_deriv(j, 0, timepts, var=i) + for j in range(basis.var_ncoefs(i))]).transpose() + + # Compute the parameters that give the best least squares fit + coefs, _, _, _ = np.linalg.lstsq( + M_z, initial_guess[i], rcond=None) + initial_coefs.append(coefs) + initial_coefs = np.hstack(initial_coefs) + + # Project the parameters onto the independent variables + initial_coefs, _, _, _ = np.linalg.lstsq(N, initial_coefs, rcond=None) # Find the optimal solution res = sp.optimize.minimize( - traj_cost, initial_guess, constraints=minimize_constraints, + traj_cost, initial_coefs, constraints=minimize_constraints, **minimize_kwargs) - if res.success: - alpha += N @ res.x - else: - raise RuntimeError( - "Unable to solve optimal control problem\n" + - "scipy.optimize.minimize returned " + res.message) + alpha += N @ res.x + + # See if we got an answer + if not res.success: + warnings.warn( + "unable to solve optimal control problem\n" + f"scipy.optimize.minimize: '{res.message}'", UserWarning) # # Transform the trajectory from flat outputs to states and inputs @@ -844,6 +869,9 @@ def traj_const(null_coeffs): # Create a trajectory object to store the result systraj = SystemTrajectory(sys, basis, params=params) + systraj.cost = res.fun + systraj.success = res.success + systraj.message = res.message # Store the flag lengths and coefficients # TODO: make this more pythonic diff --git a/control/flatsys/poly.py b/control/flatsys/poly.py index bb3677c48..65d1b500d 100644 --- a/control/flatsys/poly.py +++ b/control/flatsys/poly.py @@ -50,12 +50,14 @@ class PolyFamily(BasisFamily): \phi_i(t) = t^i """ - def __init__(self, N): + def __init__(self, N, T=1.): """Create a polynomial basis of order N.""" super(PolyFamily, self).__init__(N) + self.T = T # Compute the kth derivative of the ith basis function at time t def eval_deriv(self, i, k, t, var=None): """Evaluate the kth derivative of the ith basis function at time t.""" if (i < k): return 0; # higher derivative than power - return factorial(i)/factorial(i-k) * np.power(t, i-k) + return factorial(i)/factorial(i-k) * \ + np.power(t/self.T, i-k) / np.power(self.T, k) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 710841d60..00f5827d3 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -11,29 +11,35 @@ import numpy as np import pytest import scipy as sp +import re import control as ct import control.flatsys as fs import control.optimal as opt +# Set tolerances for lower/upper bound tests +atol = 1e-4 +rtol = 1e-4 + class TestFlatSys: """Test differential flat systems""" @pytest.mark.parametrize( - "xf, uf, Tf", - [([1, 0], [0], 2), - ([0, 1], [0], 3), - ([1, 1], [1], 4)]) - def test_double_integrator(self, xf, uf, Tf): + " xf, uf, Tf, basis", + [([1, 0], [0], 2, fs.PolyFamily(6)), + ([0, 1], [0], 3, fs.PolyFamily(6)), + ([0, 1], [0], 3, fs.BezierFamily(6)), + ([0, 1], [0], 3, fs.BSplineFamily([0, 1.5, 3], 4)), + ([1, 1], [1], 4, fs.PolyFamily(6)), + ([1, 1], [1], 4, fs.BezierFamily(6)), + ([1, 1], [1], 4, fs.BSplineFamily([0, 1.5, 3], 4))]) + def test_double_integrator(self, xf, uf, Tf, basis): # Define a second order integrator sys = ct.StateSpace([[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], 0) flatsys = fs.LinearFlatSystem(sys) - # Define the basis set - poly = fs.PolyFamily(6) - x1, u1, = [0, 0], [0] - traj = fs.point_to_point(flatsys, Tf, x1, u1, xf, uf, basis=poly) + traj = fs.point_to_point(flatsys, Tf, x1, u1, xf, uf, basis=basis) # Verify that the trajectory computation is correct x, u = traj.eval([0, Tf]) @@ -92,16 +98,19 @@ def vehicle_output(t, x, u, params): return x vehicle_output, inputs=('v', 'delta'), outputs=('x', 'y', 'theta'), states=('x', 'y', 'theta')) - @pytest.mark.parametrize("poly", [ - fs.PolyFamily(6), fs.PolyFamily(8), fs.BezierFamily(6)]) - def test_kinematic_car(self, vehicle_flat, poly): + @pytest.mark.parametrize("basis", [ + fs.PolyFamily(6), fs.PolyFamily(8), fs.BezierFamily(6), + fs.BSplineFamily([0, 10], 8), + fs.BSplineFamily([0, 5, 10], 4) + ]) + def test_kinematic_car(self, vehicle_flat, basis): # Define the endpoints of the trajectory x0 = [0., -2., 0.]; u0 = [10., 0.] xf = [100., 2., 0.]; uf = [10., 0.] Tf = 10 # Find trajectory between initial and final conditions - traj = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=poly) + traj = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=basis) # Verify that the trajectory computation is correct x, u = traj.eval([0, Tf]) @@ -111,16 +120,97 @@ def test_kinematic_car(self, vehicle_flat, poly): np.testing.assert_array_almost_equal(uf, u[:, 1]) # Simulate the system and make sure we stay close to desired traj + # Note: this can sometimes fail since system is open loop unstable T = np.linspace(0, Tf, 100) xd, ud = traj.eval(T) resp = ct.input_output_response(vehicle_flat, T, ud, x0) - np.testing.assert_array_almost_equal(resp.states, xd, decimal=2) + if not np.allclose(resp.states, xd, atol=1e-2, rtol=1e-2): + pytest.xfail("system is open loop unstable => errors can build") # integrate equations and compare to desired t, y, x = ct.input_output_response( vehicle_flat, T, ud, x0, return_x=True) np.testing.assert_allclose(x, xd, atol=0.01, rtol=0.01) + @pytest.mark.parametrize( + "basis, guess, constraints, method", [ + (fs.PolyFamily(8, T=10), 'prev', None, None), + (fs.BezierFamily(8, T=10), 'linear', None, None), + (fs.BSplineFamily([0, 10], 8), None, None, None), + (fs.BSplineFamily([0, 10], 8), 'prev', None, 'trust-constr'), + (fs.BSplineFamily([0, 10], [6, 8], vars=2), 'prev', None, None), + (fs.BSplineFamily([0, 5, 10], 5), 'linear', None, 'slsqp'), + (fs.BSplineFamily([0, 10], 8), None, ([8, -0.1], [12, 0.1]), None), + (fs.BSplineFamily([0, 5, 10], 5, 3), None, None, None), + ]) + def test_kinematic_car_ocp( + self, vehicle_flat, basis, guess, constraints, method): + + # Define the endpoints of the trajectory + x0 = [0., -2., 0.]; u0 = [10., 0.] + xf = [40., 2., 0.]; uf = [10., 0.] + Tf = 4 + timepts = np.linspace(0, Tf, 10) + + # Find trajectory between initial and final conditions + traj_p2p = fs.point_to_point( + vehicle_flat, Tf, x0, u0, xf, uf, basis=basis) + + # Verify that the trajectory computation is correct + x, u = traj_p2p.eval(timepts) + np.testing.assert_array_almost_equal(x0, x[:, 0]) + np.testing.assert_array_almost_equal(u0, u[:, 0]) + np.testing.assert_array_almost_equal(xf, x[:, -1]) + np.testing.assert_array_almost_equal(uf, u[:, -1]) + + # + # Re-solve as optimal control problem + # + + # Define the cost function (mainly penalize steering angle) + traj_cost = opt.quadratic_cost( + vehicle_flat, None, np.diag([0.1, 10]), x0=xf, u0=uf) + + # Set terminal cost to bring us close to xf + terminal_cost = opt.quadratic_cost( + vehicle_flat, 1e3 * np.eye(3), None, x0=xf) + + # Implement terminal constraints if specified + if constraints: + input_constraints = opt.input_range_constraint( + vehicle_flat, *constraints) + else: + input_constraints = None + + # Use a straight line as an initial guess for the trajectory + if guess == 'prev': + initial_guess = traj_p2p.eval(timepts)[0][0:2] + elif guess == 'linear': + initial_guess = np.array( + [x0[i] + (xf[i] - x0[i]) * timepts/Tf for i in (0, 1)]) + else: + initial_guess = None + + # Solve the optimal trajectory + traj_ocp = fs.solve_flat_ocp( + vehicle_flat, timepts, x0, u0, + cost=traj_cost, constraints=input_constraints, + terminal_cost=terminal_cost, basis=basis, + initial_guess=initial_guess, + minimize_kwargs={'method': method}, + ) + xd, ud = traj_ocp.eval(timepts) + if not traj_ocp.success: + # If unsuccessful, make sure the error is just about precision + assert re.match(".*precision loss.*", traj_ocp.message) is not None + + # Make sure the constraints are satisfied + if input_constraints: + _, _, lb, ub = input_constraints + for i in range(ud.shape[0]): + assert all(lb[i] - ud[i] < rtol * abs(lb[i]) + atol) + assert all(ud[i] - ub[i] < rtol * abs(ub[i]) + atol) + def test_flat_default_output(self, vehicle_flat): # Construct a flat system with the default outputs flatsys = fs.FlatSystem( @@ -134,9 +224,9 @@ def test_flat_default_output(self, vehicle_flat): Tf = 10 # Find trajectory between initial and final conditions - poly = fs.PolyFamily(6) - traj1 = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=poly) - traj2 = fs.point_to_point(flatsys, Tf, x0, u0, xf, uf, basis=poly) + basis = fs.PolyFamily(6) + traj1 = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=basis) + traj2 = fs.point_to_point(flatsys, Tf, x0, u0, xf, uf, basis=basis) # Verify that the trajectory computation is correct T = np.linspace(0, Tf, 10) @@ -152,7 +242,9 @@ def test_flat_default_output(self, vehicle_flat): @pytest.mark.parametrize("basis", [ fs.PolyFamily(8), - fs.BSplineFamily([0, 3, 7, 10], 4, 2)]) + fs.BSplineFamily([0, 5, 10], 6), + fs.BSplineFamily([0, 3, 7, 10], 4, 2) + ]) def test_flat_cost_constr(self, basis): # Double integrator system sys = ct.ss([[0, 1], [0, 0]], [[0], [1]], [[1, 0]], 0) @@ -208,19 +300,22 @@ def test_flat_cost_constr(self, basis): traj_const = fs.point_to_point( flat_sys, timepts, x0, u0, xf, uf, cost=cost_fcn, constraints=constraints, basis=basis, + # minimize_kwargs={'method': 'trust-constr'} ) + assert traj_const.success # Verify that the trajectory computation is correct - x_const, u_const = traj_const.eval(T) + x_cost, u_cost = traj_cost.eval(timepts) # re-eval on timepts + x_const, u_const = traj_const.eval(timepts) np.testing.assert_array_almost_equal(x0, x_const[:, 0]) np.testing.assert_array_almost_equal(u0, u_const[:, 0]) np.testing.assert_array_almost_equal(xf, x_const[:, -1]) np.testing.assert_array_almost_equal(uf, u_const[:, -1]) # Make sure that the solution respects the bounds (with some slop) - for i in range(x_const.shape[0]): - assert np.all(x_const[i] >= lb[i] * 1.02) - assert np.all(x_const[i] <= ub[i] * 1.02) + for i in range(x_const.shape[0]): + assert all(lb[i] - x_const[i] < rtol * abs(lb[i]) + atol) + assert all(x_const[i] - ub[i] < rtol * abs(ub[i]) + atol) # Solve the same problem with a nonlinear constraint type nl_constraints = [ @@ -229,9 +324,9 @@ def test_flat_cost_constr(self, basis): flat_sys, timepts, x0, u0, xf, uf, cost=cost_fcn, constraints=nl_constraints, basis=basis, ) - x_nlconst, u_nlconst = traj_nlconst.eval(T) - np.testing.assert_almost_equal(x_const, x_nlconst) - np.testing.assert_almost_equal(u_const, u_nlconst) + x_nlconst, u_nlconst = traj_nlconst.eval(timepts) + np.testing.assert_almost_equal(x_const, x_nlconst, decimal=2) + np.testing.assert_almost_equal(u_const, u_nlconst, decimal=2) @pytest.mark.parametrize("basis", [ # fs.PolyFamily(8), @@ -315,8 +410,8 @@ def test_flat_solve_ocp(self, basis): # Make sure that the solution respects the bounds (with some slop) for i in range(x_const.shape[0]): - assert np.all(x_const[i] >= lb[i] * 1.02) - assert np.all(x_const[i] <= ub[i] * 1.02) + assert all(lb[i] - x_const[i] < rtol * abs(lb[i]) + atol) + assert all(x_const[i] - ub[i] < rtol * abs(ub[i]) + atol) # Solve the same problem with a nonlinear constraint type # Use alternative keywords as well @@ -456,10 +551,11 @@ def test_point_to_point_errors(self): # Unsolvable optimization constraint = [opt.input_range_constraint(flat_sys, -0.01, 0.01)] - with pytest.raises(RuntimeError, match="Unable to solve optimal"): + with pytest.warns(UserWarning, match="unable to solve"): traj = fs.point_to_point( flat_sys, timepts, x0, u0, xf, uf, constraints=constraint, basis=fs.PolyFamily(8)) + assert not traj.success # Method arguments, parameters traj_method = fs.point_to_point( @@ -477,6 +573,81 @@ def test_point_to_point_errors(self): traj_method = fs.point_to_point( flat_sys, timepts, x0, u0, xf, uf, solve_ivp_method=None) + def test_solve_flat_ocp_errors(self): + """Test error and warning conditions in point_to_point()""" + # Double integrator system + sys = ct.ss([[0, 1], [0, 0]], [[0], [1]], [[1, 0]], 0) + flat_sys = fs.LinearFlatSystem(sys) + + # Define the endpoints of the trajectory + x0 = [1, 0]; u0 = [0] + xf = [0, 0]; uf = [0] + Tf = 10 + T = np.linspace(0, Tf, 500) + + # Cost function + timepts = np.linspace(0, Tf, 10) + cost_fcn = opt.quadratic_cost( + flat_sys, np.diag([1, 1]), 1, x0=xf, u0=uf) + + # Solving without basis specified should be OK + traj = fs.solve_flat_ocp(flat_sys, timepts, x0, u0, cost_fcn) + x, u = traj.eval(timepts) + np.testing.assert_array_almost_equal(x0, x[:, 0]) + if not traj.success: + # If unsuccessful, make sure the error is just about precision + assert re.match(".* precision loss.*", traj.message) is not None + + x, u = traj.eval(timepts) + np.testing.assert_array_almost_equal(x0, x[:, 0]) + np.testing.assert_array_almost_equal(u0, u[:, 0]) + + # Solving without a cost function generates an error + with pytest.raises(TypeError, match="cost required"): + traj = fs.solve_flat_ocp(flat_sys, timepts, x0, u0) + + # Try to optimize with insufficient degrees of freedom + with pytest.raises(ValueError, match="basis set is too small"): + traj = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, cost=cost_fcn, + basis=fs.PolyFamily(2)) + + # Solve with the errors in the various input arguments + with pytest.raises(ValueError, match="Initial state: Wrong shape"): + traj = fs.solve_flat_ocp( + flat_sys, timepts, np.zeros(3), u0, cost_fcn) + with pytest.raises(ValueError, match="Initial input: Wrong shape"): + traj = fs.solve_flat_ocp( + flat_sys, timepts, x0, np.zeros(3), cost_fcn) + + # Constraint that isn't a constraint + with pytest.raises(TypeError, match="must be a list"): + traj = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, cost_fcn, + constraints=np.eye(2), basis=fs.PolyFamily(8)) + + # Unknown constraint type + with pytest.raises(TypeError, match="unknown constraint type"): + traj = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, cost_fcn, + constraints=[(None, 0, 0, 0)], basis=fs.PolyFamily(8)) + + # Method arguments, parameters + traj_method = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, cost=cost_fcn, + basis=fs.PolyFamily(6), minimize_method='slsqp') + traj_kwarg = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, cost=cost_fcn, + basis=fs.PolyFamily(6), minimize_kwargs={'method': 'slsqp'}) + np.testing.assert_allclose( + traj_method.eval(timepts)[0], traj_kwarg.eval(timepts)[0], + atol=1e-5) + + # Unrecognized keywords + with pytest.raises(TypeError, match="unrecognized keyword"): + traj_method = fs.solve_flat_ocp( + flat_sys, timepts, x0, u0, cost_fcn, solve_ivp_method=None) + @pytest.mark.parametrize( "xf, uf, Tf", [([1, 0], [0], 2), @@ -488,10 +659,10 @@ def test_response(self, xf, uf, Tf): flatsys = fs.LinearFlatSystem(sys) # Define the basis set - poly = fs.PolyFamily(6) + basis = fs.PolyFamily(6) x1, u1, = [0, 0], [0] - traj = fs.point_to_point(flatsys, Tf, x1, u1, xf, uf, basis=poly) + traj = fs.point_to_point(flatsys, Tf, x1, u1, xf, uf, basis=basis) # Compute the response the regular way T = np.linspace(0, Tf, 10) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index ada16a46a..598a8ccca 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -2,7 +2,7 @@ # RMM, 20 Mar 2022 # # Allowing unrecognized keywords to be passed to a function without -# generating and error message can generate annoying bugs, since you +# generating an error message can generate annoying bugs, since you # sometimes think you are telling the function to do something and actually # you have a misspelling or other error and your input is being ignored. # @@ -190,6 +190,8 @@ def test_matplotlib_kwargs(): 'tf2ss' : test_unrecognized_kwargs, 'flatsys.point_to_point': flatsys_test.TestFlatSys.test_point_to_point_errors, + 'flatsys.solve_flat_ocp': + flatsys_test.TestFlatSys.test_solve_flat_ocp_errors, 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'InputOutputSystem.__init__': test_unrecognized_kwargs, diff --git a/examples/kincar-flatsys.py b/examples/kincar-flatsys.py index 967bdb310..2ebee3133 100644 --- a/examples/kincar-flatsys.py +++ b/examples/kincar-flatsys.py @@ -74,12 +74,13 @@ def vehicle_update(t, x, u, params): return dx # Plot the trajectory in xy coordinates -def plot_results(t, x, ud): +def plot_results(t, x, ud, rescale=True): plt.subplot(4, 1, 2) plt.plot(x[0], x[1]) plt.xlabel('x [m]') plt.ylabel('y [m]') - plt.axis([x0[0], xf[0], x0[1]-1, xf[1]+1]) + if rescale: + plt.axis([x0[0], xf[0], x0[1]-1, xf[1]+1]) # Time traces of the state and input plt.subplot(2, 4, 5) @@ -94,7 +95,8 @@ def plot_results(t, x, ud): plt.plot(t, ud[0]) plt.xlabel('Time t [sec]') plt.ylabel('v [m/s]') - plt.axis([0, Tf, u0[0] - 1, uf[0] + 1]) + if rescale: + plt.axis([0, Tf, u0[0] - 1, uf[0] + 1]) plt.subplot(2, 4, 8) plt.plot(t, ud[1]) @@ -121,11 +123,11 @@ def plot_results(t, x, ud): poly = fs.PolyFamily(6) # Find a trajectory between the initial condition and the final condition -traj = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=poly) +traj1 = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=poly) # Create the desired trajectory between the initial and final condition T = np.linspace(0, Tf, 500) -xd, ud = traj.eval(T) +xd, ud = traj1.eval(T) # Simulation the open system dynamics with the full input t, y, x = ct.input_output_response( @@ -149,10 +151,10 @@ def plot_results(t, x, ud): vehicle_flat, np.diag([0, 0.1, 0]), np.diag([0.1, 1]), x0=xf, u0=uf) # Solve for an optimal solution -traj = fs.point_to_point( +traj2 = fs.point_to_point( vehicle_flat, timepts, x0, u0, xf, uf, cost=traj_cost, basis=basis, ) -xd, ud = traj.eval(T) +xd, ud = traj2.eval(T) plt.figure(2) plt.suptitle("Lane change with lateral error + steering penalties") @@ -164,15 +166,19 @@ def plot_results(t, x, ud): # Resolve the problem with constraints on the inputs # +# Constraint the input values constraints = [ opt.input_range_constraint(vehicle_flat, [8, -0.1], [12, 0.1]) ] +# TEST: Change the basis to use B-splines +basis = fs.BSplineFamily([0, Tf/2, Tf], 6) + # Solve for an optimal solution -traj = fs.point_to_point( +traj3 = fs.point_to_point( vehicle_flat, timepts, x0, u0, xf, uf, cost=traj_cost, constraints=constraints, basis=basis, ) -xd, ud = traj.eval(T) +xd, ud = traj3.eval(T) plt.figure(3) plt.suptitle("Lane change with penalty + steering constraints") @@ -181,3 +187,42 @@ def plot_results(t, x, ud): # Show the results unless we are running in batch mode if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: plt.show() + + +# +# Approach #4: optimal trajectory, final cost with trajectory constraints +# +# Resolve the problem with constraints on the inputs and also replacing the +# point to point problem with one using a terminal cost to set the final +# state. +# + +# Define the cost function (mainly penalize steering angle) +traj_cost = opt.quadratic_cost( + vehicle_flat, None, np.diag([0.1, 10]), x0=xf, u0=uf) + +# Set terminal cost to bring us close to xf +terminal_cost = opt.quadratic_cost(vehicle_flat, 1e3 * np.eye(3), None, x0=xf) + +# Change the basis to use B-splines +basis = fs.BSplineFamily([0, Tf/2, Tf], [4, 6], vars=2) + +# Use a straight line as an initial guess for the trajectory +initial_guess = np.array( + [x0[i] + (xf[i] - x0[i]) * timepts/Tf for i in (0, 1)]) + +# Solve for an optimal solution +traj4 = fs.solve_flat_ocp( + vehicle_flat, timepts, x0, u0, cost=traj_cost, constraints=constraints, + terminal_cost=terminal_cost, basis=basis, initial_guess=initial_guess, + # minimize_kwargs={'method': 'trust-constr'}, +) +xd, ud = traj4.eval(T) + +plt.figure(4) +plt.suptitle("Lane change with terminal cost + steering constraints") +plot_results(T, xd, ud, rescale=False) # TODO: remove rescale + +# Show the results unless we are running in batch mode +if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: + plt.show() From e65c4f29e1e4a8fa096859a032337fa02f9ee20f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 19 Aug 2022 22:09:21 -0700 Subject: [PATCH 0050/1025] additional unit tests for coverage + bug fixes --- control/flatsys/basis.py | 16 ++++++++++--- control/tests/flatsys_test.py | 42 ++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/control/flatsys/basis.py b/control/flatsys/basis.py index baf2b926b..8a3a46af0 100644 --- a/control/flatsys/basis.py +++ b/control/flatsys/basis.py @@ -36,6 +36,8 @@ # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. +import numpy as np + # Basis family class (for use as a base class) class BasisFamily: @@ -86,16 +88,24 @@ def eval(self, coeffs, tlist, var=None): sum([coeffs[i] * self(i, t) for i in range(self.N)]) for t in tlist] - else: - # Multi-variable basis + elif var is None: + # Multi-variable basis with single list of coefficients values = np.empty((self.nvars, tlist.size)) + offset = 0 for j in range(self.nvars): coef_len = self.var_ncoefs(j) values[j] = np.array([ - sum([coeffs[i] * self(i, t, var=j) + sum([coeffs[offset + i] * self(i, t, var=j) for i in range(coef_len)]) for t in tlist]) + offset += coef_len return values + else: + return np.array([ + sum([coeffs[i] * self(i, t, var=var) + for i in range(self.var_ncoefs(var))]) + for t in tlist]) + def eval_deriv(self, i, j, t, var=None): raise NotImplementedError("Internal error; improper basis functions") diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 00f5827d3..e096c0c73 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -313,7 +313,7 @@ def test_flat_cost_constr(self, basis): np.testing.assert_array_almost_equal(uf, u_const[:, -1]) # Make sure that the solution respects the bounds (with some slop) - for i in range(x_const.shape[0]): + for i in range(x_const.shape[0]): assert all(lb[i] - x_const[i] < rtol * abs(lb[i]) + atol) assert all(x_const[i] - ub[i] < rtol * abs(ub[i]) + atol) @@ -673,3 +673,43 @@ def test_response(self, xf, uf, Tf): np.testing.assert_equal(T, response.time) np.testing.assert_equal(u, response.inputs) np.testing.assert_equal(x, response.states) + + @pytest.mark.parametrize( + "basis", + [fs.PolyFamily(4), + fs.BezierFamily(4), + fs.BSplineFamily([0, 1], 4), + fs.BSplineFamily([0, 1], 4, vars=2), + fs.BSplineFamily([0, 1], [4, 3], [2, 1], vars=2), + ]) + def test_basis_class(self, basis): + timepts = np.linspace(0, 1, 10) + + if basis.nvars is None: + # Evaluate function on basis vectors + for j in range(basis.N): + coefs = np.zeros(basis.N) + coefs[j] = 1 + np.testing.assert_equal( + basis.eval(coefs, timepts), + basis.eval_deriv(j, 0, timepts)) + else: + # Evaluate each variable on basis vectors + for i in range(basis.nvars): + for j in range(basis.var_ncoefs(i)): + coefs = np.zeros(basis.var_ncoefs(i)) + coefs[j] = 1 + np.testing.assert_equal( + basis.eval(coefs, timepts, var=i), + basis.eval_deriv(j, 0, timepts, var=i)) + + # Evaluate multi-variable output + offset = 0 + for i in range(basis.nvars): + for j in range(basis.var_ncoefs(i)): + coefs = np.zeros(basis.N) + coefs[offset] = 1 + np.testing.assert_equal( + basis.eval(coefs, timepts)[i], + basis.eval_deriv(j, 0, timepts, var=i)) + offset += 1 From 2901cbe4e3863083dfbe9a674235ef7cdd01c267 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 20 Aug 2022 09:36:35 -0700 Subject: [PATCH 0051/1025] updated flatsys documentation --- control/flatsys/__init__.py | 4 +- control/flatsys/basis.py | 2 + control/flatsys/bezier.py | 16 +++++-- control/flatsys/bspline.py | 63 +++++++++++++--------------- control/flatsys/flatsys.py | 11 ++++- control/flatsys/poly.py | 14 +++++-- control/tests/flatsys_test.py | 7 +++- doc/conf.py | 2 +- doc/flatsys.rst | 78 ++++++++++++++++++++++++++++------- 9 files changed, 137 insertions(+), 60 deletions(-) diff --git a/control/flatsys/__init__.py b/control/flatsys/__init__.py index 8ead08dce..157800073 100644 --- a/control/flatsys/__init__.py +++ b/control/flatsys/__init__.py @@ -46,7 +46,9 @@ defined using the :class:`~control.flatsys.BasisFamily` class. The resulting trajectory is return as a :class:`~control.flatsys.SystemTrajectory` object and can be evaluated using the :func:`~control.flatsys.SystemTrajectory.eval` -member function. +member function. Alternatively, the :func:`~control.flatsys.solve_flat_ocp` +function can be used to solve an optimal control problem with trajectory and +final costs or constraints. """ diff --git a/control/flatsys/basis.py b/control/flatsys/basis.py index 8a3a46af0..04abce88a 100644 --- a/control/flatsys/basis.py +++ b/control/flatsys/basis.py @@ -79,6 +79,7 @@ def var_ncoefs(self, var): return self.N if self.nvars is None else self.coef_length[var] def eval(self, coeffs, tlist, var=None): + """Compute function values given the coefficients and time points.""" if self.nvars is None and var != None: raise SystemError("multi-variable call to a scalar basis") @@ -108,4 +109,5 @@ def eval(self, coeffs, tlist, var=None): for t in tlist]) def eval_deriv(self, i, j, t, var=None): + """Evaluate the kth derivative of the ith basis function at time t.""" raise NotImplementedError("Internal error; improper basis functions") diff --git a/control/flatsys/bezier.py b/control/flatsys/bezier.py index 241274268..02b4209a6 100644 --- a/control/flatsys/bezier.py +++ b/control/flatsys/bezier.py @@ -48,15 +48,23 @@ class BezierFamily(BasisFamily): This class represents the family of polynomials of the form .. math:: - \phi_i(t) = \sum_{i=0}^n {n \choose i} - \left( \frac{t}{T_\text{f}} - t \right)^{n-i} - \left( \frac{t}{T_f} \right)^i + \phi_i(t) = \sum_{i=0}^N {N \choose i} + \left( \frac{t}{T} - t \right)^{N-i} + \left( \frac{t}{T} \right)^i + + Parameters + ---------- + N : int + Degree of the Bezier curve. + + T : float + Final time (used for rescaling). """ def __init__(self, N, T=1): """Create a polynomial basis of order N.""" super(BezierFamily, self).__init__(N) - self.T = T # save end of time interval + self.T = float(T) # save end of time interval # Compute the kth derivative of the ith basis function at time t def eval_deriv(self, i, k, t, var=None): diff --git a/control/flatsys/bspline.py b/control/flatsys/bspline.py index 12cf49431..c771beb59 100644 --- a/control/flatsys/bspline.py +++ b/control/flatsys/bspline.py @@ -14,40 +14,35 @@ class BSplineFamily(BasisFamily): """B-spline basis functions. This class represents a B-spline basis for piecewise polynomials defined - across a set of breakpoints with given order and smoothness. + across a set of breakpoints with given degree and smoothness. On each + interval between two breakpoints, we have a polynomial of a given degree + and the spline is continuous up to a given smoothness at interior + breakpoints. + + Parameters + ---------- + breakpoints : 1D array or 2D array of float + The breakpoints for the spline(s). + + degree : int or list of ints + For each spline variable, the degree of the polynomial between + breakpoints. If a single number is given and more than one spline + variable is specified, the same degree is used for each spline + variable. + + smoothness : int or list of ints + For each spline variable, the smoothness at breakpoints (number of + derivatives that should match). + + vars : None or int, optional + The number of spline variables. If specified as None (default), + then the spline basis describes a single variable, with no indexing. + If the number of spine variables is > 0, then the spline basis is + index using the `var` keyword. """ def __init__(self, breakpoints, degree, smoothness=None, vars=None): - """Create a B-spline basis for piecewise smooth polynomials - - Define B-spline polynomials for a set of one or more variables. - B-splines are used as a basis for a set of piecewise smooth - polynomials joined at breakpoints. On each interval we have a - polynomial of a given order and the spline is continuous up to a - given smoothness at interior breakpoints. - - Parameters - ---------- - breakpoints : 1D array or 2D array of float - The breakpoints for the spline(s). - - degree : int or list of ints - For each spline variable, the degree of the polynomial between - break points. If a single number is given and more than one - spline variable is specified, the same order is used for each - spline variable. - - smoothness : int or list of ints - For each spline variable, the smoothness at breakpoints (number - of derivatives that should match). - - vars : None or int, optional - The number of spline variables. If specified as None (default), - then the spline basis describes a single variable, with no - indexing. If the number of spine variables is > 0, then the - spline basis is index using the `var` keyword. - - """ + """Create a B-spline basis for piecewise smooth polynomials.""" # Process the breakpoints for the spline */ breakpoints = np.array(breakpoints, dtype=float) if breakpoints.ndim == 2: @@ -71,11 +66,11 @@ def __init__(self, breakpoints, degree, smoothness=None, vars=None): self.nvars = nvars # - # Process B-spline parameters (order, smoothness) + # Process B-spline parameters (degree, smoothness) # # B-splines are defined on a set of intervals separated by # breakpoints. On each interval we have a polynomial of a certain - # order and the spline is continuous up to a given smoothness at + # degree and the spline is continuous up to a given smoothness at # breakpoints. The code in this section allows some flexibility in # the way that all of this information is supplied, including using # scalar values for parameters (which are then broadcast to each @@ -83,7 +78,7 @@ def __init__(self, breakpoints, degree, smoothness=None, vars=None): # information, when possible. # - # Utility function for broadcasting spline params (order, smoothness) + # Utility function for broadcasting spline params (degree, smoothness) def process_spline_parameters( values, length, allowed_types, minimum=0, default=None, name='unknown'): diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 78d7696f9..849c41c72 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -61,8 +61,10 @@ class FlatSystem(NonlinearIOSystem): ---------- forward : callable A function to compute the flat flag given the states and input. + reverse : callable A function to compute the states and input given the flat flag. + updfcn : callable, optional Function returning the state update function @@ -73,6 +75,7 @@ class FlatSystem(NonlinearIOSystem): time, and `param` is an optional dict containing the values of parameters used by the function. If not specified, the state space update will be computed using the flat system coordinates. + outfcn : callable Function returning the output at the given state @@ -80,6 +83,7 @@ class FlatSystem(NonlinearIOSystem): where the arguments are the same as for `upfcn`. If not specified, the output will be the flat outputs. + inputs : int, list of str, or None Description of the system inputs. This can be given as an integer count or as a list of strings that name the individual signals. @@ -88,19 +92,24 @@ class FlatSystem(NonlinearIOSystem): this parameter is not given or given as `None`, the relevant quantity will be determined when possible based on other information provided to functions using the system. + outputs : int, list of str, or None Description of the system outputs. Same format as `inputs`. + states : int, list of str, or None Description of the system states. Same format as `inputs`. + dt : None, True or float, optional System timebase. None (default) indicates continuous time, True indicates discrete time with undefined sampling time, positive number is discrete time with specified sampling time. + params : dict, optional Parameter values for the systems. Passed to the evaluation functions for the system as default values, overriding internal defaults. + name : string, optional System name (used for specifying signals) @@ -638,7 +647,7 @@ def solve_flat_ocp( ----- 1. Additional keyword parameters can be used to fine tune the behavior of the underlying optimization function. See `minimize_*` keywords - in :func:`OptimalControlProblem` for more information. + in :func:`~control.optimal.OptimalControlProblem` for more information. 2. The return data structure includes the following additional attributes: * success : bool indicating whether the optimization succeeded diff --git a/control/flatsys/poly.py b/control/flatsys/poly.py index 65d1b500d..bfd8de633 100644 --- a/control/flatsys/poly.py +++ b/control/flatsys/poly.py @@ -47,13 +47,21 @@ class PolyFamily(BasisFamily): This class represents the family of polynomials of the form .. math:: - \phi_i(t) = t^i + \phi_i(t) = \left( \frac{t}{T} \right)^i + + Parameters + ---------- + N : int + Degree of the Bezier curve. + + T : float + Final time (used for rescaling). """ - def __init__(self, N, T=1.): + def __init__(self, N, T=1): """Create a polynomial basis of order N.""" super(PolyFamily, self).__init__(N) - self.T = T + self.T = float(T) # save end of time interval # Compute the kth derivative of the ith basis function at time t def eval_deriv(self, i, k, t, var=None): diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index e096c0c73..665bfd968 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -12,6 +12,7 @@ import pytest import scipy as sp import re +import warnings import control as ct import control.flatsys as fs @@ -590,8 +591,10 @@ def test_solve_flat_ocp_errors(self): cost_fcn = opt.quadratic_cost( flat_sys, np.diag([1, 1]), 1, x0=xf, u0=uf) - # Solving without basis specified should be OK - traj = fs.solve_flat_ocp(flat_sys, timepts, x0, u0, cost_fcn) + # Solving without basis specified should be OK (may generate warning) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + traj = fs.solve_flat_ocp(flat_sys, timepts, x0, u0, cost_fcn) x, u = traj.eval(timepts) np.testing.assert_array_almost_equal(x0, x[:, 0]) if not traj.success: diff --git a/doc/conf.py b/doc/conf.py index 19c2970e1..e2210aeaa 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -87,7 +87,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. diff --git a/doc/flatsys.rst b/doc/flatsys.rst index 7599dd2af..ab8d7bf4c 100644 --- a/doc/flatsys.rst +++ b/doc/flatsys.rst @@ -64,17 +64,17 @@ trajectory of the system. We can parameterize the flat output trajectory using a set of smooth basis functions :math:`\psi_i(t)`: .. math:: - z(t) = \sum_{i=1}^N \alpha_i \psi_i(t), \qquad \alpha_i \in R + z(t) = \sum_{i=1}^N c_i \psi_i(t), \qquad c_i \in R -We seek a set of coefficients :math:`\alpha_i`, :math:`i = 1, \dots, N` such +We seek a set of coefficients :math:`c_i`, :math:`i = 1, \dots, N` such that :math:`z(t)` satisfies the boundary conditions for :math:`x(0)` and :math:`x(T)`. The derivatives of the flat output can be computed in terms of the derivatives of the basis functions: .. math:: - \dot z(t) &= \sum_{i=1}^N \alpha_i \dot \psi_i(t) \\ + \dot z(t) &= \sum_{i=1}^N c_i \dot \psi_i(t) \\ &\,\vdots \\ - \dot z^{(q)}(t) &= \sum_{i=1}^N \alpha_i \psi^{(q)}_i(t). + \dot z^{(q)}(t) &= \sum_{i=1}^N c_i \psi^{(q)}_i(t). We can thus write the conditions on the flat outputs and their derivatives as @@ -90,7 +90,7 @@ derivatives as \vdots & \vdots & & \vdots \\ \psi^{(q)}_1(T) & \psi^{(q)}_2(T) & \dots & \psi^{(q)}_N(T) \\ \end{bmatrix} - \begin{bmatrix} \alpha_1 \\ \vdots \\ \alpha_N \end{bmatrix} = + \begin{bmatrix} c_1 \\ \vdots \\ c_N \end{bmatrix} = \begin{bmatrix} z(0) \\ \dot z(0) \\ \vdots \\ z^{(q)}(0) \\[1ex] z(T) \\ \dot z(T) \\ \vdots \\ z^{(q)}(T) \\ @@ -99,7 +99,7 @@ derivatives as This equation is a *linear* equation of the form .. math:: - M \alpha = \begin{bmatrix} \bar z(0) \\ \bar z(T) \end{bmatrix} + M c = \begin{bmatrix} \bar z(0) \\ \bar z(T) \end{bmatrix} where :math:`\bar z` is called the *flat flag* for the system. Assuming that :math:`M` has a sufficient number of columns and that it is full @@ -139,22 +139,28 @@ For a linear system, a flat system representation can be generated using the For more general systems, the `FlatSystem` object must be created manually:: - sys = control.flatsys.FlatSystem(nstate, ninputs, forward, reverse) + sys = control.flatsys.FlatSystem( + forward, reverse, states=['x1', ..., 'xn'], inputs=['u1', ..., 'um']) In addition to the flat system description, a set of basis functions -:math:`\phi_i(t)` must be chosen. The `FlatBasis` class is used to represent -the basis functions. A polynomial basis function of the form 1, :math:`t`, -:math:`t^2`, ... can be computed using the `PolyBasis` class, which is -initialized by passing the desired order of the polynomial basis set:: +:math:`\phi_i(t)` must be chosen. The `FlatBasis` class is used to +represent the basis functions. A polynomial basis function of the +form 1, :math:`t`, :math:`t^2`, ... can be computed using the +:class:`~control.flatsys.PolyFamily` class, which is initialized by +passing the desired order of the polynomial basis set:: - polybasis = control.flatsys.PolyBasis(N) + basis = control.flatsys.PolyFamily(N) + +Additional basis function families include Bezier curves +(:class:`~control.flatsys.BezierFamily`) and B-splines +(:class:`~control.flatsys.BSplineFamily`). Once the system and basis function have been defined, the :func:`~control.flatsys.point_to_point` function can be used to compute a trajectory between initial and final states and inputs:: traj = control.flatsys.point_to_point( - sys, Tf, x0, u0, xf, uf, basis=polybasis) + sys, Tf, x0, u0, xf, uf, basis=basis) The returned object has class :class:`~control.flatsys.SystemTrajectory` and can be used to compute the state and input trajectory between the initial and @@ -169,6 +175,18 @@ The :func:`~control.flatsys.point_to_point` function also allows the specification of a cost function and/or constraints, in the same format as :func:`~control.optimal.solve_ocp`. +The :func:`~control.flatsys.solve_flat_ocp` function can be used to +solve an optimal control problem without a final state:: + + traj = control.flatsys.solve_flat_ocp( + sys, timepts, x0, u0, cost, basis=basis) + +The `cost` parameter is a function function with call signature +`cost(x, u)` and should return the (incremental) cost at the given +state, and input. It will be evaluated at each point in the `timepts` +vector. The `terminal_cost` parameter can be used to specify a cost +function for the final point in the trajectory. + Example ======= @@ -179,7 +197,9 @@ derived *Feedback Systems* by Astrom and Murray, Example 3.11. .. code-block:: python + import control as ct import control.flatsys as fs + import numpy as np # Function to take states, inputs and return the flat flag def vehicle_flat_forward(x, u, params={}): @@ -228,7 +248,8 @@ derived *Feedback Systems* by Astrom and Murray, Example 3.11. return x, u vehicle_flat = fs.FlatSystem( - 3, 2, forward=vehicle_flat_forward, reverse=vehicle_flat_reverse) + vehicle_flat_forward, vehicle_flat_reverse, + inputs=('v', 'delta'), outputs=('x', 'y'), states=('x', 'y', 'theta')) To find a trajectory from an initial state :math:`x_0` to a final state :math:`x_\text{f}` in time :math:`T_\text{f}` we solve a point-to-point @@ -253,6 +274,33 @@ the endpoints. t = np.linspace(0, Tf, 100) x, u = traj.eval(t) +Alternatively, we can solve an optimal control problem in which we +minimize a cost function along the trajectory as well as a terminal +cost:` + +.. code-block:: python + + # Define the cost along the trajectory: penalize steering angle + traj_cost = ct.optimal.quadratic_cost( + vehicle_flat, None, np.diag([0.1, 10]), u0=uf) + + # Define the terminal cost: penalize distance from the end point + term_cost = ct.optimal.quadratic_cost( + vehicle_flat, np.diag([1e3, 1e3, 1e3]), None, x0=xf) + + # Use a straight line as the initial guess + timepts = np.linspace(0, Tf, 10) + initial_guess = np.array( + [x0[i] + (xf[i] - x0[i]) * timepts/Tf for i in (0, 1)]) + + # Solve the optimal control problem, evaluating cost at timepts + bspline = fs.BSplineFamily([0, Tf/2, Tf], 4) + traj = fs.solve_flat_ocp( + vehicle_flat, timepts, x0, u0, traj_cost, + terminal_cost=term_cost, initial_guess=initial_guess, basis=bspline) + + x, u = traj.eval(t) + Module classes and functions ============================ @@ -262,6 +310,7 @@ Module classes and functions ~control.flatsys.BasisFamily ~control.flatsys.BezierFamily + ~control.flatsys.BSplineFamily ~control.flatsys.FlatSystem ~control.flatsys.LinearFlatSystem ~control.flatsys.PolyFamily @@ -271,3 +320,4 @@ Module classes and functions :toctree: generated/ ~control.flatsys.point_to_point + ~control.flatsys.solve_flat_ocp From 4c954d21450ccfad4a13a98c1d08ddcad880cdff Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 24 Aug 2022 21:09:40 -0700 Subject: [PATCH 0052/1025] remove slycotonly from selected MIMO tests --- control/tests/matlab_test.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/control/tests/matlab_test.py b/control/tests/matlab_test.py index a379ce7f0..e5259c75b 100644 --- a/control/tests/matlab_test.py +++ b/control/tests/matlab_test.py @@ -208,7 +208,6 @@ def testStep(self, siso): np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) np.testing.assert_array_almost_equal(tout, t) - @slycotonly def testStep_mimo(self, mimo): """Test step for MIMO system""" sys = mimo.ss1 @@ -267,7 +266,6 @@ def testImpulse(self, siso): np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) np.testing.assert_array_almost_equal(tout, t) - @slycotonly def testImpulse_mimo(self, mimo): """Test impulse() for MIMO system""" t = np.linspace(0, 1, 10) @@ -296,7 +294,6 @@ def testInitial(self, siso): np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) np.testing.assert_array_almost_equal(tout, t) - @slycotonly def testInitial_mimo(self, mimo): """Test initial() for MIMO system""" t = np.linspace(0, 1, 10) @@ -333,7 +330,6 @@ def testLsim(self, siso): yout, _t, _xout = lsim(siso.ss1, u, t, x0) np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) - @slycotonly def testLsim_mimo(self, mimo): """Test lsim() for MIMO system. @@ -582,7 +578,6 @@ def testSISOssdata(self, siso): for i in range(len(ssdata_1)): np.testing.assert_array_almost_equal(ssdata_1[i], ssdata_2[i]) - @slycotonly def testMIMOssdata(self, mimo): """Test ssdata() MIMO""" m = (mimo.ss1.A, mimo.ss1.B, mimo.ss1.C, mimo.ss1.D) From 6e3113a0b82eec20712211b6ed77f2cc3692fa26 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 24 Aug 2022 21:37:13 -0700 Subject: [PATCH 0053/1025] remove bad dimension check in forced_response for dtime systems --- control/tests/matlab_test.py | 19 +++++++++++++++++++ control/tests/timeresp_test.py | 4 ++-- control/timeresp.py | 5 ----- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/control/tests/matlab_test.py b/control/tests/matlab_test.py index e5259c75b..abf86ce44 100644 --- a/control/tests/matlab_test.py +++ b/control/tests/matlab_test.py @@ -348,6 +348,25 @@ def testLsim_mimo(self, mimo): yout, _t, _xout = lsim(mimo.ss1, u, t, x0) np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) + def test_lsim_mimo_dtime(self): + # https://github.com/python-control/python-control/issues/764 + time = np.linspace(0.0, 511.0e-6, 512) + DAC = np.sin(time) + ADC = np.cos(time) + + input_Kalman = np.transpose( + np.concatenate(([[DAC]], [[ADC]]), axis=1)[0]) + Af = [[0.45768416, -0.42025511], [-0.43354791, 0.51961178]] + Bf = [[2.84368641, 52.05922305], [-1.47286557, -19.94861943]] + Cf = [[1.0, 0.0], [0.0, 1.0]] + Df = [[0.0, 0.0], [0.0, 0.0]] + + ss_Kalman = ss(Af, Bf, Cf, Df, 1.0e-6) + y_est, t, x_est = lsim(ss_Kalman, input_Kalman, time) + assert y_est.shape == (time.size, ss_Kalman.ninputs) + assert t.shape == (time.size, ) + assert x_est.shape == (time.size, ss_Kalman.nstates) + def testMargin(self, siso): """Test margin()""" #! TODO: check results to make sure they are OK diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index ff712f849..124e16c1e 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -698,10 +698,10 @@ def test_forced_response_invalid_d(self, tsystem): """Test invalid parameters dtime with sys.dt > 0.""" with pytest.raises(ValueError, match="can't both be zero"): forced_response(tsystem.sys) - with pytest.raises(ValueError, match="must have same elements"): + with pytest.raises(ValueError, match="Parameter ``U``: Wrong shape"): forced_response(tsystem.sys, T=tsystem.t, U=np.random.randn(1, 12)) - with pytest.raises(ValueError, match="must have same elements"): + with pytest.raises(ValueError, match="Parameter ``U``: Wrong shape"): forced_response(tsystem.sys, T=tsystem.t, U=np.random.randn(12)) with pytest.raises(ValueError, match="must match sampling time"): diff --git a/control/timeresp.py b/control/timeresp.py index aa1261ccd..e029f2a44 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -972,11 +972,6 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, dt = 1. if sys.dt in [True, None] else sys.dt T = np.array(range(n_steps)) * dt else: - # Make sure the input vector and time vector have same length - if (U.ndim == 1 and U.shape[0] != T.shape[0]) or \ - (U.ndim > 1 and U.shape[1] != T.shape[0]): - raise ValueError('Parameter ``T`` must have same elements as' - ' the number of columns in input array ``U``') if U.ndim == 0: U = np.full((n_inputs, T.shape[0]), U) else: From 47262f5ceaf5fc5a7d8c6947d9d24c03e3078fd6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 28 Aug 2022 20:52:47 -0700 Subject: [PATCH 0054/1025] update coeff handling to allow multi-variable basis --- control/optimal.py | 65 ++++++++++++++++------------------- control/tests/optimal_test.py | 21 ++++++----- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index da1bdcb8e..4913cc341 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -268,17 +268,16 @@ def _cost_function(self, coeffs): start_time = time.process_time() logging.info("_cost_function called at: %g", start_time) - # Retrieve the initial state and reshape the input vector + # Retrieve the saved initial state x = self.x - coeffs = coeffs.reshape((self.system.ninputs, -1)) - # Compute time points (if basis present) + # Compute inputs if self.basis: if self.log: logging.debug("coefficients = " + str(coeffs)) inputs = self._coeffs_to_inputs(coeffs) else: - inputs = coeffs + inputs = coeffs.reshape((self.system.ninputs, -1)) # See if we already have a simulation for this condition if np.array_equal(coeffs, self.last_coeffs) and \ @@ -391,15 +390,14 @@ def _constraint_function(self, coeffs): start_time = time.process_time() logging.info("_constraint_function called at: %g", start_time) - # Retrieve the initial state and reshape the input vector + # Retrieve the initial state x = self.x - coeffs = coeffs.reshape((self.system.ninputs, -1)) - # Compute time points (if basis present) + # Compute input at time points if self.basis: inputs = self._coeffs_to_inputs(coeffs) else: - inputs = coeffs + inputs = coeffs.reshape((self.system.ninputs, -1)) # See if we already have a simulation for this condition if np.array_equal(coeffs, self.last_coeffs) \ @@ -473,15 +471,14 @@ def _eqconst_function(self, coeffs): start_time = time.process_time() logging.info("_eqconst_function called at: %g", start_time) - # Retrieve the initial state and reshape the input vector + # Retrieve the initial state x = self.x - coeffs = coeffs.reshape((self.system.ninputs, -1)) - # Compute time points (if basis present) + # Compute input at time points if self.basis: inputs = self._coeffs_to_inputs(coeffs) else: - inputs = coeffs + inputs = coeffs.reshape((self.system.ninputs, -1)) # See if we already have a simulation for this condition if np.array_equal(coeffs, self.last_coeffs) and \ @@ -609,34 +606,36 @@ def _inputs_to_coeffs(self, inputs): return inputs # Solve least squares problems (M x = b) for coeffs on each input - coeffs = np.zeros((self.system.ninputs, self.basis.N)) + coeffs = [] for i in range(self.system.ninputs): # Set up the matrices to get inputs - M = np.zeros((self.timepts.size, self.basis.N)) + M = np.zeros((self.timepts.size, self.basis.var_ncoefs(i))) b = np.zeros(self.timepts.size) # Evaluate at each time point and for each basis function # TODO: vectorize for j, t in enumerate(self.timepts): - for k in range(self.basis.N): + for k in range(self.basis.var_ncoefs(i)): M[j, k] = self.basis(k, t) - b[j] = inputs[i, j] + b[j] = inputs[i, j] # Solve a least squares problem for the coefficients alpha, residuals, rank, s = np.linalg.lstsq(M, b, rcond=None) - coeffs[i, :] = alpha + coeffs.append(alpha) - return coeffs + return np.hstack(coeffs) # Utility function to convert coefficient vector to input vector def _coeffs_to_inputs(self, coeffs): # TODO: vectorize inputs = np.zeros((self.system.ninputs, self.timepts.size)) - for i, t in enumerate(self.timepts): - for k in range(self.basis.N): - phi_k = self.basis(k, t) - for inp in range(self.system.ninputs): - inputs[inp, i] += coeffs[inp, k] * phi_k + offset = 0 + for i in range(self.system.ninputs): + length = self.basis.var_ncoefs(i) + for j, t in enumerate(self.timepts): + for k in range(length): + inputs[i, j] += coeffs[offset + k] * self.basis(k, t) + offset += length return inputs # @@ -680,7 +679,7 @@ def _print_statistics(self, reset=True): # Compute the optimal trajectory from the current state def compute_trajectory( - self, x, squeeze=None, transpose=None, return_states=None, + self, x, squeeze=None, transpose=None, return_states=True, initial_guess=None, print_summary=True, **kwargs): """Compute the optimal input at state x @@ -689,8 +688,7 @@ def compute_trajectory( x : array-like or number, optional Initial state for the system. return_states : bool, optional - If True, return the values of the state at each time (default = - False). + If True (default), return the values of the state at each time. squeeze : bool, optional If True and if the system has a single output, return the system output as a 1D array rather than a 2D array. If False, return the @@ -837,7 +835,7 @@ class OptimalControlResult(sp.optimize.OptimizeResult): """ def __init__( - self, ocp, res, return_states=False, print_summary=False, + self, ocp, res, return_states=True, print_summary=False, transpose=None, squeeze=None): """Create a OptimalControlResult object""" @@ -848,14 +846,11 @@ def __init__( # Remember the optimal control problem that we solved self.problem = ocp - # Reshape and process the input vector - coeffs = res.x.reshape((ocp.system.ninputs, -1)) - - # Compute time points (if basis present) + # Compute input at time points if ocp.basis: - inputs = ocp._coeffs_to_inputs(coeffs) + inputs = ocp._coeffs_to_inputs(res.x) else: - inputs = coeffs + inputs = res.x.reshape((ocp.system.ninputs, -1)) # See if we got an answer if not res.success: @@ -894,7 +889,7 @@ def __init__( def solve_ocp( sys, horizon, X0, cost, trajectory_constraints=None, terminal_cost=None, terminal_constraints=[], initial_guess=None, basis=None, squeeze=None, - transpose=None, return_states=False, log=False, **kwargs): + transpose=None, return_states=True, log=False, **kwargs): """Compute the solution to an optimal control problem @@ -949,7 +944,7 @@ def solve_ocp( If `True`, turn on logging messages (using Python logging module). return_states : bool, optional - If True, return the values of the state at each time (default = False). + If True, return the values of the state at each time (default = True). squeeze : bool, optional If True and if the system has a single output, return the system diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 027b55c75..b100e7e14 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -300,8 +300,9 @@ def test_terminal_constraints(sys_args): np.testing.assert_almost_equal(res.inputs, u1) # Re-run using a basis function and see if we get the same answer - res = opt.solve_ocp(sys, time, x0, cost, terminal_constraints=final_point, - basis=flat.BezierFamily(8, Tf)) + res = opt.solve_ocp( + sys, time, x0, cost, terminal_constraints=final_point, + basis=flat.BezierFamily(8, Tf)) # Final point doesn't affect cost => don't need to test np.testing.assert_almost_equal( @@ -471,8 +472,12 @@ def test_ocp_argument_errors(): sys, time, x0, cost, terminal_constraints=constraints) -def test_optimal_basis_simple(): - sys = ct.ss2io(ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1)) +@pytest.mark.parametrize("basis", [ + flat.PolyFamily(4), flat.PolyFamily(6), + flat.BezierFamily(4), flat.BSplineFamily([0, 4, 8], 6) + ]) +def test_optimal_basis_simple(basis): + sys = ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1) # State and input constraints constraints = [ @@ -492,7 +497,7 @@ def test_optimal_basis_simple(): # Basic optimal control problem res1 = opt.solve_ocp( sys, time, x0, cost, constraints, - basis=flat.BezierFamily(4, Tf), return_x=True) + terminal_cost=cost, basis=basis, return_x=True) assert res1.success # Make sure the constraints were satisfied @@ -503,14 +508,14 @@ def test_optimal_basis_simple(): # Pass an initial guess and rerun res2 = opt.solve_ocp( sys, time, x0, cost, constraints, initial_guess=0.99*res1.inputs, - basis=flat.BezierFamily(4, Tf), return_x=True) + terminal_cost=cost, basis=basis, return_x=True) assert res2.success np.testing.assert_allclose(res2.inputs, res1.inputs, atol=0.01, rtol=0.01) # Run with logging turned on for code coverage res3 = opt.solve_ocp( - sys, time, x0, cost, constraints, - basis=flat.BezierFamily(4, Tf), return_x=True, log=True) + sys, time, x0, cost, constraints, terminal_cost=cost, + basis=basis, return_x=True, log=True) assert res3.success np.testing.assert_almost_equal(res3.inputs, res1.inputs, decimal=3) From 86959e38ad3be6cfe35bf29da0f01b0acb4282bf Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 9 Sep 2022 09:02:35 -0700 Subject: [PATCH 0055/1025] CI: switch slycot and cvxopt installation order --- .github/workflows/python-package-conda.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index ae889fd05..459f9e69d 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -50,15 +50,15 @@ jobs: - name: Install optional dependencies shell: bash -l {0} run: | + if [[ '${{matrix.cvxopt}}' == 'conda' ]]; then + mamba install cvxopt + fi if [[ '${{matrix.slycot}}' == 'conda' ]]; then mamba install slycot fi if [[ '${{matrix.pandas}}' == 'conda' ]]; then mamba install pandas fi - if [[ '${{matrix.cvxopt}}' == 'conda' ]]; then - mamba install cvxopt - fi - name: Test with pytest shell: bash -l {0} From c1f18689af280918800463873ec3eee9607d2c95 Mon Sep 17 00:00:00 2001 From: Hang Yu Date: Mon, 3 Oct 2022 13:47:29 -0700 Subject: [PATCH 0056/1025] Move sys._update_params(params) ahead of TimeResponseData return when ntates==0 --- control/iosys.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index ce717c0fb..437c73d09 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1779,6 +1779,9 @@ def input_output_response( else: noutputs = sys.noutputs + # Update the parameter values + sys._update_params(params) + # # Define a function to evaluate the input at an arbitrary time # @@ -1816,9 +1819,6 @@ def ufun(t): output_labels=sys.output_index, input_labels=sys.input_index, transpose=transpose, return_x=return_x, squeeze=squeeze) - # Update the parameter values - sys._update_params(params) - # Create a lambda function for the right hand side def ivp_rhs(t, x): return sys._rhs(t, x, ufun(t)) From ffee2acf192060ea207be05891e2d8ac21996bf8 Mon Sep 17 00:00:00 2001 From: fredrhen Date: Fri, 7 Oct 2022 11:28:19 +0200 Subject: [PATCH 0057/1025] Fixed a typo in conventions.rst --- doc/conventions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conventions.rst b/doc/conventions.rst index 1832b9525..476366714 100644 --- a/doc/conventions.rst +++ b/doc/conventions.rst @@ -29,7 +29,7 @@ of linear time-invariant (LTI) systems: where u is the input, y is the output, and x is the state. -To create a state space system, use the :fun:`ss` function: +To create a state space system, use the :func:`ss` function: sys = ct.ss(A, B, C, D) From 461c7c35418c98a9a9a72faaf1dc8981894cf2f7 Mon Sep 17 00:00:00 2001 From: fredrhen Date: Fri, 7 Oct 2022 15:23:01 +0200 Subject: [PATCH 0058/1025] Fixed more errors when compiling the documentation --- control/iosys.py | 5 ++--- control/passivity.py | 2 +- control/sisotool.py | 2 ++ 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index ce717c0fb..1bd9bcb9a 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2242,7 +2242,7 @@ def ss(*args, **kwargs): Convert a linear system into space system form. Always creates a new system, even if sys is already a state space system. - ``ss(updfcn, outfucn)``` + ``ss(updfcn, outfucn)`` Create a nonlinear input/output system with update function ``updfcn`` and output function ``outfcn``. See :class:`NonlinearIOSystem` for more information. @@ -2269,8 +2269,7 @@ def ss(*args, **kwargs): Everything that the constructor of :class:`numpy.matrix` accepts is permissible here too. - ``ss(args, inputs=['u1', ..., 'up'], outputs=['y1', ..., 'yq'], - states=['x1', ..., 'xn']) + ``ss(args, inputs=['u1', ..., 'up'], outputs=['y1', ..., 'yq'], states=['x1', ..., 'xn'])`` Create a system with named input, output, and state signals. Parameters diff --git a/control/passivity.py b/control/passivity.py index 2ec1a7683..3777b3d92 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -281,7 +281,7 @@ def ispassive(sys, ofp_index=0, ifp_index=0): guaranteed to have an output of True (the system might not be passive with both indices at the same time). - For more details, see [1]. + For more details, see [1]_. References ---------- diff --git a/control/sisotool.py b/control/sisotool.py index 52c061249..781fabf40 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -213,6 +213,8 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', derivative terms are given instead by Kp, Ki*dt/2*(z+1)/(z-1), and Kd/dt*(z-1)/z, respectively. + :: + ------> C_ff ------ d | | | r | e V V u y From dc74aec940d027a1857eb1a97ca3e6a3a7c0a3b1 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 8 Oct 2022 16:01:15 +0200 Subject: [PATCH 0059/1025] parametrize kwargs tests; allow new matplotib 3.6 error message --- control/tests/kwargs_test.py | 135 +++++++++++++++++------------------ 1 file changed, 65 insertions(+), 70 deletions(-) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 598a8ccca..855bb9dda 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -75,79 +75,74 @@ def test_kwarg_search(module, prefix): test_kwarg_search(obj, prefix + obj.__name__ + '.') -@pytest.mark.usefixtures('editsdefaults') -def test_unrecognized_kwargs(): +@pytest.mark.parametrize( + "function, nsssys, ntfsys, moreargs, kwargs", + [(control.dlqe, 1, 0, ([[1]], [[1]]), {}), + (control.dlqr, 1, 0, ([[1, 0], [0, 1]], [[1]]), {}), + (control.drss, 0, 0, (2, 1, 1), {}), + (control.input_output_response, 1, 0, ([0, 1, 2], [1, 1, 1]), {}), + (control.lqe, 1, 0, ([[1]], [[1]]), {}), + (control.lqr, 1, 0, ([[1, 0], [0, 1]], [[1]]), {}), + (control.linearize, 1, 0, (0, 0), {}), + (control.pzmap, 1, 0, (), {}), + (control.rlocus, 0, 1, ( ), {}), + (control.root_locus, 0, 1, ( ), {}), + (control.rss, 0, 0, (2, 1, 1), {}), + (control.set_defaults, 0, 0, ('control',), {'default_dt': True}), + (control.ss, 0, 0, (0, 0, 0, 0), {'dt': 1}), + (control.ss2io, 1, 0, (), {}), + (control.ss2tf, 1, 0, (), {}), + (control.summing_junction, 0, 0, (2,), {}), + (control.tf, 0, 0, ([1], [1, 1]), {}), + (control.tf2io, 0, 1, (), {}), + (control.tf2ss, 0, 1, (), {}), + (control.InputOutputSystem, 0, 0, (), + {'inputs': 1, 'outputs': 1, 'states': 1}), + (control.InputOutputSystem.linearize, 1, 0, (0, 0), {}), + (control.StateSpace, 0, 0, ([[-1, 0], [0, -1]], [[1], [1]], [[1, 1]], 0), {}), + (control.TransferFunction, 0, 0, ([1], [1, 1]), {})] +) +def test_unrecognized_kwargs(function, nsssys, ntfsys, moreargs, kwargs, + mplcleanup, editsdefaults): + # Create SISO systems for use in parameterized tests + sssys = control.ss([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], 0, dt=None) + tfsys = control.tf([1], [1, 1]) + + args = (sssys, )*nsssys + (tfsys, )*ntfsys + moreargs + + # Call the function normally and make sure it works + function(*args, **kwargs) + + # Now add an unrecognized keyword and make sure there is an error + with pytest.raises(TypeError, match="unrecognized keyword"): + function(*args, **kwargs, unknown=None) + + +@pytest.mark.parametrize( + "function, nsysargs, moreargs, kwargs", + [(control.bode, 1, (), {}), + (control.bode_plot, 1, (), {}), + (control.describing_function_plot, 1, + (control.descfcn.saturation_nonlinearity(1), [1, 2, 3, 4]), {}), + (control.gangof4, 2, (), {}), + (control.gangof4_plot, 2, (), {}), + (control.nyquist, 1, (), {}), + (control.nyquist_plot, 1, (), {}), + (control.singular_values_plot, 1, (), {})] +) +def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): # Create a SISO system for use in parameterized tests sys = control.ss([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], 0, dt=None) - table = [ - [control.dlqe, (sys, [[1]], [[1]]), {}], - [control.dlqr, (sys, [[1, 0], [0, 1]], [[1]]), {}], - [control.drss, (2, 1, 1), {}], - [control.input_output_response, (sys, [0, 1, 2], [1, 1, 1]), {}], - [control.lqe, (sys, [[1]], [[1]]), {}], - [control.lqr, (sys, [[1, 0], [0, 1]], [[1]]), {}], - [control.linearize, (sys, 0, 0), {}], - [control.pzmap, (sys,), {}], - [control.rlocus, (control.tf([1], [1, 1]), ), {}], - [control.root_locus, (control.tf([1], [1, 1]), ), {}], - [control.rss, (2, 1, 1), {}], - [control.set_defaults, ('control',), {'default_dt': True}], - [control.ss, (0, 0, 0, 0), {'dt': 1}], - [control.ss2io, (sys,), {}], - [control.ss2tf, (sys,), {}], - [control.summing_junction, (2,), {}], - [control.tf, ([1], [1, 1]), {}], - [control.tf2io, (control.tf([1], [1, 1]),), {}], - [control.tf2ss, (control.tf([1], [1, 1]),), {}], - [control.InputOutputSystem, (), - {'inputs': 1, 'outputs': 1, 'states': 1}], - [control.InputOutputSystem.linearize, (sys, 0, 0), {}], - [control.StateSpace, ([[-1, 0], [0, -1]], [[1], [1]], [[1, 1]], 0), {}], - [control.TransferFunction, ([1], [1, 1]), {}], - ] - - for function, args, kwargs in table: - # Call the function normally and make sure it works - function(*args, **kwargs) - - # Now add an unrecognized keyword and make sure there is an error - with pytest.raises(TypeError, match="unrecognized keyword"): - function(*args, **kwargs, unknown=None) - - # If we opened any figures, close them to avoid matplotlib warnings - if plt.gca(): - plt.close('all') - - -def test_matplotlib_kwargs(): - # Create a SISO system for use in parameterized tests - sys = control.ss([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], 0, dt=None) - ctl = control.ss([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], 0, dt=None) - - table = [ - [control.bode, (sys, ), {}], - [control.bode_plot, (sys, ), {}], - [control.describing_function_plot, - (sys, control.descfcn.saturation_nonlinearity(1), [1, 2, 3, 4]), {}], - [control.gangof4, (sys, ctl), {}], - [control.gangof4_plot, (sys, ctl), {}], - [control.nyquist, (sys, ), {}], - [control.nyquist_plot, (sys, ), {}], - [control.singular_values_plot, (sys, ), {}], - ] - - for function, args, kwargs in table: - # Call the function normally and make sure it works - function(*args, **kwargs) - - # Now add an unrecognized keyword and make sure there is an error - with pytest.raises(AttributeError, match="has no property"): - function(*args, **kwargs, unknown=None) - - # If we opened any figures, close them to avoid matplotlib warnings - if plt.gca(): - plt.close('all') + # Call the function normally and make sure it works + args = (sys, )*nsysargs + moreargs + function(*args, **kwargs) + + # Now add an unrecognized keyword and make sure there is an error + with pytest.raises(AttributeError, + match="(has no property|unexpected keyword)"): + function(*args, **kwargs, unknown=None) + # From 1cf3ec7fbd5a12419c64db5125abc75a39e029ef Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 8 Oct 2022 16:33:00 +0200 Subject: [PATCH 0060/1025] xfail ill-conditioned passive test (issue #761) --- control/tests/passivity_test.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 4c95c96b9..6cee1bdb6 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -1,5 +1,5 @@ ''' -Author: Mark Yeatman +Author: Mark Yeatman Date: May 30, 2022 ''' import pytest @@ -99,20 +99,17 @@ def test_system_dimension(): @pytest.mark.parametrize( - "test_input,expected", + "systemmatrices, expected", [((A, B, C, D*0.0), True), ((A_d, B, C, D), True), - ((A*1e12, B, C, D*0), True), + pytest.param((A*1e12, B, C, D*0), True, + marks=pytest.mark.xfail(reason="gh-761")), ((A, B*0, C*0, D), True), ((A*0, B, C, D), True), ((A*0, B*0, C*0, D*0), True)]) -def test_ispassive_edge_cases(test_input, expected): - A = test_input[0] - B = test_input[1] - C = test_input[2] - D = test_input[3] - sys = ss(A, B, C, D) - assert(passivity.ispassive(sys) == expected) +def test_ispassive_edge_cases(systemmatrices, expected): + sys = ss(*systemmatrices) + assert passivity.ispassive(sys) == expected def test_rho_and_nu_are_none(): From a9b6c79f1008a5de673bcca368abab2d8e8314f7 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Tue, 11 Oct 2022 18:34:35 +0200 Subject: [PATCH 0061/1025] Update MANIFEST.in --- MANIFEST.in | 1 - 1 file changed, 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 1edd5f83f..5e06ec2d1 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,4 @@ include examples/*.py -include tests/*.py include README.rst include ChangeLog include Pending From 16741f4201982659e44bcd13a2584a0007650694 Mon Sep 17 00:00:00 2001 From: Gonzalo Molina Date: Fri, 14 Oct 2022 12:03:19 -0300 Subject: [PATCH 0062/1025] change latex equation delimiters \[ and \] for 186288 --- control/statesp.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 98d4a1633..374b036ca 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -519,7 +519,7 @@ def _latex_partitioned_stateless(self): s : string with LaTeX representation of model """ lines = [ - r'\[', + r'$$', (r'\left(' + r'\begin{array}' + r'{' + 'rll' * self.ninputs + '}') @@ -533,7 +533,7 @@ def _latex_partitioned_stateless(self): r'\end{array}' r'\right)' + self._latex_dt(), - r'\]']) + r'$$']) return '\n'.join(lines) @@ -551,7 +551,7 @@ def _latex_partitioned(self): return self._latex_partitioned_stateless() lines = [ - r'\[', + r'$$', (r'\left(' + r'\begin{array}' + r'{' + 'rll' * self.nstates + '|' + 'rll' * self.ninputs + '}') @@ -571,7 +571,7 @@ def _latex_partitioned(self): r'\end{array}' + r'\right)' + self._latex_dt(), - r'\]']) + r'$$']) return '\n'.join(lines) @@ -585,7 +585,7 @@ def _latex_separate(self): s : string with LaTeX representation of model """ lines = [ - r'\[', + r'$$', r'\begin{array}{ll}', ] @@ -615,7 +615,7 @@ def fmt_matrix(matrix, name): lines.extend([ r'\end{array}' + self._latex_dt(), - r'\]']) + r'$$']) return '\n'.join(lines) From 112af1a7392d1559bc66077313dcc7ed75af1d79 Mon Sep 17 00:00:00 2001 From: Gonzalo Molina Date: Fri, 14 Oct 2022 16:20:45 -0300 Subject: [PATCH 0063/1025] fixing tests for state space representation --- control/tests/statesp_test.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 315b5f152..97dc84e3c 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -1011,23 +1011,23 @@ def test_statespace_defaults(self, matarrayout): [[1.2345, -2e-200], [-1, 0]]) LTX_G1_REF = { - 'p3_p' : '\\[\n\\left(\\begin{array}{rllrll|rll}\n3.&\\hspace{-1em}14&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n-1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\hline\n9.&\\hspace{-1em}88&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}00123&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\]', + 'p3_p' : '$$\n\\left(\\begin{array}{rllrll|rll}\n3.&\\hspace{-1em}14&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n-1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\hline\n9.&\\hspace{-1em}88&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}00123&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n$$', - 'p5_p' : '\\[\n\\left(\\begin{array}{rllrll|rll}\n3.&\\hspace{-1em}1416&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n-1.&\\hspace{-1em}2346&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\hline\n9.&\\hspace{-1em}8765&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}001234&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\]', + 'p5_p' : '$$\n\\left(\\begin{array}{rllrll|rll}\n3.&\\hspace{-1em}1416&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n-1.&\\hspace{-1em}2346&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\hline\n9.&\\hspace{-1em}8765&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}001234&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n$$', - 'p3_s' : '\\[\n\\begin{array}{ll}\nA = \\left(\\begin{array}{rllrll}\n3.&\\hspace{-1em}14&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}\\\\\n-1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}\\\\\n\\end{array}\\right)\n&\nB = \\left(\\begin{array}{rll}\n0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\\\\nC = \\left(\\begin{array}{rllrll}\n9.&\\hspace{-1em}88&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}00123&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n&\nD = \\left(\\begin{array}{rll}\n5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n\\]', + 'p3_s' : '$$\n\\begin{array}{ll}\nA = \\left(\\begin{array}{rllrll}\n3.&\\hspace{-1em}14&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}\\\\\n-1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}\\\\\n\\end{array}\\right)\n&\nB = \\left(\\begin{array}{rll}\n0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\\\\nC = \\left(\\begin{array}{rllrll}\n9.&\\hspace{-1em}88&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}00123&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n&\nD = \\left(\\begin{array}{rll}\n5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n$$', - 'p5_s' : '\\[\n\\begin{array}{ll}\nA = \\left(\\begin{array}{rllrll}\n3.&\\hspace{-1em}1416&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}\\\\\n-1.&\\hspace{-1em}2346&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}\\\\\n\\end{array}\\right)\n&\nB = \\left(\\begin{array}{rll}\n0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\\\\nC = \\left(\\begin{array}{rllrll}\n9.&\\hspace{-1em}8765&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}001234&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n&\nD = \\left(\\begin{array}{rll}\n5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n\\]', + 'p5_s' : '$$\n\\begin{array}{ll}\nA = \\left(\\begin{array}{rllrll}\n3.&\\hspace{-1em}1416&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{100}\\\\\n-1.&\\hspace{-1em}2346&\\hspace{-1em}\\phantom{\\cdot}&5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-23}\\\\\n\\end{array}\\right)\n&\nB = \\left(\\begin{array}{rll}\n0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\\\\nC = \\left(\\begin{array}{rllrll}\n9.&\\hspace{-1em}8765&\\hspace{-1em}\\cdot10^{8}&0.&\\hspace{-1em}001234&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n&\nD = \\left(\\begin{array}{rll}\n5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n$$', } LTX_G2_REF = { - 'p3_p' : '\\[\n\\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\]', + 'p3_p' : '$$\n\\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n$$', - 'p5_p' : '\\[\n\\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}2345&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\]', + 'p5_p' : '$$\n\\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}2345&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n$$', - 'p3_s' : '\\[\n\\begin{array}{ll}\nD = \\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n\\]', + 'p3_s' : '$$\n\\begin{array}{ll}\nD = \\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}23&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n$$', - 'p5_s' : '\\[\n\\begin{array}{ll}\nD = \\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}2345&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n\\]', + 'p5_s' : '$$\n\\begin{array}{ll}\nD = \\left(\\begin{array}{rllrll}\n1.&\\hspace{-1em}2345&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\cdot10^{-200}\\\\\n-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n\\end{array}\\right)\n\\end{array}\n$$', } refkey_n = {None: 'p3', '.3g': 'p3', '.5g': 'p5'} From 45c3abdb534e8421c2582a7a1da8ecd6f10e1cbd Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 12 Nov 2022 15:45:10 -0800 Subject: [PATCH 0064/1025] add conversions for LTI systems in interconnect() --- control/iosys.py | 8 ++++- control/tests/type_conversion_test.py | 42 +++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 19f527c22..b88bbb84d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -894,6 +894,12 @@ def __init__(self, syslist, connections=[], inplist=[], outlist=[], # Go through the system list and keep track of counts, offsets for sysidx, sys in enumerate(syslist): + # If we were passed a SS or TF system, convert to LinearIOSystem + if isinstance(sys, (StateSpace, TransferFunction)) and \ + not isinstance(sys, LinearIOSystem): + sys = LinearIOSystem(sys) + syslist[sysidx] = sys + # Make sure time bases are consistent dt = common_timebase(dt, sys.dt) @@ -1781,7 +1787,7 @@ def input_output_response( # Update the parameter values sys._update_params(params) - + # # Define a function to evaluate the input at an arbitrary time # diff --git a/control/tests/type_conversion_test.py b/control/tests/type_conversion_test.py index cdf302015..02290d27b 100644 --- a/control/tests/type_conversion_test.py +++ b/control/tests/type_conversion_test.py @@ -59,7 +59,7 @@ def sys_dict(): rtype_list = ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt'] conversion_table = [ # op left ss tf frd lio ios arr flt - ('add', 'ss', ['ss', 'ss', 'frd', 'ss', 'ios', 'ss', 'ss' ]), + ('add', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), ('add', 'tf', ['tf', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), ('add', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), ('add', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), @@ -68,7 +68,7 @@ def sys_dict(): ('add', 'flt', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt']), # op left ss tf frd lio ios arr flt - ('sub', 'ss', ['ss', 'ss', 'frd', 'ss', 'ios', 'ss', 'ss' ]), + ('sub', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), ('sub', 'tf', ['tf', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), ('sub', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), ('sub', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), @@ -77,7 +77,7 @@ def sys_dict(): ('sub', 'flt', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt']), # op left ss tf frd lio ios arr flt - ('mul', 'ss', ['ss', 'ss', 'frd', 'ss', 'ios', 'ss', 'ss' ]), + ('mul', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), ('mul', 'tf', ['tf', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), ('mul', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), ('mul', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), @@ -191,3 +191,39 @@ def test_binary_op_type_conversions(opname, ltype, rtype, sys_dict): assert len(result.output_labels) == result.noutputs if result.nstates is not None: assert len(result.state_labels) == result.nstates + +@pytest.mark.parametrize( + "typelist, connections, inplist, outlist, expected", [ + (['lio', 'lio'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), + (['lio', 'ss'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), + (['ss', 'lio'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), + (['ss', 'ss'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), + (['lio', 'tf'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), + (['lio', 'frd'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'E'), + (['ios', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), + (['lio', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), + (['ss', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), + (['tf', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), + (['lio', 'ss', 'tf'], + [[(1, 0), (0, 0)], [(2, 0), (1, 0)]], [[(0, 0)]], [[(2, 0)]], 'lio'), + (['ios', 'ss', 'tf'], + [[(1, 0), (0, 0)], [(2, 0), (1, 0)]], [[(0, 0)]], [[(2, 0)]], 'ios'), + ]) +def test_interconnect( + typelist, connections, inplist, outlist, expected, sys_dict): + # Create the system list + syslist = [sys_dict[_type] for _type in typelist] + + # Make copies of any duplicates + for sysidx, sys in enumerate(syslist): + if sys == syslist[0]: + syslist[sysidx] = sys.copy() + + # Make sure we get the right result + if expected == 'E' or expected[0] == 'x': + # Exception expected + with pytest.raises(TypeError): + result = ct.interconnect(syslist, connections, inplist, outlist) + else: + result = ct.interconnect(syslist, connections, inplist, outlist) + assert isinstance(result, type_dict[expected]) From 43ce56bd03a26ec52312535e4dacb0fc6579f778 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 12 Nov 2022 16:36:17 -0800 Subject: [PATCH 0065/1025] fix params processing in I/O system + unit tests --- control/iosys.py | 12 +++++++----- control/tests/type_conversion_test.py | 12 +++++++++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index b88bbb84d..8123b9050 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -357,7 +357,7 @@ def _update_params(self, params, warning=False): if warning: warn("Parameters passed to InputOutputSystem ignored.") - def _rhs(self, t, x, u, params={}): + def _rhs(self, t, x, u): """Evaluate right hand side of a differential or difference equation. Private function used to compute the right hand side of an @@ -369,7 +369,7 @@ def _rhs(self, t, x, u, params={}): NotImplemented("Evaluation not implemented for system of type ", type(self)) - def dynamics(self, t, x, u): + def dynamics(self, t, x, u, params={}): """Compute the dynamics of a differential or difference equation. Given time `t`, input `u` and state `x`, returns the value of the @@ -400,9 +400,10 @@ def dynamics(self, t, x, u): ------- dx/dt or x[t+dt] : ndarray """ + self._update_params(params) return self._rhs(t, x, u) - def _out(self, t, x, u, params={}): + def _out(self, t, x, u): """Evaluate the output of a system at a given state, input, and time Private function used to compute the output of of an input/output @@ -414,7 +415,7 @@ def _out(self, t, x, u, params={}): # If no output function was defined in subclass, return state return x - def output(self, t, x, u): + def output(self, t, x, u, params={}): """Compute the output of the system Given time `t`, input `u` and state `x`, returns the output of the @@ -437,6 +438,7 @@ def output(self, t, x, u): ------- y : ndarray """ + self._update_params(params) return self._out(t, x, u) def feedback(self, other=1, sign=-1, params={}): @@ -2248,7 +2250,7 @@ def ss(*args, **kwargs): Convert a linear system into space system form. Always creates a new system, even if sys is already a state space system. - ``ss(updfcn, outfucn)`` + ``ss(updfcn, outfcn)`` Create a nonlinear input/output system with update function ``updfcn`` and output function ``outfcn``. See :class:`NonlinearIOSystem` for more information. diff --git a/control/tests/type_conversion_test.py b/control/tests/type_conversion_test.py index 02290d27b..7163f7097 100644 --- a/control/tests/type_conversion_test.py +++ b/control/tests/type_conversion_test.py @@ -19,7 +19,9 @@ def sys_dict(): sdict['frd'] = ct.frd([10+0j, 9 + 1j, 8 + 2j, 7 + 3j], [1, 2, 3, 4]) sdict['lio'] = ct.LinearIOSystem(ct.ss([[-1]], [[5]], [[5]], [[0]])) sdict['ios'] = ct.NonlinearIOSystem( - sdict['lio']._rhs, sdict['lio']._out, inputs=1, outputs=1, states=1) + lambda t, x, u, params: sdict['lio']._rhs(t, x, u), + lambda t, x, u, params: sdict['lio']._out(t, x, u), + inputs=1, outputs=1, states=1) sdict['arr'] = np.array([[2.0]]) sdict['flt'] = 3. return sdict @@ -226,4 +228,12 @@ def test_interconnect( result = ct.interconnect(syslist, connections, inplist, outlist) else: result = ct.interconnect(syslist, connections, inplist, outlist) + + # Make sure the type is correct assert isinstance(result, type_dict[expected]) + + # Make sure we can evaluate the dynamics + np.testing.assert_equal( + result.dynamics( + 0, np.zeros(result.nstates), np.zeros(result.ninputs)), + np.zeros(result.nstates)) From 1a78cb8eb11f53caa444e0833391ffe5f561bcdb Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 12 Nov 2022 18:48:09 -0800 Subject: [PATCH 0066/1025] update params docstrings in iosys --- control/iosys.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 8123b9050..e3f37b8b6 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -376,16 +376,17 @@ def dynamics(self, t, x, u, params={}): right hand side of the dynamical system. If the system is continuous, returns the time derivative - dx/dt = f(t, x, u) + dx/dt = f(t, x, u, params) where `f` is the system's (possibly nonlinear) dynamics function. If the system is discrete-time, returns the next value of `x`: - x[t+dt] = f(t, x[t], u[t]) + x[t+dt] = f(t, x[t], u[t], params) - Where `t` is a scalar. + where `t` is a scalar. - The inputs `x` and `u` must be of the correct length. + The inputs `x` and `u` must be of the correct length. The `params` + argument is an optional dictionary of parameter values. Parameters ---------- @@ -395,6 +396,8 @@ def dynamics(self, t, x, u, params={}): current state u : array_like input + params : dict (optional) + system parameter values Returns ------- @@ -421,7 +424,7 @@ def output(self, t, x, u, params={}): Given time `t`, input `u` and state `x`, returns the output of the system: - y = g(t, x, u) + y = g(t, x, u[, params]) The inputs `x` and `u` must be of the correct length. @@ -433,6 +436,8 @@ def output(self, t, x, u, params={}): current state u : array_like input + params : dict (optional) + system parameter values Returns ------- From c425d2c9312af16eb49c13222f81ce0e94ff7b16 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 12 Nov 2022 22:03:18 -0800 Subject: [PATCH 0067/1025] fix _isstatic() to use nstates==0 --- control/statesp.py | 10 ++-------- control/tests/iosys_test.py | 10 +++++++++- control/tests/statesp_test.py | 33 ++++++++++++++------------------- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 374b036ca..ca14a5690 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -326,7 +326,7 @@ def __init__(self, *args, init_namedio=True, **kwargs): D = np.zeros((C.shape[0], B.shape[1])) D = _ssmatrix(D) - # Matrices definining the linear system + # Matrices defining the linear system self.A = A self.B = B self.C = C @@ -346,9 +346,8 @@ def __init__(self, *args, init_namedio=True, **kwargs): defaults = args[0] if len(args) == 1 else \ {'inputs': D.shape[1], 'outputs': D.shape[0], 'states': A.shape[0]} - static = (A.size == 0) name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, defaults, static=static, end=True) + kwargs, defaults, static=(A.size == 0), end=True) # Initialize LTI (NamedIOSystem) object super().__init__( @@ -1478,11 +1477,6 @@ def output(self, t, x, u=None): return (self.C @ x).reshape((-1,)) \ + (self.D @ u).reshape((-1,)) # return as row vector - def _isstatic(self): - """True if and only if the system has no dynamics, that is, - if A and B are zero. """ - return not np.any(self.A) and not np.any(self.B) - # TODO: add discrete time check def _convert_to_statespace(sys): diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 693be979e..8a6ed8165 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -41,6 +41,9 @@ class TSys: [[-1, 1], [0, -2]], [[0, 1], [1, 0]], [[1, 0], [0, 1]], np.zeros((2, 2))) + # Create a static gain linear system + T.staticgain = ct.StateSpace([], [], [], 1) + # Create simulation parameters T.T = np.linspace(0, 10, 100) T.U = np.sin(T.T) @@ -51,7 +54,7 @@ class TSys: def test_linear_iosys(self, tsys): # Create an input/output system from the linear system linsys = tsys.siso_linsys - iosys = ios.LinearIOSystem(linsys) + iosys = ios.LinearIOSystem(linsys).copy() # Make sure that the right hand side matches linear system for x, u in (([0, 0], 0), ([1, 0], 0), ([0, 1], 0), ([0, 0], 1)): @@ -66,6 +69,11 @@ def test_linear_iosys(self, tsys): np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) + # Make sure that a static linear system has dt=None + # and otherwise dt is as specified + assert ios.LinearIOSystem(tsys.staticgain).dt is None + assert ios.LinearIOSystem(tsys.staticgain, dt=.1).dt == .1 + def test_tf2io(self, tsys): # Create a transfer function from the state space system linsys = tsys.siso_linsys diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 97dc84e3c..5fe7d36af 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -399,25 +399,6 @@ def test_freq_resp(self): mag, phase, omega = sys.freqresp(true_omega) np.testing.assert_almost_equal(mag, true_mag) - def test__isstatic(self): - A0 = np.zeros((2,2)) - A1 = A0.copy() - A1[0,1] = 1.1 - B0 = np.zeros((2,1)) - B1 = B0.copy() - B1[0,0] = 1.3 - C0 = A0 - C1 = np.eye(2) - D0 = 0 - D1 = np.ones((2,1)) - assert StateSpace(A0, B0, C1, D1)._isstatic() - assert not StateSpace(A1, B0, C1, D1)._isstatic() - assert not StateSpace(A0, B1, C1, D1)._isstatic() - assert not StateSpace(A1, B1, C1, D1)._isstatic() - assert StateSpace(A0, B0, C0, D0)._isstatic() - assert StateSpace(A0, B0, C0, D1)._isstatic() - assert StateSpace(A0, B0, C1, D0)._isstatic() - @slycotonly def test_minreal(self): """Test a minreal model reduction.""" @@ -1158,3 +1139,17 @@ def test_linfnorm_ct_mimo(self, ct_siso): gpeak, fpeak = linfnorm(sys) np.testing.assert_allclose(gpeak, refgpeak) np.testing.assert_allclose(fpeak, reffpeak) + +@pytest.mark.parametrize("args, static", [ + (([], [], [], 1), True), # ctime, empty state + (([], [], [], 1, 1), True), # dtime, empty state + ((0, 0, 0, 1), False), # ctime, unused state + ((-1, 0, 0, 1), False), # ctime, exponential decay + ((-1, 0, 0, 0), False), # ctime, no input, no output + ((0, 0, 0, 1, 1), False), # dtime, integrator + ((1, 0, 0, 1, 1), False), # dtime, unused state + ((0, 0, 0, 1, None), False), # unspecified, unused state +]) +def test_isstatic(args, static): + sys = ct.StateSpace(*args) + assert sys._isstatic() == static From 878cf98479f6240bcfa1d29f81ca26454642581f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 12 Nov 2022 23:12:44 -0800 Subject: [PATCH 0068/1025] replace mutables as arguments with None, per @roryyorke suggestion --- control/iosys.py | 66 +++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index e3f37b8b6..58eb47db8 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -126,7 +126,7 @@ class for a set of subclasses that are used to implement specific # Allow ndarray * InputOutputSystem to give IOSystem._rmul_() priority __array_priority__ = 12 # override ndarray, matrix, SS types - def __init__(self, params={}, **kwargs): + def __init__(self, params=None, **kwargs): """Create an input/output system. The InputOutputSystem constructor is used to create an input/output @@ -148,7 +148,7 @@ def __init__(self, params={}, **kwargs): states=states, name=name, dt=dt) # default parameters - self.params = params.copy() + self.params = {} if params is None else params.copy() def __mul__(sys2, sys1): """Multiply two input/output systems (series interconnection)""" @@ -369,7 +369,7 @@ def _rhs(self, t, x, u): NotImplemented("Evaluation not implemented for system of type ", type(self)) - def dynamics(self, t, x, u, params={}): + def dynamics(self, t, x, u, params=None): """Compute the dynamics of a differential or difference equation. Given time `t`, input `u` and state `x`, returns the value of the @@ -418,7 +418,7 @@ def _out(self, t, x, u): # If no output function was defined in subclass, return state return x - def output(self, t, x, u, params={}): + def output(self, t, x, u, params=None): """Compute the output of the system Given time `t`, input `u` and state `x`, returns the output of the @@ -446,7 +446,7 @@ def output(self, t, x, u, params={}): self._update_params(params) return self._out(t, x, u) - def feedback(self, other=1, sign=-1, params={}): + def feedback(self, other=1, sign=-1, params=None): """Feedback interconnection between two input/output systems Parameters @@ -514,7 +514,7 @@ def feedback(self, other=1, sign=-1, params={}): # Return the newly created system return newsys - def linearize(self, x0, u0, t=0, params={}, eps=1e-6, + def linearize(self, x0, u0, t=0, params=None, eps=1e-6, name=None, copy=False, **kwargs): """Linearize an input/output system at a given state and input. @@ -658,7 +658,7 @@ def __init__(self, linsys, **kwargs): # Note: don't use super() to override StateSpace MRO InputOutputSystem.__init__( self, inputs=inputs, outputs=outputs, states=states, - params={}, dt=dt, name=name) + params=None, dt=dt, name=name) # Initalize additional state space variables StateSpace.__init__( @@ -675,7 +675,7 @@ def __init__(self, linsys, **kwargs): #: number of states, use :attr:`nstates`. states = property(StateSpace._get_states, StateSpace._set_states) - def _update_params(self, params={}, warning=True): + def _update_params(self, params=None, warning=True): # Parameters not supported; issue a warning if params and warning: warn("Parameters passed to LinearIOSystems are ignored.") @@ -763,7 +763,7 @@ class NonlinearIOSystem(InputOutputSystem): defaults. """ - def __init__(self, updfcn, outfcn=None, params={}, **kwargs): + def __init__(self, updfcn, outfcn=None, params=None, **kwargs): """Create a nonlinear I/O system given update and output functions.""" # Process keyword arguments name, inputs, outputs, states, dt = _process_namedio_keywords( @@ -798,7 +798,7 @@ def __init__(self, updfcn, outfcn=None, params={}, **kwargs): "(and nstates not known).") # Initialize current parameters to default parameters - self._current_params = params.copy() + self._current_params = {} if params is None else params.copy() def __str__(self): return f"{InputOutputSystem.__str__(self)}\n\n" + \ @@ -845,7 +845,8 @@ def __call__(sys, u, params=None, squeeze=None): def _update_params(self, params, warning=False): # Update the current parameter values self._current_params = self.params.copy() - self._current_params.update(params) + if params: + self._current_params.update(params) def _rhs(self, t, x, u): xdot = self.updfcn(t, x, u, self._current_params) \ @@ -869,20 +870,22 @@ class InterconnectedSystem(InputOutputSystem): See :func:`~control.interconnect` for a list of parameters. """ - def __init__(self, syslist, connections=[], inplist=[], outlist=[], - params={}, warn_duplicate=None, **kwargs): + def __init__(self, syslist, connections=None, inplist=None, outlist=None, + params=None, warn_duplicate=None, **kwargs): """Create an I/O system from a list of systems + connection info.""" # Convert input and output names to lists if they aren't already - if not isinstance(inplist, (list, tuple)): + if inplist is not None and not isinstance(inplist, (list, tuple)): inplist = [inplist] - if not isinstance(outlist, (list, tuple)): + if outlist is not None and not isinstance(outlist, (list, tuple)): outlist = [outlist] # Check if dt argument was given; if not, pull from systems dt = kwargs.pop('dt', None) # Process keyword arguments (except dt) - defaults = {'inputs': len(inplist), 'outputs': len(outlist)} + defaults = { + 'inputs': len(inplist or []), + 'outputs': len(outlist or [])} name, inputs, outputs, states, _ = _process_namedio_keywords( kwargs, defaults, end=True) @@ -982,7 +985,7 @@ def __init__(self, syslist, connections=[], inplist=[], outlist=[], # Convert the list of interconnections to a connection map (matrix) self.connect_map = np.zeros((ninputs, noutputs)) - for connection in connections: + for connection in connections or []: input_index = self._parse_input_spec(connection[0]) for output_spec in connection[1:]: output_index, gain = self._parse_output_spec(output_spec) @@ -993,7 +996,7 @@ def __init__(self, syslist, connections=[], inplist=[], outlist=[], # Convert the input list to a matrix: maps system to subsystems self.input_map = np.zeros((ninputs, self.ninputs)) - for index, inpspec in enumerate(inplist): + for index, inpspec in enumerate(inplist or []): if isinstance(inpspec, (int, str, tuple)): inpspec = [inpspec] if not isinstance(inpspec, list): @@ -1008,7 +1011,7 @@ def __init__(self, syslist, connections=[], inplist=[], outlist=[], # Convert the output list to a matrix: maps subsystems to system self.output_map = np.zeros((self.noutputs, noutputs + ninputs)) - for index, outspec in enumerate(outlist): + for index, outspec in enumerate(outlist or []): if isinstance(outspec, (int, str, tuple)): outspec = [outspec] if not isinstance(outspec, list): @@ -1022,13 +1025,14 @@ def __init__(self, syslist, connections=[], inplist=[], outlist=[], self.output_map[index, ylist_index] += gain # Save the parameters for the system - self.params = params.copy() + self.params = {} if params is None else params.copy() def _update_params(self, params, warning=False): for sys in self.syslist: local = sys.params.copy() # start with system parameters local.update(self.params) # update with global params - local.update(params) # update with locally passed parameters + if params: + local.update(params) # update with locally passed parameters sys._update_params(local, warning=warning) def _rhs(self, t, x, u): @@ -1578,7 +1582,7 @@ def __init__(self, io_sys, ss_sys=None): def input_output_response( - sys, T, U=0., X0=0, params={}, + sys, T, U=0., X0=0, params=None, transpose=False, return_x=False, squeeze=None, solve_ivp_kwargs={}, t_eval='T', **kwargs): """Compute the output response of a system to a given input. @@ -1913,7 +1917,7 @@ def ivp_rhs(t, x): transpose=transpose, return_x=return_x, squeeze=squeeze) -def find_eqpt(sys, x0, u0=[], y0=None, t=0, params={}, +def find_eqpt(sys, x0, u0=None, y0=None, t=0, params=None, iu=None, iy=None, ix=None, idx=None, dx0=None, return_y=False, return_result=False): """Find the equilibrium point for an input/output system. @@ -2164,7 +2168,7 @@ def rootfun(z): # Linearize an input/output system -def linearize(sys, xeq, ueq=[], t=0, params={}, **kw): +def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): """Linearize an input/output system at a given state and input. This function computes the linearization of an input/output system at a @@ -2536,9 +2540,9 @@ def tf2io(*args, **kwargs): # Function to create an interconnected system -def interconnect(syslist, connections=None, inplist=[], outlist=[], params={}, - check_unused=True, ignore_inputs=None, ignore_outputs=None, - warn_duplicate=None, **kwargs): +def interconnect(syslist, connections=None, inplist=None, outlist=None, + params=None, check_unused=True, ignore_inputs=None, + ignore_outputs=None, warn_duplicate=None, **kwargs): """Interconnect a set of input/output systems. This function creates a new system that is an interconnection of a set of @@ -2780,10 +2784,10 @@ def interconnect(syslist, connections=None, inplist=[], outlist=[], params={}, connections = [] # If inplist/outlist is not present, try using inputs/outputs instead - if not inplist and inputs is not None: - inplist = list(inputs) - if not outlist and outputs is not None: - outlist = list(outputs) + if inplist is None: + inplist = list(inputs or []) + if outlist is None: + outlist = list(outputs or []) # Process input list if not isinstance(inplist, (list, tuple)): From a9a62267923ada25f44b18772ee2a5a3f1a08157 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 12 Nov 2022 23:22:36 -0800 Subject: [PATCH 0069/1025] update params docstrings + warnings per @sawyerbfuller suggestion --- control/iosys.py | 4 ++-- control/statesp.py | 10 ++++++++-- control/tests/statesp_test.py | 12 ++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 58eb47db8..2bb445bdd 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -376,12 +376,12 @@ def dynamics(self, t, x, u, params=None): right hand side of the dynamical system. If the system is continuous, returns the time derivative - dx/dt = f(t, x, u, params) + dx/dt = f(t, x, u[, params]) where `f` is the system's (possibly nonlinear) dynamics function. If the system is discrete-time, returns the next value of `x`: - x[t+dt] = f(t, x[t], u[t], params) + x[t+dt] = f(t, x[t], u[t][, params]) where `t` is a scalar. diff --git a/control/statesp.py b/control/statesp.py index 374b036ca..a1fd84b20 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1389,7 +1389,7 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) - def dynamics(self, t, x, u=None): + def dynamics(self, t, x, u=None, params=None): """Compute the dynamics of the system Given input `u` and state `x`, returns the dynamics of the state-space @@ -1423,6 +1423,9 @@ def dynamics(self, t, x, u=None): dx/dt or x[t+dt] : ndarray """ + if params is not None: + warn("params keyword ignored for StateSpace object") + x = np.reshape(x, (-1, 1)) # force to a column in case matrix if np.size(x) != self.nstates: raise ValueError("len(x) must be equal to number of states") @@ -1435,7 +1438,7 @@ def dynamics(self, t, x, u=None): return (self.A @ x).reshape((-1,)) \ + (self.B @ u).reshape((-1,)) # return as row vector - def output(self, t, x, u=None): + def output(self, t, x, u=None, params=None): """Compute the output of the system Given input `u` and state `x`, returns the output `y` of the @@ -1465,6 +1468,9 @@ def output(self, t, x, u=None): ------- y : ndarray """ + if params is not None: + warn("params keyword ignored for StateSpace object") + x = np.reshape(x, (-1, 1)) # force to a column in case matrix if np.size(x) != self.nstates: raise ValueError("len(x) must be equal to number of states") diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 97dc84e3c..e97584fbb 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -1158,3 +1158,15 @@ def test_linfnorm_ct_mimo(self, ct_siso): gpeak, fpeak = linfnorm(sys) np.testing.assert_allclose(gpeak, refgpeak) np.testing.assert_allclose(fpeak, reffpeak) + + +# Make sure that using params for StateSpace objects generates a warning +def test_params_warning(): + sys = StateSpace(-1, 1, 1, 0) + + with pytest.warns(UserWarning, match="params keyword ignored"): + sys.dynamics(0, [0], [0], {'k': 5}) + + with pytest.warns(UserWarning, match="params keyword ignored"): + sys.output(0, [0], [0], {'k': 5}) + From 3729027aa0dd1c2170f78367b560cdc0deb0926d Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 16 Nov 2022 21:11:02 -0800 Subject: [PATCH 0070/1025] fix error when an IOSystem is combined with a TransferFunction system --- control/iosys.py | 12 ++++++------ control/tests/interconnect_test.py | 22 ++++++++++++++++++++++ control/tests/iosys_test.py | 17 +++++++++++++++++ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 2bb445bdd..df75f3b54 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -890,7 +890,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, kwargs, defaults, end=True) # Initialize the system list and index - self.syslist = syslist + self.syslist = list(syslist) # insure modifications can be made self.syslist_index = {} # Initialize the input, output, and state counts, indices @@ -903,12 +903,12 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, sysname_count_dct = {} # Go through the system list and keep track of counts, offsets - for sysidx, sys in enumerate(syslist): + for sysidx, sys in enumerate(self.syslist): # If we were passed a SS or TF system, convert to LinearIOSystem if isinstance(sys, (StateSpace, TransferFunction)) and \ not isinstance(sys, LinearIOSystem): - sys = LinearIOSystem(sys) - syslist[sysidx] = sys + sys = LinearIOSystem(sys, name=sys.name) + self.syslist[sysidx] = sys # Make sure time bases are consistent dt = common_timebase(dt, sys.dt) @@ -2850,12 +2850,12 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, inputs=inputs, outputs=outputs, states=states, params=params, dt=dt, name=name, warn_duplicate=warn_duplicate) - # check for implicity dropped signals + # check for implicitly dropped signals if check_unused: newsys.check_unused_signals(ignore_inputs, ignore_outputs) # If all subsystems are linear systems, maintain linear structure - if all([isinstance(sys, LinearIOSystem) for sys in syslist]): + if all([isinstance(sys, LinearIOSystem) for sys in newsys.syslist]): return LinearICSystem(newsys, None) return newsys diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 3b99adc6e..2c29aeaca 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -230,3 +230,25 @@ def test_string_inputoutput(): P_s2 = ct.interconnect([P1_iosys, P2_iosys], inputs=['u1'], output='y2') assert P_s2.output_index == {'y2' : 0} + +def test_linear_interconnect(): + tf_ctrl = ct.tf(1, (10.1, 1), inputs='e', outputs='u') + tf_plant = ct.tf(1, (10.1, 1), inputs='u', outputs='y') + ss_ctrl = ct.ss(1, 2, 1, 2, inputs='e', outputs='u') + ss_plant = ct.ss(1, 2, 1, 2, inputs='u', outputs='y') + nl_ctrl = ct.NonlinearIOSystem( + lambda t, x, u, params: x*x, + lambda t, x, u, params: u*x, states=1, inputs='e', outputs='u') + nl_plant = ct.NonlinearIOSystem( + lambda t, x, u, params: x*x, + lambda t, x, u, params: u*x, states=1, inputs='u', outputs='y') + + assert isinstance(ct.interconnect((tf_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) + assert isinstance(ct.interconnect((ss_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) + assert isinstance(ct.interconnect((tf_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) + assert isinstance(ct.interconnect((ss_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) + + assert ~isinstance(ct.interconnect((nl_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) + assert ~isinstance(ct.interconnect((nl_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) + assert ~isinstance(ct.interconnect((ss_ctrl, nl_plant), inputs='e', outputs='y'), ct.LinearIOSystem) + assert ~isinstance(ct.interconnect((tf_ctrl, nl_plant), inputs='e', outputs='y'), ct.LinearIOSystem) \ No newline at end of file diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 8a6ed8165..7d3b9fee9 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1454,6 +1454,11 @@ def test_linear_interconnection(): inputs = ('u[0]', 'u[1]'), outputs = ('y[0]', 'y[1]'), name = 'sys2') + tf_siso = ct.tf(1, [0.1, 1]) + ss_siso = ct.ss(1, 2, 1, 1) + nl_siso = ios.NonlinearIOSystem( + lambda t, x, u, params: x*x, + lambda t, x, u, params: u*x, states=1, inputs=1, outputs=1) # Create a "regular" InterconnectedSystem nl_connect = ios.interconnect( @@ -1500,6 +1505,18 @@ def test_linear_interconnection(): np.testing.assert_array_almost_equal(io_connect.C, ss_connect.C) np.testing.assert_array_almost_equal(io_connect.D, ss_connect.D) + # make sure interconnections of linear systems are linear and + # if a nonlinear system is included then system is nonlinear + assert isinstance(ss_siso*ss_siso, ios.LinearIOSystem) + assert isinstance(tf_siso*ss_siso, ios.LinearIOSystem) + assert isinstance(ss_siso*tf_siso, ios.LinearIOSystem) + assert ~isinstance(ss_siso*nl_siso, ios.LinearIOSystem) + assert ~isinstance(nl_siso*ss_siso, ios.LinearIOSystem) + assert ~isinstance(nl_siso*nl_siso, ios.LinearIOSystem) + assert ~isinstance(tf_siso*nl_siso, ios.LinearIOSystem) + assert ~isinstance(nl_siso*tf_siso, ios.LinearIOSystem) + assert ~isinstance(nl_siso*nl_siso, ios.LinearIOSystem) + def predprey(t, x, u, params={}): """Predator prey dynamics""" From 4968cb3ed4b76a147439b20c6f58e36c6e2b4839 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 18 Nov 2022 22:00:22 -0800 Subject: [PATCH 0071/1025] check for and fix mutable keyword args --- control/flatsys/flatsys.py | 12 +++--- control/flatsys/linflat.py | 4 +- control/iosys.py | 5 ++- control/tests/kwargs_test.py | 71 ++++++++++++++++++++++++++++++++++-- 4 files changed, 78 insertions(+), 14 deletions(-) diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 849c41c72..e0023c4de 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -142,7 +142,7 @@ def __init__(self, forward, reverse, # flat system updfcn=None, outfcn=None, # I/O system inputs=None, outputs=None, - states=None, params={}, dt=None, name=None): + states=None, params=None, dt=None, name=None): """Create a differentially flat I/O system. The FlatIOSystem constructor is used to create an input/output system @@ -171,7 +171,7 @@ def __str__(self): + f"Forward: {self.forward}\n" \ + f"Reverse: {self.reverse}" - def forward(self, x, u, params={}): + def forward(self, x, u, params=None): """Compute the flat flag given the states and input. @@ -200,7 +200,7 @@ def forward(self, x, u, params={}): """ raise NotImplementedError("internal error; forward method not defined") - def reverse(self, zflag, params={}): + def reverse(self, zflag, params=None): """Compute the states and input given the flat flag. Parameters @@ -224,18 +224,18 @@ def reverse(self, zflag, params={}): """ raise NotImplementedError("internal error; reverse method not defined") - def _flat_updfcn(self, t, x, u, params={}): + def _flat_updfcn(self, t, x, u, params=None): # TODO: implement state space update using flat coordinates raise NotImplementedError("update function for flat system not given") - def _flat_outfcn(self, t, x, u, params={}): + def _flat_outfcn(self, t, x, u, params=None): # Return the flat output zflag = self.forward(x, u, params) return np.array([zflag[i][0] for i in range(len(zflag))]) # Utility function to compute flag matrix given a basis -def _basis_flag_matrix(sys, basis, flag, t, params={}): +def _basis_flag_matrix(sys, basis, flag, t): """Compute the matrix of basis functions and their derivatives This function computes the matrix ``M`` that is used to solve for the diff --git a/control/flatsys/linflat.py b/control/flatsys/linflat.py index e4a31c6de..8e6c23604 100644 --- a/control/flatsys/linflat.py +++ b/control/flatsys/linflat.py @@ -142,11 +142,11 @@ def reverse(self, zflag, params): return np.reshape(x, self.nstates), np.reshape(u, self.ninputs) # Update function - def _rhs(self, t, x, u, params={}): + def _rhs(self, t, x, u): # Use LinearIOSystem._rhs instead of default (MRO) NonlinearIOSystem return LinearIOSystem._rhs(self, t, x, u) # output function - def _out(self, t, x, u, params={}): + def _out(self, t, x, u): # Use LinearIOSystem._out instead of default (MRO) NonlinearIOSystem return LinearIOSystem._out(self, t, x, u) diff --git a/control/iosys.py b/control/iosys.py index df75f3b54..6fa4a3e76 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1584,7 +1584,7 @@ def __init__(self, io_sys, ss_sys=None): def input_output_response( sys, T, U=0., X0=0, params=None, transpose=False, return_x=False, squeeze=None, - solve_ivp_kwargs={}, t_eval='T', **kwargs): + solve_ivp_kwargs=None, t_eval='T', **kwargs): """Compute the output response of a system to a given input. Simulate a dynamical system with a given input and return its output @@ -1650,7 +1650,7 @@ def input_output_response( solve_ivp_method : str, optional Set the method used by :func:`scipy.integrate.solve_ivp`. Defaults to 'RK45'. - solve_ivp_kwargs : str, optional + solve_ivp_kwargs : dict, optional Pass additional keywords to :func:`scipy.integrate.solve_ivp`. Raises @@ -1676,6 +1676,7 @@ def input_output_response( # # Figure out the method to be used + solve_ivp_kwargs = solve_ivp_kwargs.copy() if solve_ivp_kwargs else {} if kwargs.get('solve_ivp_method', None): if kwargs.get('method', None): raise ValueError("ivp_method specified more than once") diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 855bb9dda..2dc7f0563 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -38,6 +38,10 @@ def test_kwarg_search(module, prefix): # Skip anything that isn't part of the control package continue + # Look for classes and then check member functions + if inspect.isclass(obj): + test_kwarg_search(obj, prefix + obj.__name__ + '.') + # Only look for functions with keyword arguments if not inspect.isfunction(obj): continue @@ -70,10 +74,6 @@ def test_kwarg_search(module, prefix): f"'unrecognized keyword' not found in unit test " f"for {name}") - # Look for classes and then check member functions - if inspect.isclass(obj): - test_kwarg_search(obj, prefix + obj.__name__ + '.') - @pytest.mark.parametrize( "function, nsssys, ntfsys, moreargs, kwargs", @@ -201,3 +201,66 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'TimeResponseData.__call__': trdata_test.test_response_copy, 'TransferFunction.__init__': test_unrecognized_kwargs, } + +# +# Look for keywords with mutable defaults +# +# This test goes through every function and looks for signatures that have a +# default value for a keyword that is mutable. An error is generated unless +# the function is listed in the `mutable_ok` set (which should only be used +# for cases were the code has been explicitly checked to make sure that the +# value of the mutable is not modified in the code). +# +mutable_ok = { # initial and date + control.flatsys.SystemTrajectory.__init__, # RMM, 18 Nov 2022 + control.freqplot._add_arrows_to_line2D, # RMM, 18 Nov 2022 + control.namedio._process_dt_keyword, # RMM, 13 Nov 2022 + control.namedio._process_namedio_keywords, # RMM, 18 Nov 2022 + control.optimal.OptimalControlProblem.__init__, # RMM, 18 Nov 2022 + control.optimal.solve_ocp, # RMM, 18 Nov 2022 + control.optimal.create_mpc_iosystem, # RMM, 18 Nov 2022 +} + +@pytest.mark.parametrize("module", [control, control.flatsys]) +def test_mutable_defaults(module, recurse=True): + # Look through every object in the package + for name, obj in inspect.getmembers(module): + # 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 + + # Look for classes and then check member functions + if inspect.isclass(obj): + test_mutable_defaults(obj, True) + + # Look for modules and check for internal functions (w/ no recursion) + if inspect.ismodule(obj) and recurse: + test_mutable_defaults(obj, False) + + # Only look at functions and skip any that are marked as OK + if not inspect.isfunction(obj) or obj in mutable_ok: + continue + + # 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__: + continue + + # See if there is a variable keyword argument + for argname, par in sig.parameters.items(): + if par.default is inspect._empty or \ + not par.kind == inspect.Parameter.KEYWORD_ONLY and \ + not par.kind == inspect.Parameter.POSITIONAL_OR_KEYWORD: + continue + + # Check to see if the default value is mutable + if par.default is not None and not \ + isinstance(par.default, (bool, int, float, tuple, str)): + pytest.fail( + f"function '{obj.__name__}' in module '{module.__name__}'" + f" has mutable default for keyword '{par.name}'") + From e14d7b37ae9b3958d7adbc970f0f57fbda593d84 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 27 Aug 2022 16:15:15 -0700 Subject: [PATCH 0072/1025] move optimal_bench.py to steering_bench.py + small fixes --- benchmarks/README | 2 +- benchmarks/{optimal_bench.py => steering_bench.py} | 0 control/flatsys/bezier.py | 2 +- control/flatsys/poly.py | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename benchmarks/{optimal_bench.py => steering_bench.py} (100%) diff --git a/benchmarks/README b/benchmarks/README index a10bbfc21..9c788b250 100644 --- a/benchmarks/README +++ b/benchmarks/README @@ -11,7 +11,7 @@ you can use the following command from the root directory of the repository: PYTHONPATH=`pwd` asv run --python=python -You can also run benchmarks against specific commits usuing +You can also run benchmarks against specific commits using asv run diff --git a/benchmarks/optimal_bench.py b/benchmarks/steering_bench.py similarity index 100% rename from benchmarks/optimal_bench.py rename to benchmarks/steering_bench.py diff --git a/control/flatsys/bezier.py b/control/flatsys/bezier.py index 02b4209a6..fcf6201e9 100644 --- a/control/flatsys/bezier.py +++ b/control/flatsys/bezier.py @@ -73,7 +73,7 @@ def eval_deriv(self, i, k, t, var=None): raise ValueError("Basis function index too high") elif k >= self.N: # Higher order derivatives are zero - return np.zeros(t.shape) + return 0 * t # Compute the variables used in Bezier curve formulas n = self.N - 1 diff --git a/control/flatsys/poly.py b/control/flatsys/poly.py index bfd8de633..f315091aa 100644 --- a/control/flatsys/poly.py +++ b/control/flatsys/poly.py @@ -66,6 +66,6 @@ def __init__(self, N, T=1): # Compute the kth derivative of the ith basis function at time t def eval_deriv(self, i, k, t, var=None): """Evaluate the kth derivative of the ith basis function at time t.""" - if (i < k): return 0; # higher derivative than power + if (i < k): return 0 * t # higher derivative than power return factorial(i)/factorial(i-k) * \ np.power(t/self.T, i-k) / np.power(self.T, k) From 08f6464d616bda5cd2e33ff85ec80c06779d60e9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 27 Aug 2022 16:16:17 -0700 Subject: [PATCH 0073/1025] improved flat system benchmarking (+ docstring, unit test updates) --- benchmarks/flatsys_bench.py | 84 +++++++++++++++++++++++++++++------ control/flatsys/flatsys.py | 5 +++ control/tests/flatsys_test.py | 20 +++++++++ 3 files changed, 96 insertions(+), 13 deletions(-) diff --git a/benchmarks/flatsys_bench.py b/benchmarks/flatsys_bench.py index 0c0a5e53a..05a2e7066 100644 --- a/benchmarks/flatsys_bench.py +++ b/benchmarks/flatsys_bench.py @@ -11,6 +11,10 @@ import control.flatsys as flat import control.optimal as opt +# +# System setup: vehicle steering (bicycle model) +# + # Vehicle steering dynamics def vehicle_update(t, x, u, params): # Get the parameters for the model @@ -67,11 +71,28 @@ def vehicle_reverse(zflag, params={}): # Define the time points where the cost/constraints will be evaluated timepts = np.linspace(0, Tf, 10, endpoint=True) -def time_steering_point_to_point(basis_name, basis_size): - if basis_name == 'poly': - basis = flat.PolyFamily(basis_size) - elif basis_name == 'bezier': - basis = flat.BezierFamily(basis_size) +# +# Benchmark test parameters +# + +basis_params = (['poly', 'bezier', 'bspline'], [8, 10, 12]) +basis_param_names = ["basis", "size"] + +def get_basis(name, size): + if name == 'poly': + basis = flat.PolyFamily(size, T=Tf) + elif name == 'bezier': + basis = flat.BezierFamily(size, T=Tf) + elif name == 'bspline': + basis = flat.BSplineFamily([0, Tf/2, Tf], size) + return basis + +# +# Benchmarks +# + +def time_point_to_point(basis_name, basis_size): + basis = get_basis(basis_name, basis_size) # Find trajectory between initial and final conditions traj = flat.point_to_point(vehicle, Tf, x0, u0, xf, uf, basis=basis) @@ -80,13 +101,16 @@ def time_steering_point_to_point(basis_name, basis_size): x, u = traj.eval([0, Tf]) np.testing.assert_array_almost_equal(x0, x[:, 0]) np.testing.assert_array_almost_equal(u0, u[:, 0]) - np.testing.assert_array_almost_equal(xf, x[:, 1]) - np.testing.assert_array_almost_equal(uf, u[:, 1]) + np.testing.assert_array_almost_equal(xf, x[:, -1]) + np.testing.assert_array_almost_equal(uf, u[:, -1]) + +time_point_to_point.params = basis_params +time_point_to_point.param_names = basis_param_names -time_steering_point_to_point.params = (['poly', 'bezier'], [6, 8]) -time_steering_point_to_point.param_names = ["basis", "size"] -def time_steering_cost(): +def time_point_to_point_with_cost(basis_name, basis_size): + basis = get_basis(basis_name, basis_size) + # Define cost and constraints traj_cost = opt.quadratic_cost( vehicle, None, np.diag([0.1, 1]), u0=uf) @@ -95,13 +119,47 @@ def time_steering_cost(): traj = flat.point_to_point( vehicle, timepts, x0, u0, xf, uf, - cost=traj_cost, constraints=constraints, basis=flat.PolyFamily(8) + cost=traj_cost, constraints=constraints, basis=basis, ) # Verify that the trajectory computation is correct x, u = traj.eval([0, Tf]) np.testing.assert_array_almost_equal(x0, x[:, 0]) np.testing.assert_array_almost_equal(u0, u[:, 0]) - np.testing.assert_array_almost_equal(xf, x[:, 1]) - np.testing.assert_array_almost_equal(uf, u[:, 1]) + np.testing.assert_array_almost_equal(xf, x[:, -1]) + np.testing.assert_array_almost_equal(uf, u[:, -1]) + +time_point_to_point_with_cost.params = basis_params +time_point_to_point_with_cost.param_names = basis_param_names + + +def time_solve_flat_ocp_terminal_cost(method, basis_name, basis_size): + basis = get_basis(basis_name, basis_size) + + # Define cost and constraints + traj_cost = opt.quadratic_cost( + vehicle, None, np.diag([0.1, 1]), u0=uf) + term_cost = opt.quadratic_cost( + vehicle, np.diag([1e3, 1e3, 1e3]), None, x0=xf) + constraints = [ + opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] + + # Initial guess = straight line + initial_guess = np.array( + [x0[i] + (xf[i] - x0[i]) * timepts/Tf for i in (0, 1)]) + + traj = flat.solve_flat_ocp( + vehicle, timepts, x0, u0, basis=basis, initial_guess=initial_guess, + trajectory_cost=traj_cost, constraints=constraints, + terminal_cost=term_cost, minimize_method=method, + ) + + # Verify that the trajectory computation is correct + x, u = traj.eval([0, Tf]) + np.testing.assert_array_almost_equal(x0, x[:, 0]) + np.testing.assert_array_almost_equal(xf, x[:, -1], decimal=2) +time_solve_flat_ocp_terminal_cost.params = tuple( + [['slsqp', 'trust-constr']] + list(basis_params)) +time_solve_flat_ocp_terminal_cost.param_names = tuple( + ['method'] + basis_param_names) diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 849c41c72..04e5c323a 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -654,6 +654,11 @@ def solve_flat_ocp( * cost : computed cost of the returned trajectory * message : message returned by optimization if success if False + 3. A common failure in solving optimal control problem is that the + default initial guess violates the constraints and the optimizer + can't find a feasible solution. Using the `initial_guess` parameter + can often be used to overcome these errors. + """ # # Make sure the problem is one that we can handle diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 665bfd968..3f308c79b 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -464,6 +464,26 @@ def test_bezier_basis(self): with pytest.raises(ValueError, match="index too high"): bezier.eval_deriv(4, 0, time) + @pytest.mark.parametrize("basis, degree, T", [ + (fs.PolyFamily(4), 4, 1), + (fs.PolyFamily(4, 100), 4, 100), + (fs.BezierFamily(4), 4, 1), + (fs.BezierFamily(4, 100), 4, 100), + (fs.BSplineFamily([0, 0.5, 1], 4), 3, 1), + (fs.BSplineFamily([0, 50, 100], 4), 3, 100), + ]) + def test_basis_derivs(self, basis, degree, T): + """Make sure that that basis function derivates are correct""" + timepts = np.linspace(0, T, 10000) + dt = timepts[1] - timepts[0] + for i in range(basis.N): + for j in range(degree-1): + # Compare numerical and analytical derivative + np.testing.assert_allclose( + np.diff(basis.eval_deriv(i, j, timepts)) / dt, + basis.eval_deriv(i, j+1, timepts)[0:-1], + atol=1e-2, rtol=1e-4) + def test_point_to_point_errors(self): """Test error and warning conditions in point_to_point()""" # Double integrator system From efca9caffad823bf785d8b51d1d5ad300247674c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 27 Aug 2022 22:48:36 -0700 Subject: [PATCH 0074/1025] new optimal benchmarks (replace steering with rss) --- benchmarks/optimal_bench.py | 247 +++++++++++++++++++++++++++++++++++ benchmarks/steering_bench.py | 220 ------------------------------- 2 files changed, 247 insertions(+), 220 deletions(-) create mode 100644 benchmarks/optimal_bench.py delete mode 100644 benchmarks/steering_bench.py diff --git a/benchmarks/optimal_bench.py b/benchmarks/optimal_bench.py new file mode 100644 index 000000000..bcc598527 --- /dev/null +++ b/benchmarks/optimal_bench.py @@ -0,0 +1,247 @@ +# optimal_bench.py - benchmarks for optimal control package +# RMM, 27 Feb 2021 +# +# This benchmark tests the timing for the optimal control module +# (control.optimal) and is intended to be used for helping tune the +# performance of the functions used for optimization-base control. + +import numpy as np +import math +import control as ct +import control.flatsys as fs +import control.optimal as opt + +# +# Benchmark test parameters +# + +# Define integrator and minimizer methods and options/keywords +integrator_table = { + 'default': (None, {}), + 'RK23': ('RK23', {}), + 'RK23_sloppy': ('RK23', {'atol': 1e-4, 'rtol': 1e-2}), + 'RK45': ('RK45', {}), + 'RK45': ('RK45', {}), + 'RK45_sloppy': ('RK45', {'atol': 1e-4, 'rtol': 1e-2}), + 'LSODA': ('LSODA', {}), +} + +minimizer_table = { + 'default': (None, {}), + 'trust': ('trust-constr', {}), + 'trust_bigstep': ('trust-constr', {'finite_diff_rel_step': 0.01}), + 'SLSQP': ('SLSQP', {}), + 'SLSQP_bigstep': ('SLSQP', {'eps': 0.01}), + 'COBYLA': ('COBYLA', {}), +} + +# Utility function to create a basis of a given size +def get_basis(name, size, Tf): + if name == 'poly': + basis = fs.PolyFamily(size, T=Tf) + elif name == 'bezier': + basis = fs.BezierFamily(size, T=Tf) + elif name == 'bspline': + basis = fs.BSplineFamily([0, Tf/2, Tf], size) + return basis + + +# +# Optimal trajectory generation with linear quadratic cost +# + +def time_optimal_lq_basis(basis_name, basis_size, npoints): + # Create a sufficiently controllable random system to control + ntrys = 20 + while ntrys > 0: + # Create a random system + sys = ct.rss(2, 2, 2) + + # Compute the controllability Gramian + Wc = ct.gram(sys, 'c') + + # Make sure the condition number is reasonable + if np.linalg.cond(Wc) < 1e6: + break + + ntrys -= 1 + assert ntrys > 0 # Something wrong if we needed > 20 tries + + # Define cost functions + Q = np.eye(sys.nstates) + R = np.eye(sys.ninputs) * 10 + + # Figure out the LQR solution (for terminal cost) + K, S, E = ct.lqr(sys, Q, R) + + # Define the cost functions + traj_cost = opt.quadratic_cost(sys, Q, R) + term_cost = opt.quadratic_cost(sys, S, None) + constraints = opt.input_range_constraint( + sys, -np.ones(sys.ninputs), np.ones(sys.ninputs)) + + # Define the initial condition, time horizon, and time points + x0 = np.ones(sys.nstates) + Tf = 10 + timepts = np.linspace(0, Tf, npoints) + + # Create the basis function to use + basis = get_basis(basis_name, basis_size, Tf) + + res = opt.solve_ocp( + sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + ) + # Only count this as a benchmark if we converged + assert res.success + +# Parameterize the test against different choices of integrator and minimizer +time_optimal_lq_basis.param_names = ['basis', 'size', 'npoints'] +time_optimal_lq_basis.params = ( + ['poly', 'bezier', 'bspline'], [8, 10, 12], [5, 10, 20]) + + +def time_optimal_lq_methods(integrator_name, minimizer_name): + # Get the integrator and minimizer parameters to use + integrator = integrator_table[integrator_name] + minimizer = minimizer_table[minimizer_name] + + # Create a random system to control + sys = ct.rss(2, 1, 1) + + # Define cost functions + Q = np.eye(sys.nstates) + R = np.eye(sys.ninputs) * 10 + + # Figure out the LQR solution (for terminal cost) + K, S, E = ct.lqr(sys, Q, R) + + # Define the cost functions + traj_cost = opt.quadratic_cost(sys, Q, R) + term_cost = opt.quadratic_cost(sys, S, None) + constraints = opt.input_range_constraint( + sys, -np.ones(sys.ninputs), np.ones(sys.ninputs)) + + # Define the initial condition, time horizon, and time points + x0 = np.ones(sys.nstates) + Tf = 10 + timepts = np.linspace(0, Tf, 20) + + # Create the basis function to use + basis = get_basis('poly', 12, Tf) + + res = opt.solve_ocp( + sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + solve_ivp_method=integrator[0], solve_ivp_kwargs=integrator[1], + minimize_method=minimizer[0], minimize_options=minimizer[1], + ) + # Only count this as a benchmark if we converged + assert res.success + +# Parameterize the test against different choices of integrator and minimizer +time_optimal_lq_methods.param_names = ['integrator', 'minimizer'] +time_optimal_lq_methods.params = ( + ['RK23', 'RK45', 'LSODA'], ['trust', 'SLSQP', 'COBYLA']) + + +def time_optimal_lq_size(nstates, ninputs, npoints): + # Create a sufficiently controllable random system to control + ntrys = 20 + while ntrys > 0: + # Create a random system + sys = ct.rss(nstates, ninputs, ninputs) + + # Compute the controllability Gramian + Wc = ct.gram(sys, 'c') + + # Make sure the condition number is reasonable + if np.linalg.cond(Wc) < 1e6: + break + + ntrys -= 1 + assert ntrys > 0 # Something wrong if we needed > 20 tries + + # Define cost functions + Q = np.eye(sys.nstates) + R = np.eye(sys.ninputs) * 10 + + # Figure out the LQR solution (for terminal cost) + K, S, E = ct.lqr(sys, Q, R) + + # Define the cost functions + traj_cost = opt.quadratic_cost(sys, Q, R) + term_cost = opt.quadratic_cost(sys, S, None) + constraints = opt.input_range_constraint( + sys, -np.ones(sys.ninputs), np.ones(sys.ninputs)) + + # Define the initial condition, time horizon, and time points + x0 = np.ones(sys.nstates) + Tf = 10 + timepts = np.linspace(0, Tf, npoints) + + res = opt.solve_ocp( + sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + ) + # Only count this as a benchmark if we converged + assert res.success + +# Parameterize the test against different choices of integrator and minimizer +time_optimal_lq_size.param_names = ['nstates', 'ninputs', 'npoints'] +time_optimal_lq_size.params = ([1, 2, 4], [1, 2, 4], [5, 10, 20]) + + +# +# Aircraft MPC example (from multi-parametric toolbox) +# + +def time_aircraft_mpc(): + # model of an aircraft discretized with 0.2s sampling time + # Source: https://www.mpt3.org/UI/RegulationProblem + A = [[0.99, 0.01, 0.18, -0.09, 0], + [ 0, 0.94, 0, 0.29, 0], + [ 0, 0.14, 0.81, -0.9, 0], + [ 0, -0.2, 0, 0.95, 0], + [ 0, 0.09, 0, 0, 0.9]] + B = [[ 0.01, -0.02], + [-0.14, 0], + [ 0.05, -0.2], + [ 0.02, 0], + [-0.01, 0]] + C = [[0, 1, 0, 0, -1], + [0, 0, 1, 0, 0], + [0, 0, 0, 1, 0], + [1, 0, 0, 0, 0]] + model = ct.ss2io(ct.ss(A, B, C, 0, 0.2)) + + # For the simulation we need the full state output + sys = ct.ss2io(ct.ss(A, B, np.eye(5), 0, 0.2)) + + # compute the steady state values for a particular value of the input + ud = np.array([0.8, -0.3]) + xd = np.linalg.inv(np.eye(5) - A) @ B @ ud + yd = C @ xd + + # provide constraints on the system signals + constraints = [opt.input_range_constraint(sys, [-5, -6], [5, 6])] + + # provide penalties on the system signals + Q = model.C.transpose() @ np.diag([10, 10, 10, 10]) @ model.C + R = np.diag([3, 2]) + cost = opt.quadratic_cost(model, Q, R, x0=xd, u0=ud) + + # online MPC controller object is constructed with a horizon 6 + ctrl = opt.create_mpc_iosystem( + model, np.arange(0, 6) * 0.2, cost, constraints) + + # Define an I/O system implementing model predictive control + loop = ct.feedback(sys, ctrl, 1) + + # Choose a nearby initial condition to speed up computation + X0 = np.hstack([xd, np.kron(ud, np.ones(6))]) * 0.99 + + Nsim = 12 + tout, xout = ct.input_output_response( + loop, np.arange(0, Nsim) * 0.2, 0, X0) + + # Make sure the system converged to the desired state + np.testing.assert_allclose( + xout[0:sys.nstates, -1], xd, atol=0.1, rtol=0.01) diff --git a/benchmarks/steering_bench.py b/benchmarks/steering_bench.py deleted file mode 100644 index 21cabef7e..000000000 --- a/benchmarks/steering_bench.py +++ /dev/null @@ -1,220 +0,0 @@ -# optimal_bench.py - benchmarks for optimal control package -# RMM, 27 Feb 2021 -# -# This benchmark tests the timing for the optimal control module -# (control.optimal) and is intended to be used for helping tune the -# performance of the functions used for optimization-base control. - -import numpy as np -import math -import control as ct -import control.flatsys as flat -import control.optimal as opt - -# Vehicle steering dynamics -def vehicle_update(t, x, u, params): - # Get the parameters for the model - l = params.get('wheelbase', 3.) # vehicle wheelbase - phimax = params.get('maxsteer', 0.5) # max steering angle (rad) - - # Saturate the steering input (use min/max instead of clip for speed) - phi = max(-phimax, min(u[1], phimax)) - - # Return the derivative of the state - return np.array([ - math.cos(x[2]) * u[0], # xdot = cos(theta) v - math.sin(x[2]) * u[0], # ydot = sin(theta) v - (u[0] / l) * math.tan(phi) # thdot = v/l tan(phi) - ]) - -def vehicle_output(t, x, u, params): - return x # return x, y, theta (full state) - -vehicle = ct.NonlinearIOSystem( - vehicle_update, vehicle_output, states=3, name='vehicle', - inputs=('v', 'phi'), outputs=('x', 'y', 'theta')) - -# Initial and final conditions -x0 = [0., -2., 0.]; u0 = [10., 0.] -xf = [100., 2., 0.]; uf = [10., 0.] -Tf = 10 - -# Define the time horizon (and spacing) for the optimization -horizon = np.linspace(0, Tf, 10, endpoint=True) - -# Provide an intial guess (will be extended to entire horizon) -bend_left = [10, 0.01] # slight left veer - -def time_steering_integrated_cost(): - # Set up the cost functions - Q = np.diag([.1, 10, .1]) # keep lateral error low - R = np.diag([.1, 1]) # minimize applied inputs - quad_cost = opt.quadratic_cost( - vehicle, Q, R, x0=xf, u0=uf) - - res = opt.solve_ocp( - vehicle, horizon, x0, quad_cost, - initial_guess=bend_left, print_summary=False, - # solve_ivp_kwargs={'atol': 1e-2, 'rtol': 1e-2}, - minimize_method='trust-constr', - minimize_options={'finite_diff_rel_step': 0.01}, - ) - - # Only count this as a benchmark if we converged - assert res.success - -def time_steering_terminal_cost(): - # Define cost and constraints - traj_cost = opt.quadratic_cost( - vehicle, None, np.diag([0.1, 1]), u0=uf) - term_cost = opt.quadratic_cost( - vehicle, np.diag([1, 10, 10]), None, x0=xf) - constraints = [ - opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] - - res = opt.solve_ocp( - vehicle, horizon, x0, traj_cost, constraints, - terminal_cost=term_cost, initial_guess=bend_left, print_summary=False, - solve_ivp_kwargs={'atol': 1e-4, 'rtol': 1e-2}, - # minimize_method='SLSQP', minimize_options={'eps': 0.01} - minimize_method='trust-constr', - minimize_options={'finite_diff_rel_step': 0.01}, - ) - # Only count this as a benchmark if we converged - assert res.success - -# Define integrator and minimizer methods and options/keywords -integrator_table = { - 'RK23_default': ('RK23', {'atol': 1e-4, 'rtol': 1e-2}), - 'RK23_sloppy': ('RK23', {}), - 'RK45_default': ('RK45', {}), - 'RK45_sloppy': ('RK45', {'atol': 1e-4, 'rtol': 1e-2}), -} - -minimizer_table = { - 'trust_default': ('trust-constr', {}), - 'trust_bigstep': ('trust-constr', {'finite_diff_rel_step': 0.01}), - 'SLSQP_default': ('SLSQP', {}), - 'SLSQP_bigstep': ('SLSQP', {'eps': 0.01}), -} - - -def time_steering_terminal_constraint(integrator_name, minimizer_name): - # Get the integrator and minimizer parameters to use - integrator = integrator_table[integrator_name] - minimizer = minimizer_table[minimizer_name] - - # Input cost and terminal constraints - R = np.diag([1, 1]) # minimize applied inputs - cost = opt.quadratic_cost(vehicle, np.zeros((3,3)), R, u0=uf) - constraints = [ - opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] - terminal = [ opt.state_range_constraint(vehicle, xf, xf) ] - - res = opt.solve_ocp( - vehicle, horizon, x0, cost, constraints, - terminal_constraints=terminal, initial_guess=bend_left, log=False, - solve_ivp_method=integrator[0], solve_ivp_kwargs=integrator[1], - minimize_method=minimizer[0], minimize_options=minimizer[1], - ) - # Only count this as a benchmark if we converged - assert res.success - -# Reset the timeout value to allow for longer runs -time_steering_terminal_constraint.timeout = 120 - -# Parameterize the test against different choices of integrator and minimizer -time_steering_terminal_constraint.param_names = ['integrator', 'minimizer'] -time_steering_terminal_constraint.params = ( - ['RK23_default', 'RK23_sloppy', 'RK45_default', 'RK45_sloppy'], - ['trust_default', 'trust_bigstep', 'SLSQP_default', 'SLSQP_bigstep'] -) - -def time_steering_bezier_basis(nbasis, ntimes): - # Set up costs and constriants - Q = np.diag([.1, 10, .1]) # keep lateral error low - R = np.diag([1, 1]) # minimize applied inputs - cost = opt.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) - constraints = [ opt.input_range_constraint(vehicle, [0, -0.1], [20, 0.1]) ] - terminal = [ opt.state_range_constraint(vehicle, xf, xf) ] - - # Set up horizon - horizon = np.linspace(0, Tf, ntimes, endpoint=True) - - # Set up the optimal control problem - res = opt.solve_ocp( - vehicle, horizon, x0, cost, - constraints, - terminal_constraints=terminal, - initial_guess=bend_left, - basis=flat.BezierFamily(nbasis, T=Tf), - # solve_ivp_kwargs={'atol': 1e-4, 'rtol': 1e-2}, - minimize_method='trust-constr', - minimize_options={'finite_diff_rel_step': 0.01}, - # minimize_method='SLSQP', minimize_options={'eps': 0.01}, - return_states=True, print_summary=False - ) - t, u, x = res.time, res.inputs, res.states - - # Make sure we found a valid solution - assert res.success - -# Reset the timeout value to allow for longer runs -time_steering_bezier_basis.timeout = 120 - -# Set the parameter values for the number of times and basis vectors -time_steering_bezier_basis.param_names = ['nbasis', 'ntimes'] -time_steering_bezier_basis.params = ([2, 4, 6], [5, 10, 20]) - -def time_aircraft_mpc(): - # model of an aircraft discretized with 0.2s sampling time - # Source: https://www.mpt3.org/UI/RegulationProblem - A = [[0.99, 0.01, 0.18, -0.09, 0], - [ 0, 0.94, 0, 0.29, 0], - [ 0, 0.14, 0.81, -0.9, 0], - [ 0, -0.2, 0, 0.95, 0], - [ 0, 0.09, 0, 0, 0.9]] - B = [[ 0.01, -0.02], - [-0.14, 0], - [ 0.05, -0.2], - [ 0.02, 0], - [-0.01, 0]] - C = [[0, 1, 0, 0, -1], - [0, 0, 1, 0, 0], - [0, 0, 0, 1, 0], - [1, 0, 0, 0, 0]] - model = ct.ss2io(ct.ss(A, B, C, 0, 0.2)) - - # For the simulation we need the full state output - sys = ct.ss2io(ct.ss(A, B, np.eye(5), 0, 0.2)) - - # compute the steady state values for a particular value of the input - ud = np.array([0.8, -0.3]) - xd = np.linalg.inv(np.eye(5) - A) @ B @ ud - yd = C @ xd - - # provide constraints on the system signals - constraints = [opt.input_range_constraint(sys, [-5, -6], [5, 6])] - - # provide penalties on the system signals - Q = model.C.transpose() @ np.diag([10, 10, 10, 10]) @ model.C - R = np.diag([3, 2]) - cost = opt.quadratic_cost(model, Q, R, x0=xd, u0=ud) - - # online MPC controller object is constructed with a horizon 6 - ctrl = opt.create_mpc_iosystem( - model, np.arange(0, 6) * 0.2, cost, constraints) - - # Define an I/O system implementing model predictive control - loop = ct.feedback(sys, ctrl, 1) - - # Choose a nearby initial condition to speed up computation - X0 = np.hstack([xd, np.kron(ud, np.ones(6))]) * 0.99 - - Nsim = 12 - tout, xout = ct.input_output_response( - loop, np.arange(0, Nsim) * 0.2, 0, X0) - - # Make sure the system converged to the desired state - np.testing.assert_allclose( - xout[0:sys.nstates, -1], xd, atol=0.1, rtol=0.01) From 2860d897ff49c8bd1c95ee435933f230d80d5b76 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 29 Aug 2022 07:46:25 -0700 Subject: [PATCH 0075/1025] add error for using solve_ivp for discrete time + formatting tweaks --- benchmarks/optimal_bench.py | 27 +++++++++++++++++++++------ control/optimal.py | 8 ++++++++ control/tests/optimal_test.py | 9 +++++++++ 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/benchmarks/optimal_bench.py b/benchmarks/optimal_bench.py index bcc598527..a424c7827 100644 --- a/benchmarks/optimal_bench.py +++ b/benchmarks/optimal_bench.py @@ -89,7 +89,8 @@ def time_optimal_lq_basis(basis_name, basis_size, npoints): basis = get_basis(basis_name, basis_size, Tf) res = opt.solve_ocp( - sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + basis=basis, ) # Only count this as a benchmark if we converged assert res.success @@ -130,7 +131,7 @@ def time_optimal_lq_methods(integrator_name, minimizer_name): basis = get_basis('poly', 12, Tf) res = opt.solve_ocp( - sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, solve_ivp_method=integrator[0], solve_ivp_kwargs=integrator[1], minimize_method=minimizer[0], minimize_options=minimizer[1], ) @@ -179,7 +180,7 @@ def time_optimal_lq_size(nstates, ninputs, npoints): timepts = np.linspace(0, Tf, npoints) res = opt.solve_ocp( - sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, ) # Only count this as a benchmark if we converged assert res.success @@ -187,13 +188,13 @@ def time_optimal_lq_size(nstates, ninputs, npoints): # Parameterize the test against different choices of integrator and minimizer time_optimal_lq_size.param_names = ['nstates', 'ninputs', 'npoints'] time_optimal_lq_size.params = ([1, 2, 4], [1, 2, 4], [5, 10, 20]) - + # # Aircraft MPC example (from multi-parametric toolbox) # -def time_aircraft_mpc(): +def time_discrete_aircraft_mpc(minimizer_name): # model of an aircraft discretized with 0.2s sampling time # Source: https://www.mpt3.org/UI/RegulationProblem A = [[0.99, 0.01, 0.18, -0.09, 0], @@ -228,9 +229,18 @@ def time_aircraft_mpc(): R = np.diag([3, 2]) cost = opt.quadratic_cost(model, Q, R, x0=xd, u0=ud) + # Set the time horizon and time points + Tf = 3 + timepts = np.arange(0, 6) * 0.2 + + # Get the minimizer parameters to use + minimizer = minimizer_table[minimizer_name] + # online MPC controller object is constructed with a horizon 6 ctrl = opt.create_mpc_iosystem( - model, np.arange(0, 6) * 0.2, cost, constraints) + model, timepts, cost, constraints, + minimize_method=minimizer[0], minimize_options=minimizer[1], + ) # Define an I/O system implementing model predictive control loop = ct.feedback(sys, ctrl, 1) @@ -245,3 +255,8 @@ def time_aircraft_mpc(): # Make sure the system converged to the desired state np.testing.assert_allclose( xout[0:sys.nstates, -1], xd, atol=0.1, rtol=0.01) + +# Parameterize the test against different choices of minimizer and basis +time_discrete_aircraft_mpc.param_names = ['minimizer'] +time_discrete_aircraft_mpc.params = ( + ['trust', 'trust_bigstep', 'SLSQP', 'SLSQP_bigstep', 'COBYLA']) diff --git a/control/optimal.py b/control/optimal.py index 4913cc341..3da236e75 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -154,6 +154,14 @@ def __init__( self.minimize_kwargs.update(kwargs.pop( 'minimize_kwargs', config.defaults['optimal.minimize_kwargs'])) + # Check to make sure arguments for discrete-time systems are OK + if sys.isdtime(strict=True): + if self.solve_ivp_kwargs['method'] is not None or \ + len(self.solve_ivp_kwargs) > 1: + raise TypeError( + "solve_ivp method, kwargs not allowed for" + " discrete time systems") + # Make sure there were no extraneous keywords if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index b100e7e14..0e5e35d79 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -471,6 +471,15 @@ def test_ocp_argument_errors(): res = opt.solve_ocp( sys, time, x0, cost, terminal_constraints=constraints) + # Discrete time system checks: solve_ivp keywords not allowed + sys = ct.rss(2, 1, 1, dt=True) + with pytest.raises(TypeError, match="solve_ivp method, kwargs not allowed"): + res = opt.solve_ocp( + sys, time, x0, cost, solve_ivp_method='LSODA') + with pytest.raises(TypeError, match="solve_ivp method, kwargs not allowed"): + res = opt.solve_ocp( + sys, time, x0, cost, solve_ivp_kwargs={'eps': 0.1}) + @pytest.mark.parametrize("basis", [ flat.PolyFamily(4), flat.PolyFamily(6), From 54de2a3c33b8819c9d6146166d24af9ceda82a75 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 29 Aug 2022 17:50:20 -0700 Subject: [PATCH 0076/1025] allow print_summary to be set in solve_ocp --- control/optimal.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 3da236e75..9650272f7 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -897,7 +897,8 @@ def __init__( def solve_ocp( sys, horizon, X0, cost, trajectory_constraints=None, terminal_cost=None, terminal_constraints=[], initial_guess=None, basis=None, squeeze=None, - transpose=None, return_states=True, log=False, **kwargs): + transpose=None, return_states=True, print_summary=True, log=False, + **kwargs): """Compute the solution to an optimal control problem @@ -951,6 +952,9 @@ def solve_ocp( log : bool, optional If `True`, turn on logging messages (using Python logging module). + print_summary : bool, optional + If `True` (default), print a short summary of the computation. + return_states : bool, optional If True, return the values of the state at each time (default = True). @@ -1017,7 +1021,8 @@ def solve_ocp( # Solve for the optimal input from the current state return ocp.compute_trajectory( - X0, squeeze=squeeze, transpose=transpose, return_states=return_states) + X0, squeeze=squeeze, transpose=transpose, print_summary=print_summary, + return_states=return_states) # Create a model predictive controller for an optimal control problem From c70a377fc82e2bbe637e24760cf105f957843748 Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Sun, 20 Nov 2022 07:24:43 +0200 Subject: [PATCH 0077/1025] Use `raise NotImplentedError`, not `NotImplemented` in InputOutputSystem._rhs --- control/iosys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index df75f3b54..49ab29c77 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -366,8 +366,8 @@ def _rhs(self, t, x, u): you may want to use :meth:`dynamics`. """ - NotImplemented("Evaluation not implemented for system of type ", - type(self)) + raise NotImplementedError("Evaluation not implemented for system of type ", + type(self)) def dynamics(self, t, x, u, params=None): """Compute the dynamics of a differential or difference equation. From 3732a2132402033ab14c7f0716b44b71e466fc48 Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Sun, 20 Nov 2022 07:26:06 +0200 Subject: [PATCH 0078/1025] Correct warnings.warn call in modelsimp.markov --- control/modelsimp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 432b76b96..b1c1ae31c 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -476,7 +476,7 @@ def markov(Y, U, m=None, transpose=False): # Make sure there is enough data to compute parameters if m > n: - warn.warning("Not enough data for requested number of parameters") + warnings.warn("Not enough data for requested number of parameters") # # Original algorithm (with mapping to standard order) From 3f7b640c521c28fd8caf11a9fd70d5eb8a89e907 Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Sun, 20 Nov 2022 07:26:33 +0200 Subject: [PATCH 0079/1025] Remove non-existent __all__ entry in optimal --- control/optimal.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 4913cc341..de45a8dd0 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -20,8 +20,6 @@ from .exception import ControlNotImplemented from .timeresp import TimeResponseData -__all__ = ['find_optimal_input'] - # Define module default parameter values _optimal_defaults = { 'optimal.minimize_method': None, From 5d7b79888520276c3129ab0923a83f2cc75da0c7 Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Sun, 20 Nov 2022 07:26:55 +0200 Subject: [PATCH 0080/1025] Import ControlSlycot exception in statesp --- control/statesp.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/control/statesp.py b/control/statesp.py index a2fa3dd73..af549cff6 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -59,6 +59,8 @@ from scipy.signal import cont2discrete from scipy.signal import StateSpace as signalStateSpace from warnings import warn + +from .exception import ControlSlycot from .frdata import FrequencyResponseData from .lti import LTI, _process_frequency_response from .namedio import common_timebase, isdtime From f591c080142177e07e3393b4d73356ef0d761d92 Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Sun, 20 Nov 2022 07:27:40 +0200 Subject: [PATCH 0081/1025] Merge constraint constructor error tests in optimal_test --- control/tests/optimal_test.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index b100e7e14..cdea19bfa 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -381,17 +381,8 @@ def test_optimal_logging(capsys): @pytest.mark.parametrize("fun, args, exception, match", [ [opt.quadratic_cost, (np.zeros((2, 3)), np.eye(2)), ValueError, "Q matrix is the wrong shape"], - [opt.quadratic_cost, (np.eye(2), 1), ValueError, + [opt.quadratic_cost, (np.eye(2), np.eye(2, 3)), ValueError, "R matrix is the wrong shape"], -]) -def test_constraint_constructor_errors(fun, args, exception, match): - """Test various error conditions for constraint constructors""" - sys = ct.ss2io(ct.rss(2, 2, 2)) - with pytest.raises(exception, match=match): - fun(sys, *args) - - -@pytest.mark.parametrize("fun, args, exception, match", [ [opt.input_poly_constraint, (np.zeros((2, 3)), [0, 0]), ValueError, "polytope matrix must match number of inputs"], [opt.output_poly_constraint, (np.zeros((2, 3)), [0, 0]), ValueError, From 9e1048c8efb2f25c2956dd27c6cc0aaa35473370 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 20 Nov 2022 15:19:51 +0100 Subject: [PATCH 0082/1025] Add Python 3.11 classifier --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 89690ac8d..691ea4643 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ classifiers = [ "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Software Development", "Topic :: Scientific/Engineering", "Operating System :: Microsoft :: Windows", From f9cacd7ad562cce9fe2562b5152d5df303ae831b Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 20 Nov 2022 15:18:43 +0100 Subject: [PATCH 0083/1025] bump upper conda version to 3.11 --- .github/workflows/python-package-conda.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 459f9e69d..6a41a7227 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -17,14 +17,14 @@ jobs: max-parallel: 5 fail-fast: false matrix: - python-version: ['3.7', '3.10'] + python-version: ['3.7', '3.11'] slycot: ["", "conda"] pandas: [""] cvxopt: ["", "conda"] mplbackend: [""] array-and-matrix: [0] include: - - python-version: '3.10' + - python-version: '3.11' slycot: conda pandas: conda cvxopt: conda From d18e49655680bdd7f3f962c14347b30997d2a81e Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 20 Nov 2022 15:19:15 +0100 Subject: [PATCH 0084/1025] bump setup-python action tag --- .github/workflows/control-slycot-src.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/control-slycot-src.yml b/.github/workflows/control-slycot-src.yml index 2ce2a11dd..8d1e1cdf2 100644 --- a/.github/workflows/control-slycot-src.yml +++ b/.github/workflows/control-slycot-src.yml @@ -12,7 +12,7 @@ jobs: with: path: python-control - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 - name: Install Python dependencies and test tools run: pip install -v -e './python-control[test]' From d95e29e521ae8bd984c63c7519b8073e0b801141 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 20 Nov 2022 15:23:11 +0100 Subject: [PATCH 0085/1025] rename jobs --- .github/workflows/install_examples.yml | 2 +- .github/workflows/python-package-conda.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/install_examples.yml b/.github/workflows/install_examples.yml index 84cd706f5..d50f8fda6 100644 --- a/.github/workflows/install_examples.yml +++ b/.github/workflows/install_examples.yml @@ -3,7 +3,7 @@ name: Setup, Examples, Notebooks on: [push, pull_request] jobs: - build-linux: + install-examples: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 6a41a7227..1c4411ec6 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -3,7 +3,7 @@ name: Conda-based pytest on: [push, pull_request] jobs: - test-linux: + test-linux-conda: name: > Py${{ matrix.python-version }}; ${{ matrix.slycot || 'no' }} Slycot; @@ -75,7 +75,7 @@ jobs: coveralls: name: coveralls completion - needs: test-linux + needs: test-linux-conda runs-on: ubuntu-latest steps: - name: Coveralls Finished From 511ea46c46ed8183ea03eb8f4637e60ce2b89358 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 20 Nov 2022 15:24:29 +0100 Subject: [PATCH 0086/1025] do not install PEP517 in editable mode --- .github/workflows/control-slycot-src.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/control-slycot-src.yml b/.github/workflows/control-slycot-src.yml index 8d1e1cdf2..bc80d84f5 100644 --- a/.github/workflows/control-slycot-src.yml +++ b/.github/workflows/control-slycot-src.yml @@ -14,7 +14,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 - name: Install Python dependencies and test tools - run: pip install -v -e './python-control[test]' + run: pip install -v './python-control[test]' - name: Checkout Slycot uses: actions/checkout@v3 From c9e4064934495a73b4dc1bace69934a58b739e87 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 20 Nov 2022 15:30:45 +0100 Subject: [PATCH 0087/1025] hardcode python version in slycot-src workflow --- .github/workflows/control-slycot-src.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/control-slycot-src.yml b/.github/workflows/control-slycot-src.yml index bc80d84f5..811a89216 100644 --- a/.github/workflows/control-slycot-src.yml +++ b/.github/workflows/control-slycot-src.yml @@ -13,6 +13,8 @@ jobs: path: python-control - name: Set up Python uses: actions/setup-python@v4 + with: + python-version: '3.11' - name: Install Python dependencies and test tools run: pip install -v './python-control[test]' From 055ed394ef76b198d21d3839c04019c4305822ee Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Tue, 22 Nov 2022 21:30:12 -0800 Subject: [PATCH 0088/1025] initial commit that preserves signal names during cont-to-discrete transformation --- control/dtime.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index b05d22b96..a09f5f501 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -47,7 +47,8 @@ """ -from .namedio import isctime +from .namedio import isctime, _process_namedio_keywords +from .iosys import ss from .statesp import StateSpace __all__ = ['sample_system', 'c2d'] @@ -92,9 +93,10 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None): # Make sure we have a continuous time system if not isctime(sysc): raise ValueError("First argument must be continuous time system") - - return sysc.sample(Ts, - method=method, alpha=alpha, prewarp_frequency=prewarp_frequency) + name, inputs, outputs, states, _ = _process_namedio_keywords(defaults=sysc) + return ss(sysc.sample(Ts, + method=method, alpha=alpha, prewarp_frequency=prewarp_frequency), + name=name, inputs=inputs, outputs=outputs, states=states) def c2d(sysc, Ts, method='zoh', prewarp_frequency=None): From 1fd68c7f7d1d28b800ec29926b6ff620e701dff0 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Tue, 22 Nov 2022 21:59:12 -0800 Subject: [PATCH 0089/1025] changed named signal handling to occur in sys.sample methods. added unit tests. --- control/dtime.py | 10 ++++------ control/statesp.py | 7 +++++-- control/tests/discrete_test.py | 13 +++++++++++++ control/xferfcn.py | 5 ++++- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index a09f5f501..b05d22b96 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -47,8 +47,7 @@ """ -from .namedio import isctime, _process_namedio_keywords -from .iosys import ss +from .namedio import isctime from .statesp import StateSpace __all__ = ['sample_system', 'c2d'] @@ -93,10 +92,9 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None): # Make sure we have a continuous time system if not isctime(sysc): raise ValueError("First argument must be continuous time system") - name, inputs, outputs, states, _ = _process_namedio_keywords(defaults=sysc) - return ss(sysc.sample(Ts, - method=method, alpha=alpha, prewarp_frequency=prewarp_frequency), - name=name, inputs=inputs, outputs=outputs, states=states) + + return sysc.sample(Ts, + method=method, alpha=alpha, prewarp_frequency=prewarp_frequency) def c2d(sysc, Ts, method='zoh', prewarp_frequency=None): diff --git a/control/statesp.py b/control/statesp.py index af549cff6..b47a2894f 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1347,14 +1347,17 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): if not self.isctime(): raise ValueError("System must be continuous time system") - sys = (self.A, self.B, self.C, self.D) if (method == 'bilinear' or (method == 'gbt' and alpha == 0.5)) and \ prewarp_frequency is not None: Twarp = 2 * np.tan(prewarp_frequency * Ts/2)/prewarp_frequency else: Twarp = Ts + sys = (self.A, self.B, self.C, self.D) Ad, Bd, C, D, _ = cont2discrete(sys, Twarp, method, alpha) - return StateSpace(Ad, Bd, C, D, Ts) + # get and pass along same signal names + _, inputs, outputs, states, _ = _process_namedio_keywords(defaults=self) + return StateSpace(Ad, Bd, C, D, Ts, + inputs=inputs, outputs=outputs, states=states) def dcgain(self, warn_infinite=False): """Return the zero-frequency gain diff --git a/control/tests/discrete_test.py b/control/tests/discrete_test.py index cb0ce3c76..0842cbf59 100644 --- a/control/tests/discrete_test.py +++ b/control/tests/discrete_test.py @@ -446,3 +446,16 @@ def test_discrete_bode(self, tsys): np.testing.assert_array_almost_equal(omega, omega_out) np.testing.assert_array_almost_equal(mag_out, np.absolute(H_z)) np.testing.assert_array_almost_equal(phase_out, np.angle(H_z)) + + def test_signal_names(self, tsys): + "test that signal names are preserved in conversion to discrete-time" + ssc = StateSpace(tsys.siso_ss1c, + inputs='u', outputs='y', states=['a', 'b', 'c']) + ssd = ssc.sample(0.1) + tfc = TransferFunction(tsys.siso_tf1c, inputs='u', outputs='y') + tfd = tfc.sample(0.1) + assert ssd.input_labels == ['u'] + assert ssd.state_labels == ['a', 'b', 'c'] + assert ssd.output_labels == ['y'] + assert tfd.input_labels == ['u'] + assert tfd.output_labels == ['y'] \ No newline at end of file diff --git a/control/xferfcn.py b/control/xferfcn.py index d3671c533..bcb1130e2 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1149,7 +1149,10 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): else: Twarp = Ts numd, dend, _ = cont2discrete(sys, Twarp, method, alpha) - return TransferFunction(numd[0, :], dend, Ts) + # get and pass along same signal names + _, inputs, outputs, _, _ = _process_namedio_keywords(defaults=self) + return TransferFunction(numd[0, :], dend, Ts, + inputs=inputs, outputs=outputs) def dcgain(self, warn_infinite=False): """Return the zero-frequency (or DC) gain From e46f22e6602242c5b1a821367ffb0563bcf1a2ab Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Wed, 23 Nov 2022 16:22:37 +0100 Subject: [PATCH 0090/1025] Drop Python 3.7 --- .github/workflows/python-package-conda.yml | 2 +- pyproject.toml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index 1c4411ec6..cea5e542f 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -17,7 +17,7 @@ jobs: max-parallel: 5 fail-fast: false matrix: - python-version: ['3.7', '3.11'] + python-version: ['3.8', '3.11'] slycot: ["", "conda"] pandas: [""] cvxopt: ["", "conda"] diff --git a/pyproject.toml b/pyproject.toml index 691ea4643..493594155 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,6 @@ classifiers = [ "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", @@ -29,7 +28,7 @@ classifiers = [ "Operating System :: Unix", "Operating System :: MacOS", ] -requires-python = ">=3.7" +requires-python = ">=3.8" dependencies = [ "numpy", "scipy>=1.3", From 65e051fdedd1239141d24b955d34a214db24d10a Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 23 Nov 2022 10:51:10 -0800 Subject: [PATCH 0091/1025] create function to copy system names, move default name parameters to namedio, update sys.sample to enable signal names to be passed. --- control/config.py | 3 +++ control/iosys.py | 48 +++++++++++++++------------------------- control/namedio.py | 33 +++++++++++++++++++++++----- control/statesp.py | 55 ++++++++++++++++++++++++++++++++++++---------- control/xferfcn.py | 46 +++++++++++++++++++++++++++++++++----- 5 files changed, 132 insertions(+), 53 deletions(-) diff --git a/control/config.py b/control/config.py index 32f5f2eef..3f2814d42 100644 --- a/control/config.py +++ b/control/config.py @@ -97,6 +97,9 @@ def reset_defaults(): from .rlocus import _rlocus_defaults defaults.update(_rlocus_defaults) + from .namedio import _namedio_defaults + defaults.update(_namedio_defaults) + from .xferfcn import _xferfcn_defaults defaults.update(_xferfcn_defaults) diff --git a/control/iosys.py b/control/iosys.py index 9b33d2161..fd3dcd749 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -47,13 +47,7 @@ 'interconnect', 'summing_junction'] # Define module default parameter values -_iosys_defaults = { - 'iosys.state_name_delim': '_', - 'iosys.duplicate_system_name_prefix': '', - 'iosys.duplicate_system_name_suffix': '$copy', - 'iosys.linearized_system_name_prefix': '', - 'iosys.linearized_system_name_suffix': '$linearized' -} +_iosys_defaults = {} class InputOutputSystem(NamedIOSystem): @@ -515,7 +509,7 @@ def feedback(self, other=1, sign=-1, params=None): return newsys def linearize(self, x0, u0, t=0, params=None, eps=1e-6, - name=None, copy=False, **kwargs): + name=None, copy_names=False, **kwargs): """Linearize an input/output system at a given state and input. Return the linearization of an input/output system at a given state @@ -574,20 +568,14 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, StateSpace(A, B, C, D, self.dt, remove_useless_states=False), name=name, **kwargs) - # Set the names the system, inputs, outputs, and states - if copy: + # Set the system name, inputs, outputs, and states + if copy_names: if name is None: - linsys.name = \ - config.defaults['iosys.linearized_system_name_prefix'] + \ + name = \ + config.defaults['namedio.linearized_system_name_prefix'] +\ self.name + \ - config.defaults['iosys.linearized_system_name_suffix'] - linsys.ninputs, linsys.input_index = self.ninputs, \ - self.input_index.copy() - linsys.noutputs, linsys.output_index = \ - self.noutputs, self.output_index.copy() - linsys.nstates, linsys.state_index = \ - self.nstates, self.state_index.copy() - + config.defaults['namedio.linearized_system_name_suffix'] + linsys._copy_names(self, name=name) return linsys @@ -966,7 +954,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, if states is None: states = [] - state_name_delim = config.defaults['iosys.state_name_delim'] + state_name_delim = config.defaults['namedio.state_name_delim'] for sys, sysname in sysobj_name_dct.items(): states += [sysname + state_name_delim + statename for statename in sys.state_index.keys()] @@ -2192,18 +2180,18 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): params : dict, optional Parameter values for the systems. Passed to the evaluation functions for the system as default values, overriding internal defaults. - copy : bool, Optional - If `copy` is True, copy the names of the input signals, output signals, - and states to the linearized system. If `name` is not specified, - the system name is set to the input system name with the string - '_linearized' appended. + copy_names : bool, Optional + If `copy_names` is True, copy the names of the input signals, output + signals, and states to the linearized system. If `name` is not + specified, the system name is set to the input system name with the + string '_linearized' appended. name : string, optional Set the name of the linearized system. If not specified and if `copy` is `False`, a generic name is generated with a unique integer id. If `copy` is `True`, the new system name is determined by adding the prefix and suffix strings in - config.defaults['iosys.linearized_system_name_prefix'] and - config.defaults['iosys.linearized_system_name_suffix'], with the + config.defaults['namedio.linearized_system_name_prefix'] and + config.defaults['namedio.linearized_system_name_suffix'], with the default being to add the suffix '$linearized'. Returns @@ -2728,8 +2716,8 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, If a system is duplicated in the list of systems to be connected, a warning is generated and a copy of the system is created with the name of the new system determined by adding the prefix and suffix - strings in config.defaults['iosys.linearized_system_name_prefix'] - and config.defaults['iosys.linearized_system_name_suffix'], with the + strings in config.defaults['namedio.linearized_system_name_prefix'] + and config.defaults['namedio.linearized_system_name_suffix'], with the default being to add the suffix '$copy'$ to the system name. It is possible to replace lists in most of arguments with tuples instead, diff --git a/control/namedio.py b/control/namedio.py index 254f310ff..52e68671b 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -12,7 +12,18 @@ __all__ = ['issiso', 'timebase', 'common_timebase', 'timebaseEqual', 'isdtime', 'isctime'] - +# Define module default parameter values +_namedio_defaults = { + 'namedio.state_name_delim': '_', + 'namedio.duplicate_system_name_prefix': '', + 'namedio.duplicate_system_name_suffix': '$copy', + 'namedio.linearized_system_name_prefix': '', + 'namedio.linearized_system_name_suffix': '$linearized', + 'namedio.sampled_system_name_prefix': '', + 'namedio.sampled_system_name_suffix': '$sampled' +} + + class NamedIOSystem(object): def __init__( self, name=None, inputs=None, outputs=None, states=None, **kwargs): @@ -88,14 +99,26 @@ def __str__(self): def _find_signal(self, name, sigdict): return sigdict.get(name, None) + def _copy_names(self, sys, name=None): + """copy the signal and system name of sys. Name is given as a keyword + in case a specific name (e.g. append 'linearized') is desired. """ + if name is None: + self.name = sys.name + self.ninputs, self.input_index = \ + sys.ninputs, sys.input_index.copy() + self.noutputs, self.output_index = \ + sys.noutputs, sys.output_index.copy() + self.nstates, self.state_index = \ + sys.nstates, sys.state_index.copy() + def copy(self, name=None, use_prefix_suffix=True): """Make a copy of an input/output system A copy of the system is made, with a new name. The `name` keyword can be used to specify a specific name for the system. If no name is given and `use_prefix_suffix` is True, the name is constructed - by prepending config.defaults['iosys.duplicate_system_name_prefix'] - and appending config.defaults['iosys.duplicate_system_name_suffix']. + by prepending config.defaults['namedio.duplicate_system_name_prefix'] + and appending config.defaults['namedio.duplicate_system_name_suffix']. Otherwise, a generic system name of the form `sys[]` is used, where `` is based on an internal counter. @@ -106,8 +129,8 @@ def copy(self, name=None, use_prefix_suffix=True): # Update the system name if name is None and use_prefix_suffix: # Get the default prefix and suffix to use - dup_prefix = config.defaults['iosys.duplicate_system_name_prefix'] - dup_suffix = config.defaults['iosys.duplicate_system_name_suffix'] + dup_prefix = config.defaults['namedio.duplicate_system_name_prefix'] + dup_suffix = config.defaults['namedio.duplicate_system_name_suffix'] newsys.name = self._name_or_default( dup_prefix + self.name + dup_suffix) else: diff --git a/control/statesp.py b/control/statesp.py index b47a2894f..b5a5fe26f 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -63,8 +63,8 @@ from .exception import ControlSlycot from .frdata import FrequencyResponseData from .lti import LTI, _process_frequency_response -from .namedio import common_timebase, isdtime -from .namedio import _process_namedio_keywords +from .namedio import common_timebase, isdtime, _process_namedio_keywords, \ + _process_dt_keyword from . import config from copy import deepcopy @@ -357,9 +357,9 @@ def __init__(self, *args, init_namedio=True, **kwargs): states=states, dt=dt) elif kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) - + # Reset shapes (may not be needed once np.matrix support is removed) - if 0 == self.nstates: + if self._isstatic(): # static gain # matrix's default "empty" shape is 1x0 A.shape = (0, 0) @@ -1298,7 +1298,8 @@ def __getitem__(self, indices): return StateSpace(self.A, self.B[:, j], self.C[i, :], self.D[i, j], self.dt) - def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): + def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, + name=None, copy_names=True, **kwargs): """Convert a continuous time system to discrete time Creates a discrete-time system from a continuous-time system by @@ -1317,22 +1318,44 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): alpha=0) * backward_diff: Backwards differencing ("gbt" with alpha=1.0) * zoh: zero-order hold (default) - alpha : float within [0, 1] The generalized bilinear transformation weighting parameter, which should only be specified with method="gbt", and is ignored otherwise - prewarp_frequency : float within [0, infinity) The frequency [rad/s] at which to match with the input continuous- time system's magnitude and phase (the gain=1 crossover frequency, for example). Should only be specified with method='bilinear' or 'gbt' with alpha=0.5 and ignored otherwise. + copy_names : bool, Optional + If `copy_names` is True, copy the names of the input signals, output + signals, and states to the sampled system. If `name` is not + specified, the system name is set to the input system name with the + string '_sampled' appended. + name : string, optional + Set the name of the sampled system. If not specified and + if `copy` is `False`, a generic name is generated + with a unique integer id. If `copy` is `True`, the new system + name is determined by adding the prefix and suffix strings in + config.defaults['namedio.sampled_system_name_prefix'] and + config.defaults['namedio.sampled_system_name_suffix'], with the + default being to add the suffix '$sampled'. Returns ------- sysd : StateSpace - Discrete time system, with sampling rate Ts + Discrete-time system, with sampling rate Ts + + Additional Parameters + --------------------- + inputs : int, list of str or None, optional + Description of the system inputs. If not specified, the origional + system inputs are used. See :class:`InputOutputSystem` for more + information. + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. Notes ----- @@ -1354,10 +1377,18 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): Twarp = Ts sys = (self.A, self.B, self.C, self.D) Ad, Bd, C, D, _ = cont2discrete(sys, Twarp, method, alpha) - # get and pass along same signal names - _, inputs, outputs, states, _ = _process_namedio_keywords(defaults=self) - return StateSpace(Ad, Bd, C, D, Ts, - inputs=inputs, outputs=outputs, states=states) + sysd = StateSpace(Ad, Bd, C, D, Ts) + # copy over the system name, inputs, outputs, and states + if copy_names: + if name is None: + name = \ + config.defaults['namedio.sampled_system_name_prefix'] +\ + self.name + \ + config.defaults['namedio.sampled_system_name_suffix'] + sysd._copy_names(self, name=name) + # pass desired signal names if names were provided + sysd = StateSpace(sysd, **kwargs) + return sysd def dcgain(self, warn_infinite=False): """Return the zero-frequency gain diff --git a/control/xferfcn.py b/control/xferfcn.py index bcb1130e2..a5d52967a 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1090,7 +1090,8 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): return num, den, denorder - def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): + def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, + name=None, copy_names=True, **kwargs): """Convert a continuous-time system to discrete time Creates a discrete-time system from a continuous-time system by @@ -1118,11 +1119,35 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): time system's magnitude and phase (the gain=1 crossover frequency, for example). Should only be specified with method='bilinear' or 'gbt' with alpha=0.5 and ignored otherwise. + copy_names : bool, Optional + If `copy_names` is True, copy the names of the input signals, output + signals, and states to the sampled system. If `name` is not + specified, the system name is set to the input system name with the + string '_sampled' appended. + name : string, optional + Set the name of the sampled system. If not specified and + if `copy` is `False`, a generic name is generated + with a unique integer id. If `copy` is `True`, the new system + name is determined by adding the prefix and suffix strings in + config.defaults['namedio.sampled_system_name_prefix'] and + config.defaults['namedio.sampled_system_name_suffix'], with the + default being to add the suffix '$sampled'. Returns ------- sysd : TransferFunction system - Discrete time system, with sample period Ts + Discrete-time system, with sample period Ts + + Additional Parameters + --------------------- + inputs : int, list of str or None, optional + Description of the system inputs. If not specified, the origional + system inputs are used. See :class:`NamedIOSystem` for more + information. + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. Notes ----- @@ -1149,11 +1174,20 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None): else: Twarp = Ts numd, dend, _ = cont2discrete(sys, Twarp, method, alpha) - # get and pass along same signal names - _, inputs, outputs, _, _ = _process_namedio_keywords(defaults=self) - return TransferFunction(numd[0, :], dend, Ts, - inputs=inputs, outputs=outputs) + sysd = TransferFunction(numd[0, :], dend, Ts) + # copy over the system name, inputs, outputs, and states + if copy_names: + if name is None: + name = \ + config.defaults['namedio.sampled_system_name_prefix'] +\ + self.name + \ + config.defaults['namedio.sampled_system_name_suffix'] + sysd._copy_names(self, name=name) + # pass desired signal names if names were provided + sysd = TransferFunction(sysd, **kwargs) + return sysd + def dcgain(self, warn_infinite=False): """Return the zero-frequency (or DC) gain From 28277f3e77b7b2871bec906af101e40f6735bce0 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 23 Nov 2022 12:09:41 -0800 Subject: [PATCH 0092/1025] add unit tests and fixes to pass unit tests --- control/config.py | 2 +- control/iosys.py | 2 +- control/namedio.py | 2 ++ control/tests/iosys_test.py | 8 +++---- control/tests/kwargs_test.py | 2 ++ control/tests/statesp_test.py | 40 +++++++++++++++++++++++++++++++++-- control/tests/xferfcn_test.py | 31 +++++++++++++++++++++++++++ 7 files changed, 79 insertions(+), 8 deletions(-) diff --git a/control/config.py b/control/config.py index 3f2814d42..ccee252fc 100644 --- a/control/config.py +++ b/control/config.py @@ -288,7 +288,7 @@ def use_legacy_defaults(version): set_defaults('control', default_dt=None) # changed iosys naming conventions - set_defaults('iosys', state_name_delim='.', + set_defaults('namedio', state_name_delim='.', duplicate_system_name_prefix='copy of ', duplicate_system_name_suffix='', linearized_system_name_prefix='', diff --git a/control/iosys.py b/control/iosys.py index fd3dcd749..40eaba9f5 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2204,7 +2204,7 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): --------------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional - system inputs are used. See :class:`InputOutputSystem` for more + system inputs are used. See :class:`NamedIOSystem` for more information. outputs : int, list of str or None, optional Description of the system outputs. Same format as `inputs`. diff --git a/control/namedio.py b/control/namedio.py index 52e68671b..9f82e5929 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -104,6 +104,8 @@ def _copy_names(self, sys, name=None): in case a specific name (e.g. append 'linearized') is desired. """ if name is None: self.name = sys.name + else: + self.name = name self.ninputs, self.input_index = \ sys.ninputs, sys.input_index.copy() self.noutputs, self.output_index = \ diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 7d3b9fee9..09542bcaa 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -216,7 +216,7 @@ def test_linearize(self, tsys, kincar): @pytest.mark.usefixtures("editsdefaults") def test_linearize_named_signals(self, kincar): # Full form of the call - linearized = kincar.linearize([0, 0, 0], [0, 0], copy=True, + linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True, name='linearized') assert linearized.name == 'linearized' assert linearized.find_input('v') == 0 @@ -228,17 +228,17 @@ def test_linearize_named_signals(self, kincar): assert linearized.find_state('theta') == 2 # If we copy signal names w/out a system name, append '$linearized' - linearized = kincar.linearize([0, 0, 0], [0, 0], copy=True) + linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True) assert linearized.name == kincar.name + '$linearized' # Test legacy version as well ct.use_legacy_defaults('0.8.4') ct.config.use_numpy_matrix(False) # np.matrix deprecated - linearized = kincar.linearize([0, 0, 0], [0, 0], copy=True) + linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True) assert linearized.name == kincar.name + '_linearized' # If copy is False, signal names should not be copied - lin_nocopy = kincar.linearize(0, 0, copy=False) + lin_nocopy = kincar.linearize(0, 0, copy_names=False) assert lin_nocopy.find_input('v') is None assert lin_nocopy.find_output('x') is None assert lin_nocopy.find_state('x') is None diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 2dc7f0563..065c4673f 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -198,8 +198,10 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'NonlinearIOSystem.__init__': interconnect_test.test_interconnect_exceptions, 'StateSpace.__init__': test_unrecognized_kwargs, + 'StateSpace.sample': test_unrecognized_kwargs, 'TimeResponseData.__call__': trdata_test.test_response_copy, 'TransferFunction.__init__': test_unrecognized_kwargs, + 'TransferFunction.sample': test_unrecognized_kwargs, } # diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 6fcdade22..41f0c893a 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -820,8 +820,42 @@ def test_error_u_dynamics_mimo(self, u, sys222): sys222.dynamics(0, (1, 1), u) with pytest.raises(ValueError): sys222.output(0, (1, 1), u) - - + + def test_sample_named_signals(self): + sysc = ct.StateSpace(1.1, 1, 1, 1, inputs='u', outputs='y', states='a') + + # Full form of the call + sysd = sysc.sample(0.1, name='sampled') + assert sysd.name == 'sampled' + assert sysd.find_input('u') == 0 + assert sysd.find_output('y') == 0 + assert sysd.find_state('a') == 0 + + # If we copy signal names w/out a system name, append '$sampled' + sysd = sysc.sample(0.1) + assert sysd.name == sysc.name + '$sampled' + + # If copy is False, signal names should not be copied + sysd_nocopy = sysc.sample(0.1, copy_names=False) + assert sysd_nocopy.find_input('u') is None + assert sysd_nocopy.find_output('y') is None + assert sysd_nocopy.find_state('a') is None + + # if signal names are provided, they should override those of sysc + sysd_newnames = sysc.sample(0.1, inputs='v', outputs='x', states='b') + assert sysd_newnames.find_input('v') == 0 + assert sysd_newnames.find_input('u') is None + assert sysd_newnames.find_output('x') == 0 + assert sysd_newnames.find_output('y') is None + assert sysd_newnames.find_state('b') == 0 + assert sysd_newnames.find_state('a') is None + # test just one name + sysd_newnames = sysc.sample(0.1, inputs='v') + assert sysd_newnames.find_input('v') == 0 + assert sysd_newnames.find_input('u') is None + assert sysd_newnames.find_output('y') == 0 + assert sysd_newnames.find_output('x') is None + class TestRss: """These are tests for the proper functionality of statesp.rss.""" @@ -1164,3 +1198,5 @@ def test_params_warning(): with pytest.warns(UserWarning, match="params keyword ignored"): sys.output(0, [0], [0], {'k': 5}) + + diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index 894da5594..e4a2b3ec0 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -986,6 +986,37 @@ def test_repr(self, Hargs, ref): np.testing.assert_array_almost_equal(H.num[p][m], H2.num[p][m]) np.testing.assert_array_almost_equal(H.den[p][m], H2.den[p][m]) assert H.dt == H2.dt + + def test_sample_named_signals(self): + sysc = ct.TransferFunction(1.1, (1, 2), inputs='u', outputs='y') + + # Full form of the call + sysd = sysc.sample(0.1, name='sampled') + assert sysd.name == 'sampled' + assert sysd.find_input('u') == 0 + assert sysd.find_output('y') == 0 + + # If we copy signal names w/out a system name, append '$sampled' + sysd = sysc.sample(0.1) + assert sysd.name == sysc.name + '$sampled' + + # If copy is False, signal names should not be copied + sysd_nocopy = sysc.sample(0.1, copy_names=False) + assert sysd_nocopy.find_input('u') is None + assert sysd_nocopy.find_output('y') is None + + # if signal names are provided, they should override those of sysc + sysd_newnames = sysc.sample(0.1, inputs='v', outputs='x') + assert sysd_newnames.find_input('v') == 0 + assert sysd_newnames.find_input('u') is None + assert sysd_newnames.find_output('x') == 0 + assert sysd_newnames.find_output('y') is None + # test just one name + sysd_newnames = sysc.sample(0.1, inputs='v') + assert sysd_newnames.find_input('v') == 0 + assert sysd_newnames.find_input('u') is None + assert sysd_newnames.find_output('y') == 0 + assert sysd_newnames.find_output('x') is None class TestLTIConverter: From c34526108c58ba681a0da3f1d8fcfa6a09e448c7 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 23 Nov 2022 12:35:53 -0800 Subject: [PATCH 0093/1025] a few more unit tests and improvements to system name handling: --- control/iosys.py | 4 ++-- control/statesp.py | 2 +- control/tests/iosys_test.py | 14 ++++++++++++++ control/xferfcn.py | 4 ++-- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 40eaba9f5..5b941e964 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -565,8 +565,7 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, # Create the state space system linsys = LinearIOSystem( - StateSpace(A, B, C, D, self.dt, remove_useless_states=False), - name=name, **kwargs) + StateSpace(A, B, C, D, self.dt, remove_useless_states=False)) # Set the system name, inputs, outputs, and states if copy_names: @@ -576,6 +575,7 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, self.name + \ config.defaults['namedio.linearized_system_name_suffix'] linsys._copy_names(self, name=name) + linsys = LinearIOSystem(linsys, name=name, **kwargs) return linsys diff --git a/control/statesp.py b/control/statesp.py index b5a5fe26f..561b2d343 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1387,7 +1387,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, config.defaults['namedio.sampled_system_name_suffix'] sysd._copy_names(self, name=name) # pass desired signal names if names were provided - sysd = StateSpace(sysd, **kwargs) + sysd = StateSpace(sysd, name=name, **kwargs) return sysd def dcgain(self, warn_infinite=False): diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 09542bcaa..6bed7cd16 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -243,6 +243,20 @@ def test_linearize_named_signals(self, kincar): assert lin_nocopy.find_output('x') is None assert lin_nocopy.find_state('x') is None + # if signal names are provided, they should override those of kincar + linearized_newnames = kincar.linearize([0, 0, 0], [0, 0], + name='linearized', + copy_names=True, inputs=['v2', 'phi2'], outputs=['x2','y2']) + assert linearized_newnames.name == 'linearized' + assert linearized_newnames.find_input('v2') == 0 + assert linearized_newnames.find_input('phi2') == 1 + assert linearized_newnames.find_input('v') is None + assert linearized_newnames.find_input('phi') is None + assert linearized_newnames.find_output('x2') == 0 + assert linearized_newnames.find_output('y2') == 1 + assert linearized_newnames.find_output('x') is None + assert linearized_newnames.find_output('y') is None + def test_connect(self, tsys): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys diff --git a/control/xferfcn.py b/control/xferfcn.py index a5d52967a..79e46de7e 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1185,9 +1185,9 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, config.defaults['namedio.sampled_system_name_suffix'] sysd._copy_names(self, name=name) # pass desired signal names if names were provided - sysd = TransferFunction(sysd, **kwargs) + sysd = TransferFunction(sysd, name=name, **kwargs) return sysd - + def dcgain(self, warn_infinite=False): """Return the zero-frequency (or DC) gain From dbf64f2e57bc457a63384424abd32defae2bbd1a Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 23 Nov 2022 20:20:43 -0800 Subject: [PATCH 0094/1025] simplify _copy_names, fix docstring errors, add names to sample_system and unit tests, namedio.copy is now deepcopy --- control/dtime.py | 29 ++++++++++++++++++++-- control/iosys.py | 31 +++++++++++++---------- control/namedio.py | 11 +++------ control/statesp.py | 29 +++++++++++----------- control/tests/discrete_test.py | 45 +++++++++++++++++++++++++++++++++- control/tests/iosys_test.py | 12 ++++----- control/tests/kwargs_test.py | 1 + control/xferfcn.py | 29 ++++++++++------------ 8 files changed, 127 insertions(+), 60 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index b05d22b96..9dddd86a3 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -53,7 +53,8 @@ __all__ = ['sample_system', 'c2d'] # Sample a continuous time system -def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None): +def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, + name=None, copy_names=True, **kwargs): """ Convert a continuous time system to discrete time by sampling @@ -72,12 +73,35 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None): prewarp_frequency : float within [0, infinity) The frequency [rad/s] at which to match with the input continuous- time system's magnitude and phase (only valid for method='bilinear') + name : string, optional + Set the name of the sampled system. If not specified and + if `copy_names` is `False`, a generic name is generated + with a unique integer id. If `copy_names` is `True`, the new system + name is determined by adding the prefix and suffix strings in + config.defaults['namedio.sampled_system_name_prefix'] and + config.defaults['namedio.sampled_system_name_suffix'], with the + default being to add the suffix '$sampled'. + copy_names : bool, Optional + If True, copy the names of the input signals, output + signals, and states to the sampled system. Returns ------- sysd : linsys Discrete time system, with sampling rate Ts + Additional Parameters + --------------------- + inputs : int, list of str or None, optional + Description of the system inputs. If not specified, the origional + system inputs are used. See :class:`NamedIOSystem` for more + information. + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. Only + available if the system is :class:`StateSpace`. + Notes ----- See :meth:`StateSpace.sample` or :meth:`TransferFunction.sample` for @@ -94,7 +118,8 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None): raise ValueError("First argument must be continuous time system") return sysc.sample(Ts, - method=method, alpha=alpha, prewarp_frequency=prewarp_frequency) + method=method, alpha=alpha, prewarp_frequency=prewarp_frequency, + name=name, copy_names=copy_names, **kwargs) def c2d(sysc, Ts, method='zoh', prewarp_frequency=None): diff --git a/control/iosys.py b/control/iosys.py index 5b941e964..b90d35ee3 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -568,16 +568,23 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, StateSpace(A, B, C, D, self.dt, remove_useless_states=False)) # Set the system name, inputs, outputs, and states + if copy in kwargs: + copy_names = kwargs.pop('copy') + warn("keyword 'copy' is deprecated. please use 'copy_names'", + DeprecationWarning) + if copy_names: + linsys._copy_names(self) if name is None: - name = \ - config.defaults['namedio.linearized_system_name_prefix'] +\ - self.name + \ + linsys.name = \ + config.defaults['namedio.linearized_system_name_prefix']+\ + linsys.name+\ config.defaults['namedio.linearized_system_name_suffix'] - linsys._copy_names(self, name=name) - linsys = LinearIOSystem(linsys, name=name, **kwargs) - return linsys + else: + linsys.name = name + # re-init to include desired signal names if names were provided + return LinearIOSystem(linsys, **kwargs) class LinearIOSystem(InputOutputSystem, StateSpace): """Input/output representation of a linear (state space) system. @@ -2180,19 +2187,17 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): params : dict, optional Parameter values for the systems. Passed to the evaluation functions for the system as default values, overriding internal defaults. - copy_names : bool, Optional - If `copy_names` is True, copy the names of the input signals, output - signals, and states to the linearized system. If `name` is not - specified, the system name is set to the input system name with the - string '_linearized' appended. name : string, optional Set the name of the linearized system. If not specified and - if `copy` is `False`, a generic name is generated - with a unique integer id. If `copy` is `True`, the new system + if `copy_names` is `False`, a generic name is generated + with a unique integer id. If `copy_names` is `True`, the new system name is determined by adding the prefix and suffix strings in config.defaults['namedio.linearized_system_name_prefix'] and config.defaults['namedio.linearized_system_name_suffix'], with the default being to add the suffix '$linearized'. + copy_names : bool, Optional + If True, Copy the names of the input signals, output signals, and + states to the linearized system. Returns ------- diff --git a/control/namedio.py b/control/namedio.py index 9f82e5929..a94d1a9f5 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -6,7 +6,7 @@ # and other similar classes to allow naming of signals. import numpy as np -from copy import copy +from copy import deepcopy from warnings import warn from . import config @@ -99,13 +99,10 @@ def __str__(self): def _find_signal(self, name, sigdict): return sigdict.get(name, None) - def _copy_names(self, sys, name=None): + def _copy_names(self, sys): """copy the signal and system name of sys. Name is given as a keyword in case a specific name (e.g. append 'linearized') is desired. """ - if name is None: - self.name = sys.name - else: - self.name = name + self.name = sys.name self.ninputs, self.input_index = \ sys.ninputs, sys.input_index.copy() self.noutputs, self.output_index = \ @@ -126,7 +123,7 @@ def copy(self, name=None, use_prefix_suffix=True): """ # Create a copy of the system - newsys = copy(self) + newsys = deepcopy(self) # Update the system name if name is None and use_prefix_suffix: diff --git a/control/statesp.py b/control/statesp.py index 561b2d343..7843cb33f 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -357,7 +357,7 @@ def __init__(self, *args, init_namedio=True, **kwargs): states=states, dt=dt) elif kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) - + # Reset shapes (may not be needed once np.matrix support is removed) if self._isstatic(): # static gain @@ -1298,7 +1298,7 @@ def __getitem__(self, indices): return StateSpace(self.A, self.B[:, j], self.C[i, :], self.D[i, j], self.dt) - def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, + def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, name=None, copy_names=True, **kwargs): """Convert a continuous time system to discrete time @@ -1327,19 +1327,17 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, time system's magnitude and phase (the gain=1 crossover frequency, for example). Should only be specified with method='bilinear' or 'gbt' with alpha=0.5 and ignored otherwise. - copy_names : bool, Optional - If `copy_names` is True, copy the names of the input signals, output - signals, and states to the sampled system. If `name` is not - specified, the system name is set to the input system name with the - string '_sampled' appended. name : string, optional Set the name of the sampled system. If not specified and - if `copy` is `False`, a generic name is generated - with a unique integer id. If `copy` is `True`, the new system + if `copy_names` is `False`, a generic name is generated + with a unique integer id. If `copy_names` is `True`, the new system name is determined by adding the prefix and suffix strings in config.defaults['namedio.sampled_system_name_prefix'] and config.defaults['namedio.sampled_system_name_suffix'], with the default being to add the suffix '$sampled'. + copy_names : bool, Optional + If True, copy the names of the input signals, output + signals, and states to the sampled system. Returns ------- @@ -1380,15 +1378,16 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, sysd = StateSpace(Ad, Bd, C, D, Ts) # copy over the system name, inputs, outputs, and states if copy_names: + sysd._copy_names(self) if name is None: - name = \ + sysd.name = \ config.defaults['namedio.sampled_system_name_prefix'] +\ - self.name + \ + sysd.name + \ config.defaults['namedio.sampled_system_name_suffix'] - sysd._copy_names(self, name=name) - # pass desired signal names if names were provided - sysd = StateSpace(sysd, name=name, **kwargs) - return sysd + else: + sysd.name = name + # pass desired signal names if names were provided + return StateSpace(sysd, **kwargs) def dcgain(self, warn_infinite=False): """Return the zero-frequency gain diff --git a/control/tests/discrete_test.py b/control/tests/discrete_test.py index 0842cbf59..4cf28a21b 100644 --- a/control/tests/discrete_test.py +++ b/control/tests/discrete_test.py @@ -458,4 +458,47 @@ def test_signal_names(self, tsys): assert ssd.state_labels == ['a', 'b', 'c'] assert ssd.output_labels == ['y'] assert tfd.input_labels == ['u'] - assert tfd.output_labels == ['y'] \ No newline at end of file + assert tfd.output_labels == ['y'] + + ssd = sample_system(ssc, 0.1) + tfd = sample_system(tfc, 0.1) + assert ssd.input_labels == ['u'] + assert ssd.state_labels == ['a', 'b', 'c'] + assert ssd.output_labels == ['y'] + assert tfd.input_labels == ['u'] + assert tfd.output_labels == ['y'] + + # system names and signal name override + sysc = StateSpace(1.1, 1, 1, 1, inputs='u', outputs='y', states='a') + + sysd = sample_system(sysc, 0.1, name='sampled') + assert sysd.name == 'sampled' + assert sysd.find_input('u') == 0 + assert sysd.find_output('y') == 0 + assert sysd.find_state('a') == 0 + + # If we copy signal names w/out a system name, append '$sampled' + sysd = sample_system(sysc, 0.1) + assert sysd.name == sysc.name + '$sampled' + + # If copy is False, signal names should not be copied + sysd_nocopy = sample_system(sysc, 0.1, copy_names=False) + assert sysd_nocopy.find_input('u') is None + assert sysd_nocopy.find_output('y') is None + assert sysd_nocopy.find_state('a') is None + + # if signal names are provided, they should override those of sysc + sysd_newnames = sample_system(sysc, 0.1, + inputs='v', outputs='x', states='b') + assert sysd_newnames.find_input('v') == 0 + assert sysd_newnames.find_input('u') is None + assert sysd_newnames.find_output('x') == 0 + assert sysd_newnames.find_output('y') is None + assert sysd_newnames.find_state('b') == 0 + assert sysd_newnames.find_state('a') is None + # test just one name + sysd_newnames = sample_system(sysc, 0.1, inputs='v') + assert sysd_newnames.find_input('v') == 0 + assert sysd_newnames.find_input('u') is None + assert sysd_newnames.find_output('y') == 0 + assert sysd_newnames.find_output('x') is None diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 6bed7cd16..cc9c3e721 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -231,12 +231,6 @@ def test_linearize_named_signals(self, kincar): linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True) assert linearized.name == kincar.name + '$linearized' - # Test legacy version as well - ct.use_legacy_defaults('0.8.4') - ct.config.use_numpy_matrix(False) # np.matrix deprecated - linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True) - assert linearized.name == kincar.name + '_linearized' - # If copy is False, signal names should not be copied lin_nocopy = kincar.linearize(0, 0, copy_names=False) assert lin_nocopy.find_input('v') is None @@ -257,6 +251,12 @@ def test_linearize_named_signals(self, kincar): assert linearized_newnames.find_output('x') is None assert linearized_newnames.find_output('y') is None + # Test legacy version as well + ct.use_legacy_defaults('0.8.4') + ct.config.use_numpy_matrix(False) # np.matrix deprecated + linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True) + assert linearized.name == kincar.name + '_linearized' + def test_connect(self, tsys): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 065c4673f..20a1c8e9c 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -183,6 +183,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'tf': test_unrecognized_kwargs, 'tf2io' : test_unrecognized_kwargs, 'tf2ss' : test_unrecognized_kwargs, + 'sample_system' : test_unrecognized_kwargs, 'flatsys.point_to_point': flatsys_test.TestFlatSys.test_point_to_point_errors, 'flatsys.solve_flat_ocp': diff --git a/control/xferfcn.py b/control/xferfcn.py index 79e46de7e..84188a63f 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1090,7 +1090,7 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): return num, den, denorder - def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, + def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, name=None, copy_names=True, **kwargs): """Convert a continuous-time system to discrete time @@ -1119,19 +1119,17 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, time system's magnitude and phase (the gain=1 crossover frequency, for example). Should only be specified with method='bilinear' or 'gbt' with alpha=0.5 and ignored otherwise. - copy_names : bool, Optional - If `copy_names` is True, copy the names of the input signals, output - signals, and states to the sampled system. If `name` is not - specified, the system name is set to the input system name with the - string '_sampled' appended. name : string, optional Set the name of the sampled system. If not specified and - if `copy` is `False`, a generic name is generated - with a unique integer id. If `copy` is `True`, the new system + if `copy_names` is `False`, a generic name is generated + with a unique integer id. If `copy_names` is `True`, the new system name is determined by adding the prefix and suffix strings in config.defaults['namedio.sampled_system_name_prefix'] and config.defaults['namedio.sampled_system_name_suffix'], with the default being to add the suffix '$sampled'. + copy_names : bool, Optional + If True, copy the names of the input signals, output + signals, and states to the sampled system. Returns ------- @@ -1146,8 +1144,6 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, information. outputs : int, list of str or None, optional Description of the system outputs. Same format as `inputs`. - states : int, list of str, or None, optional - Description of the system states. Same format as `inputs`. Notes ----- @@ -1178,15 +1174,16 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, sysd = TransferFunction(numd[0, :], dend, Ts) # copy over the system name, inputs, outputs, and states if copy_names: + sysd._copy_names(self) if name is None: - name = \ + sysd.name = \ config.defaults['namedio.sampled_system_name_prefix'] +\ - self.name + \ + sysd.name + \ config.defaults['namedio.sampled_system_name_suffix'] - sysd._copy_names(self, name=name) - # pass desired signal names if names were provided - sysd = TransferFunction(sysd, name=name, **kwargs) - return sysd + else: + sysd.name = name + # pass desired signal names if names were provided + return TransferFunction(sysd, name=name, **kwargs) def dcgain(self, warn_infinite=False): """Return the zero-frequency (or DC) gain From 16d9e6af15ba245dc9964aa062e704bf833909ee Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 23 Nov 2022 20:39:35 -0800 Subject: [PATCH 0095/1025] fix deprecated functionality of copy keyword in iosys.linearize --- control/iosys.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/iosys.py b/control/iosys.py index b90d35ee3..205bfe1f5 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -568,7 +568,7 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, StateSpace(A, B, C, D, self.dt, remove_useless_states=False)) # Set the system name, inputs, outputs, and states - if copy in kwargs: + if 'copy' in kwargs: copy_names = kwargs.pop('copy') warn("keyword 'copy' is deprecated. please use 'copy_names'", DeprecationWarning) From 57ad2f102ae1473851ade16b0415bd329e587f1a Mon Sep 17 00:00:00 2001 From: adswid <37661704+adswid@users.noreply.github.com> Date: Thu, 24 Nov 2022 13:52:00 +0100 Subject: [PATCH 0096/1025] Fix find_eqpt when y0 is None --- control/iosys.py | 11 ++++++++--- control/tests/iosys_test.py | 11 +++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 9b33d2161..a32978b58 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2138,10 +2138,15 @@ def rootfun(z): dx = sys._rhs(t, x, u) - dx0 if dtime: dx -= x # TODO: check - dy = sys._out(t, x, u) - y0 - # Map the results into the constrained variables - return np.concatenate((dx[deriv_vars], dy[output_vars]), axis=0) + # If no y0 is given, don't evaluate the output function + if y0 is None: + return dx[deriv_vars] + else: + dy = sys._out(t, x, u) - y0 + + # Map the results into the constrained variables + return np.concatenate((dx[deriv_vars], dy[output_vars]), axis=0) # Set the initial condition for the root finding algorithm z0 = np.concatenate((x[state_vars], u[input_vars]), axis=0) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 7d3b9fee9..003c43d03 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -822,6 +822,17 @@ def test_find_eqpts(self, tsys): np.testing.assert_array_almost_equal( nlsys_full._rhs(0, xeq, ueq)[-4:], np.zeros((4,)), decimal=5) + # The same test as previous, but now all constraints are in the state vector + nlsys_full = ios.NonlinearIOSystem(pvtol_full, None) + xeq, ueq, result = ios.find_eqpt( + nlsys_full, [0, 0, 0.1, 0.1, 0, 0], [0.01, 4*9.8], + idx=[2, 3, 4, 5], ix=[0, 1, 2, 3], return_result=True) + assert result.success + np.testing.assert_array_almost_equal( + nlsys_full._out(0, xeq, ueq)[[2, 3]], [0.1, 0.1], decimal=5) + np.testing.assert_array_almost_equal( + nlsys_full._rhs(0, xeq, ueq)[-4:], np.zeros((4,)), decimal=5) + # Fix one input and vary the other nlsys_full = ios.NonlinearIOSystem(pvtol_full, None) xeq, ueq, result = ios.find_eqpt( From d9ec3ec5bb4d3963bd8b6c502ce36baed7cd1760 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 24 Nov 2022 11:37:03 -0800 Subject: [PATCH 0097/1025] add trajectory_method='shooting' --- control/optimal.py | 221 ++++++++++++++++++++++++--------------------- 1 file changed, 116 insertions(+), 105 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 2842aa0ad..c63f1523e 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -65,6 +65,9 @@ class OptimalControlProblem(): inputs should either be a 2D vector of shape (ninputs, horizon) or a 1D input of shape (ninputs,) that will be broadcast by extension of the time axis. + method : string, optional + Method to use for carrying out the optimization. Currently only + 'shooting' is supported. log : bool, optional If `True`, turn on logging messages (using Python logging module). Use ``logging.basicConfig`` to enable logging output (e.g., to a file). @@ -79,6 +82,9 @@ class OptimalControlProblem(): Additional parameters --------------------- + basis : BasisFamily, optional + Use the given set of basis functions for the inputs instead of + setting the value of the input at each point in the timepts vector. solve_ivp_method : str, optional Set the method used by :func:`scipy.integrate.solve_ivp`. solve_ivp_kwargs : str, optional @@ -127,7 +133,7 @@ class OptimalControlProblem(): def __init__( self, sys, timepts, integral_cost, trajectory_constraints=[], terminal_cost=None, terminal_constraints=[], initial_guess=None, - basis=None, log=False, **kwargs): + method='shooting', basis=None, log=False, **kwargs): """Set up an optimal control problem.""" # Save the basic information for use later self.system = sys @@ -137,6 +143,13 @@ def __init__( self.terminal_constraints = terminal_constraints self.basis = basis + # Keep track of what type of method we are using + if method not in {'shooting', 'collocation'}: + raise NotImplementedError(f"Unkown method {method}") + else: + self.shooting = method in {'shooting'} + self.collocation = method in {'collocation'} + # Process keyword arguments self.solve_ivp_kwargs = {} self.solve_ivp_kwargs['method'] = kwargs.pop( @@ -206,6 +219,7 @@ def __init__( constraint_lb, constraint_ub, eqconst_value = [], [], [] # Go through each time point and stack the bounds + # TODO: for collocation method, keep track of linear vs nonlinear for t in self.timepts: for type, fun, lb, ub in self.trajectory_constraints: if np.all(lb == ub): @@ -241,6 +255,11 @@ def __init__( self.constraints.append(sp.optimize.NonlinearConstraint( self._eqconst_function, self.eqconst_value, self.eqconst_value)) + if self.collocation: + # Add the collocation constraints + colloc_zeros = np.zeros((self.timepts.size - 1) * sys.nstates) + self.constraints.append(sp.optimize.NonlinearConstraint( + self._collocation_constraint, colloc_zeros, colloc_zeros)) # Process the initial guess self.initial_guess = self._process_initial_guess(initial_guess) @@ -274,40 +293,8 @@ def _cost_function(self, coeffs): start_time = time.process_time() logging.info("_cost_function called at: %g", start_time) - # Retrieve the saved initial state - x = self.x - - # Compute inputs - if self.basis: - if self.log: - logging.debug("coefficients = " + str(coeffs)) - inputs = self._coeffs_to_inputs(coeffs) - else: - inputs = coeffs.reshape((self.system.ninputs, -1)) - - # See if we already have a simulation for this condition - if np.array_equal(coeffs, self.last_coeffs) and \ - np.array_equal(x, self.last_x): - states = self.last_states - else: - if self.log: - logging.debug("calling input_output_response from state\n" - + str(x)) - logging.debug("initial input[0:3] =\n" + str(inputs[:, 0:3])) - - # Simulate the system to get the state - # TODO: try calling solve_ivp directly for better speed? - _, _, states = ct.input_output_response( - self.system, self.timepts, inputs, x, return_x=True, - solve_ivp_kwargs=self.solve_ivp_kwargs, t_eval=self.timepts) - self.system_simulations += 1 - self.last_x = x - self.last_coeffs = coeffs - self.last_states = states - - if self.log: - logging.debug("input_output_response returned states\n" - + str(states)) + # Compute the states and inputs + states, inputs = self._compute_states_inputs(coeffs) # Trajectory cost if ct.isctime(self.system): @@ -380,12 +367,15 @@ def _cost_function(self, coeffs): # holds at a specific point in time, and implements the original # constraint. # - # To do this, we basically create a function that simulates the system - # dynamics and returns a vector of values corresponding to the value of - # the function at each time. The class initialization methods takes - # care of replicating the upper and lower bounds for each point in time - # so that the SciPy optimization algorithm can do the proper - # evaluation. + # For collocation methods, we can directly evaluate the constraints at + # the collocation points. + # + # For shooting methods, we do this by creating a function that + # simulates the system dynamics and returns a vector of values + # corresponding to the value of the function at each time. The + # class initialization methods takes care of replicating the upper + # and lower bounds for each point in time so that the SciPy + # optimization algorithm can do the proper evaluation. # # In addition, since SciPy's optimization function does not allow us to # pass arguments to the constraint function, we have to store the initial @@ -396,35 +386,12 @@ def _constraint_function(self, coeffs): start_time = time.process_time() logging.info("_constraint_function called at: %g", start_time) - # Retrieve the initial state - x = self.x - - # Compute input at time points - if self.basis: - inputs = self._coeffs_to_inputs(coeffs) - else: - inputs = coeffs.reshape((self.system.ninputs, -1)) - - # See if we already have a simulation for this condition - if np.array_equal(coeffs, self.last_coeffs) \ - and np.array_equal(x, self.last_x): - states = self.last_states - else: - if self.log: - logging.debug("calling input_output_response from state\n" - + str(x)) - logging.debug("initial input[0:3] =\n" + str(inputs[:, 0:3])) - - # Simulate the system to get the state - _, _, states = ct.input_output_response( - self.system, self.timepts, inputs, x, return_x=True, - solve_ivp_kwargs=self.solve_ivp_kwargs, t_eval=self.timepts) - self.system_simulations += 1 - self.last_x = x - self.last_coeffs = coeffs - self.last_states = states + # Compute the states and inputs + states, inputs = self._compute_states_inputs(coeffs) + # # Evaluate the constraint function along the trajectory + # value = [] for i, t in enumerate(self.timepts): for ctype, fun, lb, ub in self.trajectory_constraints: @@ -477,37 +444,8 @@ def _eqconst_function(self, coeffs): start_time = time.process_time() logging.info("_eqconst_function called at: %g", start_time) - # Retrieve the initial state - x = self.x - - # Compute input at time points - if self.basis: - inputs = self._coeffs_to_inputs(coeffs) - else: - inputs = coeffs.reshape((self.system.ninputs, -1)) - - # See if we already have a simulation for this condition - if np.array_equal(coeffs, self.last_coeffs) and \ - np.array_equal(x, self.last_x): - states = self.last_states - else: - if self.log: - logging.debug("calling input_output_response from state\n" - + str(x)) - logging.debug("initial input[0:3] =\n" + str(inputs[:, 0:3])) - - # Simulate the system to get the state - _, _, states = ct.input_output_response( - self.system, self.timepts, inputs, x, return_x=True, - solve_ivp_kwargs=self.solve_ivp_kwargs, t_eval=self.timepts) - self.system_simulations += 1 - self.last_x = x - self.last_coeffs = coeffs - self.last_states = states - - if self.log: - logging.debug("input_output_response returned states\n" - + str(states)) + # Compute the states and inputs + states, inputs = self._compute_states_inputs(coeffs) # Evaluate the constraint function along the trajectory value = [] @@ -538,6 +476,10 @@ def _eqconst_function(self, coeffs): # Checked above => we should never get here raise TypeError("unknown constraint type {ctype}") + # Add the collocation constraints + if self.collocation: + raise NotImplementedError("collocation not yet implemented") + # Update statistics self.eqconst_evaluations += 1 if self.log: @@ -555,6 +497,12 @@ def _eqconst_function(self, coeffs): # Return the value of the constraint function return np.hstack(value) + def _collocation_constraints(self, coeffs): + # Compute the states and inputs + states, inputs = self._compute_states_inputs(coeffs) + + raise NotImplementedError("collocation not yet implemented") + # # Initial guess # @@ -566,8 +514,10 @@ def _eqconst_function(self, coeffs): # vector. If a basis is specified, this is converted to coefficient # values (which are generally of smaller dimension). # + # TODO: figure out how to modify this for collocation + # def _process_initial_guess(self, initial_guess): - if initial_guess is not None: + if self.shooting and initial_guess is not None: # Convert to a 1D array (or higher) initial_guess = np.atleast_1d(initial_guess) @@ -592,10 +542,15 @@ def _process_initial_guess(self, initial_guess): # Reshape for use by scipy.optimize.minimize() return initial_guess.reshape(-1) - # Default is zero - return np.zeros( - self.system.ninputs * - (self.timepts.size if self.basis is None else self.basis.N)) + elif self.collocation and initial_guess is not None: + raise NotImplementedError("collocation not yet implemented") + + # Default is no initial guess + input_size = self.system.ninputs * \ + (self.timepts.size if self.basis is None else self.basis.N) + state_size = 0 if not self.collocation else \ + (self.timepts.size - 1) * self.sys.nstates + return np.zeros(input_size + state_size) # # Utility function to convert input vector to coefficient vector @@ -679,6 +634,62 @@ def _print_statistics(self, reset=True): if reset: self._reset_statistics(self.log) + # + # Compute the states and inputs from the coefficient vector + # + # These internal functions return the states and inputs at the + # collocation points given the ceofficient (optimizer state) vector. + # They keep track of whether a shooting method is being used or not and + # simulate the dynamis of needed. + # + + # Compute the states and inputs from the coefficients + def _compute_states_inputs(self, coeffs): + # + # Compute out the states and inputs + # + if self.collocation: + # States are appended to end of (input) coefficients + states = coeffs[-self.sys.nstates * self.timepts.size:0] + coeffs = coeffs[0:-self.sys.nstates * self.timepts.size] + + # Compute input at time points + if self.basis: + inputs = self._coeffs_to_inputs(coeffs) + else: + inputs = coeffs.reshape((self.system.ninputs, -1)) + + if self.shooting: + # See if we already have a simulation for this condition + if np.array_equal(coeffs, self.last_coeffs) \ + and np.array_equal(self.x, self.last_x): + states = self.last_states + else: + states = self._simulate_states(self.x, inputs) + self.last_x = self.x + self.last_states = states + self.last_coeffs = coeffs + + return states, inputs + + # Simulate the system dynamis to retrieve the state + def _simulate_states(self, x0, inputs): + if self.log: + logging.debug( + "calling input_output_response from state\n" + str(x0)) + logging.debug("input =\n" + str(inputs)) + + # Simulate the system to get the state + _, _, states = ct.input_output_response( + self.system, self.timepts, inputs, x0, return_x=True, + solve_ivp_kwargs=self.solve_ivp_kwargs, t_eval=self.timepts) + self.system_simulations += 1 + + if self.log: + logging.debug( + "input_output_response returned states\n" + str(states)) + return states + # # Optimal control computations # @@ -992,7 +1003,7 @@ def solve_ocp( Notes ----- Additional keyword parameters can be used to fine tune the behavior of - the underlying optimization and integrations functions. See + the underlying optimization and integration functions. See :func:`OptimalControlProblem` for more information. """ From ce5e67ac10c9363fb8674258dddc2c9120f17fed Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 24 Nov 2022 15:06:58 -0800 Subject: [PATCH 0098/1025] add trajectory_method='collocation' --- control/optimal.py | 154 ++++++++++++++++++++++------------ control/tests/optimal_test.py | 115 +++++++++++++++++++++---- 2 files changed, 200 insertions(+), 69 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index c63f1523e..a7354a100 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -21,7 +21,9 @@ from .timeresp import TimeResponseData # Define module default parameter values +_optimal_trajectory_methods = {'shooting', 'collocation'} _optimal_defaults = { + 'optimal.trajectory_method': 'shooting', 'optimal.minimize_method': None, 'optimal.minimize_options': {}, 'optimal.minimize_kwargs': {}, @@ -65,9 +67,11 @@ class OptimalControlProblem(): inputs should either be a 2D vector of shape (ninputs, horizon) or a 1D input of shape (ninputs,) that will be broadcast by extension of the time axis. - method : string, optional - Method to use for carrying out the optimization. Currently only - 'shooting' is supported. + trajectory_method : string, optional + Method to use for carrying out the optimization. Currently supported + methods are 'shooting' and 'collocation' (continuous time only). The + default value is 'shooting' for discrete time systems and + 'collocation' for continuous time systems log : bool, optional If `True`, turn on logging messages (using Python logging module). Use ``logging.basicConfig`` to enable logging output (e.g., to a file). @@ -133,7 +137,7 @@ class OptimalControlProblem(): def __init__( self, sys, timepts, integral_cost, trajectory_constraints=[], terminal_cost=None, terminal_constraints=[], initial_guess=None, - method='shooting', basis=None, log=False, **kwargs): + trajectory_method=None, basis=None, log=False, **kwargs): """Set up an optimal control problem.""" # Save the basic information for use later self.system = sys @@ -144,11 +148,15 @@ def __init__( self.basis = basis # Keep track of what type of method we are using - if method not in {'shooting', 'collocation'}: + if trajectory_method is None: + # TODO: change default + # trajectory_method = 'collocation' if sys.isctime() else 'shooting' + trajectory_method = 'shooting' if sys.isctime() else 'shooting' + elif trajectory_method not in _optimal_trajectory_methods: raise NotImplementedError(f"Unkown method {method}") - else: - self.shooting = method in {'shooting'} - self.collocation = method in {'collocation'} + + self.shooting = trajectory_method in {'shooting'} + self.collocation = trajectory_method in {'collocation'} # Process keyword arguments self.solve_ivp_kwargs = {} @@ -257,10 +265,14 @@ def __init__( self.eqconst_value)) if self.collocation: # Add the collocation constraints - colloc_zeros = np.zeros((self.timepts.size - 1) * sys.nstates) + colloc_zeros = np.zeros(sys.nstates * self.timepts.size) + self.colloc_vals = np.zeros((sys.nstates, self.timepts.size)) self.constraints.append(sp.optimize.NonlinearConstraint( self._collocation_constraint, colloc_zeros, colloc_zeros)) + # Initialize run-time statistics + self._reset_statistics(log) + # Process the initial guess self.initial_guess = self._process_initial_guess(initial_guess) @@ -268,9 +280,6 @@ def __init__( self.last_x = np.full(self.system.nstates, np.nan) self.last_coeffs = np.full(self.initial_guess.shape, np.nan) - # Reset run-time statistics - self._reset_statistics(log) - # Log information if log: logging.info("New optimal control problem initailized") @@ -476,10 +485,6 @@ def _eqconst_function(self, coeffs): # Checked above => we should never get here raise TypeError("unknown constraint type {ctype}") - # Add the collocation constraints - if self.collocation: - raise NotImplementedError("collocation not yet implemented") - # Update statistics self.eqconst_evaluations += 1 if self.log: @@ -497,11 +502,32 @@ def _eqconst_function(self, coeffs): # Return the value of the constraint function return np.hstack(value) - def _collocation_constraints(self, coeffs): + def _collocation_constraint(self, coeffs): # Compute the states and inputs states, inputs = self._compute_states_inputs(coeffs) - raise NotImplementedError("collocation not yet implemented") + if self.system.isctime(): + # Compute the collocation constraints + for i, t in enumerate(self.timepts): + if i == 0: + # Initial condition constraint (self.x = initial point) + self.colloc_vals[:, 0] = states[:, 0] - self.x + fk = self.system._rhs( + self.timepts[0], states[:, 0], inputs[:, 0]) + continue + + # M. Kelly, SIAM Review (2017), equation (3.2), i = k+1 + # x[k+1] - x[k] = 0.5 hk (f(x[k+1], u[k+1] + f(x[k], u[k])) + fkp1 = self.system._rhs(t, states[:, i], inputs[:, i]) + self.colloc_vals[:, i] = states[:, i] - states[:, i-1] - \ + 0.5 * (self.timepts[i] - self.timepts[i-1]) * (fkp1 + fk) + fk = fkp1 + else: + raise NotImplementedError( + "collocation not yet implemented for discrete time systems") + + # Return the value of the constraint function + return self.colloc_vals.reshape(-1) # # Initial guess @@ -517,40 +543,61 @@ def _collocation_constraints(self, coeffs): # TODO: figure out how to modify this for collocation # def _process_initial_guess(self, initial_guess): - if self.shooting and initial_guess is not None: - # Convert to a 1D array (or higher) - initial_guess = np.atleast_1d(initial_guess) - - # See whether we got entire guess or just first time point - if initial_guess.ndim == 1: - # Broadcast inputs to entire time vector - try: - initial_guess = np.broadcast_to( - initial_guess.reshape(-1, 1), - (self.system.ninputs, self.timepts.size)) - except ValueError: - raise ValueError("initial guess is the wrong shape") - - elif initial_guess.shape != \ - (self.system.ninputs, self.timepts.size): - raise ValueError("initial guess is the wrong shape") + # Sort out the input guess and the state guess + if self.collocation and initial_guess is not None and \ + isinstance(initial_guess, tuple): + state_guess, input_guess = initial_guess + else: + state_guess, input_guess = None, initial_guess + + # Process the input guess + if input_guess is not None: + input_guess = self._broadcast_initial_guess( + input_guess, (self.system.ninputs, self.timepts.size)) # If we were given a basis, project onto the basis elements if self.basis is not None: - initial_guess = self._inputs_to_coeffs(initial_guess) + input_guess = self._inputs_to_coeffs(input_guess) + else: + input_guess = np.zeros( + self.system.ninputs * + (self.timepts.size if self.basis is None else self.basis.N)) + + # Process the state guess + if self.collocation: + if state_guess is None: + # Run a simulation to get the initial guess + inputs = input_guess.reshape(self.system.ninputs, -1) + state_guess = self._simulate_states( + np.zeros(self.system.nstates), inputs) + else: + state_guess = self._broadcast_initial_guess( + state_guess, (self.system.nstates, self.timepts.size)) # Reshape for use by scipy.optimize.minimize() - return initial_guess.reshape(-1) + return np.hstack([ + input_guess.reshape(-1), state_guess.reshape(-1)]) + else: + # Reshape for use by scipy.optimize.minimize() + return input_guess.reshape(-1) + + def _broadcast_initial_guess(self, initial_guess, shape): + # Convert to a 1D array (or higher) + initial_guess = np.atleast_1d(initial_guess) + + # See whether we got entire guess or just first time point + if initial_guess.ndim == 1: + # Broadcast inputs to entire time vector + try: + initial_guess = np.broadcast_to( + initial_guess.reshape(-1, 1), shape) + except ValueError: + raise ValueError("initial guess is the wrong shape") - elif self.collocation and initial_guess is not None: - raise NotImplementedError("collocation not yet implemented") + elif initial_guess.shape != shape: + raise ValueError("initial guess is the wrong shape") - # Default is no initial guess - input_size = self.system.ninputs * \ - (self.timepts.size if self.basis is None else self.basis.N) - state_size = 0 if not self.collocation else \ - (self.timepts.size - 1) * self.sys.nstates - return np.zeros(input_size + state_size) + return initial_guess # # Utility function to convert input vector to coefficient vector @@ -650,9 +697,10 @@ def _compute_states_inputs(self, coeffs): # if self.collocation: # States are appended to end of (input) coefficients - states = coeffs[-self.sys.nstates * self.timepts.size:0] - coeffs = coeffs[0:-self.sys.nstates * self.timepts.size] - + states = coeffs[-self.system.nstates * self.timepts.size:].reshape( + self.system.nstates, -1) + coeffs = coeffs[:-self.system.nstates * self.timepts.size] + # Compute input at time points if self.basis: inputs = self._coeffs_to_inputs(coeffs) @@ -863,11 +911,8 @@ def __init__( # Remember the optimal control problem that we solved self.problem = ocp - # Compute input at time points - if ocp.basis: - inputs = ocp._coeffs_to_inputs(res.x) - else: - inputs = res.x.reshape((ocp.system.ninputs, -1)) + # Parse the optimization variables into states and inputs + states, inputs = ocp._compute_states_inputs(res.x) # See if we got an answer if not res.success: @@ -885,6 +930,7 @@ def __init__( if return_states and inputs.shape[1] == ocp.timepts.shape[0]: # Simulate the system if we need the state back + # TODO: this is probably not needed due to compute_states_inputs() _, _, states = ct.input_output_response( ocp.system, ocp.timepts, inputs, ocp.x, return_x=True, solve_ivp_kwargs=ocp.solve_ivp_kwargs, t_eval=ocp.timepts) @@ -1017,7 +1063,7 @@ def solve_ocp( 'optimal', 'return_x', kwargs, return_states, pop=True) # Process (legacy) method keyword - if kwargs.get('method'): + if kwargs.get('method') and method not in optimal_methods: if kwargs.get('minimize_method'): raise ValueError("'minimize_method' specified more than once") kwargs['minimize_method'] = kwargs.pop('method') diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 4359b693c..48d11fc82 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -16,11 +16,50 @@ from numpy.lib import NumpyVersion -def test_finite_horizon_simple(): - # Define a linear system with constraints +@pytest.mark.parametrize("method, npts", [ + ('shooting', 5), + ('collocation', 20), +]) +def test_continuous_lqr(method, npts): + # Create a lightly dampled, second order system + sys = ct.ss([[0, 1], [-0.1, -0.01]], [[0], [1]], [[1, 0]], 0) + + # Define cost functions + Q = np.eye(sys.nstates) + R = np.eye(sys.ninputs) * 10 + + # Figure out the LQR solution (for terminal cost) + K, S, E = ct.lqr(sys, Q, R) + + # Define the cost functions + traj_cost = opt.quadratic_cost(sys, Q, R) + term_cost = opt.quadratic_cost(sys, S, None) + constraints = opt.input_range_constraint( + sys, -np.ones(sys.ninputs), np.ones(sys.ninputs)) + + # Define the initial condition, time horizon, and time points + x0 = np.ones(sys.nstates) + Tf = 10 + timepts = np.linspace(0, Tf, npts) + + res = opt.solve_ocp( + sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + trajectory_method=method + ) + + # Make sure the optimization was successful + assert res.success + + # Make sure we were reasonable close to the optimal cost + assert res.cost / (x0 @ S @ x0) < 1.2 # shouldn't be too far off + + +@pytest.mark.parametrize("method", ['shooting']) # TODO: add 'collocation' +def test_finite_horizon_simple(method): + # Define a (discrete time) linear system with constraints # Source: https://www.mpt3.org/UI/RegulationProblem - # LTI prediction model + # LTI prediction model (discrete time) sys = ct.ss2io(ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1)) # State and input constraints @@ -40,6 +79,7 @@ def test_finite_horizon_simple(): # Retrieve the full open-loop predictions res = opt.solve_ocp( sys, time, x0, cost, constraints, squeeze=True, + trajectory_method=method, terminal_cost=cost) # include to match MPT3 formulation t, u_openloop = res.time, res.inputs np.testing.assert_almost_equal( @@ -297,7 +337,8 @@ def test_terminal_constraints(sys_args): # Re-run using initial guess = optional and make sure nothing changes res = optctrl.compute_trajectory(x0, initial_guess=u1) - np.testing.assert_almost_equal(res.inputs, u1) + np.testing.assert_almost_equal(res.inputs, u1, decimal=2) + np.testing.assert_almost_equal(res.states, x1, decimal=4) # Re-run using a basis function and see if we get the same answer res = opt.solve_ocp( @@ -574,7 +615,18 @@ def final_point_eval(x, u): res = optctrl.compute_trajectory(x0, squeeze=True, return_x=True) -def test_optimal_doc(): +@pytest.mark.parametrize( + "method, npts, initial_guess", [ + # ('shooting', 3, None), # doesn't converge + # ('shooting', 3, 'zero'), # doesn't converge + ('shooting', 3, 'input'), # github issue #782 + ('shooting', 5, 'input'), + # ('collocation', 5, 'zero'), # doesn't converge + ('collocation', 5, 'input'), + ('collocation', 10, 'input'), + ('collocation', 10, 'state'), + ]) +def test_optimal_doc(method, npts, initial_guess): """Test optimal control problem from documentation""" def vehicle_update(t, x, u, params): # Get the parameters for the model @@ -600,8 +652,8 @@ def vehicle_output(t, x, u, params): inputs=('v', 'phi'), outputs=('x', 'y', 'theta')) # Define the initial and final points and time interval - x0 = [0., -2., 0.]; u0 = [10., 0.] - xf = [100., 2., 0.]; uf = [10., 0.] + x0 = np.array([0., -2., 0.]); u0 = np.array([10., 0.]) + xf = np.array([100., 2., 0.]); uf = np.array([10., 0.]) Tf = 10 # Define the cost functions @@ -614,17 +666,50 @@ def vehicle_output(t, x, u, params): # Define the constraints constraints = [ opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] + # Define an initial guess at the trajectory + timepts = np.linspace(0, Tf, npts, endpoint=True) + if initial_guess == 'zero': + initial_guess = 0 + + elif initial_guess == 'input': + # Velocity = constant that gets us from start to end + initial_guess = np.zeros((vehicle.ninputs, timepts.size)) + initial_guess[0, :] = (xf[0] - x0[0]) / Tf + + # Steering = rate required to turn to proper slope in first segment + straight_seg_length = timepts[-2] - timepts[1] + curved_seg_length = (Tf - straight_seg_length)/2 + approximate_angle = math.atan2(xf[1] - x0[1], xf[0] - x0[0]) + initial_guess[1, 0] = approximate_angle / (timepts[1] - timepts[0]) + initial_guess[1, -1] = -approximate_angle / (timepts[-1] - timepts[-2]) + + elif initial_guess == 'state': + input_guess = np.outer(u0, np.ones((1, npts))) + state_guess = np.array([ + x0 + (xf - x0) * time/Tf for time in timepts]).transpose() + initial_guess = (state_guess, input_guess) + # Solve the optimal control problem - horizon = np.linspace(0, Tf, 3, endpoint=True) result = opt.solve_ocp( - vehicle, horizon, x0, traj_cost, constraints, - terminal_cost= term_cost, initial_guess=u0) + vehicle, timepts, x0, traj_cost, trajectory_method=method, + # minimize_method='COBYLA', # SLSQP', + # constraints, + terminal_cost=term_cost, initial_guess=initial_guess, + ) + + # Make sure we got a successful result (or precision loss error) + assert result.success or result.status == 2 - # Make sure the resulting trajectory generate a good solution + # Make sure the resulting trajectory generated a good solution resp = ct.input_output_response( - vehicle, horizon, result.inputs, x0, + vehicle, timepts, result.inputs, x0, t_eval=np.linspace(0, Tf, 10)) t, y = resp - assert (y[0, -1] - xf[0]) / xf[0] < 0.01 - assert (y[1, -1] - xf[1]) / xf[1] < 0.01 - assert y[2, -1] < 0.1 + + assert abs(y[0, 0] - x0[0]) < 0.01 + assert abs((y[1, 0] - x0[1]) / x0[1]) < 0.01 + assert abs(y[2, 0]) < 0.01 + + assert abs((y[0, -1] - xf[0]) / xf[0]) < 0.2 # TODO: reset to 0.1 + assert abs((y[1, -1] - xf[1]) / xf[1]) < 0.2 # TODO: reset to 0.1 + assert abs(y[2, -1]) < 0.1 From 8256fa05eca508aa75b346c7bb53b91472549c3c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 24 Nov 2022 23:13:38 -0800 Subject: [PATCH 0099/1025] set default trajectory_methood for ctime systems to collocation --- control/optimal.py | 18 ++++++++++-------- control/tests/optimal_test.py | 19 +++++++++++++------ doc/optimal.rst | 21 +++++++++++++-------- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index a7354a100..e0cf48f0a 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -147,11 +147,10 @@ def __init__( self.terminal_constraints = terminal_constraints self.basis = basis - # Keep track of what type of method we are using + # Keep track of what type of trajector method we are using if trajectory_method is None: # TODO: change default - # trajectory_method = 'collocation' if sys.isctime() else 'shooting' - trajectory_method = 'shooting' if sys.isctime() else 'shooting' + trajectory_method = 'collocation' if sys.isctime() else 'shooting' elif trajectory_method not in _optimal_trajectory_methods: raise NotImplementedError(f"Unkown method {method}") @@ -422,9 +421,9 @@ def _constraint_function(self, coeffs): # Skip equality constraints continue elif ctype == opt.LinearConstraint: - value.append(fun @ np.hstack([states[:, i], inputs[:, i]])) + value.append(fun @ np.hstack([states[:, -1], inputs[:, -1]])) elif ctype == opt.NonlinearConstraint: - value.append(fun(states[:, i], inputs[:, i])) + value.append(fun(states[:, -1], inputs[:, -1])) else: # pragma: no cover # Checked above => we should never get here raise TypeError(f"unknown constraint type {ctype}") @@ -478,9 +477,9 @@ def _eqconst_function(self, coeffs): # Skip inequality constraints continue elif ctype == opt.LinearConstraint: - value.append(fun @ np.hstack([states[:, i], inputs[:, i]])) + value.append(fun @ np.hstack([states[:, -1], inputs[:, -1]])) elif ctype == opt.NonlinearConstraint: - value.append(fun(states[:, i], inputs[:, i])) + value.append(fun(states[:, -1], inputs[:, -1])) else: # pragma: no cover # Checked above => we should never get here raise TypeError("unknown constraint type {ctype}") @@ -567,7 +566,10 @@ def _process_initial_guess(self, initial_guess): if self.collocation: if state_guess is None: # Run a simulation to get the initial guess - inputs = input_guess.reshape(self.system.ninputs, -1) + if self.basis: + inputs = self._coeffs_to_inputs(input_guess) + else: + inputs = input_guess.reshape(self.system.ninputs, -1) state_guess = self._simulate_states( np.zeros(self.system.nstates), inputs) else: diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 48d11fc82..0aded3531 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -367,7 +367,7 @@ def test_terminal_constraints(sys_args): # Not all configurations are able to converge (?) if res.success: - np.testing.assert_almost_equal(x2[:,-1], 0) + np.testing.assert_almost_equal(x2[:,-1], 0, decimal=5) # Make sure that it is *not* a straight line path assert np.any(np.abs(x2 - x1) > 0.1) @@ -619,12 +619,16 @@ def final_point_eval(x, u): "method, npts, initial_guess", [ # ('shooting', 3, None), # doesn't converge # ('shooting', 3, 'zero'), # doesn't converge - ('shooting', 3, 'input'), # github issue #782 - ('shooting', 5, 'input'), - # ('collocation', 5, 'zero'), # doesn't converge + ('shooting', 3, 'u0'), # github issue #782 + # ('shooting', 3, 'input'), # precision loss + # ('shooting', 5, 'input'), # precision loss + # ('collocation', 3, 'u0'), # doesn't converge + ('collocation', 5, 'u0'), # from documenentation ('collocation', 5, 'input'), ('collocation', 10, 'input'), + ('collocation', 10, 'u0'), ('collocation', 10, 'state'), + ('collocation', 20, 'state'), ]) def test_optimal_doc(method, npts, initial_guess): """Test optimal control problem from documentation""" @@ -671,6 +675,9 @@ def vehicle_output(t, x, u, params): if initial_guess == 'zero': initial_guess = 0 + elif initial_guess == 'u0': + initial_guess = u0 + elif initial_guess == 'input': # Velocity = constant that gets us from start to end initial_guess = np.zeros((vehicle.ninputs, timepts.size)) @@ -710,6 +717,6 @@ def vehicle_output(t, x, u, params): assert abs((y[1, 0] - x0[1]) / x0[1]) < 0.01 assert abs(y[2, 0]) < 0.01 - assert abs((y[0, -1] - xf[0]) / xf[0]) < 0.2 # TODO: reset to 0.1 - assert abs((y[1, -1] - xf[1]) / xf[1]) < 0.2 # TODO: reset to 0.1 + assert abs((y[0, -1] - xf[0]) / xf[0]) < 0.12 + assert abs((y[1, -1] - xf[1]) / xf[1]) < 0.12 assert abs(y[2, -1]) < 0.1 diff --git a/doc/optimal.rst b/doc/optimal.rst index bb952e9cc..107373915 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -112,15 +112,15 @@ problem into a standard optimization problem that can be solved by :func:`scipy.optimize.minimize`. The optimal control problem can be solved by using the :func:`~control.obc.solve_ocp` function:: - res = obc.solve_ocp(sys, horizon, X0, cost, constraints) + res = obc.solve_ocp(sys, timepts, X0, cost, constraints) The `sys` parameter should be an :class:`~control.InputOutputSystem` and the -`horizon` parameter should represent a time vector that gives the list of +`timepts` parameter should represent a time vector that gives the list of times at which the cost and constraints should be evaluated. The `cost` function has call signature `cost(t, x, u)` and should return the (incremental) cost at the given time, state, and input. It will be -evaluated at each point in the `horizon` vector. The `terminal_cost` +evaluated at each point in the `timepts` vector. The `terminal_cost` parameter can be used to specify a cost function for the final point in the trajectory. @@ -157,7 +157,7 @@ that has the following elements: * `res.success`: `True` if the optimization was successfully solved * `res.inputs`: optimal input * `res.states`: state trajectory (if `return_x` was `True`) - * `res.time`: copy of the time horizon vector + * `res.time`: copy of the time timepts vector In addition, the results from :func:`scipy.optimize.minimize` are also available. @@ -235,16 +235,16 @@ and constrain the velocity to be in the range of 9 m/s to 11 m/s:: Finally, we solve for the optimal inputs:: - horizon = np.linspace(0, Tf, 3, endpoint=True) + timepts = np.linspace(0, Tf, 10, endpoint=True) result = opt.solve_ocp( - vehicle, horizon, x0, traj_cost, constraints, + vehicle, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, initial_guess=u0) Plotting the results:: # Simulate the system dynamics (open loop) resp = ct.input_output_response( - vehicle, horizon, result.inputs, x0, + vehicle, timepts, result.inputs, x0, t_eval=np.linspace(0, Tf, 100)) t, y, u = resp.time, resp.outputs, resp.inputs @@ -262,7 +262,7 @@ Plotting the results:: plt.subplot(3, 1, 3) plt.plot(t, u[1]) - plt.axis([0, 10, -0.01, 0.01]) + plt.axis([0, 10, -0.015, 0.015]) plt.xlabel("t [sec]") plt.ylabel("u2 [rad/s]") @@ -282,6 +282,11 @@ toolbox and it can sometimes be tricky to get the optimization to converge. If you are getting errors when solving optimal control problems or your solutions do not seem close to optimal, here are a few things to try: +* The initial guess matters: providing a reasonable initial guess is often + needed in order for the optimizer to find a good answer. For an optimal + control problem that uses a larger terminal cost to get to a neighborhood + of a final point, a straight line in the state space often works well. + * Less is more: try using a smaller number of time points in your optimiation. The default optimal control problem formulation uses the value of the inputs at each time point as a free variable and this can From d121102cef6a9a8f44a85151ff852fa4f08fe83d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 25 Nov 2022 13:29:28 -0800 Subject: [PATCH 0100/1025] updated examples + code cleanup --- control/optimal.py | 148 +++++++++++++++++----------------- control/tests/optimal_test.py | 80 ++++++++++-------- doc/optimal.rst | 4 +- doc/steering-optimal.png | Bin 29001 -> 28691 bytes examples/steering-optimal.py | 104 +++++++++++++++--------- 5 files changed, 190 insertions(+), 146 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index e0cf48f0a..0478505bc 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -23,7 +23,6 @@ # Define module default parameter values _optimal_trajectory_methods = {'shooting', 'collocation'} _optimal_defaults = { - 'optimal.trajectory_method': 'shooting', 'optimal.minimize_method': None, 'optimal.minimize_options': {}, 'optimal.minimize_kwargs': {}, @@ -147,9 +146,8 @@ def __init__( self.terminal_constraints = terminal_constraints self.basis = basis - # Keep track of what type of trajector method we are using + # Keep track of what type of trajectory method we are using if trajectory_method is None: - # TODO: change default trajectory_method = 'collocation' if sys.isctime() else 'shooting' elif trajectory_method not in _optimal_trajectory_methods: raise NotImplementedError(f"Unkown method {method}") @@ -185,30 +183,23 @@ def __init__( raise TypeError("unrecognized keyword(s): ", str(kwargs)) # Process trajectory constraints - if isinstance(trajectory_constraints, tuple): - self.trajectory_constraints = [trajectory_constraints] - elif not isinstance(trajectory_constraints, list): - raise TypeError("trajectory constraints must be a list") - else: - self.trajectory_constraints = trajectory_constraints + def _process_constraints(constraint_list, name): + if isinstance(constraint_list, tuple): + constraint_list = [constraint_list] + elif not isinstance(constraint_list, list): + raise TypeError(f"{name} constraints must be a list") - # Make sure that we recognize all of the constraint types - for ctype, fun, lb, ub in self.trajectory_constraints: - if not ctype in [opt.LinearConstraint, opt.NonlinearConstraint]: - raise TypeError(f"unknown constraint type {ctype}") + # Make sure that we recognize all of the constraint types + for ctype, fun, lb, ub in constraint_list: + if not ctype in [opt.LinearConstraint, opt.NonlinearConstraint]: + raise TypeError(f"unknown {name} constraint type {ctype}") - # Process terminal constraints - if isinstance(terminal_constraints, tuple): - self.terminal_constraints = [terminal_constraints] - elif not isinstance(terminal_constraints, list): - raise TypeError("terminal constraints must be a list") - else: - self.terminal_constraints = terminal_constraints + return constraint_list - # Make sure that we recognize all of the constraint types - for ctype, fun, lb, ub in self.terminal_constraints: - if not ctype in [opt.LinearConstraint, opt.NonlinearConstraint]: - raise TypeError(f"unknown constraint type {ctype}") + self.trajectory_constraints = _process_constraints( + trajectory_constraints, "trajectory") + self.terminal_constraints = _process_constraints( + terminal_constraints, "terminal") # # Compute and store constraints @@ -223,10 +214,13 @@ def __init__( # is consistent with the `_constraint_function` that is used at # evaluation time. # + # TODO: when using the collocation method, linear constraints on the + # states and inputs can potentially maintain their linear structure + # rather than being converted to nonlinear constraints. + # constraint_lb, constraint_ub, eqconst_value = [], [], [] # Go through each time point and stack the bounds - # TODO: for collocation method, keep track of linear vs nonlinear for t in self.timepts: for type, fun, lb, ub in self.trajectory_constraints: if np.all(lb == ub): @@ -253,15 +247,19 @@ def __init__( self.eqconst_value = np.hstack(eqconst_value) if eqconst_value else [] # Create the constraints (inequality and equality) + # TODO: for collocation method, keep track of linear vs nonlinear self.constraints = [] + if len(self.constraint_lb) != 0: self.constraints.append(sp.optimize.NonlinearConstraint( self._constraint_function, self.constraint_lb, self.constraint_ub)) + if len(self.eqconst_value) != 0: self.constraints.append(sp.optimize.NonlinearConstraint( self._eqconst_function, self.eqconst_value, self.eqconst_value)) + if self.collocation: # Add the collocation constraints colloc_zeros = np.zeros(sys.nstates * self.timepts.size) @@ -275,7 +273,7 @@ def __init__( # Process the initial guess self.initial_guess = self._process_initial_guess(initial_guess) - # Store states, input, used later to minimize re-computation + # Store states, input (used later to minimize re-computation) self.last_x = np.full(self.system.nstates, np.nan) self.last_coeffs = np.full(self.initial_guess.shape, np.nan) @@ -286,10 +284,14 @@ def __init__( # # Cost function # - # Given the input U = [u[0], ... u[N]], we need to compute the cost of - # the trajectory generated by that input. This means we have to - # simulate the system to get the state trajectory X = [x[0], ..., - # x[N]] and then compute the cost at each point: + # For collocation methods we are given the states and inputs at each + # time point and we use a trapezoidal approximation to compute the + # integral cost, then add on the terminal cost. + # + # For shooting methods, given the input U = [u[0], ... u[N]] we need to + # compute the cost of the trajectory generated by that input. This + # means we have to simulate the system to get the state trajectory X = + # [x[0], ..., x[N]] and then compute the cost at each point: # # cost = sum_k integral_cost(x[k], u[k]) + terminal_cost(x[N], u[N]) # @@ -362,11 +364,12 @@ def _cost_function(self, coeffs): # is called at each point along the trajectory and compared against the # upper and lower bounds. # - # * If the upper and lower bound for the constraint are identical, then we - # separate out the evaluation into two different constraints, which - # allows the SciPy optimizers to be more efficient (and stops them from - # generating a warning about mixed constraints). This is handled - # through the use of the `_eqconst_function` and `eqconst_value` members. + # * If the upper and lower bound for the constraint are identical, then + # we separate out the evaluation into two different constraints, which + # allows the SciPy optimizers to be more efficient (and stops them + # from generating a warning about mixed constraints). This is handled + # through the use of the `_eqconst_function` and `eqconst_value` + # members. # # In both cases, the constraint is specified at a single point, but we # extend this to apply to each point in the trajectory. This means @@ -378,16 +381,12 @@ def _cost_function(self, coeffs): # For collocation methods, we can directly evaluate the constraints at # the collocation points. # - # For shooting methods, we do this by creating a function that - # simulates the system dynamics and returns a vector of values - # corresponding to the value of the function at each time. The - # class initialization methods takes care of replicating the upper - # and lower bounds for each point in time so that the SciPy - # optimization algorithm can do the proper evaluation. - # - # In addition, since SciPy's optimization function does not allow us to - # pass arguments to the constraint function, we have to store the initial - # state prior to optimization and retrieve it here. + # For shooting methods, we do this by creating a function that simulates + # the system dynamics and returns a vector of values corresponding to + # the value of the function at each time. The class initialization + # methods takes care of replicating the upper and lower bounds for each + # point in time so that the SciPy optimization algorithm can do the + # proper evaluation. # def _constraint_function(self, coeffs): if self.log: @@ -437,8 +436,7 @@ def _constraint_function(self, coeffs): "_constraint_function elapsed time: %g", stop_time - start_time) - # Debugging information - if self.log: + # Debugging information logging.debug( "constraint values\n" + str(value) + "\n" + "lb, ub =\n" + str(self.constraint_lb) + "\n" + @@ -492,8 +490,7 @@ def _eqconst_function(self, coeffs): logging.info( "_eqconst_function elapsed time: %g", stop_time - start_time) - # Debugging information - if self.log: + # Debugging information logging.debug( "eqconst values\n" + str(value) + "\n" + "desired =\n" + str(self.eqconst_value)) @@ -515,7 +512,7 @@ def _collocation_constraint(self, coeffs): self.timepts[0], states[:, 0], inputs[:, 0]) continue - # M. Kelly, SIAM Review (2017), equation (3.2), i = k+1 + # From M. Kelly, SIAM Review (2017), equation (3.2), i = k+1 # x[k+1] - x[k] = 0.5 hk (f(x[k+1], u[k+1] + f(x[k], u[k])) fkp1 = self.system._rhs(t, states[:, i], inputs[:, i]) self.colloc_vals[:, i] = states[:, i] - states[:, i-1] - \ @@ -529,18 +526,20 @@ def _collocation_constraint(self, coeffs): return self.colloc_vals.reshape(-1) # - # Initial guess + # Initial guess processing # # We store an initial guess in case it is not specified later. Note # that create_mpc_iosystem() will reset the initial guess based on # the current state of the MPC controller. # - # Note: the initial guess is passed as the inputs at the given time + # The functions below are used to process the initial guess, which can + # either consist of an input only (for shooting methods) or an input + # and/or state trajectory (for collocaiton methods). + # + # Note: The initial input guess is passed as the inputs at the given time # vector. If a basis is specified, this is converted to coefficient # values (which are generally of smaller dimension). # - # TODO: figure out how to modify this for collocation - # def _process_initial_guess(self, initial_guess): # Sort out the input guess and the state guess if self.collocation and initial_guess is not None and \ @@ -583,6 +582,7 @@ def _process_initial_guess(self, initial_guess): # Reshape for use by scipy.optimize.minimize() return input_guess.reshape(-1) + # Utility function to broadcast an initial guess to the right shape def _broadcast_initial_guess(self, initial_guess, shape): # Convert to a 1D array (or higher) initial_guess = np.atleast_1d(initial_guess) @@ -604,11 +604,11 @@ def _broadcast_initial_guess(self, initial_guess, shape): # # Utility function to convert input vector to coefficient vector # - # Initially guesses from the user are passed as input vectors as a + # Initial guesses from the user are passed as input vectors as a # function of time, but internally we store the guess in terms of the # basis coefficients. We do this by solving a least squares problem to - # find coefficients that match the input functions at the time points (as - # much as possible, if the problem is under-determined). + # find coefficients that match the input functions at the time points + # (as much as possible, if the problem is under-determined). # def _inputs_to_coeffs(self, inputs): # If there is no basis function, just return inputs as coeffs @@ -638,6 +638,7 @@ def _inputs_to_coeffs(self, inputs): # Utility function to convert coefficient vector to input vector def _coeffs_to_inputs(self, coeffs): # TODO: vectorize + # TODO: use BasisFamily eval() method (if more efficient)? inputs = np.zeros((self.system.ninputs, self.timepts.size)) offset = 0 for i in range(self.system.ninputs): @@ -689,7 +690,7 @@ def _print_statistics(self, reset=True): # These internal functions return the states and inputs at the # collocation points given the ceofficient (optimizer state) vector. # They keep track of whether a shooting method is being used or not and - # simulate the dynamis of needed. + # simulate the dynamics if needed. # # Compute the states and inputs from the coefficients @@ -738,6 +739,7 @@ def _simulate_states(self, x0, inputs): if self.log: logging.debug( "input_output_response returned states\n" + str(states)) + return states # @@ -930,16 +932,6 @@ def __init__( ocp._print_statistics() print("* Final cost:", self.cost) - if return_states and inputs.shape[1] == ocp.timepts.shape[0]: - # Simulate the system if we need the state back - # TODO: this is probably not needed due to compute_states_inputs() - _, _, states = ct.input_output_response( - ocp.system, ocp.timepts, inputs, ocp.x, return_x=True, - solve_ivp_kwargs=ocp.solve_ivp_kwargs, t_eval=ocp.timepts) - ocp.system_simulations += 1 - else: - states = None - # Process data as a time response (with "outputs" = inputs) response = TimeResponseData( ocp.timepts, inputs, states, issiso=ocp.system.issiso(), @@ -1065,10 +1057,22 @@ def solve_ocp( 'optimal', 'return_x', kwargs, return_states, pop=True) # Process (legacy) method keyword - if kwargs.get('method') and method not in optimal_methods: - if kwargs.get('minimize_method'): - raise ValueError("'minimize_method' specified more than once") - kwargs['minimize_method'] = kwargs.pop('method') + if kwargs.get('method'): + method = kwargs.pop('method') + if method not in optimal_methods: + if kwargs.get('minimize_method'): + raise ValueError("'minimize_method' specified more than once") + warnings.warn( + "'method' parameter is deprecated; assuming minimize_method", + DeprecationWarning) + kwargs['minimize_method'] = method + else: + if kwargs.get('trajectory_method'): + raise ValueError("'trajectory_method' specified more than once") + warnings.warn( + "'method' parameter is deprecated; assuming trajectory_method", + DeprecationWarning) + kwargs['trajectory_method'] = method # Set up the optimal control problem ocp = OptimalControlProblem( diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 0aded3531..4fc90464a 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -494,12 +494,12 @@ def test_ocp_argument_errors(): # Unrecognized trajectory constraint type constraints = [(None, np.eye(3), [0, 0, 0], [0, 0, 0])] - with pytest.raises(TypeError, match="unknown constraint type"): + with pytest.raises(TypeError, match="unknown trajectory constraint type"): res = opt.solve_ocp( sys, time, x0, cost, trajectory_constraints=constraints) # Unrecognized terminal constraint type - with pytest.raises(TypeError, match="unknown constraint type"): + with pytest.raises(TypeError, match="unknown terminal constraint type"): res = opt.solve_ocp( sys, time, x0, cost, terminal_constraints=constraints) @@ -609,28 +609,28 @@ def final_point_eval(x, u): # Try passing and unknown constraint type final_point = [(None, final_point_eval, [0, 0], [0, 0])] - with pytest.raises(TypeError, match="unknown constraint type"): + with pytest.raises(TypeError, match="unknown terminal constraint type"): optctrl = opt.OptimalControlProblem( sys, time, cost, terminal_constraints=final_point) res = optctrl.compute_trajectory(x0, squeeze=True, return_x=True) @pytest.mark.parametrize( - "method, npts, initial_guess", [ - # ('shooting', 3, None), # doesn't converge - # ('shooting', 3, 'zero'), # doesn't converge - ('shooting', 3, 'u0'), # github issue #782 - # ('shooting', 3, 'input'), # precision loss - # ('shooting', 5, 'input'), # precision loss - # ('collocation', 3, 'u0'), # doesn't converge - ('collocation', 5, 'u0'), # from documenentation - ('collocation', 5, 'input'), - ('collocation', 10, 'input'), - ('collocation', 10, 'u0'), - ('collocation', 10, 'state'), - ('collocation', 20, 'state'), + "method, npts, initial_guess, fail", [ + ('shooting', 3, None, 'xfail'), # doesn't converge + ('shooting', 3, 'zero', 'xfail'), # doesn't converge + ('shooting', 3, 'u0', None), # github issue #782 + ('shooting', 3, 'input', 'endpoint'), # doesn't converge to optimal + ('shooting', 5, 'input', 'endpoint'), # doesn't converge to optimal + ('collocation', 3, 'u0', 'endpoint'), # doesn't converge to optimal + ('collocation', 5, 'u0', 'endpoint'), + ('collocation', 5, 'input', 'openloop'),# open loop sim fails + ('collocation', 10, 'input', None), + ('collocation', 10, 'u0', None), # from documenentation + ('collocation', 10, 'state', None), + ('collocation', 20, 'state', None), ]) -def test_optimal_doc(method, npts, initial_guess): +def test_optimal_doc(method, npts, initial_guess, fail): """Test optimal control problem from documentation""" def vehicle_update(t, x, u, params): # Get the parameters for the model @@ -698,25 +698,35 @@ def vehicle_output(t, x, u, params): # Solve the optimal control problem result = opt.solve_ocp( - vehicle, timepts, x0, traj_cost, trajectory_method=method, - # minimize_method='COBYLA', # SLSQP', - # constraints, + vehicle, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, initial_guess=initial_guess, + trajectory_method=method, + # minimize_method='COBYLA', # SLSQP', ) - # Make sure we got a successful result (or precision loss error) - assert result.success or result.status == 2 - - # Make sure the resulting trajectory generated a good solution - resp = ct.input_output_response( - vehicle, timepts, result.inputs, x0, - t_eval=np.linspace(0, Tf, 10)) - t, y = resp - - assert abs(y[0, 0] - x0[0]) < 0.01 - assert abs((y[1, 0] - x0[1]) / x0[1]) < 0.01 - assert abs(y[2, 0]) < 0.01 + if fail == 'xfail': + assert not result.success + pytest.xfail("optimization fails to converge") + elif fail == 'precision': + assert result.status == 2 + pytest.xfail("optimization precision not achieved") + else: + # Make sure the optimization was successful + assert result.success - assert abs((y[0, -1] - xf[0]) / xf[0]) < 0.12 - assert abs((y[1, -1] - xf[1]) / xf[1]) < 0.12 - assert abs(y[2, -1]) < 0.1 + # Make sure we started and stopped at the right spot + if fail == 'endpoint': + pytest.xfail("optimization does not converge to endpoint") + else: + np.testing.assert_almost_equal(result.states[:, 0], x0, decimal=4) + + # Simulate the trajectory to make sure it looks OK + resp = ct.input_output_response( + vehicle, timepts, result.inputs, x0, + t_eval=np.linspace(0, Tf, 10)) + t, y = resp + if fail == 'openloop': + with pytest.raises(AssertionError): + np.testing.assert_almost_equal(y[:,-1], xf, decimal=1) + else: + np.testing.assert_almost_equal(y[:,-1], xf, decimal=1) diff --git a/doc/optimal.rst b/doc/optimal.rst index 107373915..00e39c24f 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -215,8 +215,8 @@ moving from the point x = 0 m, y = -2 m, :math:`\theta` = 0 to the point x = 100 m, y = 2 m, :math:`\theta` = 0) over a period of 10 seconds and with a with a starting and ending velocity of 10 m/s:: - x0 = [0., -2., 0.]; u0 = [10., 0.] - xf = [100., 2., 0.]; uf = [10., 0.] + x0 = np.array([0., -2., 0.]); u0 = np.array([10., 0.]) + xf = np.array([100., 2., 0.]); uf = np.array([10., 0.]) Tf = 10 To set up the optimal control problem we design a cost function that diff --git a/doc/steering-optimal.png b/doc/steering-optimal.png index f847923b5f8f86f6901d2d60c95d714f36289f18..518de89a499fff9e76ebfd81d014774e636a44cb 100644 GIT binary patch literal 28691 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 QSVPJVePg{G9h<=a0(3Y8y8r+H diff --git a/examples/steering-optimal.py b/examples/steering-optimal.py index 5661e0f38..778ac3c25 100644 --- a/examples/steering-optimal.py +++ b/examples/steering-optimal.py @@ -57,7 +57,7 @@ def vehicle_output(t, x, u, params): # # Utility function to plot the results # -def plot_results(t, y, u, figure=None, yf=None): +def plot_lanechange(t, y, u, yf=None, figure=None): plt.figure(figure) # Plot the xy trajectory @@ -65,7 +65,7 @@ def plot_results(t, y, u, figure=None, yf=None): plt.plot(y[0], y[1]) plt.xlabel("x [m]") plt.ylabel("y [m]") - if yf: + if yf is not None: plt.plot(yf[0], yf[1], 'ro') # Plot the inputs as a function of time @@ -90,8 +90,8 @@ def plot_results(t, y, u, figure=None, yf=None): # # Initial and final conditions -x0 = [0., -2., 0.]; u0 = [10., 0.] -xf = [100., 2., 0.]; uf = [10., 0.] +x0 = np.array([0., -2., 0.]); u0 = np.array([10., 0.]) +xf = np.array([100., 2., 0.]); uf = np.array([10., 0.]) Tf = 10 # @@ -109,10 +109,13 @@ def plot_results(t, y, u, figure=None, yf=None): quad_cost = opt.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) # Define the time horizon (and spacing) for the optimization -horizon = np.linspace(0, Tf, 10, endpoint=True) +timepts = np.linspace(0, Tf, 20, endpoint=True) -# Provide an intial guess (will be extended to entire horizon) -bend_left = [10, 0.01] # slight left veer +# Provide an initial guess +straight_line = ( + np.array([x0 + (xf - x0) * time/Tf for time in timepts]).transpose(), + np.outer(u0, np.ones_like(timepts)) +) # Turn on debug level logging so that we can see what the optimizer is doing logging.basicConfig( @@ -122,9 +125,9 @@ def plot_results(t, y, u, figure=None, yf=None): # Compute the optimal control, setting step size for gradient calculation (eps) start_time = time.process_time() result1 = opt.solve_ocp( - vehicle, horizon, x0, quad_cost, initial_guess=bend_left, log=True, - minimize_method='trust-constr', - minimize_options={'finite_diff_rel_step': 0.01}, + vehicle, timepts, x0, quad_cost, initial_guess=straight_line, log=True, + # minimize_method='trust-constr', + # minimize_options={'finite_diff_rel_step': 0.01}, ) print("* Total time = %5g seconds\n" % (time.process_time() - start_time)) @@ -132,10 +135,15 @@ def plot_results(t, y, u, figure=None, yf=None): if 'PYCONTROL_TEST_EXAMPLES' in os.environ: assert result1.success -# Extract and plot the results (+ state trajectory) +# Plot the results from the optimization +plot_lanechange(timepts, result1.states, result1.inputs, xf, figure=1) +print("Final computed state: ", result1.states[:,-1]) + +# Simulate the system and see what happens t1, u1 = result1.time, result1.inputs -t1, y1 = ct.input_output_response(vehicle, horizon, u1, x0) -plot_results(t1, y1, u1, figure=1, yf=xf[0:2]) +t1, y1 = ct.input_output_response(vehicle, timepts, u1, x0) +plot_lanechange(t1, y1, u1, yf=xf[0:2], figure=1) +print("Final simulated state:", y1[:,-1]) # # Approach 2: input cost, input constraints, terminal cost @@ -147,7 +155,7 @@ def plot_results(t, y, u, figure=None, yf=None): # # We also set the solver explicitly. # -print("Approach 2: input cost and constraints plus terminal cost") +print("\nApproach 2: input cost and constraints plus terminal cost") # Add input constraint, input cost, terminal cost constraints = [ opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] @@ -159,22 +167,34 @@ def plot_results(t, y, u, figure=None, yf=None): level=logging.INFO, filename="./steering-terminal_cost.log", filemode='w', force=True) +# Use a straight line between initial and final position as initial guesss +input_guess = np.outer(u0, np.ones((1, timepts.size))) +state_guess = np.array([ + x0 + (xf - x0) * time/Tf for time in timepts]).transpose() +straight_line = (state_guess, input_guess) + # Compute the optimal control start_time = time.process_time() result2 = opt.solve_ocp( - vehicle, horizon, x0, traj_cost, constraints, terminal_cost=term_cost, - initial_guess=bend_left, log=True, - minimize_method='SLSQP', minimize_options={'eps': 0.01}) + vehicle, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + initial_guess=straight_line, log=True, + # minimize_method='SLSQP', minimize_options={'eps': 0.01} +) print("* Total time = %5g seconds\n" % (time.process_time() - start_time)) # If we are running CI tests, make sure we succeeded if 'PYCONTROL_TEST_EXAMPLES' in os.environ: assert result2.success -# Extract and plot the results (+ state trajectory) +# Plot the results from the optimization +plot_lanechange(timepts, result2.states, result2.inputs, xf, figure=2) +print("Final computed state: ", result2.states[:,-1]) + +# Simulate the system and see what happens t2, u2 = result2.time, result2.inputs -t2, y2 = ct.input_output_response(vehicle, horizon, u2, x0) -plot_results(t2, y2, u2, figure=2, yf=xf[0:2]) +t2, y2 = ct.input_output_response(vehicle, timepts, u2, x0) +plot_lanechange(t2, y2, u2, yf=xf[0:2], figure=2) +print("Final simulated state:", y2[:,-1]) # # Approach 3: terminal constraints @@ -183,7 +203,7 @@ def plot_results(t, y, u, figure=None, yf=None): # with a terminal *constraint* on the state. If a solution is found, # it guarantees we get to exactly the final state. # -print("Approach 3: terminal constraints") +print("\nApproach 3: terminal constraints") # Input cost and terminal constraints R = np.diag([1, 1]) # minimize applied inputs @@ -200,10 +220,10 @@ def plot_results(t, y, u, figure=None, yf=None): # Compute the optimal control start_time = time.process_time() result3 = opt.solve_ocp( - vehicle, horizon, x0, cost3, constraints, - terminal_constraints=terminal, initial_guess=bend_left, log=False, - solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2}, - minimize_method='trust-constr', + vehicle, timepts, x0, cost3, constraints, + terminal_constraints=terminal, initial_guess=straight_line, log=False, + # solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2}, + # minimize_method='trust-constr', ) print("* Total time = %5g seconds\n" % (time.process_time() - start_time)) @@ -211,10 +231,15 @@ def plot_results(t, y, u, figure=None, yf=None): if 'PYCONTROL_TEST_EXAMPLES' in os.environ: assert result3.success -# Extract and plot the results (+ state trajectory) +# Plot the results from the optimization +plot_lanechange(timepts, result3.states, result3.inputs, xf, figure=3) +print("Final computed state: ", result3.states[:,-1]) + +# Simulate the system and see what happens t3, u3 = result3.time, result3.inputs -t3, y3 = ct.input_output_response(vehicle, horizon, u3, x0) -plot_results(t3, y3, u3, figure=3, yf=xf[0:2]) +t3, y3 = ct.input_output_response(vehicle, timepts, u3, x0) +plot_lanechange(t3, y3, u3, yf=xf[0:2], figure=3) +print("Final simulated state:", y3[:,-1]) # # Approach 4: terminal constraints w/ basis functions @@ -224,20 +249,20 @@ def plot_results(t, y, u, figure=None, yf=None): # Here we parameterize the input by a set of 4 Bezier curves but solve # for a much more time resolved set of inputs. -print("Approach 4: Bezier basis") +print("\nApproach 4: Bezier basis") import control.flatsys as flat # Compute the optimal control start_time = time.process_time() result4 = opt.solve_ocp( - vehicle, horizon, x0, quad_cost, + vehicle, timepts, x0, quad_cost, constraints, terminal_constraints=terminal, - initial_guess=bend_left, - basis=flat.BezierFamily(4, T=Tf), + initial_guess=straight_line, + basis=flat.BezierFamily(6, T=Tf), # solve_ivp_kwargs={'method': 'RK45', 'atol': 1e-2, 'rtol': 1e-2}, - solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2}, - minimize_method='trust-constr', minimize_options={'disp': True}, + # solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2}, + # minimize_method='trust-constr', minimize_options={'disp': True}, log=False ) print("* Total time = %5g seconds\n" % (time.process_time() - start_time)) @@ -246,10 +271,15 @@ def plot_results(t, y, u, figure=None, yf=None): if 'PYCONTROL_TEST_EXAMPLES' in os.environ: assert result4.success -# Extract and plot the results (+ state trajectory) +# Plot the results from the optimization +plot_lanechange(timepts, result4.states, result4.inputs, xf, figure=4) +print("Final computed state: ", result3.states[:,-1]) + +# Simulate the system and see what happens t4, u4 = result4.time, result4.inputs -t4, y4 = ct.input_output_response(vehicle, horizon, u4, x0) -plot_results(t4, y4, u4, figure=4, yf=xf[0:2]) +t4, y4 = ct.input_output_response(vehicle, timepts, u4, x0) +plot_lanechange(t4, y4, u4, yf=xf[0:2], figure=4) +print("Final simulated state: ", y4[:,-1]) # If we are not running CI tests, display the results if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: From e0f71f4c743cc60a8076546a187a96ad0dd2c55d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 25 Nov 2022 22:01:45 -0800 Subject: [PATCH 0101/1025] update documentation + allow constraints in scipy.optimize form --- control/optimal.py | 97 +++++++++++++++++++++++------------ control/tests/optimal_test.py | 10 ++-- doc/optimal.rst | 12 ++--- 3 files changed, 74 insertions(+), 45 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 0478505bc..377a6972e 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -50,32 +50,33 @@ class OptimalControlProblem(): integral_cost : callable Function that returns the integral cost given the current state and input. Called as integral_cost(x, u). - trajectory_constraints : list of tuples, optional + trajectory_constraints : list of constraints, optional List of constraints that should hold at each point in the time - vector. Each element of the list should consist of a tuple with - first element given by :meth:`~scipy.optimize.LinearConstraint` or - :meth:`~scipy.optimize.NonlinearConstraint` and the remaining - elements of the tuple are the arguments that would be passed to - those functions. The constraints will be applied at each time - point along the trajectory. + vector. Each element of the list should be an object of type + :class:`~scipy.optimize.LinearConstraint` with arguments `(A, lb, + ub)` or :class:`~scipy.optimize.NonlinearConstraint` with arguments + `(fun, lb, ub)`. The constraints will be applied at each time point + along the trajectory. terminal_cost : callable, optional Function that returns the terminal cost given the current state and input. Called as terminal_cost(x, u). - initial_guess : 1D or 2D array_like - Initial inputs to use as a guess for the optimal input. The - inputs should either be a 2D vector of shape (ninputs, horizon) - or a 1D input of shape (ninputs,) that will be broadcast by - extension of the time axis. trajectory_method : string, optional Method to use for carrying out the optimization. Currently supported methods are 'shooting' and 'collocation' (continuous time only). The default value is 'shooting' for discrete time systems and 'collocation' for continuous time systems + initial_guess : (tuple of) 1D or 2D array_like + Initial states and/or inputs to use as a guess for the optimal + trajectory. For shooting methods, an array of inputs for each time + point should be specified. For collocation methods, the initial + guess is either the input vector or a tuple consisting guesses for + the state and the input. Guess should either be a 2D vector of + shape (ninputs, ntimepts) or a 1D input of shape (ninputs,) that + will be broadcast by extension of the time axis. log : bool, optional If `True`, turn on logging messages (using Python logging module). - Use ``logging.basicConfig`` to enable logging output (e.g., to a file). - kwargs : dict, optional - Additional parameters (passed to :func:`scipy.optimal.minimize`). + Use :py:func:`logging.basicConfig` to enable logging output + (e.g., to a file). Returns ------- @@ -83,11 +84,14 @@ class OptimalControlProblem(): Optimal control problem object, to be used in computing optimal controllers. - Additional parameters - --------------------- + Other Parameters + ---------------- basis : BasisFamily, optional Use the given set of basis functions for the inputs instead of setting the value of the input at each point in the timepts vector. + terminal_constraints : list of constraints, optional + List of constraints that should hold at the terminal point in time, + in the same form as `trajectory_constraints`. solve_ivp_method : str, optional Set the method used by :func:`scipy.integrate.solve_ivp`. solve_ivp_kwargs : str, optional @@ -182,20 +186,6 @@ def __init__( if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) - # Process trajectory constraints - def _process_constraints(constraint_list, name): - if isinstance(constraint_list, tuple): - constraint_list = [constraint_list] - elif not isinstance(constraint_list, list): - raise TypeError(f"{name} constraints must be a list") - - # Make sure that we recognize all of the constraint types - for ctype, fun, lb, ub in constraint_list: - if not ctype in [opt.LinearConstraint, opt.NonlinearConstraint]: - raise TypeError(f"unknown {name} constraint type {ctype}") - - return constraint_list - self.trajectory_constraints = _process_constraints( trajectory_constraints, "trajectory") self.terminal_constraints = _process_constraints( @@ -1017,9 +1007,6 @@ def solve_ocp( If True, assume that 2D input arrays are transposed from the standard format. Used to convert MATLAB-style inputs to our format. - kwargs : dict, optional - Additional parameters (passed to :func:`scipy.optimal.minimize`). - Returns ------- res : OptimalControlResult @@ -1456,3 +1443,45 @@ def _evaluate_output_range_constraint(x, u): # Return a nonlinear constraint object based on the polynomial return (opt.NonlinearConstraint, _evaluate_output_range_constraint, lb, ub) + +# +# Utility functions +# + +# +# Process trajectory constraints +# +# Constraints were originally specified as a tuple with the type of +# constraint followed by the arguments. However, they are now specified +# directly as SciPy constraint objects. +# +# The _process_constraints() function will covert everything to a consistent +# internal representation (currently a tuple with the constraint type as the +# first element. +# +def _process_constraints(clist, name): + if isinstance( + clist, (tuple, opt.LinearConstraint, opt.NonlinearConstraint)): + clist = [clist] + elif not isinstance(clist, list): + raise TypeError(f"{name} constraints must be a list") + + # Process individual list elements + constraint_list = [] + for constraint in clist: + if isinstance(constraint, tuple): + # Original style of constraint + ctype, fun, lb, ub = constraint + if not ctype in [opt.LinearConstraint, opt.NonlinearConstraint]: + raise TypeError(f"unknown {name} constraint type {ctype}") + constraint_list.append(constraint) + elif isinstance(constraint, opt.LinearConstraint): + constraint_list.append( + (opt.LinearConstraint, constraint.A, + constraint.lb, constraint.ub)) + elif isinstance(constraint, opt.NonlinearConstraint): + constraint_list.append( + (opt.NonlinearConstraint, constraint.fun, + constraint.lb, constraint.ub)) + + return constraint_list diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 4fc90464a..c76859dfc 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -64,7 +64,7 @@ def test_finite_horizon_simple(method): # State and input constraints constraints = [ - (sp.optimize.LinearConstraint, np.eye(3), [-5, -5, -1], [5, 5, 1]), + sp.optimize.LinearConstraint(np.eye(3), [-5, -5, -1], [5, 5, 1]), ] # Quadratic state and input penalty @@ -148,7 +148,7 @@ def test_discrete_lqr(): # Add state and input constraints trajectory_constraints = [ - (sp.optimize.LinearConstraint, np.eye(3), [-5, -5, -.5], [5, 5, 0.5]), + sp.optimize.LinearConstraint(np.eye(3), [-5, -5, -.5], [5, 5, 0.5]), ] # Re-solve @@ -461,7 +461,7 @@ def test_ocp_argument_errors(): # State and input constraints constraints = [ - (sp.optimize.LinearConstraint, np.eye(3), [-5, -5, -1], [5, 5, 1]), + sp.optimize.LinearConstraint(np.eye(3), [-5, -5, -1], [5, 5, 1]), ] # Quadratic state and input penalty @@ -522,7 +522,7 @@ def test_optimal_basis_simple(basis): # State and input constraints constraints = [ - (sp.optimize.LinearConstraint, np.eye(3), [-5, -5, -1], [5, 5, 1]), + sp.optimize.LinearConstraint(np.eye(3), [-5, -5, -1], [5, 5, 1]), ] # Quadratic state and input penalty @@ -594,7 +594,7 @@ def test_equality_constraints(): def final_point_eval(x, u): return x final_point = [ - (sp.optimize.NonlinearConstraint, final_point_eval, [0, 0], [0, 0])] + sp.optimize.NonlinearConstraint(final_point_eval, [0, 0], [0, 0])] optctrl = opt.OptimalControlProblem( sys, time, cost, terminal_constraints=final_point) diff --git a/doc/optimal.rst b/doc/optimal.rst index 00e39c24f..3033b38fc 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -125,16 +125,16 @@ parameter can be used to specify a cost function for the final point in the trajectory. The `constraints` parameter is a list of constraints similar to that used by -the :func:`scipy.optimize.minimize` function. Each constraint is a tuple of -one of the following forms:: +the :func:`scipy.optimize.minimize` function. Each constraint is specified +using one of the following forms:: - (LinearConstraint, A, lb, ub) - (NonlinearConstraint, f, lb, ub) + LinearConstraint(A, lb, ub) + NonlinearConstraint(f, lb, ub) For a linear constraint, the 2D array `A` is multiplied by a vector consisting of the current state `x` and current input `u` stacked -vertically, then compared with the upper and lower bound. This constrain is -satisfied if +vertically, then compared with the upper and lower bound. This constraint +is satisfied if .. code:: python From 172cb1a0f40afac5ade00f6eedc60f852d4cd75b Mon Sep 17 00:00:00 2001 From: Tadashi Date: Sat, 26 Nov 2022 23:29:37 +0100 Subject: [PATCH 0102/1025] Update optimal.rst Fixed typo --- doc/optimal.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/optimal.rst b/doc/optimal.rst index bb952e9cc..d161b77ad 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -283,7 +283,7 @@ If you are getting errors when solving optimal control problems or your solutions do not seem close to optimal, here are a few things to try: * Less is more: try using a smaller number of time points in your - optimiation. The default optimal control problem formulation uses the + optimization. The default optimal control problem formulation uses the value of the inputs at each time point as a free variable and this can generate a large number of parameters quickly. Often you can find very good solutions with a small number of free variables (the example above From dd5e42d16e81e5a1e30899f8bf277ee85282bf91 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 26 Nov 2022 17:08:45 -0800 Subject: [PATCH 0103/1025] add benchmarks for shooting vs collocation --- benchmarks/optimal_bench.py | 38 ++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/benchmarks/optimal_bench.py b/benchmarks/optimal_bench.py index a424c7827..997b5a241 100644 --- a/benchmarks/optimal_bench.py +++ b/benchmarks/optimal_bench.py @@ -35,6 +35,7 @@ 'COBYLA': ('COBYLA', {}), } + # Utility function to create a basis of a given size def get_basis(name, size, Tf): if name == 'poly': @@ -43,14 +44,13 @@ def get_basis(name, size, Tf): basis = fs.BezierFamily(size, T=Tf) elif name == 'bspline': basis = fs.BSplineFamily([0, Tf/2, Tf], size) + else: + basis = None return basis -# -# Optimal trajectory generation with linear quadratic cost -# - -def time_optimal_lq_basis(basis_name, basis_size, npoints): +# Assess performance as a function of basis type and size +def time_optimal_lq_basis(basis_name, basis_size, npoints, method): # Create a sufficiently controllable random system to control ntrys = 20 while ntrys > 0: @@ -90,18 +90,20 @@ def time_optimal_lq_basis(basis_name, basis_size, npoints): res = opt.solve_ocp( sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, - basis=basis, + basis=basis, trajectory_method=method, ) # Only count this as a benchmark if we converged assert res.success # Parameterize the test against different choices of integrator and minimizer -time_optimal_lq_basis.param_names = ['basis', 'size', 'npoints'] +time_optimal_lq_basis.param_names = ['basis', 'size', 'npoints', 'method'] time_optimal_lq_basis.params = ( - ['poly', 'bezier', 'bspline'], [8, 10, 12], [5, 10, 20]) + [None, 'poly', 'bezier', 'bspline'], + [4, 8], [5, 10], ['shooting', 'collocation']) -def time_optimal_lq_methods(integrator_name, minimizer_name): +# Assess performance as a function of optimization and integration methods +def time_optimal_lq_methods(integrator_name, minimizer_name, method): # Get the integrator and minimizer parameters to use integrator = integrator_table[integrator_name] minimizer = minimizer_table[minimizer_name] @@ -134,17 +136,20 @@ def time_optimal_lq_methods(integrator_name, minimizer_name): sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, solve_ivp_method=integrator[0], solve_ivp_kwargs=integrator[1], minimize_method=minimizer[0], minimize_options=minimizer[1], + trajectory_method=method, ) # Only count this as a benchmark if we converged assert res.success # Parameterize the test against different choices of integrator and minimizer -time_optimal_lq_methods.param_names = ['integrator', 'minimizer'] +time_optimal_lq_methods.param_names = ['integrator', 'minimizer', 'method'] time_optimal_lq_methods.params = ( - ['RK23', 'RK45', 'LSODA'], ['trust', 'SLSQP', 'COBYLA']) + ['RK23', 'RK45', 'LSODA'], ['trust', 'SLSQP', 'COBYLA'], + ['shooting', 'collocation']) -def time_optimal_lq_size(nstates, ninputs, npoints): +# Assess performance as a function system size +def time_optimal_lq_size(nstates, ninputs, npoints, method): # Create a sufficiently controllable random system to control ntrys = 20 while ntrys > 0: @@ -181,19 +186,18 @@ def time_optimal_lq_size(nstates, ninputs, npoints): res = opt.solve_ocp( sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, + trajectory_method=method, ) # Only count this as a benchmark if we converged assert res.success # Parameterize the test against different choices of integrator and minimizer -time_optimal_lq_size.param_names = ['nstates', 'ninputs', 'npoints'] -time_optimal_lq_size.params = ([1, 2, 4], [1, 2, 4], [5, 10, 20]) +time_optimal_lq_size.param_names = ['nstates', 'ninputs', 'npoints', 'method'] +time_optimal_lq_size.params = ( + [2, 4], [2, 4], [10, 20], ['shooting', 'collocation']) -# # Aircraft MPC example (from multi-parametric toolbox) -# - def time_discrete_aircraft_mpc(minimizer_name): # model of an aircraft discretized with 0.2s sampling time # Source: https://www.mpt3.org/UI/RegulationProblem From 3a554b5070661d6b9b1554ee0b716afa30f9b390 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 30 Nov 2022 12:09:42 -0800 Subject: [PATCH 0104/1025] docstring fixes: standardize description for lyap and care to be consistent with other functions, fix formatting in a few other functions. add references to NonlinearIOSystem and __call__ and remove evalfr --- control/dtime.py | 13 +++++-------- control/iosys.py | 19 ++++++++----------- control/mateqn.py | 17 ++++++++++++----- control/sisotool.py | 8 ++++---- control/statesp.py | 2 +- doc/control.rst | 11 ++++++----- 6 files changed, 36 insertions(+), 34 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index 9dddd86a3..18584fc6d 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -84,14 +84,6 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, copy_names : bool, Optional If True, copy the names of the input signals, output signals, and states to the sampled system. - - Returns - ------- - sysd : linsys - Discrete time system, with sampling rate Ts - - Additional Parameters - --------------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional system inputs are used. See :class:`NamedIOSystem` for more @@ -102,6 +94,11 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, Description of the system states. Same format as `inputs`. Only available if the system is :class:`StateSpace`. + Returns + ------- + sysd : linsys + Discrete time system, with sampling rate Ts + Notes ----- See :meth:`StateSpace.sample` or :meth:`TransferFunction.sample` for diff --git a/control/iosys.py b/control/iosys.py index cbbd4cecc..132c074d3 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2203,15 +2203,6 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): copy_names : bool, Optional If True, Copy the names of the input signals, output signals, and states to the linearized system. - - Returns - ------- - ss_sys : LinearIOSystem - The linearization of the system, as a :class:`~control.LinearIOSystem` - object (which is also a :class:`~control.StateSpace` object. - - Additional Parameters - --------------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional system inputs are used. See :class:`NamedIOSystem` for more @@ -2221,6 +2212,12 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): states : int, list of str, or None, optional Description of the system states. Same format as `inputs`. + Returns + ------- + ss_sys : LinearIOSystem + The linearization of the system, as a :class:`~control.LinearIOSystem` + object (which is also a :class:`~control.StateSpace` object. + """ if not isinstance(sys, InputOutputSystem): raise TypeError("Can only linearize InputOutputSystem types") @@ -2716,8 +2713,8 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, :func:`~control.summing_block` function and the ability to automatically interconnect signals with the same names: - >>> P = control.tf2io(control.tf(1, [1, 0]), inputs='u', outputs='y') - >>> C = control.tf2io(control.tf(10, [1, 1]), inputs='e', outputs='u') + >>> P = control.tf(1, [1, 0], inputs='u', outputs='y') + >>> C = control.tf(10, [1, 1], inputs='e', outputs='u') >>> sumblk = control.summing_junction(inputs=['r', '-y'], output='e') >>> T = control.interconnect([P, C, sumblk], inputs='r', outputs='y') diff --git a/control/mateqn.py b/control/mateqn.py index 23ae1e64e..1cf2e65d9 100644 --- a/control/mateqn.py +++ b/control/mateqn.py @@ -88,7 +88,9 @@ def sb03md(n, C, A, U, dico, job='X', fact='N', trana='N', ldwork=None): def lyap(A, Q, C=None, E=None, method=None): - """X = lyap(A, Q) solves the continuous-time Lyapunov equation + """Solves the continuous-time Lyapunov equation + + X = lyap(A, Q) solves :math:`A X + X A^T + Q = 0` @@ -217,7 +219,9 @@ def lyap(A, Q, C=None, E=None, method=None): def dlyap(A, Q, C=None, E=None, method=None): - """dlyap(A, Q) solves the discrete-time Lyapunov equation + """Solves the discrete-time Lyapunov equation + + X = dlyap(A, Q) solves :math:`A X A^T - X + Q = 0` @@ -348,8 +352,9 @@ def dlyap(A, Q, C=None, E=None, method=None): def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, A_s="A", B_s="B", Q_s="Q", R_s="R", S_s="S", E_s="E"): - """X, L, G = care(A, B, Q, R=None) solves the continuous-time - algebraic Riccati equation + """Solves the continuous-time algebraic Riccati equation + + X, L, G = care(A, B, Q, R=None) solves :math:`A^T X + X A - X B R^{-1} B^T X + Q = 0` @@ -505,9 +510,11 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, def dare(A, B, Q, R, S=None, E=None, stabilizing=True, method=None, A_s="A", B_s="B", Q_s="Q", R_s="R", S_s="S", E_s="E"): - """X, L, G = dare(A, B, Q, R) solves the discrete-time algebraic Riccati + """Solves the discrete-time algebraic Riccati equation + X, L, G = dare(A, B, Q, R) solves + :math:`A^T X A - X - A^T X B (B^T X B + R)^{-1} B^T X A + Q = 0` where A and Q are square matrices of the same dimension. Further, Q diff --git a/control/sisotool.py b/control/sisotool.py index 781fabf40..598bdcf09 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -209,10 +209,6 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', C_f = Kp + Ki/s + Kd*s/(tau*s + 1). - If `plant` is a discrete-time system, then the proportional, integral, and - derivative terms are given instead by Kp, Ki*dt/2*(z+1)/(z-1), and - Kd/dt*(z-1)/z, respectively. - :: ------> C_ff ------ d @@ -224,6 +220,10 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', | ----- C_b <-------| --------------------------------- + If `plant` is a discrete-time system, then the proportional, integral, and + derivative terms are given instead by Kp, Ki*dt/2*(z+1)/(z-1), and + Kd/dt*(z-1)/z, respectively. + It is also possible to move the derivative term into the feedback path `C_b` using `derivative_in_feedback_path=True`. This may be desired to avoid that the plant is subject to an impulse function when the reference diff --git a/control/statesp.py b/control/statesp.py index 7843cb33f..47885ae3d 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -807,7 +807,7 @@ def __rdiv__(self, other): "StateSpace.__rdiv__ is not implemented yet.") def __call__(self, x, squeeze=None, warn_infinite=True): - """Evaluate system's transfer function at complex frequency. + """Evaluate system's frequency response at complex frequencies. Returns the complex frequency response `sys(x)` where `x` is `s` for continuous-time systems and `z` for discrete-time systems. diff --git a/doc/control.rst b/doc/control.rst index 172790f83..14d47af58 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -20,6 +20,8 @@ System creation frd rss drss + NonlinearIOSystem + System interconnections ======================= @@ -32,9 +34,8 @@ System interconnections negate parallel series + interconnect -See also the :ref:`iosys-module` module, which can be used to create and -interconnect nonlinear input/output systems. Frequency domain plotting ========================= @@ -78,8 +79,9 @@ Control system analysis dcgain describing_function - evalfr - freqresp + frequency_response + TransferFunction.__call__ + StateSpace.__call__ get_input_ff_index get_output_fb_index ispassive @@ -141,7 +143,6 @@ Nonlinear system support describing_function find_eqpt - interconnect linearize input_output_response ss2io From 11d935048c71560dc91a0b4eac33aca7e175b203 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 30 Nov 2022 15:01:32 -0800 Subject: [PATCH 0105/1025] a few more fixes to sys.sample --- control/dtime.py | 2 +- control/iosys.py | 2 +- control/statesp.py | 14 ++++++-------- control/xferfcn.py | 15 ++++++--------- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index 18584fc6d..e242923fb 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -86,7 +86,7 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, signals, and states to the sampled system. inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional - system inputs are used. See :class:`NamedIOSystem` for more + system inputs are used. See :class:`InputOutputSystem` for more information. outputs : int, list of str or None, optional Description of the system outputs. Same format as `inputs`. diff --git a/control/iosys.py b/control/iosys.py index 132c074d3..4f9c674c0 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2205,7 +2205,7 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): states to the linearized system. inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional - system inputs are used. See :class:`NamedIOSystem` for more + system inputs are used. See :class:`InputOutputSystem` for more information. outputs : int, list of str or None, optional Description of the system outputs. Same format as `inputs`. diff --git a/control/statesp.py b/control/statesp.py index 47885ae3d..80b4601f2 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1338,14 +1338,6 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, copy_names : bool, Optional If True, copy the names of the input signals, output signals, and states to the sampled system. - - Returns - ------- - sysd : StateSpace - Discrete-time system, with sampling rate Ts - - Additional Parameters - --------------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional system inputs are used. See :class:`InputOutputSystem` for more @@ -1355,6 +1347,11 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, states : int, list of str, or None, optional Description of the system states. Same format as `inputs`. + Returns + ------- + sysd : StateSpace + Discrete-time system, with sampling rate Ts + Notes ----- Uses :func:`scipy.signal.cont2discrete` @@ -1520,6 +1517,7 @@ def output(self, t, x, u=None, params=None): # TODO: add discrete time check +# TODO: copy signal names def _convert_to_statespace(sys): """Convert a system to state space form (if needed). diff --git a/control/xferfcn.py b/control/xferfcn.py index 84188a63f..d7de8fedd 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1130,21 +1130,18 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, copy_names : bool, Optional If True, copy the names of the input signals, output signals, and states to the sampled system. - - Returns - ------- - sysd : TransferFunction system - Discrete-time system, with sample period Ts - - Additional Parameters - --------------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional - system inputs are used. See :class:`NamedIOSystem` for more + system inputs are used. See :class:`InputOutputSystem` for more information. outputs : int, list of str or None, optional Description of the system outputs. Same format as `inputs`. + Returns + ------- + sysd : TransferFunction system + Discrete-time system, with sample period Ts + Notes ----- 1. Available only for SISO systems From bf50ded659ec285a69d95699aa9c4bfba482acc0 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 2 Dec 2022 09:28:34 -0800 Subject: [PATCH 0106/1025] mention lqe and dlqe in matlab module, reorder so that eg lqr and dlqr appear sequentially --- doc/control.rst | 6 ++++-- doc/matlab.rst | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/control.rst b/doc/control.rst index 14d47af58..5ac5102f7 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -116,10 +116,10 @@ Control system synthesis acker create_statefbk_iosystem - dlqr h2syn hinfsyn lqr + dlqr mixsyn place rootlocus_pid_designer @@ -157,8 +157,8 @@ Stochastic system support correlation create_estimator_iosystem - dlqe lqe + dlqe white_noise .. _utility-and-conversions: @@ -194,3 +194,5 @@ Utility functions and conversions use_fbs_defaults use_matlab_defaults use_numpy_matrix + + diff --git a/doc/matlab.rst b/doc/matlab.rst index c14a67e1f..eac1d157a 100644 --- a/doc/matlab.rst +++ b/doc/matlab.rst @@ -86,6 +86,9 @@ Compensator design sisotool place lqr + dlqr + lqe + dlqe State-space (SS) models ======================= From 385405086bc0010e634c77b877240814c4bd11b7 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 7 Dec 2022 11:20:53 -0800 Subject: [PATCH 0107/1025] allow sisotool to receive kvect as a singleton rather than always an array --- control/sisotool.py | 4 ++++ control/tests/sisotool_test.py | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/control/sisotool.py b/control/sisotool.py index 781fabf40..7f5e2fc69 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -9,6 +9,7 @@ from .bdalg import append, connect from .iosys import tf2io, ss2io, summing_junction, interconnect from control.statesp import _convert_to_statespace, StateSpace +import numpy as np import matplotlib.pyplot as plt import warnings @@ -101,6 +102,9 @@ def sisotool(sys, kvect=None, xlim_rlocus=None, ylim_rlocus=None, 'margins': margins_bode } + # make sure kvect is an array + if kvect is not None and ~hasattr(kvect, '__len__'): + kvect = np.atleast_1d(kvect) # First time call to setup the bode and step response plots _SisotoolUpdate(sys, fig, 1 if kvect is None else kvect[0], bode_plot_params) diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index a1f468eea..beb7ee098 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -136,6 +136,16 @@ def test_sisotool_tvect(self, tsys): bode_plot_params=dict(), tvect=tvect) assert_array_almost_equal(tvect, ax_step.lines[0].get_data()[0]) + @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, + reason="Requires the zoom toolbar") + def test_sisotool_kvect(self, tsys): + # test supply kvect + kvect = np.linspace(0, 1, 10) + # check if it can receive an array + sisotool(tsys, kvect=kvect) + # check if it can receive a singleton + sisotool(tsys, kvect=1) + def test_sisotool_mimo(self, sys222, sys221): # a 2x2 should not raise an error: From 6ca56e949a8acfc2ccc532d9445e9c829d8c3d96 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com> Date: Wed, 7 Dec 2022 16:05:12 -0800 Subject: [PATCH 0108/1025] Update README.rst In response to #792 : * Added citation information and article link to readme * Mention nonlinear, hinfsyn, and interconnect functionality in readme --- README.rst | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/README.rst b/README.rst index 7e2058293..58dd901de 100644 --- a/README.rst +++ b/README.rst @@ -31,20 +31,17 @@ Try out the examples in the examples folder using the binder service. :target: https://mybinder.org/v2/gh/python-control/python-control/HEAD - - - Features -------- - Linear input/output systems in state-space and frequency domain -- Block diagram algebra: serial, parallel, and feedback interconnections +- Block diagram algebra: serial, parallel, feedback, and other interconnections - Time response: initial, step, impulse -- Frequency response: Bode and Nyquist plots -- Control analysis: stability, reachability, observability, stability margins -- Control design: eigenvalue placement, linear quadratic regulator +- Frequency response: Bode, Nyquist, and Nichols plots +- Control analysis: stability, reachability, observability, stability margins, root locus +- Control design: eigenvalue placement, linear quadratic regulator, sisotool, hinfsyn - Estimator design: linear quadratic estimator (Kalman filter) - +- Nonlinear systems: optimization-based control, describing functions, differential flatness Links ===== @@ -105,6 +102,22 @@ from the github repository or archive, unpack, and run from within the toplevel `python-control` directory:: pip install . + +Article and Citation Information +================================ + +A `2021 article `_ about the library is available on IEEE Explore. If the Python Control Systems Library helped you in your research, please cite:: + + @inproceedings{python-control2021, + title={The python control systems library (python-control)}, + author={Fuller, Sawyer and Greiner, Ben and Moore, Jason and Murray, Richard and van Paassen, Ren{\'e} and Yorke, Rory}, + booktitle={2021 60th IEEE Conference on Decision and Control (CDC)}, + pages={4875--4881}, + year={2021}, + organization={IEEE} + } + +or the GitHub site: https://github.com/python-control/python-control Development From feb901033f095038054f4869fdb7bf14ae225d3b Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 9 Dec 2022 10:03:18 -0800 Subject: [PATCH 0109/1025] improved docstring for kvect in sisotool --- control/matlab/wrappers.py | 2 +- control/sisotool.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 8eafdaad2..4f9d97e31 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -117,7 +117,7 @@ def nyquist(*args, **kwargs): def _parse_freqplot_args(*args): """Parse arguments to frequency plot routines (bode, nyquist)""" syslist, plotstyle, omega, other = [], [], None, {} - i = 0; + i = 0 while i < len(args): # Check to see if this is a system of some sort if issys(args[i]): diff --git a/control/sisotool.py b/control/sisotool.py index 7f5e2fc69..d4d4b9d68 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -37,8 +37,13 @@ def sisotool(sys, kvect=None, xlim_rlocus=None, ylim_rlocus=None, the step response. This allows you to see the step responses of more complex systems, for example, systems with a feedforward path into the plant or in which the gain appears in the feedback path. - kvect : list or ndarray, optional - List of gains to use for plotting root locus + kvect : float or array_like, optional + List of gains to use for plotting root locus. If only one value is + provided, the set of gains in the root locus plot is calculated + automatically, and kvect is interpreted as if it was the value of + the gain associated with the first mouse click on the root locus + plot. This is useful if it is not possible to use interactive + plotting. xlim_rlocus : tuple or list, optional control of x-axis range, normally with tuple (see :doc:`matplotlib:api/axes_api`). From e808adb08d6d85d24584d807e9d9a3e574068090 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 9 Dec 2022 11:25:33 -0800 Subject: [PATCH 0110/1025] docstring improvements, pep8 cleanup, more descriptive names for internal variables --- control/rlocus.py | 69 ++++++++++++++++++++++----------------------- control/sisotool.py | 23 +++++++++------ 2 files changed, 48 insertions(+), 44 deletions(-) diff --git a/control/rlocus.py b/control/rlocus.py index 9d531de94..facb9251a 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -88,7 +88,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, ---------- sys : LTI object Linear input/output systems (SISO only, for now). - kvect : list or ndarray, optional + kvect : float or array_like, optional List of gains to use in computing diagram. xlim : tuple or list, optional Set limits of x axis, normally with tuple @@ -110,10 +110,11 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, Returns ------- - rlist : ndarray - Computed root locations, given as a 2D array - klist : ndarray or list - Gains used. Same as klist keyword argument if provided. + roots : ndarray + Closed-loop root locations, arranged in which each row corresponds + to a gain in gains + gains : ndarray + Gains used. Same as kvect keyword argument if provided. Notes ----- @@ -145,10 +146,12 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, print_gain = config._get_param( 'rlocus', 'print_gain', print_gain, _rlocus_defaults) - sys_loop = sys if sys.issiso() else sys[0, 0] + if not sys.issiso(): + raise ControlMIMONotImplemented( + 'sys must be single-input single-output (SISO)') # Convert numerator and denominator to polynomials if they aren't - (nump, denp) = _systopoly1d(sys_loop) + (nump, denp) = _systopoly1d(sys) # if discrete-time system and if xlim and ylim are not given, # that we a view of the unit circle @@ -158,12 +161,13 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, xlim = (-1.3, 1.3) if kvect is None: - start_mat = _RLFindRoots(nump, denp, [1]) - kvect, mymat, xlim, ylim = _default_gains(nump, denp, xlim, ylim) + start_roots = _RLFindRoots(nump, denp, 1) + kvect, root_array, xlim, ylim = _default_gains(nump, denp, xlim, ylim) else: - start_mat = _RLFindRoots(nump, denp, [kvect[0]]) - mymat = _RLFindRoots(nump, denp, kvect) - mymat = _RLSortRoots(mymat) + kvect = np.atleast_1d(kvect) + start_roots = _RLFindRoots(nump, denp, kvect[0]) + root_array = _RLFindRoots(nump, denp, kvect) + root_array = _RLSortRoots(root_array) # Check for sisotool mode sisotool = False if 'sisotool' not in kwargs else True @@ -190,10 +194,10 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, ax_rlocus=fig.axes[0], plotstr=plotstr)) elif sisotool: fig.axes[1].plot( - [root.real for root in start_mat], - [root.imag for root in start_mat], + [root.real for root in start_roots], + [root.imag for root in start_roots], marker='s', markersize=6, zorder=20, color='k', label='gain_point') - s = start_mat[0][0] + s = start_roots[0][0] if isdtime(sys, strict=True): zeta = -np.cos(np.angle(np.log(s))) else: @@ -229,7 +233,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, ax.plot(real(zeros), imag(zeros), 'o') # Now plot the loci - for index, col in enumerate(mymat.T): + for index, col in enumerate(root_array.T): ax.plot(real(col), imag(col), plotstr, label='rootlocus') # Set up plot axes and labels @@ -257,7 +261,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, (0, 0), radius=1.0, linestyle=':', edgecolor='k', linewidth=0.75, fill=False, zorder=-20)) - return mymat, kvect + return root_array, kvect def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): @@ -509,28 +513,27 @@ def _RLFindRoots(nump, denp, kvect): """Find the roots for the root locus.""" # Convert numerator and denominator to polynomials if they aren't roots = [] - for k in np.array(kvect, ndmin=1): + for k in np.atleast_1d(kvect): curpoly = denp + k * nump curroots = curpoly.r if len(curroots) < denp.order: # if I have fewer poles than open loop, it is because i have # one at infinity - curroots = np.insert(curroots, len(curroots), np.inf) + curroots = np.append(curroots, np.inf) curroots.sort() roots.append(curroots) - mymat = row_stack(roots) - return mymat + return row_stack(roots) -def _RLSortRoots(mymat): - """Sort the roots from sys._RLFindRoots, so that the root +def _RLSortRoots(roots): + """Sort the roots from _RLFindRoots, so that the root locus doesn't show weird pseudo-branches as roots jump from one branch to another.""" - sorted = zeros_like(mymat) - for n, row in enumerate(mymat): + sorted = zeros_like(roots) + for n, row in enumerate(roots): if n == 0: sorted[n, :] = row else: @@ -539,7 +542,7 @@ def _RLSortRoots(mymat): # previous row available = list(range(len(prevrow))) for elem in row: - evect = elem-prevrow[available] + evect = elem - prevrow[available] ind1 = abs(evect).argmin() ind = available.pop(ind1) sorted[n, ind] = elem @@ -549,9 +552,7 @@ def _RLSortRoots(mymat): def _RLZoomDispatcher(event, sys, ax_rlocus, plotstr): """Rootlocus plot zoom dispatcher""" - sys_loop = sys if sys.issiso() else sys[0,0] - - nump, denp = _systopoly1d(sys_loop) + nump, denp = _systopoly1d(sys) xlim, ylim = ax_rlocus.get_xlim(), ax_rlocus.get_ylim() kvect, mymat, xlim, ylim = _default_gains( @@ -583,9 +584,7 @@ def _RLClickDispatcher(event, sys, fig, ax_rlocus, plotstr, sisotool=False, def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool=False): """Display root-locus gain feedback point for clicks on root-locus plot""" - sys_loop = sys if sys.issiso() else sys[0,0] - - (nump, denp) = _systopoly1d(sys_loop) + (nump, denp) = _systopoly1d(sys) xlim = ax_rlocus.get_xlim() ylim = ax_rlocus.get_ylim() @@ -596,10 +595,10 @@ def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool=False): # Catch type error when event click is in the figure but not in an axis try: s = complex(event.xdata, event.ydata) - K = -1. / sys_loop(s) - K_xlim = -1. / sys_loop( + K = -1. / sys(s) + K_xlim = -1. / sys( complex(event.xdata + 0.05 * abs(xlim[1] - xlim[0]), event.ydata)) - K_ylim = -1. / sys_loop( + K_ylim = -1. / sys( complex(event.xdata, event.ydata + 0.05 * abs(ylim[1] - ylim[0]))) except TypeError: diff --git a/control/sisotool.py b/control/sisotool.py index d4d4b9d68..018514d31 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -29,14 +29,19 @@ def sisotool(sys, kvect=None, xlim_rlocus=None, ylim_rlocus=None, sys : LTI object Linear input/output systems. If sys is SISO, use the same system for the root locus and step response. If it is desired to - see a different step response than feedback(K*loop,1), sys can be - provided as a two-input, two-output system (e.g. by using - :func:`bdgalg.connect' or :func:`iosys.interconnect`). Sisotool - inserts the negative of the selected gain K between the first output - and first input and uses the second input and output for computing - the step response. This allows you to see the step responses of more - complex systems, for example, systems with a feedforward path into the - plant or in which the gain appears in the feedback path. + see a different step response than feedback(K*sys,1), such as a + disturbance response, sys can be provided as a two-input, two-output + system (e.g. by using :func:`bdgalg.connect' or + :func:`iosys.interconnect`). For two-input, two-output + system, sisotool inserts the negative of the selected gain K between + the first output and first input and uses the second input and output + for computing the step response. To see the disturbance response, + configure your plant to have as its second input the disturbance input. + To view the step response with a feedforward controller, give your + plant two identical inputs, and sum your feedback controller and your + feedforward controller and multiply them into your plant's second + input. It is also possible to accomodate a system with a gain in the + feedback. kvect : float or array_like, optional List of gains to use for plotting root locus. If only one value is provided, the set of gains in the root locus plot is calculated @@ -115,7 +120,7 @@ def sisotool(sys, kvect=None, xlim_rlocus=None, ylim_rlocus=None, 1 if kvect is None else kvect[0], bode_plot_params) # Setup the root-locus plot window - root_locus(sys, kvect=kvect, xlim=xlim_rlocus, + root_locus(sys[0,0], kvect=kvect, xlim=xlim_rlocus, ylim=ylim_rlocus, plotstr=plotstr_rlocus, grid=rlocus_grid, fig=fig, bode_plot_params=bode_plot_params, tvect=tvect, sisotool=True) From 4107950d57e9722fd66eae32ecd0880c48aa3090 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 9 Dec 2022 14:50:53 -0800 Subject: [PATCH 0111/1025] introduce new keyword for sisotool: initial_gain, which denotes gain that the plots start with. Deprecate kvect kwarg with warning. rlocus now doesn't recomupte kvect if it is passed --- control/config.py | 3 ++ control/rlocus.py | 60 ++++++++++++++++++++-------------- control/sisotool.py | 35 +++++++++++--------- control/tests/sisotool_test.py | 13 +++----- 4 files changed, 63 insertions(+), 48 deletions(-) diff --git a/control/config.py b/control/config.py index ccee252fc..37763a6b8 100644 --- a/control/config.py +++ b/control/config.py @@ -97,6 +97,9 @@ def reset_defaults(): from .rlocus import _rlocus_defaults defaults.update(_rlocus_defaults) + from .sisotool import _sisotool_defaults + defaults.update(_sisotool_defaults) + from .namedio import _namedio_defaults defaults.update(_namedio_defaults) diff --git a/control/rlocus.py b/control/rlocus.py index facb9251a..c6ed717e2 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -61,6 +61,7 @@ from .sisotool import _SisotoolUpdate from .grid import sgrid, zgrid from . import config +import warnings __all__ = ['root_locus', 'rlocus'] @@ -76,7 +77,7 @@ # Main function: compute a root locus diagram def root_locus(sys, kvect=None, xlim=None, ylim=None, plotstr=None, plot=True, print_gain=None, grid=None, ax=None, - **kwargs): + initial_gain=None, **kwargs): """Root locus plot @@ -88,8 +89,8 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, ---------- sys : LTI object Linear input/output systems (SISO only, for now). - kvect : float or array_like, optional - List of gains to use in computing diagram. + kvect : array_like, optional + Gains to use in computing plot of closed-loop poles. xlim : tuple or list, optional Set limits of x axis, normally with tuple (see :doc:`matplotlib:api/axes_api`). @@ -107,6 +108,8 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, If True plot omega-damping grid. Default is False. ax : :class:`matplotlib.axes.Axes` Axes on which to create root locus plot + initial_gain : float, optional + Used by :func:`sisotool` to indicate initial gain. Returns ------- @@ -126,7 +129,6 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, """ # Check to see if legacy 'Plot' keyword was used if 'Plot' in kwargs: - import warnings warnings.warn("'Plot' keyword is deprecated in root_locus; " "use 'plot'", FutureWarning) # Map 'Plot' keyword to 'plot' keyword @@ -134,7 +136,6 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, # Check to see if legacy 'PrintGain' keyword was used if 'PrintGain' in kwargs: - import warnings warnings.warn("'PrintGain' keyword is deprecated in root_locus; " "use 'print_gain'", FutureWarning) # Map 'PrintGain' keyword to 'print_gain' keyword @@ -146,12 +147,17 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, print_gain = config._get_param( 'rlocus', 'print_gain', print_gain, _rlocus_defaults) - if not sys.issiso(): + # Check for sisotool mode + sisotool = kwargs.get('sisotool', False) + + # make sure siso. sisotool has different requirements + if not sys.issiso() and not sisotool: raise ControlMIMONotImplemented( 'sys must be single-input single-output (SISO)') + sys_loop = sys[0,0] # Convert numerator and denominator to polynomials if they aren't - (nump, denp) = _systopoly1d(sys) + (nump, denp) = _systopoly1d(sys_loop) # if discrete-time system and if xlim and ylim are not given, # that we a view of the unit circle @@ -161,16 +167,16 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, xlim = (-1.3, 1.3) if kvect is None: - start_roots = _RLFindRoots(nump, denp, 1) kvect, root_array, xlim, ylim = _default_gains(nump, denp, xlim, ylim) + recompute_on_zoom = True else: kvect = np.atleast_1d(kvect) - start_roots = _RLFindRoots(nump, denp, kvect[0]) root_array = _RLFindRoots(nump, denp, kvect) root_array = _RLSortRoots(root_array) + recompute_on_zoom = False - # Check for sisotool mode - sisotool = False if 'sisotool' not in kwargs else True + if sisotool: + start_roots = _RLFindRoots(nump, denp, initial_gain) # Make sure there were no extraneous keywords if not sisotool and kwargs: @@ -204,7 +210,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, zeta = -1 * s.real / abs(s) fig.suptitle( "Clicked at: %10.4g%+10.4gj gain: %10.4g damp: %10.4g" % - (s.real, s.imag, kvect[0], zeta), + (s.real, s.imag, initial_gain, zeta), fontsize=12 if int(mpl.__version__[0]) == 1 else 10) fig.canvas.mpl_connect( 'button_release_event', @@ -214,14 +220,16 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, bode_plot_params=kwargs['bode_plot_params'], tvect=kwargs['tvect'])) - # zoom update on xlim/ylim changed, only then data on new limits - # is available, i.e., cannot combine with _RLClickDispatcher - dpfun = partial( - _RLZoomDispatcher, sys=sys, ax_rlocus=ax, plotstr=plotstr) - # TODO: the next too lines seem to take a long time to execute - # TODO: is there a way to speed them up? (RMM, 6 Jun 2019) - ax.callbacks.connect('xlim_changed', dpfun) - ax.callbacks.connect('ylim_changed', dpfun) + + if recompute_on_zoom: + # update gains and roots when xlim/ylim change. Only then are + # data on available. I.e., cannot combine with _RLClickDispatcher + dpfun = partial( + _RLZoomDispatcher, sys=sys, ax_rlocus=ax, plotstr=plotstr) + # TODO: the next too lines seem to take a long time to execute + # TODO: is there a way to speed them up? (RMM, 6 Jun 2019) + ax.callbacks.connect('xlim_changed', dpfun) + ax.callbacks.connect('ylim_changed', dpfun) # plot open loop poles poles = array(denp.r) @@ -552,7 +560,8 @@ def _RLSortRoots(roots): def _RLZoomDispatcher(event, sys, ax_rlocus, plotstr): """Rootlocus plot zoom dispatcher""" - nump, denp = _systopoly1d(sys) + sys_loop = sys[0,0] + nump, denp = _systopoly1d(sys_loop) xlim, ylim = ax_rlocus.get_xlim(), ax_rlocus.get_ylim() kvect, mymat, xlim, ylim = _default_gains( @@ -584,7 +593,8 @@ def _RLClickDispatcher(event, sys, fig, ax_rlocus, plotstr, sisotool=False, def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool=False): """Display root-locus gain feedback point for clicks on root-locus plot""" - (nump, denp) = _systopoly1d(sys) + sys_loop = sys[0,0] + (nump, denp) = _systopoly1d(sys_loop) xlim = ax_rlocus.get_xlim() ylim = ax_rlocus.get_ylim() @@ -595,10 +605,10 @@ def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool=False): # Catch type error when event click is in the figure but not in an axis try: s = complex(event.xdata, event.ydata) - K = -1. / sys(s) - K_xlim = -1. / sys( + K = -1. / sys_loop(s) + K_xlim = -1. / sys_loop( complex(event.xdata + 0.05 * abs(xlim[1] - xlim[0]), event.ydata)) - K_ylim = -1. / sys( + K_ylim = -1. / sys_loop( complex(event.xdata, event.ydata + 0.05 * abs(ylim[1] - ylim[0]))) except TypeError: diff --git a/control/sisotool.py b/control/sisotool.py index 018514d31..ae2497b66 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -9,14 +9,19 @@ from .bdalg import append, connect from .iosys import tf2io, ss2io, summing_junction, interconnect from control.statesp import _convert_to_statespace, StateSpace +from . import config import numpy as np import matplotlib.pyplot as plt import warnings -def sisotool(sys, kvect=None, xlim_rlocus=None, ylim_rlocus=None, +_sisotool_defaults = { + 'sisotool.initial_gain': 1 +} + +def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, plotstr_rlocus='C0', rlocus_grid=False, omega=None, dB=None, Hz=None, deg=None, omega_limits=None, omega_num=None, - margins_bode=True, tvect=None): + margins_bode=True, tvect=None, kvect=None): """ Sisotool style collection of plots inspired by MATLAB's sisotool. The left two plots contain the bode magnitude and phase diagrams. @@ -42,13 +47,9 @@ def sisotool(sys, kvect=None, xlim_rlocus=None, ylim_rlocus=None, feedforward controller and multiply them into your plant's second input. It is also possible to accomodate a system with a gain in the feedback. - kvect : float or array_like, optional - List of gains to use for plotting root locus. If only one value is - provided, the set of gains in the root locus plot is calculated - automatically, and kvect is interpreted as if it was the value of - the gain associated with the first mouse click on the root locus - plot. This is useful if it is not possible to use interactive - plotting. + initial_gain : float, optional + Initial gain to use for plotting root locus. Defaults to 1 + (config.defaults['sisotool.initial_gain']). xlim_rlocus : tuple or list, optional control of x-axis range, normally with tuple (see :doc:`matplotlib:api/axes_api`). @@ -112,15 +113,19 @@ def sisotool(sys, kvect=None, xlim_rlocus=None, ylim_rlocus=None, 'margins': margins_bode } - # make sure kvect is an array - if kvect is not None and ~hasattr(kvect, '__len__'): - kvect = np.atleast_1d(kvect) + # Check to see if legacy 'PrintGain' keyword was used + if kvect is not None: + warnings.warn("'kvect' keyword is deprecated in sisotool; " + "use 'initial_gain' instead", FutureWarning) + initial_gain = np.atleast1d(kvect)[0] + initial_gain = config._get_param('sisotool', 'initial_gain', + initial_gain, _sisotool_defaults) + # First time call to setup the bode and step response plots - _SisotoolUpdate(sys, fig, - 1 if kvect is None else kvect[0], bode_plot_params) + _SisotoolUpdate(sys, fig, initial_gain, bode_plot_params) # Setup the root-locus plot window - root_locus(sys[0,0], kvect=kvect, xlim=xlim_rlocus, + root_locus(sys, initial_gain=initial_gain, xlim=xlim_rlocus, ylim=ylim_rlocus, plotstr=plotstr_rlocus, grid=rlocus_grid, fig=fig, bode_plot_params=bode_plot_params, tvect=tvect, sisotool=True) diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index beb7ee098..d4a291052 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -138,14 +138,11 @@ def test_sisotool_tvect(self, tsys): @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, reason="Requires the zoom toolbar") - def test_sisotool_kvect(self, tsys): - # test supply kvect - kvect = np.linspace(0, 1, 10) - # check if it can receive an array - sisotool(tsys, kvect=kvect) - # check if it can receive a singleton - sisotool(tsys, kvect=1) - + def test_sisotool_initial_gain(self, tsys): + sisotool(tsys, initial_gain=1.2) + # kvect keyword should give deprecation warning + with pytest.warns(FutureWarning): + sisotool(tsys, kvect=1.2) def test_sisotool_mimo(self, sys222, sys221): # a 2x2 should not raise an error: From eadd496bf5810273b89cd7315663c36ebd9e8ace Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 9 Dec 2022 14:55:56 -0800 Subject: [PATCH 0112/1025] test to make sure kvect gains are respected even if plotting --- control/tests/rlocus_test.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index 4fbe70c4f..a25928e27 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -54,6 +54,12 @@ def testRootLocus(self, sys): np.testing.assert_allclose(klist, k_out) self.check_cl_poles(sys, roots, klist) + # now check with plotting + roots, k_out = root_locus(sys, klist) + np.testing.assert_equal(len(roots), len(klist)) + np.testing.assert_allclose(klist, k_out) + self.check_cl_poles(sys, roots, klist) + def test_without_gains(self, sys): roots, kvect = root_locus(sys, plot=False) self.check_cl_poles(sys, roots, kvect) From 15543ffe9d00cdc734dc7398f5f765444b1226fa Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 9 Dec 2022 15:02:11 -0800 Subject: [PATCH 0113/1025] rename mymat to root_array for clarity --- control/rlocus.py | 72 ++++++++++++++++++++++----------------------- control/sisotool.py | 2 +- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/control/rlocus.py b/control/rlocus.py index c6ed717e2..53c5c9031 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -286,8 +286,8 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): kvect = np.hstack((np.linspace(0, kmax, 50), np.real(k_break))) kvect.sort() - mymat = _RLFindRoots(num, den, kvect) - mymat = _RLSortRoots(mymat) + root_array = _RLFindRoots(num, den, kvect) + root_array = _RLSortRoots(root_array) open_loop_poles = den.roots open_loop_zeros = num.roots @@ -297,13 +297,13 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): open_loop_zeros, np.ones(open_loop_poles.size - open_loop_zeros.size) * open_loop_zeros[-1]) - mymat_xl = np.append(mymat, open_loop_zeros_xl) + root_array_xl = np.append(root_array, open_loop_zeros_xl) else: - mymat_xl = mymat + root_array_xl = root_array singular_points = np.concatenate((num.roots, den.roots), axis=0) important_points = np.concatenate((singular_points, real_break), axis=0) important_points = np.concatenate((important_points, np.zeros(2)), axis=0) - mymat_xl = np.append(mymat_xl, important_points) + root_array_xl = np.append(root_array_xl, important_points) false_gain = float(den.coeffs[0]) / float(num.coeffs[0]) if false_gain < 0 and not den.order > num.order: @@ -312,27 +312,27 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): "with equal order of numerator and denominator.") if xlim is None and false_gain > 0: - x_tolerance = 0.05 * (np.max(np.real(mymat_xl)) - - np.min(np.real(mymat_xl))) - xlim = _ax_lim(mymat_xl) + x_tolerance = 0.05 * (np.max(np.real(root_array_xl)) + - np.min(np.real(root_array_xl))) + xlim = _ax_lim(root_array_xl) elif xlim is None and false_gain < 0: axmin = np.min(np.real(important_points)) \ - (np.max(np.real(important_points)) - np.min(np.real(important_points))) - axmin = np.min(np.array([axmin, np.min(np.real(mymat_xl))])) + axmin = np.min(np.array([axmin, np.min(np.real(root_array_xl))])) axmax = np.max(np.real(important_points)) \ + np.max(np.real(important_points)) \ - np.min(np.real(important_points)) - axmax = np.max(np.array([axmax, np.max(np.real(mymat_xl))])) + axmax = np.max(np.array([axmax, np.max(np.real(root_array_xl))])) xlim = [axmin, axmax] x_tolerance = 0.05 * (axmax - axmin) else: x_tolerance = 0.05 * (xlim[1] - xlim[0]) if ylim is None: - y_tolerance = 0.05 * (np.max(np.imag(mymat_xl)) - - np.min(np.imag(mymat_xl))) - ylim = _ax_lim(mymat_xl * 1j) + y_tolerance = 0.05 * (np.max(np.imag(root_array_xl)) + - np.min(np.imag(root_array_xl))) + ylim = _ax_lim(root_array_xl * 1j) else: y_tolerance = 0.05 * (ylim[1] - ylim[0]) @@ -345,7 +345,7 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): tolerance = x_tolerance else: tolerance = np.min([x_tolerance, y_tolerance]) - indexes_too_far = _indexes_filt(mymat, tolerance, zoom_xlim, zoom_ylim) + indexes_too_far = _indexes_filt(root_array, tolerance, zoom_xlim, zoom_ylim) # Add more points into the root locus for points that are too far apart while len(indexes_too_far) > 0 and kvect.size < 5000: @@ -354,27 +354,27 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): new_gains = np.linspace(kvect[index], kvect[index + 1], 5) new_points = _RLFindRoots(num, den, new_gains[1:4]) kvect = np.insert(kvect, index + 1, new_gains[1:4]) - mymat = np.insert(mymat, index + 1, new_points, axis=0) + root_array = np.insert(root_array, index + 1, new_points, axis=0) - mymat = _RLSortRoots(mymat) - indexes_too_far = _indexes_filt(mymat, tolerance, zoom_xlim, zoom_ylim) + root_array = _RLSortRoots(root_array) + indexes_too_far = _indexes_filt(root_array, tolerance, zoom_xlim, zoom_ylim) new_gains = kvect[-1] * np.hstack((np.logspace(0, 3, 4))) new_points = _RLFindRoots(num, den, new_gains[1:4]) kvect = np.append(kvect, new_gains[1:4]) - mymat = np.concatenate((mymat, new_points), axis=0) - mymat = _RLSortRoots(mymat) - return kvect, mymat, xlim, ylim + root_array = np.concatenate((root_array, new_points), axis=0) + root_array = _RLSortRoots(root_array) + return kvect, root_array, xlim, ylim -def _indexes_filt(mymat, tolerance, zoom_xlim=None, zoom_ylim=None): +def _indexes_filt(root_array, tolerance, zoom_xlim=None, zoom_ylim=None): """Calculate the distance between points and return the indexes. Filter the indexes so only the resolution of points within the xlim and ylim is improved when zoom is used. """ - distance_points = np.abs(np.diff(mymat, axis=0)) + distance_points = np.abs(np.diff(root_array, axis=0)) indexes_too_far = list(np.unique(np.where(distance_points > tolerance)[0])) if zoom_xlim is not None and zoom_ylim is not None: @@ -386,23 +386,23 @@ def _indexes_filt(mymat, tolerance, zoom_xlim=None, zoom_ylim=None): indexes_too_far_filtered = [] for index in indexes_too_far_zoom: - for point in mymat[index]: + for point in root_array[index]: if (zoom_xlim[0] <= point.real <= zoom_xlim[1]) and \ (zoom_ylim[0] <= point.imag <= zoom_ylim[1]): indexes_too_far_filtered.append(index) break # Check if zoom box is not overshot & insert points where neccessary - if len(indexes_too_far_filtered) == 0 and len(mymat) < 500: + if len(indexes_too_far_filtered) == 0 and len(root_array) < 500: limits = [zoom_xlim[0], zoom_xlim[1], zoom_ylim[0], zoom_ylim[1]] for index, limit in enumerate(limits): if index <= 1: - asign = np.sign(real(mymat)-limit) + asign = np.sign(real(root_array)-limit) else: - asign = np.sign(imag(mymat) - limit) + asign = np.sign(imag(root_array) - limit) signchange = ((np.roll(asign, 1, axis=0) - asign) != 0).astype(int) - signchange[0] = np.zeros((len(mymat[0]))) + signchange[0] = np.zeros((len(root_array[0]))) if len(np.where(signchange == 1)[0]) > 0: indexes_too_far_filtered.append( np.where(signchange == 1)[0][0]-1) @@ -411,7 +411,7 @@ def _indexes_filt(mymat, tolerance, zoom_xlim=None, zoom_ylim=None): if indexes_too_far_filtered[0] != 0: indexes_too_far_filtered.insert( 0, indexes_too_far_filtered[0]-1) - if not indexes_too_far_filtered[-1] + 1 >= len(mymat) - 2: + if not indexes_too_far_filtered[-1] + 1 >= len(root_array) - 2: indexes_too_far_filtered.append( indexes_too_far_filtered[-1] + 1) @@ -441,10 +441,10 @@ def _break_points(num, den): return k_break, real_break_pts -def _ax_lim(mymat): +def _ax_lim(root_array): """Utility to get the axis limits""" - axmin = np.min(np.real(mymat)) - axmax = np.max(np.real(mymat)) + axmin = np.min(np.real(root_array)) + axmax = np.max(np.real(root_array)) if axmax != axmin: deltax = (axmax - axmin) * 0.02 else: @@ -564,11 +564,11 @@ def _RLZoomDispatcher(event, sys, ax_rlocus, plotstr): nump, denp = _systopoly1d(sys_loop) xlim, ylim = ax_rlocus.get_xlim(), ax_rlocus.get_ylim() - kvect, mymat, xlim, ylim = _default_gains( + kvect, root_array, xlim, ylim = _default_gains( nump, denp, xlim=None, ylim=None, zoom_xlim=xlim, zoom_ylim=ylim) _removeLine('rootlocus', ax_rlocus) - for i, col in enumerate(mymat.T): + for i, col in enumerate(root_array.T): ax_rlocus.plot(real(col), imag(col), plotstr, label='rootlocus', scalex=False, scaley=False) @@ -640,10 +640,10 @@ def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool=False): # Visualise clicked point, display all roots for sisotool mode if sisotool: - mymat = _RLFindRoots(nump, denp, K.real) + root_array = _RLFindRoots(nump, denp, K.real) ax_rlocus.plot( - [root.real for root in mymat], - [root.imag for root in mymat], + [root.real for root in root_array], + [root.imag for root in root_array], marker='s', markersize=6, zorder=20, label='gain_point', color='k') else: ax_rlocus.plot(s.real, s.imag, 'k.', marker='s', markersize=8, diff --git a/control/sisotool.py b/control/sisotool.py index ae2497b66..d3f597d77 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -117,7 +117,7 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, if kvect is not None: warnings.warn("'kvect' keyword is deprecated in sisotool; " "use 'initial_gain' instead", FutureWarning) - initial_gain = np.atleast1d(kvect)[0] + initial_gain = np.atleast_1d(kvect)[0] initial_gain = config._get_param('sisotool', 'initial_gain', initial_gain, _sisotool_defaults) From f81b6d2617c14c0ca18b317bd92916b6ded5a71f Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Sat, 10 Dec 2022 11:59:25 +0200 Subject: [PATCH 0114/1025] Allow division by scalar for StateSpace & InputOutputSystem Attempt division by any non-LTI and non-NameIOSystem by translating G / k to G * (1/k). Division of StateSpace by TransferFunction, etc., unchanged. --- control/iosys.py | 11 +++++++++++ control/statesp.py | 19 ++++++++----------- control/tests/statesp_test.py | 11 +++++++++++ control/tests/type_conversion_test.py | 6 +++--- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index cbbd4cecc..b6b665030 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -346,6 +346,17 @@ def __neg__(sys): # Return the newly created system return newsys + def __truediv__(sys2, sys1): + """Multiply two input/output systems (series interconnection)""" + # Note: order of arguments is flipped so that self = sys2, + # corresponding to the ordering convention of sys2 * sys1 + + if not isinstance(sys1, (LTI, NamedIOSystem)): + return sys2 * (1/sys1) + else: + return NotImplemented + + # Update parameters used for _rhs, _out (used by subclasses) def _update_params(self, params, warning=False): if warning: diff --git a/control/statesp.py b/control/statesp.py index 7843cb33f..6203eda66 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -64,7 +64,7 @@ from .frdata import FrequencyResponseData from .lti import LTI, _process_frequency_response from .namedio import common_timebase, isdtime, _process_namedio_keywords, \ - _process_dt_keyword + _process_dt_keyword, NamedIOSystem from . import config from copy import deepcopy @@ -794,17 +794,14 @@ def __rmul__(self, other): pass raise TypeError("can't interconnect systems") - # TODO: __div__ and __rdiv__ are not written yet. - def __div__(self, other): - """Divide two LTI systems.""" - - raise NotImplementedError("StateSpace.__div__ is not implemented yet.") - - def __rdiv__(self, other): - """Right divide two LTI systems.""" + # TODO: general __truediv__, and __rtruediv__; requires descriptor system support + def __truediv__(self, other): + """Divide a StateSpace object; only division by scalars is supported""" + if not isinstance(other, (LTI, NamedIOSystem)): + return self * (1/other) + else: + return NotImplemented - raise NotImplementedError( - "StateSpace.__rdiv__ is not implemented yet.") def __call__(self, x, squeeze=None, warn_infinite=True): """Evaluate system's transfer function at complex frequency. diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 41f0c893a..fa837f30d 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -333,6 +333,17 @@ def test_multiply_ss(self, sys222, sys322): np.testing.assert_array_almost_equal(sys.C, C) np.testing.assert_array_almost_equal(sys.D, D) + @pytest.mark.parametrize("k", [2, -3.141, np.float32(2.718), np.array([[4.321], [5.678]])]) + def test_truediv_ss_scalar(self, sys322, k): + """Divide SS by scalar.""" + sys = sys322 / k + syscheck = sys322 * (1/k) + + np.testing.assert_array_almost_equal(sys.A, syscheck.A) + np.testing.assert_array_almost_equal(sys.B, syscheck.B) + np.testing.assert_array_almost_equal(sys.C, syscheck.C) + np.testing.assert_array_almost_equal(sys.D, syscheck.D) + @pytest.mark.parametrize("omega, resp", [(1., np.array([[ 4.37636761e-05-0.01522976j, diff --git a/control/tests/type_conversion_test.py b/control/tests/type_conversion_test.py index 7163f7097..0deb68f88 100644 --- a/control/tests/type_conversion_test.py +++ b/control/tests/type_conversion_test.py @@ -88,11 +88,11 @@ def sys_dict(): ('mul', 'flt', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt']), # op left ss tf frd lio ios arr flt - ('truediv', 'ss', ['xs', 'tf', 'frd', 'xio', 'xos', 'xs', 'xs' ]), + ('truediv', 'ss', ['xs', 'tf', 'frd', 'xio', 'xos', 'ss', 'ss' ]), ('truediv', 'tf', ['tf', 'tf', 'xrd', 'tf', 'xos', 'tf', 'tf' ]), ('truediv', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), - ('truediv', 'lio', ['xio', 'tf', 'frd', 'xio', 'xio', 'xio', 'xio']), - ('truediv', 'ios', ['xos', 'xos', 'E', 'xos', 'xos' 'xos', 'xos']), + ('truediv', 'lio', ['xio', 'tf', 'frd', 'xio', 'xio', 'lio', 'lio']), + ('truediv', 'ios', ['xos', 'xos', 'E', 'xos', 'xos', 'ios', 'ios']), ('truediv', 'arr', ['xs', 'tf', 'frd', 'xio', 'xos', 'arr', 'arr']), ('truediv', 'flt', ['xs', 'tf', 'frd', 'xio', 'xos', 'arr', 'flt'])] From 0efae636cb831ecba53274e61a33f828d529b5b3 Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Sat, 10 Dec 2022 12:08:07 +0200 Subject: [PATCH 0115/1025] Remove __div__ and __rdiv__ methods These aren't used in Python 3. --- control/frdata.py | 8 -------- control/xferfcn.py | 8 -------- 2 files changed, 16 deletions(-) diff --git a/control/frdata.py b/control/frdata.py index a33775afb..c78607a07 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -408,10 +408,6 @@ def __truediv__(self, other): smooth=(self.ifunc is not None) and (other.ifunc is not None)) - # TODO: Remove when transition to python3 complete - def __div__(self, other): - return self.__truediv__(other) - # TODO: Division of MIMO transfer function objects is not written yet. def __rtruediv__(self, other): """Right divide two LTI objects.""" @@ -429,10 +425,6 @@ def __rtruediv__(self, other): return other / self - # TODO: Remove when transition to python3 complete - def __rdiv__(self, other): - return self.__rtruediv__(other) - def __pow__(self, other): if not type(other) == int: raise ValueError("Exponent must be an integer") diff --git a/control/xferfcn.py b/control/xferfcn.py index 84188a63f..a27b46623 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -702,10 +702,6 @@ def __truediv__(self, other): return TransferFunction(num, den, dt) - # TODO: Remove when transition to python3 complete - def __div__(self, other): - return TransferFunction.__truediv__(self, other) - # TODO: Division of MIMO transfer function objects is not written yet. def __rtruediv__(self, other): """Right divide two LTI objects.""" @@ -724,10 +720,6 @@ def __rtruediv__(self, other): return other / self - # TODO: Remove when transition to python3 complete - def __rdiv__(self, other): - return TransferFunction.__rtruediv__(self, other) - def __pow__(self, other): if not type(other) == int: raise ValueError("Exponent must be an integer") From af7a7d711b1e0504f197ab62cfb446e11cdbbb82 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com> Date: Sat, 10 Dec 2022 02:34:17 -0800 Subject: [PATCH 0116/1025] Update timeresp.py Update impulse_response doc string to indicate that the impulse size is unit area for discrete systems. --- control/timeresp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/control/timeresp.py b/control/timeresp.py index e029f2a44..da158e0cc 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1796,7 +1796,8 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, ----- This function uses the `forced_response` function to compute the time response. For continuous time systems, the initial condition is altered to - account for the initial impulse. + account for the initial impulse. For discrete-time aystems, the impulse is + sized so that it has unit area. Examples -------- From 4792163bde887b2e4bc1f5716299d14985a5ef7b Mon Sep 17 00:00:00 2001 From: mark-yeatman Date: Sun, 11 Dec 2022 22:09:19 -0500 Subject: [PATCH 0117/1025] Removed epsilon perturbation value in solve_passivity_LMI. Change unit test to reflect scaling values from empirical testing. --- control/passivity.py | 34 +++++++++++++++++++-------------- control/tests/passivity_test.py | 17 ++++++++--------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/control/passivity.py b/control/passivity.py index 3777b3d92..3d48f34f6 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -14,7 +14,6 @@ except ImportError: cvx = None -eps = np.nextafter(0, 1) __all__ = ["get_output_fb_index", "get_input_ff_index", "ispassive", "solve_passivity_LMI"] @@ -28,8 +27,8 @@ def solve_passivity_LMI(sys, rho=None, nu=None): passive. Inputs of None for `rho` or `nu` indicate that the function should solve for that index (they are mutually exclusive, they can't both be None, otherwise you're trying to solve a nonconvex bilinear matrix - inequality.) The last element of `solution` is either the output or input - passivity index, for `rho` = None and `nu` = None respectively. + inequality.) The last element of the output `solution` is either the output or input + passivity index, for `rho` = None and `nu` = None respectively. The sources for the algorithm are: @@ -74,11 +73,8 @@ def solve_passivity_LMI(sys, rho=None, nu=None): D = sys.D # account for strictly proper systems - [n, m] = D.shape - D = D + eps * np.eye(n, m) - + [_, m] = D.shape [n, _] = A.shape - A = A - eps*np.eye(n) def make_LMI_matrix(P, rho, nu, one): q = sys.noutputs @@ -113,7 +109,7 @@ def make_P_basis_matrices(n, rho, nu): P[i, j] = 1 P[j, i] = 1 matrix_list.append(make_LMI_matrix(P, 0, 0, 0).flatten()) - zeros = eps*np.eye(n) + zeros = 0.0*np.eye(n) if rho is None: matrix_list.append(make_LMI_matrix(zeros, 1, 0, 0).flatten()) elif nu is None: @@ -149,9 +145,9 @@ def P_pos_def_constraint(n): if rho is not None and nu is not None: sys_constants = -make_LMI_matrix(np.zeros_like(A), rho, nu, 1.0) elif rho is not None: - sys_constants = -make_LMI_matrix(np.zeros_like(A), rho, eps, 1.0) + sys_constants = -make_LMI_matrix(np.zeros_like(A), rho, 0.0, 1.0) elif nu is not None: - sys_constants = -make_LMI_matrix(np.zeros_like(A), eps, nu, 1.0) + sys_constants = -make_LMI_matrix(np.zeros_like(A), 0.0, nu, 1.0) sys_coefficents = np.vstack(sys_matrix_list).T @@ -174,8 +170,18 @@ def P_pos_def_constraint(n): # crunch feasibility solution cvx.solvers.options['show_progress'] = False - sol = cvx.solvers.sdp(c, Gs=Gs, hs=hs) - return sol["x"] + try: + sol = cvx.solvers.sdp(c, Gs=Gs, hs=hs) + return sol["x"] + + except ZeroDivisionError as e: + print(e) + print( + """The system is probably ill conditioned. + Consider perturbing the system matrices a small amount.""" + ) + raise(ZeroDivisionError) + def get_output_fb_index(sys): @@ -194,7 +200,7 @@ def get_output_fb_index(sys): float The OFP index """ - sol = solve_passivity_LMI(sys, nu=eps) + sol = solve_passivity_LMI(sys, nu=0.0) if sol is None: raise RuntimeError("LMI passivity problem is infeasible") else: @@ -218,7 +224,7 @@ def get_input_ff_index(sys): float The IFP index """ - sol = solve_passivity_LMI(sys, rho=eps) + sol = solve_passivity_LMI(sys, rho=0.0) if sol is None: raise RuntimeError("LMI passivity problem is infeasible") else: diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index 6cee1bdb6..bc1ddb871 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -99,16 +99,15 @@ def test_system_dimension(): @pytest.mark.parametrize( - "systemmatrices, expected", - [((A, B, C, D*0.0), True), + "system_matrices, expected", + [((A, B, C, D*1e-8), True), ((A_d, B, C, D), True), - pytest.param((A*1e12, B, C, D*0), True, - marks=pytest.mark.xfail(reason="gh-761")), - ((A, B*0, C*0, D), True), - ((A*0, B, C, D), True), - ((A*0, B*0, C*0, D*0), True)]) -def test_ispassive_edge_cases(systemmatrices, expected): - sys = ss(*systemmatrices) + pytest.param((A*1e8, B, C, D*1e-8), True), + ((A, B*1e-8, C*1e-8, D), True), + ((A*1e-8, B, C, D), True), + ((A*1e-8, B*1e-8, C*1e-8, D*1e-8), True)]) +def test_ispassive_edge_cases(system_matrices, expected): + sys = ss(*system_matrices) assert passivity.ispassive(sys) == expected From 5b7df09b6117ac2ceeef394385861e3a48210cf0 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com> Date: Mon, 12 Dec 2022 08:52:10 -0800 Subject: [PATCH 0118/1025] Apply suggestions from code review --- README.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 58dd901de..f3e3a13ff 100644 --- a/README.rst +++ b/README.rst @@ -39,7 +39,7 @@ Features - Time response: initial, step, impulse - Frequency response: Bode, Nyquist, and Nichols plots - Control analysis: stability, reachability, observability, stability margins, root locus -- Control design: eigenvalue placement, linear quadratic regulator, sisotool, hinfsyn +- Control design: eigenvalue placement, linear quadratic regulator, sisotool, hinfsyn, rootlocus_pid_designer - Estimator design: linear quadratic estimator (Kalman filter) - Nonlinear systems: optimization-based control, describing functions, differential flatness @@ -106,12 +106,12 @@ toplevel `python-control` directory:: Article and Citation Information ================================ -A `2021 article `_ about the library is available on IEEE Explore. If the Python Control Systems Library helped you in your research, please cite:: +An `article `_ about the library is available on IEEE Explore. If the Python Control Systems Library helped you in your research, please cite:: @inproceedings{python-control2021, - title={The python control systems library (python-control)}, + title={The Python Control Systems Library (python-control)}, author={Fuller, Sawyer and Greiner, Ben and Moore, Jason and Murray, Richard and van Paassen, Ren{\'e} and Yorke, Rory}, - booktitle={2021 60th IEEE Conference on Decision and Control (CDC)}, + booktitle={60th IEEE Conference on Decision and Control (CDC)}, pages={4875--4881}, year={2021}, organization={IEEE} From 2311a4d62280675d88291566d3b164f124d2b595 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 12 Dec 2022 11:49:06 -0800 Subject: [PATCH 0119/1025] bring back 'Other parameters' in docstrings, alphabetize TOC --- control/dtime.py | 13 ++++++++----- control/iosys.py | 16 +++++++++------- control/statesp.py | 13 ++++++++----- control/xferfcn.py | 15 +++++++++------ doc/control.rst | 14 +++++++------- 5 files changed, 41 insertions(+), 30 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index e242923fb..724eafb76 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -84,6 +84,14 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, copy_names : bool, Optional If True, copy the names of the input signals, output signals, and states to the sampled system. + + Returns + ------- + sysd : linsys + Discrete time system, with sampling rate Ts + + Other Parameters + ---------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional system inputs are used. See :class:`InputOutputSystem` for more @@ -94,11 +102,6 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, Description of the system states. Same format as `inputs`. Only available if the system is :class:`StateSpace`. - Returns - ------- - sysd : linsys - Discrete time system, with sampling rate Ts - Notes ----- See :meth:`StateSpace.sample` or :meth:`TransferFunction.sample` for diff --git a/control/iosys.py b/control/iosys.py index 4f9c674c0..665c60e4d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2203,6 +2203,15 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): copy_names : bool, Optional If True, Copy the names of the input signals, output signals, and states to the linearized system. + + Returns + ------- + ss_sys : LinearIOSystem + The linearization of the system, as a :class:`~control.LinearIOSystem` + object (which is also a :class:`~control.StateSpace` object. + + Other Parameters + ---------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional system inputs are used. See :class:`InputOutputSystem` for more @@ -2211,13 +2220,6 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): Description of the system outputs. Same format as `inputs`. states : int, list of str, or None, optional Description of the system states. Same format as `inputs`. - - Returns - ------- - ss_sys : LinearIOSystem - The linearization of the system, as a :class:`~control.LinearIOSystem` - object (which is also a :class:`~control.StateSpace` object. - """ if not isinstance(sys, InputOutputSystem): raise TypeError("Can only linearize InputOutputSystem types") diff --git a/control/statesp.py b/control/statesp.py index 80b4601f2..0303ff70a 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1338,6 +1338,14 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, copy_names : bool, Optional If True, copy the names of the input signals, output signals, and states to the sampled system. + + Returns + ------- + sysd : StateSpace + Discrete-time system, with sampling rate Ts + + Other Parameters + ---------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional system inputs are used. See :class:`InputOutputSystem` for more @@ -1347,11 +1355,6 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, states : int, list of str, or None, optional Description of the system states. Same format as `inputs`. - Returns - ------- - sysd : StateSpace - Discrete-time system, with sampling rate Ts - Notes ----- Uses :func:`scipy.signal.cont2discrete` diff --git a/control/xferfcn.py b/control/xferfcn.py index d7de8fedd..490132952 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1130,6 +1130,14 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, copy_names : bool, Optional If True, copy the names of the input signals, output signals, and states to the sampled system. + + Returns + ------- + sysd : TransferFunction system + Discrete-time system, with sample period Ts + + Other Parameters + ---------------- inputs : int, list of str or None, optional Description of the system inputs. If not specified, the origional system inputs are used. See :class:`InputOutputSystem` for more @@ -1137,11 +1145,6 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, outputs : int, list of str or None, optional Description of the system outputs. Same format as `inputs`. - Returns - ------- - sysd : TransferFunction system - Discrete-time system, with sample period Ts - Notes ----- 1. Available only for SISO systems @@ -1582,7 +1585,7 @@ def tf(*args, **kwargs): else: raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) - +# TODO: copy signal names def ss2tf(*args, **kwargs): """ss2tf(sys) diff --git a/doc/control.rst b/doc/control.rst index 5ac5102f7..54e233746 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -31,10 +31,10 @@ System interconnections append connect feedback + interconnect negate parallel series - interconnect Frequency domain plotting @@ -80,8 +80,6 @@ Control system analysis dcgain describing_function frequency_response - TransferFunction.__call__ - StateSpace.__call__ get_input_ff_index get_output_fb_index ispassive @@ -93,6 +91,8 @@ Control system analysis pzmap root_locus sisotool + StateSpace.__call__ + TransferFunction.__call__ @@ -102,10 +102,10 @@ Matrix computations :toctree: generated/ care + ctrb dare - lyap dlyap - ctrb + lyap obsv gram @@ -116,10 +116,10 @@ Control system synthesis acker create_statefbk_iosystem + dlqr h2syn hinfsyn lqr - dlqr mixsyn place rootlocus_pid_designer @@ -157,8 +157,8 @@ Stochastic system support correlation create_estimator_iosystem - lqe dlqe + lqe white_noise .. _utility-and-conversions: From 7acd3fc650a3d3074c17dcdea7ee768a31fbf290 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 12 Dec 2022 12:11:19 -0800 Subject: [PATCH 0120/1025] added signature for drss, import missing stochsys for matlab module, docstring typos --- control/iosys.py | 7 +++++-- control/matlab/__init__.py | 1 + control/matlab/timeresp.py | 38 +++++--------------------------------- control/matlab/wrappers.py | 3 +-- 4 files changed, 12 insertions(+), 37 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 665c60e4d..e3af5d9f7 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2428,7 +2428,10 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): def drss(*args, **kwargs): - """Create a stable, discrete-time, random state space system + """ + drss([states, outputs, inputs, strictly_proper]) + + Create a stable, discrete-time, random state space system Create a stable *discrete time* random state space object. This function calls :func:`rss` using either the `dt` keyword provided by @@ -2466,7 +2469,7 @@ def ss2io(*args, **kwargs): # Convert a transfer function into an input/output system (wrapper) def tf2io(*args, **kwargs): - """tf2io(sys) + """tf2io(sys[, ...]) Convert a transfer function into an I/O system diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index 80f2a0a65..4dd34c41b 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -84,6 +84,7 @@ from ..rlocus import rlocus from ..dtime import c2d from ..sisotool import sisotool +from ..stochsys import * # Functions that are renamed in MATLAB pole, zero = poles, zeros diff --git a/control/matlab/timeresp.py b/control/matlab/timeresp.py index b1fa24bb0..58b5e589d 100644 --- a/control/matlab/timeresp.py +++ b/control/matlab/timeresp.py @@ -7,8 +7,7 @@ __all__ = ['step', 'stepinfo', 'impulse', 'initial', 'lsim'] def step(sys, T=None, X0=0., input=0, output=None, return_x=False): - ''' - Step response of a linear system + '''Step response of a linear system If the system has multiple inputs or outputs (MIMO), one input has to be selected for the simulation. Optionally, one output may be @@ -20,19 +19,14 @@ def step(sys, T=None, X0=0., input=0, output=None, return_x=False): ---------- sys: StateSpace, or TransferFunction LTI system to simulate - T: array-like or number, optional Time vector, or simulation time duration if a number (time vector is autocomputed if not given) - X0: array-like or number, optional Initial condition (default = 0) - Numbers are converted to constant arrays with the correct shape. - input: int Index of the input that will be used in this simulation. - output: int If given, index of the output that is returned by this simulation. @@ -40,15 +34,12 @@ def step(sys, T=None, X0=0., input=0, output=None, return_x=False): ------- yout: array Response of the system - T: array Time values of the output - xout: array (if selected) Individual response of each x variable - See Also -------- lsim, initial, impulse @@ -67,8 +58,7 @@ def step(sys, T=None, X0=0., input=0, output=None, return_x=False): def stepinfo(sysdata, T=None, yfinal=None, SettlingTimeThreshold=0.02, RiseTimeLimits=(0.1, 0.9)): - """ - Step response characteristics (Rise time, Settling Time, Peak and others). + """Step response characteristics (Rise time, Settling Time, Peak and others) Parameters ---------- @@ -137,8 +127,7 @@ def stepinfo(sysdata, T=None, yfinal=None, SettlingTimeThreshold=0.02, return S def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): - ''' - Impulse response of a linear system + '''Impulse response of a linear system If the system has multiple inputs or outputs (MIMO), one input has to be selected for the simulation. Optionally, one output may be @@ -150,19 +139,15 @@ def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): ---------- sys: StateSpace, TransferFunction LTI system to simulate - T: array-like or number, optional Time vector, or simulation time duration if a number (time vector is autocomputed if not given) - X0: array-like or number, optional Initial condition (default = 0) Numbers are converted to constant arrays with the correct shape. - input: int Index of the input that will be used in this simulation. - output: int Index of the output that will be used in this simulation. @@ -170,10 +155,8 @@ def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): ------- yout: array Response of the system - T: array Time values of the output - xout: array (if selected) Individual response of each x variable @@ -193,8 +176,7 @@ def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): return (out[1], out[0], out[2]) if return_x else (out[1], out[0]) def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): - ''' - Initial condition response of a linear system + '''Initial condition response of a linear system If the system has multiple outputs (?IMO), optionally, one output may be selected. If no selection is made for the output, all @@ -204,20 +186,16 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): ---------- sys: StateSpace, or TransferFunction LTI system to simulate - T: array-like or number, optional Time vector, or simulation time duration if a number (time vector is autocomputed if not given) - X0: array-like object or number, optional Initial condition (default = 0) Numbers are converted to constant arrays with the correct shape. - input: int This input is ignored, but present for compatibility with step and impulse. - output: int If given, index of the output that is returned by this simulation. @@ -225,10 +203,8 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): ------- yout: array Response of the system - T: array Time values of the output - xout: array (if selected) Individual response of each x variable @@ -250,8 +226,7 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): def lsim(sys, U=0., T=None, X0=0.): - ''' - Simulate the output of a linear system. + '''Simulate the output of a linear system As a convenience for parameters `U`, `X0`: Numbers (scalars) are converted to constant arrays with the correct shape. @@ -261,16 +236,13 @@ def lsim(sys, U=0., T=None, X0=0.): ---------- sys: LTI (StateSpace, or TransferFunction) LTI system to simulate - U: array-like or number, optional Input array giving input at each time `T` (default = 0). If `U` is ``None`` or ``0``, a special algorithm is used. This special algorithm is faster than the general algorithm, which is used otherwise. - T: array-like, optional for discrete LTI `sys` Time steps at which the input is defined; values must be evenly spaced. - X0: array-like or number, optional Initial condition (default = 0). diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 8eafdaad2..6a6c4ad35 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -178,8 +178,7 @@ def ngrid(): def dcgain(*args): - ''' - Compute the gain of the system in steady state. + '''Compute the gain of the system in steady state The function takes either 1, 2, 3, or 4 parameters: From a17e3c823e733f20a428f79ea91f9383612f79b8 Mon Sep 17 00:00:00 2001 From: mark-yeatman Date: Thu, 15 Dec 2022 02:50:00 -0500 Subject: [PATCH 0121/1025] Remove test case. --- control/tests/passivity_test.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/control/tests/passivity_test.py b/control/tests/passivity_test.py index bc1ddb871..4d7c8e6eb 100644 --- a/control/tests/passivity_test.py +++ b/control/tests/passivity_test.py @@ -100,12 +100,11 @@ def test_system_dimension(): @pytest.mark.parametrize( "system_matrices, expected", - [((A, B, C, D*1e-8), True), + [((A, B, C, D*0), True), ((A_d, B, C, D), True), - pytest.param((A*1e8, B, C, D*1e-8), True), - ((A, B*1e-8, C*1e-8, D), True), - ((A*1e-8, B, C, D), True), - ((A*1e-8, B*1e-8, C*1e-8, D*1e-8), True)]) + ((A, B*0, C*0, D), True), + ((A*0, B, C, D), True), + ((A*0, B*0, C*0, D*0), True)]) def test_ispassive_edge_cases(system_matrices, expected): sys = ss(*system_matrices) assert passivity.ispassive(sys) == expected From cc3fb2fd903275ade892898b8c5b6779b6b05807 Mon Sep 17 00:00:00 2001 From: Rory Yorke Date: Fri, 16 Dec 2022 06:00:47 +0200 Subject: [PATCH 0122/1025] Update __truediv__ docstring for InputOutputSystem and StateSpace --- control/iosys.py | 4 +++- control/statesp.py | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index b6b665030..67cca74de 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -347,7 +347,9 @@ def __neg__(sys): return newsys def __truediv__(sys2, sys1): - """Multiply two input/output systems (series interconnection)""" + """Division of input/output systems + + Only division by scalars and arrays of scalars is supported""" # Note: order of arguments is flipped so that self = sys2, # corresponding to the ordering convention of sys2 * sys1 diff --git a/control/statesp.py b/control/statesp.py index 6203eda66..249c6f5e0 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -796,7 +796,11 @@ def __rmul__(self, other): # TODO: general __truediv__, and __rtruediv__; requires descriptor system support def __truediv__(self, other): - """Divide a StateSpace object; only division by scalars is supported""" + """Division of StateSpace systems + + Only division by TFs, FRDs, scalars, and arrays of scalars is + supported. + """ if not isinstance(other, (LTI, NamedIOSystem)): return self * (1/other) else: From e6b837d4ff463547708e8a155862473adb34290b Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 16 Dec 2022 15:44:58 -0500 Subject: [PATCH 0123/1025] Update control/passivity.py Co-authored-by: Ben Greiner --- control/passivity.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/control/passivity.py b/control/passivity.py index 3d48f34f6..0f4104186 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -175,12 +175,9 @@ def P_pos_def_constraint(n): return sol["x"] except ZeroDivisionError as e: - print(e) - print( - """The system is probably ill conditioned. - Consider perturbing the system matrices a small amount.""" - ) - raise(ZeroDivisionError) + raise ValueError("The system is probably ill conditioned. " + "Consider perturbing the system matrices by a small amount." + ) from e From 16457d7a0d7aaaca6fbaf3d596ea599e76e336d4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 16 Dec 2022 21:18:40 -0800 Subject: [PATCH 0124/1025] explicit import of stochsys in matlab, per @bnavigator --- control/matlab/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index 4dd34c41b..fc0cd445b 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -84,7 +84,7 @@ from ..rlocus import rlocus from ..dtime import c2d from ..sisotool import sisotool -from ..stochsys import * +from ..stochsys import lqe, dlqe # Functions that are renamed in MATLAB pole, zero = poles, zeros From 91466d1276a3bd43501ab5b5a8e2146e1b0215a5 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 15 Dec 2022 22:41:20 -0800 Subject: [PATCH 0125/1025] add zpk() function --- control/matlab/__init__.py | 2 +- control/tests/kwargs_test.py | 2 ++ control/tests/xferfcn_test.py | 40 ++++++++++++++++++++++++++- control/xferfcn.py | 51 +++++++++++++++++++++++++++++++++-- doc/control.rst | 1 + 5 files changed, 92 insertions(+), 4 deletions(-) diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index fc0cd445b..1a524b33f 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -115,7 +115,7 @@ == ========================== ============================================ \* :func:`tf` create transfer function (TF) models -\ zpk create zero/pole/gain (ZPK) models. +\* :func:`zpk` create zero/pole/gain (ZPK) models. \* :func:`ss` create state-space (SS) models \ dss create descriptor state-space models \ delayss create state-space models with delayed terms diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 20a1c8e9c..8116f013a 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -96,6 +96,7 @@ def test_kwarg_search(module, prefix): (control.tf, 0, 0, ([1], [1, 1]), {}), (control.tf2io, 0, 1, (), {}), (control.tf2ss, 0, 1, (), {}), + (control.zpk, 0, 0, ([1], [2, 3], 4), {}), (control.InputOutputSystem, 0, 0, (), {'inputs': 1, 'outputs': 1, 'states': 1}), (control.InputOutputSystem.linearize, 1, 0, (0, 0), {}), @@ -184,6 +185,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'tf2io' : test_unrecognized_kwargs, 'tf2ss' : test_unrecognized_kwargs, 'sample_system' : test_unrecognized_kwargs, + 'zpk': test_unrecognized_kwargs, 'flatsys.point_to_point': flatsys_test.TestFlatSys.test_point_to_point_errors, 'flatsys.solve_flat_ocp': diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index e4a2b3ec0..915ac4dc6 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -986,7 +986,7 @@ def test_repr(self, Hargs, ref): np.testing.assert_array_almost_equal(H.num[p][m], H2.num[p][m]) np.testing.assert_array_almost_equal(H.den[p][m], H2.den[p][m]) assert H.dt == H2.dt - + def test_sample_named_signals(self): sysc = ct.TransferFunction(1.1, (1, 2), inputs='u', outputs='y') @@ -1073,3 +1073,41 @@ def test_xferfcn_ndarray_precedence(op, tf, arr): # Apply the operator to the array and transfer function result = op(arr, tf) assert isinstance(result, ct.TransferFunction) + + +@pytest.mark.parametrize( + "zeros, poles, gain, args, kwargs", [ + ([], [-1], 1, [], {}), + ([1, 2], [-1, -2, -3], 5, [], {}), + ([1, 2], [-1, -2, -3], 5, [], {'name': "sys"}), + ([1, 2], [-1, -2, -3], 5, [], {'inputs': ["in"], 'outputs': ["out"]}), + ([1, 2], [-1, -2, -3], 5, [0.1], {}), + (np.array([1, 2]), np.array([-1, -2, -3]), 5, [], {}), +]) +def test_zpk(zeros, poles, gain, args, kwargs): + # Create the transfer function + sys = ct.zpk(zeros, poles, gain, *args, **kwargs) + + # Make sure the poles and zeros match + np.testing.assert_equal(sys.zeros().sort(), zeros.sort()) + np.testing.assert_equal(sys.poles().sort(), poles.sort()) + + # Check to make sure the gain is OK + np.testing.assert_almost_equal( + gain, sys(0) * np.prod(-sys.poles()) / np.prod(-sys.zeros())) + + # Check time base + if args: + assert sys.dt == args[0] + + # Check inputs, outputs, name + input_labels = kwargs.get('inputs', []) + for i, label in enumerate(input_labels): + assert sys.input_labels[i] == label + + output_labels = kwargs.get('outputs', []) + for i, label in enumerate(output_labels): + assert sys.output_labels[i] == label + + if kwargs.get('name'): + assert sys.name == kwargs.get('name') diff --git a/control/xferfcn.py b/control/xferfcn.py index 5ebd35c13..726f6297b 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -65,7 +65,7 @@ from .frdata import FrequencyResponseData from . import config -__all__ = ['TransferFunction', 'tf', 'ss2tf', 'tfdata'] +__all__ = ['TransferFunction', 'tf', 'zpk', 'ss2tf', 'tfdata'] # Define module default parameter values @@ -796,7 +796,7 @@ def zeros(self): """Compute the zeros of a transfer function.""" if self.ninputs > 1 or self.noutputs > 1: raise NotImplementedError( - "TransferFunction.zero is currently only implemented " + "TransferFunction.zeros is currently only implemented " "for SISO systems.") else: # for now, just give zeros of a SISO tf @@ -1577,8 +1577,55 @@ def tf(*args, **kwargs): else: raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) + +def zpk(zeros, poles, gain, *args, **kwargs): + """zpk(zeros, poles, gain[, dt]) + + Create a transfer function from zeros, poles, gain. + + Given a list of zeros z_i, poles p_j, and gain k, return the transfer + function: + + .. math:: + H(s) = k \\frac{(s - z_1) (s - z_2) \\cdots (s - z_m)} + {(s - p_1) (s - p_2) \\cdots (s - p_n)} + + Parameters + ---------- + zeros : array_like + Array containing the location of zeros. + poles : array_like + Array containing the location of zeros. + gain : float + System gain + dt : None, True or float, optional + System timebase. 0 (default) indicates continuous + time, True indicates discrete time with unspecified sampling + time, positive number is discrete time with specified + sampling time, None indicates unspecified timebase (either + continuous or discrete time). + inputs, outputs, states : str, or list of str, optional + List of strings that name the individual signals. If this parameter + is not given or given as `None`, the signal names will be of the + form `s[i]` (where `s` is one of `u`, `y`, or `x`). See + :class:`InputOutputSystem` for more information. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. + + Returns + ------- + out: :class:`TransferFunction` + Transfer function with given zeros, poles, and gain. + + """ + num, den = zpk2tf(zeros, poles, gain) + return TransferFunction(num, den, *args, **kwargs) + + # TODO: copy signal names def ss2tf(*args, **kwargs): + """ss2tf(sys) Transform a state space system to a transfer function. diff --git a/doc/control.rst b/doc/control.rst index 54e233746..79702dc6a 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -18,6 +18,7 @@ System creation ss tf frd + zpk rss drss NonlinearIOSystem From 7ee0c0e3358d703e93054bca8e3e34d5c86987c9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 16 Dec 2022 23:05:56 -0800 Subject: [PATCH 0126/1025] fix up copying of signal names --- control/statesp.py | 1 - control/tests/xferfcn_test.py | 34 +++++++++++++++++++++++++++++++++- control/xferfcn.py | 13 +++++++------ 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 4524af396..aac4dd8bd 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1521,7 +1521,6 @@ def output(self, t, x, u=None, params=None): # TODO: add discrete time check -# TODO: copy signal names def _convert_to_statespace(sys): """Convert a system to state space form (if needed). diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index 915ac4dc6..6e1cf6ce2 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -8,7 +8,8 @@ import operator import control as ct -from control import StateSpace, TransferFunction, rss, ss2tf, evalfr +from control import StateSpace, TransferFunction, rss, evalfr +from control import ss, ss2tf, tf, tf2ss from control import isctime, isdtime, sample_system, defaults from control.statesp import _convert_to_statespace from control.xferfcn import _convert_to_transfer_function @@ -1111,3 +1112,34 @@ def test_zpk(zeros, poles, gain, args, kwargs): if kwargs.get('name'): assert sys.name == kwargs.get('name') + +@pytest.mark.parametrize("create, args, kwargs, convert", [ + (StateSpace, ([-1], [1], [1], [0]), {}, ss2tf), + (StateSpace, ([-1], [1], [1], [0]), {}, ss), + (StateSpace, ([-1], [1], [1], [0]), {}, tf), + (StateSpace, ([-1], [1], [1], [0]), dict(inputs='i', outputs='o'), ss2tf), + (StateSpace, ([-1], [1], [1], [0]), dict(inputs=1, outputs=1), ss2tf), + (StateSpace, ([-1], [1], [1], [0]), dict(inputs='i', outputs='o'), ss), + (StateSpace, ([-1], [1], [1], [0]), dict(inputs='i', outputs='o'), tf), + (TransferFunction, ([1], [1, 1]), {}, tf2ss), + (TransferFunction, ([1], [1, 1]), {}, tf), + (TransferFunction, ([1], [1, 1]), {}, ss), + (TransferFunction, ([1], [1, 1]), dict(inputs='i', outputs='o'), tf2ss), + (TransferFunction, ([1], [1, 1]), dict(inputs=1, outputs=1), tf2ss), + (TransferFunction, ([1], [1, 1]), dict(inputs='i', outputs='o'), tf), + (TransferFunction, ([1], [1, 1]), dict(inputs='i', outputs='o'), ss), +]) +def test_copy_names(create, args, kwargs, convert): + # Convert a system with no renaming + sys = create(*args, **kwargs) + cpy = convert(sys) + + assert cpy.input_labels == sys.input_labels + assert cpy.input_labels == sys.input_labels + if cpy.nstates is not None and sys.nstates is not None: + assert cpy.state_labels == sys.state_labels + + # Relabel inputs and outputs + cpy = convert(sys, inputs='myin', outputs='myout') + assert cpy.input_labels == ['myin'] + assert cpy.output_labels == ['myout'] diff --git a/control/xferfcn.py b/control/xferfcn.py index 726f6297b..0bc84e096 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1424,16 +1424,13 @@ def _convert_to_transfer_function(sys, inputs=1, outputs=1): num = squeeze(num) # Convert to 1D array den = squeeze(den) # Probably not needed - return TransferFunction( - num, den, sys.dt, inputs=sys.input_labels, - outputs=sys.output_labels) + return TransferFunction(num, den, sys.dt) elif isinstance(sys, (int, float, complex, np.number)): num = [[[sys] for j in range(inputs)] for i in range(outputs)] den = [[[1] for j in range(inputs)] for i in range(outputs)] - return TransferFunction( - num, den, inputs=inputs, outputs=outputs) + return TransferFunction(num, den) elif isinstance(sys, FrequencyResponseData): raise TypeError("Can't convert given FRD to TransferFunction system.") @@ -1623,7 +1620,6 @@ def zpk(zeros, poles, gain, *args, **kwargs): return TransferFunction(num, den, *args, **kwargs) -# TODO: copy signal names def ss2tf(*args, **kwargs): """ss2tf(sys) @@ -1705,6 +1701,11 @@ def ss2tf(*args, **kwargs): if len(args) == 1: sys = args[0] if isinstance(sys, StateSpace): + kwargs = kwargs.copy() + if not kwargs.get('inputs'): + kwargs['inputs'] = sys.input_labels + if not kwargs.get('outputs'): + kwargs['outputs'] = sys.output_labels return TransferFunction( _convert_to_transfer_function(sys), **kwargs) else: From 02c39ca09e6576f3b8777909f86b588715a13277 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 17 Dec 2022 22:33:23 -0800 Subject: [PATCH 0127/1025] update readthedocs build process --- .readthedocs.yaml | 21 ++++++++++++++++++++ doc-requirements.txt => doc/requirements.txt | 0 2 files changed, 21 insertions(+) create mode 100644 .readthedocs.yaml rename doc-requirements.txt => doc/requirements.txt (100%) diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 000000000..79afa7451 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,21 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the version of Python and other tools you might need +build: + os: ubuntu-20.04 + tools: + python: "3.9" + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: doc/conf.py + +# Optionally declare the Python requirements required to build your docs +python: + install: + - requirements: doc/requirements.txt diff --git a/doc-requirements.txt b/doc/requirements.txt similarity index 100% rename from doc-requirements.txt rename to doc/requirements.txt From b7f394ce47239097f039c454a4b9dcc5f49fa198 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 17 Dec 2022 22:57:04 -0800 Subject: [PATCH 0128/1025] pin docutils to 0.16 until sphinx_rtd_theme is fixed https://github.com/readthedocs/sphinx_rtd_theme/issues/1115 --- doc/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/requirements.txt b/doc/requirements.txt index cf1a3a76e..123dcc0a2 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -6,3 +6,4 @@ sphinx_rtd_theme numpydoc ipykernel nbsphinx +docutils==0.16 # pin until sphinx_rtd_theme is compatible with 0.17 or later From 7278651aa11e311a0ca2bf0dc300a75d39f06cc4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 18 Dec 2022 08:08:02 -0800 Subject: [PATCH 0129/1025] use ubuntu-22.04 --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 79afa7451..dca7c8bc4 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -7,7 +7,7 @@ version: 2 # Set the version of Python and other tools you might need build: - os: ubuntu-20.04 + os: ubuntu-22.04 tools: python: "3.9" From 089ca21813b8c41063f3530810100990bad89072 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 18 Dec 2022 21:32:44 +0100 Subject: [PATCH 0130/1025] compare floats as almost equal --- control/tests/flatsys_test.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 3f308c79b..5e3fe5d7c 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -693,9 +693,9 @@ def test_response(self, xf, uf, Tf): # Recompute using response() response = traj.response(T, squeeze=False) - np.testing.assert_equal(T, response.time) - np.testing.assert_equal(u, response.inputs) - np.testing.assert_equal(x, response.states) + np.testing.assert_array_almost_equal(T, response.time) + np.testing.assert_array_almost_equal(u, response.inputs) + np.testing.assert_array_almost_equal(x, response.states) @pytest.mark.parametrize( "basis", @@ -713,7 +713,7 @@ def test_basis_class(self, basis): for j in range(basis.N): coefs = np.zeros(basis.N) coefs[j] = 1 - np.testing.assert_equal( + np.testing.assert_array_almost_equal( basis.eval(coefs, timepts), basis.eval_deriv(j, 0, timepts)) else: @@ -722,7 +722,7 @@ def test_basis_class(self, basis): for j in range(basis.var_ncoefs(i)): coefs = np.zeros(basis.var_ncoefs(i)) coefs[j] = 1 - np.testing.assert_equal( + np.testing.assert_array_almost_equal( basis.eval(coefs, timepts, var=i), basis.eval_deriv(j, 0, timepts, var=i)) @@ -732,7 +732,7 @@ def test_basis_class(self, basis): for j in range(basis.var_ncoefs(i)): coefs = np.zeros(basis.N) coefs[offset] = 1 - np.testing.assert_equal( + np.testing.assert_array_almost_equal( basis.eval(coefs, timepts)[i], basis.eval_deriv(j, 0, timepts, var=i)) offset += 1 From e13f57f3e7929b82cf8a5b909065ad9d01115b93 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sun, 18 Dec 2022 21:37:08 +0100 Subject: [PATCH 0131/1025] increase nulps --- control/tests/delay_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/tests/delay_test.py b/control/tests/delay_test.py index 25f37eeb5..24263c3b8 100644 --- a/control/tests/delay_test.py +++ b/control/tests/delay_test.py @@ -52,8 +52,8 @@ def testTvalues(self, T, dendeg, numdeg, baseden, basenum): refnum /= refden[0] refden /= refden[0] num, den = pade(T, dendeg, numdeg) - np.testing.assert_array_almost_equal_nulp(refden, den, nulp=2) - np.testing.assert_array_almost_equal_nulp(refnum, num, nulp=2) + np.testing.assert_array_almost_equal_nulp(refden, den, nulp=4) + np.testing.assert_array_almost_equal_nulp(refnum, num, nulp=4) def testErrors(self): "ValueError raised for invalid arguments" From 53522222ac4ca2f9055a87f09758d7b7343abd10 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 20 Dec 2022 20:56:51 -0800 Subject: [PATCH 0132/1025] fix FRD test errors (use exact freq points) --- control/tests/frd_test.py | 150 ++++++++++++++++++++------------------ 1 file changed, 80 insertions(+), 70 deletions(-) diff --git a/control/tests/frd_test.py b/control/tests/frd_test.py index ff88c3dea..1a383c2a7 100644 --- a/control/tests/frd_test.py +++ b/control/tests/frd_test.py @@ -51,72 +51,74 @@ def testOperators(self): h1 = TransferFunction([1], [1, 2, 2]) h2 = TransferFunction([1], [0.1, 1]) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(h1, omega) f2 = FRD(h2, omega) np.testing.assert_array_almost_equal( - (f1 + f2).frequency_response([0.1, 1.0, 10])[0], - (h1 + h2).frequency_response([0.1, 1.0, 10])[0]) + (f1 + f2).frequency_response(chkpts)[0], + (h1 + h2).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (f1 + f2).frequency_response([0.1, 1.0, 10])[1], - (h1 + h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 + f2).frequency_response(chkpts)[1], + (h1 + h2).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (f1 - f2).frequency_response([0.1, 1.0, 10])[0], - (h1 - h2).frequency_response([0.1, 1.0, 10])[0]) + (f1 - f2).frequency_response(chkpts)[0], + (h1 - h2).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (f1 - f2).frequency_response([0.1, 1.0, 10])[1], - (h1 - h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 - f2).frequency_response(chkpts)[1], + (h1 - h2).frequency_response(chkpts)[1]) # multiplication and division np.testing.assert_array_almost_equal( - (f1 * f2).frequency_response([0.1, 1.0, 10])[1], - (h1 * h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 * f2).frequency_response(chkpts)[1], + (h1 * h2).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (f1 / f2).frequency_response([0.1, 1.0, 10])[1], - (h1 / h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 / f2).frequency_response(chkpts)[1], + (h1 / h2).frequency_response(chkpts)[1]) # with default conversion from scalar np.testing.assert_array_almost_equal( - (f1 * 1.5).frequency_response([0.1, 1.0, 10])[1], - (h1 * 1.5).frequency_response([0.1, 1.0, 10])[1]) + (f1 * 1.5).frequency_response(chkpts)[1], + (h1 * 1.5).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (f1 / 1.7).frequency_response([0.1, 1.0, 10])[1], - (h1 / 1.7).frequency_response([0.1, 1.0, 10])[1]) + (f1 / 1.7).frequency_response(chkpts)[1], + (h1 / 1.7).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (2.2 * f2).frequency_response([0.1, 1.0, 10])[1], - (2.2 * h2).frequency_response([0.1, 1.0, 10])[1]) + (2.2 * f2).frequency_response(chkpts)[1], + (2.2 * h2).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (1.3 / f2).frequency_response([0.1, 1.0, 10])[1], - (1.3 / h2).frequency_response([0.1, 1.0, 10])[1]) + (1.3 / f2).frequency_response(chkpts)[1], + (1.3 / h2).frequency_response(chkpts)[1]) def testOperatorsTf(self): # get two SISO transfer functions h1 = TransferFunction([1], [1, 2, 2]) h2 = TransferFunction([1], [0.1, 1]) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(h1, omega) f2 = FRD(h2, omega) f2 # reference to avoid pyflakes error np.testing.assert_array_almost_equal( - (f1 + h2).frequency_response([0.1, 1.0, 10])[0], - (h1 + h2).frequency_response([0.1, 1.0, 10])[0]) + (f1 + h2).frequency_response(chkpts)[0], + (h1 + h2).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (f1 + h2).frequency_response([0.1, 1.0, 10])[1], - (h1 + h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 + h2).frequency_response(chkpts)[1], + (h1 + h2).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (f1 - h2).frequency_response([0.1, 1.0, 10])[0], - (h1 - h2).frequency_response([0.1, 1.0, 10])[0]) + (f1 - h2).frequency_response(chkpts)[0], + (h1 - h2).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (f1 - h2).frequency_response([0.1, 1.0, 10])[1], - (h1 - h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 - h2).frequency_response(chkpts)[1], + (h1 - h2).frequency_response(chkpts)[1]) # multiplication and division np.testing.assert_array_almost_equal( - (f1 * h2).frequency_response([0.1, 1.0, 10])[1], - (h1 * h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 * h2).frequency_response(chkpts)[1], + (h1 * h2).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (f1 / h2).frequency_response([0.1, 1.0, 10])[1], - (h1 / h2).frequency_response([0.1, 1.0, 10])[1]) + (f1 / h2).frequency_response(chkpts)[1], + (h1 / h2).frequency_response(chkpts)[1]) # the reverse does not work def testbdalg(self): @@ -124,49 +126,51 @@ def testbdalg(self): h1 = TransferFunction([1], [1, 2, 2]) h2 = TransferFunction([1], [0.1, 1]) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(h1, omega) f2 = FRD(h2, omega) np.testing.assert_array_almost_equal( - (bdalg.series(f1, f2)).frequency_response([0.1, 1.0, 10])[0], - (bdalg.series(h1, h2)).frequency_response([0.1, 1.0, 10])[0]) + (bdalg.series(f1, f2)).frequency_response(chkpts)[0], + (bdalg.series(h1, h2)).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (bdalg.parallel(f1, f2)).frequency_response([0.1, 1.0, 10])[0], - (bdalg.parallel(h1, h2)).frequency_response([0.1, 1.0, 10])[0]) + (bdalg.parallel(f1, f2)).frequency_response(chkpts)[0], + (bdalg.parallel(h1, h2)).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (bdalg.feedback(f1, f2)).frequency_response([0.1, 1.0, 10])[0], - (bdalg.feedback(h1, h2)).frequency_response([0.1, 1.0, 10])[0]) + (bdalg.feedback(f1, f2)).frequency_response(chkpts)[0], + (bdalg.feedback(h1, h2)).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (bdalg.negate(f1)).frequency_response([0.1, 1.0, 10])[0], - (bdalg.negate(h1)).frequency_response([0.1, 1.0, 10])[0]) + (bdalg.negate(f1)).frequency_response(chkpts)[0], + (bdalg.negate(h1)).frequency_response(chkpts)[0]) # append() and connect() not implemented for FRD objects # np.testing.assert_array_almost_equal( -# (bdalg.append(f1, f2)).frequency_response([0.1, 1.0, 10])[0], -# (bdalg.append(h1, h2)).frequency_response([0.1, 1.0, 10])[0]) +# (bdalg.append(f1, f2)).frequency_response(chkpts)[0], +# (bdalg.append(h1, h2)).frequency_response(chkpts)[0]) # # f3 = bdalg.append(f1, f2, f2) # h3 = bdalg.append(h1, h2, h2) # Q = np.mat([ [1, 2], [2, -1] ]) # np.testing.assert_array_almost_equal( -# (bdalg.connect(f3, Q, [2], [1])).frequency_response([0.1, 1.0, 10])[0], -# (bdalg.connect(h3, Q, [2], [1])).frequency_response([0.1, 1.0, 10])[0]) +# (bdalg.connect(f3, Q, [2], [1])).frequency_response(chkpts)[0], +# (bdalg.connect(h3, Q, [2], [1])).frequency_response(chkpts)[0]) def testFeedback(self): h1 = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(h1, omega) np.testing.assert_array_almost_equal( - f1.feedback(1).frequency_response([0.1, 1.0, 10])[0], - h1.feedback(1).frequency_response([0.1, 1.0, 10])[0]) + f1.feedback(1).frequency_response(chkpts)[0], + h1.feedback(1).frequency_response(chkpts)[0]) # Make sure default argument also works np.testing.assert_array_almost_equal( - f1.feedback().frequency_response([0.1, 1.0, 10])[0], - h1.feedback().frequency_response([0.1, 1.0, 10])[0]) + f1.feedback().frequency_response(chkpts)[0], + h1.feedback().frequency_response(chkpts)[0]) def testFeedback2(self): h2 = StateSpace([[-1.0, 0], [0, -2.0]], [[0.4], [0.1]], @@ -197,13 +201,14 @@ def testMIMO(self): [[1.0, 0.0], [0.0, 1.0]], [[0.0, 0.0], [0.0, 0.0]]) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(sys, omega) np.testing.assert_array_almost_equal( - sys.frequency_response([0.1, 1.0, 10])[0], - f1.frequency_response([0.1, 1.0, 10])[0]) + sys.frequency_response(chkpts)[0], + f1.frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - sys.frequency_response([0.1, 1.0, 10])[1], - f1.frequency_response([0.1, 1.0, 10])[1]) + sys.frequency_response(chkpts)[1], + f1.frequency_response(chkpts)[1]) @slycotonly def testMIMOfb(self): @@ -212,14 +217,15 @@ def testMIMOfb(self): [[1.0, 0.0], [0.0, 1.0]], [[0.0, 0.0], [0.0, 0.0]]) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(sys, omega).feedback([[0.1, 0.3], [0.0, 1.0]]) f2 = FRD(sys.feedback([[0.1, 0.3], [0.0, 1.0]]), omega) np.testing.assert_array_almost_equal( - f1.frequency_response([0.1, 1.0, 10])[0], - f2.frequency_response([0.1, 1.0, 10])[0]) + f1.frequency_response(chkpts)[0], + f2.frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - f1.frequency_response([0.1, 1.0, 10])[1], - f2.frequency_response([0.1, 1.0, 10])[1]) + f1.frequency_response(chkpts)[1], + f2.frequency_response(chkpts)[1]) @slycotonly def testMIMOfb2(self): @@ -229,15 +235,16 @@ def testMIMOfb2(self): np.array([[1.0, 0], [0, 0], [0, 1]]), np.eye(3), np.zeros((3, 2))) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] K = np.array([[1, 0.3, 0], [0.1, 0, 0]]) f1 = FRD(sys, omega).feedback(K) f2 = FRD(sys.feedback(K), omega) np.testing.assert_array_almost_equal( - f1.frequency_response([0.1, 1.0, 10])[0], - f2.frequency_response([0.1, 1.0, 10])[0]) + f1.frequency_response(chkpts)[0], + f2.frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - f1.frequency_response([0.1, 1.0, 10])[1], - f2.frequency_response([0.1, 1.0, 10])[1]) + f1.frequency_response(chkpts)[1], + f2.frequency_response(chkpts)[1]) @slycotonly def testMIMOMult(self): @@ -246,14 +253,15 @@ def testMIMOMult(self): [[1.0, 0.0], [0.0, 1.0]], [[0.0, 0.0], [0.0, 0.0]]) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(sys, omega) f2 = FRD(sys, omega) np.testing.assert_array_almost_equal( - (f1*f2).frequency_response([0.1, 1.0, 10])[0], - (sys*sys).frequency_response([0.1, 1.0, 10])[0]) + (f1*f2).frequency_response(chkpts)[0], + (sys*sys).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (f1*f2).frequency_response([0.1, 1.0, 10])[1], - (sys*sys).frequency_response([0.1, 1.0, 10])[1]) + (f1*f2).frequency_response(chkpts)[1], + (sys*sys).frequency_response(chkpts)[1]) @slycotonly def testMIMOSmooth(self): @@ -263,17 +271,18 @@ def testMIMOSmooth(self): [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]) sys2 = np.array([[1, 0, 0], [0, 1, 0]]) * sys omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(sys, omega, smooth=True) f2 = FRD(sys2, omega, smooth=True) np.testing.assert_array_almost_equal( - (f1*f2).frequency_response([0.1, 1.0, 10])[0], - (sys*sys2).frequency_response([0.1, 1.0, 10])[0]) + (f1*f2).frequency_response(chkpts)[0], + (sys*sys2).frequency_response(chkpts)[0]) np.testing.assert_array_almost_equal( - (f1*f2).frequency_response([0.1, 1.0, 10])[1], - (sys*sys2).frequency_response([0.1, 1.0, 10])[1]) + (f1*f2).frequency_response(chkpts)[1], + (sys*sys2).frequency_response(chkpts)[1]) np.testing.assert_array_almost_equal( - (f1*f2).frequency_response([0.1, 1.0, 10])[2], - (sys*sys2).frequency_response([0.1, 1.0, 10])[2]) + (f1*f2).frequency_response(chkpts)[2], + (sys*sys2).frequency_response(chkpts)[2]) def testAgainstOctave(self): # with data from octave: @@ -284,6 +293,7 @@ def testAgainstOctave(self): np.array([[1.0, 0], [0, 0], [0, 1]]), np.eye(3), np.zeros((3, 2))) omega = np.logspace(-1, 2, 10) + chkpts = omega[::3] f1 = FRD(sys, omega) np.testing.assert_array_almost_equal( (f1.frequency_response([1.0])[0] * From 9d72d79f38e4bf7bb91a7af4c76fc5141e4ceaad Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 22 Dec 2022 15:19:18 -0800 Subject: [PATCH 0133/1025] add OS/BLAS pip-based test matrix as GitHub workflow --- .github/scripts/set-pip-test-matrix.py | 28 ++++ .github/workflows/os-blas-test-matrix.yml | 176 ++++++++++++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 .github/scripts/set-pip-test-matrix.py create mode 100644 .github/workflows/os-blas-test-matrix.yml diff --git a/.github/scripts/set-pip-test-matrix.py b/.github/scripts/set-pip-test-matrix.py new file mode 100644 index 000000000..ed18239d0 --- /dev/null +++ b/.github/scripts/set-pip-test-matrix.py @@ -0,0 +1,28 @@ +""" set-pip-test-matrix.py + +Create test matrix for pip wheels +""" +import json +from pathlib import Path + +system_opt_blas_libs = {'ubuntu': ['OpenBLAS'], + 'macos' : ['OpenBLAS', 'Apple']} + +wheel_jobs = [] +for wkey in Path("slycot-wheels").iterdir(): + wos, wpy, wbl = wkey.name.split("-") + wheel_jobs.append({'packagekey': wkey.name, + 'os': wos, + 'python': wpy, + 'blas_lib': wbl, + }) + if wbl == "Generic": + for bl in system_opt_blas_libs[wos]: + wheel_jobs.append({ 'packagekey': wkey.name, + 'os': wos, + 'python': wpy, + 'blas_lib': bl, + }) + +matrix = { 'include': wheel_jobs } +print(json.dumps(matrix)) \ No newline at end of file diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml new file mode 100644 index 000000000..ff5b37744 --- /dev/null +++ b/.github/workflows/os-blas-test-matrix.yml @@ -0,0 +1,176 @@ +name: OS/BLAS test matrix + +on: push + +jobs: + build-pip: + name: Build pip Py${{ matrix.python }}, ${{ matrix.os }}, ${{ matrix.bla_vendor}} BLA_VENDOR + runs-on: ${{ matrix.os }}-latest + strategy: + fail-fast: false + matrix: + os: + - 'ubuntu' + - 'macos' + python: + - '3.8' + - '3.11' + bla_vendor: [ 'unset' ] + include: + - os: 'ubuntu' + python: '3.11' + bla_vendor: 'Generic' + - os: 'ubuntu' + python: '3.11' + bla_vendor: 'OpenBLAS' + - os: 'macos' + python: '3.11' + bla_vendor: 'Apple' + - os: 'macos' + python: '3.11' + bla_vendor: 'Generic' + - os: 'macos' + python: '3.11' + bla_vendor: 'OpenBLAS' + + steps: + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python }} + - name: Checkout Slycot + uses: actions/checkout@v3 + with: + repository: python-control/Slycot + fetch-depth: 0 + submodules: 'recursive' + - name: Setup Ubuntu + if: matrix.os == 'ubuntu' + run: | + sudo apt-get -y update + sudo apt-get -y install gfortran cmake --fix-missing + case ${{ matrix.bla_vendor }} in + unset | Generic ) sudo apt-get -y install libblas-dev liblapack-dev ;; + OpenBLAS ) sudo apt-get -y install libopenblas-dev ;; + *) + echo "bla_vendor option ${{ matrix.bla_vendor }} not supported" + exit 1 ;; + esac + - name: Setup macOS + if: matrix.os == 'macos' + run: | + case ${{ matrix.bla_vendor }} in + 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 "bla_vendor option ${{ matrix.bla_vendor }} not supported" + exit 1 ;; + esac + echo "FC=gfortran-11" >> $GITHUB_ENV + - name: Build wheel + env: + BLA_VENDOR: ${{ matrix.bla_vendor }} + CMAKE_GENERATOR: Unix Makefiles + run: | + if [[ $BLA_VENDOR = unset ]]; then unset BLA_VENDOR; fi + python -m pip install --upgrade pip + pip wheel -v -w . . + wheeldir=slycot-wheels/${{ matrix.os }}-${{ matrix.python }}-${{ matrix.bla_vendor }} + mkdir -p ${wheeldir} + cp ./slycot*.whl ${wheeldir}/ + - name: Save wheel + uses: actions/upload-artifact@v3 + with: + name: slycot-wheels + path: slycot-wheels + + + create-wheel-test-matrix: + name: Create wheel test matrix + runs-on: ubuntu-latest + needs: build-pip + if: always() # run tests for all successful builds, even if others failed + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Checkout python-control + uses: actions/checkout@v3 + - name: Download wheels (if any) + uses: actions/download-artifact@v3 + with: + name: slycot-wheels + path: slycot-wheels + - id: set-matrix + run: echo "matrix=$(python3 .github/scripts/set-pip-test-matrix.py)" >> $GITHUB_OUTPUT + + + test-wheel: + name: Test wheel ${{ matrix.packagekey }}, ${{matrix.blas_lib}} BLAS lib ${{ matrix.failok }} + needs: create-wheel-test-matrix + runs-on: ${{ matrix.os }}-latest + continue-on-error: ${{ matrix.failok == 'FAILOK' }} + + strategy: + fail-fast: false + matrix: ${{ fromJSON(needs.create-wheel-test-matrix.outputs.matrix) }} + + steps: + - name: Checkout Slycot + uses: actions/checkout@v3 + with: + repository: 'python-control/Slycot' + 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: + python-version: ${{ matrix.python }} + - name: Setup Ubuntu + if: matrix.os == 'ubuntu' + run: | + set -xe + sudo apt-get -y update + case ${{ matrix.blas_lib }} in + Generic ) sudo apt-get -y install libblas3 liblapack3 ;; + unset | OpenBLAS ) sudo apt-get -y install libopenblas-base ;; + *) + echo "BLAS ${{ matrix.blas_lib }} not supported for wheels on Ubuntu" + exit 1 ;; + esac + update-alternatives --display libblas.so.3-x86_64-linux-gnu + update-alternatives --display liblapack.so.3-x86_64-linux-gnu + - name: Setup macOS + if: matrix.os == 'macos' + run: | + set -xe + brew install coreutils + case ${{ matrix.blas_lib }} in + unset | Generic | Apple ) ;; # system provided (Uses Apple Accelerate Framework) + OpenBLAS ) + brew install openblas + echo "DYLIB_LIBRARY_PATH=/usr/local/opt/openblas/lib" >> $GITHUB_ENV + ;; + *) + echo "BLAS option ${{ matrix.blas_lib }} not supported for wheels on MacOS" + exit 1 ;; + esac + - name: Download wheels + uses: actions/download-artifact@v3 + with: + name: slycot-wheels + path: slycot-wheels + - name: Install Wheel + run: | + python -m pip install --upgrade pip + pip install matplotlib scipy pytest pytest-cov pytest-timeout coverage coveralls + pip install slycot-wheels/${{ matrix.packagekey }}/slycot*.whl + pip show slycot + - name: Test with pytest + run: pytest -v control/tests From 120120253a398c30a1cb0c28d590be6f6c7594e6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 22 Dec 2022 22:12:53 -0800 Subject: [PATCH 0134/1025] add OS/BLAS conda-based test matrix as GitHub workflow --- .github/conda-env/build-env.yml | 4 + .github/conda-env/test-env.yml | 1 + .github/scripts/set-conda-test-matrix.py | 34 ++++++ .github/workflows/os-blas-test-matrix.yml | 139 ++++++++++++++++++++++ 4 files changed, 178 insertions(+) create mode 100644 .github/conda-env/build-env.yml create mode 100644 .github/scripts/set-conda-test-matrix.py diff --git a/.github/conda-env/build-env.yml b/.github/conda-env/build-env.yml new file mode 100644 index 000000000..f75973640 --- /dev/null +++ b/.github/conda-env/build-env.yml @@ -0,0 +1,4 @@ +name: build-env +dependencies: + - boa + - numpy !=1.23.0 diff --git a/.github/conda-env/test-env.yml b/.github/conda-env/test-env.yml index a4944f768..1c28589a4 100644 --- a/.github/conda-env/test-env.yml +++ b/.github/conda-env/test-env.yml @@ -1,5 +1,6 @@ name: test-env dependencies: + - conda-build # for conda index - pip - coverage - coveralls diff --git a/.github/scripts/set-conda-test-matrix.py b/.github/scripts/set-conda-test-matrix.py new file mode 100644 index 000000000..954480cb0 --- /dev/null +++ b/.github/scripts/set-conda-test-matrix.py @@ -0,0 +1,34 @@ +""" set-conda-test-matrix.py + +Create test matrix for conda packages +""" +import json, re +from pathlib import Path + +osmap = {'linux': 'ubuntu', + 'osx': 'macos', + 'win': 'windows', + } + +blas_implementations = ['unset', 'Generic', 'OpenBLAS', 'Intel10_64lp'] + +combinations = {'ubuntu': blas_implementations, + 'macos': blas_implementations, + 'windows': ['unset', 'Intel10_64lp'], + } + +conda_jobs = [] +for conda_pkg_file in Path("slycot-conda-pkgs").glob("*/*.tar.bz2"): + cos = osmap[conda_pkg_file.parent.name.split("-")[0]] + m = re.search(r'py(\d)(\d+)_', conda_pkg_file.name) + pymajor, pyminor = int(m[1]), int(m[2]) + cpy = f'{pymajor}.{pyminor}' + for cbl in combinations[cos]: + cjob = {'packagekey': f'{cos}-{cpy}', + 'os': cos, + 'python': cpy, + 'blas_lib': cbl} + conda_jobs.append(cjob) + +matrix = { 'include': conda_jobs } +print(json.dumps(matrix)) diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml index ff5b37744..2a08da31e 100644 --- a/.github/workflows/os-blas-test-matrix.yml +++ b/.github/workflows/os-blas-test-matrix.yml @@ -89,6 +89,57 @@ jobs: path: slycot-wheels + build-conda: + name: Build conda Py${{ matrix.python }}, ${{ matrix.os }} + runs-on: ${{ matrix.os }}-latest + strategy: + fail-fast: false + matrix: + os: + - 'ubuntu' + - 'macos' + - 'windows' + python: + - '3.9' + - '3.11' + + steps: + - name: Checkout Slycot + uses: actions/checkout@v3 + with: + repository: python-control/Slycot + fetch-depth: 0 + submodules: 'recursive' + - name: Setup Conda + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: ${{ matrix.python }} + activate-environment: build-env + environment-file: .github/conda-env/build-env.yml + miniforge-version: latest + miniforge-variant: Mambaforge + channel-priority: strict + auto-update-conda: false + auto-activate-base: false + - name: Conda build + shell: bash -l {0} + run: | + set -e + numpyversion=$(python -c 'import numpy; print(numpy.version.version)') + conda mambabuild --python "${{ matrix.python }}" --numpy $numpyversion conda-recipe + # preserve directory structure for custom conda channel + find "${CONDA_PREFIX}/conda-bld" -maxdepth 2 -name 'slycot*.tar.bz2' | while read -r conda_pkg; do + conda_platform=$(basename $(dirname "${conda_pkg}")) + mkdir -p "slycot-conda-pkgs/${conda_platform}" + cp "${conda_pkg}" "slycot-conda-pkgs/${conda_platform}/" + done + - name: Save to local conda pkg channel + uses: actions/upload-artifact@v3 + with: + name: slycot-conda-pkgs + path: slycot-conda-pkgs + + create-wheel-test-matrix: name: Create wheel test matrix runs-on: ubuntu-latest @@ -108,6 +159,25 @@ jobs: run: echo "matrix=$(python3 .github/scripts/set-pip-test-matrix.py)" >> $GITHUB_OUTPUT + create-conda-test-matrix: + name: Create conda test matrix + runs-on: ubuntu-latest + needs: build-conda + if: always() # run tests for all successful builds, even if others failed + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Checkout python-control + uses: actions/checkout@v3 + - name: Download conda packages + uses: actions/download-artifact@v3 + with: + name: slycot-conda-pkgs + path: slycot-conda-pkgs + - id: set-matrix + run: echo "matrix=$(python3 .github/scripts/set-conda-test-matrix.py)" >> $GITHUB_OUTPUT + + test-wheel: name: Test wheel ${{ matrix.packagekey }}, ${{matrix.blas_lib}} BLAS lib ${{ matrix.failok }} needs: create-wheel-test-matrix @@ -174,3 +244,72 @@ jobs: pip show slycot - name: Test with pytest run: pytest -v control/tests + + + test-conda: + name: Test conda ${{ matrix.packagekey }}, ${{matrix.blas_lib}} BLAS lib ${{ matrix.failok }} + needs: create-conda-test-matrix + runs-on: ${{ matrix.os }}-latest + continue-on-error: ${{ matrix.failok == 'FAILOK' }} + + strategy: + fail-fast: false + matrix: ${{ fromJSON(needs.create-conda-test-matrix.outputs.matrix) }} + + defaults: + run: + shell: bash -l {0} + + steps: + - name: Checkout Slycot + uses: actions/checkout@v3 + with: + repository: 'python-control/Slycot' + path: slycot-src + - name: Checkout python-control + uses: actions/checkout@v3 + - name: Setup macOS + if: matrix.os == 'macos' + run: brew install coreutils + - name: Setup Conda + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: ${{ matrix.python }} + miniforge-version: latest + miniforge-variant: Mambaforge + activate-environment: test-env + environment-file: .github/conda-env/test-env.yml + channel-priority: strict + auto-activate-base: false + - name: Download conda packages + uses: actions/download-artifact@v3 + with: + name: slycot-conda-pkgs + path: slycot-conda-pkgs + - name: Install Conda package + run: | + set -e + case ${{ matrix.blas_lib }} in + unset ) # the conda-forge default (os dependent) + mamba install libblas libcblas liblapack + ;; + Generic ) + mamba install 'libblas=*=*netlib' 'libcblas=*=*netlib' 'liblapack=*=*netlib' + echo "libblas * *netlib" >> $CONDA_PREFIX/conda-meta/pinned + ;; + OpenBLAS ) + mamba install 'libblas=*=*openblas' openblas + echo "libblas * *openblas" >> $CONDA_PREFIX/conda-meta/pinned + ;; + Intel10_64lp ) + mamba install 'libblas=*=*mkl' mkl + echo "libblas * *mkl" >> $CONDA_PREFIX/conda-meta/pinned + ;; + esac + conda index --no-progress ./slycot-conda-pkgs + mamba install -c ./slycot-conda-pkgs slycot + conda list + - name: Test with pytest + run: JOBNAME=$JOBNAME pytest control/tests + env: + JOBNAME: ${{ matrix.packagekey }} ${{ matrix.blas_lib }} From f477c1336e983f2eafe5d79a4b9360b8d01d2464 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 23 Dec 2022 20:00:38 -0800 Subject: [PATCH 0135/1025] triger on pull_request --- .github/workflows/os-blas-test-matrix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml index 2a08da31e..fdd59763e 100644 --- a/.github/workflows/os-blas-test-matrix.yml +++ b/.github/workflows/os-blas-test-matrix.yml @@ -1,6 +1,6 @@ name: OS/BLAS test matrix -on: push +on: pull_request jobs: build-pip: From b8c4e5c9f961a17bab76d2395998a1f21882a61b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 23 Dec 2022 20:55:37 -0800 Subject: [PATCH 0136/1025] add flatsys xfails for platform=ubunto, BLAS=Generic, numpy=1.24.0 --- control/tests/flatsys_test.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 5e3fe5d7c..4d4c8cf6b 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -13,6 +13,8 @@ import scipy as sp import re import warnings +import os +import platform import control as ct import control.flatsys as fs @@ -201,9 +203,26 @@ def test_kinematic_car_ocp( minimize_kwargs={'method': method}, ) xd, ud = traj_ocp.eval(timepts) + if not traj_ocp.success: - # If unsuccessful, make sure the error is just about precision - assert re.match(".*precision loss.*", traj_ocp.message) is not None + # Known failure cases + if re.match(".*precision loss.*", traj_ocp.message): + pytest.xfail("precision loss in some configurations") + + elif re.match("Iteration limit.*", traj_ocp.message) and \ + re.match("ubuntu-3.* Generic", os.getenv('JOBNAME')) and \ + np.__version__ == '1.24.0': + pytest.xfail("gh820: iteration limit exceeded") + + else: + # Dump out information to allow creation of an exception + print("Platform: ", platform.platform()) + print("Python: ", platform.python_version()) + np.show_config() + print("JOBNAME: ", os.getenv('JOBNAME')) + + pytest.fail( + "unknown failure; view output to identify configuration") # Make sure the constraints are satisfied if input_constraints: From 4d6a6bf7b53b8c4b074738a54f7696e5669f9acd Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 24 Dec 2022 07:05:56 -0800 Subject: [PATCH 0137/1025] change trigger to workflow_dispatch or PR against relevant files --- .github/workflows/os-blas-test-matrix.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml index fdd59763e..fede19025 100644 --- a/.github/workflows/os-blas-test-matrix.yml +++ b/.github/workflows/os-blas-test-matrix.yml @@ -1,7 +1,15 @@ name: OS/BLAS test matrix -on: pull_request - +on: + workflow_dispatch: + pull_request: + paths: + - .github/workflows/os-blas-test-matrix.yml + - .github/scripts/set-conda-test-matrix.py + - .github/scripts/set-conda-pip-matrix.py + - .github/conda-env/build-env.yml + - .github/conda-env/test-env.yml + jobs: build-pip: name: Build pip Py${{ matrix.python }}, ${{ matrix.os }}, ${{ matrix.bla_vendor}} BLA_VENDOR From 5d0b3d0ab1ff003ba8772bf8debfc5301791119f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 24 Dec 2022 13:59:14 -0800 Subject: [PATCH 0138/1025] add code + tests for discrete time find_eqpt --- control/iosys.py | 38 ++++++++-------- control/tests/iosys_test.py | 87 +++++++++++++++++++++++++++++++++---- 2 files changed, 100 insertions(+), 25 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 2152092fc..58c99ff9d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2010,11 +2010,6 @@ def find_eqpt(sys, x0, u0=None, y0=None, t=0, params=None, if np.isscalar(y0): y0 = np.ones((ninputs,)) * y0 - # Discrete-time not yet supported - if isdtime(sys, strict=True): - raise NotImplementedError( - "Discrete time systems are not yet supported.") - # Make sure the input arguments match the sizes of the system if len(x0) != nstates or \ (u0 is not None and len(u0) != ninputs) or \ @@ -2030,18 +2025,28 @@ def find_eqpt(sys, x0, u0=None, y0=None, t=0, params=None, # Special cases: either inputs or outputs are constrained if y0 is None: # Take u0 as fixed and minimize over x - # TODO: update to allow discrete time systems - def ode_rhs(z): return sys._rhs(t, z, u0) - result = root(ode_rhs, x0) + if sys.isdtime(strict=True): + def state_rhs(z): return sys._rhs(t, z, u0) - z + else: + def state_rhs(z): return sys._rhs(t, z, u0) + + result = root(state_rhs, x0) z = (result.x, u0, sys._out(t, result.x, u0)) + else: # Take y0 as fixed and minimize over x and u - def rootfun(z): - # Split z into x and u - x, u = np.split(z, [nstates]) - # TODO: update to allow discrete time systems - return np.concatenate( - (sys._rhs(t, x, u), sys._out(t, x, u) - y0), axis=0) + if sys.isdtime(strict=True): + def rootfun(z): + x, u = np.split(z, [nstates]) + return np.concatenate( + (sys._rhs(t, x, u) - x, sys._out(t, x, u) - y0), + axis=0) + else: + def rootfun(z): + x, u = np.split(z, [nstates]) + return np.concatenate( + (sys._rhs(t, x, u), sys._out(t, x, u) - y0), axis=0) + z0 = np.concatenate((x0, u0), axis=0) # Put variables together result = root(rootfun, z0) # Find the eq point x, u = np.split(result.x, [nstates]) # Split result back in two @@ -2135,7 +2140,6 @@ def rootfun(z): # Keep track of the number of states in the set of free variables nstate_vars = len(state_vars) - dtime = isdtime(sys, strict=True) def rootfun(z): # Map the vector of values into the states and inputs @@ -2144,8 +2148,8 @@ def rootfun(z): # Compute the update and output maps dx = sys._rhs(t, x, u) - dx0 - if dtime: - dx -= x # TODO: check + if sys.isdtime(strict=True): + dx -= x # If no y0 is given, don't evaluate the output function if y0 is None: diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index c6b8d9d15..527f597ba 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -10,9 +10,10 @@ import re import warnings +import pytest import numpy as np -import pytest +from math import sqrt import control as ct from control import iosys as ios @@ -238,7 +239,7 @@ def test_linearize_named_signals(self, kincar): assert lin_nocopy.find_state('x') is None # if signal names are provided, they should override those of kincar - linearized_newnames = kincar.linearize([0, 0, 0], [0, 0], + linearized_newnames = kincar.linearize([0, 0, 0], [0, 0], name='linearized', copy_names=True, inputs=['v2', 'phi2'], outputs=['x2','y2']) assert linearized_newnames.name == 'linearized' @@ -766,8 +767,8 @@ def nlsys_output(t, x, u, params): np.testing.assert_allclose(ios_t, lin_t,atol=0.002,rtol=0.) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) - def test_find_eqpts(self, tsys): - """Test find_eqpt function""" + def test_find_eqpts_dfan(self, tsys): + """Test find_eqpt function on dfan example""" # Simple equilibrium point with no inputs nlsys = ios.NonlinearIOSystem(predprey) xeq, ueq, result = ios.find_eqpt( @@ -836,7 +837,7 @@ def test_find_eqpts(self, tsys): np.testing.assert_array_almost_equal( nlsys_full._rhs(0, xeq, ueq)[-4:], np.zeros((4,)), decimal=5) - # The same test as previous, but now all constraints are in the state vector + # Same test as before, but now all constraints are in the state vector nlsys_full = ios.NonlinearIOSystem(pvtol_full, None) xeq, ueq, result = ios.find_eqpt( nlsys_full, [0, 0, 0.1, 0.1, 0, 0], [0.01, 4*9.8], @@ -1482,7 +1483,7 @@ def test_linear_interconnection(): tf_siso = ct.tf(1, [0.1, 1]) ss_siso = ct.ss(1, 2, 1, 1) nl_siso = ios.NonlinearIOSystem( - lambda t, x, u, params: x*x, + lambda t, x, u, params: x*x, lambda t, x, u, params: u*x, states=1, inputs=1, outputs=1) # Create a "regular" InterconnectedSystem @@ -1530,7 +1531,7 @@ def test_linear_interconnection(): np.testing.assert_array_almost_equal(io_connect.C, ss_connect.C) np.testing.assert_array_almost_equal(io_connect.D, ss_connect.D) - # make sure interconnections of linear systems are linear and + # make sure interconnections of linear systems are linear and # if a nonlinear system is included then system is nonlinear assert isinstance(ss_siso*ss_siso, ios.LinearIOSystem) assert isinstance(tf_siso*ss_siso, ios.LinearIOSystem) @@ -1541,7 +1542,7 @@ def test_linear_interconnection(): assert ~isinstance(tf_siso*nl_siso, ios.LinearIOSystem) assert ~isinstance(nl_siso*tf_siso, ios.LinearIOSystem) assert ~isinstance(nl_siso*nl_siso, ios.LinearIOSystem) - + def predprey(t, x, u, params={}): """Predator prey dynamics""" @@ -1898,3 +1899,73 @@ def test_rss(): with pytest.warns(UserWarning, match="may be interpreted as continuous"): sys = ct.drss(2, 1, 1, dt=None) assert np.all(np.abs(sys.poles()) < 1) + + +def eqpt_rhs(t, x, u, params): + return np.array([x[0]/2 + u[0], x[0] - x[1]**2 + u[1], x[1] - x[2]]) + +def eqpt_out(t, x, u, params): + return np.array([x[0], x[1] + u[1]]) + +@pytest.mark.parametrize( + "x0, ix, u0, iu, y0, iy, dx0, idx, dt, x_expect, u_expect", [ + # Equilibrium points with input given + (0, None, 0, None, None, None, None, None, 0, [0, 0, 0], [0, 0]), + (0, None, 0, None, None, None, None, None, None, [0, 0, 0], [0, 0]), + ([0.9, 0.9, 0.9], None, [-1, 0], None, None, None, None, None, 0, + [2, sqrt(2), sqrt(2)], [-1, 0]), + ([0.9, -0.9, 0.9], None, [-1, 0], None, None, None, None, None, 0, + [2, -sqrt(2), -sqrt(2)], [-1, 0]), # same input, different eqpt + (0, None, 0, None, None, None, None, None, 1, [0, 0, 0], [0, 0]), #DT + (0, None, [-1, 0], None, None, None, None, None, 1, None, None), #DT + ([0, -0.1, 0], None, [0, -0.25], None, None, None, None, None, 1, #DT + [0, -0.5, -0.25], [0, -0.25]), + + # Equilibrium points with output given + ([0.9, 0.9, 0.9], None, [-0.9, 0], None, [2, sqrt(2)], None, None, + None, 0, [2, sqrt(2), sqrt(2)], [-1, 0]), + (0, None, [0, -0.25], None, [0, -0.75], None, None, None, 1, #DT + [0, -0.5, -0.25], [0, -0.25]), + + # Equilibrium points with mixture of inputs and outputs given + ([0.9, 0.9, 0.9], None, [-1, 0], [0], [2, sqrt(2)], [1], None, + None, 0, [2, sqrt(2), sqrt(2)], [-1, 0]), + (0, None, [0, -0.22], [0], [0, -0.75], [1], None, None, 1, #DT + [0, -0.5, -0.25], [0, -0.25]), + ]) + +def test_find_eqpt(x0, ix, u0, iu, y0, iy, dx0, idx, dt, x_expect, u_expect): + sys = ct.NonlinearIOSystem( + eqpt_rhs, eqpt_out, dt=dt, states=3, inputs=2, outputs=2) + + xeq, ueq = ct.find_eqpt( + sys, x0, u0, y0, ix=ix, iu=iu, iy=iy, dx0=dx0, idx=idx) + + # If no equilibrium points, skip remaining tests + if x_expect is None: + assert xeq is None + assert ueq is None + return + + # Make sure we are at an appropriate equilibrium point + if dt is None or dt == 0: + # Continuous time system + np.testing.assert_allclose(eqpt_rhs(0, xeq, ueq, {}), 0, atol=1e-6) + if y0 is not None: + y0 = np.array(y0) + iy = np.s_[:] if iy is None else np.array(iy) + np.testing.assert_allclose( + eqpt_out(0, xeq, ueq, {})[iy], y0[iy], atol=1e-6) + + else: + # Discrete time system + np.testing.assert_allclose(eqpt_rhs(0, xeq, ueq, {}), xeq, atol=1e-6) + if y0 is not None: + y0 = np.array(y0) + iy = np.s_[:] if iy is None else np.array(iy) + np.testing.assert_allclose( + eqpt_out(0, xeq, ueq, {})[iy], y0[iy], atol=1e-6) + + # Check that we got the expected result as well + np.testing.assert_allclose(np.array(xeq), x_expect, atol=1e-6) + np.testing.assert_allclose(np.array(ueq), u_expect, atol=1e-6) From 57ec9ff59135eb6c2b3cfba7edcb51e9e377ae39 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 25 Nov 2022 22:29:47 -0800 Subject: [PATCH 0139/1025] fix improper exception in timeresp.py --- control/timeresp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/timeresp.py b/control/timeresp.py index da158e0cc..509107cc8 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -642,7 +642,7 @@ def __len__(self): # Convert to pandas def to_pandas(self): if not pandas_check(): - ImportError('pandas not installed') + raise ImportError("pandas not installed") import pandas # Create a dict for setting up the data frame From 9837a978cdd2d0dbf41e1f1c8d507b508f0ce698 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 25 Nov 2022 22:30:05 -0800 Subject: [PATCH 0140/1025] fix typo in describing_function docstring --- control/descfcn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/descfcn.py b/control/descfcn.py index 149db1bd2..9adcc5dd1 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -74,7 +74,7 @@ def _f(self, x): def describing_function( F, A, num_points=100, zero_check=True, try_method=True): - """Numerical compute the describing function of a nonlinear function + """Numerically compute the describing function of a nonlinear function The describing function of a nonlinearity is given by magnitude and phase of the first harmonic of the function when evaluated along a sinusoidal From 3955064c811e943b61b674ca12b4595e202c0be1 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 24 Dec 2022 18:38:21 -0800 Subject: [PATCH 0141/1025] handle lack of $JOBNAME in flatsys properly --- control/tests/flatsys_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 4d4c8cf6b..db449b1d9 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -210,7 +210,7 @@ def test_kinematic_car_ocp( pytest.xfail("precision loss in some configurations") elif re.match("Iteration limit.*", traj_ocp.message) and \ - re.match("ubuntu-3.* Generic", os.getenv('JOBNAME')) and \ + re.match("ubuntu-3.* Generic", os.getenv('JOBNAME', '')) and \ np.__version__ == '1.24.0': pytest.xfail("gh820: iteration limit exceeded") From 363ea2b7823bebb0a05f6a6e4281610b9f8b7af5 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 26 Dec 2022 06:42:46 -0800 Subject: [PATCH 0142/1025] add quotes to JOBNAME expansion + build type --- .github/workflows/os-blas-test-matrix.yml | 8 +++++--- control/tests/flatsys_test.py | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml index fede19025..4470e2454 100644 --- a/.github/workflows/os-blas-test-matrix.yml +++ b/.github/workflows/os-blas-test-matrix.yml @@ -251,7 +251,9 @@ jobs: pip install slycot-wheels/${{ matrix.packagekey }}/slycot*.whl pip show slycot - name: Test with pytest - run: pytest -v control/tests + run: JOBNAME="$JOBNAME" pytest control/tests + env: + JOBNAME: wheel ${{ matrix.packagekey }} ${{ matrix.blas_lib }} test-conda: @@ -318,6 +320,6 @@ jobs: mamba install -c ./slycot-conda-pkgs slycot conda list - name: Test with pytest - run: JOBNAME=$JOBNAME pytest control/tests + run: JOBNAME="$JOBNAME" pytest control/tests env: - JOBNAME: ${{ matrix.packagekey }} ${{ matrix.blas_lib }} + JOBNAME: conda ${{ matrix.packagekey }} ${{ matrix.blas_lib }} diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index db449b1d9..196cddbd2 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -210,7 +210,8 @@ def test_kinematic_car_ocp( pytest.xfail("precision loss in some configurations") elif re.match("Iteration limit.*", traj_ocp.message) and \ - re.match("ubuntu-3.* Generic", os.getenv('JOBNAME', '')) and \ + re.match( + "conda ubuntu-3.* Generic", os.getenv('JOBNAME', '')) and \ np.__version__ == '1.24.0': pytest.xfail("gh820: iteration limit exceeded") From 5757f2f02fb979b857b94a6d7a26d6c1294728ae Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 26 Dec 2022 08:47:54 -0800 Subject: [PATCH 0143/1025] more careful checking of xfails in optimal_test.py --- control/tests/optimal_test.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index c76859dfc..53f2c29ad 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -626,7 +626,7 @@ def final_point_eval(x, u): ('collocation', 5, 'u0', 'endpoint'), ('collocation', 5, 'input', 'openloop'),# open loop sim fails ('collocation', 10, 'input', None), - ('collocation', 10, 'u0', None), # from documenentation + ('collocation', 10, 'u0', None), # from documentation ('collocation', 10, 'state', None), ('collocation', 20, 'state', None), ]) @@ -716,9 +716,11 @@ def vehicle_output(t, x, u, params): # Make sure we started and stopped at the right spot if fail == 'endpoint': + assert not np.allclose(result.states[:, -1], xf, rtol=1e-4) pytest.xfail("optimization does not converge to endpoint") else: np.testing.assert_almost_equal(result.states[:, 0], x0, decimal=4) + np.testing.assert_almost_equal(result.states[:, -1], xf, decimal=2) # Simulate the trajectory to make sure it looks OK resp = ct.input_output_response( From 8710ee2df653a003f5412a97d8b344086fc29b9d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Dec 2022 08:39:43 -0800 Subject: [PATCH 0144/1025] initial implementation of gain scheduling --- control/iosys.py | 26 +++-- control/statefbk.py | 179 +++++++++++++++++++++++++-------- control/tests/iosys_test.py | 13 ++- control/tests/statefbk_test.py | 125 +++++++++++++++++++++++ 4 files changed, 290 insertions(+), 53 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 2152092fc..5a3897200 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -536,6 +536,10 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, # functions. # + # If x0 and u0 are specified as lists, concatenate the elements + x0 = _concatenate_list_elements(x0, 'x0') + u0 = _concatenate_list_elements(u0, 'u0') + # Figure out dimensions if they were not specified. nstates = _find_size(self.nstates, x0) ninputs = _find_size(self.ninputs, u0) @@ -1758,14 +1762,7 @@ def input_output_response( ninputs = U.shape[0] # If we were passed a list of initial states, concatenate them - if isinstance(X0, (tuple, list)): - X0_list = [] - for i, x0 in enumerate(X0): - x0 = np.array(x0).reshape(-1) # convert everyting to 1D array - X0_list += x0.tolist() # add elements to initial state - - # Save the newly created input vector - X0 = np.array(X0_list) + X0 = _concatenate_list_elements(X0, 'X0') # If the initial state is too short, make it longer (NB: sys.nstates # could be None if nstates comes from size of initial condition) @@ -2377,6 +2374,19 @@ def ss(*args, **kwargs): return sys +# Utility function to allow lists states, inputs +def _concatenate_list_elements(X, name='X'): + # If we were passed a list, concatenate the elements together + if isinstance(X, (tuple, list)): + X_list = [] + for i, x in enumerate(X): + x = np.array(x).reshape(-1) # convert everyting to 1D array + X_list += x.tolist() # add elements to initial state + return np.array(X_list) + + # Otherwise, do nothing + return X + def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): """Create a stable random state space object. diff --git a/control/statefbk.py b/control/statefbk.py index 97f314da5..0901684a3 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -41,6 +41,7 @@ # External packages and modules import numpy as np +import scipy as sp from . import statesp from .mateqn import care, dare, _check_shape @@ -71,7 +72,7 @@ def sb03md(n, C, A, U, dico, job='X',fact='N',trana='N',ldwork=None): sb03od = None -__all__ = ['ctrb', 'obsv', 'gram', 'place', 'place_varga', 'lqr', +__all__ = ['ctrb', 'obsv', 'gram', 'place', 'place_varga', 'lqr', 'dlqr', 'acker', 'create_statefbk_iosystem'] @@ -600,8 +601,8 @@ def dlqr(*args, **kwargs): # Function to create an I/O sytems representing a state feedback controller def create_statefbk_iosystem( - sys, K, integral_action=None, xd_labels='xd[{i}]', ud_labels='ud[{i}]', - estimator=None, type='linear'): + sys, gain, integral_action=None, estimator=None, type=None, + xd_labels='xd[{i}]', ud_labels='ud[{i}]', gainsched_indices=None): """Create an I/O system using a (full) state feedback controller This function creates an input/output system that implements a @@ -617,26 +618,46 @@ def create_statefbk_iosystem( feedback gain (eg, from LQR). The function returns the controller ``ctrl`` and the closed loop systems ``clsys``, both as I/O systems. + A gain scheduled controller can also be created, by passing a list of + gains and a corresponding list of values of a set of scheduling + variables. In this case, the controller has the form + + u = ud - K_p(mu) (x - xd) - K_i(mu) integral(C x - C x_d) + + where mu represents the scheduling variable. + Parameters ---------- sys : InputOutputSystem The I/O system that represents the process dynamics. If no estimator is given, the output of this system should represent the full state. - K : ndarray - The state feedback gain. This matrix defines the gains to be - applied to the system. If ``integral_action`` is None, then the - dimensions of this array should be (sys.ninputs, sys.nstates). If - `integral action` is set to a matrix or a function, then additional - columns represent the gains of the integral states of the - controller. + gain : ndarray or tuple + If a array is give, it represents the state feedback gain (K). + This matrix defines the gains to be applied to the system. If + ``integral_action`` is None, then the dimensions of this array + should be (sys.ninputs, sys.nstates). If `integral action` is + set to a matrix or a function, then additional columns + represent the gains of the integral states of the controller. + + If a tuple is given, then it specifies a gain schedule. The + tuple should be of the form + + (gains, points[, method]) + + where gains is a list of gains :math:`K_j` and points is a list of + values :math:`\\mu_j` at which the gains are computed. If `method` + is specified, it is passed to :func:`scipy.interpolate.griddata` to + specify the method of interpolation. Possible values include + `linear`, `nearest`, and `cubic`. xd_labels, ud_labels : str or list of str, optional Set the name of the signals to use for the desired state and inputs. If a single string is specified, it should be a format string using - the variable ``i`` as an index. Otherwise, a list of strings matching - the size of xd and ud, respectively, should be used. Default is - ``'xd[{i}]'`` for xd_labels and ``'xd[{i}]'`` for ud_labels. + the variable ``i`` as an index. Otherwise, a list of strings + matching the size of xd and ud, respectively, should be used. + Default is ``'xd[{i}]'`` for xd_labels and ``'ud[{i}]'`` for + ud_labels. integral_action : None, ndarray, or func, optional If this keyword is specified, the controller can include integral @@ -650,30 +671,48 @@ def create_statefbk_iosystem( ``K`` matrix. estimator : InputOutputSystem, optional - If an estimator is provided, using the states of the estimator as + If an estimator is provided, use the states of the estimator as the system inputs for the controller. - type : 'nonlinear' or 'linear', optional - Set the type of controller to create. The default is a linear - controller implementing the LQR regulator. If the type is 'nonlinear', - a :class:NonlinearIOSystem is created instead, with the gain ``K`` as - a parameter (allowing modifications of the gain at runtime). + gainsched_indices : list of integers, optional + If a gain scheduled controller is specified, specify the indices of + the controller input to use for scheduling the gain. The input to + the controller is the desired state xd, the desired input ud, and + either the system state x or the system output y (if an estimator is + given). + + type : 'linear' or 'nonlinear', optional + Set the type of controller to create. The default for a linear gain + is a linear controller implementing the LQR regulator. If the type + is 'nonlinear', a :class:NonlinearIOSystem is created instead, with + the gain ``K`` as a parameter (allowing modifications of the gain at + runtime). If the gain parameter is a tuple, the a nonlinear, + gain-scheduled controller is created. Returns ------- ctrl : InputOutputSystem Input/output system representing the controller. This system takes - as inputs the desired state xd, the desired input ud, and the system - state x. It outputs the controller action u according to the - formula u = ud - K(x - xd). If the keyword `integral_action` is - specified, then an additional set of integrators is included in the - control system (with the gain matrix K having the integral gains - appended after the state gains). + as inputs the desired state xd, the desired input ud, and either the + system state x or the system output y (if an estimator is given). + It outputs the controller action u according to the formula u = ud - + K(x - xd). If the keyword `integral_action` is specified, then an + additional set of integrators is included in the control system + (with the gain matrix K having the integral gains appended after the + state gains). If a gain scheduled controller is specified, the gain + (proportional and integral) are evaluated using the input mu. clsys : InputOutputSystem Input/output system representing the closed loop system. This - systems takes as inputs the desired trajectory (xd, ud) and outputs - the system state x and the applied input u (vertically stacked). + systems takes as inputs the desired trajectory (xd, ud) along with + any unassigned gain scheduling values mu and outputs the system + state x and the applied input u (vertically stacked). + + Notes + ----- + 1. If the gain scheduling variable labes are set to the names of system + states, inputs, or outputs or desired states or inputs, then the + scheduling variables are internally connected to those variables. """ # Make sure that we were passed an I/O system as an input @@ -709,52 +748,104 @@ def create_statefbk_iosystem( C = np.zeros((0, sys.nstates)) # Check to make sure that state feedback has the right shape - if not isinstance(K, np.ndarray) or \ - K.shape != (sys.ninputs, estimator.noutputs + nintegrators): + if isinstance(gain, np.ndarray): + K = gain + if K.shape != (sys.ninputs, estimator.noutputs + nintegrators): + raise ControlArgument( + f'Control gain must be an array of size {sys.ninputs}' + f'x {sys.nstates}' + + (f'+{nintegrators}' if nintegrators > 0 else '')) + gainsched = False + + elif isinstance(gain, tuple): + # Check for gain scheduled controller + gains, points = gain[0:2] + method = 'nearest' if len(gain) < 3 else gain[2] + + # Stack gains and points if past as a list + gains = np.stack(gains) + points = np.stack(points) + gainsched=True + + else: + raise ControlArgument("gain must be an array or a tuple") + + # Decide on the type of system to create + if gainsched and type == 'linear': raise ControlArgument( - f'Control gain must be an array of size {sys.ninputs}' - f'x {sys.nstates}' + - (f'+{nintegrators}' if nintegrators > 0 else '')) + "type 'linear' not allowed for gain scheduled controller") + elif type is None: + type = 'nonlinear' if gainsched else 'linear' + elif type not in {'linear', 'nonlinear'}: + raise ControlArgument(f"unknown type '{type}'") # Figure out the labels to use if isinstance(xd_labels, str): - # Gnerate the list of labels using the argument as a format string + # Generate the list of labels using the argument as a format string xd_labels = [xd_labels.format(i=i) for i in range(sys.nstates)] if isinstance(ud_labels, str): - # Gnerate the list of labels using the argument as a format string + # Generate the list of labels using the argument as a format string ud_labels = [ud_labels.format(i=i) for i in range(sys.ninputs)] + # Process gainscheduling variables, if present + if gainsched: + # Create a copy of the scheduling variable indices (default = empty) + gainsched_indices = [] if gainsched_indices is None \ + else list(gainsched_indices) + + # Make sure the scheduling variable indices are the right length + if len(gainsched_indices) != points.shape[1]: + raise ControlArgument( + "Length of gainsched_indices must match dimension of" + " scheduling variables") + + # TODO: Process scheduling variables + # Define the controller system if type == 'nonlinear': # Create an I/O system for the state feedback gains - def _control_update(t, x, inputs, params): + def _control_update(t, states, inputs, params): # Split input into desired state, nominal input, and current state xd_vec = inputs[0:sys.nstates] x_vec = inputs[-estimator.nstates:] # Compute the integral error in the xy coordinates - return C @ x_vec - C @ xd_vec + return C @ (x_vec - xd_vec) + + def _compute_gain(mu, gains_, points_): + K = np.array([ + [sp.interpolate.griddata( + points_, gains_[:, i, j], mu, method=method).item() + for j in range(gains_.shape[2])] + for i in range(gains_.shape[1]) + ]) + return K - def _control_output(t, e, z, params): - K = params.get('K') + def _control_output(t, states, inputs, params): + if gainsched: + mu = inputs[gainsched_indices] + K_ = _compute_gain(mu, gains, points) + else: + K_ = params.get('K') # Split input into desired state, nominal input, and current state - xd_vec = z[0:sys.nstates] - ud_vec = z[sys.nstates:sys.nstates + sys.ninputs] - x_vec = z[-sys.nstates:] + xd_vec = inputs[0:sys.nstates] + ud_vec = inputs[sys.nstates:sys.nstates + sys.ninputs] + x_vec = inputs[-sys.nstates:] # Compute the control law - u = ud_vec - K[:, 0:sys.nstates] @ (x_vec - xd_vec) + u = ud_vec - K_[:, 0:sys.nstates] @ (x_vec - xd_vec) if nintegrators > 0: - u -= K[:, sys.nstates:] @ e + u -= K_[:, sys.nstates:] @ states return u + params = {} if gainsched else {'K': K} ctrl = NonlinearIOSystem( _control_update, _control_output, name='control', inputs=xd_labels + ud_labels + estimator.output_labels, - outputs=list(sys.input_index.keys()), params={'K': K}, + outputs=list(sys.input_index.keys()), params=params, states=nintegrators) elif type == 'linear' or type is None: diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index c6b8d9d15..71b59e5ce 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1187,7 +1187,7 @@ def test_signals_naming_convention_0_8_4(self, tsys): assert "copy of namedsys.x0" in same_name_series.state_index def test_named_signals_linearize_inconsistent(self, tsys): - """Mare sure that providing inputs or outputs not consistent with + """Make sure that providing inputs or outputs not consistent with updfcn or outfcn fail """ @@ -1232,6 +1232,17 @@ def outfcn(t, x, u, params): with pytest.raises(ValueError): sys2.linearize(x0, u0) + def test_linearize_concatenation(self, kincar): + # Create a simple nonlinear system to check (kinematic car) + iosys = kincar + linearized = iosys.linearize([0, np.array([0, 0])], [0, 0]) + np.testing.assert_array_almost_equal(linearized.A, np.zeros((3,3))) + np.testing.assert_array_almost_equal( + linearized.B, [[1, 0], [0, 0], [0, 1]]) + np.testing.assert_array_almost_equal( + linearized.C, [[1, 0, 0], [0, 1, 0]]) + np.testing.assert_array_almost_equal(linearized.D, np.zeros((2,2))) + def test_lineariosys_statespace(self, tsys): """Make sure that a LinearIOSystem is also a StateSpace object""" iosys_siso = ct.LinearIOSystem(tsys.siso_linsys, name='siso') diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 13f164e1f..80ad37b08 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -5,6 +5,8 @@ import numpy as np import pytest +import itertools +from math import pi, atan import control as ct from control import lqe, dlqe, poles, rss, ss, tf @@ -777,3 +779,126 @@ def test_statefbk_errors(self): with pytest.raises(ControlArgument, match="must be an array of size"): ctrl, clsys = ct.create_statefbk_iosystem( sys, K, integral_action=C_int) + + +# Kinematic car example for testing gain scheduling +@pytest.fixture +def unicycle(): + # Create a simple nonlinear system to check (kinematic car) + def unicycle_update(t, x, u, params): + return np.array([np.cos(x[2]) * u[0], np.sin(x[2]) * u[0], u[1]]) + + def unicycle_output(t, x, u, params): + return x + + return ct.NonlinearIOSystem( + unicycle_update, unicycle_output, + inputs = ['v', 'phi'], + outputs = ['x', 'y', 'theta'], + states = ['x_', 'y_', 'theta_']) + +from math import pi + +@pytest.mark.parametrize("method", [None, 'nearest']) +def test_gainsched_unicycle(unicycle, method): + # Speeds and angles at which to compute the gains + speeds = [1, 5, 10] + angles = -pi + np.linspace(0, 2*pi, 10) + points = list(itertools.product(speeds, angles)) + + # Gains for each speed (using LQR controller) + Q = np.identity(unicycle.nstates) + R = np.identity(unicycle.ninputs) + gains = [ct.lqr(unicycle.linearize( + [0, 0, angle], [speed, 0]), Q, R)[0] for speed, angle in points] + + # + # Schedule on desired speed and angle + # + + # Create gain scheduled controller + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, + (gains, points) if method is None else (gains, points, method), + gainsched_indices=[3, 2]) + + # Check the gain at the selected points + for speed, angle in points: + # Figure out the desired state and input + xe, ue = np.array([0, 0, angle]), np.array([speed, 0]) + xd, ud = np.array([0, 0, angle]), np.array([speed, 0]) + + # Check the control system at the scheduling points + ctrl_lin = ctrl.linearize([], [xd, ud, xe*0]) + K, S, E = ct.lqr(unicycle.linearize(xd, ud), Q, R) + np.testing.assert_allclose( + ctrl_lin.D[-xe.size:, -xe.size:], -K, rtol=1e-2) + + # Check the closed loop system at the scheduling points + clsys_lin = clsys.linearize(xe, [xd, ud]) + np.testing.assert_allclose(np.sort( + clsys_lin.poles()), np.sort(E), rtol=1e-2) + + # Run a simulation following a curved path + T = 10 # length of the trajectory [sec] + r = 10 # radius of the circle [m] + timepts = np.linspace(0, T, 100) + Xd = np.vstack([ + r * np.cos(timepts/T * pi/2 + 3*pi/2), + r * np.sin(timepts/T * pi/2 + 3*pi/2) + r, + timepts/T * pi/2 + ]) + Ud = np.vstack([ + np.ones_like(timepts) * (r * pi/2) / T, + np.ones_like(timepts) * (pi / 2) / T + ]) + X0 = Xd[:, 0] + np.array([-0.1, -0.1, -0.1]) + + resp = ct.input_output_response(clsys, timepts, [Xd, Ud], X0) + # plt.plot(resp.states[0], resp.states[1]) + np.testing.assert_allclose( + resp.states[:, -1], Xd[:, -1], atol=1e-2, rtol=1e-2) + + # + # Schedule on actual speed + # + + # Create gain scheduled controller + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, (gains, points), gainsched_indices=[3, 7]) + + # Check the gain at the selected points + for speed, angle in points: + # Figure out the desired state and input + xe, ue = np.array([0, 0, angle]), np.array([speed, 0]) + xd, ud = np.array([0, 0, angle]), np.array([speed, 0]) + + # Check the control system at the scheduling points + ctrl_lin = ctrl.linearize([], [xd*0, ud, xe]) + K, S, E = ct.lqr(unicycle.linearize(xe, ue), Q, R) + np.testing.assert_allclose( + ctrl_lin.D[-xe.size:, -xe.size:], -K, rtol=1e-2) + + # Check the closed loop system at the scheduling points + clsys_lin = clsys.linearize(xe, [xd, ud]) + np.testing.assert_allclose(np.sort( + clsys_lin.poles()), np.sort(E), rtol=1e-2) + + # Run a simulation following a curved path + T = 10 # length of the trajectory [sec] + r = 10 # radius of the circle [m] + timepts = np.linspace(0, T, 100) + Xd = np.vstack([ + r * np.cos(timepts/T * pi/2 + 3*pi/2), + r * np.sin(timepts/T * pi/2 + 3*pi/2) + r, + timepts/T * pi/2 + ]) + Ud = np.vstack([ + np.ones_like(timepts) * (r * pi/2) / T, + np.ones_like(timepts) * (pi / 2) / T + ]) + X0 = Xd[:, 0] + np.array([-0.1, -0.1, -0.1]) + + resp = ct.input_output_response(clsys, timepts, [Xd, Ud], X0) + np.testing.assert_allclose( + resp.states[:, -1], Xd[:, -1], atol=1e-2, rtol=1e-2) From 5fcf2b57dc3eec173ff91b215c99393b02e23eaa Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Dec 2022 11:05:12 -0800 Subject: [PATCH 0145/1025] add processing for linear, cubic interpolation --- control/statefbk.py | 31 ++++++++++++++++-------- control/tests/statefbk_test.py | 43 +++++++++++++++++----------------- 2 files changed, 43 insertions(+), 31 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 0901684a3..199c63bb9 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -802,6 +802,26 @@ def create_statefbk_iosystem( # TODO: Process scheduling variables + # Create interpolating function + if method == 'nearest': + _interp = sp.interpolate.NearestNDInterpolator(points, gains) + _nearest = _interp + elif method == 'linear': + _interp = sp.interpolate.LinearNDInterpolator(points, gains) + _nearest = sp.interpolate.NearestNDInterpolator(points, gains) + elif method == 'cubic': + _interp = sp.interpolate.CloughTocher2DInterpolator(points, gains) + _nearest = sp.interpolate.NearestNDInterpolator(points, gains) + else: + raise ControlArgument( + f"unknown gain scheduling method '{method}'") + + def _compute_gain(mu): + K = _interp(mu) + if np.isnan(K).any(): + K = _nearest(mu) + return K + # Define the controller system if type == 'nonlinear': # Create an I/O system for the state feedback gains @@ -813,19 +833,10 @@ def _control_update(t, states, inputs, params): # Compute the integral error in the xy coordinates return C @ (x_vec - xd_vec) - def _compute_gain(mu, gains_, points_): - K = np.array([ - [sp.interpolate.griddata( - points_, gains_[:, i, j], mu, method=method).item() - for j in range(gains_.shape[2])] - for i in range(gains_.shape[1]) - ]) - return K - def _control_output(t, states, inputs, params): if gainsched: mu = inputs[gainsched_indices] - K_ = _compute_gain(mu, gains, points) + K_ = _compute_gain(mu) else: K_ = params.get('K') diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 80ad37b08..998e94c85 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -799,18 +799,18 @@ def unicycle_output(t, x, u, params): from math import pi -@pytest.mark.parametrize("method", [None, 'nearest']) +@pytest.mark.parametrize("method", [None, 'nearest', 'linear', 'cubic']) def test_gainsched_unicycle(unicycle, method): # Speeds and angles at which to compute the gains speeds = [1, 5, 10] - angles = -pi + np.linspace(0, 2*pi, 10) + angles = np.linspace(0, pi/2, 4) points = list(itertools.product(speeds, angles)) # Gains for each speed (using LQR controller) Q = np.identity(unicycle.nstates) R = np.identity(unicycle.ninputs) - gains = [ct.lqr(unicycle.linearize( - [0, 0, angle], [speed, 0]), Q, R)[0] for speed, angle in points] + gains = [np.array(ct.lqr(unicycle.linearize( + [0, 0, angle], [speed, 0]), Q, R)[0]) for speed, angle in points] # # Schedule on desired speed and angle @@ -836,13 +836,28 @@ def test_gainsched_unicycle(unicycle, method): # Check the closed loop system at the scheduling points clsys_lin = clsys.linearize(xe, [xd, ud]) - np.testing.assert_allclose(np.sort( - clsys_lin.poles()), np.sort(E), rtol=1e-2) + np.testing.assert_allclose( + np.sort(clsys_lin.poles()), np.sort(E), rtol=1e-2) + + # Check the gain at an intermediate point and confirm stability + speed, angle = 2, pi/3 + xe, ue = np.array([0, 0, angle]), np.array([speed, 0]) + xd, ud = np.array([0, 0, angle]), np.array([speed, 0]) + clsys_lin = clsys.linearize(xe, [xd, ud]) + assert np.all(np.real(clsys_lin.poles()) < 0) + + # Make sure that gains are different from 'nearest' + if method is not None and method != 'nearest': + ctrl_nearest, clsys_nearest = ct.create_statefbk_iosystem( + unicycle, (gains, points, 'nearest'), gainsched_indices=[3, 2]) + nearest_lin = clsys_nearest.linearize(xe, [xd, ud]) + assert not np.allclose( + np.sort(clsys_lin.poles()), np.sort(nearest_lin.poles()), rtol=1e-2) # Run a simulation following a curved path T = 10 # length of the trajectory [sec] r = 10 # radius of the circle [m] - timepts = np.linspace(0, T, 100) + timepts = np.linspace(0, T, 50) Xd = np.vstack([ r * np.cos(timepts/T * pi/2 + 3*pi/2), r * np.sin(timepts/T * pi/2 + 3*pi/2) + r, @@ -885,20 +900,6 @@ def test_gainsched_unicycle(unicycle, method): clsys_lin.poles()), np.sort(E), rtol=1e-2) # Run a simulation following a curved path - T = 10 # length of the trajectory [sec] - r = 10 # radius of the circle [m] - timepts = np.linspace(0, T, 100) - Xd = np.vstack([ - r * np.cos(timepts/T * pi/2 + 3*pi/2), - r * np.sin(timepts/T * pi/2 + 3*pi/2) + r, - timepts/T * pi/2 - ]) - Ud = np.vstack([ - np.ones_like(timepts) * (r * pi/2) / T, - np.ones_like(timepts) * (pi / 2) / T - ]) - X0 = Xd[:, 0] + np.array([-0.1, -0.1, -0.1]) - resp = ct.input_output_response(clsys, timepts, [Xd, Ud], X0) np.testing.assert_allclose( resp.states[:, -1], Xd[:, -1], atol=1e-2, rtol=1e-2) From 6e56b733830cb339f82abd4ef7d07d90911e878e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Dec 2022 11:33:44 -0800 Subject: [PATCH 0146/1025] add gainsched label processing + unit tests for errors --- control/statefbk.py | 15 +++++++---- control/tests/statefbk_test.py | 46 ++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 199c63bb9..5ec989cf7 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -788,6 +788,9 @@ def create_statefbk_iosystem( # Generate the list of labels using the argument as a format string ud_labels = [ud_labels.format(i=i) for i in range(sys.ninputs)] + # Create the string of labels for the control system + input_labels = xd_labels + ud_labels + estimator.output_labels + # Process gainscheduling variables, if present if gainsched: # Create a copy of the scheduling variable indices (default = empty) @@ -797,10 +800,13 @@ def create_statefbk_iosystem( # Make sure the scheduling variable indices are the right length if len(gainsched_indices) != points.shape[1]: raise ControlArgument( - "Length of gainsched_indices must match dimension of" + "length of gainsched_indices must match dimension of" " scheduling variables") - # TODO: Process scheduling variables + # Process scheduling variables + for i, idx in enumerate(gainsched_indices): + if isinstance(idx, str): + gainsched_indices[i] = input_labels.index(gainsched_indices[i]) # Create interpolating function if method == 'nearest': @@ -855,9 +861,8 @@ def _control_output(t, states, inputs, params): params = {} if gainsched else {'K': K} ctrl = NonlinearIOSystem( _control_update, _control_output, name='control', - inputs=xd_labels + ud_labels + estimator.output_labels, - outputs=list(sys.input_index.keys()), params=params, - states=nintegrators) + inputs=input_labels, outputs=list(sys.input_index.keys()), + params=params, states=nintegrators) elif type == 'linear' or type is None: # Create the matrices implementing the controller diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 998e94c85..792fc59b7 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -849,7 +849,8 @@ def test_gainsched_unicycle(unicycle, method): # Make sure that gains are different from 'nearest' if method is not None and method != 'nearest': ctrl_nearest, clsys_nearest = ct.create_statefbk_iosystem( - unicycle, (gains, points, 'nearest'), gainsched_indices=[3, 2]) + unicycle, (gains, points, 'nearest'), + gainsched_indices=['ud[0]', 2]) nearest_lin = clsys_nearest.linearize(xe, [xd, ud]) assert not np.allclose( np.sort(clsys_lin.poles()), np.sort(nearest_lin.poles()), rtol=1e-2) @@ -880,7 +881,8 @@ def test_gainsched_unicycle(unicycle, method): # Create gain scheduled controller ctrl, clsys = ct.create_statefbk_iosystem( - unicycle, (gains, points), gainsched_indices=[3, 7]) + unicycle, (gains, points), + ud_labels=['vd', 'phid'], gainsched_indices=['vd', 'theta']) # Check the gain at the selected points for speed, angle in points: @@ -903,3 +905,43 @@ def test_gainsched_unicycle(unicycle, method): resp = ct.input_output_response(clsys, timepts, [Xd, Ud], X0) np.testing.assert_allclose( resp.states[:, -1], Xd[:, -1], atol=1e-2, rtol=1e-2) + +def test_gainsched_errors(unicycle): + # Set up gain schedule (same as previous test) + speeds = [1, 5, 10] + angles = np.linspace(0, pi/2, 4) + points = list(itertools.product(speeds, angles)) + + Q = np.identity(unicycle.nstates) + R = np.identity(unicycle.ninputs) + gains = [np.array(ct.lqr(unicycle.linearize( + [0, 0, angle], [speed, 0]), Q, R)[0]) for speed, angle in points] + + # Make sure the generic case works OK + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, (gains, points), gainsched_indices=[3, 2]) + xd, ud = np.array([0, 0, angles[0]]), np.array([speeds[0], 0]) + ctrl_lin = ctrl.linearize([], [xd, ud, xd*0]) + K, S, E = ct.lqr(unicycle.linearize(xd, ud), Q, R) + np.testing.assert_allclose( + ctrl_lin.D[-xd.size:, -xd.size:], -K, rtol=1e-2) + + # Wrong type of gain schedule argument + with pytest.raises(ControlArgument, match="gain must be an array"): + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, [gains, points], gainsched_indices=[3, 2]) + + # Mismatched dimensions for gains and points + with pytest.raises(ControlArgument, match="length of gainsched_indices"): + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, (gains, [speeds]), gainsched_indices=[3, 2]) + + # Unknown gain scheduling variable label + with pytest.raises(ValueError, match=".* not in list"): + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, (gains, points), gainsched_indices=['stuff', 2]) + + # Unknown gain scheduling method + with pytest.raises(ControlArgument, match="unknown gain scheduling method"): + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, (gains, points, 'stuff'), gainsched_indices=[3, 2]) From 0bde5710c6a770054f50cb02f524b3a0e59b7ef2 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Dec 2022 12:25:06 -0800 Subject: [PATCH 0147/1025] add documentation for continuous vs discrete find_eqpt computation --- control/iosys.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/control/iosys.py b/control/iosys.py index 58c99ff9d..23429b308 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1994,6 +1994,14 @@ def find_eqpt(sys, x0, u0=None, y0=None, t=0, params=None, If `return_result` is True, returns the `result` from the :func:`scipy.optimize.root` function. + Notes + ----- + For continuous time systems, equilibrium points are defined as points for + which the right hand side of the differential equation is zero: + :math:`f(t, x_e, u_e) = 0`. For discrete time systems, equilibrium points + are defined as points for which the right hand side of the difference + equation returns the current state: :math:`f(t, x_e, u_e) = x_e`. + """ from scipy.optimize import root From 21aa0a6fd563e360b23d8957a7aac6f27df4b937 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Dec 2022 17:50:30 -0800 Subject: [PATCH 0148/1025] add examples, update documentation, small refactoring of code --- control/statefbk.py | 117 +++++++++++++++++++-------------- control/tests/statefbk_test.py | 19 ++++-- doc/iosys.rst | 96 ++++++++++++++++++++++++--- doc/steering-gainsched.rst | 2 + examples/steering-gainsched.py | 95 ++++++++++++++++++++++++-- 5 files changed, 259 insertions(+), 70 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 5ec989cf7..9052d159d 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -602,7 +602,9 @@ def dlqr(*args, **kwargs): # Function to create an I/O sytems representing a state feedback controller def create_statefbk_iosystem( sys, gain, integral_action=None, estimator=None, type=None, - xd_labels='xd[{i}]', ud_labels='ud[{i}]', gainsched_indices=None): + xd_labels='xd[{i}]', ud_labels='ud[{i}]', gainsched_indices=None, + gainsched_method='linear', name=None, inputs=None, outputs=None, + states=None): """Create an I/O system using a (full) state feedback controller This function creates an input/output system that implements a @@ -640,16 +642,11 @@ def create_statefbk_iosystem( set to a matrix or a function, then additional columns represent the gains of the integral states of the controller. - If a tuple is given, then it specifies a gain schedule. The - tuple should be of the form - - (gains, points[, method]) - - where gains is a list of gains :math:`K_j` and points is a list of - values :math:`\\mu_j` at which the gains are computed. If `method` - is specified, it is passed to :func:`scipy.interpolate.griddata` to - specify the method of interpolation. Possible values include - `linear`, `nearest`, and `cubic`. + If a tuple is given, then it specifies a gain schedule. The tuple + should be of the form ``(gains, points)`` where gains is a list of + gains :math:`K_j` and points is a list of values :math:`\\mu_j` at + which the gains are computed. The `gainsched_indices` parameter + should be used to specify the scheduling variables. xd_labels, ud_labels : str or list of str, optional Set the name of the signals to use for the desired state and inputs. @@ -657,12 +654,13 @@ def create_statefbk_iosystem( the variable ``i`` as an index. Otherwise, a list of strings matching the size of xd and ud, respectively, should be used. Default is ``'xd[{i}]'`` for xd_labels and ``'ud[{i}]'`` for - ud_labels. + ud_labels. These settings can also be overriden using the `inputs` + keyword. integral_action : None, ndarray, or func, optional If this keyword is specified, the controller can include integral - action in addition to state feedback. If ``integral_action`` is an - ndarray, it will be multiplied by the current and desired state to + action in addition to state feedback. If ``integral_action`` is a + matrix, it will be multiplied by the current and desired state to generate the error for the internal integrator states of the control law. If ``integral_action`` is a function ``h``, that function will be called with the signature h(t, x, u, params) to obtain the @@ -674,19 +672,28 @@ def create_statefbk_iosystem( If an estimator is provided, use the states of the estimator as the system inputs for the controller. - gainsched_indices : list of integers, optional + gainsched_indices : list of int or str, optional If a gain scheduled controller is specified, specify the indices of - the controller input to use for scheduling the gain. The input to + the controller input to use for scheduling the gain. The input to the controller is the desired state xd, the desired input ud, and either the system state x or the system output y (if an estimator is - given). + given). The indices can either be specified as integer offsets into + the input vector or as strings matching the signal names of the + input vector. + + gainsched_method : str, optional + The method to use for gain scheduling. Possible values include + `linear` (default), `nearest`, and `cubic`. More information is + available in :func:`scipy.interpolate.griddata`. For points outside + of the convex hull of the scheduling points, the gain at the nearest + point is used. type : 'linear' or 'nonlinear', optional Set the type of controller to create. The default for a linear gain is a linear controller implementing the LQR regulator. If the type is 'nonlinear', a :class:NonlinearIOSystem is created instead, with the gain ``K`` as a parameter (allowing modifications of the gain at - runtime). If the gain parameter is a tuple, the a nonlinear, + runtime). If the gain parameter is a tuple, then a nonlinear, gain-scheduled controller is created. Returns @@ -694,25 +701,30 @@ def create_statefbk_iosystem( ctrl : InputOutputSystem Input/output system representing the controller. This system takes as inputs the desired state xd, the desired input ud, and either the - system state x or the system output y (if an estimator is given). - It outputs the controller action u according to the formula u = ud - - K(x - xd). If the keyword `integral_action` is specified, then an - additional set of integrators is included in the control system - (with the gain matrix K having the integral gains appended after the - state gains). If a gain scheduled controller is specified, the gain - (proportional and integral) are evaluated using the input mu. + system state x or the estimated state xhat. It outputs the + controller action u according to the formula u = ud - K(x - xd). If + the keyword `integral_action` is specified, then an additional set + of integrators is included in the control system (with the gain + matrix K having the integral gains appended after the state gains). + If a gain scheduled controller is specified, the gain (proportional + and integral) are evaluated using the scheduling variables specified + by ``gainsched_indices``. clsys : InputOutputSystem Input/output system representing the closed loop system. This - systems takes as inputs the desired trajectory (xd, ud) along with - any unassigned gain scheduling values mu and outputs the system - state x and the applied input u (vertically stacked). - - Notes - ----- - 1. If the gain scheduling variable labes are set to the names of system - states, inputs, or outputs or desired states or inputs, then the - scheduling variables are internally connected to those variables. + systems takes as inputs the desired trajectory (xd, ud) and outputs + the system state x and the applied input u (vertically stacked). + + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals of the transformed + system. If not given, the inputs and outputs are the same as the + original system. + + name : string, optional + System name. If unspecified, a generic name is generated + with a unique integer id. """ # Make sure that we were passed an I/O system as an input @@ -759,8 +771,9 @@ def create_statefbk_iosystem( elif isinstance(gain, tuple): # Check for gain scheduled controller + if len(gain) != 2: + raise ControlArgument("gain must be a 2-tuple for gain scheduling") gains, points = gain[0:2] - method = 'nearest' if len(gain) < 3 else gain[2] # Stack gains and points if past as a list gains = np.stack(gains) @@ -788,8 +801,13 @@ def create_statefbk_iosystem( # Generate the list of labels using the argument as a format string ud_labels = [ud_labels.format(i=i) for i in range(sys.ninputs)] - # Create the string of labels for the control system - input_labels = xd_labels + ud_labels + estimator.output_labels + # Create the signal and system names + if inputs is None: + inputs = xd_labels + ud_labels + estimator.output_labels + if outputs is None: + outputs = list(sys.input_index.keys()) + if states is None: + states = nintegrators # Process gainscheduling variables, if present if gainsched: @@ -806,21 +824,22 @@ def create_statefbk_iosystem( # Process scheduling variables for i, idx in enumerate(gainsched_indices): if isinstance(idx, str): - gainsched_indices[i] = input_labels.index(gainsched_indices[i]) + gainsched_indices[i] = inputs.index(gainsched_indices[i]) # Create interpolating function - if method == 'nearest': + if gainsched_method == 'nearest': _interp = sp.interpolate.NearestNDInterpolator(points, gains) - _nearest = _interp - elif method == 'linear': + def _nearest(mu): + raise SystemError(f"could not find nearest gain at mu = {mu}") + elif gainsched_method == 'linear': _interp = sp.interpolate.LinearNDInterpolator(points, gains) _nearest = sp.interpolate.NearestNDInterpolator(points, gains) - elif method == 'cubic': + elif gainsched_method == 'cubic': _interp = sp.interpolate.CloughTocher2DInterpolator(points, gains) _nearest = sp.interpolate.NearestNDInterpolator(points, gains) else: raise ControlArgument( - f"unknown gain scheduling method '{method}'") + f"unknown gain scheduling method '{gainsched_method}'") def _compute_gain(mu): K = _interp(mu) @@ -860,9 +879,8 @@ def _control_output(t, states, inputs, params): params = {} if gainsched else {'K': K} ctrl = NonlinearIOSystem( - _control_update, _control_output, name='control', - inputs=input_labels, outputs=list(sys.input_index.keys()), - params=params, states=nintegrators) + _control_update, _control_output, name=name, inputs=inputs, + outputs=outputs, states=states, params=params) elif type == 'linear' or type is None: # Create the matrices implementing the controller @@ -879,9 +897,8 @@ def _control_output(t, states, inputs, params): ]) ctrl = ss( - A_lqr, B_lqr, C_lqr, D_lqr, dt=sys.dt, name='control', - inputs=xd_labels + ud_labels + estimator.output_labels, - outputs=list(sys.input_index.keys()), states=nintegrators) + A_lqr, B_lqr, C_lqr, D_lqr, dt=sys.dt, name=name, + inputs=inputs, outputs=outputs, states=states) else: raise ControlArgument(f"unknown type '{type}'") @@ -890,7 +907,7 @@ def _control_output(t, states, inputs, params): closed = interconnect( [sys, ctrl] if estimator == sys else [sys, ctrl, estimator], name=sys.name + "_" + ctrl.name, - inplist=xd_labels + ud_labels, inputs=xd_labels + ud_labels, + inplist=inputs[:-sys.nstates], inputs=inputs[:-sys.nstates], outlist=sys.output_labels + sys.input_labels, outputs=sys.output_labels + sys.input_labels ) diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 792fc59b7..343c8790b 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -799,7 +799,7 @@ def unicycle_output(t, x, u, params): from math import pi -@pytest.mark.parametrize("method", [None, 'nearest', 'linear', 'cubic']) +@pytest.mark.parametrize("method", ['nearest', 'linear', 'cubic']) def test_gainsched_unicycle(unicycle, method): # Speeds and angles at which to compute the gains speeds = [1, 5, 10] @@ -818,9 +818,8 @@ def test_gainsched_unicycle(unicycle, method): # Create gain scheduled controller ctrl, clsys = ct.create_statefbk_iosystem( - unicycle, - (gains, points) if method is None else (gains, points, method), - gainsched_indices=[3, 2]) + unicycle, (gains, points), + gainsched_indices=[3, 2], gainsched_method=method) # Check the gain at the selected points for speed, angle in points: @@ -849,8 +848,8 @@ def test_gainsched_unicycle(unicycle, method): # Make sure that gains are different from 'nearest' if method is not None and method != 'nearest': ctrl_nearest, clsys_nearest = ct.create_statefbk_iosystem( - unicycle, (gains, points, 'nearest'), - gainsched_indices=['ud[0]', 2]) + unicycle, (gains, points), + gainsched_indices=['ud[0]', 2], gainsched_method='nearest') nearest_lin = clsys_nearest.linearize(xe, [xd, ud]) assert not np.allclose( np.sort(clsys_lin.poles()), np.sort(nearest_lin.poles()), rtol=1e-2) @@ -931,6 +930,11 @@ def test_gainsched_errors(unicycle): ctrl, clsys = ct.create_statefbk_iosystem( unicycle, [gains, points], gainsched_indices=[3, 2]) + # Wrong number of gain schedule argument + with pytest.raises(ControlArgument, match="gain must be a 2-tuple"): + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, (gains, speeds, angles), gainsched_indices=[3, 2]) + # Mismatched dimensions for gains and points with pytest.raises(ControlArgument, match="length of gainsched_indices"): ctrl, clsys = ct.create_statefbk_iosystem( @@ -944,4 +948,5 @@ def test_gainsched_errors(unicycle): # Unknown gain scheduling method with pytest.raises(ControlArgument, match="unknown gain scheduling method"): ctrl, clsys = ct.create_statefbk_iosystem( - unicycle, (gains, points, 'stuff'), gainsched_indices=[3, 2]) + unicycle, (gains, points), + gainsched_indices=[3, 2], gainsched_method='unknown') diff --git a/doc/iosys.rst b/doc/iosys.rst index 1da7f5884..994d4900e 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -73,18 +73,18 @@ We begin by defining the dynamics of the system d = params.get('d', 0.56) k = params.get('k', 125) r = params.get('r', 1.6) - + # Map the states into local variable names H = x[0] L = x[1] # Compute the control action (only allow addition of food) u_0 = u if u > 0 else 0 - + # Compute the discrete updates dH = (r + u_0) * H * (1 - H/k) - (a * H * L)/(c + H) dL = b * (a * H * L)/(c + H) - d * L - + return [dH, dL] We now create an input/output system using these dynamics: @@ -105,10 +105,10 @@ of the system: X0 = [25, 20] # Initial H, L T = np.linspace(0, 70, 500) # Simulation 70 years of time - + # Simulate the system t, y = ct.input_output_response(io_predprey, T, 0, X0) - + # Plot the response plt.figure(1) plt.plot(t, y[0]) @@ -168,14 +168,14 @@ function: inplist=['control.Ld'], outlist=['predprey.H', 'predprey.L', 'control.y[0]'] ) - + Finally, we simulate the closed loop system: .. code-block:: python # Simulate the system t, y = ct.input_output_response(io_closed, T, 30, [15, 20]) - + # Plot the response plt.figure(2) plt.subplot(2, 1, 1) @@ -198,7 +198,7 @@ Summing junction The :func:`~control.summing_junction` function can be used to create an input/output system that takes the sum of an arbitrary number of inputs. For -ezample, to create an input/output system that takes the sum of three inputs, +example, to create an input/output system that takes the sum of three inputs, use the command .. code-block:: python @@ -256,6 +256,86 @@ of the interconnected system) is not found, but inputs and outputs of individual systems that are not connected to other systems are left unconnected (so be careful!). +Automated creation of state feedback systems +-------------------------------------------- + +The :func:`~control.create_statefbk_iosystem` function can be used to +create an I/O system consisting of a state feedback gain (with +optional integral action and gain scheduling) and an estimator. A +basic state feedback controller of the form + +.. math:: + + u = u_\text{d} - K (x - x_\text{d}) + +can be created with the command:: + + ctrl, clsys = ct.create_statefbk_iosystem(sys, K) + +where `sys` is the process dynamics and `K` is the state feedback gain +(e.g., from LQR). The function returns the controller `ctrl` and the +closed loop systems `clsys`, both as I/O systems. The input to the +controller is the vector of desired states :math:`x_\text{d}`, desired +inputs :math:`u_\text{d}`, and system states :math:`x`. + +If the full system state is not available, the output of a state +estimator can be used to construct the controller using the command:: + + ctrl, clsys = ct.create_statefbk_iosystem(sys, K, estimator=estim) + +where `estim` is the state estimator I/O system. The controller will +have the same form as above, but with the system state :math:`x` +replaced by the estimated state :math:`\hat x` (output of `estim`). +The closed loop controller will include both the state feedback and +the estimator. + +Integral action can be included using the `integral_action` keyword. +The value of this keyword can either be an matrix (ndarray) or a +function. If a matrix :math:`C` is specified, the difference between +the desired state and system state will be multiplied by this matrix +and integrated. The controller gain should then consist of a set of +proportional gains :math:`K_\text{p}` and integral gains +:math:`K_\text{i}` with + +.. math:: + + K = \begin{bmatrix} K_\text{p} \\ K_\text{i} \end{bmatrix} + +and the control action will be given by + +.. math:: + + u = u_\text{d} - K\text{p} (x - x_\text{d}) - + K_\text{i} \int C (x - x_\text{d}) dt. + +(If an estimator is specified, :math:`\hat x` will be used in place of +:math:`x`.) + +Finally, gain scheduling on the desired state, desired input, or +system state can be implemented by setting the gain to a 2-tuple +consisting of a list of gains and a list of points at which the gains +were computed, as well as a description of the scheduling variables:: + + ctrl, clsys = ct.create_statefbk_iosystem( + sys, ([g1, ..., gN], [p1, ..., pN]), gainsched_indices=[s1, ..., sq]) + +The list of indices can either be integers indicating the offset into +the controller input vector :math:`(x_\text{d}, u_\text{d}, x)` or a +list of strings matching the names of the input signals. The +controller implemented in this case has the form + +.. math:: + + u = u_\text{d} - K(\mu) (x - x_\text{d}) + +where :math:`\mu` represents the scheduling variables. See +:ref:`steering-gainsched.py` for an example implementation of a gain +scheduled controller (in the alternative formulation section at the +bottom of the file). + +Integral action and state estimation can also be used with gain +scheduled controllers. + Module classes and functions ============================ diff --git a/doc/steering-gainsched.rst b/doc/steering-gainsched.rst index 511f76b8e..a5ec2e0c8 100644 --- a/doc/steering-gainsched.rst +++ b/doc/steering-gainsched.rst @@ -1,3 +1,5 @@ +.. _steering-gainsched.py: + Gain scheduled control for vehicle steeering (I/O system) --------------------------------------------------------- diff --git a/examples/steering-gainsched.py b/examples/steering-gainsched.py index 7ddc6b5b8..88eed9a95 100644 --- a/examples/steering-gainsched.py +++ b/examples/steering-gainsched.py @@ -70,7 +70,7 @@ def control_output(t, x, u, params): latpole1 = params.get('latpole1', -1/2 + sqrt(-7)/2) latpole2 = params.get('latpole2', -1/2 - sqrt(-7)/2) l = params.get('wheelbase', 3) - + # Extract the system inputs ex, ey, etheta, vd, phid = u @@ -85,7 +85,7 @@ def control_output(t, x, u, params): else: # We aren't moving, so don't turn the steering wheel phi = phid - + return np.array([v, phi]) # Define the controller as an input/output system @@ -135,7 +135,7 @@ def trajgen_output(t, x, u, params): # +----------- [-1] -----------+ # # We construct the system using the InterconnectedSystem constructor and using -# signal labels to keep track of everything. +# signal labels to keep track of everything. steering = ct.interconnect( # List of subsystems @@ -186,8 +186,93 @@ def trajgen_output(t, x, u, params): plt.plot([0, 5], [vref, vref], 'k--') # Plot the system output - y_line, = plt.plot(tout, yout[y_index, :], 'r') # lateral position - v_line, = plt.plot(tout, yout[v_index, :], 'b') # vehicle velocity + y_line, = plt.plot(tout, yout[y_index], 'r') # lateral position + v_line, = plt.plot(tout, yout[v_index], 'b') # vehicle velocity + +# Add axis labels +plt.xlabel('Time (s)') +plt.ylabel('x vel (m/s), y pos (m)') +plt.legend((v_line, y_line), ('v', 'y'), loc='center right', frameon=False) + +# +# Alternative formulation, using create_statefbk_iosystem() +# +# A different way to implement gain scheduling is to use the gain scheduling +# functionality built into the create_statefbk_iosystem() function, where we +# pass a table of gains instead of a single gain. To generate a more +# interesting plot, we scale the feedforward input to generate some error. +# + +import itertools +from math import pi + +# Define the points for the scheduling variables +speeds = [1, 10, 20] +angles = np.linspace(-pi, pi, 4) +points = list(itertools.product(speeds, angles)) + +# Create controllers at each scheduling point +Q = np.diag([1, 1, 1]) +R = np.diag([0.1, 0.1]) +gains = [np.array(ct.lqr(vehicle.linearize( + [0, 0, angle], [speed, 0]), Q, R)[0]) for speed, angle in points] + +# Create the gain scheduled system +controller, _ = ct.create_statefbk_iosystem( + vehicle, (gains, points), name='controller', ud_labels=['vd', 'phid'], + gainsched_indices=['vd', 'theta'], gainsched_method='linear') + +# Connect everything together (note that controller inputs are different +steering = ct.interconnect( + # List of subsystems + (trajgen, controller, vehicle), name='steering', + + # Interconnections between subsystems + connections=( + ['controller.xd[0]', 'trajgen.xd'], + ['controller.xd[1]', 'trajgen.yd'], + ['controller.xd[2]', 'trajgen.thetad'], + ['controller.x', 'vehicle.x'], + ['controller.y', 'vehicle.y'], + ['controller.theta', 'vehicle.theta'], + ['controller.vd', ('trajgen', 'vd', 0.2)], # create error + ['controller.phid', 'trajgen.phid'], + ['vehicle.v', 'controller.v'], + ['vehicle.phi', 'controller.phi'] + ), + + # System inputs + inplist=['trajgen.vref', 'trajgen.yref'], + inputs=['yref', 'vref'], + + # System outputs + outlist=['vehicle.x', 'vehicle.y', 'vehicle.theta', 'controller.v', + 'controller.phi'], + outputs=['x', 'y', 'theta', 'v', 'phi'] +) + +# Plot the results to compare to the previous case +plt.figure(); + +# Plot the reference trajectory for the y position +plt.plot([0, 5], [yref, yref], 'k--') + +# Find the signals we want to plot +y_index = steering.find_output('y') +v_index = steering.find_output('v') + +# Do an iteration through different speeds +for vref in [8, 10, 12]: + # Simulate the closed loop controller response + tout, yout = ct.input_output_response( + steering, T, [vref * np.ones(len(T)), yref * np.ones(len(T))]) + + # Plot the reference speed + plt.plot([0, 5], [vref, vref], 'k--') + + # Plot the system output + y_line, = plt.plot(tout, yout[y_index], 'r') # lateral position + v_line, = plt.plot(tout, yout[v_index], 'b') # vehicle velocity # Add axis labels plt.xlabel('Time (s)') From 0bfe92142367f4580cb173402c286b846e024bdb Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Dec 2022 20:39:25 -0800 Subject: [PATCH 0149/1025] small documentation updates --- control/statefbk.py | 35 ++++++++++++++++++----------------- doc/iosys.rst | 8 ++++++-- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 9052d159d..87f191ff0 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -676,17 +676,17 @@ def create_statefbk_iosystem( If a gain scheduled controller is specified, specify the indices of the controller input to use for scheduling the gain. The input to the controller is the desired state xd, the desired input ud, and - either the system state x or the system output y (if an estimator is + the system state x (or state estimate xhat, if an estimator is given). The indices can either be specified as integer offsets into the input vector or as strings matching the signal names of the input vector. gainsched_method : str, optional - The method to use for gain scheduling. Possible values include - `linear` (default), `nearest`, and `cubic`. More information is - available in :func:`scipy.interpolate.griddata`. For points outside - of the convex hull of the scheduling points, the gain at the nearest - point is used. + The method to use for gain scheduling. Possible values are 'linear' + (default), 'nearest', and 'cubic'. More information is available in + :func:`scipy.interpolate.griddata`. For points outside of the convex + hull of the scheduling points, the gain at the nearest point is + used. type : 'linear' or 'nonlinear', optional Set the type of controller to create. The default for a linear gain @@ -700,20 +700,21 @@ def create_statefbk_iosystem( ------- ctrl : InputOutputSystem Input/output system representing the controller. This system takes - as inputs the desired state xd, the desired input ud, and either the - system state x or the estimated state xhat. It outputs the - controller action u according to the formula u = ud - K(x - xd). If - the keyword `integral_action` is specified, then an additional set - of integrators is included in the control system (with the gain - matrix K having the integral gains appended after the state gains). - If a gain scheduled controller is specified, the gain (proportional - and integral) are evaluated using the scheduling variables specified - by ``gainsched_indices``. + as inputs the desired state ``xd``, the desired input ``ud``, and + either the system state ``x`` or the estimated state ``xhat``. It + outputs the controller action u according to the formula :math:`u = + u_d - K(x - x_d)`. If the keyword ``integral_action`` is specified, + then an additional set of integrators is included in the control + system (with the gain matrix ``K`` having the integral gains + appended after the state gains). If a gain scheduled controller is + specified, the gain (proportional and integral) are evaluated using + the scheduling variables specified by ``gainsched_indices``. clsys : InputOutputSystem Input/output system representing the closed loop system. This - systems takes as inputs the desired trajectory (xd, ud) and outputs - the system state x and the applied input u (vertically stacked). + systems takes as inputs the desired trajectory ``(xd, ud)`` and + outputs the system state ``x`` and the applied input ``u`` + (vertically stacked). Other Parameters ---------------- diff --git a/doc/iosys.rst b/doc/iosys.rst index 994d4900e..1f5f21e69 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -308,8 +308,12 @@ and the control action will be given by u = u_\text{d} - K\text{p} (x - x_\text{d}) - K_\text{i} \int C (x - x_\text{d}) dt. -(If an estimator is specified, :math:`\hat x` will be used in place of -:math:`x`.) +If `integral_action` is a function `h`, that function will be called +with the signature `h(t, x, u, params)` to obtain the outputs that +should be integrated. The number of outputs that are to be integrated +must match the number of additional columns in the `K` matrix. If an +estimator is specified, :math:`\hat x` will be used in place of +:math:`x`. Finally, gain scheduling on the desired state, desired input, or system state can be implemented by setting the gain to a 2-tuple From da6b08880ad19a61ae6d3ef62b9de9cf4fd3cba4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Dec 2022 22:47:25 -0800 Subject: [PATCH 0150/1025] use numpydoc + linkcode --- control/descfcn.py | 4 +-- control/freqplot.py | 4 +-- control/iosys.py | 8 ++--- control/lti.py | 11 ++++--- control/sisotool.py | 2 +- control/statefbk.py | 4 --- doc/Makefile | 2 +- doc/conf.py | 78 +++++++++++++++++++++++++++++++++++++++++++-- 8 files changed, 92 insertions(+), 21 deletions(-) diff --git a/control/descfcn.py b/control/descfcn.py index 149db1bd2..cfcc02170 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -236,8 +236,8 @@ def describing_function_plot( given by the first value of the tuple and frequency given by the second value. - Example - ------- + Examples + -------- >>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.descfcn.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) diff --git a/control/freqplot.py b/control/freqplot.py index 05ae9da55..d34906855 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -589,8 +589,8 @@ def nyquist_plot( if `return_contour` is Tue. To obtain the Nyquist curve values, evaluate system(s) along contour. - Additional Parameters - --------------------- + Other Parameters + ---------------- arrows : int or 1D/2D array of floats, optional Specify the number of arrows to plot on the Nyquist curve. If an integer is passed. that number of equally spaced arrows will be diff --git a/control/iosys.py b/control/iosys.py index 2152092fc..76c8c8fd5 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2713,8 +2713,8 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, generated and if `True` then warnings are always generated. - Example - ------- + Examples + -------- >>> P = control.LinearIOSystem( >>> control.rss(2, 2, 2, strictly_proper=True), name='P') >>> C = control.LinearIOSystem(control.rss(2, 2, 2), name='C') @@ -2914,8 +2914,8 @@ def summing_junction( Linear input/output system object with no states and only a direct term that implements the summing junction. - Example - ------- + Examples + -------- >>> P = control.tf2io(ct.tf(1, [1, 0]), inputs='u', outputs='y') >>> C = control.tf2io(ct.tf(10, [1, 1]), inputs='e', outputs='u') >>> sumblk = control.summing_junction(inputs=['r', '-y'], output='e') diff --git a/control/lti.py b/control/lti.py index b87944cd0..1bc08229d 100644 --- a/control/lti.py +++ b/control/lti.py @@ -304,8 +304,12 @@ def damp(sys, doprint=True): poles: array Pole locations - Algorithm - --------- + See Also + -------- + pole + + Notes + ----- If the system is continuous, wn = abs(poles) Z = -real(poles)/poles. @@ -320,9 +324,6 @@ def damp(sys, doprint=True): wn = abs(s) Z = -real(s)/wn. - See Also - -------- - pole """ wn, damping, poles = sys.damp() if doprint: diff --git a/control/sisotool.py b/control/sisotool.py index d8db7b082..2b735c0af 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -285,7 +285,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', Whether to create Sisotool interactive plot. Returns - ---------- + ------- closedloop : class:`StateSpace` system The closed-loop system using initial gains. diff --git a/control/statefbk.py b/control/statefbk.py index 97f314da5..c88b98c54 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -126,10 +126,6 @@ def place(A, B, p): -------- place_varga, acker - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. """ from scipy.signal import place_poles diff --git a/doc/Makefile b/doc/Makefile index 3f372684c..b2f9eaeed 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -20,5 +20,5 @@ classes.pdf: classes.fig; fig2dev -Lpdf $< $@ # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -html pdf: Makefile $(FIGS) +html pdf clean: Makefile $(FIGS) @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/conf.py b/doc/conf.py index e2210aeaa..961179119 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -30,7 +30,7 @@ # -- Project information ----------------------------------------------------- project = u'Python Control Systems Library' -copyright = u'2020, python-control.org' +copyright = u'2022, python-control.org' author = u'Python Control Developers' # Version information - read from the source code @@ -56,7 +56,7 @@ extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.napoleon', 'sphinx.ext.intersphinx', 'sphinx.ext.imgmath', - 'sphinx.ext.autosummary', 'nbsphinx', + 'sphinx.ext.autosummary', 'nbsphinx', 'numpydoc', 'sphinx.ext.linkcode' ] # scan documents for autosummary directives and generate stub pages for each. @@ -139,6 +139,80 @@ # # html_sidebars = {} +# ----------------------------------------------------------------------------- +# Source code links (from numpy) +# ----------------------------------------------------------------------------- + +import inspect +from os.path import relpath, dirname + +def linkcode_resolve(domain, info): + """ + Determine the URL corresponding to Python object + """ + if domain != 'py': + return None + + modname = info['module'] + fullname = info['fullname'] + + submod = sys.modules.get(modname) + if submod is None: + return None + + obj = submod + for part in fullname.split('.'): + try: + obj = getattr(obj, part) + except Exception: + return None + + # strip decorators, which would resolve to the source of the decorator + # possibly an upstream bug in getsourcefile, bpo-1764286 + try: + unwrap = inspect.unwrap + except AttributeError: + pass + else: + obj = unwrap(obj) + + # Get the filename for the function + try: + fn = inspect.getsourcefile(obj) + except Exception: + fn = None + if not fn: + return None + + # Ignore re-exports as their source files are not within the numpy repo + module = inspect.getmodule(obj) + if module is not None and not module.__name__.startswith("control"): + return None + + try: + source, lineno = inspect.getsourcelines(obj) + except Exception: + lineno = None + + fn = relpath(fn, start=dirname(control.__file__)) + + if lineno: + linespec = "#L%d-L%d" % (lineno, lineno + len(source) - 1) + else: + linespec = "" + + base_url = "https://github.com/python-control/python-control/blob/" + if 'dev' in control.__version__ or 'post' in control.__version__: + return base_url + "main/control/%s%s" % (fn, linespec) + else: + return base_url + "%s/control/%s%s" % ( + control.__version__, fn, linespec) + +# Don't automaticall show all members of class in Methods & Attributes section +numpydoc_show_class_members = False + +# Don't create a Sphinx TOC for the lists of class methods and attributes +numpydoc_class_members_toctree = False # -- Options for HTMLHelp output --------------------------------------------- From ad7ce5f76ce339e4097e8547dc5227b086d91e42 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 29 Dec 2022 12:14:33 -0800 Subject: [PATCH 0151/1025] add missing documentation for t_eval in input_output_response --- control/iosys.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/control/iosys.py b/control/iosys.py index 76c8c8fd5..a0d22a985 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1618,6 +1618,10 @@ def input_output_response( number of states in the system, the initial condition will be padded with zeros. + t_eval : array-list, optional + List of times at which the time response should be computed. + Defaults to ``T``. + return_x : bool, optional If True, return the state vector when assigning to a tuple (default = False). See :func:`forced_response` for more details. From 51f3b6b3f9b3860813c5003dcb0e442a055be9e0 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Dec 2022 08:29:03 -0800 Subject: [PATCH 0152/1025] set default for gainsched_indices to xd + add unit test --- control/statefbk.py | 6 +++--- control/tests/statefbk_test.py | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 87f191ff0..fa4ac3551 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -679,7 +679,7 @@ def create_statefbk_iosystem( the system state x (or state estimate xhat, if an estimator is given). The indices can either be specified as integer offsets into the input vector or as strings matching the signal names of the - input vector. + input vector. The default is to use the desire state xd. gainsched_method : str, optional The method to use for gain scheduling. Possible values are 'linear' @@ -812,8 +812,8 @@ def create_statefbk_iosystem( # Process gainscheduling variables, if present if gainsched: - # Create a copy of the scheduling variable indices (default = empty) - gainsched_indices = [] if gainsched_indices is None \ + # Create a copy of the scheduling variable indices (default = xd) + gainsched_indices = range(sys.nstates) if gainsched_indices is None \ else list(gainsched_indices) # Make sure the scheduling variable indices are the right length diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 343c8790b..9e8feb4c9 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -905,6 +905,33 @@ def test_gainsched_unicycle(unicycle, method): np.testing.assert_allclose( resp.states[:, -1], Xd[:, -1], atol=1e-2, rtol=1e-2) + +def test_gainsched_default_indices(): + # Define a linear system to test + sys = ct.ss([[-1, 0.1], [0, -2]], [[0], [1]], np.eye(2), 0) + + # Define gains at origin + corners of unit cube + points = [[0, 0]] + list(itertools.product([-1, 1], [-1, 1])) + + # Define gain to be constant + K, _, _ = ct.lqr(sys, np.eye(sys.nstates), np.eye(sys.ninputs)) + gains = [K for p in points] + + # Define the paramters for the simulations + timepts = np.linspace(0, 10, 100) + X0 = np.ones(sys.nstates) * 0.9 + + # Create a controller and simulate the initial response + gs_ctrl, gs_clsys = ct.create_statefbk_iosystem(sys, (gains, points)) + gs_resp = ct.input_output_response(gs_clsys, timepts, 0, X0) + + # Verify that we get the same result as a constant gain + ck_clsys = ct.ss(sys.A - sys.B @ K, sys.B, sys.C, 0) + ck_resp = ct.input_output_response(ck_clsys, timepts, 0, X0) + + np.testing.assert_allclose(gs_resp.states, ck_resp.states) + + def test_gainsched_errors(unicycle): # Set up gain schedule (same as previous test) speeds = [1, 5, 10] From 700ff80ac73471aa7f492d343d957e8d4515884a Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Dec 2022 09:19:08 -0800 Subject: [PATCH 0153/1025] continuous time system support for create_estimator_iosystem --- control/stochsys.py | 52 +++++++++++++++----- control/tests/stochsys_test.py | 88 +++++++++++++++++++++++++++------- 2 files changed, 113 insertions(+), 27 deletions(-) diff --git a/control/stochsys.py b/control/stochsys.py index 2b8233070..a10e566b8 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -20,7 +20,7 @@ import scipy as sp from math import sqrt -from .iosys import InputOutputSystem, NonlinearIOSystem +from .iosys import InputOutputSystem, LinearIOSystem, NonlinearIOSystem from .lti import LTI from .namedio import isctime, isdtime from .mateqn import care, dare, _check_shape @@ -384,8 +384,8 @@ def create_estimator_iosystem( """ # Make sure that we were passed an I/O system as an input - if not isinstance(sys, InputOutputSystem): - raise ControlArgument("Input system must be I/O system") + if not isinstance(sys, LinearIOSystem): + raise ControlArgument("Input system must be a linear I/O system") # Extract the matrices that we need for easy reference A, B = sys.A, sys.B @@ -409,7 +409,7 @@ def create_estimator_iosystem( # Initialize the covariance matrix if P0 is None: # Initalize P0 to the steady state value - _, P0, _ = lqe(A, G, C, QN, RN) + L0, P0, _ = lqe(A, G, C, QN, RN) # Figure out the labels to use if isinstance(state_labels, str): @@ -432,16 +432,46 @@ def create_estimator_iosystem( sensor_labels = [sensor_labels.format(i=i) for i in range(C.shape[0])] if isctime(sys): - raise NotImplementedError("continuous time not yet implemented") - - else: # Create an I/O system for the state feedback gains # Note: reshape vectors into column vectors for legacy np.matrix + + R_inv = np.linalg.inv(RN) + Reps_inv = C.T @ R_inv @ C + + def _estim_update(t, x, u, params): + # See if we are estimating or predicting + correct = params.get('correct', True) + + # Get the state of the estimator + xhat = x[0:sys.nstates].reshape(-1, 1) + P = x[sys.nstates:].reshape(sys.nstates, sys.nstates) + + # Extract the inputs to the estimator + y = u[0:C.shape[0]].reshape(-1, 1) + u = u[C.shape[0]:].reshape(-1, 1) + + # Compute the optimal gain + L = P @ C.T @ R_inv + + # Update the state estimate + dxhat = A @ xhat + B @ u # prediction + if correct: + dxhat -= L @ (C @ xhat - y) # correction + + # Update the covariance + dP = A @ P + P @ A.T + G @ QN @ G.T + if correct: + dP -= P @ Reps_inv @ P + + # Return the update + return np.hstack([dxhat.reshape(-1), dP.reshape(-1)]) + + else: def _estim_update(t, x, u, params): # See if we are estimating or predicting correct = params.get('correct', True) - # Get the state of the estimator + # Get the state of the estimator xhat = x[0:sys.nstates].reshape(-1, 1) P = x[sys.nstates:].reshape(sys.nstates, sys.nstates) @@ -449,7 +479,7 @@ def _estim_update(t, x, u, params): y = u[0:C.shape[0]].reshape(-1, 1) u = u[C.shape[0]:].reshape(-1, 1) - # Compute the optimal again + # Compute the optimal gain Reps_inv = np.linalg.inv(RN + C @ P @ C.T) L = A @ P @ C.T @ Reps_inv @@ -466,8 +496,8 @@ def _estim_update(t, x, u, params): # Return the update return np.hstack([dxhat.reshape(-1), dP.reshape(-1)]) - def _estim_output(t, x, u, params): - return x[0:sys.nstates] + def _estim_output(t, x, u, params): + return x[0:sys.nstates] # Define the estimator system return NonlinearIOSystem( diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 11084d9db..8ec170fb4 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -7,6 +7,7 @@ import control as ct from control import lqe, dlqe, rss, drss, tf, ss, ControlArgument, slycot_check +from math import log, pi # Utility function to check LQE answer def check_LQE(L, P, poles, G, QN, RN): @@ -48,7 +49,7 @@ def test_lqe_call_format(cdlqe): # Standard calling format Lref, Pref, Eref = cdlqe(sys.A, sys.B, sys.C, Q, R) - + # Call with system instead of matricees L, P, E = cdlqe(sys, Q, R) np.testing.assert_almost_equal(Lref, L) @@ -58,15 +59,15 @@ def test_lqe_call_format(cdlqe): # Make sure we get an error if we specify N with pytest.raises(ct.ControlNotImplemented): L, P, E = cdlqe(sys, Q, R, N) - + # Inconsistent system dimensions with pytest.raises(ct.ControlDimension, match="Incompatible"): L, P, E = cdlqe(sys.A, sys.C, sys.B, Q, R) - + # Incorrect covariance matrix dimensions with pytest.raises(ct.ControlDimension, match="Incompatible"): L, P, E = cdlqe(sys.A, sys.B, sys.C, R, Q) - + # Too few input arguments with pytest.raises(ct.ControlArgument, match="not enough input"): L, P, E = cdlqe(sys.A, sys.C) @@ -99,14 +100,14 @@ def test_lqe_discrete(): np.testing.assert_almost_equal(K_csys, K_expl) np.testing.assert_almost_equal(S_csys, S_expl) np.testing.assert_almost_equal(E_csys, E_expl) - + # Calling lqe() with a discrete time system should call dlqe() K_lqe, S_lqe, E_lqe = ct.lqe(dsys, Q, R) K_dlqe, S_dlqe, E_dlqe = ct.dlqe(dsys, Q, R) np.testing.assert_almost_equal(K_lqe, K_dlqe) np.testing.assert_almost_equal(S_lqe, S_dlqe) np.testing.assert_almost_equal(E_lqe, E_dlqe) - + # Calling lqe() with no timebase should call lqe() asys = ct.ss(csys.A, csys.B, csys.C, csys.D, dt=None) K_asys, S_asys, E_asys = ct.lqe(asys, Q, R) @@ -114,11 +115,11 @@ def test_lqe_discrete(): np.testing.assert_almost_equal(K_asys, K_expl) np.testing.assert_almost_equal(S_asys, S_expl) np.testing.assert_almost_equal(E_asys, E_expl) - + # Calling dlqe() with a continuous time system should raise an error with pytest.raises(ControlArgument, match="called with a continuous"): K, S, E = ct.dlqe(csys, Q, R) - + def test_estimator_iosys(): sys = ct.drss(4, 2, 2, strictly_proper=True) @@ -129,7 +130,7 @@ def test_estimator_iosys(): QN = np.eye(sys.ninputs) RN = np.eye(sys.noutputs) estim = ct.create_estimator_iosystem(sys, QN, RN, P0) - + ctrl, clsys = ct.create_statefbk_iosystem(sys, K, estimator=estim) # Extract the elements of the estimator @@ -162,20 +163,75 @@ def test_estimator_iosys(): np.testing.assert_almost_equal(cls.D, D_clchk) +@pytest.mark.parametrize("sys_args", [ + ([[-1]], [[1]], [[1]], 0), # scalar system + ([[-1, 0.1], [0, -2]], [[0], [1]], [[1, 0]], 0), # SISO, 2 state + ([[-1, 0.1], [0, -2]], [[1, 0], [0, 1]], [[1, 0]], 0), # 2i, 1o, 2s + ([[-1, 0.1, 0.1], [0, -2, 0], [0.1, 0, -3]], # 2i, 2o, 3s + [[1, 0], [0, 0.1], [0, 1]], + [[1, 0, 0.1], [0, 1, 0.1]], 0), +]) +def test_estimator_iosys_ctime(sys_args): + # Define the system we want to test + sys = ct.ss(*sys_args) + T = 10 * log(1e-2) / np.max(sys.poles().real) + assert T > 0 + + # Create nonlinear version of the system to match integration methods + nl_sys = ct.NonlinearIOSystem( + lambda t, x, u, params : sys.A @ x + sys.B @ u, + lambda t, x, u, params : sys.C @ x + sys.D @ u, + inputs=sys.ninputs, outputs=sys.noutputs, states=sys.nstates) + + # Define an initial condition, inputs (small, to avoid integration errors) + timepts = np.linspace(0, T, 500) + U = 2e-2 * np.array([np.sin(timepts + i*pi/3) for i in range(sys.ninputs)]) + X0 = np.ones(sys.nstates) + + # Set up the parameters for the filter + P0 = np.eye(sys.nstates) + QN = np.eye(sys.ninputs) + RN = np.eye(sys.noutputs) + + # Construct the estimator + estim = ct.create_estimator_iosystem(sys, QN, RN) + + # Compute the system response and the optimal covariance + sys_resp = ct.input_output_response(nl_sys, timepts, U, X0) + _, Pf, _ = ct.lqe(sys, QN, RN) + + # Make sure that we converge to the optimal estimate + estim_resp = ct.input_output_response( + estim, timepts, [sys_resp.outputs, U], [0*X0, P0]) + np.testing.assert_allclose( + estim_resp.states[0:sys.nstates, -1], sys_resp.states[:, -1], + atol=1e-6, rtol=1e-3) + np.testing.assert_allclose( + estim_resp.states[sys.nstates:, -1], Pf.reshape(-1), + atol=1e-6, rtol=1e-3) + + # Make sure that optimal estimate is an eq pt + ss_resp = ct.input_output_response( + estim, timepts, [sys_resp.outputs, U], [X0, Pf]) + np.testing.assert_allclose( + ss_resp.states[sys.nstates:], + np.outer(Pf.reshape(-1), np.ones_like(timepts)), + atol=1e-4, rtol=1e-2) + np.testing.assert_allclose( + ss_resp.states[0:sys.nstates], sys_resp.states, + atol=1e-4, rtol=1e-2) + + def test_estimator_errors(): sys = ct.drss(4, 2, 2, strictly_proper=True) P0 = np.eye(sys.nstates) QN = np.eye(sys.ninputs) RN = np.eye(sys.noutputs) - with pytest.raises(ct.ControlArgument, match="Input system must be I/O"): + with pytest.raises(ct.ControlArgument, match=".* system must be a linear"): sys_tf = ct.tf([1], [1, 1], dt=True) estim = ct.create_estimator_iosystem(sys_tf, QN, RN) - - with pytest.raises(NotImplementedError, match="continuous time not"): - sys_ct = ct.rss(4, 2, 2, strictly_proper=True) - estim = ct.create_estimator_iosystem(sys_ct, QN, RN) - + with pytest.raises(ValueError, match="output must be full state"): C = np.eye(2, 4) estim = ct.create_estimator_iosystem(sys, QN, RN, C=C) @@ -246,7 +302,7 @@ def test_correlation(): # Try passing a second argument tau, Rneg = ct.correlation(T, V, -V) np.testing.assert_equal(Rtau, -Rneg) - + # Test error conditions with pytest.raises(ValueError, match="Time vector T must be 1D"): tau, Rtau = ct.correlation(V, V) From d31c9f4ae647e129bbc5180c7879b27993ca058b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Dec 2022 09:55:58 -0800 Subject: [PATCH 0154/1025] tweak to allow testing with matrix types --- control/tests/stochsys_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 8ec170fb4..75e5a510c 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -199,6 +199,7 @@ def test_estimator_iosys_ctime(sys_args): # Compute the system response and the optimal covariance sys_resp = ct.input_output_response(nl_sys, timepts, U, X0) _, Pf, _ = ct.lqe(sys, QN, RN) + Pf = np.array(Pf) # convert from matrix, if needed # Make sure that we converge to the optimal estimate estim_resp = ct.input_output_response( From e01181f5facf7e89d3211e3c57b30900ddce0e01 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Dec 2022 10:03:03 -0800 Subject: [PATCH 0155/1025] add configuration info in flatsys_test to resolve os-blas error --- control/tests/flatsys_test.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 196cddbd2..3a032bd7e 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -217,10 +217,12 @@ def test_kinematic_car_ocp( else: # Dump out information to allow creation of an exception - print("Platform: ", platform.platform()) - print("Python: ", platform.python_version()) + print("Message:", traj_ocp.message) + print("Platform:", platform.platform()) + print("Python:", platform.python_version()) + print("NumPy version:", np.__version__) np.show_config() - print("JOBNAME: ", os.getenv('JOBNAME')) + print("JOBNAME:", os.getenv('JOBNAME')) pytest.fail( "unknown failure; view output to identify configuration") From 7e92635e163aafab5eb05716f94fda5d42c34f33 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Dec 2022 10:59:43 -0800 Subject: [PATCH 0156/1025] updated docstrings --- control/stochsys.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/control/stochsys.py b/control/stochsys.py index a10e566b8..3b2978008 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -314,7 +314,13 @@ def create_estimator_iosystem( """Create an I/O system implementing a linqear quadratic estimator This function creates an input/output system that implements a - state estimator of the form + continuous time state estimator of the form + + \dot xhat = A x + B u - L (C xhat - y) + \dot P = A P + P A^T + F QN F^T - P C^T RN^{-1} C P + L = P C^T RN^{-1} + + or a discrete time state estimator of the form xhat[k + 1] = A x[k] + B u[k] - L (C xhat[k] - y[k]) P[k + 1] = A P A^T + F QN F^T - A P C^T Reps^{-1} C P A @@ -359,8 +365,9 @@ def create_estimator_iosystem( Returns ------- estim : InputOutputSystem - Input/output system representing the estimator. This system takes the - system input and output and generates the estimated state. + Input/output system representing the estimator. This system takes + the system output y and input u and generates the estimated state + xhat. Notes ----- From da1f162bb587a6043057c5610b15aa37843ca266 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Dec 2022 11:40:30 -0800 Subject: [PATCH 0157/1025] add xfail condition for NumPy 1.24.1 --- control/tests/flatsys_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 3a032bd7e..95fb8cf7c 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -212,7 +212,7 @@ def test_kinematic_car_ocp( elif re.match("Iteration limit.*", traj_ocp.message) and \ re.match( "conda ubuntu-3.* Generic", os.getenv('JOBNAME', '')) and \ - np.__version__ == '1.24.0': + re.match("1.24.[01]", np.__version__): pytest.xfail("gh820: iteration limit exceeded") else: From 1c16d626f75e49b006cfce08bd5610707dc6e56c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 31 Dec 2022 09:11:10 -0800 Subject: [PATCH 0158/1025] update docstrings with math in stochsys, statesp for proper formatting --- control/statesp.py | 12 ++++++------ control/stochsys.py | 34 +++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index aac4dd8bd..9fff28d27 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -164,19 +164,19 @@ def _f2s(f): class StateSpace(LTI): - """StateSpace(A, B, C, D[, dt]) + r"""StateSpace(A, B, C, D[, dt]) A class for representing state-space models. The StateSpace class is used to represent state-space realizations of linear time-invariant (LTI) systems: - + .. math:: - dx/dt = A x + B u - - y = C x + D u + + dx/dt &= A x + B u \\ + y &= C x + D u - where u is the input, y is the output, and x is the state. + where `u` is the input, `y` is the output, and `x` is the state. Parameters ---------- diff --git a/control/stochsys.py b/control/stochsys.py index 3b2978008..90768a222 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -311,28 +311,32 @@ def create_estimator_iosystem( sys, QN, RN, P0=None, G=None, C=None, state_labels='xhat[{i}]', output_labels='xhat[{i}]', covariance_labels='P[{i},{j}]', sensor_labels=None): - """Create an I/O system implementing a linqear quadratic estimator + r"""Create an I/O system implementing a linear quadratic estimator This function creates an input/output system that implements a continuous time state estimator of the form - \dot xhat = A x + B u - L (C xhat - y) - \dot P = A P + P A^T + F QN F^T - P C^T RN^{-1} C P - L = P C^T RN^{-1} + .. math:: + + d \hat{x}/dt &= A \hat{x} + B u - L (C \hat{x} - y) \\ + dP/dt &= A P + P A^T + F Q_N F^T - P C^T R_N^{-1} C P \\ + L &= P C^T R_N^{-1} or a discrete time state estimator of the form - xhat[k + 1] = A x[k] + B u[k] - L (C xhat[k] - y[k]) - P[k + 1] = A P A^T + F QN F^T - A P C^T Reps^{-1} C P A - L = A P C^T Reps^{-1} + .. math:: + + \hat{x}[k+1] &= A \hat{x}[k] + B u[k] - L (C \hat{x}[k] - y[k]) \\ + P[k+1] &= A P A^T + F Q_N F^T - A P C^T R_e^{-1} C P A \\ + L &= A P C^T R_e^{-1} - where Reps = RN + C P C^T. It can be called in the form + where :math:`R_e = R_N + C P C^T`. It can be called in the form:: estim = ct.create_estimator_iosystem(sys, QN, RN) - where ``sys`` is the process dynamics and QN and RN are the covariance + where `sys` is the process dynamics and `QN` and `RN` are the covariance of the disturbance noise and sensor noise. The function returns the - estimator ``estim`` as I/O system with a parameter ``correct`` that can + estimator `estim` as I/O system with a parameter `correct` that can be used to turn off the correction term in the estimation (for forward predictions). @@ -356,8 +360,8 @@ def create_estimator_iosystem( {state, covariance, sensor, output}_labels : str or list of str, optional Set the name of the signals to use for the internal state, covariance, sensors, and outputs (state estimate). If a single string is - specified, it should be a format string using the variable ``i`` as an - index (or ``i`` and ``j`` for covariance). Otherwise, a list of + specified, it should be a format string using the variable `i` as an + index (or `i` and `j` for covariance). Otherwise, a list of strings matching the size of the respective signal should be used. Default is ``'xhat[{i}]'`` for state and output labels, ``'y[{i}]'`` for output labels and ``'P[{i},{j}]'`` for covariance labels. @@ -372,18 +376,18 @@ def create_estimator_iosystem( Notes ----- This function can be used with the ``create_statefbk_iosystem()`` function - to create a closed loop, output-feedback, state space controller: + to create a closed loop, output-feedback, state space controller:: K, _, _ = ct.lqr(sys, Q, R) est = ct.create_estimator_iosystem(sys, QN, RN, P0) ctrl, clsys = ct.create_statefbk_iosystem(sys, K, estimator=est) - The estimator can also be run on its own to process a noisy signal: + The estimator can also be run on its own to process a noisy signal:: resp = ct.input_output_response(est, T, [Y, U], [X0, P0]) If desired, the ``correct`` parameter can be set to ``False`` to allow - prediction with no additional sensor information: + prediction with no additional sensor information:: resp = ct.input_output_response( est, T, 0, [X0, P0], param={'correct': False) From 81510a59fb6dfffe4dff0473802b82dccb247cc6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 31 Dec 2022 10:04:00 -0800 Subject: [PATCH 0159/1025] additional cleanup of math lines in iosys --- control/iosys.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index e16a15ed0..c9e2351ed 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2273,7 +2273,7 @@ def _find_size(sysval, vecval): # Define a state space object that is an I/O system def ss(*args, **kwargs): - """ss(A, B, C, D[, dt]) + r"""ss(A, B, C, D[, dt]) Create a state space system. @@ -2293,18 +2293,18 @@ def ss(*args, **kwargs): output equations: .. math:: - \\dot x = A \\cdot x + B \\cdot u - y = C \\cdot x + D \\cdot u + dx/dt &= A x + B u \\ + y &= C x + D u ``ss(A, B, C, D, dt)`` Create a discrete-time state space system from the matrices of its state and output equations: .. math:: - x[k+1] = A \\cdot x[k] + B \\cdot u[k] - y[k] = C \\cdot x[k] + D \\cdot u[ki] + x[k+1] &= A x[k] + B u[k] \\ + y[k] &= C x[k] + D u[k] The matrices can be given as *array like* data types or strings. Everything that the constructor of :class:`numpy.matrix` accepts is From a4fa027efcd3f4cbf7111b69416a4c0c6c65cd66 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 31 Dec 2022 10:36:18 -0800 Subject: [PATCH 0160/1025] update project URL --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 493594155..0800bd51a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ slycot = [ "slycot>=0.4.0" ] cvxopt = [ "cvxopt>=1.2.0" ] [project.urls] -homepage = "https//python-control.org" +homepage = "https://python-control.org" source = "https://github.com/python-control/python-control" [tool.setuptools_scm] From d26e84b20b2d7059f1e98e98b128a1bdb4bc9180 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 31 Dec 2022 11:23:52 -0800 Subject: [PATCH 0161/1025] remove __commit__ from version test --- control/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/__init__.py b/control/__init__.py index e0edc96a2..649a90861 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -79,7 +79,7 @@ # Version information try: - from ._version import __version__, __commit__ + from ._version import __version__ except ImportError: __version__ = "dev" From 6c90c206e4eb5a88cb1c3cb6c6b90eb0779e4d2a Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 31 Dec 2022 21:26:35 +0100 Subject: [PATCH 0162/1025] Sisotool test: must be shared --- control/tests/sisotool_test.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index d4a291052..fde5eba2b 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -83,6 +83,12 @@ def test_sisotool(self, tsys): 'margins': True } + # Check that the xaxes of the bode plot are shared before the rlocus click + assert ax_mag.get_xlim() == ax_phase.get_xlim() + ax_mag.set_xlim(2, 12) + assert ax_mag.get_xlim() == (2, 12) + assert ax_phase.get_xlim() == (2, 12) + # Move the rootlocus to another point event = type('test', (object,), {'xdata': 2.31206868287, 'ydata': 15.5983051046, @@ -116,6 +122,12 @@ def test_sisotool(self, tsys): assert_array_almost_equal( ax_step.lines[0].get_data()[1][:10], step_response_moved, 4) + # Check that the xaxes of the bode plot are still shared after the rlocus click + assert ax_mag.get_xlim() == ax_phase.get_xlim() + ax_mag.set_xlim(3, 13) + assert ax_mag.get_xlim() == (3, 13) + assert ax_phase.get_xlim() == (3, 13) + @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, reason="Requires the zoom toolbar") @pytest.mark.parametrize('tsys', [0, True], From b7baec0363f6d01e4201068a4364c8b951f2ce0e Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 31 Dec 2022 21:35:02 +0100 Subject: [PATCH 0163/1025] GrouperView.join() is deprecated, call highlevel sharex if needed --- control/sisotool.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/control/sisotool.py b/control/sisotool.py index 2b735c0af..8a3b3d9f7 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -158,9 +158,11 @@ def _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect=None): ax_phase.set_xlabel(ax_phase.get_xlabel(),fontsize=label_font_size) ax_phase.set_ylabel(ax_phase.get_ylabel(),fontsize=label_font_size) ax_phase.get_xaxis().set_label_coords(0.5, -0.15) - ax_phase.get_shared_x_axes().join(ax_phase, ax_mag) ax_phase.tick_params(axis='both', which='major', labelsize=label_font_size) + if not ax_phase.get_shared_x_axes().joined(ax_phase, ax_mag): + ax_phase.sharex(ax_mag) + ax_step.set_title('Step response',fontsize = title_font_size) ax_step.set_xlabel('Time (seconds)',fontsize=label_font_size) ax_step.set_ylabel('Output',fontsize=label_font_size) From 308be1d9b446735138fa5ac65c31fc610afaaf33 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 31 Dec 2022 22:19:37 +0100 Subject: [PATCH 0164/1025] Add README to pyproject metadata --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 0800bd51a..01b2155e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,6 +11,7 @@ name = "control" description = "Python Control Systems Library" authors = [{name = "Python Control Developers", email = "python-control-developers@lists.sourceforge.net"}] license = {text = "BSD-3-Clause"} +readme = "README.rst" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", From f5100927f8612d0f9e7ad442921c07de0eb5d2cc Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 31 Dec 2022 13:32:31 -0800 Subject: [PATCH 0165/1025] allow .postn for readthedocsversion --- doc/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index 961179119..e2e420104 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -202,7 +202,7 @@ def linkcode_resolve(domain, info): linespec = "" base_url = "https://github.com/python-control/python-control/blob/" - if 'dev' in control.__version__ or 'post' in control.__version__: + if 'dev' in control.__version__: return base_url + "main/control/%s%s" % (fn, linespec) else: return base_url + "%s/control/%s%s" % ( From 6225c6ec0bc3f9874813996c3048c08c9cbcf646 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Fri, 27 Jan 2023 11:36:06 +0100 Subject: [PATCH 0166/1025] Create a dedicated conda env and use it --- .github/workflows/install_examples.yml | 31 +++++++++++++------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/workflows/install_examples.yml b/.github/workflows/install_examples.yml index d50f8fda6..a9a88eb78 100644 --- a/.github/workflows/install_examples.yml +++ b/.github/workflows/install_examples.yml @@ -7,26 +7,27 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Check out the python-control sources + uses: actions/checkout@v3 + - name: Set up conda using the preinstalled GHA Miniconda + run: echo $CONDA/bin >> $GITHUB_PATH - name: Install Python dependencies from conda-forge run: | - # Set up conda using the preinstalled GHA Miniconda environment - echo $CONDA/bin >> $GITHUB_PATH - conda config --add channels conda-forge - conda config --set channel_priority strict - - # Install build tools - conda install pip setuptools setuptools-scm - - # Install python-control dependencies and extras - conda install numpy matplotlib scipy - conda install slycot pmw jupyter + conda create \ + --name control-examples-env \ + --channel conda-forge \ + --strict-channel-priority \ + --quiet --yes \ + pip setuptools setuptools-scm \ + numpy matplotlib scipy \ + slycot pmw jupyter - name: Install from source - run: pip install . + run: | + conda run -n control-examples-env pip install . - name: Run examples run: | cd examples - ./run_examples.sh - ./run_notebooks.sh + conda run -n control-examples-env ./run_examples.sh + conda run -n control-examples-env ./run_notebooks.sh From dda5258cdfa0b9b482a9adfb0d23807a0daf69e9 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 26 Jan 2023 23:36:34 +0100 Subject: [PATCH 0167/1025] Ensure array for updatefcn input --- doc/iosys.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/iosys.rst b/doc/iosys.rst index 1f5f21e69..0f6a80b4d 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -79,13 +79,13 @@ We begin by defining the dynamics of the system L = x[1] # Compute the control action (only allow addition of food) - u_0 = u if u > 0 else 0 + u_0 = u[0] if u[0] > 0 else 0 # Compute the discrete updates dH = (r + u_0) * H * (1 - H/k) - (a * H * L)/(c + H) dL = b * (a * H * L)/(c + H) - d * L - return [dH, dL] + return np.array([dH, dL]) We now create an input/output system using these dynamics: From 5f2e758ad476708aee845a2d215fff26b390ce8b Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Thu, 2 Feb 2023 00:21:28 +0100 Subject: [PATCH 0168/1025] Fix Interconnect name clobbering --- control/iosys.py | 16 ++++++++-------- control/tests/iosys_test.py | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index c9e2351ed..f2212d33b 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2840,17 +2840,17 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, # Check for signal names without a system name if isinstance(signal, str) and len(signal.split('.')) == 1: # Get the signal name - name = signal[1:] if signal[0] == '-' else signal + signal_name = signal[1:] if signal[0] == '-' else signal sign = '-' if signal[0] == '-' else "" # Look for the signal name as a system input for sys in syslist: - if name in sys.input_index.keys(): - connection.append(sign + sys.name + "." + name) + if signal_name in sys.input_index.keys(): + connection.append(sign + sys.name + "." + signal_name) # Make sure we found the name if len(connection) == 0: - raise ValueError("could not find signal %s" % name) + raise ValueError("could not find signal %s" % signal_name) else: new_inplist.append(connection) else: @@ -2868,17 +2868,17 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, # Check for signal names without a system name if isinstance(signal, str) and len(signal.split('.')) == 1: # Get the signal name - name = signal[1:] if signal[0] == '-' else signal + signal_name = signal[1:] if signal[0] == '-' else signal sign = '-' if signal[0] == '-' else "" # Look for the signal name as a system output for sys in syslist: - if name in sys.output_index.keys(): - connection.append(sign + sys.name + "." + name) + if signal_name in sys.output_index.keys(): + connection.append(sign + sys.name + "." + signal_name) # Make sure we found the name if len(connection) == 0: - raise ValueError("could not find signal %s" % name) + raise ValueError("could not find signal %s" % signal_name) else: new_outlist.append(connection) else: diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index fa26ded43..aaa97ec39 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1619,6 +1619,27 @@ def secord_output(t, x, u, params={}): return np.array([x[0]]) +def test_interconnect_name(): + g = ct.LinearIOSystem(ct.ss(-1,1,1,0), + inputs=['u'], + outputs=['y'], + name='g') + k = ct.LinearIOSystem(ct.ss(0,10,2,0), + inputs=['e'], + outputs=['z'], + name='k') + h = ct.interconnect([g,k], + inputs=['u','e'], + outputs=['y','z']) + assert re.match(r'sys\[\d+\]', h.name), f"Interconnect default name does not match 'sys[]' pattern, got '{h.name}'" + + h = ct.interconnect([g,k], + inputs=['u','e'], + outputs=['y','z'], + name='ic_system') + assert h.name == 'ic_system', f"Interconnect name excpected 'ic_system', got '{h.name}'" + + def test_interconnect_unused_input(): # test that warnings about unused inputs are reported, or not, # as required From b6769f6eb8f7ac424c77dd0f5911090f3310cafc Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 17 Feb 2023 13:58:45 +0100 Subject: [PATCH 0169/1025] Solve #862: bode_plot phase wrapping incorrect for multiple systems --- control/freqplot.py | 8 ++++---- control/tests/freqresp_test.py | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index d34906855..863ed1ccc 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -276,18 +276,18 @@ def bode_plot(syslist, omega=None, if initial_phase is None: # Start phase in the range 0 to -360 w/ initial phase = -180 # If wrap_phase is true, use 0 instead (phase \in (-pi, pi]) - initial_phase = -math.pi if wrap_phase is not True else 0 + initial_phase_value = -math.pi if wrap_phase is not True else 0 elif isinstance(initial_phase, (int, float)): # Allow the user to override the default calculation if deg: - initial_phase = initial_phase/180. * math.pi + initial_phase_value = initial_phase/180. * math.pi else: raise ValueError("initial_phase must be a number.") # Shift the phase if needed - if abs(phase[0] - initial_phase) > math.pi: + if abs(phase[0] - initial_phase_value) > math.pi: phase -= 2*math.pi * \ - round((phase[0] - initial_phase) / (2*math.pi)) + round((phase[0] - initial_phase_value) / (2*math.pi)) # Phase wrapping if wrap_phase is False: diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index 573fd6359..748ca59e1 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -375,6 +375,18 @@ def test_phase_wrap(TF, wrap_phase, min_phase, max_phase): assert(max(phase) <= max_phase) +def test_phase_wrap_multiple_systems(): + G = ctrl.zpk([],[1,1], gain=1) + + mag, phase, omega = ctrl.bode(G) + assert(np.min(phase) >= -2*np.pi) + assert(np.max(phase) <= -1*np.pi) + + mag, phase, omega = ctrl.bode((G,G)) + assert(np.min(phase) >= -2*np.pi) + assert(np.max(phase) <= -1*np.pi) + + def test_freqresp_warn_infinite(): """Test evaluation warnings for transfer functions w/ pole at the origin""" sys_finite = ctrl.tf([1], [1, 0.01]) From 2afd39769f6a42ab6cac57a22d0357294876100a Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 17 Feb 2023 14:12:32 +0100 Subject: [PATCH 0170/1025] Fix wrap --- control/freqplot.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/control/freqplot.py b/control/freqplot.py index 863ed1ccc..483b4fae6 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -281,6 +281,9 @@ def bode_plot(syslist, omega=None, # Allow the user to override the default calculation if deg: initial_phase_value = initial_phase/180. * math.pi + else: + initial_phase_value = initial_phase + else: raise ValueError("initial_phase must be a number.") From f990f409d4c9e82de3b9909bde9fe3403c292b20 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 17 Feb 2023 14:38:28 +0100 Subject: [PATCH 0171/1025] PEP8 requires lowercase variable name --- control/tests/freqresp_test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index 748ca59e1..468ff9fdd 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -376,13 +376,13 @@ def test_phase_wrap(TF, wrap_phase, min_phase, max_phase): def test_phase_wrap_multiple_systems(): - G = ctrl.zpk([],[1,1], gain=1) + sys_unstable = ctrl.zpk([],[1,1], gain=1) - mag, phase, omega = ctrl.bode(G) + mag, phase, omega = ctrl.bode(sys_unstable) assert(np.min(phase) >= -2*np.pi) assert(np.max(phase) <= -1*np.pi) - mag, phase, omega = ctrl.bode((G,G)) + mag, phase, omega = ctrl.bode((sys_unstable, sys_unstable)) assert(np.min(phase) >= -2*np.pi) assert(np.max(phase) <= -1*np.pi) From f2878d5f941ad624efb9dc6cb624e4fff11dddd9 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 17 Feb 2023 14:48:10 +0100 Subject: [PATCH 0172/1025] Don't plot in tests... --- control/tests/freqresp_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index 468ff9fdd..9fc52112a 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -378,11 +378,11 @@ def test_phase_wrap(TF, wrap_phase, min_phase, max_phase): def test_phase_wrap_multiple_systems(): sys_unstable = ctrl.zpk([],[1,1], gain=1) - mag, phase, omega = ctrl.bode(sys_unstable) + mag, phase, omega = ctrl.bode(sys_unstable, plot=False) assert(np.min(phase) >= -2*np.pi) assert(np.max(phase) <= -1*np.pi) - mag, phase, omega = ctrl.bode((sys_unstable, sys_unstable)) + mag, phase, omega = ctrl.bode((sys_unstable, sys_unstable), plot=False) assert(np.min(phase) >= -2*np.pi) assert(np.max(phase) <= -1*np.pi) From 4c4b3fc2a61aa817b7aadb7a61af4212b6c0ed30 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 17 Feb 2023 17:25:04 +0100 Subject: [PATCH 0173/1025] Fix regression with matplotlib 3.7.0 --- control/freqplot.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 483b4fae6..a749c3f6d 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -1024,9 +1024,11 @@ def _parse_linestyle(style_name, allow_false=False): # Plot the scaled sections of the curve (changing linestyle) x_scl = np.ma.masked_where(scale_mask, resp.real) y_scl = np.ma.masked_where(scale_mask, resp.imag) - plt.plot( - x_scl * (1 + curve_offset), y_scl * (1 + curve_offset), - primary_style[1], color=c, **kwargs) + if x_scl.count() >= 1 and y_scl.count() >= 1: + plt.plot( + x_scl * (1 + curve_offset), + y_scl * (1 + curve_offset), + primary_style[1], color=c, **kwargs) # Plot the primary curve (invisible) for setting arrows x, y = resp.real.copy(), resp.imag.copy() @@ -1044,10 +1046,11 @@ def _parse_linestyle(style_name, allow_false=False): # Plot the regular and scaled segments plt.plot( x_reg, -y_reg, mirror_style[0], color=c, **kwargs) - plt.plot( - x_scl * (1 - curve_offset), - -y_scl * (1 - curve_offset), - mirror_style[1], color=c, **kwargs) + if x_scl.count() >= 1 and y_scl.count() >= 1: + plt.plot( + x_scl * (1 - curve_offset), + -y_scl * (1 - curve_offset), + mirror_style[1], color=c, **kwargs) # Add the arrows (on top of an invisible contour) x, y = resp.real.copy(), resp.imag.copy() From 5c854592a994a4cab6b1151991a62b0e985806bf Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Tue, 21 Feb 2023 16:26:39 +0100 Subject: [PATCH 0174/1025] Add print zpk form --- control/tests/xferfcn_test.py | 29 ++++++++- control/xferfcn.py | 110 ++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+), 1 deletion(-) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index 6e1cf6ce2..eda2ce661 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -9,7 +9,7 @@ import control as ct from control import StateSpace, TransferFunction, rss, evalfr -from control import ss, ss2tf, tf, tf2ss +from control import ss, ss2tf, tf, tf2ss, zpk from control import isctime, isdtime, sample_system, defaults from control.statesp import _convert_to_statespace from control.xferfcn import _convert_to_transfer_function @@ -906,6 +906,33 @@ def test_printing_mimo(self): assert isinstance(str(sys), str) assert isinstance(sys._repr_latex_(), str) + @pytest.mark.parametrize( + "zeros, poles, gain, output", + [([0], [-1], 1, "\n s\n-----\ns + 1\n"), + ([-1], [-1], 1, "\ns + 1\n-----\ns + 1\n"), + ([-1], [1], 1, "\ns + 1\n-----\ns - 1\n"), + ([1], [-1], 1, "\ns - 1\n-----\ns + 1\n"), + ([-1], [-1], 2, "\n2 (s + 1)\n---------\n s + 1\n"), + ([-1], [-1], 0, "\n0\n-\n1\n"), + ([-1], [1j, -1j], 1, "\n s + 1\n-----------------\n(s - 1j) (s + 1j)\n"), + ([4j, -4j], [2j, -2j], 2, "\n2 (s - 4j) (s + 4j)\n-------------------\n (s - 2j) (s + 2j)\n"), + ([1j, -1j], [-1, -4], 2, "\n2 (s - 1j) (s + 1j)\n-------------------\n (s + 1) (s + 4)\n"), + ([1], [-1 + 1j, -1 - 1j], 1, "\n s - 1\n-------------------------\n(s + (1-1j)) (s + (1+1j))\n"), + ([1], [1 + 1j, 1 - 1j], 1, "\n s - 1\n-------------------------\n(s - (1+1j)) (s - (1-1j))\n"), + ]) + def test_printing_zpk(self, zeros, poles, gain, output): + """Test _tf_polynomial_to_string for constant systems""" + G = zpk(zeros, poles, gain) + print(G) + res = G.to_zpk() + print(res) + assert res == output + + def test_printing_zpk_invalid(self): + G = tf([1], [1 + 1j]) + with pytest.raises(ValueError, match='complex valued'): + G.to_zpk() + @slycotonly def test_size_mismatch(self): """Test size mismacht""" diff --git a/control/xferfcn.py b/control/xferfcn.py index 0bc84e096..e9c98ec6c 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -468,6 +468,73 @@ def __str__(self, var=None): return outstr + def to_zpk(self, var=None): + """Return string representation of the transfer function as factorized + polynomials. + + Examples + -------- + >>> from control import tf + >>> G = tf([1],[1, -2, 1]) + >>> G.to_zpk() + 1 + --------------- + (s - 1) (s - 1) + + """ + + mimo = self.ninputs > 1 or self.noutputs > 1 + if var is None: + # TODO: replace with standard calls to lti functions + var = 's' if self.dt is None or self.dt == 0 else 'z' + outstr = "" + + for i in range(self.ninputs): + for j in range(self.noutputs): + if mimo: + outstr += "\nInput %i to output %i:" % (i + 1, j + 1) + + # Convert the numerator and denominator polynomials to strings. + dcgain = self.num[j][i][-1] / self.den[j][i][-1] + + num_roots = roots(self.num[j][i]).astype(complex) + den_roots = roots(self.den[j][i]).astype(complex) + + polygain = np.prod(num_roots) / np.prod(den_roots) + + if abs(polygain) == 0 and abs(dcgain) == 0: + k = 1 + else: + k = dcgain/polygain + if not np.isreal(k): + raise ValueError("Transfer function has complex valued gain. " + "Please check polynomials for non-complimentary poles.") + + k = np.abs(k) + + numstr = _tf_factorized_polynomial_to_string(num_roots, gain=k, var=var) + denstr = _tf_factorized_polynomial_to_string(den_roots, var=var) + + # Figure out the length of the separating line + dashcount = max(len(numstr), len(denstr)) + dashes = '-' * dashcount + + # Center the numerator or denominator + if len(numstr) < dashcount: + numstr = ' ' * ((dashcount - len(numstr)) // 2) + numstr + if len(denstr) < dashcount: + denstr = ' ' * ((dashcount - len(denstr)) // 2) + denstr + + outstr += "\n" + numstr + "\n" + dashes + "\n" + denstr + "\n" + + # See if this is a discrete time system with specific sampling time + if not (self.dt is None) and type(self.dt) != bool and self.dt > 0: + # TODO: replace with standard calls to lti functions + outstr += "\ndt = " + self.dt.__str__() + "\n" + + return outstr + + # represent to implement a re-loadable version def __repr__(self): """Print transfer function in loadable form""" @@ -1323,6 +1390,49 @@ def _tf_polynomial_to_string(coeffs, var='s'): return thestr +def _tf_factorized_polynomial_to_string(roots, gain=1, var='s'): + """Convert a factorized polynomial to a string""" + + if roots.size == 0: + return f"{gain:.4g}" + + factors = [] + for root in sorted(roots, reverse=True): + if np.isreal(root): + if root == 0: + factor = f"{var}" + factors.append(factor) + elif root > 0: + factor = f"{var} - {np.abs(root):.4g}" + factors.append(factor) + else: + factor = f"{var} + {np.abs(root):.4g}" + factors.append(factor) + elif np.isreal(root * 1j): + if root.imag > 0: + factor = f"{var} - {np.abs(root):.4g}j" + factors.append(factor) + else: + factor = f"{var} + {np.abs(root):.4g}j" + factors.append(factor) + else: + if root.real > 0: + factor = f"{var} - ({root:.4g})" + factors.append(factor) + else: + factor = f"{var} + ({-root:.4g})" + factors.append(factor) + + + multiplier = '' + if round(gain, 4) != 1.0: + multiplier = f"{gain:.4g} " + + if len(factors) > 1 or multiplier: + factors = [f"({factor})" for factor in factors] + + return multiplier + " ".join(factors) + def _tf_string_to_latex(thestr, var='s'): """ make sure to superscript all digits in a polynomial string and convert float coefficients in scientific notation From 57620f19b742ef40cdeb9b7cc4e4da1977383ddd Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Tue, 21 Feb 2023 16:35:23 +0100 Subject: [PATCH 0175/1025] Fix unittest --- control/xferfcn.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index e9c98ec6c..1460c0d20 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -505,9 +505,13 @@ def to_zpk(self, var=None): if abs(polygain) == 0 and abs(dcgain) == 0: k = 1 else: + if abs(polygain) == 0: + raise ValueError( + f"Transfer function has infinite gain. " + "Please check polynomials.") k = dcgain/polygain if not np.isreal(k): - raise ValueError("Transfer function has complex valued gain. " + raise ValueError(f"Transfer function has complex valued gain (k = {k}). " "Please check polynomials for non-complimentary poles.") k = np.abs(k) From b36732db57524d3e874d2ead637564bccd8ec838 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Tue, 21 Feb 2023 16:46:19 +0100 Subject: [PATCH 0176/1025] Add fix for precision noise --- control/xferfcn.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/control/xferfcn.py b/control/xferfcn.py index 1460c0d20..3a15f6c4f 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -502,6 +502,11 @@ def to_zpk(self, var=None): polygain = np.prod(num_roots) / np.prod(den_roots) + # Round imaginary part down to zero for values close to + # precision to prevent small errors to mess up things. + polygain = complex(polygain.real, + round(polygain.imag, 12)) + if abs(polygain) == 0 and abs(dcgain) == 0: k = 1 else: From 45b5ae4273ddc172a6b71ecda45e9f779bf1a0fa Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Tue, 21 Feb 2023 17:07:38 +0100 Subject: [PATCH 0177/1025] Cleanup unittest --- control/tests/xferfcn_test.py | 98 ++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 13 deletions(-) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index eda2ce661..55a5ec111 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -908,24 +908,96 @@ def test_printing_mimo(self): @pytest.mark.parametrize( "zeros, poles, gain, output", - [([0], [-1], 1, "\n s\n-----\ns + 1\n"), - ([-1], [-1], 1, "\ns + 1\n-----\ns + 1\n"), - ([-1], [1], 1, "\ns + 1\n-----\ns - 1\n"), - ([1], [-1], 1, "\ns - 1\n-----\ns + 1\n"), - ([-1], [-1], 2, "\n2 (s + 1)\n---------\n s + 1\n"), - ([-1], [-1], 0, "\n0\n-\n1\n"), - ([-1], [1j, -1j], 1, "\n s + 1\n-----------------\n(s - 1j) (s + 1j)\n"), - ([4j, -4j], [2j, -2j], 2, "\n2 (s - 4j) (s + 4j)\n-------------------\n (s - 2j) (s + 2j)\n"), - ([1j, -1j], [-1, -4], 2, "\n2 (s - 1j) (s + 1j)\n-------------------\n (s + 1) (s + 4)\n"), - ([1], [-1 + 1j, -1 - 1j], 1, "\n s - 1\n-------------------------\n(s + (1-1j)) (s + (1+1j))\n"), - ([1], [1 + 1j, 1 - 1j], 1, "\n s - 1\n-------------------------\n(s - (1+1j)) (s - (1-1j))\n"), + [([0], [-1], 1, + '\n' + ' s\n' + '-----\n' + 's + 1\n'), + ([-1], [-1], 1, + '\n' + 's + 1\n' + '-----\n' + 's + 1\n'), + ([-1], [1], 1, + '\n' + 's + 1\n' + '-----\n' + 's - 1\n'), + ([1], [-1], 1, + '\n' + 's - 1\n' + '-----\n' + 's + 1\n'), + ([-1], [-1], 2, + '\n' + '2 (s + 1)\n' + '---------\n' + ' s + 1\n'), + ([-1], [-1], 0, + '\n' + '0\n' + '-\n' + '1\n'), + ([-1], [1j, -1j], 1, + '\n' + ' s + 1\n' + '-----------------\n' + '(s - 1j) (s + 1j)\n'), + ([4j, -4j], [2j, -2j], 2, + '\n' + '2 (s - 4j) (s + 4j)\n' + '-------------------\n' + ' (s - 2j) (s + 2j)\n'), + ([1j, -1j], [-1, -4], 2, + '\n' + '2 (s - 1j) (s + 1j)\n' + '-------------------\n' + ' (s + 1) (s + 4)\n'), + ([1], [-1 + 1j, -1 - 1j], 1, + '\n' + ' s - 1\n' + '-------------------------\n' + '(s + (1-1j)) (s + (1+1j))\n'), + ([1], [1 + 1j, 1 - 1j], 1, + '\n' + ' s - 1\n' + '-------------------------\n' + '(s - (1+1j)) (s - (1-1j))\n'), ]) def test_printing_zpk(self, zeros, poles, gain, output): """Test _tf_polynomial_to_string for constant systems""" G = zpk(zeros, poles, gain) - print(G) res = G.to_zpk() - print(res) + assert res == output + + @pytest.mark.parametrize( + "num, den, output", + [([[[11], [21]], [[12], [22]]], + [[[1, -3, 2], [1, 1, -6]], [[1, 0, 1], [1, -1, -20]]], + ('\n' + 'Input 1 to output 1:\n' + ' 11\n' + '---------------\n' + '(s - 2) (s - 1)\n' + '\n' + 'Input 1 to output 2:\n' + ' 12\n' + '-----------------\n' + '(s - 1j) (s + 1j)\n' + '\n' + 'Input 2 to output 1:\n' + ' 21\n' + '---------------\n' + '(s - 2) (s + 3)\n' + '\n' + 'Input 2 to output 2:\n' + ' 22\n' + '---------------\n' + '(s - 5) (s + 4)\n'))]) + def test_printing_zpk_mimo(self, num, den, output): + """Test _tf_polynomial_to_string for constant systems""" + G = tf(num, den) + res = G.to_zpk() assert res == output def test_printing_zpk_invalid(self): From d13f1ed4d1bd68905fb6fb109822b23d24b67102 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Wed, 22 Feb 2023 03:43:57 +0100 Subject: [PATCH 0178/1025] Fix root_locus() handling of ax parameter --- control/rlocus.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/control/rlocus.py b/control/rlocus.py index 53c5c9031..60565d48d 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -260,7 +260,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, if isdtime(sys, strict=True): zgrid(ax=ax) else: - _sgrid_func(fig=fig if sisotool else None) + _sgrid_func(ax) else: ax.axhline(0., linestyle=':', color='k', linewidth=.75, zorder=-20) ax.axvline(0., linestyle=':', color='k', linewidth=.75, zorder=-20) @@ -660,13 +660,7 @@ def _removeLine(label, ax): del line -def _sgrid_func(fig=None, zeta=None, wn=None): - if fig is None: - fig = plt.gcf() - ax = fig.gca() - else: - ax = fig.axes[1] - +def _sgrid_func(ax, zeta=None, wn=None): # Get locator function for x-axis, y-axis tick marks xlocator = ax.get_xaxis().get_major_locator() ylocator = ax.get_yaxis().get_major_locator() From 93f7b465bca4869d74768f1742e2baf13af2d9bf Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 24 Feb 2023 11:01:02 +0100 Subject: [PATCH 0179/1025] Rework after review --- control/tests/xferfcn_test.py | 11 +-- control/xferfcn.py | 134 +++++++++++++--------------------- pyproject.toml | 2 +- 3 files changed, 53 insertions(+), 94 deletions(-) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index 55a5ec111..cd5396c07 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -967,7 +967,7 @@ def test_printing_mimo(self): def test_printing_zpk(self, zeros, poles, gain, output): """Test _tf_polynomial_to_string for constant systems""" G = zpk(zeros, poles, gain) - res = G.to_zpk() + res = str(G) assert res == output @pytest.mark.parametrize( @@ -996,15 +996,10 @@ def test_printing_zpk(self, zeros, poles, gain, output): '(s - 5) (s + 4)\n'))]) def test_printing_zpk_mimo(self, num, den, output): """Test _tf_polynomial_to_string for constant systems""" - G = tf(num, den) - res = G.to_zpk() + G = tf(num, den, display_format='zpk') + res = str(G) assert res == output - def test_printing_zpk_invalid(self): - G = tf([1], [1 + 1j]) - with pytest.raises(ValueError, match='complex valued'): - G.to_zpk() - @slycotonly def test_size_mismatch(self): """Test size mismacht""" diff --git a/control/xferfcn.py b/control/xferfcn.py index 3a15f6c4f..3e67cb31b 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -92,6 +92,9 @@ class TransferFunction(LTI): time, positive number is discrete time with specified sampling time, None indicates unspecified timebase (either continuous or discrete time). + display_format: None, 'poly' or 'zpk' + Set the display format used in printing the TransferFunction object. + Default behavior is polynomial display. Attributes ---------- @@ -149,7 +152,7 @@ class TransferFunction(LTI): # Give TransferFunction._rmul_() priority for ndarray * TransferFunction __array_priority__ = 11 # override ndarray and matrix types - def __init__(self, *args, **kwargs): + def __init__(self, *args, display_format=None, **kwargs): """TransferFunction(num, den[, dt]) Construct a transfer function. @@ -198,6 +201,14 @@ def __init__(self, *args, **kwargs): # # Process keyword arguments # + if display_format is None: + display_format = 'poly' + + if display_format not in ('poly', 'zpk'): + raise ValueError("display_format must be 'poly' or 'zpk'," + " got '%s'" % display_format) + + self.display_format = display_format # Determine if the transfer function is static (needed for dt) static = True @@ -432,61 +443,16 @@ def _truncatecoeff(self): [self.num, self.den] = data def __str__(self, var=None): - """String representation of the transfer function.""" - - mimo = self.ninputs > 1 or self.noutputs > 1 - if var is None: - # TODO: replace with standard calls to lti functions - var = 's' if self.dt is None or self.dt == 0 else 'z' - outstr = "" - - for i in range(self.ninputs): - for j in range(self.noutputs): - if mimo: - outstr += "\nInput %i to output %i:" % (i + 1, j + 1) - - # Convert the numerator and denominator polynomials to strings. - numstr = _tf_polynomial_to_string(self.num[j][i], var=var) - denstr = _tf_polynomial_to_string(self.den[j][i], var=var) + """String representation of the transfer function. - # Figure out the length of the separating line - dashcount = max(len(numstr), len(denstr)) - dashes = '-' * dashcount - - # Center the numerator or denominator - if len(numstr) < dashcount: - numstr = ' ' * ((dashcount - len(numstr)) // 2) + numstr - if len(denstr) < dashcount: - denstr = ' ' * ((dashcount - len(denstr)) // 2) + denstr - - outstr += "\n" + numstr + "\n" + dashes + "\n" + denstr + "\n" - - # See if this is a discrete time system with specific sampling time - if not (self.dt is None) and type(self.dt) != bool and self.dt > 0: - # TODO: replace with standard calls to lti functions - outstr += "\ndt = " + self.dt.__str__() + "\n" - - return outstr - - def to_zpk(self, var=None): - """Return string representation of the transfer function as factorized - polynomials. - - Examples - -------- - >>> from control import tf - >>> G = tf([1],[1, -2, 1]) - >>> G.to_zpk() - 1 - --------------- - (s - 1) (s - 1) + Based on the display_format property, the output will be formatted as + either polynomials or in zpk form. """ - mimo = self.ninputs > 1 or self.noutputs > 1 + mimo = not self.issiso() if var is None: - # TODO: replace with standard calls to lti functions - var = 's' if self.dt is None or self.dt == 0 else 'z' + var = 's' if self.isctime() else 'z' outstr = "" for i in range(self.ninputs): @@ -495,34 +461,13 @@ def to_zpk(self, var=None): outstr += "\nInput %i to output %i:" % (i + 1, j + 1) # Convert the numerator and denominator polynomials to strings. - dcgain = self.num[j][i][-1] / self.den[j][i][-1] - - num_roots = roots(self.num[j][i]).astype(complex) - den_roots = roots(self.den[j][i]).astype(complex) - - polygain = np.prod(num_roots) / np.prod(den_roots) - - # Round imaginary part down to zero for values close to - # precision to prevent small errors to mess up things. - polygain = complex(polygain.real, - round(polygain.imag, 12)) - - if abs(polygain) == 0 and abs(dcgain) == 0: - k = 1 - else: - if abs(polygain) == 0: - raise ValueError( - f"Transfer function has infinite gain. " - "Please check polynomials.") - k = dcgain/polygain - if not np.isreal(k): - raise ValueError(f"Transfer function has complex valued gain (k = {k}). " - "Please check polynomials for non-complimentary poles.") - - k = np.abs(k) - - numstr = _tf_factorized_polynomial_to_string(num_roots, gain=k, var=var) - denstr = _tf_factorized_polynomial_to_string(den_roots, var=var) + if self.display_format == 'poly': + numstr = _tf_polynomial_to_string(self.num[j][i], var=var) + denstr = _tf_polynomial_to_string(self.den[j][i], var=var) + elif self.display_format == 'zpk': + z, p, k = tf2zpk(self.num[j][i], self.den[j][i]) + numstr = _tf_factorized_polynomial_to_string(z, gain=k, var=var) + denstr = _tf_factorized_polynomial_to_string(p, var=var) # Figure out the length of the separating line dashcount = max(len(numstr), len(denstr)) @@ -538,8 +483,7 @@ def to_zpk(self, var=None): # See if this is a discrete time system with specific sampling time if not (self.dt is None) and type(self.dt) != bool and self.dt > 0: - # TODO: replace with standard calls to lti functions - outstr += "\ndt = " + self.dt.__str__() + "\n" + outstr += "\ndt = " + str(self.dt) + "\n" return outstr @@ -575,8 +519,13 @@ def _repr_latex_(self, var=None): for i in range(self.noutputs): for j in range(self.ninputs): # Convert the numerator and denominator polynomials to strings. - numstr = _tf_polynomial_to_string(self.num[i][j], var=var) - denstr = _tf_polynomial_to_string(self.den[i][j], var=var) + if self.display_format == 'poly': + numstr = _tf_polynomial_to_string(self.num[j][i], var=var) + denstr = _tf_polynomial_to_string(self.den[j][i], var=var) + elif self.display_format == 'zpk': + z, p, k = tf2zpk(self.num[j][i], self.den[j][i]) + numstr = _tf_factorized_polynomial_to_string(z, gain=k, var=var) + denstr = _tf_factorized_polynomial_to_string(p, var=var) numstr = _tf_string_to_latex(numstr, var=var) denstr = _tf_string_to_latex(denstr, var=var) @@ -1432,7 +1381,6 @@ def _tf_factorized_polynomial_to_string(roots, gain=1, var='s'): factor = f"{var} + ({-root:.4g})" factors.append(factor) - multiplier = '' if round(gain, 4) != 1.0: multiplier = f"{gain:.4g} " @@ -1605,6 +1553,9 @@ def tf(*args, **kwargs): Polynomial coefficients of the numerator den: array_like, or list of list of array_like Polynomial coefficients of the denominator + display_format: None, 'poly' or 'zpk' + Set the display format used in printing the TransferFunction object. + Default behavior is polynomial display. Returns ------- @@ -1657,7 +1608,7 @@ def tf(*args, **kwargs): >>> # Create a variable 's' to allow algebra operations for SISO systems >>> s = tf('s') - >>> G = (s + 1)/(s**2 + 2*s + 1) + >>> G = (s + 1) / (s**2 + 2*s + 1) >>> # Convert a StateSpace to a TransferFunction object. >>> sys_ss = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") @@ -1728,14 +1679,27 @@ def zpk(zeros, poles, gain, *args, **kwargs): name : string, optional System name (used for specifying signals). If unspecified, a generic name is generated with a unique integer id. + display_format: None, 'poly' or 'zpk' + Set the display format used in printing the TransferFunction object. + Default behavior is zpk display. Returns ------- out: :class:`TransferFunction` Transfer function with given zeros, poles, and gain. + Examples + -------- + >>> from control import tf + >>> G = zpk([1],[2, 3], gain=6) + >>> G + s - 1 + --------------- + (s - 2) (s - ) """ num, den = zpk2tf(zeros, poles, gain) + if 'display_format' not in kwargs: + kwargs['display_format'] = 'zpk' return TransferFunction(num, den, *args, **kwargs) diff --git a/pyproject.toml b/pyproject.toml index 01b2155e4..0b1f42a90 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ source = "https://github.com/python-control/python-control" write_to = "control/_version.py" [tool.pytest.ini_options] -addopts = "-ra" +addopts = "-ra --ff -x" filterwarnings = [ "error:.*matrix subclass:PendingDeprecationWarning", ] From d2807b0c53c6ec41a2545278e789bff98d754487 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 24 Feb 2023 11:05:21 +0100 Subject: [PATCH 0180/1025] Shouldn't have commited the pyproject.toml, revering --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0b1f42a90..01b2155e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ source = "https://github.com/python-control/python-control" write_to = "control/_version.py" [tool.pytest.ini_options] -addopts = "-ra --ff -x" +addopts = "-ra" filterwarnings = [ "error:.*matrix subclass:PendingDeprecationWarning", ] From 5652bf025fd7966960029634a195d072d9220619 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 24 Feb 2023 11:24:10 +0100 Subject: [PATCH 0181/1025] Fix variable mixup due to inconsistent naming --- control/xferfcn.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 3e67cb31b..afb5e7a30 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -455,17 +455,17 @@ def __str__(self, var=None): var = 's' if self.isctime() else 'z' outstr = "" - for i in range(self.ninputs): - for j in range(self.noutputs): + for ni in range(self.ninputs): + for no in range(self.noutputs): if mimo: - outstr += "\nInput %i to output %i:" % (i + 1, j + 1) + outstr += "\nInput %i to output %i:" % (ni + 1, no + 1) # Convert the numerator and denominator polynomials to strings. if self.display_format == 'poly': - numstr = _tf_polynomial_to_string(self.num[j][i], var=var) - denstr = _tf_polynomial_to_string(self.den[j][i], var=var) + numstr = _tf_polynomial_to_string(self.num[no][ni], var=var) + denstr = _tf_polynomial_to_string(self.den[no][ni], var=var) elif self.display_format == 'zpk': - z, p, k = tf2zpk(self.num[j][i], self.den[j][i]) + z, p, k = tf2zpk(self.num[j][i], self.den[no][ni]) numstr = _tf_factorized_polynomial_to_string(z, gain=k, var=var) denstr = _tf_factorized_polynomial_to_string(p, var=var) @@ -505,7 +505,7 @@ def __repr__(self): def _repr_latex_(self, var=None): """LaTeX representation of transfer function, for Jupyter notebook""" - mimo = self.ninputs > 1 or self.noutputs > 1 + mimo = not self.issiso() if var is None: # ! TODO: replace with standard calls to lti functions @@ -516,14 +516,14 @@ def _repr_latex_(self, var=None): if mimo: out.append(r"\begin{bmatrix}") - for i in range(self.noutputs): - for j in range(self.ninputs): + for no in range(self.noutputs): + for ni in range(self.ninputs): # Convert the numerator and denominator polynomials to strings. if self.display_format == 'poly': - numstr = _tf_polynomial_to_string(self.num[j][i], var=var) - denstr = _tf_polynomial_to_string(self.den[j][i], var=var) + numstr = _tf_polynomial_to_string(self.num[no][ni], var=var) + denstr = _tf_polynomial_to_string(self.den[no][ni], var=var) elif self.display_format == 'zpk': - z, p, k = tf2zpk(self.num[j][i], self.den[j][i]) + z, p, k = tf2zpk(self.num[no][ni], self.den[no][ni]) numstr = _tf_factorized_polynomial_to_string(z, gain=k, var=var) denstr = _tf_factorized_polynomial_to_string(p, var=var) From 58e9d63e0a36081bcd754411ae1b56c645b8fd7d Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 24 Feb 2023 11:26:44 +0100 Subject: [PATCH 0182/1025] Fix variable mixup due to inconsistent naming --- control/xferfcn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index afb5e7a30..5ed78b780 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -465,7 +465,7 @@ def __str__(self, var=None): numstr = _tf_polynomial_to_string(self.num[no][ni], var=var) denstr = _tf_polynomial_to_string(self.den[no][ni], var=var) elif self.display_format == 'zpk': - z, p, k = tf2zpk(self.num[j][i], self.den[no][ni]) + z, p, k = tf2zpk(self.num[no][ni], self.den[no][ni]) numstr = _tf_factorized_polynomial_to_string(z, gain=k, var=var) denstr = _tf_factorized_polynomial_to_string(p, var=var) @@ -532,7 +532,7 @@ def _repr_latex_(self, var=None): out += [r"\frac{", numstr, "}{", denstr, "}"] - if mimo and j < self.noutputs - 1: + if mimo and no < self.noutputs - 1: out.append("&") if mimo: From 521a306eea0a09897e921a60e43aac999a216bb8 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Fri, 24 Feb 2023 11:49:41 +0100 Subject: [PATCH 0183/1025] Typos --- control/xferfcn.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 5ed78b780..1d2f7be56 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -94,7 +94,7 @@ class TransferFunction(LTI): continuous or discrete time). display_format: None, 'poly' or 'zpk' Set the display format used in printing the TransferFunction object. - Default behavior is polynomial display. + Default behavior is polynomial display. Attributes ---------- @@ -487,7 +487,6 @@ def __str__(self, var=None): return outstr - # represent to implement a re-loadable version def __repr__(self): """Print transfer function in loadable form""" @@ -532,7 +531,7 @@ def _repr_latex_(self, var=None): out += [r"\frac{", numstr, "}{", denstr, "}"] - if mimo and no < self.noutputs - 1: + if mimo and ni < self.ninputs - 1: out.append("&") if mimo: @@ -1691,11 +1690,11 @@ def zpk(zeros, poles, gain, *args, **kwargs): Examples -------- >>> from control import tf - >>> G = zpk([1],[2, 3], gain=6) + >>> G = zpk([1],[2, 3], gain=1) >>> G s - 1 --------------- - (s - 2) (s - ) + (s - 2) (s - 3) """ num, den = zpk2tf(zeros, poles, gain) if 'display_format' not in kwargs: From 2644874b2a67b195bf092fb06fbe2cea813e15c6 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Sat, 25 Feb 2023 12:35:25 +0100 Subject: [PATCH 0184/1025] Add default for xferfcn.display_format --- control/xferfcn.py | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 1d2f7be56..1bf0ad875 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -69,7 +69,9 @@ # Define module default parameter values -_xferfcn_defaults = {} +_xferfcn_defaults = { + 'xferfcn.display_format': 'poly', +} class TransferFunction(LTI): @@ -94,7 +96,8 @@ class TransferFunction(LTI): continuous or discrete time). display_format: None, 'poly' or 'zpk' Set the display format used in printing the TransferFunction object. - Default behavior is polynomial display. + Default behavior is polynomial display and can be changed by + changing config.defaults['xferfcn.display_format']. Attributes ---------- @@ -152,7 +155,7 @@ class TransferFunction(LTI): # Give TransferFunction._rmul_() priority for ndarray * TransferFunction __array_priority__ = 11 # override ndarray and matrix types - def __init__(self, *args, display_format=None, **kwargs): + def __init__(self, *args, **kwargs): """TransferFunction(num, den[, dt]) Construct a transfer function. @@ -201,14 +204,17 @@ def __init__(self, *args, display_format=None, **kwargs): # # Process keyword arguments # - if display_format is None: - display_format = 'poly' + # During module init, TransferFunction.s and TransferFunction.z + # get initialized when defaults are not fully initialized yet. + # Use 'poly' in these cases. - if display_format not in ('poly', 'zpk'): - raise ValueError("display_format must be 'poly' or 'zpk'," - " got '%s'" % display_format) + self.display_format = kwargs.pop( + 'display_format', + config.defaults.get('xferfcn.display_format', 'poly')) - self.display_format = display_format + if self.display_format not in ('poly', 'zpk'): + raise ValueError("display_format must be 'poly' or 'zpk'," + " got '%s'" % self.display_format) # Determine if the transfer function is static (needed for dt) static = True @@ -447,9 +453,7 @@ def __str__(self, var=None): Based on the display_format property, the output will be formatted as either polynomials or in zpk form. - """ - mimo = not self.issiso() if var is None: var = 's' if self.isctime() else 'z' @@ -481,8 +485,8 @@ def __str__(self, var=None): outstr += "\n" + numstr + "\n" + dashes + "\n" + denstr + "\n" - # See if this is a discrete time system with specific sampling time - if not (self.dt is None) and type(self.dt) != bool and self.dt > 0: + # If this is a strict discrete time system, print the sampling time + if self.isdtime(strict=True): outstr += "\ndt = " + str(self.dt) + "\n" return outstr @@ -1554,7 +1558,8 @@ def tf(*args, **kwargs): Polynomial coefficients of the denominator display_format: None, 'poly' or 'zpk' Set the display format used in printing the TransferFunction object. - Default behavior is polynomial display. + Default behavior is polynomial display and can be changed by + changing config.defaults['xferfcn.display_format'].. Returns ------- @@ -1680,7 +1685,8 @@ def zpk(zeros, poles, gain, *args, **kwargs): name is generated with a unique integer id. display_format: None, 'poly' or 'zpk' Set the display format used in printing the TransferFunction object. - Default behavior is zpk display. + Default behavior is polynomial display and can be changed by + changing config.defaults['xferfcn.display_format']. Returns ------- @@ -1690,15 +1696,13 @@ def zpk(zeros, poles, gain, *args, **kwargs): Examples -------- >>> from control import tf - >>> G = zpk([1],[2, 3], gain=1) + >>> G = zpk([1],[2, 3], gain=1, display_format='zpk') >>> G s - 1 --------------- (s - 2) (s - 3) """ num, den = zpk2tf(zeros, poles, gain) - if 'display_format' not in kwargs: - kwargs['display_format'] = 'zpk' return TransferFunction(num, den, *args, **kwargs) From 8101b31992de7ca3b0e385dae381671bbb3429b1 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Sat, 25 Feb 2023 12:39:09 +0100 Subject: [PATCH 0185/1025] Update after failed tests --- control/tests/xferfcn_test.py | 2 +- control/xferfcn.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index cd5396c07..b82464a72 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -966,7 +966,7 @@ def test_printing_mimo(self): ]) def test_printing_zpk(self, zeros, poles, gain, output): """Test _tf_polynomial_to_string for constant systems""" - G = zpk(zeros, poles, gain) + G = zpk(zeros, poles, gain, display_format='zpk') res = str(G) assert res == output diff --git a/control/xferfcn.py b/control/xferfcn.py index 1bf0ad875..c97a5004b 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -486,7 +486,7 @@ def __str__(self, var=None): outstr += "\n" + numstr + "\n" + dashes + "\n" + denstr + "\n" # If this is a strict discrete time system, print the sampling time - if self.isdtime(strict=True): + if type(self.dt) != bool and self.isdtime(strict=True): outstr += "\ndt = " + str(self.dt) + "\n" return outstr From 8d7ac56eb7a5bc4657de6eae9ff43bb43826f9cd Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Sat, 25 Feb 2023 13:48:32 +0100 Subject: [PATCH 0186/1025] Add default for xferfcn.floating_point_format --- control/tests/xferfcn_test.py | 29 ++++++++++++++++++++++++++++- control/xferfcn.py | 22 +++++++++++++--------- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index b82464a72..a30ed66c2 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -10,7 +10,7 @@ import control as ct from control import StateSpace, TransferFunction, rss, evalfr from control import ss, ss2tf, tf, tf2ss, zpk -from control import isctime, isdtime, sample_system, defaults +from control import isctime, isdtime, sample_system, defaults, reset_defaults from control.statesp import _convert_to_statespace from control.xferfcn import _convert_to_transfer_function from control.tests.conftest import slycotonly, matrixfilter @@ -970,6 +970,33 @@ def test_printing_zpk(self, zeros, poles, gain, output): res = str(G) assert res == output + @pytest.mark.parametrize( + "zeros, poles, gain, format, output", + [([1], [1 + 1j, 1 - 1j], 1, ".2f", + '\n' + ' 1.00\n' + '-------------------------------------\n' + '(s + (1.00-1.41j)) (s + (1.00+1.41j))\n'), + ([1], [1 + 1j, 1 - 1j], 1, ".3f", + '\n' + ' 1.000\n' + '-----------------------------------------\n' + '(s + (1.000-1.414j)) (s + (1.000+1.414j))\n'), + ([1], [1 + 1j, 1 - 1j], 1, ".6g", + '\n' + ' 1\n' + '-------------------------------------\n' + '(s + (1-1.41421j)) (s + (1+1.41421j))\n') + ]) + def test_printing_zpk_format(self, zeros, poles, gain, format, output): + """Test _tf_polynomial_to_string for constant systems""" + defaults['xferfcn.floating_point_format'] = format + G = tf([1], [1,2,3], display_format='zpk') + res = str(G) + reset_defaults() + + assert res == output + @pytest.mark.parametrize( "num, den, output", [([[[11], [21]], [[12], [22]]], diff --git a/control/xferfcn.py b/control/xferfcn.py index c97a5004b..c5c447403 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -71,8 +71,12 @@ # Define module default parameter values _xferfcn_defaults = { 'xferfcn.display_format': 'poly', + 'xferfcn.floating_point_format': '.4g' } +def _float2str(value): + formatter = "{:" + config.defaults.get('xferfcn.floating_point_format', ':.4g') + "}" + return formatter.format(value) class TransferFunction(LTI): """TransferFunction(num, den[, dt]) @@ -1313,7 +1317,7 @@ def _tf_polynomial_to_string(coeffs, var='s'): N = len(coeffs) - 1 for k in range(len(coeffs)): - coefstr = '%.4g' % abs(coeffs[k]) + coefstr = _float2str(abs(coeffs[k])) power = (N - k) if power == 0: if coefstr != '0': @@ -1355,7 +1359,7 @@ def _tf_factorized_polynomial_to_string(roots, gain=1, var='s'): """Convert a factorized polynomial to a string""" if roots.size == 0: - return f"{gain:.4g}" + return _float2str(gain) factors = [] for root in sorted(roots, reverse=True): @@ -1364,29 +1368,29 @@ def _tf_factorized_polynomial_to_string(roots, gain=1, var='s'): factor = f"{var}" factors.append(factor) elif root > 0: - factor = f"{var} - {np.abs(root):.4g}" + factor = f"{var} - {_float2str(np.abs(root))}" factors.append(factor) else: - factor = f"{var} + {np.abs(root):.4g}" + factor = f"{var} + {_float2str(np.abs(root))}" factors.append(factor) elif np.isreal(root * 1j): if root.imag > 0: - factor = f"{var} - {np.abs(root):.4g}j" + factor = f"{var} - {_float2str(np.abs(root))}j" factors.append(factor) else: - factor = f"{var} + {np.abs(root):.4g}j" + factor = f"{var} + {_float2str(np.abs(root))}j" factors.append(factor) else: if root.real > 0: - factor = f"{var} - ({root:.4g})" + factor = f"{var} - ({_float2str(root)})" factors.append(factor) else: - factor = f"{var} + ({-root:.4g})" + factor = f"{var} + ({_float2str(-root)})" factors.append(factor) multiplier = '' if round(gain, 4) != 1.0: - multiplier = f"{gain:.4g} " + multiplier = _float2str(gain) + " " if len(factors) > 1 or multiplier: factors = [f"({factor})" for factor in factors] From 2ca47e107c1d95a107ff13790bcc31d803ccf27f Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Sat, 25 Feb 2023 14:34:29 +0100 Subject: [PATCH 0187/1025] Fix improper way of setting defaults in test --- control/tests/xferfcn_test.py | 6 ++++-- control/xferfcn.py | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index a30ed66c2..ebb781b89 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -10,7 +10,8 @@ import control as ct from control import StateSpace, TransferFunction, rss, evalfr from control import ss, ss2tf, tf, tf2ss, zpk -from control import isctime, isdtime, sample_system, defaults, reset_defaults +from control import isctime, isdtime, sample_system +from control import defaults, reset_defaults, set_defaults from control.statesp import _convert_to_statespace from control.xferfcn import _convert_to_transfer_function from control.tests.conftest import slycotonly, matrixfilter @@ -990,8 +991,9 @@ def test_printing_zpk(self, zeros, poles, gain, output): ]) def test_printing_zpk_format(self, zeros, poles, gain, format, output): """Test _tf_polynomial_to_string for constant systems""" - defaults['xferfcn.floating_point_format'] = format G = tf([1], [1,2,3], display_format='zpk') + + set_defaults('xferfcn', floating_point_format=format) res = str(G) reset_defaults() diff --git a/control/xferfcn.py b/control/xferfcn.py index c5c447403..093f3654d 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -78,6 +78,7 @@ def _float2str(value): formatter = "{:" + config.defaults.get('xferfcn.floating_point_format', ':.4g') + "}" return formatter.format(value) + class TransferFunction(LTI): """TransferFunction(num, den[, dt]) From 2f2fcaae7b2d5a65691a598faa02c011c764bb56 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Sat, 25 Feb 2023 16:54:13 +0100 Subject: [PATCH 0188/1025] Fix editsdefaults fixture --- control/tests/conftest.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/control/tests/conftest.py b/control/tests/conftest.py index 3f798f26c..662e2cd32 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -101,7 +101,8 @@ def editsdefaults(): """Make sure any changes to the defaults only last during a test.""" restore = control.config.defaults.copy() yield - control.config.defaults = restore.copy() + control.config.defaults.clear() + control.config.defaults.update(restore) @pytest.fixture(scope="function") From 99ec0229e7f8dc4220e2d278e22cd1257348cb2d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 12 Jan 2023 21:52:06 -0800 Subject: [PATCH 0189/1025] add link to documentation for step_info --- doc/control.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/control.rst b/doc/control.rst index 79702dc6a..1ddf7f80a 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -86,6 +86,7 @@ Control system analysis ispassive margin stability_margins + step_info phase_crossover_frequencies poles zeros From c03b77178233ee4aaa0a7747fc58e24788c4c9ef Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Thu, 2 Feb 2023 13:18:34 +0100 Subject: [PATCH 0190/1025] rename 'type' keyword --- control/statefbk.py | 38 +++++++++++++++++++++++----------- control/tests/statefbk_test.py | 24 ++++++++++++++++++--- 2 files changed, 47 insertions(+), 15 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 1f61134a6..ab8369991 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -42,6 +42,7 @@ # External packages and modules import numpy as np import scipy as sp +import warnings from . import statesp from .mateqn import care, dare, _check_shape @@ -597,10 +598,10 @@ def dlqr(*args, **kwargs): # Function to create an I/O sytems representing a state feedback controller def create_statefbk_iosystem( - sys, gain, integral_action=None, estimator=None, type=None, + sys, gain, integral_action=None, estimator=None, controller_type=None, xd_labels='xd[{i}]', ud_labels='ud[{i}]', gainsched_indices=None, gainsched_method='linear', name=None, inputs=None, outputs=None, - states=None): + states=None, **kwargs): """Create an I/O system using a (full) state feedback controller This function creates an input/output system that implements a @@ -684,7 +685,7 @@ def create_statefbk_iosystem( hull of the scheduling points, the gain at the nearest point is used. - type : 'linear' or 'nonlinear', optional + controller_type : 'linear' or 'nonlinear', optional Set the type of controller to create. The default for a linear gain is a linear controller implementing the LQR regulator. If the type is 'nonlinear', a :class:NonlinearIOSystem is created instead, with @@ -728,6 +729,18 @@ def create_statefbk_iosystem( if not isinstance(sys, InputOutputSystem): raise ControlArgument("Input system must be I/O system") + # Process (legacy) keywords + if kwargs.get('type') is not None: + warnings.warn( + "keyword 'type' is deprecated; use 'controller_type'", + DeprecationWarning) + if controller_type is not None: + raise ControlArgument( + "duplicate keywords 'type` and 'controller_type'") + controller_type = kwargs.pop('type') + if kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) + # See whether we were give an estimator if estimator is not None: # Check to make sure the estimator is the right size @@ -781,13 +794,14 @@ def create_statefbk_iosystem( raise ControlArgument("gain must be an array or a tuple") # Decide on the type of system to create - if gainsched and type == 'linear': + if gainsched and controller_type == 'linear': raise ControlArgument( - "type 'linear' not allowed for gain scheduled controller") - elif type is None: - type = 'nonlinear' if gainsched else 'linear' - elif type not in {'linear', 'nonlinear'}: - raise ControlArgument(f"unknown type '{type}'") + "controller_type 'linear' not allowed for" + " gain scheduled controller") + elif controller_type is None: + controller_type = 'nonlinear' if gainsched else 'linear' + elif controller_type not in {'linear', 'nonlinear'}: + raise ControlArgument(f"unknown controller_type '{controller_type}'") # Figure out the labels to use if isinstance(xd_labels, str): @@ -845,7 +859,7 @@ def _compute_gain(mu): return K # Define the controller system - if type == 'nonlinear': + if controller_type == 'nonlinear': # Create an I/O system for the state feedback gains def _control_update(t, states, inputs, params): # Split input into desired state, nominal input, and current state @@ -879,7 +893,7 @@ def _control_output(t, states, inputs, params): _control_update, _control_output, name=name, inputs=inputs, outputs=outputs, states=states, params=params) - elif type == 'linear' or type is None: + elif controller_type == 'linear' or controller_type is None: # Create the matrices implementing the controller if isctime(sys): # Continuous time: integrator @@ -898,7 +912,7 @@ def _control_output(t, states, inputs, params): inputs=inputs, outputs=outputs, states=states) else: - raise ControlArgument(f"unknown type '{type}'") + raise ControlArgument(f"unknown controller_type '{controller_type}'") # Define the closed loop system closed = interconnect( diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 9e8feb4c9..acb47a27c 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -6,6 +6,7 @@ import numpy as np import pytest import itertools +import warnings from math import pi, atan import control as ct @@ -569,7 +570,12 @@ def test_statefbk_iosys( # Create an I/O system for the controller ctrl, clsys = ct.create_statefbk_iosystem( - sys, K, integral_action=C_int, estimator=est, type=type) + sys, K, integral_action=C_int, estimator=est, + controller_type=type, name=type) + + # Make sure the name got set correctly + if type is not None: + assert ctrl.name == type # If we used a nonlinear controller, linearize it for testing if type == 'nonlinear': @@ -763,8 +769,20 @@ def test_statefbk_errors(self): with pytest.raises(ControlArgument, match="gain must be an array"): ctrl, clsys = ct.create_statefbk_iosystem(sys, "bad argument") - with pytest.raises(ControlArgument, match="unknown type"): - ctrl, clsys = ct.create_statefbk_iosystem(sys, K, type=1) + with pytest.warns(DeprecationWarning, match="'type' is deprecated"): + ctrl, clsys = ct.create_statefbk_iosystem(sys, K, type='nonlinear') + + with pytest.raises(ControlArgument, match="duplicate keywords"): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, type='nonlinear', controller_type='nonlinear') + + with pytest.raises(TypeError, match="unrecognized keywords"): + ctrl, clsys = ct.create_statefbk_iosystem(sys, K, typo='nonlinear') + + with pytest.raises(ControlArgument, match="unknown controller_type"): + ctrl, clsys = ct.create_statefbk_iosystem(sys, K, controller_type=1) # Errors involving integral action C_int = np.eye(2, 4) From cd89353ab7c1b36dd0de189d2045c2168011f477 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 14 Jan 2023 10:25:17 -0800 Subject: [PATCH 0191/1025] add entry for unused kwargs in create_statefbk_iosystem --- control/tests/kwargs_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 8116f013a..1cb3b596a 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -158,6 +158,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): kwarg_unittest = { 'bode': test_matplotlib_kwargs, 'bode_plot': test_matplotlib_kwargs, + 'create_statefbk_iosystem': statefbk_test.TestStatefbk.test_statefbk_iosys, 'describing_function_plot': test_matplotlib_kwargs, 'dlqe': test_unrecognized_kwargs, 'dlqr': test_unrecognized_kwargs, From c90781dacfebe358aceca02016845cc50bba4e9b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 20 Jan 2023 22:51:07 -0800 Subject: [PATCH 0192/1025] require at least 3 points for point_to_point w/ cost, constraints --- control/flatsys/flatsys.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 5741a9bd3..4bd767a99 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -436,6 +436,12 @@ def point_to_point( warnings.warn("basis too small; solution may not exist") if cost is not None or trajectory_constraints is not None: + # Make sure that we have enough timepoints to evaluate + if timepts.size < 3: + raise ControlArgument( + "There must be at least three time points if trajectory" + " cost or constraints are specified") + # Search over the null space to minimize cost/satisfy constraints N = sp.linalg.null_space(M) From dd1e2d3abd403e37ee0bbfe2b0cf08bd77f79046 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 20 Jan 2023 22:52:05 -0800 Subject: [PATCH 0193/1025] add support for 1D gain scheduling --- control/statefbk.py | 11 ++++++++++- control/tests/statefbk_test.py | 30 +++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index ab8369991..c4b6f31de 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -826,6 +826,10 @@ def create_statefbk_iosystem( gainsched_indices = range(sys.nstates) if gainsched_indices is None \ else list(gainsched_indices) + # If points is a 1D list, convert to 2D + if points.ndim == 1: + points = points.reshape(-1, 1) + # Make sure the scheduling variable indices are the right length if len(gainsched_indices) != points.shape[1]: raise ControlArgument( @@ -838,7 +842,12 @@ def create_statefbk_iosystem( gainsched_indices[i] = inputs.index(gainsched_indices[i]) # Create interpolating function - if gainsched_method == 'nearest': + if points.shape[1] < 2: + _interp = sp.interpolate.interp1d( + points[:, 0], gains, axis=0, kind=gainsched_method) + _nearest = sp.interpolate.interp1d( + points[:, 0], gains, axis=0, kind='nearest') + elif gainsched_method == 'nearest': _interp = sp.interpolate.NearestNDInterpolator(points, gains) def _nearest(mu): raise SystemError(f"could not find nearest gain at mu = {mu}") diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index acb47a27c..4579ca2a2 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -924,6 +924,34 @@ def test_gainsched_unicycle(unicycle, method): resp.states[:, -1], Xd[:, -1], atol=1e-2, rtol=1e-2) +@pytest.mark.parametrize("method", ['nearest', 'linear', 'cubic']) +def test_gainsched_1d(method): + # Define a linear system to test + sys = ct.ss([[-1, 0.1], [0, -2]], [[0], [1]], np.eye(2), 0) + + # Define gains for the first state only + points = [-1, 0, 1] + + # Define gain to be constant + K, _, _ = ct.lqr(sys, np.eye(sys.nstates), np.eye(sys.ninputs)) + gains = [K for p in points] + + # Define the paramters for the simulations + timepts = np.linspace(0, 10, 100) + X0 = np.ones(sys.nstates) * 1.1 # Start outside defined range + + # Create a controller and simulate the initial response + gs_ctrl, gs_clsys = ct.create_statefbk_iosystem( + sys, (gains, points), gainsched_indices=[0]) + gs_resp = ct.input_output_response(gs_clsys, timepts, 0, X0) + + # Verify that we get the same result as a constant gain + ck_clsys = ct.ss(sys.A - sys.B @ K, sys.B, sys.C, 0) + ck_resp = ct.input_output_response(ck_clsys, timepts, 0, X0) + + np.testing.assert_allclose(gs_resp.states, ck_resp.states) + + def test_gainsched_default_indices(): # Define a linear system to test sys = ct.ss([[-1, 0.1], [0, -2]], [[0], [1]], np.eye(2), 0) @@ -937,7 +965,7 @@ def test_gainsched_default_indices(): # Define the paramters for the simulations timepts = np.linspace(0, 10, 100) - X0 = np.ones(sys.nstates) * 0.9 + X0 = np.ones(sys.nstates) * 1.1 # Start outside defined range # Create a controller and simulate the initial response gs_ctrl, gs_clsys = ct.create_statefbk_iosystem(sys, (gains, points)) From 1535738c5c649f161aa4987f8a18f765745808d8 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 2 Feb 2023 08:31:24 -0800 Subject: [PATCH 0194/1025] update integral_action docstrings (must be ndarray) --- control/statefbk.py | 41 ++++++++++++++++++++--------------------- control/timeresp.py | 2 +- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index c4b6f31de..4e5c6c7ec 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -338,12 +338,13 @@ def lqr(*args, **kwargs): N : 2D array, optional Cross weight matrix integral_action : ndarray, optional - If this keyword is specified, the controller includes integral action - in addition to state feedback. The value of the `integral_action`` - keyword should be an ndarray that will be multiplied by the current to - generate the error for the internal integrator states of the control - law. The number of outputs that are to be integrated must match the - number of additional rows and columns in the ``Q`` matrix. + If this keyword is specified, the controller includes integral + action in addition to state feedback. The value of the + `integral_action`` keyword should be an ndarray that will be + multiplied by the current state to generate the error for the + internal integrator states of the control law. The number of + outputs that are to be integrated must match the number of + additional rows and columns in the ``Q`` matrix. method : str, optional Set the method used for computing the result. Current methods are 'slycot' and 'scipy'. If set to None (default), try 'slycot' first @@ -487,12 +488,13 @@ def dlqr(*args, **kwargs): N : 2D array, optional Cross weight matrix integral_action : ndarray, optional - If this keyword is specified, the controller includes integral action - in addition to state feedback. The value of the `integral_action`` - keyword should be an ndarray that will be multiplied by the current to - generate the error for the internal integrator states of the control - law. The number of outputs that are to be integrated must match the - number of additional rows and columns in the ``Q`` matrix. + If this keyword is specified, the controller includes integral + action in addition to state feedback. The value of the + `integral_action`` keyword should be an ndarray that will be + multiplied by the current state to generate the error for the + internal integrator states of the control law. The number of + outputs that are to be integrated must match the number of + additional rows and columns in the ``Q`` matrix. method : str, optional Set the method used for computing the result. Current methods are 'slycot' and 'scipy'. If set to None (default), try 'slycot' first @@ -520,6 +522,7 @@ def dlqr(*args, **kwargs): -------- >>> K, S, E = dlqr(dsys, Q, R, [N]) >>> K, S, E = dlqr(A, B, Q, R, [N]) + """ # @@ -654,16 +657,12 @@ def create_statefbk_iosystem( ud_labels. These settings can also be overriden using the `inputs` keyword. - integral_action : None, ndarray, or func, optional + integral_action : ndarray, optional If this keyword is specified, the controller can include integral - action in addition to state feedback. If ``integral_action`` is a - matrix, it will be multiplied by the current and desired state to - generate the error for the internal integrator states of the control - law. If ``integral_action`` is a function ``h``, that function will - be called with the signature h(t, x, u, params) to obtain the - outputs that should be integrated. The number of outputs that are - to be integrated must match the number of additional columns in the - ``K`` matrix. + action in addition to state feedback. The value of the + `integral_action`` keyword should be an ndarray that will be + multiplied by the current and desired state to generate the error + for the internal integrator states of the control law. estimator : InputOutputSystem, optional If an estimator is provided, use the states of the estimator as diff --git a/control/timeresp.py b/control/timeresp.py index 509107cc8..24f553a32 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1384,7 +1384,7 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, Parameters ---------- sysdata : StateSpace or TransferFunction or array_like - The system data. Either LTI system to similate (StateSpace, + The system data. Either LTI system to simulate (StateSpace, TransferFunction), or a time series of step response data. T : array_like or float, optional Time vector, or simulation time duration if a number (time vector is From 1a32831ec6c35c757a243d00a123fbe3d22aac79 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 4 Feb 2023 11:15:22 -0800 Subject: [PATCH 0195/1025] add signal name kwargs for create_mpc_iosysm + kwargs testing for ct.optimal --- control/optimal.py | 28 +++++++++++++++---------- control/tests/kwargs_test.py | 15 +++++++++++--- control/tests/optimal_test.py | 37 ++++++++++++++++++++++++++++++++++ control/tests/statefbk_test.py | 2 +- 4 files changed, 67 insertions(+), 15 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 377a6972e..856c6d352 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -18,7 +18,6 @@ from . import config from .exception import ControlNotImplemented -from .timeresp import TimeResponseData # Define module default parameter values _optimal_trajectory_methods = {'shooting', 'collocation'} @@ -140,7 +139,8 @@ class OptimalControlProblem(): def __init__( self, sys, timepts, integral_cost, trajectory_constraints=[], terminal_cost=None, terminal_constraints=[], initial_guess=None, - trajectory_method=None, basis=None, log=False, **kwargs): + trajectory_method=None, basis=None, log=False, kwargs_check=True, + **kwargs): """Set up an optimal control problem.""" # Save the basic information for use later self.system = sys @@ -183,7 +183,7 @@ def __init__( " discrete time systems") # Make sure there were no extraneous keywords - if kwargs: + if kwargs_check and kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) self.trajectory_constraints = _process_constraints( @@ -829,7 +829,7 @@ def compute_mpc(self, x, squeeze=None): return res.inputs[:, 0] # Create an input/output system implementing an MPC controller - def create_mpc_iosystem(self): + def create_mpc_iosystem(self, **kwargs): """Create an I/O system implementing an MPC controller""" # Check to make sure we are in discrete time if self.system.dt == 0: @@ -857,11 +857,17 @@ def _output(t, x, u, params={}): res = self.compute_trajectory(u, print_summary=False) return res.inputs[:, 0] + # Define signal names, if they are not already given + if not kwargs.get('inputs'): + kwargs['inputs'] = self.system.state_labels + if not kwargs.get('outputs'): + kwargs['outputs'] = self.system.input_labels + if not kwargs.get('states'): + kwargs['states'] = self.system.ninputs * \ + (self.timepts.size if self.basis is None else self.basis.N) + return ct.NonlinearIOSystem( - _update, _output, dt=self.system.dt, - inputs=self.system.nstates, outputs=self.system.ninputs, - states=self.system.ninputs * \ - (self.timepts.size if self.basis is None else self.basis.N)) + _update, _output, dt=self.system.dt, **kwargs) # Optimal control result @@ -923,7 +929,7 @@ def __init__( print("* Final cost:", self.cost) # Process data as a time response (with "outputs" = inputs) - response = TimeResponseData( + response = ct.TimeResponseData( ocp.timepts, inputs, states, issiso=ocp.system.issiso(), transpose=transpose, return_x=return_states, squeeze=squeeze) @@ -1129,10 +1135,10 @@ def create_mpc_iosystem( ocp = OptimalControlProblem( sys, horizon, cost, trajectory_constraints=constraints, terminal_cost=terminal_cost, terminal_constraints=terminal_constraints, - log=log, **kwargs) + log=log, kwargs_check=False, **kwargs) # Return an I/O system implementing the model predictive controller - return ocp.create_mpc_iosystem() + return ocp.create_mpc_iosystem(**kwargs) # diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 1cb3b596a..577d8a4dc 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -22,12 +22,13 @@ import control.tests.flatsys_test as flatsys_test import control.tests.frd_test as frd_test import control.tests.interconnect_test as interconnect_test +import control.tests.optimal_test as optimal_test import control.tests.statefbk_test as statefbk_test import control.tests.trdata_test as trdata_test @pytest.mark.parametrize("module, prefix", [ - (control, ""), (control.flatsys, "flatsys.") + (control, ""), (control.flatsys, "flatsys."), (control.optimal, "optimal.") ]) def test_kwarg_search(module, prefix): # Look through every object in the package @@ -158,7 +159,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): kwarg_unittest = { 'bode': test_matplotlib_kwargs, 'bode_plot': test_matplotlib_kwargs, - 'create_statefbk_iosystem': statefbk_test.TestStatefbk.test_statefbk_iosys, + 'create_statefbk_iosystem': statefbk_test.TestStatefbk.test_statefbk_errors, 'describing_function_plot': test_matplotlib_kwargs, 'dlqe': test_unrecognized_kwargs, 'dlqr': test_unrecognized_kwargs, @@ -191,6 +192,8 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): flatsys_test.TestFlatSys.test_point_to_point_errors, 'flatsys.solve_flat_ocp': flatsys_test.TestFlatSys.test_solve_flat_ocp_errors, + 'optimal.create_mpc_iosystem': optimal_test.test_mpc_iosystem_rename, + 'optimal.solve_ocp': optimal_test.test_ocp_argument_errors, 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'InputOutputSystem.__init__': test_unrecognized_kwargs, @@ -205,7 +208,13 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'StateSpace.sample': test_unrecognized_kwargs, 'TimeResponseData.__call__': trdata_test.test_response_copy, 'TransferFunction.__init__': test_unrecognized_kwargs, - 'TransferFunction.sample': test_unrecognized_kwargs, + 'TransferFunction.sample': test_unrecognized_kwargs, + 'optimal.OptimalControlProblem.__init__': + optimal_test.test_ocp_argument_errors, + 'optimal.OptimalControlProblem.compute_trajectory': + optimal_test.test_ocp_argument_errors, + 'optimal.OptimalControlProblem.create_mpc_iosystem': + optimal_test.test_mpc_iosystem_rename, } # diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 53f2c29ad..e0ab392bb 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -214,6 +214,35 @@ def test_mpc_iosystem_aircraft(): xout[0:sys.nstates, -1], xd, atol=0.1, rtol=0.01) +def test_mpc_iosystem_rename(): + # Create a discrete time system (double integrator) + cost function + sys = ct.ss([[1, 1], [0, 1]], [[0], [1]], np.eye(2), 0, dt=True) + cost = opt.quadratic_cost(sys, np.eye(2), np.eye(1)) + timepts = np.arange(0, 5) + + # Create the default optimal control problem and check labels + mpc = opt.create_mpc_iosystem(sys, timepts, cost) + assert mpc.input_labels == sys.state_labels + assert mpc.output_labels == sys.input_labels + + # Change the signal names + input_relabels = ['x1', 'x2'] + output_relabels = ['u'] + state_relabels = [f'x_[{i}]' for i in timepts] + mpc_relabeled = opt.create_mpc_iosystem( + sys, timepts, cost, inputs=input_relabels, outputs=output_relabels, + states=state_relabels, name='mpc_relabeled') + assert mpc_relabeled.input_labels == input_relabels + assert mpc_relabeled.output_labels == output_relabels + assert mpc_relabeled.state_labels == state_relabels + assert mpc_relabeled.name == 'mpc_relabeled' + + # Make sure that unknown keywords are caught + # Unrecognized arguments + with pytest.raises(TypeError, match="unrecognized keyword"): + mpc = opt.create_mpc_iosystem(sys, timepts, cost, unknown=None) + + def test_mpc_iosystem_continuous(): # Create a random state space system sys = ct.rss(2, 1, 1) @@ -492,6 +521,14 @@ def test_ocp_argument_errors(): res = opt.solve_ocp( sys, time, x0, cost, constraints, terminal_constraint=None) + with pytest.raises(TypeError, match="unrecognized keyword"): + ocp = opt.OptimalControlProblem( + sys, time, x0, cost, constraints, terminal_constraint=None) + + with pytest.raises(TypeError, match="unrecognized keyword"): + ocp = opt.OptimalControlProblem(sys, time, cost, constraints) + ocp.compute_trajectory(x0, unknown=None) + # Unrecognized trajectory constraint type constraints = [(None, np.eye(3), [0, 0, 0], [0, 0, 0])] with pytest.raises(TypeError, match="unknown trajectory constraint type"): diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 4579ca2a2..64ccaea44 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -778,7 +778,7 @@ def test_statefbk_errors(self): ctrl, clsys = ct.create_statefbk_iosystem( sys, K, type='nonlinear', controller_type='nonlinear') - with pytest.raises(TypeError, match="unrecognized keywords"): + with pytest.raises(TypeError, match="unrecognized keyword"): ctrl, clsys = ct.create_statefbk_iosystem(sys, K, typo='nonlinear') with pytest.raises(ControlArgument, match="unknown controller_type"): From 20177f2afbce9d4a5a5fffa6f925218447b0f37a Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 4 Feb 2023 15:55:52 -0800 Subject: [PATCH 0196/1025] add warning if output might not be state in create_statefbk_iosystem --- control/statefbk.py | 8 +++++++- control/tests/statefbk_test.py | 11 +++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 4e5c6c7ec..c19616a65 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -718,7 +718,7 @@ def create_statefbk_iosystem( List of strings that name the individual signals of the transformed system. If not given, the inputs and outputs are the same as the original system. - + name : string, optional System name. If unspecified, a generic name is generated with a unique integer id. @@ -750,6 +750,12 @@ def create_statefbk_iosystem( # TODO: check to make sure output map is the identity raise ControlArgument("System output must be the full state") else: + # Issue a warning if we can't verify state output + if (isinstance(sys, NonlinearIOSystem) and sys.outfcn is not None) or \ + (isinstance(sys, StateSpace) and + not (np.all(sys.C == np.eye(sys.nstates)) and np.all(sys.D == 0))): + warnings.warn("cannot verify system output is system state") + # Use the system directly instead of an estimator estimator = sys diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 64ccaea44..ec87591f6 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -754,6 +754,12 @@ def test_statefbk_errors(self): sys = ct.rss(4, 4, 2, strictly_proper=True) K, _, _ = ct.lqr(sys, np.eye(sys.nstates), np.eye(sys.ninputs)) + with pytest.warns(UserWarning, match="cannot verify system output"): + ctrl, clsys = ct.create_statefbk_iosystem(sys, K) + + # reset the system output + sys.C = np.eye(sys.nstates) + with pytest.raises(ControlArgument, match="must be I/O system"): sys_tf = ct.tf([1], [1, 1]) ctrl, clsys = ct.create_statefbk_iosystem(sys_tf, K) @@ -806,11 +812,8 @@ def unicycle(): def unicycle_update(t, x, u, params): return np.array([np.cos(x[2]) * u[0], np.sin(x[2]) * u[0], u[1]]) - def unicycle_output(t, x, u, params): - return x - return ct.NonlinearIOSystem( - unicycle_update, unicycle_output, + unicycle_update, None, inputs = ['v', 'phi'], outputs = ['x', 'y', 'theta'], states = ['x_', 'y_', 'theta_']) From e1e5bc9e41fdae4a2bb341811abdc1c3d4445c53 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 8 Feb 2023 08:23:08 -0800 Subject: [PATCH 0197/1025] charge 'horizon' to 'timepts' in solve_ocp --- control/optimal.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 856c6d352..0cc5cfc1a 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -940,7 +940,7 @@ def __init__( # Compute the input for a nonlinear, (constrained) optimal control problem def solve_ocp( - sys, horizon, X0, cost, trajectory_constraints=None, terminal_cost=None, + sys, timepts, X0, cost, trajectory_constraints=None, terminal_cost=None, terminal_constraints=[], initial_guess=None, basis=None, squeeze=None, transpose=None, return_states=True, print_summary=True, log=False, **kwargs): @@ -952,7 +952,7 @@ def solve_ocp( sys : InputOutputSystem I/O system for which the optimal input will be computed. - horizon : 1D array_like + timepts : 1D array_like List of times at which the optimal input should be computed. X0: array-like or number, optional @@ -990,9 +990,9 @@ def solve_ocp( initial_guess : 1D or 2D array_like Initial inputs to use as a guess for the optimal input. The inputs - should either be a 2D vector of shape (ninputs, horizon) or a 1D - input of shape (ninputs,) that will be broadcast by extension of the - time axis. + should either be a 2D vector of shape (ninputs, len(timepts)) or a + 1D input of shape (ninputs,) that will be broadcast by extension of + the time axis. log : bool, optional If `True`, turn on logging messages (using Python logging module). @@ -1069,7 +1069,7 @@ def solve_ocp( # Set up the optimal control problem ocp = OptimalControlProblem( - sys, horizon, cost, trajectory_constraints=trajectory_constraints, + sys, timepts, cost, trajectory_constraints=trajectory_constraints, terminal_cost=terminal_cost, terminal_constraints=terminal_constraints, initial_guess=initial_guess, basis=basis, log=log, **kwargs) @@ -1081,12 +1081,12 @@ def solve_ocp( # Create a model predictive controller for an optimal control problem def create_mpc_iosystem( - sys, horizon, cost, constraints=[], terminal_cost=None, + sys, timepts, cost, constraints=[], terminal_cost=None, terminal_constraints=[], log=False, **kwargs): """Create a model predictive I/O control system This function creates an input/output system that implements a model - predictive control for a system given the time horizon, cost function and + predictive control for a system given the time points, cost function and constraints that define the finite-horizon optimization that should be carried out at each state. @@ -1095,7 +1095,7 @@ def create_mpc_iosystem( sys : InputOutputSystem I/O system for which the optimal input will be computed. - horizon : 1D array_like + timepts : 1D array_like List of times at which the optimal input should be computed. cost : callable @@ -1133,7 +1133,7 @@ def create_mpc_iosystem( """ # Set up the optimal control problem ocp = OptimalControlProblem( - sys, horizon, cost, trajectory_constraints=constraints, + sys, timepts, cost, trajectory_constraints=constraints, terminal_cost=terminal_cost, terminal_constraints=terminal_constraints, log=log, kwargs_check=False, **kwargs) From 867b353cf2498d17750c24354f89c9ad02e97637 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 18 Feb 2023 13:09:02 -0800 Subject: [PATCH 0198/1025] allow passthru system inputs in create_statefbk_iosystem --- control/iosys.py | 68 +++++++++++++++----- control/statefbk.py | 110 +++++++++++++++++++++------------ control/stochsys.py | 1 + control/tests/iosys_test.py | 37 ++++++++++- control/tests/statefbk_test.py | 54 +++++++++++++++- 5 files changed, 212 insertions(+), 58 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index f2212d33b..69da2f35a 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1373,13 +1373,11 @@ def unused_signals(self): ------- unused_inputs : dict - A mapping from tuple of indices (isys, isig) to string '{sys}.{sig}', for all unused subsystem inputs. unused_outputs : dict - - A mapping from tuple of indices (isys, isig) to string + A mapping from tuple of indices (osys, osig) to string '{sys}.{sig}', for all unused subsystem outputs. """ @@ -1433,10 +1431,13 @@ def _find_outputs_by_basename(self, basename): for sig, isig in sys.output_index.items() if sig == (basename)} - def check_unused_signals(self, ignore_inputs=None, ignore_outputs=None): + def check_unused_signals( + self, ignore_inputs=None, ignore_outputs=None, warning=True): """Check for unused subsystem inputs and outputs - If any unused inputs or outputs are found, emit a warning. + Check to see if there are any unused signals and return a list of + unused input and output signal descriptions. If `warning` is True + and any unused inputs or outputs are found, emit a warning. Parameters ---------- @@ -1454,6 +1455,16 @@ def check_unused_signals(self, ignore_inputs=None, ignore_outputs=None): If the 'sig' form is used, all subsystem outputs with that name are considered ignored. + Returns + ------- + dropped_inputs: list of tuples + A list of the dropped input signals, with each element of the + list in the form of (isys, isig). + + dropped_outputs: list of tuples + A list of the dropped output signals, with each element of the + list in the form of (osys, osig). + """ if ignore_inputs is None: @@ -1477,7 +1488,7 @@ def check_unused_signals(self, ignore_inputs=None, ignore_outputs=None): ignore_input_map[self._parse_signal( ignore_input, 'input')[:2]] = ignore_input - # (isys, isig) -> signal-spec + # (osys, osig) -> signal-spec ignore_output_map = {} for ignore_output in ignore_outputs: if isinstance(ignore_output, str) and '.' not in ignore_output: @@ -1496,30 +1507,32 @@ def check_unused_signals(self, ignore_inputs=None, ignore_outputs=None): used_ignored_inputs = set(ignore_input_map) - set(unused_inputs) used_ignored_outputs = set(ignore_output_map) - set(unused_outputs) - if dropped_inputs: + if warning and dropped_inputs: msg = ('Unused input(s) in InterconnectedSystem: ' + '; '.join(f'{inp}={unused_inputs[inp]}' for inp in dropped_inputs)) warn(msg) - if dropped_outputs: + if warning and dropped_outputs: msg = ('Unused output(s) in InterconnectedSystem: ' + '; '.join(f'{out} : {unused_outputs[out]}' for out in dropped_outputs)) warn(msg) - if used_ignored_inputs: + if warning and used_ignored_inputs: msg = ('Input(s) specified as ignored is (are) used: ' + '; '.join(f'{inp} : {ignore_input_map[inp]}' for inp in used_ignored_inputs)) warn(msg) - if used_ignored_outputs: + if warning and used_ignored_outputs: msg = ('Output(s) specified as ignored is (are) used: ' + '; '.join(f'{out}={ignore_output_map[out]}' for out in used_ignored_outputs)) warn(msg) + return dropped_inputs, dropped_outputs + class LinearICSystem(InterconnectedSystem, LinearIOSystem): @@ -2580,9 +2593,10 @@ def tf2io(*args, **kwargs): # Function to create an interconnected system -def interconnect(syslist, connections=None, inplist=None, outlist=None, - params=None, check_unused=True, ignore_inputs=None, - ignore_outputs=None, warn_duplicate=None, **kwargs): +def interconnect( + syslist, connections=None, inplist=None, outlist=None, params=None, + check_unused=True, add_unused=False, ignore_inputs=None, + ignore_outputs=None, warn_duplicate=None, **kwargs): """Interconnect a set of input/output systems. This function creates a new system that is an interconnection of a set of @@ -2653,8 +2667,8 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, the system input connects to only one subsystem input, a single input specification can be given (without the inner list). - If omitted, the input map can be specified using the - :func:`~control.InterconnectedSystem.set_input_map` method. + If omitted the `input` parameter will be used to identify the list + of input signals to the overall system. outlist : list of output connections, optional List of connections for how the outputs from the subsystems are mapped @@ -2886,10 +2900,30 @@ def interconnect(syslist, connections=None, inplist=None, outlist=None, outlist = new_outlist newsys = InterconnectedSystem( - syslist, connections=connections, inplist=inplist, outlist=outlist, - inputs=inputs, outputs=outputs, states=states, + syslist, connections=connections, inplist=inplist, + outlist=outlist, inputs=inputs, outputs=outputs, states=states, params=params, dt=dt, name=name, warn_duplicate=warn_duplicate) + # See if we should add any signals + if add_unused: + # Get all unused signals + dropped_inputs, dropped_outputs = newsys.check_unused_signals( + ignore_inputs, ignore_outputs, warning=False) + + # Add on any unused signals that we aren't ignoring + for isys, isig in dropped_inputs: + inplist.append((isys, isig)) + inputs.append(newsys.syslist[isys].input_labels[isig]) + for osys, osig in dropped_outputs: + outlist.append((osys, osig)) + outputs.append(newsys.syslist[osys].output_labels[osig]) + + # Rebuild the system with new inputs/outputs + newsys = InterconnectedSystem( + syslist, connections=connections, inplist=inplist, + outlist=outlist, inputs=inputs, outputs=outputs, states=states, + params=params, dt=dt, name=name, warn_duplicate=warn_duplicate) + # check for implicitly dropped signals if check_unused: newsys.check_unused_signals(ignore_inputs, ignore_outputs) diff --git a/control/statefbk.py b/control/statefbk.py index c19616a65..c76a4e31a 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -603,8 +603,8 @@ def dlqr(*args, **kwargs): def create_statefbk_iosystem( sys, gain, integral_action=None, estimator=None, controller_type=None, xd_labels='xd[{i}]', ud_labels='ud[{i}]', gainsched_indices=None, - gainsched_method='linear', name=None, inputs=None, outputs=None, - states=None, **kwargs): + gainsched_method='linear', control_indices=None, state_indices=None, + name=None, inputs=None, outputs=None, states=None, **kwargs): """Create an I/O system using a (full) state feedback controller This function creates an input/output system that implements a @@ -714,6 +714,20 @@ def create_statefbk_iosystem( Other Parameters ---------------- + control_indices : list of int or str, optional + Specify the indices of the system inputs that should be determined + by the state feedback controller. If not specified, defaults to + the first `m` system inputs, where `m` is determined by the shape + of the gain matrix, with the remaining inputs remaining as inputs + to the overall closed loop system. + + state_indices : list of int or str, optional + Specify the indices of the system (or estimator) outputs that + should be used by the state feedback controller. If not specified, + defaults to the first `n` system/estimator outputs, where `n` is + determined by the shape of the gain matrix, with the remaining + outputs remaining as outputs to the overall closed loop system. + inputs, outputs : str, or list of str, optional List of strings that name the individual signals of the transformed system. If not given, the inputs and outputs are the same as the @@ -740,31 +754,47 @@ def create_statefbk_iosystem( if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) - # See whether we were give an estimator - if estimator is not None: - # Check to make sure the estimator is the right size - if estimator.noutputs != sys.nstates: - raise ControlArgument("Estimator output size must match state") - elif sys.noutputs != sys.nstates: + # Figure out what inputs to the system to use + control_indices = range(sys.ninputs) if control_indices is None \ + else list(control_indices) + for i, idx in enumerate(control_indices): + if isinstance(idx, str): + control_indices[i] = sys.input_labels.index(control_indices[i]) + sys_ninputs = len(control_indices) + + # Decide what system is going to pass the states to the controller + if estimator is None: + estimator = sys + + # Figure out what outputs (states) from the system/estimator to use + state_indices = range(sys.nstates) if state_indices is None \ + else list(state_indices) + for i, idx in enumerate(state_indices): + if isinstance(idx, str): + state_indices[i] = estimator.state_labels.index(state_indices[i]) + sys_nstates = len(state_indices) + + # Make sure the system/estimator states are proper dimension + if estimator.noutputs < sys_nstates: # If no estimator, make sure that the system has all states as outputs - # TODO: check to make sure output map is the identity - raise ControlArgument("System output must be the full state") - else: + raise ControlArgument( + ("system" if estimator == sys else "estimator") + + " output must include the full state") + elif estimator == sys: # Issue a warning if we can't verify state output if (isinstance(sys, NonlinearIOSystem) and sys.outfcn is not None) or \ (isinstance(sys, StateSpace) and - not (np.all(sys.C == np.eye(sys.nstates)) and np.all(sys.D == 0))): + not (np.all(sys.C[np.ix_(state_indices, state_indices)] == + np.eye(sys_nstates)) and + np.all(sys.D[state_indices, :] == 0))): warnings.warn("cannot verify system output is system state") - # Use the system directly instead of an estimator - estimator = sys - # See whether we should implement integral action nintegrators = 0 if integral_action is not None: if not isinstance(integral_action, np.ndarray): raise ControlArgument("Integral action must pass an array") - elif integral_action.shape[1] != sys.nstates: + elif integral_action.shape[1] != sys_nstates: raise ControlArgument( "Integral gain size must match system state size") else: @@ -772,15 +802,15 @@ def create_statefbk_iosystem( C = integral_action else: # Create a C matrix with no outputs, just in case update gets called - C = np.zeros((0, sys.nstates)) + C = np.zeros((0, sys_nstates)) # Check to make sure that state feedback has the right shape if isinstance(gain, np.ndarray): K = gain - if K.shape != (sys.ninputs, estimator.noutputs + nintegrators): + if K.shape != (sys_ninputs, estimator.noutputs + nintegrators): raise ControlArgument( - f'Control gain must be an array of size {sys.ninputs}' - f'x {sys.nstates}' + + f'control gain must be an array of size {sys_ninputs}' + f' x {sys_nstates}' + (f'+{nintegrators}' if nintegrators > 0 else '')) gainsched = False @@ -811,24 +841,24 @@ def create_statefbk_iosystem( # Figure out the labels to use if isinstance(xd_labels, str): # Generate the list of labels using the argument as a format string - xd_labels = [xd_labels.format(i=i) for i in range(sys.nstates)] + xd_labels = [xd_labels.format(i=i) for i in range(sys_nstates)] if isinstance(ud_labels, str): # Generate the list of labels using the argument as a format string - ud_labels = [ud_labels.format(i=i) for i in range(sys.ninputs)] + ud_labels = [ud_labels.format(i=i) for i in range(sys_ninputs)] # Create the signal and system names if inputs is None: inputs = xd_labels + ud_labels + estimator.output_labels if outputs is None: - outputs = list(sys.input_index.keys()) + outputs = [sys.input_labels[i] for i in control_indices] if states is None: states = nintegrators # Process gainscheduling variables, if present if gainsched: # Create a copy of the scheduling variable indices (default = xd) - gainsched_indices = range(sys.nstates) if gainsched_indices is None \ + gainsched_indices = range(sys_nstates) if gainsched_indices is None \ else list(gainsched_indices) # If points is a 1D list, convert to 2D @@ -877,8 +907,8 @@ def _compute_gain(mu): # Create an I/O system for the state feedback gains def _control_update(t, states, inputs, params): # Split input into desired state, nominal input, and current state - xd_vec = inputs[0:sys.nstates] - x_vec = inputs[-estimator.nstates:] + xd_vec = inputs[0:sys_nstates] + x_vec = inputs[-sys_nstates:] # Compute the integral error in the xy coordinates return C @ (x_vec - xd_vec) @@ -891,14 +921,14 @@ def _control_output(t, states, inputs, params): K_ = params.get('K') # Split input into desired state, nominal input, and current state - xd_vec = inputs[0:sys.nstates] - ud_vec = inputs[sys.nstates:sys.nstates + sys.ninputs] - x_vec = inputs[-sys.nstates:] + xd_vec = inputs[0:sys_nstates] + ud_vec = inputs[sys_nstates:sys_nstates + sys_ninputs] + x_vec = inputs[-sys_nstates:] # Compute the control law - u = ud_vec - K_[:, 0:sys.nstates] @ (x_vec - xd_vec) + u = ud_vec - K_[:, 0:sys_nstates] @ (x_vec - xd_vec) if nintegrators > 0: - u -= K_[:, sys.nstates:] @ states + u -= K_[:, sys_nstates:] @ states return u @@ -915,10 +945,10 @@ def _control_output(t, states, inputs, params): else: # Discrete time: summer A_lqr = np.eye(C.shape[0]) - B_lqr = np.hstack([-C, np.zeros((C.shape[0], sys.ninputs)), C]) - C_lqr = -K[:, sys.nstates:] + B_lqr = np.hstack([-C, np.zeros((C.shape[0], sys_ninputs)), C]) + C_lqr = -K[:, sys_nstates:] D_lqr = np.hstack([ - K[:, 0:sys.nstates], np.eye(sys.ninputs), -K[:, 0:sys.nstates] + K[:, 0:sys_nstates], np.eye(sys_ninputs), -K[:, 0:sys_nstates] ]) ctrl = ss( @@ -929,12 +959,16 @@ def _control_output(t, states, inputs, params): raise ControlArgument(f"unknown controller_type '{controller_type}'") # Define the closed loop system + inplist=inputs[:-sys.nstates] + input_labels=inputs[:-sys.nstates] + outlist=sys.output_labels + [sys.input_labels[i] for i in control_indices] + output_labels=sys.output_labels + \ + [sys.input_labels[i] for i in control_indices] closed = interconnect( [sys, ctrl] if estimator == sys else [sys, ctrl, estimator], - name=sys.name + "_" + ctrl.name, - inplist=inputs[:-sys.nstates], inputs=inputs[:-sys.nstates], - outlist=sys.output_labels + sys.input_labels, - outputs=sys.output_labels + sys.input_labels + name=sys.name + "_" + ctrl.name, add_unused=True, + inplist=inplist, inputs=input_labels, + outlist=outlist, outputs=output_labels ) return ctrl, closed diff --git a/control/stochsys.py b/control/stochsys.py index 90768a222..000c1b6ab 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -564,6 +564,7 @@ def white_noise(T, Q, dt=0): # Return a linear combination of the noise sources return sp.linalg.sqrtm(Q) @ W + def correlation(T, X, Y=None, squeeze=True): """Compute the correlation of time signals. diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index aaa97ec39..6d8d62135 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1683,7 +1683,6 @@ def test_interconnect_unused_input(): h = ct.interconnect([g,s,k], connections=False) - # warn if explicity ignored input in fact used with pytest.warns( UserWarning, @@ -1781,6 +1780,42 @@ def test_interconnect_unused_output(): ignore_outputs=['v']) +def test_interconnect_add_unused(): + P = ct.ss( + [[-1]], [[1, -1]], [[-1], [1]], 0, + inputs=['u1', 'u2'], outputs=['y1','y2'], name='g') + S = ct.summing_junction(inputs=['r','-y1'], outputs=['e'], name='s') + C = ct.ss(0, 10, 2, 0, inputs=['e'], outputs=['u1'], name='k') + + # Try a normal interconnection + G1 = ct.interconnect( + [P, S, C], inputs=['r', 'u2'], outputs=['y1', 'y2']) + + # Same system, but using add_unused + G2 = ct.interconnect( + [P, S, C], inputs=['r'], outputs=['y1'], add_unused=True) + assert G2.input_labels == G1.input_labels + assert G2.input_offset == G1.input_offset + assert G2.output_labels == G1.output_labels + assert G2.output_offset == G1.output_offset + + # Ignore one of the inputs + G3 = ct.interconnect( + [P, S, C], inputs=['r'], outputs=['y1'], add_unused=True, + ignore_inputs=['u2']) + assert G3.input_labels == G1.input_labels[0:1] + assert G3.output_labels == G1.output_labels + assert G3.output_offset == G1.output_offset + + # Ignore one of the outputs + G4 = ct.interconnect( + [P, S, C], inputs=['r'], outputs=['y1'], add_unused=True, + ignore_outputs=['y2']) + assert G4.input_labels == G1.input_labels + assert G4.input_offset == G1.input_offset + assert G4.output_labels == G1.output_labels[0:1] + + def test_input_output_broadcasting(): # Create a system, time vector, and noisy input sys = ct.rss(6, 2, 3) diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index ec87591f6..21d8036f8 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -628,6 +628,54 @@ def test_statefbk_iosys( np.testing.assert_array_almost_equal(clsys.C, Cc) np.testing.assert_array_almost_equal(clsys.D, Dc) + def test_statefbk_iosys_unused(self): + # Create a base system to work with + sys = ct.rss(2, 1, 1, strictly_proper=True) + + # Create a system with extra input + aug = ct.rss(2, inputs=[sys.input_labels[0], 'd'], + outputs=sys.output_labels, strictly_proper=True,) + aug.A = sys.A + aug.B[:, 0:1] = sys.B + + # Create an estimator + est = ct.create_estimator_iosystem( + sys, np.eye(sys.ninputs), np.eye(sys.noutputs)) + + # Design an LQR controller + K, _, _ = ct.lqr(sys, np.eye(sys.nstates), np.eye(sys.ninputs)) + + # Create a baseline I/O control system + ctrl0, clsys0 = ct.create_statefbk_iosystem(sys, K, estimator=est) + clsys0_lin = clsys0.linearize(0, 0) + + # Create an I/O system with additional inputs + ctrl1, clsys1 = ct.create_statefbk_iosystem( + aug, K, estimator=est, control_indices=[0]) + clsys1_lin = clsys1.linearize(0, 0) + + # Make sure the extra inputs are there + assert aug.input_labels[1] not in clsys0.input_labels + assert aug.input_labels[1] in clsys1.input_labels + np.testing.assert_allclose(clsys0_lin.A, clsys1_lin.A) + + # Switch around which input we use + aug = ct.rss(2, inputs=['d', sys.input_labels[0]], + outputs=sys.output_labels, strictly_proper=True,) + aug.A = sys.A + aug.B[:, 1:2] = sys.B + + # Create an I/O system with additional inputs + ctrl2, clsys2 = ct.create_statefbk_iosystem( + aug, K, estimator=est, control_indices=[1]) + clsys2_lin = clsys2.linearize(0, 0) + + # Make sure the extra inputs are there + assert aug.input_labels[0] not in clsys0.input_labels + assert aug.input_labels[0] in clsys1.input_labels + np.testing.assert_allclose(clsys0_lin.A, clsys2_lin.A) + + def test_lqr_integral_continuous(self): # Generate a continuous time system for testing sys = ct.rss(4, 4, 2, strictly_proper=True) @@ -764,11 +812,13 @@ def test_statefbk_errors(self): sys_tf = ct.tf([1], [1, 1]) ctrl, clsys = ct.create_statefbk_iosystem(sys_tf, K) - with pytest.raises(ControlArgument, match="output size must match"): + with pytest.raises(ControlArgument, + match="estimator output must include the full"): est = ct.rss(3, 3, 2) ctrl, clsys = ct.create_statefbk_iosystem(sys, K, estimator=est) - with pytest.raises(ControlArgument, match="must be the full state"): + with pytest.raises(ControlArgument, + match="system output must include the full state"): sys_nf = ct.rss(4, 3, 2, strictly_proper=True) ctrl, clsys = ct.create_statefbk_iosystem(sys_nf, K) From 2fcc287b34c698dfb35e5ee303b996f43638169b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Feb 2023 10:06:09 -0800 Subject: [PATCH 0199/1025] sampling a LinearIOSystem returns a LinearIOSystem --- control/iosys.py | 6 ++++++ control/tests/iosys_test.py | 11 +++++++++++ control/tests/kwargs_test.py | 9 ++++++--- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 69da2f35a..75392432a 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -676,6 +676,12 @@ def __init__(self, linsys, **kwargs): StateSpace.__init__( self, linsys, remove_useless_states=False, init_namedio=False) + # When sampling a LinearIO system, return a LinearIOSystem + def sample(self, *args, **kwargs): + return LinearIOSystem(StateSpace.sample(self, *args, **kwargs)) + + sample.__doc__ = StateSpace.sample.__doc__ + # The following text needs to be replicated from StateSpace in order for # this entry to show up properly in sphinx doccumentation (not sure why, # but it was the only way to get it to work). diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 6d8d62135..59338fc62 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -2036,3 +2036,14 @@ def test_find_eqpt(x0, ix, u0, iu, y0, iy, dx0, idx, dt, x_expect, u_expect): # Check that we got the expected result as well np.testing.assert_allclose(np.array(xeq), x_expect, atol=1e-6) np.testing.assert_allclose(np.array(ueq), u_expect, atol=1e-6) + +def test_iosys_sample(): + csys = ct.rss(2, 1, 1) + dsys = csys.sample(0.1) + assert isinstance(dsys, ct.LinearIOSystem) + assert dsys.dt == 0.1 + + csys = ct.rss(2, 1, 1) + dsys = ct.sample_system(csys, 0.1) + assert isinstance(dsys, ct.LinearIOSystem) + assert dsys.dt == 0.1 diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 577d8a4dc..fe4e67aaa 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -86,8 +86,8 @@ def test_kwarg_search(module, prefix): (control.lqr, 1, 0, ([[1, 0], [0, 1]], [[1]]), {}), (control.linearize, 1, 0, (0, 0), {}), (control.pzmap, 1, 0, (), {}), - (control.rlocus, 0, 1, ( ), {}), - (control.root_locus, 0, 1, ( ), {}), + (control.rlocus, 0, 1, (), {}), + (control.root_locus, 0, 1, (), {}), (control.rss, 0, 0, (2, 1, 1), {}), (control.set_defaults, 0, 0, ('control',), {'default_dt': True}), (control.ss, 0, 0, (0, 0, 0, 0), {'dt': 1}), @@ -101,7 +101,9 @@ def test_kwarg_search(module, prefix): (control.InputOutputSystem, 0, 0, (), {'inputs': 1, 'outputs': 1, 'states': 1}), (control.InputOutputSystem.linearize, 1, 0, (0, 0), {}), - (control.StateSpace, 0, 0, ([[-1, 0], [0, -1]], [[1], [1]], [[1, 1]], 0), {}), + (control.LinearIOSystem.sample, 1, 0, (0.1,), {}), + (control.StateSpace, 0, 0, + ([[-1, 0], [0, -1]], [[1], [1]], [[1, 1]], 0), {}), (control.TransferFunction, 0, 0, ([1], [1, 1]), {})] ) def test_unrecognized_kwargs(function, nsssys, ntfsys, moreargs, kwargs, @@ -202,6 +204,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): interconnect_test.test_interconnect_exceptions, 'LinearIOSystem.__init__': interconnect_test.test_interconnect_exceptions, + 'LinearIOSystem.sample': test_unrecognized_kwargs, 'NonlinearIOSystem.__init__': interconnect_test.test_interconnect_exceptions, 'StateSpace.__init__': test_unrecognized_kwargs, From 574cf69822412b90ba65806651c995d7516786a1 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 17 Mar 2023 22:11:17 -0700 Subject: [PATCH 0200/1025] small tweaks to comments, docstrings, unit tests --- control/iosys.py | 12 ++++++++---- control/optimal.py | 16 ++++++++-------- control/tests/statefbk_test.py | 12 ++++++------ 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 75392432a..6b0f6cfaa 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2727,12 +2727,16 @@ def interconnect( System name (used for specifying signals). If unspecified, a generic name is generated with a unique integer id. - check_unused : bool + check_unused : bool, optional If True, check for unused sub-system signals. This check is not done if connections is False, and neither input nor output mappings are specified. - ignore_inputs : list of input-spec + add_unused : bool, optional + If True, subsystem signals that are not connected to other components + are added as inputs and outputs of the interconnected system. + + ignore_inputs : list of input-spec, optional A list of sub-system inputs known not to be connected. This is *only* used in checking for unused signals, and does not disable use of the input. @@ -2742,7 +2746,7 @@ def interconnect( signals from all sub-systems with that base name are considered ignored. - ignore_outputs : list of output-spec + ignore_outputs : list of output-spec, optional A list of sub-system outputs known not to be connected. This is *only* used in checking for unused signals, and does not disable use of the output. @@ -2752,7 +2756,7 @@ def interconnect( outputs from all sub-systems with that base name are considered ignored. - warn_duplicate : None, True, or False + warn_duplicate : None, True, or False, optional Control how warnings are generated if duplicate objects or names are detected. In `None` (default), then warnings are generated for systems that have non-generic names. If `False`, warnings are not diff --git a/control/optimal.py b/control/optimal.py index 0cc5cfc1a..9a8218a91 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -104,14 +104,14 @@ class OptimalControlProblem(): Notes ----- - To describe an optimal control problem we need an input/output system, a - time horizon, a cost function, and (optionally) a set of constraints on - the state and/or input, either along the trajectory and at the terminal - time. This class sets up an optimization over the inputs at each point in - time, using the integral and terminal costs as well as the trajectory and - terminal constraints. The `compute_trajectory` method sets up an - optimization problem that can be solved using - :func:`scipy.optimize.minimize`. + To describe an optimal control problem we need an input/output system, + a set of time points over a a fixed horizon, a cost function, and + (optionally) a set of constraints on the state and/or input, either + along the trajectory and at the terminal time. This class sets up an + optimization over the inputs at each point in time, using the integral + and terminal costs as well as the trajectory and terminal constraints. + The `compute_trajectory` method sets up an optimization problem that + can be solved using :func:`scipy.optimize.minimize`. The `_cost_function` method takes the information computes the cost of the trajectory generated by the proposed input. It does this by calling a diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 21d8036f8..951c817f1 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -512,7 +512,7 @@ def test_lqr_discrete(self): K, S, E = ct.dlqr(csys, Q, R) @pytest.mark.parametrize( - 'nstates, noutputs, ninputs, nintegrators, type', + 'nstates, noutputs, ninputs, nintegrators, type_', [(2, 0, 1, 0, None), (2, 1, 1, 0, None), (4, 0, 2, 0, None), @@ -525,7 +525,7 @@ def test_lqr_discrete(self): (4, 3, 2, 2, 'nonlinear'), ]) def test_statefbk_iosys( - self, nstates, ninputs, noutputs, nintegrators, type): + self, nstates, ninputs, noutputs, nintegrators, type_): # Create the system to be controlled (and estimator) # TODO: make sure it is controllable? if noutputs == 0: @@ -571,14 +571,14 @@ def test_statefbk_iosys( # Create an I/O system for the controller ctrl, clsys = ct.create_statefbk_iosystem( sys, K, integral_action=C_int, estimator=est, - controller_type=type, name=type) + controller_type=type_, name=type_) # Make sure the name got set correctly - if type is not None: - assert ctrl.name == type + if type_ is not None: + assert ctrl.name == type_ # If we used a nonlinear controller, linearize it for testing - if type == 'nonlinear': + if type_ == 'nonlinear': clsys = clsys.linearize(0, 0) # Make sure the linear system elements are correct From b0b612165666c0faa98aa7610ea1ce2f341b5650 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 11 Mar 2023 13:39:34 -0800 Subject: [PATCH 0201/1025] add pytest --skipslow --- control/tests/conftest.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/control/tests/conftest.py b/control/tests/conftest.py index 662e2cd32..bbc1a689c 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -119,3 +119,27 @@ def mplcleanup(): mpl.units.registry.clear() mpl.units.registry.update(save) mpl.pyplot.close("all") + + +# +# Functionality to skip slow tests using --skipslow +# +# See https://docs.pytest.org/en/latest/example/simple.html +# #control-skipping-of-tests-according-to-command-line-option +# +def pytest_addoption(parser): + parser.addoption( + "--skipslow", action="store_true", default=False, + help="skip slow tests") + + +def pytest_configure(config): + config.addinivalue_line("markers", "slow: mark test as slow to run") + + +def pytest_collection_modifyitems(config, items): + if config.getoption("--skipslow"): + skip_slow = pytest.mark.skip(reason="skipping slow tests") + for item in items: + if "slow" in item.keywords: + item.add_marker(skip_slow) From 823dfbc6ed1de5659b43beb3144da0df84cc7567 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 11 Mar 2023 13:51:16 -0800 Subject: [PATCH 0202/1025] mark selected optimal, rlocus tests as slow --- control/tests/optimal_test.py | 2 ++ control/tests/rlocus_test.py | 1 + 2 files changed, 3 insertions(+) diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index e0ab392bb..be7cbf2db 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -160,6 +160,7 @@ def test_discrete_lqr(): assert np.any(np.abs(res1.inputs - res2.inputs) > 0.1) +@pytest.mark.slow def test_mpc_iosystem_aircraft(): # model of an aircraft discretized with 0.2s sampling time # Source: https://www.mpt3.org/UI/RegulationProblem @@ -652,6 +653,7 @@ def final_point_eval(x, u): res = optctrl.compute_trajectory(x0, squeeze=True, return_x=True) +@pytest.mark.slow @pytest.mark.parametrize( "method, npts, initial_guess, fail", [ ('shooting', 3, None, 'xfail'), # doesn't converge diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index a25928e27..e61f0c8fe 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -64,6 +64,7 @@ def test_without_gains(self, sys): roots, kvect = root_locus(sys, plot=False) self.check_cl_poles(sys, roots, kvect) + @pytest.mark.slow @pytest.mark.parametrize('grid', [None, True, False]) def test_root_locus_plot_grid(self, sys, grid): rlist, klist = root_locus(sys, grid=grid) From cf4510911f570b5638d2fc909603238bbd8af5c6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 5 Mar 2023 21:05:11 -0800 Subject: [PATCH 0203/1025] initial implementation of optimal estimation problem --- control/optimal.py | 827 ++++++++++++++++++++++++++++++++- control/stochsys.py | 4 +- control/tests/kwargs_test.py | 8 +- control/tests/optimal_test.py | 17 +- control/tests/stochsys_test.py | 178 +++++++ doc/conf.py | 5 +- doc/optimal.rst | 169 ++++++- 7 files changed, 1177 insertions(+), 31 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 9a8218a91..12e0d43ba 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -137,8 +137,8 @@ class OptimalControlProblem(): """ def __init__( - self, sys, timepts, integral_cost, trajectory_constraints=[], - terminal_cost=None, terminal_constraints=[], initial_guess=None, + self, sys, timepts, integral_cost, trajectory_constraints=None, + terminal_cost=None, terminal_constraints=None, initial_guess=None, trajectory_method=None, basis=None, log=False, kwargs_check=True, **kwargs): """Set up an optimal control problem.""" @@ -941,7 +941,7 @@ def __init__( # Compute the input for a nonlinear, (constrained) optimal control problem def solve_ocp( sys, timepts, X0, cost, trajectory_constraints=None, terminal_cost=None, - terminal_constraints=[], initial_guess=None, basis=None, squeeze=None, + terminal_constraints=None, initial_guess=None, basis=None, squeeze=None, transpose=None, return_states=True, print_summary=True, log=False, **kwargs): @@ -1081,8 +1081,8 @@ def solve_ocp( # Create a model predictive controller for an optimal control problem def create_mpc_iosystem( - sys, timepts, cost, constraints=[], terminal_cost=None, - terminal_constraints=[], log=False, **kwargs): + sys, timepts, cost, constraints=None, terminal_cost=None, + terminal_constraints=None, log=False, **kwargs): """Create a model predictive I/O control system This function creates an input/output system that implements a model @@ -1141,6 +1141,730 @@ def create_mpc_iosystem( return ocp.create_mpc_iosystem(**kwargs) +# +# Optimal (moving horizon) estimation problem +# + +class OptimalEstimationProblem(): + """Description of a finite horizon, optimal estimation problem. + + The `OptimalEstimationProblem` class holds all of the information + required to specify an optimal estimation problem: the system dynamics, + cost function (negative of the log likelihood), and constraints. + + Parameters + ---------- + sys : InputOutputSystem + I/O system for which the optimal input will be computed. + timepts: 1D array + Set up time points at which the inputs and outputs are given. + integral_cost : callable + Function that returns the integral cost given the estimated state, + system inputs, and output error. Called as integral_cost(xhat, u, + v, w) where xhat is the estimated state, u is the appplied input to + the system, v is the estimated disturbance input, and w is the + difference between the measured and the estimated output. + trajectory_constraints : list of constraints, optional + List of constraints that should hold at each point in the time + vector. Each element of the list should be an object of type + :class:`~scipy.optimize.LinearConstraint` with arguments `(A, lb, + ub)` or :class:`~scipy.optimize.NonlinearConstraint` with arguments + `(fun, lb, ub)`. The constraints will be applied at each time point + along the trajectory. + terminal_cost : callable, optional + Function that returns the terminal cost given the initial estimated + state and expected value. Called as terminal_cost(xhat, x0). + + Returns + ------- + oep : OptimalEstimationProblem + Optimal estimation problem object, to be used in computing optimal + estimates. + + Other Parameters + ---------------- + terminal_constraints : list of constraints, optional + List of constraints that should hold at the terminal point in time, + in the same form as `trajectory_constraints`. + solve_ivp_method : str, optional + Set the method used by :func:`scipy.integrate.solve_ivp`. + solve_ivp_kwargs : str, optional + Pass additional keywords to :func:`scipy.integrate.solve_ivp`. + minimize_method : str, optional + Set the method used by :func:`scipy.optimize.minimize`. + minimize_options : str, optional + Set the options keyword used by :func:`scipy.optimize.minimize`. + minimize_kwargs : str, optional + Pass additional keywords to :func:`scipy.optimize.minimize`. + + Notes + ----- + To describe an optimal estimation problem we need an input/output + system, a set of time points, measured inputs and outputs, a cost + function, and (optionally) a set of constraints on the state and/or + inputs along the trajectory (and at the terminal time). This class + sets up an optimization over the initial state and disturbances at each + point in time, using the integral and terminal costs as well as the + trajectory constraints. The `compute_estimate` method solves the + underling optimization problem using :func:`scipy.optimize.minimize`. + + The `_cost_function` method computes the "cost" (negative of the log + likelihood) of the estimated trajectory generated by the proposed + initial estimated state, the disturbances and noise, and the measured + output. It does this by calling a user-defined function for the + integral_cost given the current estimated states, inputs, and measured + outputs at each point along the trajectory and then adding the value of + a user-defined terminal cost at the initial point in the trajectory. + + The `_constraint_function` method evaluates the constraint functions + along the trajectory generated by the proposed estimate and + disturbances. As in the case of the cost function, the constraints are + evaluated at the estimated state, inputs, and measured outputs along + each point on the trajectory. This information is compared against the + constraint upper and lower bounds. The constraint function is + processed in the class initializer, so that it only needs to be + computed once. + + The default values for ``minimize_method``, ``minimize_options``, + ``minimize_kwargs``, ``solve_ivp_method``, and ``solve_ivp_options`` can + be set using config.defaults['optimal.']. + + """ + def __init__( + self, sys, timepts, integral_cost, terminal_cost=None, + trajectory_constraints=None, **kwargs): + """Set up an optimal control problem.""" + # Save the basic information for use later + self.system = sys + self.timepts = timepts + self.integral_cost = integral_cost + self.terminal_cost = terminal_cost + + # Process keyword arguments + self.minimize_kwargs = {} + self.minimize_kwargs['method'] = kwargs.pop( + 'minimize_method', config.defaults['optimal.minimize_method']) + self.minimize_kwargs['options'] = kwargs.pop( + 'minimize_options', config.defaults['optimal.minimize_options']) + self.minimize_kwargs.update(kwargs.pop( + 'minimize_kwargs', config.defaults['optimal.minimize_kwargs'])) + + # Make sure there were no extraneous keywords + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) + + self.trajectory_constraints = _process_constraints( + trajectory_constraints, "trajectory") + + # + # Compute and store constraints + # + # While the constraints are evaluated during the execution of the + # SciPy optimization method itself, we go ahead and pre-compute the + # `scipy.optimize.NonlinearConstraint` function that will be passed to + # the optimizer on initialization, since it doesn't change. This is + # mainly a matter of computing the lower and upper bound vectors, + # which we need to "stack" to account for the evaluation at each + # trajectory time point plus any terminal constraints (in a way that + # is consistent with the `_constraint_function` that is used at + # evaluation time. + # + # TODO: when using the collocation method, linear constraints on the + # states and inputs can potentially maintain their linear structure + # rather than being converted to nonlinear constraints. + # + constraint_lb, constraint_ub, eqconst_value = [], [], [] + + # Go through each time point and stack the bounds + for t in self.timepts: + for type, fun, lb, ub in self.trajectory_constraints: + if np.all(lb == ub): + # Equality constraint + eqconst_value.append(lb) + else: + # Inequality constraint + constraint_lb.append(lb) + constraint_ub.append(ub) + + # Turn constraint vectors into 1D arrays + self.constraint_lb = np.hstack(constraint_lb) if constraint_lb else [] + self.constraint_ub = np.hstack(constraint_ub) if constraint_ub else [] + self.eqconst_value = np.hstack(eqconst_value) if eqconst_value else [] + + # Create the constraints (inequality and equality) + # TODO: keep track of linear vs nonlinear + self.constraints = [] + + if len(self.constraint_lb) != 0: + self.constraints.append(sp.optimize.NonlinearConstraint( + self._constraint_function, self.constraint_lb, + self.constraint_ub)) + + if len(self.eqconst_value) != 0: + self.constraints.append(sp.optimize.NonlinearConstraint( + self._eqconst_function, self.eqconst_value, + self.eqconst_value)) + + # Add the collocation constraints + colloc_zeros = np.zeros(sys.nstates * (self.timepts.size - 1)) + self.colloc_vals = np.zeros((sys.nstates, self.timepts.size - 1)) + self.constraints.append(sp.optimize.NonlinearConstraint( + self._collocation_constraint, colloc_zeros, colloc_zeros)) + + # Initialize run-time statistics + self._reset_statistics() + + # + # Cost function + # + # We are given the estimated states, applied inputs, and measured + # outputs at each time point and we use a zero-order hold approximation + # to compute the integral cost plus the terminal (initial) cost: + # + # cost = sum_{k=1}^{N-1} integral_cost(xhat[k], u[k], v[k], w[k]) * dt + # + terminal_cost(xhat[0], x0) + # + def _cost_function(self, xvec): + # Compute the estimated states and disturbance inputs + xhat, u, v, w = self._compute_states_inputs(xvec) + + # Trajectory cost + if ct.isctime(self.system): + # Evaluate the costs + costs = np.array([self.integral_cost( + xhat[:, i], u[:, i], v[:, i], w[:, i]) for + i in range(self.timepts.size)]) + + # Compute the time intervals and integrate the cost (trapezoidal) + cost = 0.5 * (costs[:-1] + costs[1:]) @ np.diff(self.timepts) + + else: + # Sum the integral cost over the time (second) indices + # cost += self.integral_cost(xhat[:, i], u[:, i], v[:, i], w[:, i]) + # TODO: make sure last point is properly accounted for + cost = sum(map( + self.integral_cost, np.transpose(xhat[:, :-1]), + np.transpose(u[:, :-1]), np.transpose(v[:, :-1]), + np.transpose(w[:, :-1]))) + + # Terminal cost + if self.terminal_cost is not None and self.x0 is not None: + cost += self.terminal_cost(xhat[:, 0], self.x0) + + # Update statistics + self.cost_evaluations += 1 + + # Return the total cost for this input sequence + return cost + + # + # Constraints + # + # We are given the constraints along the trajectory and the terminal + # constraints, which each take inputs [xhat, u, v, w] and evaluate the + # constraint. How we handle these depends on the type of constraint: + # + # * For linear constraints (LinearConstraint), a combined (hstack'd) + # vector of the estimate state and inputs is multiplied by the + # polytope A matrix for comparison against the upper and lower + # bounds. + # + # * For nonlinear constraints (NonlinearConstraint), a user-specific + # constraint function having the form + # + # constraint_fun(xhat, u, v, w) + # + # is called at each point along the trajectory and compared against the + # upper and lower bounds. + # + # * If the upper and lower bound for the constraint are identical, then + # we separate out the evaluation into two different constraints, which + # allows the SciPy optimizers to be more efficient (and stops them + # from generating a warning about mixed constraints). This is handled + # through the use of the `_eqconst_function` and `eqconst_value` + # members. + # + # In both cases, the constraint is specified at a single point, but we + # extend this to apply to each point in the trajectory. This means + # that for N time points with m trajectory constraints and p terminal + # constraints we need to compute N*m + p constraints, each of which + # holds at a specific point in time, and implements the original + # constraint. + # + def _constraint_function(self, xvec): + # Compute the estimated states and disturbance inputs + xhat, u, v, w = self._compute_states_inputs(xvec) + + # + # Evaluate the constraint function along the trajectory + # + # TODO: vectorize + value = [] + for i, t in enumerate(self.timepts): + for ctype, fun, lb, ub in self.trajectory_constraints: + if np.all(lb == ub): + # Skip equality constraints + continue + elif ctype == opt.LinearConstraint: + # `fun` is the A matrix associated with the polytope... + value.append(fun @ np.hstack( + [xhat[:, i], u[:, i], v[:, i], w[:, i]])) + elif ctype == opt.NonlinearConstraint: + value.append(fun(xhat[:, i], u[:, i], v[:, i], w[:, i])) + else: # pragma: no cover + # Checked above => we should never get here + raise TypeError(f"unknown constraint type {ctype}") + + # Update statistics + self.constraint_evaluations += 1 + + # Return the value of the constraint function + return np.hstack(value) + + def _eqconst_function(self, xvec): + # Compute the estimated states and disturbance inputs + xhat, u, v, w = self._compute_states_inputs(xvec) + + # Evaluate the constraint function along the trajectory + # TODO: vectorize + value = [] + for i, t in enumerate(self.timepts): + for ctype, fun, lb, ub in self.trajectory_constraints: + if np.any(lb != ub): + # Skip inequality constraints + continue + elif ctype == opt.LinearConstraint: + # `fun` is the A matrix associated with the polytope... + value.append(fun @ np.hstack( + [xhat[:, i], u[:, i], v[:, i], w[:, i]])) + elif ctype == opt.NonlinearConstraint: + value.append(fun(xhat[:, i], u[:, i], v[:, i], w[:, i])) + else: # pragma: no cover + # Checked above => we should never get here + raise TypeError(f"unknown constraint type {ctype}") + + # Update statistics + self.eqconst_evaluations += 1 + + # Return the value of the constraint function + return np.hstack(value) + + def _collocation_constraint(self, xvec): + # Compute the estimated states and disturbance inputs + xhat, u, v, w = self._compute_states_inputs(xvec) + inputs = np.vstack([u, v]) + + if self.system.isctime(): + # Compute the collocation constraints + # TODO: vectorize + fk = self.system._rhs( + self.timepts[0], xhat[:, 0], inputs[:, 0]) + for i, t in enumerate(self.timepts[:-1]): + # From M. Kelly, SIAM Review (2017), equation (3.2), i = k+1 + # x[k+1] - x[k] = 0.5 hk (f(x[k+1], u[k+1] + f(x[k], u[k])) + fkp1 = self.system._rhs(t, xhat[:, i+1], inputs[:, i+1]) + self.colloc_vals[:, i] = xhat[:, i+1] - xhat[:, i] - \ + 0.5 * (self.timepts[i+1] - self.timepts[i]) * (fkp1 + fk) + fk = fkp1 + else: + # TODO: vectorize + for i, t in enumerate(self.timepts[:-1]): + # x[k+1] = f(x[k], u[k], v[k]) + self.colloc_vals[:, i] = xhat[:, i+1] - \ + self.system._rhs(t, xhat[:, i], inputs[:, i]) + + # Return the value of the constraint function + return self.colloc_vals.reshape(-1) + + # + # Initial guess processing + # + # TODO: Not implemented + # + def _process_initial_guess(self, initial_guess): + if initial_guess is None: + return np.zeros( + (self.system.nstates + self.ndisturbances) * self.timepts.size) + else: + # TODO: add dimension check + return np.hstack([ + initial_guess[0].reshape(-1), # estimated states + initial_guess[1].reshape(-1)]) # disturbances + + # + # Compute the states and inputs from the optimization parameter vector + # and the internally stored inputs and measured outputs. + # + # The optimization parameter vector has elements (xhat[0], ..., + # xhat[N-1], v[0], ..., v[N-2]) where N is the number of time + # points. The system inputs u and measured outputs y are locally + # stored in self.u and self.y when compute_estimate() is called. + # + def _compute_states_inputs(self, xvec): + # Extract the state estimate and disturbances + xhat = xvec[:self.system.nstates * self.timepts.size].reshape( + self.system.nstates, -1) + v = xvec[self.system.nstates * self.timepts.size:].reshape( + self.ndisturbances, -1) + + # Compute the estimated output + yhat = np.vstack([ + self.system._out(self.timepts[i], xhat[:, i], + np.hstack([self.u[:, i], v[:, i]])) + for i in range(self.timepts.size)]).T + + return xhat, self.u, v, self.y - yhat + + # + # Optimization statistics + # + # To allow some insight into where time is being spent, we keep track + # of the number of times that various functions are called and (TODO) + # how long we spent inside each function. + # + def _reset_statistics(self): + """Reset counters for keeping track of statistics""" + self.cost_evaluations, self.cost_process_time = 0, 0 + self.constraint_evaluations, self.constraint_process_time = 0, 0 + self.eqconst_evaluations, self.eqconst_process_time = 0, 0 + + def _print_statistics(self, reset=True): + """Print out summary statistics from last run""" + print("Summary statistics:") + print("* Cost function calls:", self.cost_evaluations) + if self.constraint_evaluations: + print("* Constraint calls:", self.constraint_evaluations) + if self.eqconst_evaluations: + print("* Eqconst calls:", self.eqconst_evaluations) + if reset: + self._reset_statistics() + + # + # Optimal estimate computations + # + + # Compute the optimal trajectory from the current state + def compute_estimate( + self, Y, U, X0=None, initial_guess=None, + squeeze=None, print_summary=True): + """Compute the optimal input at state x + + Parameters + ---------- + Y, U : 2D array + Measured outputs and applied inputs at each time point. + X0 : 1D array + Expected initial value of the state. + initial_guess : 2-tuple of 2D arrays + A 2-tuple consisting of the estimated states and disturbance + values to use as a guess for the optimal estimated trajectory. + squeeze : bool, optional + If True and if the system has a single disturbance input and + single measured output, return the system input and output as a + 1D array rather than a 2D array. If False, return the system + output as a 2D array even if the system is SISO. Default value + set by config.defaults['control.squeeze_time_response']. + print_summary : bool, optional + If `True` (default), print a short summary of the computation. + + Returns + ------- + res : OptimalEstimationResult + Bundle object with the results of the optimal estimation problem. + res.success: bool + Boolean flag indicating whether the optimization was successful. + res.time : array + Time values of the input (same as self.timepts). + res.inputs : array + Estimated disturbance inputs for the system trajectory. + res.states : array + Time evolution of the estimated state vector. + res.outputs: array + Estimated measurement noise for the system trajectory. + + """ + # Store the inputs and outputs (for use in _constraint_function) + self.u = np.atleast_1d(U).reshape(-1, self.timepts.size) + self.y = np.atleast_1d(Y).reshape(-1, self.timepts.size) + self.x0 = X0 + + # Figure out the number of disturbances + self.ndisturbances = self.system.ninputs - self.u.shape[0] + assert self.ndisturbances > 0 + + # Process the initial guess + initial_guess = self._process_initial_guess(initial_guess) + + # Call ScipPy optimizer + res = sp.optimize.minimize( + self._cost_function, initial_guess, + constraints=self.constraints, **self.minimize_kwargs) + + # Process and return the results + return OptimalEstimationResult( + self, res, squeeze=squeeze, print_summary=print_summary) + + + # + # Create an input/output system implementing an moving horizon estimator + # + # This function creates an input/output system that has internal state + # xhat, u, v, y for all previous time points. When the system update + # function is called, + def create_mhe_iosystem( + self, nd, output_labels='xhat[{i}]', sensor_labels=None): + """Create an I/O system implementing an MPC controller + + This function creates an input/output system that implements a + moving horizon estimator for a an optimal estimation problem. The + I/O system takes the system measurements and applied inputs as as + inputs and outputs the estimated state. + + Parameters + ---------- + sys : InputOutputSystem + I/O system for which the estimator will be computed. + + nd : int + Number of inputs that are disturbance (versus control) inputs. + The current implementation assumes that the inputs to `sys` are + the control inputs followed by `nd` disturbance inputs. + + Returns + ------- + estim : InputOutputSystem + An I/O system taking the measured output and applied input for + the model system and returning the estimated state of the + system, as determined by solving the optimal estimation problem. + + """ + # Check to make sure we are in discrete time + if self.system.dt == 0: + raise ct.ControlNotImplemented( + "MHE for continuous time systems not implemented") + + # Figure out the labels to use + if isinstance(output_labels, str): + # Generate labels using the argument as a format string + output_labels = [output_labels.format(i=i) + for i in range(self.system.nstates)] + + sensor_labels = 'y[{i}]' if sensor_labels is None else sensor_labels + if isinstance(sensor_labels, str): + # Generate labels using the argument as a format string + sensor_labels = [sensor_labels.format(i=i) + for i in range(self.system.noutputs - nd)] + + nstates = (self.system.nstates + self.system.ninputs + + self.system.noutputs) * self.timepts.size + + # Utility function to extract elements from MHE state vector + def _xvec_next(xvec, off, size): + len_ = size * self.timepts.size + return (off + len_, + xvec[off:off + len_].reshape(-1, self.timepts.size)) + + # Update function for the estimator + def _mhe_update(t, xvec, uvec, params={}): + # Inputs are the measurements and inputs + y = uvec[:self.system.noutputs].reshape(-1, 1) + u = uvec[self.system.noutputs:].reshape(-1, 1) + + # Estimator state = [xhat, v, Y, U] + off, xhat = _xvec_next(xvec, 0, self.system.nstates) + off, U = _xvec_next(xvec, off, self.system.ninputs - nd) + off, V = _xvec_next(xvec, off, nd) + off, Y = _xvec_next(xvec, off, self.system.noutputs) + + # Shift the states and add the new measurements and inputs + # TODO: look for Numpy shift() operator + xhat = np.hstack([xhat[:, 1:], xhat[:, -1:]]) + U = np.hstack([U[:, 1:], u]) + V = np.hstack([V[:, 1:], V[:, -1:]]) + Y = np.hstack([Y[:, 1:], y]) + + # Compute the new states and disturbances + est = self.compute_estimate( + Y, U, X0=xhat[:, 0], initial_guess=(xhat, V), + print_summary=False) + + # Restack the new state + return np.hstack([ + est.states.reshape(-1), U.reshape(-1), + est.inputs.reshape(-1), Y.reshape(-1)]) + + # Ouput function + def _mhe_output(t, xvec, uvec, params={}): + # Get the states and inputs + off, xhat = _xvec_next(xvec, 0, self.system.nstates) + off, u_v = _xvec_next(xvec, off, self.system.ninputs) + + # Compute the estimate at the next time point + return self.system._rhs(t, xhat[:, -1], u_v[:, -1]) + + return ct.NonlinearIOSystem( + _mhe_update, _mhe_output, states=nstates, + inputs=sensor_labels + self.system.input_labels, + outputs=output_labels, dt=self.system.dt) + + +# Optimal estimation result +class OptimalEstimationResult(sp.optimize.OptimizeResult): + """Result from solving an optimal estimationproblem. + + This class is a subclass of :class:`scipy.optimize.OptimizeResult` with + additional attributes associated with solving optimal estimation + problems. + + Attributes + ---------- + states : ndarray + Estimated state trajectory. + inputs : ndarray + The disturbances associated with the estimated state trajectory. + outputs : + The error between measured outputs and estiamted outputs. + success : bool + Whether or not the optimizer exited successful. + problem : OptimalControlProblem + Optimal control problem that generated this solution. + cost : float + Final cost of the return solution. + system_simulations, {cost, constraint, eqconst}_evaluations : int + Number of system simulations and evaluations of the cost function, + (inequality) constraint function, and equality constraint function + performed during the optimzation. + {cost, constraint, eqconst}_process_time : float + If logging was enabled, the amount of time spent evaluating the cost + and constraint functions. + + """ + def __init__( + self, oep, res, return_states=True, print_summary=False, + transpose=None, squeeze=None): + """Create a OptimalControlResult object""" + + # Copy all of the fields we were sent by sp.optimize.minimize() + for key, val in res.items(): + setattr(self, key, val) + + # Remember the optimal control problem that we solved + self.problem = oep + + # Parse the optimization variables into states and inputs + xhat, u, v, w = oep._compute_states_inputs(res.x) + + # See if we got an answer + if not res.success: + warnings.warn( + "unable to solve optimal control problem\n" + "scipy.optimize.minimize returned " + res.message, UserWarning) + + # Save the final cost + self.cost = res.fun + + # Optionally print summary information + if print_summary: + oep._print_statistics() + print("* Final cost:", self.cost) + + # Process data as a time response (with "outputs" = inputs) + response = ct.TimeResponseData( + oep.timepts, w, xhat, v, issiso=oep.system.issiso(), + squeeze=squeeze) + + self.time = response.time + self.inputs = response.inputs + self.states = response.states + self.outputs = response.outputs + + +# Compute the moving horizon estimate for a nonlinear system +def solve_oep( + sys, timepts, Y, U, trajectory_cost, X0=None, + trajectory_constraints=None, initial_guess=None, + squeeze=None, print_summary=True, **kwargs): + + """Compute the solution to a moving horizon estimation problem + + Parameters + ---------- + sys : InputOutputSystem + I/O system for which the optimal input will be computed. + + timepts : 1D array_like + List of times at which the optimal input should be computed. + + Y, U: 2D array_like + Values of the outputs and inputs at each time point. + + trajectory_cost : callable + Function that returns the cost given the current state + and input. Called as `cost(y, u, x0)`. + + X0: 1D array_like, optional + Mean value of the initial condition (defaults to 0). + + trajectory_constraints : list of tuples, optional + List of constraints that should hold at each point in the time vector. + See :func:`solve_ocp` for more information. + + initial_guess : 2D array_like, optional + Initial guess for the state estimate at each time point. + + print_summary : bool, optional + If `True` (default), print a short summary of the computation. + + squeeze : bool, optional + If True and if the system has a single output, return the system + output as a 1D array rather than a 2D array. If False, return the + system output as a 2D array even if the system is SISO. Default value + set by config.defaults['control.squeeze_time_response']. + + Returns + ------- + res : TimeResponseData + Bundle object with the estimated state and noise values. + + res.success : bool + Boolean flag indicating whether the optimization was successful. + + res.time : array + Time values of the input. + + res.inputs : array + Disturbance values corresponding to the estimated state. If the + system is SISO and squeeze is not True, the array is 1D (indexed by + time). If the system is not SISO or squeeze is False, the array is + 2D (indexed by the output number and time). + + res.states : array + Estimated state vector over the given time points. + + res.outputs : array + Noise values corresponding to the estimated state. If the system + is SISO and squeeze is not True, the array is 1D (indexed by time). + If the system is not SISO or squeeze is False, the array is 2D + (indexed by the output number and time). + + Notes + ----- + Additional keyword parameters can be used to fine tune the behavior of + the underlying optimization and integration functions. See + :func:`OptimalControlProblem` for more information. + + """ + # Set up the optimal control problem + oep = OptimalEstimationProblem( + sys, timepts, trajectory_cost, + trajectory_constraints=trajectory_constraints, **kwargs) + + # Solve for the optimal input from the current state + return oep.compute_estimate( + Y, U, X0=X0, initial_guess=initial_guess, + squeeze=squeeze, print_summary=print_summary) + + # # Functions to create cost functions (quadratic cost function) # @@ -1202,6 +1926,53 @@ def quadratic_cost(sys, Q, R, x0=0, u0=0): return lambda x, u: ((x-x0) @ Q @ (x-x0) + (u-u0) @ R @ (u-u0)).item() +def gaussian_likelihood_cost(sys, Rv, Rw=None): + """Create cost function for Gaussian likelihoods + + Returns a quadratic cost function that can be used for an optimal + estimation problem. The cost function is of the form + + cost = v^T R_v^{-1} v + w^T R_w^{-1} w + + Parameters + ---------- + sys : InputOutputSystem + I/O system for which the cost function is being defined. + Rv : 2D array_like + Covariance matrix for input (or state) disturbances. + Rw : 2D array_like + Covariance matrix for sensor noise. + + Returns + ------- + cost_fun : callable + Function that can be used to evaluate the cost for a given + disturbance and sensor noise. The call signature of the function + is cost_fun(v, w). + + """ + # Process the input arguments + if Rv is not None: + Rv = np.atleast_2d(Rv) + + if Rw is not None: + Rw = np.atleast_2d(Rw) + if Rw.size == 1: # allow scalar weights + Rw = np.eye(sys.noutputs) * Rw.item() + elif Rw.shape != (sys.noutputs, sys.noutputs): + raise ValueError("Rw matrix is the wrong shape") + + if Rv is None: + return lambda xhat, u, v, w: (w @ np.linalg.inv(Rw) @ w).item() + + if Rw is None: + return lambda xhat, u, v, w: (v @ np.linalg.inv(Rv) @ v).item() + + # Received both Rv and Rw matrices + return lambda xhat, u, v, w: \ + (v @ np.linalg.inv(Rv) @ v + w @ np.linalg.inv(Rw) @ w).item() + + # # Functions to create constraints: either polytopes (A x <= b) or ranges # (lb # <= x <= ub). @@ -1253,7 +2024,7 @@ def state_poly_constraint(sys, A, b): def state_range_constraint(sys, lb, ub): - """Create state constraint from polytope + """Create state constraint from range Creates a linear constraint on the system state that bounds the range of the individual states to be between `lb` and `ub`. The upper and lower @@ -1450,6 +2221,46 @@ def _evaluate_output_range_constraint(x, u): # Return a nonlinear constraint object based on the polynomial return (opt.NonlinearConstraint, _evaluate_output_range_constraint, lb, ub) +# +# Create a constraint on the disturbance input +# + +def disturbance_range_constraint(sys, lb, ub): + """Create constraint for bounded disturbances + + This function computes a constraint that puts a bound on the size of + input disturbances. The output of this function can be passed as a + trajectory constraint for optimal estimation problems. + + Parameters + ---------- + sys : InputOutputSystem + I/O system for which the constraint is being defined. + lb : 1D array + Lower bound for each of the disturbancs. + ub : 1D array + Upper bound for each of the disturbances. + + Returns + ------- + constraint : tuple + A tuple consisting of the constraint type and parameter values. + + """ + # Convert bounds to lists and make sure they are the right dimension + lb = np.atleast_1d(lb).reshape(-1) + ub = np.atleast_1d(ub).reshape(-1) + if lb.shape != ub.shape: + raise ValueError("upper and lower bound shapes must match") + ndisturbances = lb.size + + # Generate a linear constraint on the input disturbances + xvec_len = sys.nstates + sys.ninputs + sys.noutputs + A = np.zeros((ndisturbances, xvec_len)) + A[:, sys.nstates + sys.ninputs - ndisturbances:-sys.noutputs] = \ + np.eye(ndisturbances) + return opt.LinearConstraint(A, lb, ub) + # # Utility functions # @@ -1466,7 +2277,9 @@ def _evaluate_output_range_constraint(x, u): # first element. # def _process_constraints(clist, name): - if isinstance( + if clist is None: + clist = [] + elif isinstance( clist, (tuple, opt.LinearConstraint, opt.NonlinearConstraint)): clist = [clist] elif not isinstance(clist, list): diff --git a/control/stochsys.py b/control/stochsys.py index 000c1b6ab..fede887f3 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -354,8 +354,8 @@ def create_estimator_iosystem( Disturbance matrix describing how the disturbances enters the dynamics. Defaults to sys.B. C : ndarray, optional - If the system has all full states output, define the measured values - to be used by the estimator. Otherwise, use the system output as the + If the system has full state output, define the measured values to + be used by the estimator. Otherwise, use the system output as the measured values. {state, covariance, sensor, output}_labels : str or list of str, optional Set the name of the signals to use for the internal state, covariance, diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index fe4e67aaa..be701b177 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -196,6 +196,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): flatsys_test.TestFlatSys.test_solve_flat_ocp_errors, '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, 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'InputOutputSystem.__init__': test_unrecognized_kwargs, @@ -217,7 +218,9 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'optimal.OptimalControlProblem.compute_trajectory': optimal_test.test_ocp_argument_errors, 'optimal.OptimalControlProblem.create_mpc_iosystem': - optimal_test.test_mpc_iosystem_rename, + optimal_test.test_ocp_argument_errors, + 'optimal.OptimalEstimationProblem.__init__': + optimal_test.test_oep_argument_errors, } # @@ -234,9 +237,6 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): control.freqplot._add_arrows_to_line2D, # RMM, 18 Nov 2022 control.namedio._process_dt_keyword, # RMM, 13 Nov 2022 control.namedio._process_namedio_keywords, # RMM, 18 Nov 2022 - control.optimal.OptimalControlProblem.__init__, # RMM, 18 Nov 2022 - control.optimal.solve_ocp, # RMM, 18 Nov 2022 - control.optimal.create_mpc_iosystem, # RMM, 18 Nov 2022 } @pytest.mark.parametrize("module", [control, control.flatsys]) diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index be7cbf2db..cbfa4e649 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -529,7 +529,7 @@ def test_ocp_argument_errors(): with pytest.raises(TypeError, match="unrecognized keyword"): ocp = opt.OptimalControlProblem(sys, time, cost, constraints) ocp.compute_trajectory(x0, unknown=None) - + # Unrecognized trajectory constraint type constraints = [(None, np.eye(3), [0, 0, 0], [0, 0, 0])] with pytest.raises(TypeError, match="unknown trajectory constraint type"): @@ -771,3 +771,18 @@ def vehicle_output(t, x, u, params): np.testing.assert_almost_equal(y[:,-1], xf, decimal=1) else: np.testing.assert_almost_equal(y[:,-1], xf, decimal=1) + + +def test_oep_argument_errors(): + sys = ct.rss(4, 2, 2) + timepts = np.linspace(0, 1, 10) + Y = np.zeros((2, timepts.size)) + U = np.zeros_like(timepts) + cost = opt.gaussian_likelihood_cost(sys, np.eye(1), np.eye(2)) + + # Unrecognized arguments + with pytest.raises(TypeError, match="unrecognized keyword"): + res = opt.solve_oep(sys, timepts, Y, U, cost, unknown=True) + + with pytest.raises(TypeError, match="unrecognized keyword"): + oep = opt.OptimalEstimationProblem(sys, timepts, cost, unknown=True) diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 75e5a510c..4366f4f15 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -6,6 +6,7 @@ from control.tests.conftest import asmatarrayout import control as ct +import control.optimal as opt from control import lqe, dlqe, rss, drss, tf, ss, ControlArgument, slycot_check from math import log, pi @@ -317,3 +318,180 @@ def test_correlation(): with pytest.raises(ValueError, match="Time values must be equally"): T = np.logspace(0, 2, T.size) tau, Rtau = ct.correlation(T, V) + +@pytest.mark.parametrize('dt', [0, 1]) +def test_oep(dt): + # Define the system to test, with additional input + csys = ct.ss( + [[-0.5, 1, 0, 0], [0, -1, 1, 0], [0, 0, -2, 1], [0, 0, 0, -3]], # A + [[0, 0.1], [0, 0.1], [0, 0.1], [1, 0.1]], # B + [[1, 0, 0, 0], [0, 0, 1, 0]], # C + 0, dt=0) + dsys = ct.c2d(csys, dt) + sys = csys if dt == 0 else dsys + + # Create disturbances and noise (fixed, to avoid random errors) + Rv = 0.1 * np.eye(1) # scalar disturbance + Rw = 0.01 * np.eye(sys.noutputs) + timepts = np.arange(0, 10.1, 1) + V = np.array( + [0 if t % 2 == 1 else 1 if t % 4 == 0 else -1 for t in timepts] + ).reshape(1, -1) * 0.1 + W = np.vstack([np.sin(2*timepts), np.cos(3*timepts)]) * 1e-3 + + # Generate system data + U = np.sin(timepts) + + # No disturbances + res0 = ct.input_output_response(sys, timepts, [U, V*0]) + Y0 = res0.outputs + + # With disturbances and noise + res1 = ct.input_output_response(sys, timepts, [U, V]) + Y1 = res1.outputs + W + + # + # Internal testing to make sure all our functions are OK + # + + # Set up optimal estimation function using Gaussian likelihoods for cost + traj_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw) + init_cost = lambda xhat, x: (xhat - x) @ (xhat - x) + oep = opt.OptimalEstimationProblem( + sys, timepts, traj_cost, terminal_cost=init_cost) + + # _cost_function + oep.compute_estimate(res0.outputs, U, X0=0) + assert oep._cost_function(np.hstack( + [res0.states.reshape(-1), V.reshape(-1) * 0])) == 0 + assert oep._cost_function(np.hstack( + [res0.states.reshape(-1), V.reshape(-1)])) != 0 + if sys.isdtime(): + # Collocation contstraint should be satisified for discrete time + np.testing.assert_allclose(oep._collocation_constraint( + np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])), 0) + + # _compute_states_inputs: states and inputs with no noise + oep.compute_estimate(Y0, U) + xhat, u, v, w = oep._compute_states_inputs( + np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])) + np.testing.assert_allclose(xhat, res0.states) + np.testing.assert_allclose(u, U.reshape(1, -1)) + np.testing.assert_allclose(v, 0) + np.testing.assert_allclose(w, 0) + + # _compute_states_inputs: states and inputs with no noise + oep.compute_estimate(Y1, U) + xhat, u, v, w = oep._compute_states_inputs( + np.hstack([res1.states.reshape(-1), V.reshape(-1)])) + np.testing.assert_allclose(xhat, res1.states) + np.testing.assert_allclose(u, U.reshape(1, -1)) + np.testing.assert_allclose(v, V) + np.testing.assert_allclose(w, W) + + # + # oep.compute_estimate testing + # + + # Noise free and disturbance free + nonoise_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw/1e6) + oep0 = opt.OptimalEstimationProblem( + sys, timepts, nonoise_cost, terminal_cost=init_cost) + est0 = oep0.compute_estimate(Y0, U) + if sys.isdtime(): + # Full state estimate should be near perfect + np.testing.assert_allclose( + est0.states[:, -1], res0.states[:, -1], atol=1e-3, rtol=1e-3) + np.testing.assert_allclose(est0.inputs, 0, atol=1e-2, rtol=1e-3) + np.testing.assert_allclose(est0.outputs, 0, atol=1e-2, rtol=1e-3) + else: + # Estimate at end of trajectory should be very close + assert est0.success + np.testing.assert_allclose( + est0.states[:, -1], res0.states[:, -1], atol=1e-2, rtol=1e-2) + + # Noise free, but with disturbances and good initial guess + oep1 = opt.OptimalEstimationProblem( + sys, timepts, nonoise_cost, terminal_cost=init_cost) + est1 = oep1.compute_estimate( + res1.outputs, U, initial_guess=(res1.states, V), X0=0) + np.testing.assert_allclose( + est1.states[:, -1], res1.states[:, -1], atol=1e-2, rtol=1e-2) + if sys.isdtime(): + # For discrete time, estimated disturbance and noise should be close + np.testing.assert_allclose( + est1.inputs[:-1], V[:-1], atol=1e-2, rtol=1e-2) + np.testing.assert_allclose(est1.outputs, 0, atol=1e-2, rtol=1e-2) + + # Noise and disturbances (the standard case) + est2 = oep.compute_estimate(Y1, U) # back to original OEP + assert est2.success + np.testing.assert_allclose( + est2.states[:, -1], res1.states[:, -1], atol=1e-1, rtol=1e-2) + + # + # Disturbance constraints + # + + V3 = np.clip(V, 0.5, 1) + traj_constraint = opt.disturbance_range_constraint(sys, 0.5, 1) + oep3 = opt.OptimalEstimationProblem( + sys, timepts, traj_cost, terminal_cost=init_cost, + trajectory_constraints=traj_constraint) + + res3 = ct.input_output_response(sys, timepts, [U, V3]) + Y3 = res3.outputs + W + + # Make sure the constraint screws up the estimation problem + with pytest.raises(AssertionError): + est3 = oep.compute_estimate(Y3, U) + np.testing.assert_allclose( + est3.states[:, -1], res3.states[:, -1], atol=1e-1, rtol=1e-2) + + # Make sure estimation is correct with constraint in place + est3 = oep3.compute_estimate(Y3, U) + assert est3.success + np.testing.assert_allclose( + est3.states[:, -1], res3.states[:, -1], atol=1e-1, rtol=1e-2) + + +def test_mhe(): + # Define the system to test, with additional input + csys = ct.ss( + [[-0.5, 1, 0, 0], [0, -1, 1, 0], [0, 0, -2, 1], [0, 0, 0, -3]], # A + [[0, 0.1], [0, 0.1], [0, 0.1], [1, 0.1]], # B + [[1, 0, 0, 0], [0, 0, 1, 0]], # C + 0, dt=0) + dt = 0.1 + sys = ct.c2d(csys, dt) + + # Create disturbances and noise (fixed, to avoid random errors) + Rv = 0.1 * np.eye(1) # scalar disturbance + Rw = 1e-6 * np.eye(sys.noutputs) + P0 = 0.1 * np.eye(sys.nstates) + + timepts = np.arange(0, 10*dt, dt) + mhe_timepts = np.arange(0, 5*dt, dt) + V = np.array( + [0 if i % 2 == 1 else 1 if i % 4 == 0 else -1 + for i, t in enumerate(timepts)]).reshape(1, -1) * 0.1 + W = np.sin(timepts / dt) * 1e-3 + + # Create a moving horizon estimator + traj_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw) + init_cost = lambda xhat, x: (xhat - x) @ P0 @ (xhat - x) + oep = opt.OptimalEstimationProblem( + sys, mhe_timepts, traj_cost, terminal_cost=init_cost) + mhe = oep.create_mhe_iosystem(1) + + # Generate system data + U = 10 * np.sin(timepts / (4*dt)) + inputs = np.vstack([U, V]) + resp = ct.input_output_response(sys, timepts, inputs) + + # Run the estimator + estp = ct.input_output_response( + mhe, timepts, [resp.outputs, resp.inputs[0:1]]) + + # Make sure the estimated state is close to the actual state + np.testing.assert_allclose(estp.outputs, resp.states, atol=1e-2, rtol=1e-4) diff --git a/doc/conf.py b/doc/conf.py index e2e420104..02b55820b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -127,7 +127,10 @@ # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] + +html_static_path = ['_static'] +def setup(app): + app.add_css_file('css/custom.css') # Custom sidebar templates, must be a dictionary that maps document names # to template names. diff --git a/doc/optimal.rst b/doc/optimal.rst index 807b9b9c6..0e9dd3aa5 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -1,22 +1,22 @@ .. _optimal-module: -*************** -Optimal control -*************** +************************** +Optimization-based control +************************** .. automodule:: control.optimal :no-members: :no-inherited-members: :no-special-members: -Problem setup -============= +Optimal control problem setup +============================= Consider the *optimal control problem*: .. math:: - \min_{u(\cdot)} + \min_{u(\cdot)} \int_0^T L(x,u)\, dt + V \bigl( x(T) \bigr) subject to the constraint @@ -44,7 +44,7 @@ denoted :math:`x_\text{f}`, be specified. We can do this by requiring that :math:`x(T) = x_\text{f}` or by using a more general form of constraint: .. math:: - + \psi_i(x(T)) = 0, \qquad i = 1, \dots, q. The fully constrained case is obtained by setting :math:`q = n` and defining @@ -56,7 +56,7 @@ Finally, we may wish to consider optimizations in which either the state or the inputs are constrained by a set of nonlinear functions of the form .. math:: - + \text{lb}_i \leq g_i(x, u) \leq \text{ub}_i, \qquad i = 1, \dots, k. where :math:`\text{lb}_i` and :math:`\text{ub}_i` represent lower and upper @@ -91,15 +91,119 @@ extending our horizon by an additional :math:`\Delta T` units of time. This approach can be shown to generate stabilizing control laws under suitable conditions (see, for example, the FBS2e supplement on `Optimization-Based Control `_. - + +Optimal estimation problem setup +================================ + +Consider a nonlinear system with discrete time dynamics of the form + +.. math:: + :label: eq_fusion_nlsys-oep + + X[k+1] = f(X[k], u[k], V[k]), \qquad Y[k] = h(X[k]) + W[k], + +where :math:`X[k] \in \mathbb{R}^n`, :math:`u[k] \in \mathbb{R}^m`, and +:math:`Y[k] \in \mathbb{R}^p`, and :math:`V[k] \in \mathbb{R}^q` and +:math:`W[k] \in \mathbb{R}^p` represent random processes that are not +necessarily Gaussian white noise processes. The estimation problem that we +wish to solve is to find the estimate :math:`\hat x[\cdot]` that matches +the measured outputs :math:`y[\cdot]` with "likely" disturbances and +noise. + +For a fixed horizon of length :math:`N`, this problem can be formulated as +an optimization problem where we define the likelihood of a given estimate +(and the resulting noise and disturbances predicted by the model) as a cost +function. Suppose we model the likelihood using a conditional probability +density function :math:`p(x[0], \dots, x[N] \mid y[0], \dots, y[N-1])`. +Then we can pose the state estimation problem as + +.. math:: + :label: eq_fusion_oep + + \hat x[0], \dots, \hat x[N] = + \arg \max_{\hat x[0], \dots, \hat x[N]} + p(\hat x[0], \dots, \hat x[N] \mid y[0], \dots, y[N-1]) + +subject to the constraints given by equation :eq:`eq_fusion_nlsys-oep`. +The result of this optimization gives us the estimated state for the +previous :math:`N` steps in time, including the "current" time +:math:`x[N]`. The basic idea is thus to compute the state estimate that is +most consistent with our model and penalize the noise and disturbances +according to how likely the are (based on a some sort of stochastic system +model for each). + +Given a solution to this fixed horizon, optimal estimation problem, we can +create an estimator for the state over all times by applying repeatedly +applying the optimization problem :eq:`eq_fusion_oep` over a moving +horizon. At each time :math:`k`, we take the measurements for the last +:math:`N` time steps along with the previously estimated state at the start +of the horizon, :math:`x[k-N]` and reapply the optimization in equation +:eq:`eq_fusion_oep`. This approach is known as a \define{moving horizon +estimator} (MHE). + +The formulation for the moving horizon estimation problem is very general +and various situations can be captured using the conditional probability +function :math:`p(x[0], \dots, x[N] \mid y[0], \dots, y[N-1]`. We start by +noting that if the disturbances are independent of the underlying states of +the system, we can write the conditional probability as + +.. math:: + + p \bigl(x[0], \dots, x[N] \mid y[0], \dots, y[N-1]\bigr) = + p_{X[0]}(x[0])\, \prod_{k=0}^{N-1} p_V\bigl(y[k] - h(x[k])\bigr)\, + p\bigl(x[k+1] \mid x[k]\bigr). + +This expression can be further simplified by taking the log of the +expression and maximizing the function + +.. math:: + :label: eq_fusion_log-likelihood + + \log p_{X[0]}(x[0]) + \sum_{k=0}^{N-1} \log + p_W \bigl(y[k] - h(x[k])\bigr) + \log p_V(v[k]). + +The first term represents the likelihood of the initial state, the +second term captures the likelihood of the noise signal, and the final +term captures the likelihood of the disturbances. + +If we return to the case where :math:`V` and :math:`W` are modeled as +Gaussian processes, then it can be shown that maximizing equation +:eq:`eq_fusion_log-likelihood` is equivalent to solving the optimization +problem given by + +.. math:: + :label: eq_fusion_oep-gaussian + + \min_{x[0], \{v[0], \dots, v[N-1]\}} + \|x[0] - \bar x[0]\|_{P_0^{-1}} + \sum_{k=0}^{N-1} + \|y[k] - h(x_k)\|_{R_W^{-1}}^2 + + \|v[k] \|_{R_V^{-1}}^2, + +where :math:`P_0`, :math:`R_V`, and :math:`R_W` are the covariances of the +initial state, disturbances, and measurement noise. + +Note that while the optimization is carried out only over the estimated +initial state :math:`\hat x[0]`, the entire history of estimated states can +be reconstructed using the system dynamics: + +.. math:: + + \hat x[k+1] = f(\hat x[k], u[k], v[k]), \quad k = 0, \dots, N-1. + +In particular, we can obtain the estimated state at the end of the moving +horizon window, corresponding to the current time, and we can thus +implement an estimator by repeatedly solving the optimization of a window +of length :math:`N` backwards in time. + Module usage ============ -The optimal control module provides a means of computing optimal -trajectories for nonlinear systems and implementing optimization-based -controllers, including model predictive control. It follows the basic -problem setup described above, but carries out all computations in *discrete -time* (so that integrals become sums) and over a *finite horizon*. To local +The optimization-based control module provides a means of computing +optimal trajectories for nonlinear systems and implementing +optimization-based controllers, including model predictive control and +moving horizon estimation. It follows the basic problem setups +described above, but carries out all computations in *discrete time* +(so that integrals become sums) and over a *finite horizon*. To local the optimal control modules, import `control.optimal`: import control.optimal as obc @@ -163,7 +267,8 @@ In addition, the results from :func:`scipy.optimize.minimize` are also available. To simplify the specification of cost functions and constraints, the -:mod:`~control.ios` module defines a number of utility functions: +:mod:`~control.ios` module defines a number of utility functions for +optimal control problems: .. autosummary:: @@ -175,6 +280,33 @@ To simplify the specification of cost functions and constraints, the ~control.optimal.state_poly_constraint ~control.optimal.state_range_constraint +The optimization-based control module also implements functions for solving +optimal estimation problems. The +:class:`~control.optimal.OptimalEstimationProblem` class is used to define +an optimal estimation problem over a finite horizon:: + + oep = OptimalEstimationProblem(sys, timepts, cost[, constraints]) + +Given noisy measurements :math:`y` and control inputs :math:`u`, an +estimate of the states over the time points can be computed using the +:func:`~control.optimal.OptimalEstimationProblem.compute_estimate` method:: + + estim = oep.compute_optimal(Y, U[, X0=x0, initial_guess=(xhat, v)]) + xhat, v, w = estim.states, estim.inputs, estim.outputs + +For discrete time systems, the +:func:`~control.optimal.OptimalEstimationProblem.compute_estimate` method +can be used to generate an input/output system that implements a moving +horizon estimator. + +Several functions are available to help set up standard optimal estimation +problems: + +.. autosummary:: + + ~control.optimal.gaussian_likelihood_cost + ~control.optimal.disturbance_range_constraint + Example ======= @@ -329,15 +461,20 @@ Module classes and functions ~control.optimal.OptimalControlProblem ~control.optimal.OptimalControlResult + ~control.optimal.OptimalEstimationProblem + ~control.optimal.OptimalEstimationResult .. autosummary:: :toctree: generated/ - ~control.optimal.solve_ocp ~control.optimal.create_mpc_iosystem + ~control.optimal.disturbance_range_constraint + ~control.optimal.gaussian_likelihood_cost ~control.optimal.input_poly_constraint ~control.optimal.input_range_constraint ~control.optimal.output_poly_constraint ~control.optimal.output_range_constraint + ~control.optimal.quadratic_cost + ~control.optimal.solve_ocp ~control.optimal.state_poly_constraint ~control.optimal.state_range_constraint From bd7ba6debf030b4b15e89883e515e45a52ee7398 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 5 Mar 2023 22:29:06 -0800 Subject: [PATCH 0204/1025] updated documentation + Jupyter notebook --- .gitignore | 1 + control/optimal.py | 8 +- control/stochsys.py | 11 +- doc/.gitignore | 1 + doc/examples.rst | 1 + doc/mhe-pvtol.ipynb | 1 + doc/pvtol.py | 1 + examples/mhe-pvtol.ipynb | 679 +++++++++++++++++++++++++++++++++ examples/pvtol-outputfbk.ipynb | 26 +- examples/pvtol.py | 58 ++- 10 files changed, 737 insertions(+), 50 deletions(-) create mode 120000 doc/mhe-pvtol.ipynb create mode 120000 doc/pvtol.py create mode 100644 examples/mhe-pvtol.ipynb diff --git a/.gitignore b/.gitignore index 3ac21ae97..1b10a3585 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.pyc +__pycache__/ build/ dist/ htmlcov/ diff --git a/control/optimal.py b/control/optimal.py index 12e0d43ba..db238724b 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -1479,8 +1479,6 @@ def _collocation_constraint(self, xvec): # # Initial guess processing # - # TODO: Not implemented - # def _process_initial_guess(self, initial_guess): if initial_guess is None: return np.zeros( @@ -1542,8 +1540,6 @@ def _print_statistics(self, reset=True): # # Optimal estimate computations # - - # Compute the optimal trajectory from the current state def compute_estimate( self, Y, U, X0=None, initial_guess=None, squeeze=None, print_summary=True): @@ -1611,6 +1607,10 @@ def compute_estimate( # This function creates an input/output system that has internal state # xhat, u, v, y for all previous time points. When the system update # function is called, + # + # TODO: change input arguments to use control_indices, similar to + # create_statefbk_iosystem. + # def create_mhe_iosystem( self, nd, output_labels='xhat[{i}]', sensor_labels=None): """Create an I/O system implementing an MPC controller diff --git a/control/stochsys.py b/control/stochsys.py index fede887f3..5ff4bb2bd 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -307,6 +307,11 @@ def dlqe(*args, **kwargs): # Function to create an estimator +# +# TODO: add `control_indices` keyword to match create_mhe_iosystem (?) +# TODO: change name to create_kalmanestimaor_iosystem (?) +# TODO: create predictor/corrector, UKF, and other variants (?) +# def create_estimator_iosystem( sys, QN, RN, P0=None, G=None, C=None, state_labels='xhat[{i}]', output_labels='xhat[{i}]', @@ -317,15 +322,15 @@ def create_estimator_iosystem( continuous time state estimator of the form .. math:: - + d \hat{x}/dt &= A \hat{x} + B u - L (C \hat{x} - y) \\ dP/dt &= A P + P A^T + F Q_N F^T - P C^T R_N^{-1} C P \\ - L &= P C^T R_N^{-1} + L &= P C^T R_N^{-1} or a discrete time state estimator of the form .. math:: - + \hat{x}[k+1] &= A \hat{x}[k] + B u[k] - L (C \hat{x}[k] - y[k]) \\ P[k+1] &= A P A^T + F Q_N F^T - A P C^T R_e^{-1} C P A \\ L &= A P C^T R_e^{-1} diff --git a/doc/.gitignore b/doc/.gitignore index d948f64d2..38303de2b 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1 +1,2 @@ *.fig.bak +_static/ diff --git a/doc/examples.rst b/doc/examples.rst index 0f23576bd..a7ddfacde 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -45,6 +45,7 @@ using running examples in FBS2e. cruise describing_functions kincar-fusion + mhe-pvtol mpc_aircraft steering pvtol-lqr-nested diff --git a/doc/mhe-pvtol.ipynb b/doc/mhe-pvtol.ipynb new file mode 120000 index 000000000..1efa2b5c9 --- /dev/null +++ b/doc/mhe-pvtol.ipynb @@ -0,0 +1 @@ +../examples/mhe-pvtol.ipynb \ No newline at end of file diff --git a/doc/pvtol.py b/doc/pvtol.py new file mode 120000 index 000000000..76dd7bdc0 --- /dev/null +++ b/doc/pvtol.py @@ -0,0 +1 @@ +../examples/pvtol.py \ No newline at end of file diff --git a/examples/mhe-pvtol.ipynb b/examples/mhe-pvtol.ipynb new file mode 100644 index 000000000..2295fc094 --- /dev/null +++ b/examples/mhe-pvtol.ipynb @@ -0,0 +1,679 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "baba5fab", + "metadata": {}, + "source": [ + "# Moving Horizon Estimation\n", + "\n", + "Richard M. Murray, 24 Feb 2023\n", + "\n", + "In this notebook we illustrate the implementation of moving horizon estimation (MHE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36715c5f", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "\n", + "import control.optimal as opt\n", + "import control.flatsys as fs" + ] + }, + { + "cell_type": "markdown", + "id": "d72a155b", + "metadata": {}, + "source": [ + "## System Description\n", + "\n", + "The dynamics of the system\n", + "with disturbances on the $x$ and $y$ variables is given by\n", + "\n", + "$$\n", + " \\begin{aligned}\n", + " m \\ddot x &= F_1 \\cos\\theta - F_2 \\sin\\theta - c \\dot x + d_x, \\\\\n", + " m \\ddot y &= F_1 \\sin\\theta + F_2 \\cos\\theta - c \\dot y - m g + d_y, \\\\\n", + " J \\ddot \\theta &= r F_1.\n", + " \\end{aligned}\n", + "$$\n", + "\n", + "The measured values of the system are the position and orientation,\n", + "with added noise $n_x$, $n_y$, and $n_\\theta$:\n", + "\n", + "$$\n", + " \\vec y = \\begin{bmatrix} x \\\\ y \\\\ \\theta \\end{bmatrix} + \n", + " \\begin{bmatrix} n_x \\\\ n_y \\\\ n_z \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "08919988", + "metadata": {}, + "outputs": [], + "source": [ + "# pvtol = nominal system (no disturbances or noise)\n", + "# noisy_pvtol = pvtol w/ process disturbances and sensor noise\n", + "from pvtol import pvtol, pvtol_noisy, plot_results\n", + "import pvtol as pvt\n", + "\n", + "# Find the equiblirum point corresponding to the origin\n", + "xe, ue = ct.find_eqpt(\n", + " pvtol, np.zeros(pvtol.nstates),\n", + " np.zeros(pvtol.ninputs), [0, 0, 0, 0, 0, 0],\n", + " iu=range(2, pvtol.ninputs), iy=[0, 1])\n", + "\n", + "# Initial condition = 2 meters right, 1 meter up\n", + "x0, u0 = ct.find_eqpt(\n", + " pvtol, np.zeros(pvtol.nstates),\n", + " np.zeros(pvtol.ninputs), np.array([2, 1, 0, 0, 0, 0]),\n", + " iu=range(2, pvtol.ninputs), iy=[0, 1])\n", + "\n", + "# Extract the linearization for use in LQR design\n", + "pvtol_lin = pvtol.linearize(xe, ue)\n", + "A, B = pvtol_lin.A, pvtol_lin.B\n", + "\n", + "print(pvtol, \"\\n\")\n", + "print(pvtol_noisy)" + ] + }, + { + "cell_type": "markdown", + "id": "5771ab93", + "metadata": {}, + "source": [ + "### Control Design" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2e88938", + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# LQR design w/ physically motivated weighting\n", + "#\n", + "# Shoot for 10 cm error in x, 10 cm error in y. Try to keep the angle\n", + "# less than 5 degrees in making the adjustments. Penalize side forces\n", + "# due to loss in efficiency.\n", + "#\n", + "\n", + "Qx = np.diag([100, 10, (180/np.pi) / 5, 0, 0, 0])\n", + "Qu = np.diag([10, 1])\n", + "K, _, _ = ct.lqr(A, B, Qx, Qu)\n", + "\n", + "# Compute the full state feedback solution\n", + "lqr_ctrl, _ = ct.create_statefbk_iosystem(pvtol, K)\n", + "\n", + "# Define the closed loop system that will be used to generate trajectories\n", + "lqr_clsys = ct.interconnect(\n", + " [pvtol_noisy, lqr_ctrl],\n", + " inplist = lqr_ctrl.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", + " inputs = lqr_ctrl.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", + " outlist = pvtol.output_labels + lqr_ctrl.output_labels,\n", + " outputs = pvtol.output_labels + lqr_ctrl.output_labels\n", + ")\n", + "print(lqr_clsys)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78853391", + "metadata": {}, + "outputs": [], + "source": [ + "# Disturbance and noise intensities\n", + "Qv = np.diag([1e-2, 1e-2])\n", + "Qw = np.array([[1e-4, 0, 1e-5], [0, 1e-4, 1e-5], [1e-5, 1e-5, 1e-4]])\n", + "\n", + "# Initial state covariance\n", + "P0 = np.eye(pvtol.nstates)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c590fd88", + "metadata": {}, + "outputs": [], + "source": [ + "# Create the time vector for the simulation\n", + "Tf = 6\n", + "timepts = np.linspace(0, Tf, 20)\n", + "\n", + "# Create representative process disturbance and sensor noise vectors\n", + "# np.random.seed(117) # avoid figures changing from run to run\n", + "V = ct.white_noise(timepts, Qv)\n", + "# V = np.clip(V0, -0.1, 0.1) # Hold for later\n", + "W = ct.white_noise(timepts, Qw)\n", + "# plt.plot(timepts, V0[0], 'b--', label=\"V[0]\")\n", + "plt.plot(timepts, V[0], label=\"V[0]\")\n", + "plt.plot(timepts, W[0], label=\"W[0]\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c35fd695", + "metadata": {}, + "outputs": [], + "source": [ + "# Desired trajectory\n", + "xd, ud = xe, ue\n", + "# xd = np.vstack([\n", + "# np.sin(2 * np.pi * timepts / timepts[-1]), \n", + "# np.zeros((5, timepts.size))])\n", + "# ud = np.outer(ue, np.ones_like(timepts))\n", + "\n", + "# Run a simulation with full state feedback (no noise) to generate a trajectory\n", + "uvec = [xd, ud, V, W*0]\n", + "lqr_resp = ct.input_output_response(lqr_clsys, timepts, uvec, x0)\n", + "U = lqr_resp.outputs[6:8] # controller input signals\n", + "Y = lqr_resp.outputs[0:3] + W # noisy output signals (noise in pvtol_noisy)\n", + "\n", + "# Compare to the no noise case\n", + "uvec = [xd, ud, V*0, W*0]\n", + "lqr0_resp = ct.input_output_response(lqr_clsys, timepts, uvec, x0)\n", + "lqr0_fine = ct.input_output_response(lqr_clsys, timepts, uvec, x0, \n", + " t_eval=np.linspace(timepts[0], timepts[-1], 100))\n", + "U0 = lqr0_resp.outputs[6:8]\n", + "Y0 = lqr0_resp.outputs[0:3]\n", + "\n", + "# Compare the results\n", + "# plt.plot(Y0[0], Y0[1], 'k--', linewidth=2, label=\"No disturbances\")\n", + "plt.plot(lqr0_fine.states[0], lqr0_fine.states[1], 'r-', label=\"Actual\")\n", + "plt.plot(Y[0], Y[1], 'b-', label=\"Noisy\")\n", + "\n", + "plt.xlabel('$x$ [m]')\n", + "plt.ylabel('$y$ [m]')\n", + "plt.axis('equal')\n", + "plt.legend(frameon=False)\n", + "\n", + "plt.figure()\n", + "plot_results(timepts, lqr_resp.states, lqr_resp.outputs[6:8]);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7f1dec6", + "metadata": {}, + "outputs": [], + "source": [ + "# Utility functions for making plots\n", + "def plot_state_comparison(\n", + " timepts, est_states, act_states=None, estimated_label='$\\\\hat x_{i}$', actual_label='$x_{i}$',\n", + " start=0):\n", + " for i in range(sys.nstates):\n", + " plt.subplot(2, 3, i+1)\n", + " if act_states is not None:\n", + " plt.plot(timepts[start:], act_states[i, start:], 'r--', \n", + " label=actual_label.format(i=i))\n", + " plt.plot(timepts[start:], est_states[i, start:], 'b', \n", + " label=estimated_label.format(i=i))\n", + " plt.legend()\n", + " plt.tight_layout()\n", + " \n", + "# Define a function to plot out all of the relevant signals\n", + "def plot_estimator_response(timepts, estimated, U, V, Y, W, start=0):\n", + " # Plot the input signal and disturbance\n", + " for i in [0, 1]:\n", + " # Input signal (the same across all)\n", + " plt.subplot(4, 3, i+1)\n", + " plt.plot(timepts[start:], U[i, start:], 'k')\n", + " plt.ylabel(f'U[{i}]')\n", + "\n", + " # Plot the estimated disturbance signal\n", + " plt.subplot(4, 3, 4+i)\n", + " plt.plot(timepts[start:], estimated.inputs[i, start:], 'b-', label=\"est\")\n", + " plt.plot(timepts[start:], V[i, start:], 'k', label=\"actual\")\n", + " plt.ylabel(f'V[{i}]')\n", + "\n", + " plt.subplot(4, 3, 6)\n", + " plt.plot(0, 0, 'b', label=\"estimated\")\n", + " plt.plot(0, 0, 'k', label=\"actual\")\n", + " plt.plot(0, 0, 'r', label=\"measured\")\n", + " plt.legend(frameon=False)\n", + " plt.grid(False)\n", + " plt.axis('off')\n", + " \n", + " # Plot the output (measured and estimated) \n", + " for i in [0, 1, 2]:\n", + " plt.subplot(4, 3, 7+i)\n", + " plt.plot(timepts[start:], Y[i, start:], 'r', label=\"measured\")\n", + " plt.plot(timepts[start:], estimated.states[i, start:], 'b', label=\"measured\")\n", + " plt.plot(timepts[start:], Y[i, start:] - W[i, start:], 'k', label=\"actual\")\n", + " plt.ylabel(f'Y[{i}]')\n", + " \n", + " for i in [0, 1, 2]:\n", + " plt.subplot(4, 3, 10+i)\n", + " plt.plot(timepts[start:], estimated.outputs[i, start:], 'b', label=\"estimated\")\n", + " plt.plot(timepts[start:], W[i, start:], 'k', label=\"actual\")\n", + " plt.ylabel(f'W[{i}]')\n", + " plt.xlabel('Time [s]')\n", + "\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "73dd9be3", + "metadata": {}, + "source": [ + "## State Estimation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a1f32da", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a new system with only x, y, theta as outputs\n", + "# TODO: add this to pvtol.py?\n", + "sys = ct.NonlinearIOSystem(\n", + " pvt._noisy_update, lambda t, x, u, params: x[0:3], name=\"pvtol_noisy\",\n", + " states = [f'x{i}' for i in range(6)],\n", + " inputs = ['F1', 'F2'] + ['Dx', 'Dy'],\n", + " outputs = ['x', 'y', 'theta']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3a0679f4", + "metadata": {}, + "outputs": [], + "source": [ + "# Standard Kalman filter\n", + "linsys = sys.linearize(xe, [ue, V[:, 0] * 0])\n", + "# print(linsys)\n", + "B = linsys.B[:, 0:2]\n", + "G = linsys.B[:, 2:4]\n", + "linsys = ct.ss(\n", + " linsys.A, B, linsys.C, 0,\n", + " states=sys.state_labels, inputs=sys.input_labels[0:2], outputs=sys.output_labels)\n", + "# print(linsys)\n", + "\n", + "estim = ct.create_estimator_iosystem(linsys, Qv, Qw, G=G, P0=P0)\n", + "print(estim)\n", + "print(f'{xe=}, {P0=}')\n", + "\n", + "kf_resp = ct.input_output_response(\n", + " estim, timepts, [Y, U], X0 = [xe, P0.reshape(-1)])\n", + "plot_state_comparison(timepts, kf_resp.outputs, lqr_resp.states)" + ] + }, + { + "cell_type": "markdown", + "id": "654dde1b", + "metadata": {}, + "source": [ + "### Extended Kalman filter" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1f83a335", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the disturbance input and measured output matrices\n", + "F = np.array([[0, 0], [0, 0], [0, 0], [1/pvtol.params['m'], 0], [0, 1/pvtol.params['m']], [0, 0]])\n", + "C = np.eye(3, 6)\n", + "\n", + "Qwinv = np.linalg.inv(Qw)\n", + "\n", + "# Estimator update law\n", + "def estimator_update(t, x, u, params):\n", + " # Extract the states of the estimator\n", + " xhat = x[0:pvtol.nstates]\n", + " P = x[pvtol.nstates:].reshape(pvtol.nstates, pvtol.nstates)\n", + "\n", + " # Extract the inputs to the estimator\n", + " y = u[0:3] # just grab the first three outputs\n", + " u = u[6:8] # get the inputs that were applied as well\n", + "\n", + " # Compute the linearization at the current state\n", + " A = pvtol.A(xhat, u) # A matrix depends on current state\n", + " # A = pvtol.A(xe, ue) # Fixed A matrix (for testing/comparison)\n", + " \n", + " # Compute the optimal \"gain\n", + " L = P @ C.T @ Qwinv\n", + "\n", + " # Update the state estimate\n", + " xhatdot = pvtol.updfcn(t, xhat, u, params) - L @ (C @ xhat - y)\n", + "\n", + " # Update the covariance\n", + " Pdot = A @ P + P @ A.T - P @ C.T @ Qwinv @ C @ P + F @ Qv @ F.T\n", + "\n", + " # Return the derivative\n", + " return np.hstack([xhatdot, Pdot.reshape(-1)])\n", + "\n", + "def estimator_output(t, x, u, params):\n", + " # Return the estimator states\n", + " return x[0:pvtol.nstates]\n", + "\n", + "ekf = ct.NonlinearIOSystem(\n", + " estimator_update, estimator_output,\n", + " states=pvtol.nstates + pvtol.nstates**2,\n", + " inputs= pvtol_noisy.output_labels \\\n", + " + pvtol_noisy.input_labels[0:pvtol.ninputs],\n", + " outputs=[f'xh{i}' for i in range(pvtol.nstates)]\n", + ")\n", + "print(ekf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4caf69b", + "metadata": {}, + "outputs": [], + "source": [ + "ekf_resp = ct.input_output_response(\n", + " ekf, timepts, [lqr_resp.states, lqr_resp.outputs[6:8]],\n", + " X0=[xe, P0.reshape(-1)])\n", + "plot_state_comparison(timepts, ekf_resp.outputs, lqr_resp.states)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1074908c", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the optimal estimation problem\n", + "traj_cost = opt.gaussian_likelihood_cost(sys, Qv, Qw)\n", + "init_cost = lambda xhat, x: (xhat - x) @ P0 @ (xhat - x)\n", + "oep = opt.OptimalEstimationProblem(\n", + " sys, timepts, traj_cost, terminal_cost=init_cost)\n", + "\n", + "# Compute the estimate from the noisy signals\n", + "est = oep.compute_estimate(Y, U, X0=lqr_resp.states[:, 0])\n", + "plot_state_comparison(timepts, est.states, lqr_resp.states)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c6981b9", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the response of the estimator\n", + "plot_estimator_response(timepts, est, U, V, Y, W)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25b8aa85", + "metadata": {}, + "outputs": [], + "source": [ + "# Noise free and disturbance free => estimation should be near perfect\n", + "noisefree_cost = opt.gaussian_likelihood_cost(sys, Qv, Qw*1e-6)\n", + "oep0 = opt.OptimalEstimationProblem(\n", + " sys, timepts, noisefree_cost, terminal_cost=init_cost)\n", + "est0 = oep0.compute_estimate(Y0, U0, X0=lqr0_resp.states[:, 0],\n", + " initial_guess=(lqr0_resp.states, V * 0))\n", + "plot_state_comparison(\n", + " timepts, est0.states, lqr0_resp.states, estimated_label='$\\\\bar x_{i}$')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a76821f", + "metadata": {}, + "outputs": [], + "source": [ + "plot_estimator_response(timepts, est0, U0, V*0, Y0, W*0)" + ] + }, + { + "cell_type": "markdown", + "id": "6b9031cf", + "metadata": {}, + "source": [ + "### Bounded disturbances\n", + "\n", + "Another thing that the MHE can handled is input distributions that are bounded. We implement that here by carrying out the optimal estimation problem with constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "93482470", + "metadata": {}, + "outputs": [], + "source": [ + "V_clipped = np.clip(V, -0.05, 0.05) \n", + "\n", + "plt.plot(timepts, V[0], label=\"V[0]\")\n", + "plt.plot(timepts, V_clipped[0], label=\"V[0] clipped\")\n", + "plt.plot(timepts, W[0], label=\"W[0]\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56e186f1", + "metadata": {}, + "outputs": [], + "source": [ + "uvec = [xe, ue, V_clipped, W]\n", + "clipped_resp = ct.input_output_response(lqr_clsys, timepts, uvec, x0)\n", + "U_clipped = clipped_resp.outputs[6:8] # controller input signals\n", + "Y_clipped = clipped_resp.outputs[0:3] + W # noisy output signals\n", + "\n", + "traj_constraint = opt.disturbance_range_constraint(\n", + " sys, [-0.05, -0.05], [0.05, 0.05])\n", + "oep_clipped = opt.OptimalEstimationProblem(\n", + " sys, timepts, traj_cost, terminal_cost=init_cost,\n", + " trajectory_constraints=traj_constraint)\n", + "\n", + "est_clipped = oep_clipped.compute_estimate(\n", + " Y_clipped, U_clipped, X0=lqr0_resp.states[:, 0])\n", + "plot_state_comparison(timepts, est_clipped.states, lqr_resp.states)\n", + "plt.suptitle(\"MHE with constraints\")\n", + "plt.tight_layout()\n", + "\n", + "plt.figure()\n", + "ekf_unclipped = ct.input_output_response(\n", + " ekf, timepts, [clipped_resp.states, clipped_resp.outputs[6:8]],\n", + " X0=[xe, P0.reshape(-1)])\n", + "\n", + "plot_state_comparison(timepts, ekf_unclipped.outputs, lqr_resp.states)\n", + "plt.suptitle(\"EKF w/out constraints\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "108c341a", + "metadata": {}, + "outputs": [], + "source": [ + "plot_estimator_response(timepts, est_clipped, U, V_clipped, Y, W)" + ] + }, + { + "cell_type": "markdown", + "id": "430117ce", + "metadata": {}, + "source": [ + "## Moving Horizon Estimation (MHE)\n", + "\n", + "We can now move to implementation of a moving horizon estimator, using our fixed horizon optimal estimator." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "121d67ba", + "metadata": {}, + "outputs": [], + "source": [ + "# Use a shorter horizon\n", + "mhe_timepts = timepts[0:5]\n", + "oep = opt.OptimalEstimationProblem(\n", + " sys, mhe_timepts, traj_cost, terminal_cost=init_cost)\n", + "\n", + "try:\n", + " mhe = oep.create_mhe_iosystem(2)\n", + " \n", + " est_mhe = ct.input_output_response(\n", + " mhe, timepts, [Y, U], X0=resp.states[:, 0], \n", + " params={'verbose': True}\n", + " )\n", + " plot_state_comparison(timepts, est_mhe.states, lqr_resp.states)\n", + "except:\n", + " print(\"MHE for continuous time systems not implemented\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1914ad96", + "metadata": {}, + "outputs": [], + "source": [ + "# Create discrete time version of PVTOL\n", + "Ts = 0.1\n", + "print(f\"Sample time: {Ts=}\")\n", + "dsys = ct.NonlinearIOSystem(\n", + " lambda t, x, u, params: x + Ts * sys.updfcn(t, x, u, params),\n", + " sys.outfcn, dt=Ts, states=sys.state_labels,\n", + " inputs=sys.input_labels, outputs=sys.output_labels,\n", + ")\n", + "print(dsys)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11162130", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a new list of time points\n", + "timepts = np.arange(0, Tf, Ts)\n", + "\n", + "# Create representative process disturbance and sensor noise vectors\n", + "# np.random.seed(117) # avoid figures changing from run to run\n", + "V = ct.white_noise(timepts, Qv)\n", + "# V = np.clip(V0, -0.1, 0.1) # Hold for later\n", + "W = ct.white_noise(timepts, Qw, dt=Ts)\n", + "# plt.plot(timepts, V0[0], 'b--', label=\"V[0]\")\n", + "plt.plot(timepts, V[0], label=\"V[0]\")\n", + "plt.plot(timepts, W[0], label=\"W[0]\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c8a6a693", + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a new trajectory over the longer time vector\n", + "uvec = [xd, ud, V, W*0]\n", + "lqr_resp = ct.input_output_response(lqr_clsys, timepts, uvec, x0)\n", + "U = lqr_resp.outputs[6:8] # controller input signals\n", + "Y = lqr_resp.outputs[0:3] + W # noisy output signals" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d683767f", + "metadata": {}, + "outputs": [], + "source": [ + "mhe_timepts = timepts[0:10]\n", + "oep = opt.OptimalEstimationProblem(\n", + " dsys, mhe_timepts, traj_cost, terminal_cost=init_cost)\n", + "mhe = oep.create_mhe_iosystem(2)\n", + " \n", + "mhe_resp = ct.input_output_response(\n", + " mhe, timepts, [Y, U], X0=x0, \n", + " params={'verbose': True}\n", + ")\n", + "plot_state_comparison(timepts, mhe_resp.states, lqr_resp.states)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bfc68072", + "metadata": {}, + "outputs": [], + "source": [ + "# Resimulate starting at the origin and moving to the \"initial\" condition\n", + "uvec = [x0, ue, V, W*0]\n", + "lqr_resp = ct.input_output_response(lqr_clsys, timepts, uvec, xe)\n", + "U = lqr_resp.outputs[6:8] # controller input signals\n", + "Y = lqr_resp.outputs[0:3] + W # noisy output signals" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49213d04", + "metadata": {}, + "outputs": [], + "source": [ + "mhe_timepts = timepts[0:8]\n", + "oep = opt.OptimalEstimationProblem(\n", + " dsys, mhe_timepts, traj_cost, terminal_cost=init_cost)\n", + "mhe = oep.create_mhe_iosystem(2)\n", + " \n", + "mhe_resp = ct.input_output_response(\n", + " mhe, timepts, [Y, U],\n", + " params={'verbose': True}\n", + ")\n", + "plot_state_comparison(timepts, mhe_resp.outputs, lqr_resp.states)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "650a559a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/pvtol-outputfbk.ipynb b/examples/pvtol-outputfbk.ipynb index 8656ed241..7d8bc8529 100644 --- a/examples/pvtol-outputfbk.ipynb +++ b/examples/pvtol-outputfbk.ipynb @@ -76,7 +76,7 @@ "Outputs (6): x0, x1, x2, x3, x4, x5, \n", "States (6): x0, x1, x2, x3, x4, x5, \n", "\n", - "Object: noisy_pvtol\n", + "Object: pvtol_noisy\n", "Inputs (7): F1, F2, Dx, Dy, Nx, Ny, Nth, \n", "Outputs (6): x0, x1, x2, x3, x4, x5, \n", "States (6): x0, x1, x2, x3, x4, x5, \n" @@ -85,8 +85,8 @@ ], "source": [ "# pvtol = nominal system (no disturbances or noise)\n", - "# noisy_pvtol = pvtol w/ process disturbances and sensor noise\n", - "from pvtol import pvtol, noisy_pvtol, plot_results\n", + "# pvtol_noisy = pvtol w/ process disturbances and sensor noise\n", + "from pvtol import pvtol, pvtol_noisy, plot_results\n", "\n", "# Find the equiblirum point corresponding to the origin\n", "xe, ue = ct.find_eqpt(\n", @@ -104,7 +104,7 @@ "A, B = pvtol_lin.A, pvtol_lin.B\n", "\n", "print(pvtol, \"\\n\")\n", - "print(noisy_pvtol)" + "print(pvtol_noisy)" ] }, { @@ -192,8 +192,8 @@ "estimator = ct.NonlinearIOSystem(\n", " estimator_update, lambda t, x, u, params: x[0:pvtol.nstates],\n", " states=pvtol.nstates + pvtol.nstates**2,\n", - " inputs= noisy_pvtol.state_labels[0:3] \\\n", - " + noisy_pvtol.input_labels[0:pvtol.ninputs],\n", + " inputs= pvtol_noisy.state_labels[0:3] \\\n", + " + pvtol_noisy.input_labels[0:pvtol.ninputs],\n", " outputs=[f'xh{i}' for i in range(pvtol.nstates)],\n", ")\n", "print(estimator)" @@ -241,7 +241,7 @@ "Object: xh5\n", "Inputs (13): xd[0], xd[1], xd[2], xd[3], xd[4], xd[5], ud[0], ud[1], Dx, Dy, Nx, Ny, Nth, \n", "Outputs (14): x0, x1, x2, x3, x4, x5, F1, F2, xh0, xh1, xh2, xh3, xh4, xh5, \n", - "States (48): noisy_pvtol_x0, noisy_pvtol_x1, noisy_pvtol_x2, noisy_pvtol_x3, noisy_pvtol_x4, noisy_pvtol_x5, sys[3]_x[0], sys[3]_x[1], sys[3]_x[2], sys[3]_x[3], sys[3]_x[4], sys[3]_x[5], sys[3]_x[6], sys[3]_x[7], sys[3]_x[8], sys[3]_x[9], sys[3]_x[10], sys[3]_x[11], sys[3]_x[12], sys[3]_x[13], sys[3]_x[14], sys[3]_x[15], sys[3]_x[16], sys[3]_x[17], sys[3]_x[18], sys[3]_x[19], sys[3]_x[20], sys[3]_x[21], sys[3]_x[22], sys[3]_x[23], sys[3]_x[24], sys[3]_x[25], sys[3]_x[26], sys[3]_x[27], sys[3]_x[28], sys[3]_x[29], sys[3]_x[30], sys[3]_x[31], sys[3]_x[32], sys[3]_x[33], sys[3]_x[34], sys[3]_x[35], sys[3]_x[36], sys[3]_x[37], sys[3]_x[38], sys[3]_x[39], sys[3]_x[40], sys[3]_x[41], \n" + "States (48): pvtol_noisy_x0, pvtol_noisy_x1, pvtol_noisy_x2, pvtol_noisy_x3, pvtol_noisy_x4, pvtol_noisy_x5, sys[3]_x[0], sys[3]_x[1], sys[3]_x[2], sys[3]_x[3], sys[3]_x[4], sys[3]_x[5], sys[3]_x[6], sys[3]_x[7], sys[3]_x[8], sys[3]_x[9], sys[3]_x[10], sys[3]_x[11], sys[3]_x[12], sys[3]_x[13], sys[3]_x[14], sys[3]_x[15], sys[3]_x[16], sys[3]_x[17], sys[3]_x[18], sys[3]_x[19], sys[3]_x[20], sys[3]_x[21], sys[3]_x[22], sys[3]_x[23], sys[3]_x[24], sys[3]_x[25], sys[3]_x[26], sys[3]_x[27], sys[3]_x[28], sys[3]_x[29], sys[3]_x[30], sys[3]_x[31], sys[3]_x[32], sys[3]_x[33], sys[3]_x[34], sys[3]_x[35], sys[3]_x[36], sys[3]_x[37], sys[3]_x[38], sys[3]_x[39], sys[3]_x[40], sys[3]_x[41], \n" ] } ], @@ -269,11 +269,11 @@ "# Reconstruct the control system with the noisy version of the process\n", "# Create a closed loop system around the controller\n", "clsys = ct.interconnect(\n", - " [noisy_pvtol, statefbk, estimator],\n", + " [pvtol_noisy, statefbk, estimator],\n", " inplist = statefbk.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", - " noisy_pvtol.input_labels[pvtol.ninputs:],\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", " inputs = statefbk.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", - " noisy_pvtol.input_labels[pvtol.ninputs:],\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", " outlist = pvtol.output_labels + statefbk.output_labels + estimator.output_labels,\n", " outputs = pvtol.output_labels + statefbk.output_labels + estimator.output_labels\n", ")\n", @@ -449,11 +449,11 @@ "lqr_ctrl, _ = ct.create_statefbk_iosystem(pvtol, K)\n", "\n", "lqr_clsys = ct.interconnect(\n", - " [noisy_pvtol, lqr_ctrl],\n", + " [pvtol_noisy, lqr_ctrl],\n", " inplist = lqr_ctrl.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", - " noisy_pvtol.input_labels[pvtol.ninputs:],\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", " inputs = lqr_ctrl.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", - " noisy_pvtol.input_labels[pvtol.ninputs:],\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", " outlist = pvtol.output_labels + lqr_ctrl.output_labels,\n", " outputs = pvtol.output_labels + lqr_ctrl.output_labels\n", ")\n", diff --git a/examples/pvtol.py b/examples/pvtol.py index 277d0faa1..4f92f12fa 100644 --- a/examples/pvtol.py +++ b/examples/pvtol.py @@ -14,8 +14,10 @@ from math import sin, cos from warnings import warn +__all__ = ['pvtol', 'pvtol_windy', 'pvtol_noisy'] + # PVTOL dynamics -def pvtol_update(t, x, u, params): +def _pvtol_update(t, x, u, params): # Get the parameter values m = params.get('m', 4.) # mass of aircraft J = params.get('J', 0.0475) # inertia around pitch axis @@ -38,11 +40,11 @@ def pvtol_update(t, x, u, params): return np.array([xdot, ydot, thetadot, xddot, yddot, thddot]) -def pvtol_output(t, x, u, params): +def _pvtol_output(t, x, u, params): return x # PVTOL flat system mappings -def pvtol_flat_forward(states, inputs, params={}): +def _pvtol_flat_forward(states, inputs, params={}): # Get the parameter values m = params.get('m', 4.) # mass of aircraft J = params.get('J', 0.0475) # inertia around pitch axis @@ -102,7 +104,7 @@ def pvtol_flat_forward(states, inputs, params={}): return zflag -def pvtol_flat_reverse(zflag, params={}): +def _pvtol_flat_reverse(zflag, params={}): # Get the parameter values m = params.get('m', 4.) # mass of aircraft J = params.get('J', 0.0475) # inertia around pitch axis @@ -110,10 +112,6 @@ def pvtol_flat_reverse(zflag, params={}): g = params.get('g', 9.8) # gravitational constant c = params.get('c', 0.05) # damping factor (estimated) - # Create a vector to store the state and inputs - x = np.zeros(6) - u = np.zeros(2) - # Given the flat variables, solve for the state theta = np.arctan2(-zflag[0][2], zflag[1][2] + g) x = zflag[0][0] + (J / (m * r)) * sin(theta) @@ -132,11 +130,8 @@ def pvtol_flat_reverse(zflag, params={}): + (J / (m * r)) * thdot**2) F1 = (J / r) * \ (zflag[0][4] * cos(theta) + zflag[1][4] * sin(theta) -# - 2 * (zflag[0][3] * sin(theta) - zflag[1][3] * cos(theta)) * thdot \ - 2 * zflag[0][3] * sin(theta) * thdot \ + 2 * zflag[1][3] * cos(theta) * thdot \ -# - (zflag[0][2] * cos(theta) -# + (zflag[1][2] + g) * sin(theta)) * thdot**2) \ - zflag[0][2] * cos(theta) * thdot**2 - (zflag[1][2] + g) * sin(theta) * thdot**2) \ / (zflag[0][2] * sin(theta) - (zflag[1][2] + g) * cos(theta)) @@ -144,8 +139,8 @@ def pvtol_flat_reverse(zflag, params={}): return np.array([x, y, theta, xdot, ydot, thdot]), np.array([F1, F2]) pvtol = fs.FlatSystem( - pvtol_flat_forward, pvtol_flat_reverse, name='pvtol', - updfcn=pvtol_update, outfcn=pvtol_output, + _pvtol_flat_forward, _pvtol_flat_reverse, name='pvtol', + updfcn=_pvtol_update, outfcn=_pvtol_output, states = [f'x{i}' for i in range(6)], inputs = ['F1', 'F2'], outputs = [f'x{i}' for i in range(6)], @@ -162,13 +157,13 @@ def pvtol_flat_reverse(zflag, params={}): # PVTOL dynamics with wind # -def windy_update(t, x, u, params): +def _windy_update(t, x, u, params): # Get the input vector F1, F2, d = u # Get the system response from the original dynamics xdot, ydot, thetadot, xddot, yddot, thddot = \ - pvtol_update(t, x, u[0:2], params) + _pvtol_update(t, x, u[0:2], params) # Now add the wind term m = params.get('m', 4.) # mass of aircraft @@ -176,8 +171,8 @@ def windy_update(t, x, u, params): return np.array([xdot, ydot, thetadot, xddot, yddot, thddot]) -windy_pvtol = ct.NonlinearIOSystem( - windy_update, pvtol_output, name="windy_pvtol", +pvtol_windy = ct.NonlinearIOSystem( + _windy_update, _pvtol_output, name="pvtol_windy", states = [f'x{i}' for i in range(6)], inputs = ['F1', 'F2', 'd'], outputs = [f'x{i}' for i in range(6)] @@ -187,13 +182,17 @@ def windy_update(t, x, u, params): # PVTOL dynamics with noise and disturbances # -def noisy_update(t, x, u, params): +def _noisy_update(t, x, u, params): # Get the inputs - F1, F2, Dx, Dy, Nx, Ny, Nth = u + F1, F2, Dx, Dy = u[:4] + if u.shape[0] > 4: + Nx, Ny, Nth = u[4:] + else: + Nx, Ny, Nth = 0, 0, 0 # Get the system response from the original dynamics xdot, ydot, thetadot, xddot, yddot, thddot = \ - pvtol_update(t, x, u[0:2], params) + _pvtol_update(t, x, u[0:2], params) # Get the parameter values we need m = params.get('m', 4.) # mass of aircraft @@ -205,26 +204,26 @@ def noisy_update(t, x, u, params): return np.array([xdot, ydot, thetadot, xddot, yddot, thddot]) -def noisy_output(t, x, u, params): +def _noisy_output(t, x, u, params): F1, F2, dx, Dy, Nx, Ny, Nth = u return x + np.array([Nx, Ny, Nth, 0, 0, 0]) -noisy_pvtol = ct.NonlinearIOSystem( - noisy_update, noisy_output, name="noisy_pvtol", +pvtol_noisy = ct.NonlinearIOSystem( + _noisy_update, _noisy_output, name="pvtol_noisy", states = [f'x{i}' for i in range(6)], inputs = ['F1', 'F2'] + ['Dx', 'Dy'] + ['Nx', 'Ny', 'Nth'], outputs = pvtol.state_labels ) -# Add the linearitizations to the dynamics as additional methods -def noisy_pvtol_A(x, u, params={}): +# Add the linearitizations to the dynamics as an additional method +def pvtol_noisy_A(x, u, params={}): # Get the parameter values we need m = params.get('m', 4.) # mass of aircraft J = params.get('J', 0.0475) # inertia around pitch axis c = params.get('c', 0.05) # damping factor (estimated) # Get the angle and compute sine and cosine - theta = x[[2]] + theta = x[2] cth, sth = cos(theta), sin(theta) # Return the linearized dynamics matrix @@ -236,7 +235,7 @@ def noisy_pvtol_A(x, u, params={}): [0, 0, ( u[0] * cth - u[1] * sth)/m, 0, -c/m, 0], [0, 0, 0, 0, 0, 0] ]) -pvtol.A = noisy_pvtol_A +pvtol.A = pvtol_noisy_A # Plot the trajectory in xy coordinates def plot_results(t, x, u): @@ -302,8 +301,8 @@ def _pvtol_check_flat(test_points=None, verbose=False): for x, u in test_points: x, u = np.array(x), np.array(u) - flag = pvtol_flat_forward(x, u) - xc, uc = pvtol_flat_reverse(flag) + flag = _pvtol_flat_forward(x, u) + xc, uc = _pvtol_flat_reverse(flag) print(f'({x}, {u}): ', end='') if verbose: print(f'\n flag: {flag}') @@ -312,4 +311,3 @@ def _pvtol_check_flat(test_points=None, verbose=False): print("OK") else: print("ERR") - From 83751277a06f5518347042deda76a2f986698468 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 11 Mar 2023 07:05:44 -0800 Subject: [PATCH 0205/1025] add standard _process_indices function --- control/namedio.py | 20 +++++++++++++++ control/statefbk.py | 61 ++++++++++++++++++++------------------------- 2 files changed, 47 insertions(+), 34 deletions(-) diff --git a/control/namedio.py b/control/namedio.py index a94d1a9f5..902751919 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -584,3 +584,23 @@ def _process_signal_list(signals, prefix='s'): else: raise TypeError("Can't parse signal list %s" % str(signals)) + + +# Utility function to process signal indices +def _process_indices(arg, name, labels, default=None): + arg = default if arg is None else arg + if arg is None: + return None; + + if isinstance(arg, int): + return range(arg) + elif isinstance(arg, slice): + return arg + elif isinstance(arg, list): + arg=arg.copy() + for i, idx in enumerate(arg): + if isinstance(idx, str): + arg[i] = labels.index(arg[i]) + return arg + else: + raise ValueError(f"invalid argument for {name}_indices") diff --git a/control/statefbk.py b/control/statefbk.py index c76a4e31a..02bbad3ec 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -48,7 +48,7 @@ from .mateqn import care, dare, _check_shape from .statesp import StateSpace, _ssmatrix, _convert_to_statespace from .lti import LTI -from .namedio import isdtime, isctime +from .namedio import isdtime, isctime, _process_indices from .iosys import InputOutputSystem, NonlinearIOSystem, LinearIOSystem, \ interconnect, ss from .exception import ControlSlycot, ControlArgument, ControlDimension, \ @@ -668,14 +668,16 @@ def create_statefbk_iosystem( If an estimator is provided, use the states of the estimator as the system inputs for the controller. - gainsched_indices : list of int or str, optional + gainsched_indices : int, slice, or list of int or str, optional If a gain scheduled controller is specified, specify the indices of the controller input to use for scheduling the gain. The input to the controller is the desired state xd, the desired input ud, and the system state x (or state estimate xhat, if an estimator is - given). The indices can either be specified as integer offsets into - the input vector or as strings matching the signal names of the - input vector. The default is to use the desire state xd. + given). If value is an integer `q`, the first `q` values of the + [xd, ud, x] vector are used. Otherwise, the value should be a + slice or a list of indices. The list of indices can be specified + as either integer offsets or as signal names. The default is to + use the desire state xd. gainsched_method : str, optional The method to use for gain scheduling. Possible values are 'linear' @@ -714,19 +716,21 @@ def create_statefbk_iosystem( Other Parameters ---------------- - control_indices : list of int or str, optional + control_indices : int, slice, or list of int or str, optional Specify the indices of the system inputs that should be determined - by the state feedback controller. If not specified, defaults to - the first `m` system inputs, where `m` is determined by the shape - of the gain matrix, with the remaining inputs remaining as inputs - to the overall closed loop system. - - state_indices : list of int or str, optional - Specify the indices of the system (or estimator) outputs that - should be used by the state feedback controller. If not specified, - defaults to the first `n` system/estimator outputs, where `n` is - determined by the shape of the gain matrix, with the remaining - outputs remaining as outputs to the overall closed loop system. + by the state feedback controller. If value is an integer `m`, the + first `m` system inputs are used. Otherwise, the value should be a + slice or a list of indices. The list of indices can be specified + as either integer offsets or as system input signal names. If not + specified, defaults to the system inputs. + + state_indices : int, slice, or list of int or str, optional + Specify the indices of the system (or estimator) outputs that should + be used by the state feedback controller. If value is an integer + `n`, the first `n` system states are used. Otherwise, the value + should be a slice or a list of indices. The list of indices can be + specified as either integer offsets or as estimator/system output + signal names. If not specified, defaults to the system states. inputs, outputs : str, or list of str, optional List of strings that name the individual signals of the transformed @@ -755,11 +759,8 @@ def create_statefbk_iosystem( raise TypeError("unrecognized keywords: ", str(kwargs)) # Figure out what inputs to the system to use - control_indices = range(sys.ninputs) if control_indices is None \ - else list(control_indices) - for i, idx in enumerate(control_indices): - if isinstance(idx, str): - control_indices[i] = sys.input_labels.index(control_indices[i]) + control_indices = _process_indices( + control_indices, 'control', sys.input_labels, sys.ninputs) sys_ninputs = len(control_indices) # Decide what system is going to pass the states to the controller @@ -767,11 +768,8 @@ def create_statefbk_iosystem( estimator = sys # Figure out what outputs (states) from the system/estimator to use - state_indices = range(sys.nstates) if state_indices is None \ - else list(state_indices) - for i, idx in enumerate(state_indices): - if isinstance(idx, str): - state_indices[i] = estimator.state_labels.index(state_indices[i]) + state_indices = _process_indices( + state_indices, 'state', estimator.state_labels, sys.nstates) sys_nstates = len(state_indices) # Make sure the system/estimator states are proper dimension @@ -858,8 +856,8 @@ def create_statefbk_iosystem( # Process gainscheduling variables, if present if gainsched: # Create a copy of the scheduling variable indices (default = xd) - gainsched_indices = range(sys_nstates) if gainsched_indices is None \ - else list(gainsched_indices) + gainsched_indices = _process_indices( + gainsched_indices, 'gainsched', inputs, sys_nstates) # If points is a 1D list, convert to 2D if points.ndim == 1: @@ -871,11 +869,6 @@ def create_statefbk_iosystem( "length of gainsched_indices must match dimension of" " scheduling variables") - # Process scheduling variables - for i, idx in enumerate(gainsched_indices): - if isinstance(idx, str): - gainsched_indices[i] = inputs.index(gainsched_indices[i]) - # Create interpolating function if points.shape[1] < 2: _interp = sp.interpolate.interp1d( From e165dd5d7d76d995eda401d8f1d0b05ead6090b4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 11 Mar 2023 13:52:59 -0800 Subject: [PATCH 0206/1025] add {control, disturbance}_indices to create_estimator_iosystem --- control/namedio.py | 45 ++++++++++--- control/stochsys.py | 113 +++++++++++++++++++++++++++------ control/tests/stochsys_test.py | 61 ++++++++++++++++++ 3 files changed, 189 insertions(+), 30 deletions(-) diff --git a/control/namedio.py b/control/namedio.py index 902751919..d9c2581c9 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -22,8 +22,8 @@ 'namedio.sampled_system_name_prefix': '', 'namedio.sampled_system_name_suffix': '$sampled' } - - + + class NamedIOSystem(object): def __init__( self, name=None, inputs=None, outputs=None, states=None, **kwargs): @@ -586,21 +586,46 @@ def _process_signal_list(signals, prefix='s'): raise TypeError("Can't parse signal list %s" % str(signals)) +# # Utility function to process signal indices -def _process_indices(arg, name, labels, default=None): - arg = default if arg is None else arg - if arg is None: - return None; +# +# Signal indices can be specified in one of four ways: +# +# 1. As a positive integer 'm', in which case we return a list +# corresponding to the first 'm' elements of a range of a given length +# +# 2. As a negative integer '-m', in which case we return a list +# corresponding to the last 'm' elements of a range of a given length +# +# 3. As a slice, in which case we return the a list corresponding to the +# indices specified by the slice of a range of a given length +# +# 4. As a list of ints or strings specifying specific indices. Strings are +# compared to a list of labels to determine the index. +# +def _process_indices(arg, name, labels, length): + # Default is to return indices up to a certain length + arg = length if arg is None else arg if isinstance(arg, int): - return range(arg) + # Return the start or end of the list of possible indices + return list(range(arg)) if arg > 0 else list(range(length))[arg:] + elif isinstance(arg, slice): - return arg + # Return the indices referenced by the slice + return list(range(length))[arg] + elif isinstance(arg, list): + # Make sure the length is OK + if len(arg) > length: + raise ValueError( + f"{name}_indices list is too long; max length = {length}") + + # Return the list, replacing strings with corresponding indices arg=arg.copy() for i, idx in enumerate(arg): if isinstance(idx, str): arg[i] = labels.index(arg[i]) return arg - else: - raise ValueError(f"invalid argument for {name}_indices") + + raise ValueError(f"invalid argument for {name}_indices") diff --git a/control/stochsys.py b/control/stochsys.py index 5ff4bb2bd..33d4b641f 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -22,7 +22,7 @@ from .iosys import InputOutputSystem, LinearIOSystem, NonlinearIOSystem from .lti import LTI -from .namedio import isctime, isdtime +from .namedio import isctime, isdtime, _process_indices from .mateqn import care, dare, _check_shape from .statesp import StateSpace, _ssmatrix from .exception import ControlArgument, ControlNotImplemented @@ -314,6 +314,7 @@ def dlqe(*args, **kwargs): # def create_estimator_iosystem( sys, QN, RN, P0=None, G=None, C=None, + control_indices=None, disturbance_indices=None, state_labels='xhat[{i}]', output_labels='xhat[{i}]', covariance_labels='P[{i},{j}]', sensor_labels=None): r"""Create an I/O system implementing a linear quadratic estimator @@ -347,9 +348,10 @@ def create_estimator_iosystem( Parameters ---------- - sys : InputOutputSystem - The I/O system that represents the process dynamics. If no estimator - is given, the output of this system should represent the full state. + sys : LinearIOSystem + The linear I/O system that represents the process dynamics. If no + estimator is given, the output of this system should represent the + full state. QN, RN : ndarray Process and sensor noise covariance matrices. P0 : ndarray, optional @@ -362,14 +364,6 @@ def create_estimator_iosystem( If the system has full state output, define the measured values to be used by the estimator. Otherwise, use the system output as the measured values. - {state, covariance, sensor, output}_labels : str or list of str, optional - Set the name of the signals to use for the internal state, covariance, - sensors, and outputs (state estimate). If a single string is - specified, it should be a format string using the variable `i` as an - index (or `i` and `j` for covariance). Otherwise, a list of - strings matching the size of the respective signal should be used. - Default is ``'xhat[{i}]'`` for state and output labels, ``'y[{i}]'`` - for output labels and ``'P[{i},{j}]'`` for covariance labels. Returns ------- @@ -378,6 +372,47 @@ def create_estimator_iosystem( the system output y and input u and generates the estimated state xhat. + Other Parameters + ---------------- + control_indices : int, slice, or list of int or string, optional + Specify the indices in the system input vector that correspond to + the control inputs. These inputs will be used as known control + inputs for the estimator. If value is an integer `m`, the first `m` + system inputs are used. Otherwise, the value should be a slice or + a list of indices. The list of indices can be specified as either + integer offsets or as system input signal names. If not specified, + defaults to the system inputs. + disturbance_indices : int, list of int, or slice, optional + Specify the indices in the system input vector that correspond to + the unknown disturbances. These inputs are assumed to be white + noise with noise intensity QN. If value is an integer `m`, the + last `m` system inputs are used. Otherwise, the value should be a + slice or a list of indices. The list of indices can be specified + as either integer offsets or as system input signal names. If not + specified, the disturbances are assumed to be added to the system + inputs. + state_labels : str or list of str, optional + Set the names of the internal state estimate variables. If a + single string is specified, it should be a format string using the + variable `i` as an index. Otherwise, a list of strings matching + the number of system states should be used. Default is "xhat[{i}]". + covariance_labels : str or list of str, optional + Set the name of the the covariance state variables. If a single + string is specified, it should be a format string using the + variables `i` and `j` as indices. Otherwise, a list of strings + matching the size of the covariance matrix should be used. Default + is "P[{i},{j}]". + sensor_labels : str or list of str, optional + Set the name of the sensor signals (estimator inputs). If + specified, it should be a format string using the variable `i` as + an index. Otherwise, a list of strings matching the size of the + measured system outputs should be used. Default is "y[{i}]". + output_labels : str or list of str, optional + Set the name of the estimator outputs (state estimate). If a + single string is specified, it should be a format string using the + variable `i` as an index. Otherwise, a list of strings matching + the size of the system state should be used. Default is "xhat[{i}]". + Notes ----- This function can be used with the ``create_statefbk_iosystem()`` function @@ -403,11 +438,45 @@ def create_estimator_iosystem( if not isinstance(sys, LinearIOSystem): raise ControlArgument("Input system must be a linear I/O system") - # Extract the matrices that we need for easy reference - A, B = sys.A, sys.B + # Set the state matrix for later use + A = sys.A + + # Set the disturbance matrices (indices take priority over G) + ctrl_idx = _process_indices( + control_indices, 'control', sys.input_labels, sys.ninputs) + + if disturbance_indices is None and control_indices is not None: + # Disturbance indices are the complement of control indices + dist_idx = [i for i in range(sys.ninputs) if i not in ctrl_idx] + if G is not None: + warn("'control_indices' and 'G' both specified; ignoring 'G'") + G = sys.B[:, dist_idx] + + elif disturbance_indices is not None: + if G is not None: + warn("'disturbance_indices' and 'G' both specified; ignoring 'G'") + + # If passed an integer, count from the end of the input vector + arg = -disturbance_indices if isinstance(disturbance_indices, int) \ + else disturbance_indices - # Set the disturbance and output matrices - G = sys.B if G is None else G + dist_idx = _process_indices( + arg, 'disturbance', sys.input_labels, sys.ninputs) + G = sys.B[:, dist_idx] + + # Set control indices to complement disturbance indices, if needed + if control_indices is None: + ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] + + elif G is None: + G = sys.B + + # Set the input and direct matrices + B = sys.B[:, ctrl_idx] + if not np.allclose(sys.D, 0): + raise NotImplemented("nonzero 'D' matrix not yet implemented") + + # Set the output matrices if C is not None: # Make sure that we have the full system output if not np.array_equal(sys.C, np.eye(sys.nstates)): @@ -425,7 +494,7 @@ def create_estimator_iosystem( # Initialize the covariance matrix if P0 is None: # Initalize P0 to the steady state value - L0, P0, _ = lqe(A, G, C, QN, RN) + _, P0, _ = lqe(A, G, C, QN, RN) # Figure out the labels to use if isinstance(state_labels, str): @@ -447,6 +516,10 @@ def create_estimator_iosystem( # Generate the list of labels using the argument as a format string sensor_labels = [sensor_labels.format(i=i) for i in range(C.shape[0])] + # Set the input labels based on the system input + # TODO: allow these to be overriden + input_labels = [sys.input_labels[i] for i in ctrl_idx] + if isctime(sys): # Create an I/O system for the state feedback gains # Note: reshape vectors into column vectors for legacy np.matrix @@ -470,7 +543,7 @@ def _estim_update(t, x, u, params): L = P @ C.T @ R_inv # Update the state estimate - dxhat = A @ xhat + B @ u # prediction + dxhat = A @ xhat + B @ u # prediction if correct: dxhat -= L @ (C @ xhat - y) # correction @@ -500,7 +573,7 @@ def _estim_update(t, x, u, params): L = A @ P @ C.T @ Reps_inv # Update the state estimate - dxhat = A @ xhat + B @ u # prediction + dxhat = A @ xhat + B @ u # prediction if correct: dxhat -= L @ (C @ xhat - y) # correction @@ -518,7 +591,7 @@ def _estim_output(t, x, u, params): # Define the estimator system return NonlinearIOSystem( _estim_update, _estim_output, states=state_labels + covariance_labels, - inputs=sensor_labels + sys.input_labels, outputs=output_labels, + inputs=sensor_labels + input_labels, outputs=output_labels, dt=sys.dt) diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 4366f4f15..f34f4dedb 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -319,6 +319,7 @@ def test_correlation(): T = np.logspace(0, 2, T.size) tau, Rtau = ct.correlation(T, V) +@pytest.mark.slow @pytest.mark.parametrize('dt', [0, 1]) def test_oep(dt): # Define the system to test, with additional input @@ -455,6 +456,7 @@ def test_oep(dt): est3.states[:, -1], res3.states[:, -1], atol=1e-1, rtol=1e-2) +@pytest.mark.slow def test_mhe(): # Define the system to test, with additional input csys = ct.ss( @@ -495,3 +497,62 @@ def test_mhe(): # Make sure the estimated state is close to the actual state np.testing.assert_allclose(estp.outputs, resp.states, atol=1e-2, rtol=1e-4) + +@pytest.mark.parametrize("ctrl_indices, dist_indices", [ + (slice(0, 3), None), + (3, None), + (None, 2), + ([0, 1, 4], None), + (['u[0]', 'u[1]', 'u[4]'], None), + (['u[0]', 'u[1]', 'u[4]'], ['u[1]', 'u[3]']), + (slice(0, 3), slice(3, 5)) +]) +def test_indices(ctrl_indices, dist_indices): + # Define a system with inputs (0:3), disturbances (3:5), and noise (5, 7) + ninputs = 3 + nstates = ninputs + 1 + ndisturbances = 2 + noutputs = 2 + nnoises = 0 + # TODO: remove strictly proper + sys = ct.rss(nstates, noutputs, ninputs + ndisturbances + nnoises, strictly_proper=True) + + # Create a system whose state we want to estimate + if ctrl_indices is not None: + ctrl_idx = ct.namedio._process_indices( + ctrl_indices, 'control', sys.input_labels, sys.ninputs) + else: + arg = -dist_indices if isinstance(dist_indices, int) else dist_indices + dist_idx = ct.namedio._process_indices( + arg, 'disturbance', sys.input_labels, sys.ninputs) + ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] + sysm = ct.ss(sys.A, sys.B[:, ctrl_idx], sys.C, sys.D[:, ctrl_idx]) + + # Set the simulation time based on the slowest system pole + from math import log + T = 10 / min(-sys.poles().real) + + # Generate a system response with no disturbances + timepts = np.linspace(0, T, 50) + U = np.vstack([np.sin(timepts + i) for i in range(ninputs)]) + resp = ct.input_output_response( + sysm, timepts, U, np.zeros(nstates), + solve_ivp_kwargs={'method': 'RK45', 'max_step': 0.01, + 'atol': 1, 'rtol': 1}) + Y = resp.outputs + + # Create an estimator + QN = np.eye(ndisturbances) + RN = np.eye(noutputs) + P0 = np.eye(nstates) + estim = ct.create_estimator_iosystem( + sys, QN, RN, control_indices=ctrl_indices, + disturbance_indices=dist_indices) + + # Run estimator (no prediction + same solve_ivp params => should be exact) + resp_estim = ct.input_output_response( + estim, timepts, [Y, U], [np.zeros(nstates), P0], + solve_ivp_kwargs={'method': 'RK45', 'max_step': 0.01, + 'atol': 1, 'rtol': 1}, + params={'correct': False}) + np.testing.assert_allclose(resp.states, resp_estim.outputs, rtol=1e-2) From 1c1ce0c1b38c2255e7a5c1233225a4e28db96681 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 12 Mar 2023 17:15:26 -0700 Subject: [PATCH 0207/1025] implement {control, disturbance}_indices in oep --- control/namedio.py | 39 +++++- control/optimal.py | 246 +++++++++++++++++++++------------ control/stochsys.py | 42 ++---- control/tests/kwargs_test.py | 2 + control/tests/optimal_test.py | 5 + control/tests/stochsys_test.py | 23 ++- examples/mhe-pvtol.ipynb | 10 +- 7 files changed, 242 insertions(+), 125 deletions(-) diff --git a/control/namedio.py b/control/namedio.py index d9c2581c9..df7d519fd 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -587,7 +587,7 @@ def _process_signal_list(signals, prefix='s'): # -# Utility function to process signal indices +# Utility functions to process signal indices # # Signal indices can be specified in one of four ways: # @@ -629,3 +629,40 @@ def _process_indices(arg, name, labels, length): return arg raise ValueError(f"invalid argument for {name}_indices") + +# +# Process control and disturbance indices +# +# For systems with inputs and disturbances, the control_indices and +# disturbance_indices keywords are used to specify which is which. If only +# one is given, the other is assumed to be the remaining indices in the +# system input. If neither is given, the disturbance inputs are assumed to +# be the same as the control inputs. +# +def _process_control_disturbance_indices( + sys, control_indices, disturbance_indices): + + if control_indices is None and disturbance_indices is None: + # Disturbances enter in the same place as the controls + dist_idx = ctrl_idx = list(range(sys.ninputs)) + + elif control_indices is not None: + # Process the control indices + ctrl_idx = _process_indices( + control_indices, 'control', sys.input_labels, sys.ninputs) + + # Disturbance indices are the complement of control indices + dist_idx = [i for i in range(sys.ninputs) if i not in ctrl_idx] + + else: # disturbance_indices is not None + # If passed an integer, count from the end of the input vector + arg = -disturbance_indices if isinstance(disturbance_indices, int) \ + else disturbance_indices + + dist_idx = _process_indices( + arg, 'disturbance', sys.input_labels, sys.ninputs) + + # Set control indices to complement disturbance indices + ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] + + return ctrl_idx, dist_idx diff --git a/control/optimal.py b/control/optimal.py index db238724b..f19fd91f7 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -18,6 +18,7 @@ from . import config from .exception import ControlNotImplemented +from .namedio import _process_indices, _process_control_disturbance_indices # Define module default parameter values _optimal_trajectory_methods = {'shooting', 'collocation'} @@ -1174,6 +1175,22 @@ class OptimalEstimationProblem(): terminal_cost : callable, optional Function that returns the terminal cost given the initial estimated state and expected value. Called as terminal_cost(xhat, x0). + control_indices : int, slice, or list of int or string, optional + Specify the indices in the system input vector that correspond to + the control inputs. These inputs will be used as known control + inputs for the estimate. If value is an integer `m`, the first `m` + system inputs are used. Otherwise, the value should be a slice or + a list of indices. The list of indices can be specified as either + integer offsets or as system input signal names. If not specified, + defaults to the complement of the disturbance indices (see also + notes below). + disturbance_indices : int, list of int, or slice, optional + Specify the indices in the system input vector that correspond to + the input disturbances. If value is an integer `m`, the last `m` + system inputs are used. Otherwise, the value should be a slice or + a list of indices, as describedf for `control_indices`. If not + specified, defaults to the complement of the control indicies (see + also notes below). Returns ------- @@ -1201,29 +1218,36 @@ class OptimalEstimationProblem(): ----- To describe an optimal estimation problem we need an input/output system, a set of time points, measured inputs and outputs, a cost - function, and (optionally) a set of constraints on the state and/or - inputs along the trajectory (and at the terminal time). This class - sets up an optimization over the initial state and disturbances at each - point in time, using the integral and terminal costs as well as the - trajectory constraints. The `compute_estimate` method solves the - underling optimization problem using :func:`scipy.optimize.minimize`. - - The `_cost_function` method computes the "cost" (negative of the log - likelihood) of the estimated trajectory generated by the proposed - initial estimated state, the disturbances and noise, and the measured - output. It does this by calling a user-defined function for the - integral_cost given the current estimated states, inputs, and measured - outputs at each point along the trajectory and then adding the value of - a user-defined terminal cost at the initial point in the trajectory. - - The `_constraint_function` method evaluates the constraint functions - along the trajectory generated by the proposed estimate and - disturbances. As in the case of the cost function, the constraints are - evaluated at the estimated state, inputs, and measured outputs along - each point on the trajectory. This information is compared against the - constraint upper and lower bounds. The constraint function is - processed in the class initializer, so that it only needs to be - computed once. + function, and (optionally) a set of constraints on the state + and/or inputs along the trajectory (and at the terminal time). + This class sets up an optimization over the state and disturbances + at each point in time, using the integral and terminal costs as + well as the trajectory constraints. The + :func:`~control.optimal.OptimalEstimationProblem.compute_estimate` + method solves the underling optimization problem using + :func:`scipy.optimize.minimize`. + + The control input and disturbance indices can be specified using the + `control_indices` and `disturbance_indices` keywords. If only one is + given, the other is assumed to be the remaining indices in the system + input. If neither is given, the disturbance inputs are assumed to be + the same as the control inputs. + + The "cost" (e.g. negative of the log likelihood) of the estimated + trajectory generated by the estimated state, the disturbances and + noise, and the measured output. It does this by calling a user-defined + function for the integral_cost given the current estimated states, + inputs, and measured outputs at each point along the trajectory and + then adding the value of a user-defined terminal cost at the initial + point in the trajectory. + + The constraint functions are evaluated at each point on the trajectory + generated by the proposed estimate and disturbances. As in the case of + the cost function, the constraints are evaluated at the estimated + state, inputs, and measured outputs along each point on the trajectory. + This information is compared against the constraint upper and lower + bounds. The constraint function is processed in the class initializer, + so that it only needs to be computed once. The default values for ``minimize_method``, ``minimize_options``, ``minimize_kwargs``, ``solve_ivp_method``, and ``solve_ivp_options`` can @@ -1232,7 +1256,8 @@ class OptimalEstimationProblem(): """ def __init__( self, sys, timepts, integral_cost, terminal_cost=None, - trajectory_constraints=None, **kwargs): + trajectory_constraints=None, control_indices=None, + disturbance_indices=None, **kwargs): """Set up an optimal control problem.""" # Save the basic information for use later self.system = sys @@ -1249,6 +1274,12 @@ def __init__( self.minimize_kwargs.update(kwargs.pop( 'minimize_kwargs', config.defaults['optimal.minimize_kwargs'])) + # Save input and disturbance indices (and create input array) + self.control_indices = control_indices + self.disturbance_indices = disturbance_indices + self.ctrl_idx, self.dist_idx = None, None + self.inputs = np.zeros((sys.ninputs, len(timepts))) + # Make sure there were no extraneous keywords if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) @@ -1341,7 +1372,6 @@ def _cost_function(self, xvec): else: # Sum the integral cost over the time (second) indices # cost += self.integral_cost(xhat[:, i], u[:, i], v[:, i], w[:, i]) - # TODO: make sure last point is properly accounted for cost = sum(map( self.integral_cost, np.transpose(xhat[:, :-1]), np.transpose(u[:, :-1]), np.transpose(v[:, :-1]), @@ -1452,17 +1482,21 @@ def _eqconst_function(self, xvec): def _collocation_constraint(self, xvec): # Compute the estimated states and disturbance inputs xhat, u, v, w = self._compute_states_inputs(xvec) - inputs = np.vstack([u, v]) + + # Create the input vector for the system + self.inputs.fill(0.) + self.inputs[self.ctrl_idx, :] = u + self.inputs[self.dist_idx, :] += v if self.system.isctime(): # Compute the collocation constraints # TODO: vectorize fk = self.system._rhs( - self.timepts[0], xhat[:, 0], inputs[:, 0]) + self.timepts[0], xhat[:, 0], self.inputs[:, 0]) for i, t in enumerate(self.timepts[:-1]): # From M. Kelly, SIAM Review (2017), equation (3.2), i = k+1 # x[k+1] - x[k] = 0.5 hk (f(x[k+1], u[k+1] + f(x[k], u[k])) - fkp1 = self.system._rhs(t, xhat[:, i+1], inputs[:, i+1]) + fkp1 = self.system._rhs(t, xhat[:, i+1], self.inputs[:, i+1]) self.colloc_vals[:, i] = xhat[:, i+1] - xhat[:, i] - \ 0.5 * (self.timepts[i+1] - self.timepts[i]) * (fkp1 + fk) fk = fkp1 @@ -1471,7 +1505,7 @@ def _collocation_constraint(self, xvec): for i, t in enumerate(self.timepts[:-1]): # x[k+1] = f(x[k], u[k], v[k]) self.colloc_vals[:, i] = xhat[:, i+1] - \ - self.system._rhs(t, xhat[:, i], inputs[:, i]) + self.system._rhs(t, xhat[:, i], self.inputs[:, i]) # Return the value of the constraint function return self.colloc_vals.reshape(-1) @@ -1484,7 +1518,18 @@ def _process_initial_guess(self, initial_guess): return np.zeros( (self.system.nstates + self.ndisturbances) * self.timepts.size) else: - # TODO: add dimension check + if initial_guess[0].shape != \ + (self.system.nstates, self.timepts.size): + raise ValueError( + "initial guess for state estimate must have shape " + f"{self.system.nstates} x {self.timepts.size}") + + elif initial_guess[1].shape != \ + (self.ndisturbances, self.timepts.size): + raise ValueError( + "initial guess for disturbances must have shape " + f"{self.ndisturbances} x {self.timepts.size}") + return np.hstack([ initial_guess[0].reshape(-1), # estimated states initial_guess[1].reshape(-1)]) # disturbances @@ -1505,10 +1550,13 @@ def _compute_states_inputs(self, xvec): v = xvec[self.system.nstates * self.timepts.size:].reshape( self.ndisturbances, -1) + # Create the input vector for the system + self.inputs[self.ctrl_idx, :] = self.u + self.inputs[self.dist_idx, :] = v + # Compute the estimated output yhat = np.vstack([ - self.system._out(self.timepts[i], xhat[:, i], - np.hstack([self.u[:, i], v[:, i]])) + self.system._out(self.timepts[i], xhat[:, i], self.inputs[:, i]) for i in range(self.timepts.size)]).T return xhat, self.u, v, self.y - yhat @@ -1547,8 +1595,10 @@ def compute_estimate( Parameters ---------- - Y, U : 2D array - Measured outputs and applied inputs at each time point. + Y : 2D array + Measured outputs at each time point. + U : 2D array + Applied inputs at each time point. X0 : 1D array Expected initial value of the state. initial_guess : 2-tuple of 2D arrays @@ -1585,8 +1635,26 @@ def compute_estimate( self.x0 = X0 # Figure out the number of disturbances - self.ndisturbances = self.system.ninputs - self.u.shape[0] - assert self.ndisturbances > 0 + if self.disturbance_indices is None and self.control_indices is None: + self.ctrl_idx, self.dist_idx = \ + _process_control_disturbance_indices( + self.system, None, self.system.ninputs - self.u.shape[0]) + elif self.ctrl_idx is None or self.dist_idx is None: + self.ctrl_idx, self.dist_idx = \ + _process_control_disturbance_indices( + self.system, self.control_indices, + self.disturbance_indices) + self.ndisturbances = len(self.dist_idx) + + # Make sure the dimensions of the inputs are OK + if self.u.shape[0] != len(self.ctrl_idx): + raise ValueError( + "input vector is incorrect shape; " + f"should be {len(self.ctrl_idx)} x {self.timepts.size}") + if self.y.shape[0] != self.system.noutputs: + raise ValueError( + "measurements vector is incorrect shape; " + f"should be {self.system.noutputs} x {self.timepts.size}") # Process the initial guess initial_guess = self._process_initial_guess(initial_guess) @@ -1608,11 +1676,9 @@ def compute_estimate( # xhat, u, v, y for all previous time points. When the system update # function is called, # - # TODO: change input arguments to use control_indices, similar to - # create_statefbk_iosystem. + # TODO: change output_labels to output_fmtstr and use output instead # - def create_mhe_iosystem( - self, nd, output_labels='xhat[{i}]', sensor_labels=None): + def create_mhe_iosystem(self, output_labels=None, **kwargs): """Create an I/O system implementing an MPC controller This function creates an input/output system that implements a @@ -1622,13 +1688,12 @@ def create_mhe_iosystem( Parameters ---------- - sys : InputOutputSystem - I/O system for which the estimator will be computed. - - nd : int - Number of inputs that are disturbance (versus control) inputs. - The current implementation assumes that the inputs to `sys` are - the control inputs followed by `nd` disturbance inputs. + output_labels : str, optional + Set the name of the estimator outputs (state estimate). If a + single string is specified, it should be a format string using + the variable `i` as an index. Otherwise, a list of strings + matching the size of the system state should be used. Default + is "xhat[{i}]". Returns ------- @@ -1637,23 +1702,36 @@ def create_mhe_iosystem( the model system and returning the estimated state of the system, as determined by solving the optimal estimation problem. + Notes + ----- + The labels for the input signals for the system are determined + based on the signal names for the system model used in the optimal + estimation problem. The system name and signal names can be + overridden using the `name`, `input`, and `output` keywords, as + described in :func:`~control.InputOutputSystem`. + """ # Check to make sure we are in discrete time if self.system.dt == 0: raise ct.ControlNotImplemented( "MHE for continuous time systems not implemented") + # Figure out the location of the disturbances + self.ctrl_idx, self.dist_idx = \ + _process_control_disturbance_indices( + self.system, self.control_indices, self.disturbance_indices) + # Figure out the labels to use + # TODO: allow overwrite via kwargs + change parameter name if isinstance(output_labels, str): # Generate labels using the argument as a format string output_labels = [output_labels.format(i=i) for i in range(self.system.nstates)] - sensor_labels = 'y[{i}]' if sensor_labels is None else sensor_labels - if isinstance(sensor_labels, str): - # Generate labels using the argument as a format string - sensor_labels = [sensor_labels.format(i=i) - for i in range(self.system.noutputs - nd)] + # TODO: allow overwrite via kwargs + sensor_labels = [self.system.output_labels [i] + for i in range(self.system.noutputs)] + input_labels = [self.system.input_labels[i] for i in self.ctrl_idx] nstates = (self.system.nstates + self.system.ninputs + self.system.noutputs) * self.timepts.size @@ -1672,8 +1750,8 @@ def _mhe_update(t, xvec, uvec, params={}): # Estimator state = [xhat, v, Y, U] off, xhat = _xvec_next(xvec, 0, self.system.nstates) - off, U = _xvec_next(xvec, off, self.system.ninputs - nd) - off, V = _xvec_next(xvec, off, nd) + off, U = _xvec_next(xvec, off, len(self.ctrl_idx)) + off, V = _xvec_next(xvec, off, len(self.dist_idx)) off, Y = _xvec_next(xvec, off, self.system.noutputs) # Shift the states and add the new measurements and inputs @@ -1693,7 +1771,7 @@ def _mhe_update(t, xvec, uvec, params={}): est.states.reshape(-1), U.reshape(-1), est.inputs.reshape(-1), Y.reshape(-1)]) - # Ouput function + # Output function def _mhe_output(t, xvec, uvec, params={}): # Get the states and inputs off, xhat = _xvec_next(xvec, 0, self.system.nstates) @@ -1704,8 +1782,8 @@ def _mhe_output(t, xvec, uvec, params={}): return ct.NonlinearIOSystem( _mhe_update, _mhe_output, states=nstates, - inputs=sensor_labels + self.system.input_labels, - outputs=output_labels, dt=self.system.dt) + inputs=sensor_labels + input_labels, + outputs=output_labels, dt=self.system.dt, **kwargs) # Optimal estimation result @@ -1791,30 +1869,30 @@ def solve_oep( ---------- sys : InputOutputSystem I/O system for which the optimal input will be computed. - timepts : 1D array_like List of times at which the optimal input should be computed. - Y, U: 2D array_like Values of the outputs and inputs at each time point. - trajectory_cost : callable Function that returns the cost given the current state and input. Called as `cost(y, u, x0)`. - X0: 1D array_like, optional Mean value of the initial condition (defaults to 0). - trajectory_constraints : list of tuples, optional List of constraints that should hold at each point in the time vector. See :func:`solve_ocp` for more information. - + control_indices : int, slice, or list of int or string, optional + Specify the indices in the system input vector that correspond to + the control inputs. For more information on possible values, see + :func:`~control.optimal.OptimalEstimationProblem` + disturbance_indices : int, list of int, or slice, optional + Specify the indices in the system input vector that correspond to + the input disturbances. For more information on possible values, see + :func:`~control.optimal.OptimalEstimationProblem` initial_guess : 2D array_like, optional Initial guess for the state estimate at each time point. - print_summary : bool, optional If `True` (default), print a short summary of the computation. - squeeze : bool, optional If True and if the system has a single output, return the system output as a 1D array rather than a 2D array. If False, return the @@ -1826,32 +1904,28 @@ def solve_oep( res : TimeResponseData Bundle object with the estimated state and noise values. - res.success : bool - Boolean flag indicating whether the optimization was successful. - - res.time : array - Time values of the input. - - res.inputs : array - Disturbance values corresponding to the estimated state. If the - system is SISO and squeeze is not True, the array is 1D (indexed by - time). If the system is not SISO or squeeze is False, the array is - 2D (indexed by the output number and time). - - res.states : array - Estimated state vector over the given time points. - - res.outputs : array - Noise values corresponding to the estimated state. If the system - is SISO and squeeze is not True, the array is 1D (indexed by time). - If the system is not SISO or squeeze is False, the array is 2D - (indexed by the output number and time). + res.success : bool + Boolean flag indicating whether the optimization was successful. + res.time : array + Time values of the input. + res.inputs : array + Disturbance values corresponding to the estimated state. If + the system is SISO and squeeze is not True, the array is 1D + (indexed by time). If the system is not SISO or squeeze is + False, the array is 2D (indexed by the output number and time). + res.states : array + Estimated state vector over the given time points. + res.outputs : array + Noise values corresponding to the estimated state. If the + system is SISO and squeeze is not True, the array is 1D + (indexed by time). If the system is not SISO or squeeze is + False, the array is 2D (indexed by the output number and time). Notes ----- Additional keyword parameters can be used to fine tune the behavior of the underlying optimization and integration functions. See - :func:`OptimalControlProblem` for more information. + :func:`~control.optimal.OptimalControlProblem` for more information. """ # Set up the optimal control problem diff --git a/control/stochsys.py b/control/stochsys.py index 33d4b641f..fd361da9c 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -22,7 +22,8 @@ from .iosys import InputOutputSystem, LinearIOSystem, NonlinearIOSystem from .lti import LTI -from .namedio import isctime, isdtime, _process_indices +from .namedio import isctime, isdtime +from .namedio import _process_indices, _process_control_disturbance_indices from .mateqn import care, dare, _check_shape from .statesp import StateSpace, _ssmatrix from .exception import ControlArgument, ControlNotImplemented @@ -308,9 +309,8 @@ def dlqe(*args, **kwargs): # Function to create an estimator # -# TODO: add `control_indices` keyword to match create_mhe_iosystem (?) -# TODO: change name to create_kalmanestimaor_iosystem (?) # TODO: create predictor/corrector, UKF, and other variants (?) +# TODO: change *_labels to *_fmtstr and use signal keywords instead # def create_estimator_iosystem( sys, QN, RN, P0=None, G=None, C=None, @@ -441,35 +441,9 @@ def create_estimator_iosystem( # Set the state matrix for later use A = sys.A - # Set the disturbance matrices (indices take priority over G) - ctrl_idx = _process_indices( - control_indices, 'control', sys.input_labels, sys.ninputs) - - if disturbance_indices is None and control_indices is not None: - # Disturbance indices are the complement of control indices - dist_idx = [i for i in range(sys.ninputs) if i not in ctrl_idx] - if G is not None: - warn("'control_indices' and 'G' both specified; ignoring 'G'") - G = sys.B[:, dist_idx] - - elif disturbance_indices is not None: - if G is not None: - warn("'disturbance_indices' and 'G' both specified; ignoring 'G'") - - # If passed an integer, count from the end of the input vector - arg = -disturbance_indices if isinstance(disturbance_indices, int) \ - else disturbance_indices - - dist_idx = _process_indices( - arg, 'disturbance', sys.input_labels, sys.ninputs) - G = sys.B[:, dist_idx] - - # Set control indices to complement disturbance indices, if needed - if control_indices is None: - ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] - - elif G is None: - G = sys.B + # Determine the control and disturbance indices + ctrl_idx, dist_idx = _process_control_disturbance_indices( + sys, control_indices, disturbance_indices) # Set the input and direct matrices B = sys.B[:, ctrl_idx] @@ -491,6 +465,10 @@ def create_estimator_iosystem( if sensor_labels is None: sensor_labels = sys.output_labels + # Generate the disturbance matrix (G) + if G is None: + G = sys.B if len(dist_idx) == 0 else sys.B[:, dist_idx] + # Initialize the covariance matrix if P0 is None: # Initalize P0 to the steady state value diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index be701b177..7b423c474 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -221,6 +221,8 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): optimal_test.test_ocp_argument_errors, 'optimal.OptimalEstimationProblem.__init__': optimal_test.test_oep_argument_errors, + 'optimal.OptimalEstimationProblem.create_mhe_iosystem': + optimal_test.test_oep_argument_errors, } # diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index cbfa4e649..3aebe417f 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -786,3 +786,8 @@ def test_oep_argument_errors(): with pytest.raises(TypeError, match="unrecognized keyword"): oep = opt.OptimalEstimationProblem(sys, timepts, cost, unknown=True) + + with pytest.raises(TypeError, match="unrecognized keyword"): + sys = ct.rss(4, 2, 2, dt=True) + oep = opt.OptimalEstimationProblem(sys, timepts, cost) + oep.create_mhe_iosystem(unknown=True) diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index f34f4dedb..fbbd66631 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -430,6 +430,24 @@ def test_oep(dt): np.testing.assert_allclose( est2.states[:, -1], res1.states[:, -1], atol=1e-1, rtol=1e-2) + # Change around the inputs and disturbances + sys2 = ct.ss(sys.A, sys.B[:, ::-1], sys.C, sys.D[::-1], sys.dt) + oep2a = opt.OptimalEstimationProblem( + sys2, timepts, traj_cost, terminal_cost=init_cost, + control_indices=[1]) + est2a = oep2a.compute_estimate( + Y1, U, initial_guess=(est2.states, est2.inputs)) + np.testing.assert_allclose( + est2a.states[:, -1], res1.states[:, -1], atol=1e-1, rtol=1e-2) + + oep2b = opt.OptimalEstimationProblem( + sys2, timepts, traj_cost, terminal_cost=init_cost, + disturbance_indices=[0]) + est2b = oep2b.compute_estimate( + Y1, U, initial_guess=(est2.states, est2.inputs)) + np.testing.assert_allclose( + est2b.states[:, -1], res1.states[:, -1], atol=1e-1, rtol=1e-2) + # # Disturbance constraints # @@ -483,8 +501,9 @@ def test_mhe(): traj_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw) init_cost = lambda xhat, x: (xhat - x) @ P0 @ (xhat - x) oep = opt.OptimalEstimationProblem( - sys, mhe_timepts, traj_cost, terminal_cost=init_cost) - mhe = oep.create_mhe_iosystem(1) + sys, mhe_timepts, traj_cost, terminal_cost=init_cost, + disturbance_indices=1) + mhe = oep.create_mhe_iosystem() # Generate system data U = 10 * np.sin(timepts / (4*dt)) diff --git a/examples/mhe-pvtol.ipynb b/examples/mhe-pvtol.ipynb index 2295fc094..d9109c94b 100644 --- a/examples/mhe-pvtol.ipynb +++ b/examples/mhe-pvtol.ipynb @@ -617,8 +617,9 @@ "source": [ "mhe_timepts = timepts[0:10]\n", "oep = opt.OptimalEstimationProblem(\n", - " dsys, mhe_timepts, traj_cost, terminal_cost=init_cost)\n", - "mhe = oep.create_mhe_iosystem(2)\n", + " dsys, mhe_timepts, traj_cost, terminal_cost=init_cost,\n", + " disturbance_indices=slice(2, 4))\n", + "mhe = oep.create_mhe_iosystem()\n", " \n", "mhe_resp = ct.input_output_response(\n", " mhe, timepts, [Y, U], X0=x0, \n", @@ -650,8 +651,9 @@ "source": [ "mhe_timepts = timepts[0:8]\n", "oep = opt.OptimalEstimationProblem(\n", - " dsys, mhe_timepts, traj_cost, terminal_cost=init_cost)\n", - "mhe = oep.create_mhe_iosystem(2)\n", + " dsys, mhe_timepts, traj_cost, terminal_cost=init_cost,\n", + " disturbance_indices=slice(2, 4))\n", + "mhe = oep.create_mhe_iosystem()\n", " \n", "mhe_resp = ct.input_output_response(\n", " mhe, timepts, [Y, U],\n", From ebedf193fd9c6f9b026d3e2eff9e54bb15f51321 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 12 Mar 2023 22:53:51 -0700 Subject: [PATCH 0208/1025] regularize *_labels processing across create_*_iosystem --- control/config.py | 23 ++++++++ control/iosys.py | 2 +- control/namedio.py | 18 +++++++ control/optimal.py | 78 ++++++++++++++++++--------- control/statefbk.py | 26 ++++----- control/stochsys.py | 99 +++++++++++++++++++++------------- control/tests/kwargs_test.py | 3 +- control/tests/optimal_test.py | 5 ++ control/tests/stochsys_test.py | 4 ++ 9 files changed, 175 insertions(+), 83 deletions(-) diff --git a/control/config.py b/control/config.py index 37763a6b8..3efd1f7c0 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', 'use_matlab_defaults', 'use_fbs_defaults', @@ -310,3 +311,25 @@ def use_legacy_defaults(version): set_defaults('nyquist', mirror_style='-') return (major, minor, patch) + + +# +# Utility function for processing legacy keywords +# +# Use this function to handle a legacy keyword that has been renamed. This +# function pops the old keyword off of the kwargs dictionary and issues a +# warning. if both the old and new keyword are present, a ControlArgument +# exception is raised. +# +def _process_legacy_keyword(kwargs, oldkey, newkey, newval): + if kwargs.get(oldkey) is not None: + warnings.warn( + f"keyworld '{oldkey}' is deprecated; use '{newkey}'", + DeprecationWarning) + if newval is not None: + raise ControlArgument( + f"duplicate keywords '{oldkey}' and '{newkey}'") + else: + return kwargs.pop(oldkey) + else: + return newval diff --git a/control/iosys.py b/control/iosys.py index 6b0f6cfaa..a804a7f59 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -82,7 +82,7 @@ class for a set of subclasses that are used to implement specific System name (used for specifying signals). If unspecified, a generic name is generated with a unique integer id. params : dict, optional - Parameter values for the systems. Passed to the evaluation functions + Parameter values for the system. Passed to the evaluation functions for the system as default values, overriding internal defaults. Attributes diff --git a/control/namedio.py b/control/namedio.py index df7d519fd..8f61514fe 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -666,3 +666,21 @@ def _process_control_disturbance_indices( ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] return ctrl_idx, dist_idx + + +# Process labels +def _process_labels(labels, name, default): + if isinstance(labels, str): + labels = [labels.format(i=i) for i in range(len(default))] + + if labels is None: + labels = default + elif isinstance(labels, list): + if len(labels) != len(default): + raise ValueError( + f"incorrect length of {name}_labels: {len(labels)}" + f" instead of {len(default)}") + else: + raise ValueError(f"{name}_labels should be a string or a list") + + return labels diff --git a/control/optimal.py b/control/optimal.py index f19fd91f7..88f17ae39 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -18,7 +18,9 @@ from . import config from .exception import ControlNotImplemented -from .namedio import _process_indices, _process_control_disturbance_indices +from .namedio import _process_indices, _process_labels, \ + _process_control_disturbance_indices + # Define module default parameter values _optimal_trajectory_methods = {'shooting', 'collocation'} @@ -859,11 +861,11 @@ def _output(t, x, u, params={}): return res.inputs[:, 0] # Define signal names, if they are not already given - if not kwargs.get('inputs'): + if kwargs.get('inputs') is None: kwargs['inputs'] = self.system.state_labels - if not kwargs.get('outputs'): + if kwargs.get('outputs') is None: kwargs['outputs'] = self.system.input_labels - if not kwargs.get('states'): + if kwargs.get('states') is None: kwargs['states'] = self.system.ninputs * \ (self.timepts.size if self.basis is None else self.basis.N) @@ -1125,6 +1127,15 @@ def create_mpc_iosystem( returning the current input to be applied that minimizes the cost function while satisfying the constraints. + Other Parameters + ---------------- + inputs, outputs, states : int or list of str, optional + Set the names of the inputs, outputs, and states, as described in + :func:`~control.InputOutputSystem`. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. + Notes ----- Additional keyword parameters can be used to fine tune the behavior of @@ -1676,9 +1687,9 @@ def compute_estimate( # xhat, u, v, y for all previous time points. When the system update # function is called, # - # TODO: change output_labels to output_fmtstr and use output instead - # - def create_mhe_iosystem(self, output_labels=None, **kwargs): + def create_mhe_iosystem( + self, estimate_labels=None, measurement_labels=None, + control_labels=None, inputs=None, outputs=None, **kwargs): """Create an I/O system implementing an MPC controller This function creates an input/output system that implements a @@ -1688,12 +1699,24 @@ def create_mhe_iosystem(self, output_labels=None, **kwargs): Parameters ---------- - output_labels : str, optional - Set the name of the estimator outputs (state estimate). If a - single string is specified, it should be a format string using - the variable `i` as an index. Otherwise, a list of strings - matching the size of the system state should be used. Default - is "xhat[{i}]". + estimate_labels : str or list of str, optional + Set the name of the signals to use for the estimated state + (estimator outputs). If a single string is specified, it + should be a format string using the variable ``i`` as an index. + Otherwise, a list of strings matching the size of the estimated + state should be used. Default is "xhat[{i}]". These settings + can also be overriden using the `outputs` keyword. + measurement_labels, control_labels : str or list of str, optional + Set the name of the measurement and control signal names + (estimator inputs). If a single string is specified, it should + be a format string using the variable ``i`` as an index. + Otherwise, a list of strings matching the size of the system + inputs and outputs should be used. Default is the signal names + for the system outputs and control inputs. These settings can + also be overriden using the `inputs` keyword. + **kwargs, optional + Additional keyword arguments to set system, input, and output + signal names; see :func:`~control.InputOutputSystem`. Returns ------- @@ -1721,20 +1744,24 @@ def create_mhe_iosystem(self, output_labels=None, **kwargs): _process_control_disturbance_indices( self.system, self.control_indices, self.disturbance_indices) - # Figure out the labels to use - # TODO: allow overwrite via kwargs + change parameter name - if isinstance(output_labels, str): - # Generate labels using the argument as a format string - output_labels = [output_labels.format(i=i) - for i in range(self.system.nstates)] + # Figure out the signal labels to use + estimate_labels = _process_labels( + estimate_labels, 'estimate', + [f'xhat[{i}]' for i in range(self.system.nstates)]) + outputs = estimate_labels if outputs is None else outputs - # TODO: allow overwrite via kwargs - sensor_labels = [self.system.output_labels [i] - for i in range(self.system.noutputs)] - input_labels = [self.system.input_labels[i] for i in self.ctrl_idx] + measurement_labels = _process_labels( + measurement_labels, 'measurement', self.system.output_labels) + control_labels = _process_labels( + control_labels, 'control', + [self.system.input_labels[i] for i in self.ctrl_idx]) + inputs = measurement_labels + control_labels if inputs is None \ + else inputs nstates = (self.system.nstates + self.system.ninputs + self.system.noutputs) * self.timepts.size + if kwargs.get('states'): + raise ValueError("user-specified state signal names not allowed") # Utility function to extract elements from MHE state vector def _xvec_next(xvec, off, size): @@ -1781,9 +1808,8 @@ def _mhe_output(t, xvec, uvec, params={}): return self.system._rhs(t, xhat[:, -1], u_v[:, -1]) return ct.NonlinearIOSystem( - _mhe_update, _mhe_output, states=nstates, - inputs=sensor_labels + input_labels, - outputs=output_labels, dt=self.system.dt, **kwargs) + _mhe_update, _mhe_output, dt=self.system.dt, + states=nstates, inputs=inputs, outputs=outputs, **kwargs) # Optimal estimation result diff --git a/control/statefbk.py b/control/statefbk.py index 02bbad3ec..61321d265 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -48,11 +48,12 @@ from .mateqn import care, dare, _check_shape from .statesp import StateSpace, _ssmatrix, _convert_to_statespace from .lti import LTI -from .namedio import isdtime, isctime, _process_indices +from .namedio import isdtime, isctime, _process_indices, _process_labels from .iosys import InputOutputSystem, NonlinearIOSystem, LinearIOSystem, \ interconnect, ss from .exception import ControlSlycot, ControlArgument, ControlDimension, \ ControlNotImplemented +from .config import _process_legacy_keyword # Make sure we have access to the right slycot routines try: @@ -602,7 +603,7 @@ def dlqr(*args, **kwargs): # Function to create an I/O sytems representing a state feedback controller def create_statefbk_iosystem( sys, gain, integral_action=None, estimator=None, controller_type=None, - xd_labels='xd[{i}]', ud_labels='ud[{i}]', gainsched_indices=None, + xd_labels=None, ud_labels=None, gainsched_indices=None, gainsched_method='linear', control_indices=None, state_indices=None, name=None, inputs=None, outputs=None, states=None, **kwargs): """Create an I/O system using a (full) state feedback controller @@ -747,14 +748,8 @@ def create_statefbk_iosystem( raise ControlArgument("Input system must be I/O system") # Process (legacy) keywords - if kwargs.get('type') is not None: - warnings.warn( - "keyword 'type' is deprecated; use 'controller_type'", - DeprecationWarning) - if controller_type is not None: - raise ControlArgument( - "duplicate keywords 'type` and 'controller_type'") - controller_type = kwargs.pop('type') + controller_type = _process_legacy_keyword( + kwargs, 'type', 'controller_type', controller_type) if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) @@ -837,13 +832,10 @@ def create_statefbk_iosystem( raise ControlArgument(f"unknown controller_type '{controller_type}'") # Figure out the labels to use - if isinstance(xd_labels, str): - # Generate the list of labels using the argument as a format string - xd_labels = [xd_labels.format(i=i) for i in range(sys_nstates)] - - if isinstance(ud_labels, str): - # Generate the list of labels using the argument as a format string - ud_labels = [ud_labels.format(i=i) for i in range(sys_ninputs)] + xd_labels = _process_labels( + xd_labels, 'xd', ['xd[{i}]'.format(i=i) for i in range(sys_nstates)]) + ud_labels = _process_labels( + ud_labels, 'ud', ['ud[{i}]'.format(i=i) for i in range(sys_ninputs)]) # Create the signal and system names if inputs is None: diff --git a/control/stochsys.py b/control/stochsys.py index fd361da9c..1a3ba2cb7 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -23,10 +23,12 @@ from .iosys import InputOutputSystem, LinearIOSystem, NonlinearIOSystem from .lti import LTI from .namedio import isctime, isdtime -from .namedio import _process_indices, _process_control_disturbance_indices +from .namedio import _process_indices, _process_labels, \ + _process_control_disturbance_indices from .mateqn import care, dare, _check_shape from .statesp import StateSpace, _ssmatrix from .exception import ControlArgument, ControlNotImplemented +from .config import _process_legacy_keyword __all__ = ['lqe', 'dlqe', 'create_estimator_iosystem', 'white_noise', 'correlation'] @@ -315,8 +317,9 @@ def dlqe(*args, **kwargs): def create_estimator_iosystem( sys, QN, RN, P0=None, G=None, C=None, control_indices=None, disturbance_indices=None, - state_labels='xhat[{i}]', output_labels='xhat[{i}]', - covariance_labels='P[{i},{j}]', sensor_labels=None): + estimate_labels='xhat[{i}]', covariance_labels='P[{i},{j}]', + measurement_labels=None, control_labels=None, + inputs=None, outputs=None, states=None, **kwargs): r"""Create an I/O system implementing a linear quadratic estimator This function creates an input/output system that implements a @@ -391,10 +394,10 @@ def create_estimator_iosystem( as either integer offsets or as system input signal names. If not specified, the disturbances are assumed to be added to the system inputs. - state_labels : str or list of str, optional - Set the names of the internal state estimate variables. If a - single string is specified, it should be a format string using the - variable `i` as an index. Otherwise, a list of strings matching + estimate_labels : str or list of str, optional + Set the names of the state estimate variables (estimator outputs). + If a single string is specified, it should be a format string using + the variable `i` as an index. Otherwise, a list of strings matching the number of system states should be used. Default is "xhat[{i}]". covariance_labels : str or list of str, optional Set the name of the the covariance state variables. If a single @@ -402,16 +405,20 @@ def create_estimator_iosystem( variables `i` and `j` as indices. Otherwise, a list of strings matching the size of the covariance matrix should be used. Default is "P[{i},{j}]". - sensor_labels : str or list of str, optional - Set the name of the sensor signals (estimator inputs). If - specified, it should be a format string using the variable `i` as - an index. Otherwise, a list of strings matching the size of the - measured system outputs should be used. Default is "y[{i}]". - output_labels : str or list of str, optional - Set the name of the estimator outputs (state estimate). If a - single string is specified, it should be a format string using the - variable `i` as an index. Otherwise, a list of strings matching - the size of the system state should be used. Default is "xhat[{i}]". + measurement_labels, control_labels : str or list of str, optional + Set the name of the measurement and control signal names (estimator + inputs). If a single string is specified, it should be a format + string using the variable ``i`` as an index. Otherwise, a list of + strings matching the size of the system inputs and outputs should + be used. Default is the signal names for the system outputs and + control inputs. These settings can also be overriden using the + `inputs` keyword. + inputs, outputs, states : int or list of str, optional + Set the names of the inputs, outputs, and states, as described in + :func:`~control.InputOutputSystem`. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. Notes ----- @@ -438,6 +445,21 @@ def create_estimator_iosystem( if not isinstance(sys, LinearIOSystem): raise ControlArgument("Input system must be a linear I/O system") + # Process legacy keywords + estimate_labels = _process_legacy_keyword( + kwargs, 'output_labels', 'estimate_labels', estimate_labels) + measurement_labels = _process_legacy_keyword( + kwargs, 'sensor_labels', 'measurement_labels', measurement_labels) + + # Separate state_labels no longer supported => special processing required + if kwargs.get('state_labels'): + if estimate_labels is None: + estimate_labels = _process_legacy_keyword( + kwargs, 'state_labels', estimate_labels) + else: + warnings.warn( + "deprecated 'state_labels' ignored; use 'state' instead") + # Set the state matrix for later use A = sys.A @@ -462,8 +484,6 @@ def create_estimator_iosystem( else: # Use the system outputs as the sensor outputs C = sys.C - if sensor_labels is None: - sensor_labels = sys.output_labels # Generate the disturbance matrix (G) if G is None: @@ -475,28 +495,32 @@ def create_estimator_iosystem( _, P0, _ = lqe(A, G, C, QN, RN) # Figure out the labels to use - if isinstance(state_labels, str): - # Generate the list of labels using the argument as a format string - state_labels = [state_labels.format(i=i) for i in range(sys.nstates)] + estimate_labels = _process_labels( + estimate_labels, 'estimate', + [f'xhat[{i}]' for i in range(sys.nstates)]) + outputs = estimate_labels if outputs is None else outputs + + if C is None: + # System outputs are the input to the estimator + measurement_labels = _process_labels( + measurement_labels, 'measurement', sys.output_labels) + else: + # Generate labels corresponding to measured values from C + measurement_labels = _process_labels( + measurement_labels, 'measurement', + [f'y[{i}]' for i in range(C.shape[0])]) + control_labels = _process_labels( + control_labels, 'control', + [sys.input_labels[i] for i in ctrl_idx]) + inputs = measurement_labels + control_labels if inputs is None \ + else inputs if isinstance(covariance_labels, str): # Generate the list of labels using the argument as a format string covariance_labels = [ covariance_labels.format(i=i, j=j) \ for i in range(sys.nstates) for j in range(sys.nstates)] - - if isinstance(output_labels, str): - # Generate the list of labels using the argument as a format string - output_labels = [output_labels.format(i=i) for i in range(sys.nstates)] - - sensor_labels = 'y[{i}]' if sensor_labels is None else sensor_labels - if isinstance(sensor_labels, str): - # Generate the list of labels using the argument as a format string - sensor_labels = [sensor_labels.format(i=i) for i in range(C.shape[0])] - - # Set the input labels based on the system input - # TODO: allow these to be overriden - input_labels = [sys.input_labels[i] for i in ctrl_idx] + states = estimate_labels + covariance_labels if states is None else states if isctime(sys): # Create an I/O system for the state feedback gains @@ -568,9 +592,8 @@ def _estim_output(t, x, u, params): # Define the estimator system return NonlinearIOSystem( - _estim_update, _estim_output, states=state_labels + covariance_labels, - inputs=sensor_labels + input_labels, outputs=output_labels, - dt=sys.dt) + _estim_update, _estim_output, dt=sys.dt, + states=states, inputs=inputs, outputs=outputs, **kwargs) def white_noise(T, Q, dt=0): diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 7b423c474..f94009549 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -24,9 +24,9 @@ import control.tests.interconnect_test as interconnect_test 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 - @pytest.mark.parametrize("module, prefix", [ (control, ""), (control.flatsys, "flatsys."), (control.optimal, "optimal.") ]) @@ -161,6 +161,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): kwarg_unittest = { 'bode': test_matplotlib_kwargs, 'bode_plot': test_matplotlib_kwargs, + 'create_estimator_iosystem': stochsys_test.test_estimator_errors, 'create_statefbk_iosystem': statefbk_test.TestStatefbk.test_statefbk_errors, 'describing_function_plot': test_matplotlib_kwargs, 'dlqe': test_unrecognized_kwargs, diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 3aebe417f..50dfa3bb2 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -791,3 +791,8 @@ def test_oep_argument_errors(): sys = ct.rss(4, 2, 2, dt=True) oep = opt.OptimalEstimationProblem(sys, timepts, cost) oep.create_mhe_iosystem(unknown=True) + + # Incorrect number of signals + with pytest.raises(ValueError, match="incorrect length"): + oep = opt.OptimalEstimationProblem(sys, timepts, cost) + mhe = oep.create_mhe_iosystem(estimate_labels=['x1', 'x2', 'x3']) diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index fbbd66631..5a782d88a 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -230,6 +230,9 @@ def test_estimator_errors(): QN = np.eye(sys.ninputs) RN = np.eye(sys.noutputs) + with pytest.raises(TypeError, match="unrecognized keyword"): + estim = ct.create_estimator_iosystem(sys, QN, RN, unknown=True) + with pytest.raises(ct.ControlArgument, match=".* system must be a linear"): sys_tf = ct.tf([1], [1, 1], dt=True) estim = ct.create_estimator_iosystem(sys_tf, QN, RN) @@ -517,6 +520,7 @@ def test_mhe(): # Make sure the estimated state is close to the actual state np.testing.assert_allclose(estp.outputs, resp.states, atol=1e-2, rtol=1e-4) +@pytest.mark.slow @pytest.mark.parametrize("ctrl_indices, dist_indices", [ (slice(0, 3), None), (3, None), From df4508c39021da0a82c8ce50da067cafcc844303 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 13 Mar 2023 22:39:21 -0700 Subject: [PATCH 0209/1025] updated docstrings and docs, trim slow unit tests --- control/optimal.py | 85 ++++++++++++------------ control/statefbk.py | 63 +++++++++--------- control/stochsys.py | 26 ++++---- control/tests/optimal_test.py | 1 + control/tests/stochsys_test.py | 118 ++++++++++++++++----------------- doc/optimal.rst | 23 ++++--- 6 files changed, 159 insertions(+), 157 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 88f17ae39..ffd2828fd 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -1038,7 +1038,7 @@ def solve_ocp( Notes ----- - Additional keyword parameters can be used to fine tune the behavior of + Additional keyword parameters can be used to fine-tune the behavior of the underlying optimization and integration functions. See :func:`OptimalControlProblem` for more information. @@ -1138,7 +1138,7 @@ def create_mpc_iosystem( Notes ----- - Additional keyword parameters can be used to fine tune the behavior of + Additional keyword parameters can be used to fine-tune the behavior of the underlying optimization and integrations functions. See :func:`OptimalControlProblem` for more information. @@ -1189,15 +1189,15 @@ class OptimalEstimationProblem(): control_indices : int, slice, or list of int or string, optional Specify the indices in the system input vector that correspond to the control inputs. These inputs will be used as known control - inputs for the estimate. If value is an integer `m`, the first `m` - system inputs are used. Otherwise, the value should be a slice or - a list of indices. The list of indices can be specified as either - integer offsets or as system input signal names. If not specified, - defaults to the complement of the disturbance indices (see also - notes below). + inputs for the estimator. If value is an integer `m`, the first + `m` system inputs are used. Otherwise, the value should be a slice + or a list of indices. The list of indices can be specified as + either integer offsets or as system input signal names. If not + specified, defaults to the complement of the disturbance indices + (see also notes below). disturbance_indices : int, list of int, or slice, optional Specify the indices in the system input vector that correspond to - the input disturbances. If value is an integer `m`, the last `m` + the process disturbances. If value is an integer `m`, the last `m` system inputs are used. Otherwise, the value should be a slice or a list of indices, as describedf for `control_indices`. If not specified, defaults to the complement of the control indicies (see @@ -1227,14 +1227,13 @@ class OptimalEstimationProblem(): Notes ----- - To describe an optimal estimation problem we need an input/output - system, a set of time points, measured inputs and outputs, a cost - function, and (optionally) a set of constraints on the state - and/or inputs along the trajectory (and at the terminal time). - This class sets up an optimization over the state and disturbances - at each point in time, using the integral and terminal costs as - well as the trajectory constraints. The - :func:`~control.optimal.OptimalEstimationProblem.compute_estimate` + To describe an optimal estimation problem we need an input/output system, + a set of time points, applied inputs and measured outputs, a cost + function, and (optionally) a set of constraints on the state and/or inputs + along the trajectory (and at the terminal time). This class sets up an + optimization over the state and disturbances at each point in time, using + the integral and terminal costs as well as the trajectory constraints. + The :func:`~control.optimal.OptimalEstimationProblem.compute_estimate` method solves the underling optimization problem using :func:`scipy.optimize.minimize`. @@ -1245,12 +1244,11 @@ class OptimalEstimationProblem(): the same as the control inputs. The "cost" (e.g. negative of the log likelihood) of the estimated - trajectory generated by the estimated state, the disturbances and - noise, and the measured output. It does this by calling a user-defined - function for the integral_cost given the current estimated states, - inputs, and measured outputs at each point along the trajectory and - then adding the value of a user-defined terminal cost at the initial - point in the trajectory. + trajectory is computed using the estimated state, the disturbances and + noise, and the measured output. This is done by calling a user-defined + function for the integral_cost along the trajectory and then adding the + value of a user-defined terminal cost at the initial point in the + trajectory. The constraint functions are evaluated at each point on the trajectory generated by the proposed estimate and disturbances. As in the case of @@ -1261,8 +1259,8 @@ class OptimalEstimationProblem(): so that it only needs to be computed once. The default values for ``minimize_method``, ``minimize_options``, - ``minimize_kwargs``, ``solve_ivp_method``, and ``solve_ivp_options`` can - be set using config.defaults['optimal.']. + ``minimize_kwargs``, ``solve_ivp_method``, and ``solve_ivp_options`` + can be set using config.defaults['optimal.']. """ def __init__( @@ -1628,7 +1626,7 @@ def compute_estimate( ------- res : OptimalEstimationResult Bundle object with the results of the optimal estimation problem. - res.success: bool + res.success : bool Boolean flag indicating whether the optimization was successful. res.time : array Time values of the input (same as self.timepts). @@ -1929,27 +1927,26 @@ def solve_oep( ------- res : TimeResponseData Bundle object with the estimated state and noise values. - - res.success : bool - Boolean flag indicating whether the optimization was successful. - res.time : array - Time values of the input. - res.inputs : array - Disturbance values corresponding to the estimated state. If - the system is SISO and squeeze is not True, the array is 1D - (indexed by time). If the system is not SISO or squeeze is - False, the array is 2D (indexed by the output number and time). - res.states : array - Estimated state vector over the given time points. - res.outputs : array - Noise values corresponding to the estimated state. If the - system is SISO and squeeze is not True, the array is 1D - (indexed by time). If the system is not SISO or squeeze is - False, the array is 2D (indexed by the output number and time). + res.success : bool + Boolean flag indicating whether the optimization was successful. + res.time : array + Time values of the input. + res.inputs : array + Disturbance values corresponding to the estimated state. If the + system is SISO and squeeze is not True, the array is 1D (indexed by + time). If the system is not SISO or squeeze is False, the array is + 2D (indexed by the output number and time). + res.states : array + Estimated state vector over the given time points. + res.outputs : array + Noise values corresponding to the estimated state. If the system + is SISO and squeeze is not True, the array is 1D (indexed by time). + If the system is not SISO or squeeze is False, the array is 2D + (indexed by the output number and time). Notes ----- - Additional keyword parameters can be used to fine tune the behavior of + Additional keyword parameters can be used to fine-tune the behavior of the underlying optimization and integration functions. See :func:`~control.optimal.OptimalControlProblem` for more information. diff --git a/control/statefbk.py b/control/statefbk.py index 61321d265..779e53555 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -341,11 +341,11 @@ def lqr(*args, **kwargs): integral_action : ndarray, optional If this keyword is specified, the controller includes integral action in addition to state feedback. The value of the - `integral_action`` keyword should be an ndarray that will be + `integral_action` keyword should be an ndarray that will be multiplied by the current state to generate the error for the internal integrator states of the control law. The number of outputs that are to be integrated must match the number of - additional rows and columns in the ``Q`` matrix. + additional rows and columns in the `Q` matrix. method : str, optional Set the method used for computing the result. Current methods are 'slycot' and 'scipy'. If set to None (default), try 'slycot' first @@ -491,11 +491,11 @@ def dlqr(*args, **kwargs): integral_action : ndarray, optional If this keyword is specified, the controller includes integral action in addition to state feedback. The value of the - `integral_action`` keyword should be an ndarray that will be + `integral_action` keyword should be an ndarray that will be multiplied by the current state to generate the error for the internal integrator states of the control law. The number of outputs that are to be integrated must match the number of - additional rows and columns in the ``Q`` matrix. + additional rows and columns in the `Q` matrix. method : str, optional Set the method used for computing the result. Current methods are 'slycot' and 'scipy'. If set to None (default), try 'slycot' first @@ -617,9 +617,9 @@ def create_statefbk_iosystem( ctrl, clsys = ct.create_statefbk_iosystem(sys, K) - where ``sys`` is the process dynamics and ``K`` is the state (+ integral) + where `sys` is the process dynamics and `K` is the state (+ integral) feedback gain (eg, from LQR). The function returns the controller - ``ctrl`` and the closed loop systems ``clsys``, both as I/O systems. + `ctrl` and the closed loop systems `clsys`, both as I/O systems. A gain scheduled controller can also be created, by passing a list of gains and a corresponding list of values of a set of scheduling @@ -636,32 +636,32 @@ def create_statefbk_iosystem( is given, the output of this system should represent the full state. gain : ndarray or tuple - If a array is give, it represents the state feedback gain (K). + If an array is given, it represents the state feedback gain (K). This matrix defines the gains to be applied to the system. If - ``integral_action`` is None, then the dimensions of this array + `integral_action` is None, then the dimensions of this array should be (sys.ninputs, sys.nstates). If `integral action` is set to a matrix or a function, then additional columns represent the gains of the integral states of the controller. If a tuple is given, then it specifies a gain schedule. The tuple - should be of the form ``(gains, points)`` where gains is a list of + should be of the form `(gains, points)` where gains is a list of gains :math:`K_j` and points is a list of values :math:`\\mu_j` at which the gains are computed. The `gainsched_indices` parameter should be used to specify the scheduling variables. xd_labels, ud_labels : str or list of str, optional - Set the name of the signals to use for the desired state and inputs. - If a single string is specified, it should be a format string using - the variable ``i`` as an index. Otherwise, a list of strings - matching the size of xd and ud, respectively, should be used. - Default is ``'xd[{i}]'`` for xd_labels and ``'ud[{i}]'`` for - ud_labels. These settings can also be overriden using the `inputs` - keyword. + Set the name of the signals to use for the desired state and + inputs. If a single string is specified, it should be a + format string using the variable `i` as an index. Otherwise, + a list of strings matching the size of xd and ud, + respectively, should be used. Default is "xd[{i}]" for + xd_labels and "ud[{i}]" for ud_labels. These settings can + also be overriden using the `inputs` keyword. integral_action : ndarray, optional If this keyword is specified, the controller can include integral action in addition to state feedback. The value of the - `integral_action`` keyword should be an ndarray that will be + `integral_action` keyword should be an ndarray that will be multiplied by the current and desired state to generate the error for the internal integrator states of the control law. @@ -678,7 +678,7 @@ def create_statefbk_iosystem( [xd, ud, x] vector are used. Otherwise, the value should be a slice or a list of indices. The list of indices can be specified as either integer offsets or as signal names. The default is to - use the desire state xd. + use the desired state xd. gainsched_method : str, optional The method to use for gain scheduling. Possible values are 'linear' @@ -691,28 +691,29 @@ def create_statefbk_iosystem( Set the type of controller to create. The default for a linear gain is a linear controller implementing the LQR regulator. If the type is 'nonlinear', a :class:NonlinearIOSystem is created instead, with - the gain ``K`` as a parameter (allowing modifications of the gain at + the gain `K` as a parameter (allowing modifications of the gain at runtime). If the gain parameter is a tuple, then a nonlinear, gain-scheduled controller is created. Returns ------- ctrl : InputOutputSystem - Input/output system representing the controller. This system takes - as inputs the desired state ``xd``, the desired input ``ud``, and - either the system state ``x`` or the estimated state ``xhat``. It - outputs the controller action u according to the formula :math:`u = - u_d - K(x - x_d)`. If the keyword ``integral_action`` is specified, - then an additional set of integrators is included in the control - system (with the gain matrix ``K`` having the integral gains - appended after the state gains). If a gain scheduled controller is - specified, the gain (proportional and integral) are evaluated using - the scheduling variables specified by ``gainsched_indices``. + Input/output system representing the controller. This system + takes as inputs the desired state `xd`, the desired input + `ud`, and either the system state `x` or the estimated state + `xhat`. It outputs the controller action `u` according to the + formula :math:`u = u_d - K(x - x_d)`. If the keyword + `integral_action` is specified, then an additional set of + integrators is included in the control system (with the gain + matrix `K` having the integral gains appended after the state + gains). If a gain scheduled controller is specified, the gain + (proportional and integral) are evaluated using the scheduling + variables specified by `gainsched_indices`. clsys : InputOutputSystem Input/output system representing the closed loop system. This - systems takes as inputs the desired trajectory ``(xd, ud)`` and - outputs the system state ``x`` and the applied input ``u`` + systems takes as inputs the desired trajectory `(xd, ud)` and + outputs the system state `x` and the applied input `u` (vertically stacked). Other Parameters diff --git a/control/stochsys.py b/control/stochsys.py index 1a3ba2cb7..ff9f756ae 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -312,7 +312,6 @@ def dlqe(*args, **kwargs): # Function to create an estimator # # TODO: create predictor/corrector, UKF, and other variants (?) -# TODO: change *_labels to *_fmtstr and use signal keywords instead # def create_estimator_iosystem( sys, QN, RN, P0=None, G=None, C=None, @@ -344,19 +343,17 @@ def create_estimator_iosystem( estim = ct.create_estimator_iosystem(sys, QN, RN) where `sys` is the process dynamics and `QN` and `RN` are the covariance - of the disturbance noise and sensor noise. The function returns the - estimator `estim` as I/O system with a parameter `correct` that can + of the disturbance noise and measurement noise. The function returns + the estimator `estim` as I/O system with a parameter `correct` that can be used to turn off the correction term in the estimation (for forward predictions). Parameters ---------- sys : LinearIOSystem - The linear I/O system that represents the process dynamics. If no - estimator is given, the output of this system should represent the - full state. + The linear I/O system that represents the process dynamics. QN, RN : ndarray - Process and sensor noise covariance matrices. + Disturbance and measurement noise covariance matrices. P0 : ndarray, optional Initial covariance matrix. If not specified, defaults to the steady state covariance. @@ -409,13 +406,13 @@ def create_estimator_iosystem( Set the name of the measurement and control signal names (estimator inputs). If a single string is specified, it should be a format string using the variable ``i`` as an index. Otherwise, a list of - strings matching the size of the system inputs and outputs should - be used. Default is the signal names for the system outputs and - control inputs. These settings can also be overriden using the + strings matching the size of the system inputs and outputs should be + used. Default is the signal names for the system measurements and + known control inputs. These settings can also be overriden using the `inputs` keyword. inputs, outputs, states : int or list of str, optional Set the names of the inputs, outputs, and states, as described in - :func:`~control.InputOutputSystem`. + :func:`~control.InputOutputSystem`. Overrides signal labels. name : string, optional System name (used for specifying signals). If unspecified, a generic name is generated with a unique integer id. @@ -434,7 +431,7 @@ def create_estimator_iosystem( resp = ct.input_output_response(est, T, [Y, U], [X0, P0]) If desired, the ``correct`` parameter can be set to ``False`` to allow - prediction with no additional sensor information:: + prediction with no additional measurement information:: resp = ct.input_output_response( est, T, 0, [X0, P0], param={'correct': False) @@ -458,7 +455,8 @@ def create_estimator_iosystem( kwargs, 'state_labels', estimate_labels) else: warnings.warn( - "deprecated 'state_labels' ignored; use 'state' instead") + "deprecated 'state_labels' ignored; use 'states' instead") + kwargs.pop('state_labels') # Set the state matrix for later use A = sys.A @@ -482,7 +480,7 @@ def create_estimator_iosystem( if C.shape[0] != RN.shape[0]: raise ValueError("System output is the wrong size for C") else: - # Use the system outputs as the sensor outputs + # Use the system outputs as the measurements C = sys.C # Generate the disturbance matrix (G) diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 50dfa3bb2..340f59391 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -551,6 +551,7 @@ def test_ocp_argument_errors(): sys, time, x0, cost, solve_ivp_kwargs={'eps': 0.1}) +@pytest.mark.slow @pytest.mark.parametrize("basis", [ flat.PolyFamily(4), flat.PolyFamily(6), flat.BezierFamily(4), flat.BSplineFamily([0, 4, 8], 6) diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 5a782d88a..1ae0827a5 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -326,6 +326,7 @@ def test_correlation(): @pytest.mark.parametrize('dt', [0, 1]) def test_oep(dt): # Define the system to test, with additional input + # Use fixed system to avoid random errors (was csys = ct.rss(4, 2, 5)) csys = ct.ss( [[-0.5, 1, 0, 0], [0, -1, 1, 0], [0, 0, -2, 1], [0, 0, 0, -3]], # A [[0, 0.1], [0, 0.1], [0, 0.1], [1, 0.1]], # B @@ -344,7 +345,7 @@ def test_oep(dt): W = np.vstack([np.sin(2*timepts), np.cos(3*timepts)]) * 1e-3 # Generate system data - U = np.sin(timepts) + U = np.sin(timepts).reshape(1, -1) # No disturbances res0 = ct.input_output_response(sys, timepts, [U, V*0]) @@ -354,44 +355,44 @@ def test_oep(dt): res1 = ct.input_output_response(sys, timepts, [U, V]) Y1 = res1.outputs + W - # - # Internal testing to make sure all our functions are OK - # - # Set up optimal estimation function using Gaussian likelihoods for cost traj_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw) init_cost = lambda xhat, x: (xhat - x) @ (xhat - x) oep = opt.OptimalEstimationProblem( sys, timepts, traj_cost, terminal_cost=init_cost) - # _cost_function - oep.compute_estimate(res0.outputs, U, X0=0) - assert oep._cost_function(np.hstack( - [res0.states.reshape(-1), V.reshape(-1) * 0])) == 0 - assert oep._cost_function(np.hstack( - [res0.states.reshape(-1), V.reshape(-1)])) != 0 - if sys.isdtime(): - # Collocation contstraint should be satisified for discrete time - np.testing.assert_allclose(oep._collocation_constraint( - np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])), 0) - - # _compute_states_inputs: states and inputs with no noise - oep.compute_estimate(Y0, U) - xhat, u, v, w = oep._compute_states_inputs( - np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])) - np.testing.assert_allclose(xhat, res0.states) - np.testing.assert_allclose(u, U.reshape(1, -1)) - np.testing.assert_allclose(v, 0) - np.testing.assert_allclose(w, 0) - - # _compute_states_inputs: states and inputs with no noise - oep.compute_estimate(Y1, U) - xhat, u, v, w = oep._compute_states_inputs( - np.hstack([res1.states.reshape(-1), V.reshape(-1)])) - np.testing.assert_allclose(xhat, res1.states) - np.testing.assert_allclose(u, U.reshape(1, -1)) - np.testing.assert_allclose(v, V) - np.testing.assert_allclose(w, W) + # + # Internal testing to make sure all our functions are OK (developers) + # + if False: + # _cost_function + oep.compute_estimate(Y0, U, X0=0) + assert oep._cost_function(np.hstack( + [res0.states.reshape(-1), V.reshape(-1) * 0])) == 0 + assert oep._cost_function(np.hstack( + [res0.states.reshape(-1), V.reshape(-1)])) != 0 + if sys.isdtime(): + # Collocation contstraint should be satisified for discrete time + np.testing.assert_allclose(oep._collocation_constraint( + np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])), 0) + + # _compute_states_inputs: states and inputs with no noise + # oep.compute_estimate(Y0, U) + xhat, u, v, w = oep._compute_states_inputs( + np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])) + np.testing.assert_allclose(xhat, res0.states) + np.testing.assert_allclose(u, U.reshape(1, -1)) + np.testing.assert_allclose(v, 0) + np.testing.assert_allclose(w, 0) + + # _compute_states_inputs: states and inputs with no noise + oep.compute_estimate(Y1, U) + xhat, u, v, w = oep._compute_states_inputs( + np.hstack([res1.states.reshape(-1), V.reshape(-1)])) + np.testing.assert_allclose(xhat, res1.states) + np.testing.assert_allclose(u, U.reshape(1, -1)) + np.testing.assert_allclose(v, V) + np.testing.assert_allclose(w, W) # # oep.compute_estimate testing @@ -415,17 +416,18 @@ def test_oep(dt): est0.states[:, -1], res0.states[:, -1], atol=1e-2, rtol=1e-2) # Noise free, but with disturbances and good initial guess - oep1 = opt.OptimalEstimationProblem( - sys, timepts, nonoise_cost, terminal_cost=init_cost) - est1 = oep1.compute_estimate( - res1.outputs, U, initial_guess=(res1.states, V), X0=0) - np.testing.assert_allclose( - est1.states[:, -1], res1.states[:, -1], atol=1e-2, rtol=1e-2) - if sys.isdtime(): - # For discrete time, estimated disturbance and noise should be close + if False: + oep1 = opt.OptimalEstimationProblem( + sys, timepts, nonoise_cost, terminal_cost=init_cost) + est1 = oep1.compute_estimate( + res1.outputs, U, initial_guess=(res1.states, V), X0=0) np.testing.assert_allclose( - est1.inputs[:-1], V[:-1], atol=1e-2, rtol=1e-2) - np.testing.assert_allclose(est1.outputs, 0, atol=1e-2, rtol=1e-2) + est1.states[:, -1], res1.states[:, -1], atol=1e-2, rtol=1e-2) + if sys.isdtime(): + # For discrete time, estimated disturbance and noise should be close + np.testing.assert_allclose( + est1.inputs[:-1], V[:-1], atol=1e-2, rtol=1e-2) + np.testing.assert_allclose(est1.outputs, 0, atol=1e-2, rtol=1e-2) # Noise and disturbances (the standard case) est2 = oep.compute_estimate(Y1, U) # back to original OEP @@ -531,19 +533,17 @@ def test_mhe(): (slice(0, 3), slice(3, 5)) ]) def test_indices(ctrl_indices, dist_indices): - # Define a system with inputs (0:3), disturbances (3:5), and noise (5, 7) - ninputs = 3 - nstates = ninputs + 1 - ndisturbances = 2 - noutputs = 2 - nnoises = 0 - # TODO: remove strictly proper - sys = ct.rss(nstates, noutputs, ninputs + ndisturbances + nnoises, strictly_proper=True) + # Define a system with inputs (0:3), disturbances (3:5), and no noise + sys = ct.ss( + [[-1, 1, 0, 0], [0, -2, 1, 0], [0, 0, -3, 1], [0, 0, 0, -4]], + [[0, 0, 0, 0, 0], [1, 0, 0, 0, 0], [0, 1, 0, .1, 0], [0, 0, 1, 0, .1]], + [[1, 0, 0, 0], [0, 1, 0, 0]], 0) # Create a system whose state we want to estimate if ctrl_indices is not None: ctrl_idx = ct.namedio._process_indices( ctrl_indices, 'control', sys.input_labels, sys.ninputs) + dist_idx = [i for i in range(sys.ninputs) if i not in ctrl_idx] else: arg = -dist_indices if isinstance(dist_indices, int) else dist_indices dist_idx = ct.namedio._process_indices( @@ -553,28 +553,28 @@ def test_indices(ctrl_indices, dist_indices): # Set the simulation time based on the slowest system pole from math import log - T = 10 / min(-sys.poles().real) + T = 10 # Generate a system response with no disturbances - timepts = np.linspace(0, T, 50) - U = np.vstack([np.sin(timepts + i) for i in range(ninputs)]) + timepts = np.linspace(0, T, 20) + U = np.vstack([np.sin(timepts + i) for i in range(len(ctrl_idx))]) resp = ct.input_output_response( - sysm, timepts, U, np.zeros(nstates), + sysm, timepts, U, np.zeros(sys.nstates), solve_ivp_kwargs={'method': 'RK45', 'max_step': 0.01, 'atol': 1, 'rtol': 1}) Y = resp.outputs # Create an estimator - QN = np.eye(ndisturbances) - RN = np.eye(noutputs) - P0 = np.eye(nstates) + QN = np.eye(len(dist_idx)) + RN = np.eye(sys.noutputs) + P0 = np.eye(sys.nstates) estim = ct.create_estimator_iosystem( sys, QN, RN, control_indices=ctrl_indices, disturbance_indices=dist_indices) # Run estimator (no prediction + same solve_ivp params => should be exact) resp_estim = ct.input_output_response( - estim, timepts, [Y, U], [np.zeros(nstates), P0], + estim, timepts, [Y, U], [np.zeros(sys.nstates), P0], solve_ivp_kwargs={'method': 'RK45', 'max_step': 0.01, 'atol': 1, 'rtol': 1}, params={'correct': False}) diff --git a/doc/optimal.rst b/doc/optimal.rst index 0e9dd3aa5..f5ee5d466 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -132,12 +132,12 @@ most consistent with our model and penalize the noise and disturbances according to how likely the are (based on a some sort of stochastic system model for each). -Given a solution to this fixed horizon, optimal estimation problem, we can -create an estimator for the state over all times by applying repeatedly -applying the optimization problem :eq:`eq_fusion_oep` over a moving -horizon. At each time :math:`k`, we take the measurements for the last -:math:`N` time steps along with the previously estimated state at the start -of the horizon, :math:`x[k-N]` and reapply the optimization in equation +Given a solution to this fixed-horizon optimal estimation problem, we can +create an estimator for the state over all times by repeatedly applying the +optimization problem :eq:`eq_fusion_oep` over a moving horizon. At each +time :math:`k`, we take the measurements for the last :math:`N` time steps +along with the previously estimated state at the start of the horizon, +:math:`x[k-N]` and reapply the optimization in equation :eq:`eq_fusion_oep`. This approach is known as a \define{moving horizon estimator} (MHE). @@ -295,9 +295,9 @@ estimate of the states over the time points can be computed using the xhat, v, w = estim.states, estim.inputs, estim.outputs For discrete time systems, the -:func:`~control.optimal.OptimalEstimationProblem.compute_estimate` method -can be used to generate an input/output system that implements a moving -horizon estimator. +:func:`~control.optimal.OptimalEstimationProblem.create_mhe_iosystem` +method can be used to generate an input/output system that implements a +moving horizon estimator. Several functions are available to help set up standard optimal estimation problems: @@ -406,6 +406,11 @@ yields .. image:: steering-optimal.png + +An example showing the use of the optimal estimation problem and moving +horizon estimation (MHE) is given in the :doc:`mhe-pvtol Jupyter +notebook `. + Optimization Tips ================= From 039b22d29031c17b5a3dc7ae957b78fbd68519e5 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 23 Mar 2023 21:55:40 -0700 Subject: [PATCH 0210/1025] remove pytest --skipslow; use pytest -m "not slow" instead --- control/tests/conftest.py | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/control/tests/conftest.py b/control/tests/conftest.py index bbc1a689c..b63db3e11 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -121,25 +121,6 @@ def mplcleanup(): mpl.pyplot.close("all") -# -# Functionality to skip slow tests using --skipslow -# -# See https://docs.pytest.org/en/latest/example/simple.html -# #control-skipping-of-tests-according-to-command-line-option -# -def pytest_addoption(parser): - parser.addoption( - "--skipslow", action="store_true", default=False, - help="skip slow tests") - - +# Allow pytest.mark.slow to mark slow tests (skip with pytest -m "not slow") def pytest_configure(config): config.addinivalue_line("markers", "slow: mark test as slow to run") - - -def pytest_collection_modifyitems(config, items): - if config.getoption("--skipslow"): - skip_slow = pytest.mark.skip(reason="skipping slow tests") - for item in items: - if "slow" in item.keywords: - item.add_marker(skip_slow) From 562701cfdf610aa3f926503432f14e2aefc5bb75 Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Tue, 21 Feb 2023 12:44:37 +0100 Subject: [PATCH 0211/1025] Enable doctest --- .github/conda-env/doctest-env.yml | 19 +++++++++++++ .github/workflows/doctest.yml | 47 +++++++++++++++++++++++++++++++ doc/Makefile | 7 +++-- doc/conf.py | 3 +- 4 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 .github/conda-env/doctest-env.yml create mode 100644 .github/workflows/doctest.yml diff --git a/.github/conda-env/doctest-env.yml b/.github/conda-env/doctest-env.yml new file mode 100644 index 000000000..f46b239cd --- /dev/null +++ b/.github/conda-env/doctest-env.yml @@ -0,0 +1,19 @@ +name: test-env +dependencies: + - conda-build # for conda index + - pip + - coverage + - coveralls + - pytest + - pytest-cov + - pytest-timeout + - pytest-xvfb + - numpy + - matplotlib + - scipy + - sphinx + - sphinx_rtd_theme + - ipykernel + - nbsphinx + - docutils + - numpydoc diff --git a/.github/workflows/doctest.yml b/.github/workflows/doctest.yml new file mode 100644 index 000000000..62638d104 --- /dev/null +++ b/.github/workflows/doctest.yml @@ -0,0 +1,47 @@ +name: Doctest + +on: [push, pull_request] + +jobs: + doctest-linux: + # doctest needs to run only on + # latest-greatest platform with full options + runs-on: ubuntu-latest + + steps: + - name: Checkout python-control + uses: actions/checkout@v3 + + - name: Setup Conda + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: 3.11 + activate-environment: test-env + environment-file: .github/conda-env/doctest-env.yml + miniforge-version: latest + miniforge-variant: Mambaforge + channels: conda-forge + channel-priority: strict + auto-update-conda: false + auto-activate-base: false + + - name: Install full dependencies + shell: bash -l {0} + run: | + mamba install cvxopt pandas slycot + + - name: Run doctest + shell: bash -l {0} + env: + PYTHON_CONTROL_ARRAY_AND_MATRIX: ${{ matrix.array-and-matrix }} + MPLBACKEND: ${{ matrix.mplbackend }} + working-directory: doc + run: | + make html + make doctest + + - name: Archive results + uses: actions/upload-artifact@v3 + with: + name: doctest-output + path: doc/_build/doctest/output.txt diff --git a/doc/Makefile b/doc/Makefile index b2f9eaeed..a38e94b17 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -15,10 +15,11 @@ help: .PHONY: help Makefile # Rules to create figures -FIGS = classes.pdf -classes.pdf: classes.fig; fig2dev -Lpdf $< $@ +FIGS = classes.png +classes.png: classes.fig + fig2dev -Lpng $< $@ # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -html pdf clean: Makefile $(FIGS) +html pdf clean doctest: Makefile $(FIGS) @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/conf.py b/doc/conf.py index e2e420104..9e78a47b7 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -56,7 +56,8 @@ extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.napoleon', 'sphinx.ext.intersphinx', 'sphinx.ext.imgmath', - 'sphinx.ext.autosummary', 'nbsphinx', 'numpydoc', 'sphinx.ext.linkcode' + 'sphinx.ext.autosummary', 'nbsphinx', 'numpydoc', + 'sphinx.ext.linkcode', 'sphinx.ext.doctest' ] # scan documents for autosummary directives and generate stub pages for each. From c913c8f02bf75ed87108bba221f01e70aade446e Mon Sep 17 00:00:00 2001 From: Henk van der Laak Date: Tue, 21 Feb 2023 13:08:43 +0100 Subject: [PATCH 0212/1025] Docs update --- control/bdalg.py | 76 +++++++++++++++++++---- control/bench/time_freqresp.py | 20 +++--- control/canonical.py | 90 +++++++++++++++++++++++++++ control/config.py | 71 +++++++++++++++++++++- control/ctrlutil.py | 56 +++++++++++++++-- control/delay.py | 14 +++++ control/descfcn.py | 72 ++++++++++++++++++++-- control/dtime.py | 22 +++++-- control/exception.py | 28 +++++++++ control/frdata.py | 28 ++++++++- control/freqplot.py | 49 +++++++++------ control/grid.py | 2 +- control/iosys.py | 73 +++++++++++++++------- control/lti.py | 31 +++++++--- control/margins.py | 14 +++-- control/matlab/timeresp.py | 31 ++++++++-- control/matlab/wrappers.py | 22 ++++--- control/modelsimp.py | 33 +++++++--- control/robust.py | 107 ++++++++++++++++++++++++--------- control/sisotool.py | 6 +- control/statefbk.py | 39 ++++++++---- control/statesp.py | 21 +++---- control/stochsys.py | 8 +-- control/timeresp.py | 24 ++++++-- control/xferfcn.py | 34 ++++++++--- doc/classes.png | Bin 0 -> 9026 bytes doc/classes.rst | 2 +- doc/control.rst | 5 ++ 28 files changed, 789 insertions(+), 189 deletions(-) create mode 100644 doc/classes.png diff --git a/control/bdalg.py b/control/bdalg.py index d1baaa410..f93e7d89c 100644 --- a/control/bdalg.py +++ b/control/bdalg.py @@ -99,9 +99,19 @@ def series(sys1, *sysn): Examples -------- - >>> sys3 = series(sys1, sys2) # Same as sys3 = sys2 * sys1 + >>> from control import rss, series - >>> sys5 = series(sys1, sys2, sys3, sys4) # More systems + >>> G1 = rss(3) + >>> G2 = rss(4) + >>> G = series(G1, G2) # Same as sys3 = sys2 * sys1 + >>> G.ninputs, G.noutputs, G.nstates + (1, 1, 7) + + >>> G1 = rss(2, inputs=2, outputs=3) + >>> G2 = rss(3, inputs=3, outputs=1) + >>> G = series(G1, G2) # Same as sys3 = sys2 * sys1 + >>> G.ninputs, G.noutputs, G.nstates + (2, 1, 5) """ from functools import reduce @@ -146,9 +156,19 @@ def parallel(sys1, *sysn): Examples -------- - >>> sys3 = parallel(sys1, sys2) # Same as sys3 = sys1 + sys2 + >>> from control import parallel, rss + + >>> G1 = rss(3) + >>> G2 = rss(4) + >>> G = parallel(G1, G2) # Same as sys3 = sys1 + sys2 + >>> G.ninputs, G.noutputs, G.nstates + (1, 1, 7) - >>> sys5 = parallel(sys1, sys2, sys3, sys4) # More systems + >>> G1 = rss(3, inputs=3, outputs=4) + >>> G2 = rss(4, inputs=3, outputs=4) + >>> G = parallel(G1, G2) # Add another system + >>> G.ninputs, G.noutputs, G.nstates + (3, 4, 7) """ from functools import reduce @@ -174,7 +194,15 @@ def negate(sys): Examples -------- - >>> sys2 = negate(sys1) # Same as sys2 = -sys1. + >>> from control import negate, tf + + >>> G = tf([2],[1, 1]) + >>> G.dcgain() > 0 + True + + >>> Gn = negate(G) # Same as sys2 = -sys1. + >>> Gn.dcgain() < 0 + True """ return -sys @@ -222,6 +250,16 @@ def feedback(sys1, sys2=1, sign=-1): the corresponding feedback function is used. If `sys1` and `sys2` are both scalars, then TransferFunction.feedback is used. + Examples + -------- + >>> from control import feedback, rss + + >>> G = rss(3, inputs=2, outputs=5) + >>> C = rss(4, inputs=5, outputs=2) + >>> T = feedback(G, C, sign=1) + >>> T.ninputs, T.noutputs, T.nstates + (2, 5, 7) + """ # Allow anything with a feedback function to call that function try: @@ -278,9 +316,19 @@ def append(*sys): Examples -------- - >>> sys1 = ss([[1., -2], [3., -4]], [[5.], [7]], [[6., 8]], [[9.]]) - >>> sys2 = ss([[-1.]], [[1.]], [[1.]], [[0.]]) - >>> sys = append(sys1, sys2) + >>> from control import append, rss + >>> G1 = rss(3) + + >>> G2 = rss(4) + >>> G = append(G1, G2) + >>> G.ninputs, G.noutputs, G.nstates + (2, 2, 7) + + >>> G1 = rss(3, inputs=2, outputs=4) + >>> G2 = rss(4, inputs=1, outputs=4) + >>> G = append(G1, G2) + >>> G.ninputs, G.noutputs, G.nstates + (3, 8, 7) """ s1 = ss._convert_to_statespace(sys[0]) @@ -323,11 +371,13 @@ def connect(sys, Q, inputv, outputv): Examples -------- - >>> sys1 = ss([[1., -2], [3., -4]], [[5.], [7]], [[6, 8]], [[9.]]) - >>> sys2 = ss([[-1.]], [[1.]], [[1.]], [[0.]]) - >>> sys = append(sys1, sys2) - >>> Q = [[1, 2], [2, -1]] # negative feedback interconnection - >>> sysc = connect(sys, Q, [2], [1, 2]) + >>> from control import append, connect, rss + + >>> G = rss(7, inputs=2, outputs=2) + >>> K = [[1, 2], [2, -1]] # negative feedback interconnection + >>> T = connect(G, K, [2], [1, 2]) + >>> T.ninputs, T.noutputs, T.nstates + (1, 2, 7) Notes ----- diff --git a/control/bench/time_freqresp.py b/control/bench/time_freqresp.py index 3ae837082..4da2bcdc4 100644 --- a/control/bench/time_freqresp.py +++ b/control/bench/time_freqresp.py @@ -3,12 +3,14 @@ from numpy import logspace from timeit import timeit -nstates = 10 -sys = rss(nstates) -sys_tf = tf(sys) -w = logspace(-1,1,50) -ntimes = 1000 -time_ss = timeit("sys.freqquency_response(w)", setup="from __main__ import sys, w", number=ntimes) -time_tf = timeit("sys_tf.frequency_response(w)", setup="from __main__ import sys_tf, w", number=ntimes) -print("State-space model on %d states: %f" % (nstates, time_ss)) -print("Transfer-function model on %d states: %f" % (nstates, time_tf)) + +if __name__ == '__main__': + nstates = 10 + sys = rss(nstates) + sys_tf = tf(sys) + w = logspace(-1,1,50) + ntimes = 1000 + time_ss = timeit("sys.freqquency_response(w)", setup="from __main__ import sys, w", number=ntimes) + time_tf = timeit("sys_tf.frequency_response(w)", setup="from __main__ import sys_tf, w", number=ntimes) + print("State-space model on %d states: %f" % (nstates, time_ss)) + print("Transfer-function model on %d states: %f" % (nstates, time_tf)) diff --git a/control/canonical.py b/control/canonical.py index e714e5b8d..f8aa0ff2e 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -36,6 +36,28 @@ def canonical_form(xsys, form='reachable'): System in desired canonical form, with state 'z' T : (M, M) real ndarray Coordinate transformation matrix, z = T * x + + Examples + -------- + >>> from control import canonical_form, tf, tf2ss + + >>> G = tf([1],[1, 3, 2]) + >>> Gs = tf2ss(G) + + >>> Gc, T = canonical_form(Gs) # default reachable + >>> Gc.B # doctest: +SKIP + matrix([[1.], + [0.]]) + + >>> Gc, T = canonical_form(Gs, 'observable') + >>> Gc.C # doctest: +SKIP + matrix([[1., 0.]]) + + >>> Gc, T = canonical_form(Gs, 'modal') + >>> Gc.A # doctest: +SKIP + matrix([[-2., 0.], + [ 0., -1.]]) + """ # Call the appropriate tranformation function @@ -65,6 +87,19 @@ def reachable_form(xsys): System in reachable canonical form, with state `z` T : (M, M) real ndarray Coordinate transformation: z = T * x + + Examples + -------- + >>> from control import reachable_form, tf, tf2ss + + >>> G = tf([1],[1, 3, 2]) + >>> Gs = tf2ss(G) + + >>> Gc, T = reachable_form(Gs) # default reachable + >>> Gc.B # doctest: +SKIP + matrix([[1.], + [0.]]) + """ # Check to make sure we have a SISO system if not issiso(xsys): @@ -119,6 +154,18 @@ def observable_form(xsys): System in observable canonical form, with state `z` T : (M, M) real ndarray Coordinate transformation: z = T * x + + Examples + -------- + >>> from control import observable_form, tf, tf2ss + + >>> G = tf([1],[1, 3, 2]) + >>> Gs = tf2ss(G) + + >>> Gc, T = observable_form(Gs) + >>> Gc.C # doctest: +SKIP + matrix([[1., 0.]]) + """ # Check to make sure we have a SISO system if not issiso(xsys): @@ -177,6 +224,24 @@ def similarity_transform(xsys, T, timescale=1, inverse=False): zsys : StateSpace object System in transformed coordinates, with state 'z' + + Examples + -------- + >>> import numpy as np + >>> from control import similarity_transform, tf, tf2ss + + >>> G = tf([1],[1, 3, 2]) + >>> Gs = tf2ss(G) + >>> Gs.A # doctest: +SKIP + matrix([[-3., -2.], + [ 1., 0.]]) + + >>> T = np.array([[0,1],[1,0]]) + >>> Gt = similarity_transform(Gs, T) + >>> Gt.A # doctest: +SKIP + matrix([[ 0., 1.], + [-2., -3.]]) + """ # Create a new system, starting with a copy of the old one zsys = StateSpace(xsys) @@ -370,6 +435,18 @@ def bdschur(a, condmax=None, sort=None): If `sort` is 'discrete', the blocks are sorted as for 'continuous', but applied to log of eigenvalues (i.e., continuous-equivalent eigenvalues). + + Examples + -------- + >>> from control import bdschur, tf, tf2ss + + >>> G = tf([1],[1, 3, 2]) + >>> Gs = tf2ss(G) + >>> amodal, tmodal, blksizes = bdschur(Gs.A) + >>> amodal #doctest: +SKIP + array([[-2., 0.], + [ 0., -1.]]) + """ if condmax is None: condmax = np.finfo(np.float64).eps ** -0.5 @@ -436,6 +513,19 @@ def modal_form(xsys, condmax=None, sort=False): System in modal canonical form, with state `z` T : (M, M) ndarray Coordinate transformation: z = T * x + + Examples + -------- + >>> from control import modal_form, tf, tf2ss + + >>> G = tf([1],[1, 3, 2]) + >>> Gs = tf2ss((G)) + + >>> Gc, T = modal_form(Gs) # default reachable + >>> Gc.A # doctest: +SKIP + matrix([[-2., 0.], + [ 0., -1.]]) + """ if sort: diff --git a/control/config.py b/control/config.py index 37763a6b8..4bb7648a9 100644 --- a/control/config.py +++ b/control/config.py @@ -65,9 +65,22 @@ def set_defaults(module, **keywords): """Set default values of parameters for a module. The set_defaults() function can be used to modify multiple parameter - values for a module at the same time, using keyword arguments: + values for a module at the same time, using keyword arguments. - control.set_defaults('module', param1=val, param2=val) + Examples + -------- + >>> from control import defaults, reset_defaults, set_defaults + + >>> defaults['freqplot.number_of_samples'] + 1000 + >>> set_defaults('freqplot', number_of_samples=100) + >>> defaults['freqplot.number_of_samples'] + 100 + + >>> # do some customized freqplotting + >>> reset_defaults() + >>> defaults['freqplot.number_of_samples'] + 1000 """ if not isinstance(module, str): @@ -80,7 +93,24 @@ def set_defaults(module, **keywords): def reset_defaults(): - """Reset configuration values to their default (initial) values.""" + """Reset configuration values to their default (initial) values. + + Examples + -------- + >>> from control import defaults, reset_defaults, set_defaults + + >>> defaults['freqplot.number_of_samples'] + 1000 + >>> set_defaults('freqplot', number_of_samples=100) + >>> defaults['freqplot.number_of_samples'] + 100 + + >>> # do some customized freqplotting + >>> reset_defaults() + >>> defaults['freqplot.number_of_samples'] + 1000 + + """ # System level defaults defaults.update(_control_defaults) @@ -181,6 +211,14 @@ def use_matlab_defaults(): rad/sec, with grids * State space class and functions use Numpy matrix objects + Examples + -------- + >>> from control import use_matlab_defaults, reset_defaults + + >>> use_matlab_defaults() + >>> # do some matlab style plotting + >>> reset_defaults() + """ set_defaults('freqplot', dB=True, deg=True, Hz=False, grid=True) set_defaults('statesp', use_numpy_matrix=True) @@ -195,6 +233,14 @@ def use_fbs_defaults(): frequency in rad/sec, no grid * Nyquist plots use dashed lines for mirror image of Nyquist curve + Examples + -------- + >>> from control import use_fbs_defaults, reset_defaults + + >>> use_fbs_defaults() + >>> # do some FBS style plotting + >>> reset_defaults() + """ set_defaults('freqplot', dB=False, deg=True, Hz=False, grid=False) set_defaults('nyquist', mirror_style='--') @@ -222,6 +268,15 @@ class and functions. If flat is `False`, then matrices are Prior to release 0.9.x, the default type for 2D arrays is the Numpy `matrix` class. Starting in release 0.9.0, the default type for state space operations is a 2D array. + + Examples + -------- + >>> from control import use_numpy_matrix, reset_defaults + + >>> use_numpy_matrix(True, False) + >>> # do some legacy calculations using np.matrix + >>> reset_defaults() + """ if flag and warn: warnings.warn("Return type numpy.matrix is deprecated.", @@ -236,6 +291,16 @@ def use_legacy_defaults(version): ---------- version : string Version number of the defaults desired. Ranges from '0.1' to '0.8.4'. + + Examples + -------- + >>> from control import use_legacy_defaults, reset_defaults + + >>> use_legacy_defaults("0.9.0") + (0, 9, 0) + >>> # do some legacy style plotting + >>> reset_defaults() + """ import re (major, minor, patch) = (None, None, None) # default values diff --git a/control/ctrlutil.py b/control/ctrlutil.py index 35035c7e9..ddd75812b 100644 --- a/control/ctrlutil.py +++ b/control/ctrlutil.py @@ -66,9 +66,20 @@ def unwrap(angle, period=2*math.pi): Examples -------- >>> import numpy as np - >>> theta = [5.74, 5.97, 6.19, 0.13, 0.35, 0.57] - >>> unwrap(theta, period=2 * np.pi) - [5.74, 5.97, 6.19, 6.413185307179586, 6.633185307179586, 6.8531853071795865] + >>> from control import unwrap + >>> from pprint import pprint + + >>> # Already continuous + >>> theta1 = np.array([1.0, 1.5, 2.0, 2.5, 3.0]) * np.pi + >>> theta2 = unwrap(theta1) + >>> theta2/np.pi # doctest: +SKIP + array([1. , 1.5, 2. , 2.5, 3. ]) + + >>> # Wrapped, discontinuous + >>> theta1 = np.array([1.0, 1.5, 0.0, 0.5, 1.0]) * np.pi + >>> theta2 = unwrap(theta1) + >>> theta2/np.pi # doctest: +SKIP + array([1. , 1.5, 2. , 2.5, 3. ]) """ dangle = np.diff(angle) @@ -78,7 +89,22 @@ def unwrap(angle, period=2*math.pi): return angle def issys(obj): - """Return True if an object is a system, otherwise False""" + """Return True if an object is a Linear Time Invariant (LTI) system, + otherwise False + + Examples + -------- + >>> from control import issys, tf, InputOutputSystem, LinearIOSystem + + >>> G = tf([1],[1, 1]) + >>> issys(G) + True + + >>> K = InputOutputSystem() # Not necessarily LTI! + >>> issys(K) + False + + """ return isinstance(obj, lti.LTI) def db2mag(db): @@ -98,6 +124,17 @@ def db2mag(db): mag : float or ndarray corresponding magnitudes + Examples + -------- + >>> import numpy as np + >>> from control import db2mag + + >>> db2mag(-40.0) # doctest: +SKIP + 0.01 + + >>> db2mag(np.array([0, -20])) # doctest: +SKIP + array([1. , 0.1]) + """ return 10. ** (db / 20.) @@ -118,5 +155,16 @@ def mag2db(mag): db : float or ndarray corresponding values in decibels + Examples + -------- + >>> import numpy as np + >>> from control import mag2db + + >>> mag2db(10.0) # doctest: +SKIP + 20.0 + + >>> mag2db(np.array([1, 0.01])) # doctest: +SKIP + array([ 0., -40.]) + """ return 20. * np.log10(mag) diff --git a/control/delay.py b/control/delay.py index b5867ada8..42110c1ff 100644 --- a/control/delay.py +++ b/control/delay.py @@ -74,6 +74,20 @@ def pade(T, n=1, numdeg=None): Ed. pp. 572-574 2. M. Vajta, "Some remarks on Padé-approximations", 3rd TEMPUS-INTCOM Symposium + + Examples + -------- + >>> from control import pade + + >>> delay = 1 + >>> num, den = pade(delay, 5) + >>> len(num), len(den) + (6, 6) + + >>> num, den = pade(delay, 5, -2) + >>> len(num), len(den) + (4, 6) + """ if numdeg is None: numdeg = n diff --git a/control/descfcn.py b/control/descfcn.py index 41d273f38..dfd2c2d4b 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -120,6 +120,17 @@ def describing_function( TypeError If A[i] < 0 or if A[i] = 0 and the function F(0) is non-zero. + Examples + -------- + >>> import numpy as np + >>> from control import describing_function + + >>> F = lambda x: np.exp(-x) # Basic diode description + >>> A = np.logspace(-1, 1, 20) # Amplitudes from 0.1 to 10.0 + >>> df_values = describing_function(F, A) + >>> len(df_values) + 20 + """ # If there is an analytical solution, trying using that first if try_method and hasattr(F, 'describing_function'): @@ -238,11 +249,15 @@ def describing_function_plot( Examples -------- - >>> H_simple = ct.tf([8], [1, 2, 2, 1]) - >>> F_saturation = ct.descfcn.saturation_nonlinearity(1) + >>> import numpy as np + >>> from control import describing_function_plot, saturation_nonlinearity, tf + + >>> H_simple = tf([8], [1, 2, 2, 1]) + >>> F_saturation = saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> ct.describing_function_plot(H_simple, F_saturation, amp) - [(3.344008947853124, 1.414213099755523)] + >>> points = describing_function_plot(H_simple, F_saturation, amp) + >>> len(points) + 1 """ # Decide whether to turn on warnings or not @@ -354,6 +369,19 @@ class saturation_nonlinearity(DescribingFunctionNonlinearity): functions will not have zero bias and hence care must be taken in using the nonlinearity for analysis. + Examples + -------- + >>> from control import saturation_nonlinearity + + >>> nl = saturation_nonlinearity(5) + >>> f = lambda x: round(nl(x)) + >>> f(1) + 1 + >>> f(10) + 5 + >>> f(-10) + -5 + """ def __init__(self, ub=1, lb=None): # Create the describing function nonlinearity object @@ -407,6 +435,23 @@ class relay_hysteresis_nonlinearity(DescribingFunctionNonlinearity): `-c <= x <= c`, the value depends on the branch of the hysteresis loop (as illustrated in Figure 10.20 of FBS2e). + Examples + -------- + >>> from control import relay_hysteresis_nonlinearity + + >>> nl = relay_hysteresis_nonlinearity(1, 2) + >>> f = lambda x: round(nl(x)) + >>> f(0) + -1 + >>> f(1) # not enough for switching on + -1 + >>> f(5) + 1 + >>> f(-1) # not enough for switching off + 1 + >>> f(-5) + -1 + """ def __init__(self, b, c): # Create the describing function nonlinearity object @@ -462,6 +507,25 @@ class friction_backlash_nonlinearity(DescribingFunctionNonlinearity): center, the output is unchanged. Otherwise, the output is given by the input shifted by `b/2`. + Examples + -------- + >>> from control import friction_backlash_nonlinearity + + >>> nl = friction_backlash_nonlinearity(2) # backlash of +/- 1 + >>> f = lambda x: round(nl(x)) + >>> f(0) + 0 + >>> f(1) # not enough to overcome backlash + 0 + >>> f(2) + 1 + >>> f(1) + 1 + >>> f(0) # not enough to overcome backlash + 1 + >>> f(-1) + 0 + """ def __init__(self, b): diff --git a/control/dtime.py b/control/dtime.py index 724eafb76..164cc6874 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -109,8 +109,15 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> sysc = TransferFunction([1], [1, 2, 1]) - >>> sysd = sample_system(sysc, 1, method='bilinear') + >>> from control import sample_system, tf + + >>> Gc = tf([1], [1, 2, 1]) + >>> Gc.isdtime() + False + >>> Gd = sample_system(Gc, 1, method='bilinear') + >>> Gd.isdtime() + True + """ # Make sure we have a continuous time system @@ -150,8 +157,15 @@ def c2d(sysc, Ts, method='zoh', prewarp_frequency=None): Examples -------- - >>> sysc = TransferFunction([1], [1, 2, 1]) - >>> sysd = sample_system(sysc, 1, method='bilinear') + >>> from control import sample_system, tf + + >>> Gc = tf([1], [1, 2, 1]) + >>> Gc.isdtime() + False + >>> Gd = sample_system(Gc, 1, method='bilinear') + >>> Gd.isdtime() + True + """ # Call the sample_system() function to do the work diff --git a/control/exception.py b/control/exception.py index 575c78c0a..338de06f6 100644 --- a/control/exception.py +++ b/control/exception.py @@ -63,6 +63,15 @@ class ControlNotImplemented(NotImplementedError): # Utility function to see if slycot is installed slycot_installed = None def slycot_check(): + """Return True if slycot is installed, otherwise False. + + Examples + -------- + >>> from control import slycot_check + >>> slycot_check() + True + + """ global slycot_installed if slycot_installed is None: try: @@ -76,6 +85,16 @@ def slycot_check(): # Utility function to see if pandas is installed pandas_installed = None def pandas_check(): + """Return True if pandas is installed, otherwise False. + + Examples + -------- + >>> from control import pandas_check + >>> pandas_check() + True + + """ + global pandas_installed if pandas_installed is None: try: @@ -88,6 +107,15 @@ def pandas_check(): # Utility function to see if cvxopt is installed cvxopt_installed = None def cvxopt_check(): + """Return True if cvxopt is installed, otherwise False. + + Examples + -------- + >>> from control import cvxopt_check + >>> cvxopt_check() + True + + """ global cvxopt_installed if cvxopt_installed is None: try: diff --git a/control/frdata.py b/control/frdata.py index c78607a07..22f3b121e 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -102,7 +102,7 @@ class FrequencyResponseData(LTI): second dimension corresponding to the input index, and the 3rd dimension corresponding to the frequency points in omega. For example, - >>> frdata[2,5,:] = numpy.array([1., 0.8-0.2j, 0.2-0.8j]) + >>> frdata[2,5,:] = numpy.array([1., 0.8-0.2j, 0.2-0.8j]) # doctest: +SKIP means that the frequency response from the 6th input to the 3rd output at the frequencies defined in omega is set to the array above, i.e. the rows @@ -672,9 +672,18 @@ def _convert_to_FRD(sys, omega, inputs=1, outputs=1): a frequency response data at the specified omega. If sys is a scalar, then the number of inputs and outputs can be specified manually, as in: ++ + >>> import numpy as np + >>> from control.frdata import _convert_to_FRD + >>> omega = np.logspace(-1, 1) >>> frd = _convert_to_FRD(3., omega) # Assumes inputs = outputs = 1 - >>> frd = _convert_to_FRD(1., omegs, inputs=3, outputs=2) + >>> frd.ninputs, frd.noutputs + (1, 1) + + >>> frd = _convert_to_FRD(1., omega, inputs=3, outputs=2) + >>> frd.ninputs, frd.noutputs + (3, 2) In the latter example, sys's matrix transfer function is [[1., 1., 1.] [1., 1., 1.]]. @@ -755,5 +764,20 @@ def frd(*args): See Also -------- FRD, ss, tf + + Examples + -------- + >>> from control import frd, tf + + >>> # Create from measurements + >>> response = [1.0, 1.0, 0.5] + >>> freqs = [1, 10, 100] + >>> F = frd(response, freqs) + + >>> G = tf([1], [1, 1]) + >>> freqs = [1, 10, 100] + >>> F = frd(G, freqs) + + """ return FRD(*args) diff --git a/control/freqplot.py b/control/freqplot.py index a749c3f6d..56b946aa3 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -174,8 +174,10 @@ def bode_plot(syslist, omega=None, Examples -------- - >>> sys = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> mag, phase, omega = bode(sys) + >>> from control import bode_plot, ss + + >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> Gmag, Gphase, Gomega = bode_plot(G) """ # Make a copy of the kwargs dictionary since we will modify it @@ -692,8 +694,11 @@ def nyquist_plot( Examples -------- - >>> sys = ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) - >>> count = nyquist_plot(sys) + >>> from control import nyquist_plot, zpk + + >>> G = zpk([],[-1,-2,-3], gain=100) + >>> nyquist_plot(G) + 2 """ # Check to see if legacy 'Plot' keyword was used @@ -1258,6 +1263,14 @@ def gangof4_plot(P, C, omega=None, **kwargs): Returns ------- None + + Examples + -------- + >>> from control import gangof4_plot, tf + >>> P = tf([1],[1, 1]) + >>> C = tf([2],[1]) + >>> gangof4_plot(P, C) + """ if not P.issiso() or not C.issiso(): # TODO: Add MIMO go4 plots. @@ -1402,14 +1415,14 @@ def singular_values_plot(syslist, omega=None, Examples -------- >>> import numpy as np + >>> from control import tf, singular_values_plot + + >>> omegas = np.logspace(-4, 1, 1000) >>> den = [75, 1] - >>> sys = TransferFunction( - [[[87.8], [-86.4]], [[108.2], [-109.6]]], [[den, den], [den, den]]) - >>> omega = np.logspace(-4, 1, 1000) - >>> sigma, omega = singular_values_plot(sys, plot=True) - >>> singular_values_plot(sys, 0.0, plot=False) - (array([[197.20868123], - [ 1.39141948]]), array([0.])) + >>> G = tf([[[87.8], [-86.4]], [[108.2], [-109.6]]], [[den, den], [den, den]]) + >>> sigmas, omegas = singular_values_plot(G, omega=omegas, plot=False) + + >>> sigmas, omegas = singular_values_plot(G, 0.0, plot=False) """ @@ -1625,9 +1638,12 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, Examples -------- - >>> from matlab import ss - >>> sys = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> omega = _default_frequency_range(sys) + >>> from control import ss + + >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> omega = _default_frequency_range(G) + >>> omega.min(), omega.max() + (0.1, 100.0) """ # Set default values for options @@ -1755,11 +1771,6 @@ def gen_prefix(pow1000): 'y'][8 - pow1000] # yocto (10^-24) -def find_nearest_omega(omega_list, omega): - omega_list = np.asarray(omega_list) - return omega_list[(np.abs(omega_list - omega)).argmin()] - - # Function aliases bode = bode_plot nyquist = nyquist_plot diff --git a/control/grid.py b/control/grid.py index 07ca4a59d..785ec2743 100644 --- a/control/grid.py +++ b/control/grid.py @@ -156,7 +156,7 @@ def nogrid(): def zgrid(zetas=None, wns=None, ax=None): - '''Draws discrete damping and frequency grid''' + """Draws discrete damping and frequency grid""" fig = plt.gcf() if ax is None: diff --git a/control/iosys.py b/control/iosys.py index 6b0f6cfaa..410fa5c62 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2371,10 +2371,14 @@ def ss(*args, **kwargs): Examples -------- - >>> # Create a Linear I/O system object from from for matrices - >>> sys1 = ss([[1, -2], [3 -4]], [[5], [7]], [[6, 8]], [[9]]) + Create a Linear I/O system object from matrices. + + >>> from control import ss, tf + + >>> G = ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) + + Convert a TransferFunction to a StateSpace object. - >>> # Convert a TransferFunction to a StateSpace object. >>> sys_tf = tf([2.], [1., 3]) >>> sys2 = ss(sys_tf) @@ -2495,6 +2499,16 @@ def drss(*args, **kwargs): function calls :func:`rss` using either the `dt` keyword provided by the user or `dt=True` if not specified. + Examples + -------- + >>> from control import drss + >>> G = drss(states=4, outputs=2, inputs=1) + >>> G.ninputs, G.noutputs, G.nstates + (1, 2, 4) + >>> G.isdtime() + True + + """ # Make sure the timebase makes sense if 'dt' in kwargs: @@ -2583,12 +2597,16 @@ def tf2io(*args, **kwargs): Examples -------- + >>> from control import tf2ss, tf + >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] >>> sys1 = tf2ss(num, den) >>> sys_tf = tf(num, den) - >>> sys2 = tf2ss(sys_tf) + >>> G = tf2ss(sys_tf) + >>> G.ninputs, G.noutputs, G.nstates + (2, 2, 8) """ # Convert the system to a state space system @@ -2765,26 +2783,31 @@ def interconnect( Examples -------- - >>> P = control.LinearIOSystem( - >>> control.rss(2, 2, 2, strictly_proper=True), name='P') - >>> C = control.LinearIOSystem(control.rss(2, 2, 2), name='C') - >>> T = control.interconnect( - >>> [P, C], - >>> connections = [ - >>> ['P.u[0]', 'C.y[0]'], ['P.u[1]', 'C.y[1]'], - >>> ['C.u[0]', '-P.y[0]'], ['C.u[1]', '-P.y[1]']], - >>> inplist = ['C.u[0]', 'C.u[1]'], - >>> outlist = ['P.y[0]', 'P.y[1]'], - >>> ) + >>> from control import LinearIOSystem, interconnect, rss, summing_junction, tf + + >>> P = LinearIOSystem( + ... rss(2, 2, 2, strictly_proper=True), + ... name='P') + >>> C = LinearIOSystem( + ... rss(2, 2, 2), + ... name='C') + >>> T = interconnect( + ... [P, C], + ... connections = [ + ... ['P.u[0]', 'C.y[0]'], ['P.u[1]', 'C.y[1]'], + ... ['C.u[0]', '-P.y[0]'], ['C.u[1]', '-P.y[1]']], + ... inplist = ['C.u[0]', 'C.u[1]'], + ... outlist = ['P.y[0]', 'P.y[1]'], + ... ) For a SISO system, this example can be simplified by using the :func:`~control.summing_block` function and the ability to automatically interconnect signals with the same names: - >>> P = control.tf(1, [1, 0], inputs='u', outputs='y') - >>> C = control.tf(10, [1, 1], inputs='e', outputs='u') - >>> sumblk = control.summing_junction(inputs=['r', '-y'], output='e') - >>> T = control.interconnect([P, C, sumblk], inputs='r', outputs='y') + >>> P = tf(1, [1, 0], inputs='u', outputs='y') + >>> C = tf(10, [1, 1], inputs='e', outputs='u') + >>> sumblk = summing_junction(inputs=['r', '-y'], output='e') + >>> T = interconnect([P, C, sumblk], inputs='r', outputs='y') Notes ----- @@ -2986,10 +3009,14 @@ def summing_junction( Examples -------- - >>> P = control.tf2io(ct.tf(1, [1, 0]), inputs='u', outputs='y') - >>> C = control.tf2io(ct.tf(10, [1, 1]), inputs='e', outputs='u') - >>> sumblk = control.summing_junction(inputs=['r', '-y'], output='e') - >>> T = control.interconnect((P, C, sumblk), inputs='r', outputs='y') + >>> from control import tf2io, summing_junction, interconnect, tf + + >>> P = tf2io(tf(1, [1, 0]), inputs='u', outputs='y') + >>> C = tf2io(tf(10, [1, 1]), inputs='e', outputs='u') + >>> sumblk = summing_junction(inputs=['r', '-y'], output='e') + >>> T = interconnect((P, C, sumblk), inputs='r', outputs='y') + >>> T.ninputs, T.noutputs, T.nstates + (1, 1, 2) """ # Utility function to parse input and output signal lists diff --git a/control/lti.py b/control/lti.py index 1bc08229d..acbf3c8c9 100644 --- a/control/lti.py +++ b/control/lti.py @@ -324,6 +324,14 @@ def damp(sys, doprint=True): wn = abs(s) Z = -real(s)/wn. + Examples + -------- + >>> from control import damp, tf + >>> G = tf([1],[1, 4]) + >>> wn, damping, poles = damp(G) # doctest: +SKIP + _____Eigenvalue______ Damping___ Frequency_ + -4 1 4 + """ wn, damping, poles = sys.damp() if doprint: @@ -386,10 +394,10 @@ def evalfr(sys, x, squeeze=None): Examples -------- - >>> sys = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> evalfr(sys, 1j) - array([[ 44.8-21.4j]]) - >>> # This is the transfer function matrix evaluated at s = i. + >>> from control import ss, evalfr + + >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> fresp = evalfr(G, 1j) # evaluate at s = 1j .. todo:: Add example with MIMO system @@ -449,12 +457,10 @@ def frequency_response(sys, omega, squeeze=None): Examples -------- - >>> sys = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> mag, phase, omega = freqresp(sys, [0.1, 1., 10.]) - >>> mag - array([[[ 58.8576682 , 49.64876635, 13.40825927]]]) - >>> phase - array([[[-0.05408304, -0.44563154, -0.66837155]]]) + >>> from control import ss, freqresp + + >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> mag, phase, omega = freqresp(G, [0.1, 1., 10.]) .. todo:: Add example with MIMO system @@ -488,6 +494,11 @@ def dcgain(sys): the origin, (nan + nanj) if there is a pole/zero cancellation at the origin. + >>> from control import dcgain, tf + >>> G = tf([1], [1, 2]) + >>> dcgain(G) # doctest: +SKIP + 0.5 + """ return sys.dcgain() diff --git a/control/margins.py b/control/margins.py index 662634086..955dfd278 100644 --- a/control/margins.py +++ b/control/margins.py @@ -476,9 +476,11 @@ def phase_crossover_frequencies(sys): Examples -------- - >>> tf = TransferFunction([1], [1, 2, 3, 4]) - >>> phase_crossover_frequencies(tf) - (array([ 1.73205081, 0. ]), array([-0.5 , 0.25])) + >>> from control import phase_crossover_frequencies, tf + + >>> G = tf([1], [1, 2, 3, 4]) + >>> x_omega, x_gain = phase_crossover_frequencies(G) + """ # Convert to a transfer function tf = xferfcn._convert_to_transfer_function(sys) @@ -537,8 +539,10 @@ def margin(*args): Examples -------- - >>> sys = tf(1, [1, 2, 1, 0]) - >>> gm, pm, wcg, wcp = margin(sys) + >>> from control import margin, tf + + >>> G = tf(1, [1, 2, 1, 0]) + >>> gm, pm, wcg, wcp = margin(G) """ if len(args) == 1: diff --git a/control/matlab/timeresp.py b/control/matlab/timeresp.py index 58b5e589d..cf57952f1 100644 --- a/control/matlab/timeresp.py +++ b/control/matlab/timeresp.py @@ -46,7 +46,11 @@ def step(sys, T=None, X0=0., input=0, output=None, return_x=False): Examples -------- - >>> yout, T = step(sys, T, X0) + >>> from control.matlab import step, rss + + >>> G = rss(4) + >>> yout, T = step(G) + ''' from ..timeresp import step_response @@ -115,7 +119,11 @@ def stepinfo(sysdata, T=None, yfinal=None, SettlingTimeThreshold=0.02, Examples -------- - >>> S = stepinfo(sys, T) + >>> from control.matlab import stepinfo, rss + + >>> G = rss(4) + >>> S = stepinfo(G) + """ from ..timeresp import step_info @@ -166,7 +174,11 @@ def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): Examples -------- - >>> yout, T = impulse(sys, T) + >>> from control.matlab import rss, impulse + + >>> G = rss() + >>> yout, T = impulse(G) + ''' from ..timeresp import impulse_response @@ -214,7 +226,10 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): Examples -------- - >>> yout, T = initial(sys, T, X0) + >>> from control.matlab import initial, rss + + >>> G = rss(4) + >>> yout, T = initial(G) ''' from ..timeresp import initial_response @@ -261,7 +276,13 @@ def lsim(sys, U=0., T=None, X0=0.): Examples -------- - >>> yout, T, xout = lsim(sys, U, T, X0) + >>> import numpy as np + >>> from control.matlab import rss, lsim + + >>> G = rss(4) + >>> T = np.linspace(0,10) + >>> yout, T, xout = lsim(G, T=T) + ''' from ..timeresp import forced_response diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 22ec95f39..b17318edf 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -26,11 +26,13 @@ def bode(*args, **kwargs): a list of systems can be entered, or several systems can be specified (i.e. several parameters). The sys arguments may also be interspersed with format strings. A frequency argument (array_like) - may also be added, some examples: - * >>> bode(sys, w) # one system, freq vector - * >>> bode(sys1, sys2, ..., sysN) # several systems - * >>> bode(sys1, sys2, ..., sysN, w) - * >>> bode(sys1, 'plotstyle1', ..., sysN, 'plotstyleN') # + plot formats + may also be added, some examples:: + + >>> bode(sys, w) # one system, freq vector # doctest: +SKIP + >>> bode(sys1, sys2, ..., sysN) # several systems # doctest: +SKIP + >>> bode(sys1, sys2, ..., sysN, w) # doctest: +SKIP + >>> bode(sys1, 'plotstyle1', ..., sysN, 'plotstyleN') # + plot formats # doctest: +SKIP + omega: freq_range Range of frequencies in rad/s dB : boolean @@ -44,6 +46,8 @@ def bode(*args, **kwargs): Examples -------- + >>> from control import ss, bode + >>> sys = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") >>> mag, phase, omega = bode(sys) @@ -51,10 +55,10 @@ def bode(*args, **kwargs): Document these use cases - * >>> bode(sys, w) - * >>> bode(sys1, sys2, ..., sysN) - * >>> bode(sys1, sys2, ..., sysN, w) - * >>> bode(sys1, 'plotstyle1', ..., sysN, 'plotstyleN') + * >>> bode(sys, w) # doctest: +SKIP + * >>> bode(sys1, sys2, ..., sysN) # doctest: +SKIP + * >>> bode(sys1, sys2, ..., sysN, w) # doctest: +SKIP + * >>> bode(sys1, 'plotstyle1', ..., sysN, 'plotstyleN') # doctest: +SKIP """ from ..freqplot import bode_plot diff --git a/control/modelsimp.py b/control/modelsimp.py index b1c1ae31c..93411d264 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -84,7 +84,12 @@ def hsvd(sys): Examples -------- - >>> H = hsvd(sys) + >>> from control import tf, tf2ss, hsvd + + >>> G = tf2ss(tf([1],[1, 2])) + >>> H = hsvd(G) + >>> H[0] + 0.25 """ # TODO: implement for discrete time systems @@ -135,7 +140,13 @@ def modred(sys, ELIM, method='matchdc'): Examples -------- - >>> rsys = modred(sys, ELIM, method='truncate') + >>> from control import rss, modred + + >>> G = rss(4) + >>> Gr = modred(G, [0,2], method='matchdc') + >>> Gr.nstates + 2 + """ # Check for ss system object, need a utility for this? @@ -255,7 +266,12 @@ def balred(sys, orders, method='truncate', alpha=None): Examples -------- - >>> rsys = balred(sys, orders, method='truncate') + >>> from control import balred, rss + + >>> G = rss(4) + >>> Gr = balred(G, orders=2, method='matchdc') + >>> Gr.nstates + 2 """ if method != 'truncate' and method != 'matchdc': @@ -386,7 +402,7 @@ def era(YY, m, n, nin, nout, r): Examples -------- - >>> rsys = era(YY, m, n, nin, nout, r) + >>> rsys = era(YY, m, n, nin, nout, r) # doctest: +SKIP """ raise NotImplementedError('This function is not implemented yet.') @@ -446,9 +462,12 @@ def markov(Y, U, m=None, transpose=False): Examples -------- - >>> T = numpy.linspace(0, 10, 100) - >>> U = numpy.ones((1, 100)) - >>> T, Y, _ = forced_response(tf([1], [1, 0.5], True), T, U) + >>> import numpy as np + >>> from control import forced_response, markov, tf + + >>> 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) """ diff --git a/control/robust.py b/control/robust.py index aa5c922dc..2c2c8465e 100644 --- a/control/robust.py +++ b/control/robust.py @@ -70,7 +70,25 @@ def h2syn(P, nmeas, ncon): Examples -------- - >>> K = h2syn(P,nmeas,ncon) + >>> from control import h2syn, interconnect, ss, tf, feedback + + >>> # Unstable first order SISI system + >>> G = tf([1],[1,-1], inputs=['u'], outputs=['y']) + >>> max(G.poles()) < 0 # Is G stable? + False + + >>> # Create partitioned system with trivial unity systems + >>> P11 = tf([0], [1], inputs=['w'], outputs=['z']) + >>> P12 = tf([1], [1], inputs=['u'], outputs=['z']) + >>> P21 = tf([1], [1], inputs=['w'], outputs=['y']) + >>> P22 = G + >>> P = interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y']) + + >>> # Synthesize H2 optimal stabilizing controller + >>> K = h2syn(P, nmeas=1, ncon=1) + >>> T = feedback(G, K, sign=1) + >>> max(T.poles()) < 0 # Is T stable? + True """ # Check for ss system object, need a utility for this? @@ -134,7 +152,25 @@ def hinfsyn(P, nmeas, ncon): Examples -------- - >>> K, CL, gam, rcond = hinfsyn(P,nmeas,ncon) + >>> from control import hinfsyn, interconnect, ss, tf, feedback + + >>> # Unstable first order SISI system + >>> G = tf([1],[1,-1], inputs=['u'], outputs=['y']) + >>> max(G.poles()) < 0 + False + + >>> # Create partitioned system with trivial unity systems + >>> P11 = tf([0], [1], inputs=['w'], outputs=['z']) + >>> P12 = tf([1], [1], inputs=['u'], outputs=['z']) + >>> P21 = tf([1], [1], inputs=['w'], outputs=['y']) + >>> P22 = G + >>> P = interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y']) + + >>> # Synthesize Hinf optimal stabilizing controller + >>> K, CL, gam, rcond = hinfsyn(P, nmeas=1, ncon=1) + >>> T = feedback(G, K, sign=1) + >>> max(T.poles()) < 0 + True """ @@ -221,28 +257,33 @@ def _size_as_needed(w, wname, n): def augw(g, w1=None, w2=None, w3=None): """Augment plant for mixed sensitivity problem. - Parameters - ---------- - g: LTI object, ny-by-nu - w1: weighting on S; None, scalar, or k1-by-ny LTI object - w2: weighting on KS; None, scalar, or k2-by-nu LTI object - w3: weighting on T; None, scalar, or k3-by-ny LTI object - p: augmented plant; StateSpace object - If a weighting is None, no augmentation is done for it. At least one weighting must not be None. If a weighting w is scalar, it will be replaced by I*w, where I is ny-by-ny for w1 and w3, and nu-by-nu for w2. + Parameters + ---------- + g: LTI object, ny-by-nu + Plant + w1: None, scalar, or k1-by-ny LTI object + Weighting on S + w2: None, scalar, or k2-by-nu LTI object + Weighting on KS + w3: None, scalar, or k3-by-ny LTI object + Weighting on T + Returns ------- - p: plant augmented with weightings, suitable for submission to hinfsyn or h2syn. + p: StateSpace + Plant augmented with weightings, suitable for submission to hinfsyn or + h2syn. Raises ------ ValueError - - if all weightings are None + If all weightings are None See Also -------- @@ -331,25 +372,35 @@ def mixsyn(g, w1=None, w2=None, w3=None): Parameters ---------- - g: LTI; the plant for which controller must be synthesized - w1: weighting on s = (1+g*k)**-1; None, or scalar or k1-by-ny LTI - w2: weighting on k*s; None, or scalar or k2-by-nu LTI - w3: weighting on t = g*k*(1+g*k)**-1; None, or scalar or k3-by-ny LTI - At least one of w1, w2, and w3 must not be None. + g: LTI + The plant for which controller must be synthesized + w1: None, or scalar or k1-by-ny LTI + Weighting on S = (1+G*K)**-1 + w2: None, or scalar or k2-by-nu LTI + Weighting on K*S + w3: None, or scalar or k3-by-ny LTI + Weighting on T = G*K*(1+G*K)**-1; Returns ------- - k: synthesized controller; StateSpace object - cl: closed system mapping evaluation inputs to evaluation outputs; if - p is the augmented plant, with - [z] = [p11 p12] [w], - [y] [p21 g] [u] - then cl is the system from w->z with u=-k*y. StateSpace object. - - info: tuple with entries, in order, - - gamma: scalar; H-infinity norm of cl - - rcond: array; estimates of reciprocal condition numbers - computed during synthesis. See hinfsyn for details + k: StateSpace + Synthesized controller; + cl: StateSpace + Closed system mapping evaluation inputs to evaluation outputs. + + Let p be the augmented plant, with:: + + [z] = [p11 p12] [w] + [y] [p21 g] [u] + + then cl is the system from w->z with `u = -k*y`. + + info: tuple + gamma: scalar + H-infinity norm of cl + rcond: array + Estimates of reciprocal condition numbers + computed during synthesis. See hinfsyn for details If a weighting w is scalar, it will be replaced by I*w, where I is ny-by-ny for w1 and w3, and nu-by-nu for w2. diff --git a/control/sisotool.py b/control/sisotool.py index 8a3b3d9f7..944b6f0d1 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -81,8 +81,10 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, Examples -------- - >>> sys = tf([1000], [1,25,100,0]) - >>> sisotool(sys) + >>> from control import sisotool, tf + + >>> G = tf([1000], [1,25,100,0]) + >>> sisotool(G) # doctest: +SKIP """ from .rlocus import root_locus diff --git a/control/statefbk.py b/control/statefbk.py index c76a4e31a..57479c7a1 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -120,6 +120,8 @@ def place(A, B, p): Examples -------- + >>> from control import place + >>> A = [[-1, -1], [0, 1]] >>> B = [[0], [1]] >>> K = place(A, B, [-2, -5]) @@ -375,8 +377,8 @@ def lqr(*args, **kwargs): Examples -------- - >>> K, S, E = lqr(sys, Q, R, [N]) - >>> K, S, E = lqr(A, B, Q, R, [N]) + >>> K, S, E = lqr(sys, Q, R, [N]) # doctest: +SKIP + >>> K, S, E = lqr(A, B, Q, R, [N]) # doctest: +SKIP """ # @@ -520,9 +522,8 @@ def dlqr(*args, **kwargs): Examples -------- - >>> K, S, E = dlqr(dsys, Q, R, [N]) - >>> K, S, E = dlqr(A, B, Q, R, [N]) - + >>> K, S, E = dlqr(dsys, Q, R, [N]) # doctest: +SKIP + >>> K, S, E = dlqr(A, B, Q, R, [N]) # doctest: +SKIP """ # @@ -993,7 +994,13 @@ def ctrb(A, B): Examples -------- - >>> C = ctrb(A, B) + >>> import numpy as np + >>> from control import ctrb, tf, tf2ss + + >>> G = tf2ss(tf([1],[1, 2, 3])) + >>> C = ctrb(G.A, G.B) + >>> np.linalg.matrix_rank(C) + 2 """ @@ -1029,7 +1036,14 @@ def obsv(A, C): Examples -------- - >>> O = obsv(A, C) + >>> import numpy as np + >>> from control import obsv, tf, tf2ss + + >>> G = tf2ss(tf([1],[1, 2, 3])) + >>> C = obsv(G.A, G.C) + >>> np.linalg.matrix_rank(C) + 2 + """ # Convert input parameters to matrices (if they aren't already) @@ -1078,10 +1092,13 @@ def gram(sys, type): Examples -------- - >>> Wc = gram(sys, 'c') - >>> Wo = gram(sys, 'o') - >>> Rc = gram(sys, 'cf'), where Wc = Rc' * Rc - >>> Ro = gram(sys, 'of'), where Wo = Ro' * Ro + >>> from control import gram, rss + + >>> G = rss(4) + >>> Wc = gram(G, 'c') + >>> Wo = gram(G, 'o') + >>> Rc = gram(G, 'cf') # where Wc = Rc' * Rc + >>> Ro = gram(G, 'of') # where Wo = Ro' * Ro """ diff --git a/control/statesp.py b/control/statesp.py index 9fff28d27..a6f1756b2 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1217,8 +1217,8 @@ def returnScipySignalLTI(self, strict=True): For instance, - >>> out = ssobject.returnScipySignalLTI() - >>> out[3][5] + >>> out = ssobject.returnScipySignalLTI() # doctest: +SKIP + >>> out[3][5] # doctest: +SKIP is a :class:`scipy.signal.lti` object corresponding to the transfer function from the 6th input to the 4th output. @@ -1362,8 +1362,10 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> sys = StateSpace(0, 1, 1, 0) - >>> sysd = sys.sample(0.5, method='bilinear') + >>> from control import StateSpace + >>> + >>> G = StateSpace(0, 1, 1, 0) + >>> sysd = G.sample(0.5, method='bilinear') """ if not self.isctime(): @@ -1526,14 +1528,7 @@ def _convert_to_statespace(sys): If sys is already a state space, then it is returned. If sys is a transfer function object, then it is converted to a state space and - returned. If sys is a scalar, then the number of inputs and outputs can - be specified manually, as in: - - >>> sys = _convert_to_statespace(3.) # Assumes inputs = outputs = 1 - >>> sys = _convert_to_statespace(1., inputs=3, outputs=2) - - In the latter example, A = B = C = 0 and D = [[1., 1., 1.] - [1., 1., 1.]]. + returned. Note: no renaming of inputs and outputs is performed; this should be done by the calling function. @@ -1896,6 +1891,8 @@ def tf2ss(*args, **kwargs): Examples -------- + >>> from control import tf, tf2ss + >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] >>> sys1 = tf2ss(num, den) diff --git a/control/stochsys.py b/control/stochsys.py index 000c1b6ab..65b4ebd95 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -108,8 +108,8 @@ def lqe(*args, **kwargs): Examples -------- - >>> L, P, E = lqe(A, G, C, QN, RN) - >>> L, P, E = lqe(A, G, C, Q, RN, NN) + >>> L, P, E = lqe(A, G, C, QN, RN) # doctest: +SKIP + >>> L, P, E = lqe(A, G, C, Q, RN, NN) # doctest: +SKIP See Also -------- @@ -240,8 +240,8 @@ def dlqe(*args, **kwargs): Examples -------- - >>> L, P, E = dlqe(A, G, C, QN, RN) - >>> L, P, E = dlqe(A, G, C, QN, RN, NN) + >>> L, P, E = dlqe(A, G, C, QN, RN) # doctest: +SKIP + >>> L, P, E = dlqe(A, G, C, QN, RN, NN) # doctest: +SKIP See Also -------- diff --git a/control/timeresp.py b/control/timeresp.py index 24f553a32..5f001848c 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -916,7 +916,12 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, Examples -------- - >>> T, yout, xout = forced_response(sys, T, u, X0) + >>> import numpy as np + >>> from control import forced_response, rss + + >>> G = rss(4) + >>> T = np.linspace(0,10) + >>> T, yout = forced_response(G, T=T) See :ref:`time-series-convention` and :ref:`package-configuration-parameters`. @@ -1328,7 +1333,10 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, Examples -------- - >>> T, yout = step_response(sys, T, X0) + >>> from control import step_response, rss + + >>> G = rss(4) + >>> T, yout = step_response(G) """ # Create the time and input vectors @@ -1441,6 +1449,7 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, Examples -------- >>> from control import step_info, TransferFunction + >>> sys = TransferFunction([-1, 1], [1, 1, 1]) >>> S = step_info(sys) >>> for k in S: @@ -1462,6 +1471,7 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, >>> from numpy import sqrt >>> from control import step_info, StateSpace + >>> sys = StateSpace([[-1., -1.], ... [1., 0.]], ... [[-1./sqrt(2.), 1./sqrt(2.)], @@ -1686,7 +1696,10 @@ def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None, Examples -------- - >>> T, yout = initial_response(sys, T, X0) + >>> from control import initial_response, rss + + >>> G = rss(4) + >>> T, yout = initial_response(G) """ squeeze, sys = _get_ss_simo(sys, input, output, squeeze=squeeze) @@ -1801,7 +1814,10 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, Examples -------- - >>> T, yout = impulse_response(sys, T, X0) + >>> from control import impulse_response, rss + + >>> G = rss(4) + >>> T, yout = impulse_response(G) """ # Convert to state space so that we can simulate diff --git a/control/xferfcn.py b/control/xferfcn.py index 0bc84e096..64daa9a08 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -110,7 +110,7 @@ class TransferFunction(LTI): The attribues 'num' and 'den' are 2-D lists of arrays containing MIMO numerator and denominator coefficients. For example, - >>> num[2][5] = numpy.array([1., 4., 8.]) + >>> num[2][5] = numpy.array([1., 4., 8.]) # doctest: +SKIP means that the numerator of the transfer function from the 6th input to the 3rd output is set to s^2 + 4s + 8. @@ -141,6 +141,8 @@ class TransferFunction(LTI): discrete time. These can be used to create variables that allow algebraic creation of transfer functions. For example, + >>> from control import TransferFunction + >>> s = TransferFunction.s >>> G = (s + 1)/(s**2 + 2*s + 1) @@ -874,8 +876,8 @@ def returnScipySignalLTI(self, strict=True): For instance, - >>> out = tfobject.returnScipySignalLTI() - >>> out[3][5] + >>> out = tfobject.returnScipySignalLTI() # doctest: +SKIP + >>> out[3][5] # doctest: +SKIP is a :class:`scipy.signal.lti` object corresponding to the transfer function from the 6th input to the 4th output. @@ -963,7 +965,7 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): Examples -------- - >>> num, den, denorder = sys._common_den() + >>> num, den, denorder = sys._common_den() # doctest: +SKIP """ @@ -1145,7 +1147,9 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> sys = TransferFunction(1, [1,1]) + >>> from control import tf + + >>> sys = tf(1, [1,1]) >>> sysd = sys.sample(0.5, method='bilinear') """ @@ -1202,6 +1206,14 @@ def dcgain(self, warn_infinite=False): For real valued systems, the empty imaginary part of the complex zero-frequency response is discarded and a real array or scalar is returned. + + Examples + -------- + >>> from control import tf + >>> G = tf([1],[1, 4]) + >>> G.dcgain() + 0.25 + """ return self._dcgain(warn_infinite) @@ -1230,8 +1242,8 @@ def _isstatic(self): #: #: Example #: ------- - #: >>> s = TransferFunction.s - #: >>> G = (s + 1)/(s**2 + 2*s + 1) + #: >>> s = TransferFunction.s # doctest: +SKIP + #: >>> G = (s + 1)/(s**2 + 2*s + 1) # doctest: +SKIP #: #: :meta hide-value: s = None @@ -1243,8 +1255,8 @@ def _isstatic(self): #: #: Example #: ------- - #: >>> z = TransferFunction.z - #: >>> G = 2 * z / (4 * z**3 + 3*z - 1) + #: >>> z = TransferFunction.z # doctest: +SKIP + #: >>> G = 2 * z / (4 * z**3 + 3*z - 1) # doctest: +SKIP #: #: :meta hide-value: z = None @@ -1529,6 +1541,8 @@ def tf(*args, **kwargs): Examples -------- + >>> from control import tf, ss + >>> # Create a MIMO transfer function object >>> # The transfer function from the 2nd input to the 1st output is >>> # (3s + 4) / (6s^2 + 5s + 4). @@ -1682,6 +1696,8 @@ def ss2tf(*args, **kwargs): Examples -------- + >>> from control import ss, ss2tf + >>> A = [[1., -2], [3, -4]] >>> B = [[5.], [7]] >>> C = [[6., 8]] diff --git a/doc/classes.png b/doc/classes.png new file mode 100644 index 0000000000000000000000000000000000000000..25724b43f90de77b9659fbb9caa9c7aed35e9ecd GIT binary patch literal 9026 zcmX9^1y~f{*IpVVrI!*|1O%kJ8(36T(%mXz8-KsxqE z2`rtGl78#|d!Bh_?s?z$oO5U9%-)?lH}Qdq9`!A@TObgK8mh1T2m~SoKp=uELLxj; z(^u1tKTtg|daQ##{>5*9|Lr~!v@d}`+#sm7#^a#e-Mj(s?QbEN7zDGj!q;jf>SKaD zZ8fGoDkwkB%Jg=TAf3;c35P>4j;;Rb!$@fhP-r+;9AUcqM@IAD(KtrvZ{B_-b`|?6 zv~yy5c!}Cg@NKcc12NaY2-(P%W?oG3=5u)=zBUaaq4tK-8~ein3snc z_r57>U<4sw$SH z0Q$8=91|>lv5Gl!MqEXsT*W|2eOHV@>L;^|{m|07WR

)o>c5>)DcZ|!a1iq+UoY+{VUQg z=QmCFcWIVKnELmf8+t&txaIclUoEA0KQXq!C5ISfZOHoD+4J2nn7ZgzidgEoH3ai{ z!9f1!^OW2VF8fN)&S;ivs(F%7A6;raRaUGakO}X_FV$2DJOvM1^6cur_cidehb__0 ziRL75Q{JA{K59I2=4z%(ofy5kMm~i7UA;?xQ?>KTuapaU^Y_MXxkQ%;oMlv41|CH)Dm}kF zbOX%eBT?gB(INZCqdRFL1CsTdpMnE$o1d_EU_YVnjJfclZ!@{dIoGHsXd|yJw^Lp7 zHNJ_GRF?>Nk&3jhbSR|UpZ=xWe{QFGdkV5%c-sS>{a@XvGR0xt=uS$-0Q9pl+t31V z{lHAORt{~RS!N6#Y6mXxiDU6R;v&tI6>qC3P}FV~V%f2*4rsT0s^D*Kr#gE>cwc5b z*@h>}3b8C$-dm+fF81&k5wrJ#IVvb)1&aDaJPyXj=J4a~6a@-O8L0Fn?<~oCzMN8> zd_Fulgm=DIh-JX?3Vf8+kq+gx&M=}I$_HferxWdVs@3oVn(vDHdPNp05Mg(gKF9!u z5fdK2xcYwz6zb8IP4$4Xbx&X>7I-nkpJTd$usYU$NinA_rA5=a2V~ztdzolfob>+|~_7pu?OB#JkbfTq>I61pL7#p8(vU$z6tIknQYO0s7MQ+UFZAY zvYOk$@v$CDggveL!1d6sd^r&(*qyC{tQ@~yOlpa|ncVkb#QNwp3`5!OtU0}G@(kj( zUPMDZqR(hEQz%g5YwL6}E}uP{AlB1RE3a+A^G?2vC{On4l);~k9D?k7|GFgSt~;F- z-yg4pzind|aUzm2@NQ1*sop9>He;FAzxJUV6Tca%V-1A$(QO!lK2pu?%D&3@1qU=m zgwiWI@ZljX4$E~kNpuV7C4^^o26^~L)qV@vIn-{nFFn}{wUkm%c?kZZ7us*oM;82l z+dbjoN`oDA1dQF|FSK_XK1`=}g}1;Lu6ti}q@;Puo8~&cNUpNqFpEs^G>Vx!N#@G) z&7wZrbobPR8jO5e`-xsk!q-*Lqr$DrlB$1k_>nl4wi}!fdlg`=khomBXGoa(Pn3}X zgg-_4%VB+V8qTTjCdQO}-QxQvT7fcNQqipPvZvyUzv7V63H?Gpnt{9gs!K4H=AUPi zlmu+q)1)qoS`VI_tG&s>td>^q*~Dv2{II*Gtu&OpfaoOA3Oh3tyS|hP_;r!ZW3~-C zK2QE84&}mZ!=1zydT+zhEh1CymyOLe?GG|gnK;lA$u#m)>@DTa6^DP=c`aglM4%jb zhxRDJMS>~CzIt)}?Ugh&elLy?XG4!2Eq{Sb}#ZYcTWrCTQmW1&#n32v3 ziwM(>X-g<5T17t3juBwP&g}bg5M7zIt0JPV2=_F6avGD%Hqa7ZWLn0#%mJkrf=}rA zfU{rV0tJ7)%;IN%FCxVzL`w=Y3R_Sl@&He6(bl=sY?sIm{2-eHm@KKZbfm-0h`?UG$m+b}cU6 zB(yFIs&LkmnjIdrp`$S`LYHFlP?y2VjZxJVjRCiN4u5o0OCZg z=4wB-SYrvYCvFs`X!iFL^RvfC1iv_Y4H$`;%-qX-{*P4(X=Z!gUdtdCaaX#lb}MmtO6a`Y7H_e!E@2CS|JhgpSQYQIE=4oTYJ zb8)UvcwasU$td_qxbfO^Jw`Q6On8!^|wmW59>AvZ_aj z=bUI3p4=bs;+$9Yg!$G&^e+V-h&xN)Ksw^sc9`DV-s6MaF29Gl=!l3ZlA?fq$whD_ zQ^iNad;Fdjtu<`na>RVfoGgI zAR2

Y2m}(DWTn7i_3ap9Dp0_lo?b7y+#F|uADf& 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 Date: Fri, 24 Mar 2023 19:32:54 -0700 Subject: [PATCH 0213/1025] remove imports and use ct.fcn instead --- control/__init__.py | 17 ++++++++++ control/bdalg.py | 62 +++++++++++++++---------------------- control/canonical.py | 57 ++++++++++++---------------------- control/config.py | 48 +++++++++++----------------- control/ctrlutil.py | 32 ++++++------------- control/delay.py | 6 ++-- control/descfcn.py | 26 +++++----------- control/dtime.py | 12 +++---- control/exception.py | 9 ++---- control/flatsys/__init__.py | 6 ++++ control/frdata.py | 9 ++---- control/freqplot.py | 34 +++++++------------- control/iosys.py | 49 ++++++++++++----------------- control/lti.py | 24 ++++++-------- control/margins.py | 12 +++---- control/matlab/timeresp.py | 1 - control/matlab/wrappers.py | 2 +- control/modelsimp.py | 25 +++++---------- control/optimal.py | 6 ++++ control/robust.py | 32 +++++++++---------- control/sisotool.py | 6 ++-- control/statefbk.py | 30 ++++++------------ control/statesp.py | 12 +++---- control/timeresp.py | 39 ++++++++--------------- control/xferfcn.py | 29 ++++++----------- doc/conf.py | 10 ++++++ doc/optimal.rst | 8 ++--- 27 files changed, 243 insertions(+), 360 deletions(-) diff --git a/control/__init__.py b/control/__init__.py index 649a90861..340370c8b 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -42,6 +42,23 @@ """ The Python Control Systems Library :mod:`control` provides common functions for analyzing and designing feedback control systems. + +Documentation is available in two forms: docstrings provided with the code, +and the python-control users guide, available from `the python-control +homepage `_. + +The docstring examples assume that the following import commands:: + + >>> import numpy as np + >>> import control as ct + +Available subpackages +--------------------- +flatsys + Differentially flat systems +optimal + Optimization-based control + """ # Import functions from within the control system library diff --git a/control/bdalg.py b/control/bdalg.py index f93e7d89c..911a20b53 100644 --- a/control/bdalg.py +++ b/control/bdalg.py @@ -99,17 +99,15 @@ def series(sys1, *sysn): Examples -------- - >>> from control import rss, series - - >>> G1 = rss(3) - >>> G2 = rss(4) - >>> G = series(G1, G2) # Same as sys3 = sys2 * sys1 + >>> G1 = ct.rss(3) + >>> G2 = ct.rss(4) + >>> G = ct.series(G1, G2) # Same as sys3 = sys2 * sys1 >>> G.ninputs, G.noutputs, G.nstates (1, 1, 7) - >>> G1 = rss(2, inputs=2, outputs=3) - >>> G2 = rss(3, inputs=3, outputs=1) - >>> G = series(G1, G2) # Same as sys3 = sys2 * sys1 + >>> G1 = ct.rss(2, inputs=2, outputs=3) + >>> G2 = ct.rss(3, inputs=3, outputs=1) + >>> G = ct.series(G1, G2) # Same as sys3 = sys2 * sys1 >>> G.ninputs, G.noutputs, G.nstates (2, 1, 5) @@ -156,17 +154,15 @@ def parallel(sys1, *sysn): Examples -------- - >>> from control import parallel, rss - - >>> G1 = rss(3) - >>> G2 = rss(4) - >>> G = parallel(G1, G2) # Same as sys3 = sys1 + sys2 + >>> G1 = ct.rss(3) + >>> G2 = ct.rss(4) + >>> G = ct.parallel(G1, G2) # Same as sys3 = sys1 + sys2 >>> G.ninputs, G.noutputs, G.nstates (1, 1, 7) - >>> G1 = rss(3, inputs=3, outputs=4) - >>> G2 = rss(4, inputs=3, outputs=4) - >>> G = parallel(G1, G2) # Add another system + >>> G1 = ct.rss(3, inputs=3, outputs=4) + >>> G2 = ct.rss(4, inputs=3, outputs=4) + >>> G = ct.parallel(G1, G2) # Add another system >>> G.ninputs, G.noutputs, G.nstates (3, 4, 7) @@ -194,13 +190,11 @@ def negate(sys): Examples -------- - >>> from control import negate, tf - - >>> G = tf([2],[1, 1]) + >>> G = ct.tf([2],[1, 1]) >>> G.dcgain() > 0 True - >>> Gn = negate(G) # Same as sys2 = -sys1. + >>> Gn = ct.negate(G) # Same as sys2 = -sys1. >>> Gn.dcgain() < 0 True @@ -252,11 +246,9 @@ def feedback(sys1, sys2=1, sign=-1): Examples -------- - >>> from control import feedback, rss - - >>> G = rss(3, inputs=2, outputs=5) - >>> C = rss(4, inputs=5, outputs=2) - >>> T = feedback(G, C, sign=1) + >>> G = ct.rss(3, inputs=2, outputs=5) + >>> C = ct.rss(4, inputs=5, outputs=2) + >>> T = ct.feedback(G, C, sign=1) >>> T.ninputs, T.noutputs, T.nstates (2, 5, 7) @@ -316,17 +308,15 @@ def append(*sys): Examples -------- - >>> from control import append, rss - >>> G1 = rss(3) - - >>> G2 = rss(4) - >>> G = append(G1, G2) + >>> G1 = ct.rss(3) + >>> G2 = ct.rss(4) + >>> G = ct.append(G1, G2) >>> G.ninputs, G.noutputs, G.nstates (2, 2, 7) - >>> G1 = rss(3, inputs=2, outputs=4) - >>> G2 = rss(4, inputs=1, outputs=4) - >>> G = append(G1, G2) + >>> G1 = ct.rss(3, inputs=2, outputs=4) + >>> G2 = ct.rss(4, inputs=1, outputs=4) + >>> G = ct.append(G1, G2) >>> G.ninputs, G.noutputs, G.nstates (3, 8, 7) @@ -371,11 +361,9 @@ def connect(sys, Q, inputv, outputv): Examples -------- - >>> from control import append, connect, rss - - >>> G = rss(7, inputs=2, outputs=2) + >>> G = ct.rss(7, inputs=2, outputs=2) >>> K = [[1, 2], [2, -1]] # negative feedback interconnection - >>> T = connect(G, K, [2], [1, 2]) + >>> T = ct.connect(G, K, [2], [1, 2]) >>> T.ninputs, T.noutputs, T.nstates (1, 2, 7) diff --git a/control/canonical.py b/control/canonical.py index f8aa0ff2e..436db667b 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -39,21 +39,18 @@ def canonical_form(xsys, form='reachable'): Examples -------- - >>> from control import canonical_form, tf, tf2ss - - >>> G = tf([1],[1, 3, 2]) - >>> Gs = tf2ss(G) - - >>> Gc, T = canonical_form(Gs) # default reachable + >>> G = ct.tf([1],[1, 3, 2]) + >>> Gs = ct.tf2ss(G) + >>> Gc, T = ct.canonical_form(Gs) # default reachable >>> Gc.B # doctest: +SKIP matrix([[1.], [0.]]) - >>> Gc, T = canonical_form(Gs, 'observable') + >>> Gc, T = ct.canonical_form(Gs, 'observable') >>> Gc.C # doctest: +SKIP matrix([[1., 0.]]) - >>> Gc, T = canonical_form(Gs, 'modal') + >>> Gc, T = ct.canonical_form(Gs, 'modal') >>> Gc.A # doctest: +SKIP matrix([[-2., 0.], [ 0., -1.]]) @@ -90,12 +87,9 @@ def reachable_form(xsys): Examples -------- - >>> from control import reachable_form, tf, tf2ss - - >>> G = tf([1],[1, 3, 2]) - >>> Gs = tf2ss(G) - - >>> Gc, T = reachable_form(Gs) # default reachable + >>> G = ct.tf([1],[1, 3, 2]) + >>> Gs = ct.tf2ss(G) + >>> Gc, T = ct.reachable_form(Gs) # default reachable >>> Gc.B # doctest: +SKIP matrix([[1.], [0.]]) @@ -157,12 +151,9 @@ def observable_form(xsys): Examples -------- - >>> from control import observable_form, tf, tf2ss - - >>> G = tf([1],[1, 3, 2]) - >>> Gs = tf2ss(G) - - >>> Gc, T = observable_form(Gs) + >>> G = ct.tf([1],[1, 3, 2]) + >>> Gs = ct.tf2ss(G) + >>> Gc, T = ct.observable_form(Gs) >>> Gc.C # doctest: +SKIP matrix([[1., 0.]]) @@ -227,17 +218,14 @@ def similarity_transform(xsys, T, timescale=1, inverse=False): Examples -------- - >>> import numpy as np - >>> from control import similarity_transform, tf, tf2ss - - >>> G = tf([1],[1, 3, 2]) - >>> Gs = tf2ss(G) + >>> G = ct.tf([1],[1, 3, 2]) + >>> Gs = ct.tf2ss(G) >>> Gs.A # doctest: +SKIP matrix([[-3., -2.], [ 1., 0.]]) >>> T = np.array([[0,1],[1,0]]) - >>> Gt = similarity_transform(Gs, T) + >>> Gt = ct.similarity_transform(Gs, T) >>> Gt.A # doctest: +SKIP matrix([[ 0., 1.], [-2., -3.]]) @@ -438,11 +426,9 @@ def bdschur(a, condmax=None, sort=None): Examples -------- - >>> from control import bdschur, tf, tf2ss - - >>> G = tf([1],[1, 3, 2]) - >>> Gs = tf2ss(G) - >>> amodal, tmodal, blksizes = bdschur(Gs.A) + >>> G = ct.tf([1],[1, 3, 2]) + >>> Gs = ct.tf2ss(G) + >>> amodal, tmodal, blksizes = ct.bdschur(Gs.A) >>> amodal #doctest: +SKIP array([[-2., 0.], [ 0., -1.]]) @@ -516,12 +502,9 @@ def modal_form(xsys, condmax=None, sort=False): Examples -------- - >>> from control import modal_form, tf, tf2ss - - >>> G = tf([1],[1, 3, 2]) - >>> Gs = tf2ss((G)) - - >>> Gc, T = modal_form(Gs) # default reachable + >>> G = ct.tf([1],[1, 3, 2]) + >>> Gs = ct.tf2ss((G)) + >>> Gc, T = ct.modal_form(Gs) # default reachable >>> Gc.A # doctest: +SKIP matrix([[-2., 0.], [ 0., -1.]]) diff --git a/control/config.py b/control/config.py index 4bb7648a9..78eaeeb6f 100644 --- a/control/config.py +++ b/control/config.py @@ -69,17 +69,15 @@ def set_defaults(module, **keywords): Examples -------- - >>> from control import defaults, reset_defaults, set_defaults - - >>> defaults['freqplot.number_of_samples'] + >>> ct.defaults['freqplot.number_of_samples'] 1000 - >>> set_defaults('freqplot', number_of_samples=100) - >>> defaults['freqplot.number_of_samples'] + >>> ct.set_defaults('freqplot', number_of_samples=100) + >>> ct.defaults['freqplot.number_of_samples'] 100 >>> # do some customized freqplotting - >>> reset_defaults() - >>> defaults['freqplot.number_of_samples'] + >>> ct.reset_defaults() + >>> ct.defaults['freqplot.number_of_samples'] 1000 """ @@ -97,17 +95,15 @@ def reset_defaults(): Examples -------- - >>> from control import defaults, reset_defaults, set_defaults - - >>> defaults['freqplot.number_of_samples'] + >>> ct.defaults['freqplot.number_of_samples'] 1000 - >>> set_defaults('freqplot', number_of_samples=100) - >>> defaults['freqplot.number_of_samples'] + >>> ct.set_defaults('freqplot', number_of_samples=100) + >>> ct.defaults['freqplot.number_of_samples'] 100 >>> # do some customized freqplotting - >>> reset_defaults() - >>> defaults['freqplot.number_of_samples'] + >>> ct.reset_defaults() + >>> ct.defaults['freqplot.number_of_samples'] 1000 """ @@ -213,11 +209,9 @@ def use_matlab_defaults(): Examples -------- - >>> from control import use_matlab_defaults, reset_defaults - - >>> use_matlab_defaults() + >>> ct.use_matlab_defaults() >>> # do some matlab style plotting - >>> reset_defaults() + >>> ct.reset_defaults() """ set_defaults('freqplot', dB=True, deg=True, Hz=False, grid=True) @@ -235,11 +229,9 @@ def use_fbs_defaults(): Examples -------- - >>> from control import use_fbs_defaults, reset_defaults - - >>> use_fbs_defaults() + >>> ct.use_fbs_defaults() >>> # do some FBS style plotting - >>> reset_defaults() + >>> ct.reset_defaults() """ set_defaults('freqplot', dB=False, deg=True, Hz=False, grid=False) @@ -271,11 +263,9 @@ class and functions. If flat is `False`, then matrices are Examples -------- - >>> from control import use_numpy_matrix, reset_defaults - - >>> use_numpy_matrix(True, False) + >>> ct.use_numpy_matrix(True, False) >>> # do some legacy calculations using np.matrix - >>> reset_defaults() + >>> ct.reset_defaults() """ if flag and warn: @@ -294,12 +284,10 @@ def use_legacy_defaults(version): Examples -------- - >>> from control import use_legacy_defaults, reset_defaults - - >>> use_legacy_defaults("0.9.0") + >>> ct.use_legacy_defaults("0.9.0") (0, 9, 0) >>> # do some legacy style plotting - >>> reset_defaults() + >>> ct.reset_defaults() """ import re diff --git a/control/ctrlutil.py b/control/ctrlutil.py index ddd75812b..f745e95ee 100644 --- a/control/ctrlutil.py +++ b/control/ctrlutil.py @@ -65,19 +65,15 @@ def unwrap(angle, period=2*math.pi): Examples -------- - >>> import numpy as np - >>> from control import unwrap - >>> from pprint import pprint - >>> # Already continuous >>> theta1 = np.array([1.0, 1.5, 2.0, 2.5, 3.0]) * np.pi - >>> theta2 = unwrap(theta1) + >>> theta2 = ct.unwrap(theta1) >>> theta2/np.pi # doctest: +SKIP array([1. , 1.5, 2. , 2.5, 3. ]) >>> # Wrapped, discontinuous >>> theta1 = np.array([1.0, 1.5, 0.0, 0.5, 1.0]) * np.pi - >>> theta2 = unwrap(theta1) + >>> theta2 = ct.unwrap(theta1) >>> theta2/np.pi # doctest: +SKIP array([1. , 1.5, 2. , 2.5, 3. ]) @@ -94,14 +90,12 @@ def issys(obj): Examples -------- - >>> from control import issys, tf, InputOutputSystem, LinearIOSystem - - >>> G = tf([1],[1, 1]) - >>> issys(G) + >>> G = ct.tf([1],[1, 1]) + >>> ct.issys(G) True - >>> K = InputOutputSystem() # Not necessarily LTI! - >>> issys(K) + >>> K = ct.InputOutputSystem() # Not necessarily LTI! + >>> ct.issys(K) False """ @@ -126,13 +120,10 @@ def db2mag(db): Examples -------- - >>> import numpy as np - >>> from control import db2mag - - >>> db2mag(-40.0) # doctest: +SKIP + >>> ct.db2mag(-40.0) # doctest: +SKIP 0.01 - >>> db2mag(np.array([0, -20])) # doctest: +SKIP + >>> ct.db2mag(np.array([0, -20])) # doctest: +SKIP array([1. , 0.1]) """ @@ -157,13 +148,10 @@ def mag2db(mag): Examples -------- - >>> import numpy as np - >>> from control import mag2db - - >>> mag2db(10.0) # doctest: +SKIP + >>> ct.mag2db(10.0) # doctest: +SKIP 20.0 - >>> mag2db(np.array([1, 0.01])) # doctest: +SKIP + >>> ct.mag2db(np.array([1, 0.01])) # doctest: +SKIP array([ 0., -40.]) """ diff --git a/control/delay.py b/control/delay.py index 42110c1ff..3779f1ddb 100644 --- a/control/delay.py +++ b/control/delay.py @@ -77,14 +77,12 @@ def pade(T, n=1, numdeg=None): Examples -------- - >>> from control import pade - >>> delay = 1 - >>> num, den = pade(delay, 5) + >>> num, den = ct.pade(delay, 5) >>> len(num), len(den) (6, 6) - >>> num, den = pade(delay, 5, -2) + >>> num, den = ct.pade(delay, 5, -2) >>> len(num), len(den) (4, 6) diff --git a/control/descfcn.py b/control/descfcn.py index dfd2c2d4b..2cc58c75b 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -122,12 +122,9 @@ def describing_function( Examples -------- - >>> import numpy as np - >>> from control import describing_function - >>> F = lambda x: np.exp(-x) # Basic diode description >>> A = np.logspace(-1, 1, 20) # Amplitudes from 0.1 to 10.0 - >>> df_values = describing_function(F, A) + >>> df_values = ct.describing_function(F, A) >>> len(df_values) 20 @@ -249,13 +246,10 @@ def describing_function_plot( Examples -------- - >>> import numpy as np - >>> from control import describing_function_plot, saturation_nonlinearity, tf - - >>> H_simple = tf([8], [1, 2, 2, 1]) - >>> F_saturation = saturation_nonlinearity(1) + >>> H_simple = ct.tf([8], [1, 2, 2, 1]) + >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> points = describing_function_plot(H_simple, F_saturation, amp) + >>> points = ct.describing_function_plot(H_simple, F_saturation, amp) >>> len(points) 1 @@ -371,9 +365,7 @@ class saturation_nonlinearity(DescribingFunctionNonlinearity): Examples -------- - >>> from control import saturation_nonlinearity - - >>> nl = saturation_nonlinearity(5) + >>> nl = ct.saturation_nonlinearity(5) >>> f = lambda x: round(nl(x)) >>> f(1) 1 @@ -437,9 +429,7 @@ class relay_hysteresis_nonlinearity(DescribingFunctionNonlinearity): Examples -------- - >>> from control import relay_hysteresis_nonlinearity - - >>> nl = relay_hysteresis_nonlinearity(1, 2) + >>> nl = ct.relay_hysteresis_nonlinearity(1, 2) >>> f = lambda x: round(nl(x)) >>> f(0) -1 @@ -509,9 +499,7 @@ class friction_backlash_nonlinearity(DescribingFunctionNonlinearity): Examples -------- - >>> from control import friction_backlash_nonlinearity - - >>> nl = friction_backlash_nonlinearity(2) # backlash of +/- 1 + >>> nl = ct.friction_backlash_nonlinearity(2) # backlash of +/- 1 >>> f = lambda x: round(nl(x)) >>> f(0) 0 diff --git a/control/dtime.py b/control/dtime.py index 164cc6874..6197ae8af 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -109,12 +109,10 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> from control import sample_system, tf - - >>> Gc = tf([1], [1, 2, 1]) + >>> Gc = ct.tf([1], [1, 2, 1]) >>> Gc.isdtime() False - >>> Gd = sample_system(Gc, 1, method='bilinear') + >>> Gd = ct.sample_system(Gc, 1, method='bilinear') >>> Gd.isdtime() True @@ -157,12 +155,10 @@ def c2d(sysc, Ts, method='zoh', prewarp_frequency=None): Examples -------- - >>> from control import sample_system, tf - - >>> Gc = tf([1], [1, 2, 1]) + >>> Gc = ct.tf([1], [1, 2, 1]) >>> Gc.isdtime() False - >>> Gd = sample_system(Gc, 1, method='bilinear') + >>> Gd = ct.sample_system(Gc, 1, method='bilinear') >>> Gd.isdtime() True diff --git a/control/exception.py b/control/exception.py index 338de06f6..d308dc7f6 100644 --- a/control/exception.py +++ b/control/exception.py @@ -67,8 +67,7 @@ def slycot_check(): Examples -------- - >>> from control import slycot_check - >>> slycot_check() + >>> ct.slycot_check() True """ @@ -89,8 +88,7 @@ def pandas_check(): Examples -------- - >>> from control import pandas_check - >>> pandas_check() + >>> ct.pandas_check() True """ @@ -111,8 +109,7 @@ def cvxopt_check(): Examples -------- - >>> from control import cvxopt_check - >>> cvxopt_check() + >>> ct.cvxopt_check() True """ diff --git a/control/flatsys/__init__.py b/control/flatsys/__init__.py index 157800073..6345ee2b9 100644 --- a/control/flatsys/__init__.py +++ b/control/flatsys/__init__.py @@ -50,6 +50,12 @@ function can be used to solve an optimal control problem with trajectory and final costs or constraints. +The docstring examples assume that the following import commands:: + + >>> import numpy as np + >>> import control as ct + >>> import control.flatsys as fs + """ # Basis function families diff --git a/control/frdata.py b/control/frdata.py index 22f3b121e..0783aaa31 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -767,17 +767,14 @@ def frd(*args): Examples -------- - >>> from control import frd, tf - >>> # Create from measurements >>> response = [1.0, 1.0, 0.5] >>> freqs = [1, 10, 100] - >>> F = frd(response, freqs) + >>> F = ct.frd(response, freqs) - >>> G = tf([1], [1, 1]) + >>> G = ct.tf([1], [1, 1]) >>> freqs = [1, 10, 100] - >>> F = frd(G, freqs) - + >>> F = ct.frd(G, freqs) """ return FRD(*args) diff --git a/control/freqplot.py b/control/freqplot.py index 56b946aa3..08ba0ab16 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -174,10 +174,8 @@ def bode_plot(syslist, omega=None, Examples -------- - >>> from control import bode_plot, ss - - >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> Gmag, Gphase, Gomega = bode_plot(G) + >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> Gmag, Gphase, Gomega = ct.bode_plot(G) """ # Make a copy of the kwargs dictionary since we will modify it @@ -694,10 +692,8 @@ def nyquist_plot( Examples -------- - >>> from control import nyquist_plot, zpk - - >>> G = zpk([],[-1,-2,-3], gain=100) - >>> nyquist_plot(G) + >>> G = ct.zpk([],[-1,-2,-3], gain=100) + >>> ct.nyquist_plot(G) 2 """ @@ -1266,10 +1262,9 @@ def gangof4_plot(P, C, omega=None, **kwargs): Examples -------- - >>> from control import gangof4_plot, tf - >>> P = tf([1],[1, 1]) - >>> C = tf([2],[1]) - >>> gangof4_plot(P, C) + >>> P = ct.tf([1],[1, 1]) + >>> C = ct.tf([2],[1]) + >>> ct.gangof4_plot(P, C) """ if not P.issiso() or not C.issiso(): @@ -1414,15 +1409,12 @@ def singular_values_plot(syslist, omega=None, Examples -------- - >>> import numpy as np - >>> from control import tf, singular_values_plot - >>> omegas = np.logspace(-4, 1, 1000) >>> den = [75, 1] - >>> G = tf([[[87.8], [-86.4]], [[108.2], [-109.6]]], [[den, den], [den, den]]) - >>> sigmas, omegas = singular_values_plot(G, omega=omegas, plot=False) + >>> G = ct.tf([[[87.8], [-86.4]], [[108.2], [-109.6]]], [[den, den], [den, den]]) + >>> sigmas, omegas = ct.singular_values_plot(G, omega=omegas, plot=False) - >>> sigmas, omegas = singular_values_plot(G, 0.0, plot=False) + >>> sigmas, omegas = ct.singular_values_plot(G, 0.0, plot=False) """ @@ -1638,10 +1630,8 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, Examples -------- - >>> from control import ss - - >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> omega = _default_frequency_range(G) + >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> omega = ct._default_frequency_range(G) >>> omega.min(), omega.max() (0.1, 100.0) diff --git a/control/iosys.py b/control/iosys.py index 410fa5c62..589d81add 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2373,14 +2373,12 @@ def ss(*args, **kwargs): -------- Create a Linear I/O system object from matrices. - >>> from control import ss, tf - - >>> G = ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) + >>> G = ct.ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) Convert a TransferFunction to a StateSpace object. - >>> sys_tf = tf([2.], [1., 3]) - >>> sys2 = ss(sys_tf) + >>> sys_tf = ct.tf([2.], [1., 3]) + >>> sys2 = ct.ss(sys_tf) """ # See if this is a nonlinear I/O system @@ -2501,8 +2499,7 @@ def drss(*args, **kwargs): Examples -------- - >>> from control import drss - >>> G = drss(states=4, outputs=2, inputs=1) + >>> G = ct.drss(states=4, outputs=2, inputs=1) >>> G.ninputs, G.noutputs, G.nstates (1, 2, 4) >>> G.isdtime() @@ -2597,14 +2594,12 @@ def tf2io(*args, **kwargs): Examples -------- - >>> from control import tf2ss, tf - >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] - >>> sys1 = tf2ss(num, den) + >>> sys1 = ct.tf2ss(num, den) - >>> sys_tf = tf(num, den) - >>> G = tf2ss(sys_tf) + >>> sys_tf = ct.tf(num, den) + >>> G = ct.tf2ss(sys_tf) >>> G.ninputs, G.noutputs, G.nstates (2, 2, 8) @@ -2783,15 +2778,13 @@ def interconnect( Examples -------- - >>> from control import LinearIOSystem, interconnect, rss, summing_junction, tf - - >>> P = LinearIOSystem( - ... rss(2, 2, 2, strictly_proper=True), + >>> P = ct.LinearIOSystem( + ... ct.rss(2, 2, 2, strictly_proper=True), ... name='P') - >>> C = LinearIOSystem( - ... rss(2, 2, 2), + >>> C = ct.LinearIOSystem( + ... ct.rss(2, 2, 2), ... name='C') - >>> T = interconnect( + >>> T = ct.interconnect( ... [P, C], ... connections = [ ... ['P.u[0]', 'C.y[0]'], ['P.u[1]', 'C.y[1]'], @@ -2804,10 +2797,10 @@ def interconnect( :func:`~control.summing_block` function and the ability to automatically interconnect signals with the same names: - >>> P = tf(1, [1, 0], inputs='u', outputs='y') - >>> C = tf(10, [1, 1], inputs='e', outputs='u') - >>> sumblk = summing_junction(inputs=['r', '-y'], output='e') - >>> T = interconnect([P, C, sumblk], inputs='r', outputs='y') + >>> P = ct.tf(1, [1, 0], inputs='u', outputs='y') + >>> C = ct.tf(10, [1, 1], inputs='e', outputs='u') + >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') + >>> T = ct.interconnect([P, C, sumblk], inputs='r', outputs='y') Notes ----- @@ -3009,12 +3002,10 @@ def summing_junction( Examples -------- - >>> from control import tf2io, summing_junction, interconnect, tf - - >>> P = tf2io(tf(1, [1, 0]), inputs='u', outputs='y') - >>> C = tf2io(tf(10, [1, 1]), inputs='e', outputs='u') - >>> sumblk = summing_junction(inputs=['r', '-y'], output='e') - >>> T = interconnect((P, C, sumblk), inputs='r', outputs='y') + >>> P = ct.tf2io(ct.tf(1, [1, 0]), inputs='u', outputs='y') + >>> C = ct.tf2io(ct.tf(10, [1, 1]), inputs='e', outputs='u') + >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') + >>> T = ct.interconnect((P, C, sumblk), inputs='r', outputs='y') >>> T.ninputs, T.noutputs, T.nstates (1, 1, 2) diff --git a/control/lti.py b/control/lti.py index acbf3c8c9..c221832b5 100644 --- a/control/lti.py +++ b/control/lti.py @@ -326,9 +326,8 @@ def damp(sys, doprint=True): Examples -------- - >>> from control import damp, tf - >>> G = tf([1],[1, 4]) - >>> wn, damping, poles = damp(G) # doctest: +SKIP + >>> G = ct.tf([1],[1, 4]) + >>> wn, damping, poles = ct.damp(G) # doctest: +SKIP _____Eigenvalue______ Damping___ Frequency_ -4 1 4 @@ -394,10 +393,8 @@ def evalfr(sys, x, squeeze=None): Examples -------- - >>> from control import ss, evalfr - - >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> fresp = evalfr(G, 1j) # evaluate at s = 1j + >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> fresp = ct.evalfr(G, 1j) # evaluate at s = 1j .. todo:: Add example with MIMO system @@ -457,10 +454,8 @@ def frequency_response(sys, omega, squeeze=None): Examples -------- - >>> from control import ss, freqresp - - >>> G = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> mag, phase, omega = freqresp(G, [0.1, 1., 10.]) + >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> mag, phase, omega = ct.freqresp(G, [0.1, 1., 10.]) .. todo:: Add example with MIMO system @@ -494,9 +489,10 @@ def dcgain(sys): the origin, (nan + nanj) if there is a pole/zero cancellation at the origin. - >>> from control import dcgain, tf - >>> G = tf([1], [1, 2]) - >>> dcgain(G) # doctest: +SKIP + Examples + -------- + >>> G = ct.tf([1], [1, 2]) + >>> ct.dcgain(G) # doctest: +SKIP 0.5 """ diff --git a/control/margins.py b/control/margins.py index 955dfd278..28daaf358 100644 --- a/control/margins.py +++ b/control/margins.py @@ -476,10 +476,8 @@ def phase_crossover_frequencies(sys): Examples -------- - >>> from control import phase_crossover_frequencies, tf - - >>> G = tf([1], [1, 2, 3, 4]) - >>> x_omega, x_gain = phase_crossover_frequencies(G) + >>> G = ct.tf([1], [1, 2, 3, 4]) + >>> x_omega, x_gain = ct.phase_crossover_frequencies(G) """ # Convert to a transfer function @@ -539,10 +537,8 @@ def margin(*args): Examples -------- - >>> from control import margin, tf - - >>> G = tf(1, [1, 2, 1, 0]) - >>> gm, pm, wcg, wcp = margin(G) + >>> G = ct.tf(1, [1, 2, 1, 0]) + >>> gm, pm, wcg, wcp = ct.margin(G) """ if len(args) == 1: diff --git a/control/matlab/timeresp.py b/control/matlab/timeresp.py index cf57952f1..5420bfdf4 100644 --- a/control/matlab/timeresp.py +++ b/control/matlab/timeresp.py @@ -276,7 +276,6 @@ def lsim(sys, U=0., T=None, X0=0.): Examples -------- - >>> import numpy as np >>> from control.matlab import rss, lsim >>> G = rss(4) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index b17318edf..1c4ee053a 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -46,7 +46,7 @@ def bode(*args, **kwargs): Examples -------- - >>> from control import ss, bode + >>> from control.matlab import ss, bode >>> sys = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") >>> mag, phase, omega = bode(sys) diff --git a/control/modelsimp.py b/control/modelsimp.py index 93411d264..05ac4827e 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -84,10 +84,8 @@ def hsvd(sys): Examples -------- - >>> from control import tf, tf2ss, hsvd - - >>> G = tf2ss(tf([1],[1, 2])) - >>> H = hsvd(G) + >>> G = ct.tf2ss(ct.tf([1],[1, 2])) + >>> H = ct.hsvd(G) >>> H[0] 0.25 @@ -140,10 +138,8 @@ def modred(sys, ELIM, method='matchdc'): Examples -------- - >>> from control import rss, modred - - >>> G = rss(4) - >>> Gr = modred(G, [0,2], method='matchdc') + >>> G = ct.rss(4) + >>> Gr = ct.modred(G, [0,2], method='matchdc') >>> Gr.nstates 2 @@ -266,10 +262,8 @@ def balred(sys, orders, method='truncate', alpha=None): Examples -------- - >>> from control import balred, rss - - >>> G = rss(4) - >>> Gr = balred(G, orders=2, method='matchdc') + >>> G = ct.rss(4) + >>> Gr = ct.balred(G, orders=2, method='matchdc') >>> Gr.nstates 2 @@ -462,13 +456,10 @@ def markov(Y, U, m=None, transpose=False): Examples -------- - >>> import numpy as np - >>> from control import forced_response, markov, tf - >>> 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) + >>> 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) diff --git a/control/optimal.py b/control/optimal.py index 9a8218a91..77be02d2a 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -6,6 +6,12 @@ """The :mod:`~control.optimal` module provides support for optimization-based controllers for nonlinear systems with state and input constraints. +The docstring examples assume that the following import commands:: + + >>> import numpy as np + >>> import control as ct + >>> import control.optimal as obc + """ import numpy as np diff --git a/control/robust.py b/control/robust.py index 2c2c8465e..9874be9dc 100644 --- a/control/robust.py +++ b/control/robust.py @@ -70,23 +70,21 @@ def h2syn(P, nmeas, ncon): Examples -------- - >>> from control import h2syn, interconnect, ss, tf, feedback - >>> # Unstable first order SISI system - >>> G = tf([1],[1,-1], inputs=['u'], outputs=['y']) + >>> G = ct.tf([1],[1,-1], inputs=['u'], outputs=['y']) >>> max(G.poles()) < 0 # Is G stable? False >>> # Create partitioned system with trivial unity systems - >>> P11 = tf([0], [1], inputs=['w'], outputs=['z']) - >>> P12 = tf([1], [1], inputs=['u'], outputs=['z']) - >>> P21 = tf([1], [1], inputs=['w'], outputs=['y']) + >>> P11 = ct.tf([0], [1], inputs=['w'], outputs=['z']) + >>> P12 = ct.tf([1], [1], inputs=['u'], outputs=['z']) + >>> P21 = ct.tf([1], [1], inputs=['w'], outputs=['y']) >>> P22 = G - >>> P = interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y']) + >>> P = ct.interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y']) >>> # Synthesize H2 optimal stabilizing controller - >>> K = h2syn(P, nmeas=1, ncon=1) - >>> T = feedback(G, K, sign=1) + >>> K = ct.h2syn(P, nmeas=1, ncon=1) + >>> T = ct.feedback(G, K, sign=1) >>> max(T.poles()) < 0 # Is T stable? True @@ -152,23 +150,21 @@ def hinfsyn(P, nmeas, ncon): Examples -------- - >>> from control import hinfsyn, interconnect, ss, tf, feedback - >>> # Unstable first order SISI system - >>> G = tf([1],[1,-1], inputs=['u'], outputs=['y']) + >>> G = ct.tf([1],[1,-1], inputs=['u'], outputs=['y']) >>> max(G.poles()) < 0 False >>> # Create partitioned system with trivial unity systems - >>> P11 = tf([0], [1], inputs=['w'], outputs=['z']) - >>> P12 = tf([1], [1], inputs=['u'], outputs=['z']) - >>> P21 = tf([1], [1], inputs=['w'], outputs=['y']) + >>> P11 = ct.tf([0], [1], inputs=['w'], outputs=['z']) + >>> P12 = ct.tf([1], [1], inputs=['u'], outputs=['z']) + >>> P21 = ct.tf([1], [1], inputs=['w'], outputs=['y']) >>> P22 = G - >>> P = interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y']) + >>> P = ct.interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y']) >>> # Synthesize Hinf optimal stabilizing controller - >>> K, CL, gam, rcond = hinfsyn(P, nmeas=1, ncon=1) - >>> T = feedback(G, K, sign=1) + >>> K, CL, gam, rcond = ct.hinfsyn(P, nmeas=1, ncon=1) + >>> T = ct.feedback(G, K, sign=1) >>> max(T.poles()) < 0 True diff --git a/control/sisotool.py b/control/sisotool.py index 944b6f0d1..968a66956 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -81,10 +81,8 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, Examples -------- - >>> from control import sisotool, tf - - >>> G = tf([1000], [1,25,100,0]) - >>> sisotool(G) # doctest: +SKIP + >>> G = ct.tf([1000], [1,25,100,0]) + >>> ct.sisotool(G) # doctest: +SKIP """ from .rlocus import root_locus diff --git a/control/statefbk.py b/control/statefbk.py index 57479c7a1..4a8e3b293 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -120,11 +120,9 @@ def place(A, B, p): Examples -------- - >>> from control import place - >>> A = [[-1, -1], [0, 1]] >>> B = [[0], [1]] - >>> K = place(A, B, [-2, -5]) + >>> K = ct.place(A, B, [-2, -5]) See Also -------- @@ -994,11 +992,8 @@ def ctrb(A, B): Examples -------- - >>> import numpy as np - >>> from control import ctrb, tf, tf2ss - - >>> G = tf2ss(tf([1],[1, 2, 3])) - >>> C = ctrb(G.A, G.B) + >>> G = ct.tf2ss(ct.tf([1],[1, 2, 3])) + >>> C = ct.ctrb(G.A, G.B) >>> np.linalg.matrix_rank(C) 2 @@ -1036,11 +1031,8 @@ def obsv(A, C): Examples -------- - >>> import numpy as np - >>> from control import obsv, tf, tf2ss - - >>> G = tf2ss(tf([1],[1, 2, 3])) - >>> C = obsv(G.A, G.C) + >>> G = ct.tf2ss(ct.tf([1],[1, 2, 3])) + >>> C = ct.obsv(G.A, G.C) >>> np.linalg.matrix_rank(C) 2 @@ -1092,13 +1084,11 @@ def gram(sys, type): Examples -------- - >>> from control import gram, rss - - >>> G = rss(4) - >>> Wc = gram(G, 'c') - >>> Wo = gram(G, 'o') - >>> Rc = gram(G, 'cf') # where Wc = Rc' * Rc - >>> Ro = gram(G, 'of') # where Wo = Ro' * Ro + >>> G = ct.rss(4) + >>> Wc = ct.gram(G, 'c') + >>> Wo = ct.gram(G, 'o') + >>> Rc = ct.gram(G, 'cf') # where Wc = Rc' * Rc + >>> Ro = ct.gram(G, 'of') # where Wo = Ro' * Ro """ diff --git a/control/statesp.py b/control/statesp.py index a6f1756b2..ca9c19acb 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1362,9 +1362,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> from control import StateSpace - >>> - >>> G = StateSpace(0, 1, 1, 0) + >>> G = ct.StateSpace(0, 1, 1, 0) >>> sysd = G.sample(0.5, method='bilinear') """ @@ -1891,14 +1889,12 @@ def tf2ss(*args, **kwargs): Examples -------- - >>> from control import tf, tf2ss - >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] - >>> sys1 = tf2ss(num, den) + >>> sys1 = ct.tf2ss(num, den) - >>> sys_tf = tf(num, den) - >>> sys2 = tf2ss(sys_tf) + >>> sys_tf = ct.tf(num, den) + >>> sys2 = ct.tf2ss(sys_tf) """ diff --git a/control/timeresp.py b/control/timeresp.py index 5f001848c..3264a87e6 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -916,12 +916,9 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, Examples -------- - >>> import numpy as np - >>> from control import forced_response, rss - - >>> G = rss(4) + >>> G = ct.rss(4) >>> T = np.linspace(0,10) - >>> T, yout = forced_response(G, T=T) + >>> T, yout = ct.forced_response(G, T=T) See :ref:`time-series-convention` and :ref:`package-configuration-parameters`. @@ -1333,10 +1330,8 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, Examples -------- - >>> from control import step_response, rss - - >>> G = rss(4) - >>> T, yout = step_response(G) + >>> G = ct.rss(4) + >>> T, yout = ct.step_response(G) """ # Create the time and input vectors @@ -1448,10 +1443,8 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, Examples -------- - >>> from control import step_info, TransferFunction - - >>> sys = TransferFunction([-1, 1], [1, 1, 1]) - >>> S = step_info(sys) + >>> sys = ct.TransferFunction([-1, 1], [1, 1, 1]) + >>> S = ct.step_info(sys) >>> for k in S: ... print(f"{k}: {S[k]:3.4}") ... @@ -1469,16 +1462,14 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, characteristics for the second input and specify a 5% error until the signal is considered settled. - >>> from numpy import sqrt - >>> from control import step_info, StateSpace - - >>> sys = StateSpace([[-1., -1.], + >>> from math import sqrt + >>> sys = ct.StateSpace([[-1., -1.], ... [1., 0.]], ... [[-1./sqrt(2.), 1./sqrt(2.)], ... [0, 0]], ... [[sqrt(2.), -sqrt(2.)]], ... [[0, 0]]) - >>> S = step_info(sys, T=10., SettlingTimeThreshold=0.05) + >>> S = ct.step_info(sys, T=10., SettlingTimeThreshold=0.05) >>> for k, v in S[0][1].items(): ... print(f"{k}: {float(v):3.4}") RiseTime: 1.212 @@ -1696,10 +1687,8 @@ def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None, Examples -------- - >>> from control import initial_response, rss - - >>> G = rss(4) - >>> T, yout = initial_response(G) + >>> G = ct.rss(4) + >>> T, yout = ct.initial_response(G) """ squeeze, sys = _get_ss_simo(sys, input, output, squeeze=squeeze) @@ -1814,10 +1803,8 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, Examples -------- - >>> from control import impulse_response, rss - - >>> G = rss(4) - >>> T, yout = impulse_response(G) + >>> G = ct.rss(4) + >>> T, yout = ct.impulse_response(G) """ # Convert to state space so that we can simulate diff --git a/control/xferfcn.py b/control/xferfcn.py index 64daa9a08..b20b1229a 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -141,9 +141,7 @@ class TransferFunction(LTI): discrete time. These can be used to create variables that allow algebraic creation of transfer functions. For example, - >>> from control import TransferFunction - - >>> s = TransferFunction.s + >>> s = ct.TransferFunction.s >>> G = (s + 1)/(s**2 + 2*s + 1) """ @@ -1147,9 +1145,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> from control import tf - - >>> sys = tf(1, [1,1]) + >>> sys = ct.tf(1, [1,1]) >>> sysd = sys.sample(0.5, method='bilinear') """ @@ -1209,8 +1205,7 @@ def dcgain(self, warn_infinite=False): Examples -------- - >>> from control import tf - >>> G = tf([1],[1, 4]) + >>> G = ct.tf([1],[1, 4]) >>> G.dcgain() 0.25 @@ -1541,22 +1536,20 @@ def tf(*args, **kwargs): Examples -------- - >>> from control import tf, ss - >>> # Create a MIMO transfer function object >>> # The transfer function from the 2nd input to the 1st output is >>> # (3s + 4) / (6s^2 + 5s + 4). >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] - >>> sys1 = tf(num, den) + >>> sys1 = ct.tf(num, den) >>> # Create a variable 's' to allow algebra operations for SISO systems - >>> s = tf('s') + >>> s = ct.tf('s') >>> G = (s + 1)/(s**2 + 2*s + 1) >>> # Convert a StateSpace to a TransferFunction object. - >>> sys_ss = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> sys2 = tf(sys1) + >>> sys_ss = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> sys2 = ct.tf(sys1) """ @@ -1696,16 +1689,14 @@ def ss2tf(*args, **kwargs): Examples -------- - >>> from control import ss, ss2tf - >>> A = [[1., -2], [3, -4]] >>> B = [[5.], [7]] >>> C = [[6., 8]] >>> D = [[9.]] - >>> sys1 = ss2tf(A, B, C, D) + >>> sys1 = ct.ss2tf(A, B, C, D) - >>> sys_ss = ss(A, B, C, D) - >>> sys2 = ss2tf(sys_ss) + >>> sys_ss = ct.ss(A, B, C, D) + >>> sys2 = ct.ss2tf(sys_ss) """ diff --git a/doc/conf.py b/doc/conf.py index 9e78a47b7..7cfa4b4f6 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -270,3 +270,13 @@ def linkcode_resolve(domain, info): author, 'PythonControlLibrary', 'One line description of project.', 'Miscellaneous'), ] + +# -- Options for doctest ---------------------------------------------- + +# Import control as ct +doctest_global_setup = """ +import numpy as np +import control as ct +import control.optimal as obc +import control.flatsys as fs +""" diff --git a/doc/optimal.rst b/doc/optimal.rst index 807b9b9c6..e84cd2d98 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -225,18 +225,18 @@ penalizes the state and input using quadratic cost functions:: Q = np.diag([0, 0, 0.1]) # don't turn too sharply R = np.diag([1, 1]) # keep inputs small P = np.diag([1000, 1000, 1000]) # get close to final point - traj_cost = opt.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) - term_cost = opt.quadratic_cost(vehicle, P, 0, x0=xf) + traj_cost = obc.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) + term_cost = obc.quadratic_cost(vehicle, P, 0, x0=xf) We also constraint the maximum turning rate to 0.1 radians (about 6 degees) and constrain the velocity to be in the range of 9 m/s to 11 m/s:: - constraints = [ opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] + constraints = [ obc.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] Finally, we solve for the optimal inputs:: timepts = np.linspace(0, Tf, 10, endpoint=True) - result = opt.solve_ocp( + result = obc.solve_ocp( vehicle, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, initial_guess=u0) From 98fdb35f06d0ab02d61747e8f807dd1fa6ba842c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 24 Mar 2023 21:54:03 -0700 Subject: [PATCH 0214/1025] clean up/simplify docstring examples --- control/bdalg.py | 10 +++++----- control/canonical.py | 34 ++++++++++++++-------------------- control/config.py | 3 --- control/ctrlutil.py | 4 ++-- control/delay.py | 12 ++++++------ control/descfcn.py | 44 ++++++++++++++++++++------------------------ control/exception.py | 28 +++------------------------- control/frdata.py | 2 +- control/freqplot.py | 13 +++++++------ control/iosys.py | 16 ++++++---------- control/lti.py | 8 ++++---- control/modelsimp.py | 4 ++-- control/phaseplot.py | 3 --- control/robust.py | 7 ++++--- control/sisotool.py | 2 +- control/statefbk.py | 4 ++-- control/statesp.py | 2 +- control/timeresp.py | 2 +- control/xferfcn.py | 12 ++++++------ doc/control.rst | 3 --- 20 files changed, 85 insertions(+), 128 deletions(-) diff --git a/control/bdalg.py b/control/bdalg.py index 911a20b53..0b1d481c8 100644 --- a/control/bdalg.py +++ b/control/bdalg.py @@ -190,13 +190,13 @@ def negate(sys): Examples -------- - >>> G = ct.tf([2],[1, 1]) - >>> G.dcgain() > 0 - True + >>> G = ct.tf([2], [1, 1]) + >>> G.dcgain() + 2.0 >>> Gn = ct.negate(G) # Same as sys2 = -sys1. - >>> Gn.dcgain() < 0 - True + >>> Gn.dcgain() + -2.0 """ return -sys diff --git a/control/canonical.py b/control/canonical.py index 436db667b..d02cce98e 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -39,21 +39,20 @@ def canonical_form(xsys, form='reachable'): Examples -------- - >>> G = ct.tf([1],[1, 3, 2]) - >>> Gs = ct.tf2ss(G) + >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.canonical_form(Gs) # default reachable - >>> Gc.B # doctest: +SKIP - matrix([[1.], - [0.]]) + >>> Gc.B + array([[1.], + [0.]]) >>> Gc, T = ct.canonical_form(Gs, 'observable') - >>> Gc.C # doctest: +SKIP - matrix([[1., 0.]]) + >>> Gc.C + array([[1., 0.]]) >>> Gc, T = ct.canonical_form(Gs, 'modal') - >>> Gc.A # doctest: +SKIP - matrix([[-2., 0.], - [ 0., -1.]]) + >>> Gc.A + array([[-2., 0.], + [ 0., -1.]]) """ @@ -87,8 +86,7 @@ def reachable_form(xsys): Examples -------- - >>> G = ct.tf([1],[1, 3, 2]) - >>> Gs = ct.tf2ss(G) + >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.reachable_form(Gs) # default reachable >>> Gc.B # doctest: +SKIP matrix([[1.], @@ -151,8 +149,7 @@ def observable_form(xsys): Examples -------- - >>> G = ct.tf([1],[1, 3, 2]) - >>> Gs = ct.tf2ss(G) + >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.observable_form(Gs) >>> Gc.C # doctest: +SKIP matrix([[1., 0.]]) @@ -218,8 +215,7 @@ def similarity_transform(xsys, T, timescale=1, inverse=False): Examples -------- - >>> G = ct.tf([1],[1, 3, 2]) - >>> Gs = ct.tf2ss(G) + >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gs.A # doctest: +SKIP matrix([[-3., -2.], [ 1., 0.]]) @@ -426,8 +422,7 @@ def bdschur(a, condmax=None, sort=None): Examples -------- - >>> G = ct.tf([1],[1, 3, 2]) - >>> Gs = ct.tf2ss(G) + >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> amodal, tmodal, blksizes = ct.bdschur(Gs.A) >>> amodal #doctest: +SKIP array([[-2., 0.], @@ -502,8 +497,7 @@ def modal_form(xsys, condmax=None, sort=False): Examples -------- - >>> G = ct.tf([1],[1, 3, 2]) - >>> Gs = ct.tf2ss((G)) + >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.modal_form(Gs) # default reachable >>> Gc.A # doctest: +SKIP matrix([[-2., 0.], diff --git a/control/config.py b/control/config.py index 78eaeeb6f..abf2077af 100644 --- a/control/config.py +++ b/control/config.py @@ -74,11 +74,8 @@ def set_defaults(module, **keywords): >>> ct.set_defaults('freqplot', number_of_samples=100) >>> ct.defaults['freqplot.number_of_samples'] 100 - >>> # do some customized freqplotting >>> ct.reset_defaults() - >>> ct.defaults['freqplot.number_of_samples'] - 1000 """ if not isinstance(module, str): diff --git a/control/ctrlutil.py b/control/ctrlutil.py index f745e95ee..fa7b91ee5 100644 --- a/control/ctrlutil.py +++ b/control/ctrlutil.py @@ -90,11 +90,11 @@ def issys(obj): Examples -------- - >>> G = ct.tf([1],[1, 1]) + >>> G = ct.tf([1], [1, 1]) >>> ct.issys(G) True - >>> K = ct.InputOutputSystem() # Not necessarily LTI! + >>> K = np.array([[1, 1]]) >>> ct.issys(K) False diff --git a/control/delay.py b/control/delay.py index 3779f1ddb..d22e44107 100644 --- a/control/delay.py +++ b/control/delay.py @@ -78,13 +78,13 @@ def pade(T, n=1, numdeg=None): Examples -------- >>> delay = 1 - >>> num, den = ct.pade(delay, 5) - >>> len(num), len(den) - (6, 6) + >>> num, den = ct.pade(delay, 3) + >>> num, den + ([-1.0, 12.0, -60.0, 120.0], [1.0, 12.0, 60.0, 120.0]) - >>> num, den = ct.pade(delay, 5, -2) - >>> len(num), len(den) - (4, 6) + >>> num, den = ct.pade(delay, 3, -2) + >>> num, den + ([-6.0, 24.0], [1.0, 6.0, 18.0, 24.0]) """ if numdeg is None: diff --git a/control/descfcn.py b/control/descfcn.py index 2cc58c75b..715d61191 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -249,9 +249,8 @@ def describing_function_plot( >>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> points = ct.describing_function_plot(H_simple, F_saturation, amp) - >>> len(points) - 1 + >>> ct.describing_function_plot(H_simple, F_saturation, amp) + [(3.343844998258643, 1.4142293090899216)] """ # Decide whether to turn on warnings or not @@ -366,12 +365,11 @@ class saturation_nonlinearity(DescribingFunctionNonlinearity): Examples -------- >>> nl = ct.saturation_nonlinearity(5) - >>> f = lambda x: round(nl(x)) - >>> f(1) + >>> nl(1) 1 - >>> f(10) + >>> nl(10) 5 - >>> f(-10) + >>> nl(-10) -5 """ @@ -430,16 +428,15 @@ class relay_hysteresis_nonlinearity(DescribingFunctionNonlinearity): Examples -------- >>> nl = ct.relay_hysteresis_nonlinearity(1, 2) - >>> f = lambda x: round(nl(x)) - >>> f(0) + >>> nl(0) -1 - >>> f(1) # not enough for switching on + >>> nl(1) # not enough for switching on -1 - >>> f(5) + >>> nl(5) 1 - >>> f(-1) # not enough for switching off + >>> nl(-1) # not enough for switching off 1 - >>> f(-5) + >>> nl(-5) -1 """ @@ -500,19 +497,18 @@ class friction_backlash_nonlinearity(DescribingFunctionNonlinearity): Examples -------- >>> nl = ct.friction_backlash_nonlinearity(2) # backlash of +/- 1 - >>> f = lambda x: round(nl(x)) - >>> f(0) - 0 - >>> f(1) # not enough to overcome backlash + >>> nl(0) 0 - >>> f(2) - 1 - >>> f(1) - 1 - >>> f(0) # not enough to overcome backlash - 1 - >>> f(-1) + >>> nl(1) # not enough to overcome backlash 0 + >>> nl(2) + 1.0 + >>> nl(1) + 1.0 + >>> nl(0) # not enough to overcome backlash + 1.0 + >>> nl(-1) + 0.0 """ diff --git a/control/exception.py b/control/exception.py index d308dc7f6..e4758cc49 100644 --- a/control/exception.py +++ b/control/exception.py @@ -63,14 +63,7 @@ class ControlNotImplemented(NotImplementedError): # Utility function to see if slycot is installed slycot_installed = None def slycot_check(): - """Return True if slycot is installed, otherwise False. - - Examples - -------- - >>> ct.slycot_check() - True - - """ + """Return True if slycot is installed, otherwise False.""" global slycot_installed if slycot_installed is None: try: @@ -84,15 +77,7 @@ def slycot_check(): # Utility function to see if pandas is installed pandas_installed = None def pandas_check(): - """Return True if pandas is installed, otherwise False. - - Examples - -------- - >>> ct.pandas_check() - True - - """ - + """Return True if pandas is installed, otherwise False.""" global pandas_installed if pandas_installed is None: try: @@ -105,14 +90,7 @@ def pandas_check(): # Utility function to see if cvxopt is installed cvxopt_installed = None def cvxopt_check(): - """Return True if cvxopt is installed, otherwise False. - - Examples - -------- - >>> ct.cvxopt_check() - True - - """ + """Return True if cvxopt is installed, otherwise False.""" global cvxopt_installed if cvxopt_installed is None: try: diff --git a/control/frdata.py b/control/frdata.py index 0783aaa31..83873a120 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -672,7 +672,7 @@ def _convert_to_FRD(sys, omega, inputs=1, outputs=1): a frequency response data at the specified omega. If sys is a scalar, then the number of inputs and outputs can be specified manually, as in: -+ + >>> import numpy as np >>> from control.frdata import _convert_to_FRD diff --git a/control/freqplot.py b/control/freqplot.py index 08ba0ab16..c20fb189e 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -174,7 +174,7 @@ def bode_plot(syslist, omega=None, Examples -------- - >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) >>> Gmag, Gphase, Gomega = ct.bode_plot(G) """ @@ -692,7 +692,7 @@ def nyquist_plot( Examples -------- - >>> G = ct.zpk([],[-1,-2,-3], gain=100) + >>> G = ct.zpk([], [-1, -2, -3], gain=100) >>> ct.nyquist_plot(G) 2 @@ -1262,8 +1262,8 @@ def gangof4_plot(P, C, omega=None, **kwargs): Examples -------- - >>> P = ct.tf([1],[1, 1]) - >>> C = ct.tf([2],[1]) + >>> P = ct.tf([1], [1, 1]) + >>> C = ct.tf([2], [1]) >>> ct.gangof4_plot(P, C) """ @@ -1411,7 +1411,8 @@ def singular_values_plot(syslist, omega=None, -------- >>> omegas = np.logspace(-4, 1, 1000) >>> den = [75, 1] - >>> G = ct.tf([[[87.8], [-86.4]], [[108.2], [-109.6]]], [[den, den], [den, den]]) + >>> G = ct.tf([[[87.8], [-86.4]], [[108.2], [-109.6]]], + ... [[den, den], [den, den]]) >>> sigmas, omegas = ct.singular_values_plot(G, omega=omegas, plot=False) >>> sigmas, omegas = ct.singular_values_plot(G, 0.0, plot=False) @@ -1630,7 +1631,7 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, Examples -------- - >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) >>> omega = ct._default_frequency_range(G) >>> omega.min(), omega.max() (0.1, 100.0) diff --git a/control/iosys.py b/control/iosys.py index 589d81add..97e1fb63d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2373,7 +2373,7 @@ def ss(*args, **kwargs): -------- Create a Linear I/O system object from matrices. - >>> G = ct.ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) + >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) Convert a TransferFunction to a StateSpace object. @@ -2778,12 +2778,8 @@ def interconnect( Examples -------- - >>> P = ct.LinearIOSystem( - ... ct.rss(2, 2, 2, strictly_proper=True), - ... name='P') - >>> C = ct.LinearIOSystem( - ... ct.rss(2, 2, 2), - ... name='C') + >>> P = ct.rss(2, 2, 2, strictly_proper=True, name='P') + >>> C = ct.rss(2, 2, 2, name='C') >>> T = ct.interconnect( ... [P, C], ... connections = [ @@ -3002,10 +2998,10 @@ def summing_junction( Examples -------- - >>> P = ct.tf2io(ct.tf(1, [1, 0]), inputs='u', outputs='y') - >>> C = ct.tf2io(ct.tf(10, [1, 1]), inputs='e', outputs='u') + >>> P = ct.tf2io(1, [1, 0], inputs='u', outputs='y') + >>> C = ct.tf2io(10, [1, 1], inputs='e', outputs='u') >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') - >>> T = ct.interconnect((P, C, sumblk), inputs='r', outputs='y') + >>> T = ct.interconnect([P, C, sumblk], inputs='r', outputs='y') >>> T.ninputs, T.noutputs, T.nstates (1, 1, 2) diff --git a/control/lti.py b/control/lti.py index c221832b5..6dc3bc62c 100644 --- a/control/lti.py +++ b/control/lti.py @@ -326,8 +326,8 @@ def damp(sys, doprint=True): Examples -------- - >>> G = ct.tf([1],[1, 4]) - >>> wn, damping, poles = ct.damp(G) # doctest: +SKIP + >>> G = ct.tf([1], [1, 4]) + >>> wn, damping, poles = ct.damp(G) _____Eigenvalue______ Damping___ Frequency_ -4 1 4 @@ -393,7 +393,7 @@ def evalfr(sys, x, squeeze=None): Examples -------- - >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) >>> fresp = ct.evalfr(G, 1j) # evaluate at s = 1j .. todo:: Add example with MIMO system @@ -454,7 +454,7 @@ def frequency_response(sys, omega, squeeze=None): Examples -------- - >>> G = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) >>> mag, phase, omega = ct.freqresp(G, [0.1, 1., 10.]) .. todo:: diff --git a/control/modelsimp.py b/control/modelsimp.py index 05ac4827e..f7b15093d 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -84,7 +84,7 @@ def hsvd(sys): Examples -------- - >>> G = ct.tf2ss(ct.tf([1],[1, 2])) + >>> G = ct.tf2ss([1], [1, 2]) >>> H = ct.hsvd(G) >>> H[0] 0.25 @@ -139,7 +139,7 @@ def modred(sys, ELIM, method='matchdc'): Examples -------- >>> G = ct.rss(4) - >>> Gr = ct.modred(G, [0,2], method='matchdc') + >>> Gr = ct.modred(G, [0, 2], method='matchdc') >>> Gr.nstates 2 diff --git a/control/phaseplot.py b/control/phaseplot.py index 6a4be5ca6..91d7b79b0 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -115,9 +115,6 @@ def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, -------- box_grid : construct box-shaped grid of initial conditions - Examples - -------- - """ # diff --git a/control/robust.py b/control/robust.py index 9874be9dc..a0e53d199 100644 --- a/control/robust.py +++ b/control/robust.py @@ -71,7 +71,7 @@ def h2syn(P, nmeas, ncon): Examples -------- >>> # Unstable first order SISI system - >>> G = ct.tf([1],[1,-1], inputs=['u'], outputs=['y']) + >>> G = ct.tf([1], [1, -1], inputs=['u'], outputs=['y']) >>> max(G.poles()) < 0 # Is G stable? False @@ -80,7 +80,8 @@ def h2syn(P, nmeas, ncon): >>> P12 = ct.tf([1], [1], inputs=['u'], outputs=['z']) >>> P21 = ct.tf([1], [1], inputs=['w'], outputs=['y']) >>> P22 = G - >>> P = ct.interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y']) + >>> P = ct.interconnect([P11, P12, P21, P22], + ... inplist=['w', 'u'], outlist=['z', 'y']) >>> # Synthesize H2 optimal stabilizing controller >>> K = ct.h2syn(P, nmeas=1, ncon=1) @@ -151,7 +152,7 @@ def hinfsyn(P, nmeas, ncon): Examples -------- >>> # Unstable first order SISI system - >>> G = ct.tf([1],[1,-1], inputs=['u'], outputs=['y']) + >>> G = ct.tf([1], [1,-1], inputs=['u'], outputs=['y']) >>> max(G.poles()) < 0 False diff --git a/control/sisotool.py b/control/sisotool.py index 968a66956..c1b260d08 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -81,7 +81,7 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, Examples -------- - >>> G = ct.tf([1000], [1,25,100,0]) + >>> G = ct.tf([1000], [1, 25, 100, 0]) >>> ct.sisotool(G) # doctest: +SKIP """ diff --git a/control/statefbk.py b/control/statefbk.py index 4a8e3b293..20d99dff6 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -992,7 +992,7 @@ def ctrb(A, B): Examples -------- - >>> G = ct.tf2ss(ct.tf([1],[1, 2, 3])) + >>> G = ct.tf2ss([1], [1, 2, 3]) >>> C = ct.ctrb(G.A, G.B) >>> np.linalg.matrix_rank(C) 2 @@ -1031,7 +1031,7 @@ def obsv(A, C): Examples -------- - >>> G = ct.tf2ss(ct.tf([1],[1, 2, 3])) + >>> G = ct.tf2ss([1], [1, 2, 3]) >>> C = ct.obsv(G.A, G.C) >>> np.linalg.matrix_rank(C) 2 diff --git a/control/statesp.py b/control/statesp.py index ca9c19acb..41f92ae21 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1362,7 +1362,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> G = ct.StateSpace(0, 1, 1, 0) + >>> G = ct.ss(0, 1, 1, 0) >>> sysd = G.sample(0.5, method='bilinear') """ diff --git a/control/timeresp.py b/control/timeresp.py index 3264a87e6..638a07329 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -917,7 +917,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, Examples -------- >>> G = ct.rss(4) - >>> T = np.linspace(0,10) + >>> T = np.linspace(0, 10) >>> T, yout = ct.forced_response(G, T=T) See :ref:`time-series-convention` and diff --git a/control/xferfcn.py b/control/xferfcn.py index b20b1229a..618b86416 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1145,7 +1145,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Examples -------- - >>> sys = ct.tf(1, [1,1]) + >>> sys = ct.tf(1, [1, 1]) >>> sysd = sys.sample(0.5, method='bilinear') """ @@ -1205,7 +1205,7 @@ def dcgain(self, warn_infinite=False): Examples -------- - >>> G = ct.tf([1],[1, 4]) + >>> G = ct.tf([1], [1, 4]) >>> G.dcgain() 0.25 @@ -1689,10 +1689,10 @@ def ss2tf(*args, **kwargs): Examples -------- - >>> A = [[1., -2], [3, -4]] - >>> B = [[5.], [7]] - >>> C = [[6., 8]] - >>> D = [[9.]] + >>> A = [[-1, -2], [3, -4]] + >>> B = [[5], [6]] + >>> C = [[7, 8]] + >>> D = [[9]] >>> sys1 = ct.ss2tf(A, B, C, D) >>> sys_ss = ct.ss(A, B, C, D) diff --git a/doc/control.rst b/doc/control.rst index 313f2a3f1..8dc8a09a4 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -173,7 +173,6 @@ Utility functions and conversions augw bdschur canonical_form - cvxopt_check damp db2mag isctime @@ -184,13 +183,11 @@ Utility functions and conversions modal_form observable_form pade - pandas_check reachable_form reset_defaults sample_system set_defaults similarity_transform - slycot_check ss2tf ssdata tf2ss From 07cedd8ee2dc378ac273c88564f7b39485baa218 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 24 Mar 2023 22:10:18 -0700 Subject: [PATCH 0215/1025] revert to use classes.pdf in doc/ (instead of classes.png) --- doc/Makefile | 6 +++--- doc/classes.rst | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index a38e94b17..6e1012343 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -15,9 +15,9 @@ help: .PHONY: help Makefile # Rules to create figures -FIGS = classes.png -classes.png: classes.fig - fig2dev -Lpng $< $@ +FIGS = classes.pdf +classes.pdf: classes.fig + fig2dev -Lpdf $< $@ # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). diff --git a/doc/classes.rst b/doc/classes.rst index 3db67915c..87ce457de 100644 --- a/doc/classes.rst +++ b/doc/classes.rst @@ -24,7 +24,7 @@ The following figure illustrates the relationship between the classes and some of the functions that can be used to convert objects from one class to another: -.. image:: classes.png +.. image:: classes.pdf :width: 800 | From 1d1c2890966ff80c606fd337e01e4bad9f75859b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 24 Mar 2023 23:21:30 -0700 Subject: [PATCH 0216/1025] fix up rounding errors and matrix/array --- control/canonical.py | 63 +++++++++++++++++++++++++------------------- control/descfcn.py | 2 +- 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/control/canonical.py b/control/canonical.py index d02cce98e..f5e1d25de 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -17,6 +17,7 @@ __all__ = ['canonical_form', 'reachable_form', 'observable_form', 'modal_form', 'similarity_transform', 'bdschur'] + def canonical_form(xsys, form='reachable'): """Convert a system into canonical form @@ -41,16 +42,16 @@ def canonical_form(xsys, form='reachable'): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.canonical_form(Gs) # default reachable - >>> Gc.B + >>> Gc.B.round() array([[1.], [0.]]) >>> Gc, T = ct.canonical_form(Gs, 'observable') - >>> Gc.C + >>> Gc.C.round() array([[1., 0.]]) >>> Gc, T = ct.canonical_form(Gs, 'modal') - >>> Gc.A + >>> Gc.A.round() # doctest: +SKIP array([[-2., 0.], [ 0., -1.]]) @@ -88,9 +89,9 @@ def reachable_form(xsys): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.reachable_form(Gs) # default reachable - >>> Gc.B # doctest: +SKIP - matrix([[1.], - [0.]]) + >>> Gc.B.round() + array([[1.], + [0.]]) """ # Check to make sure we have a SISO system @@ -151,8 +152,8 @@ def observable_form(xsys): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.observable_form(Gs) - >>> Gc.C # doctest: +SKIP - matrix([[1., 0.]]) + >>> Gc.C.round() + array([[1., 0.]]) """ # Check to make sure we have a SISO system @@ -216,15 +217,15 @@ def similarity_transform(xsys, T, timescale=1, inverse=False): Examples -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) - >>> Gs.A # doctest: +SKIP - matrix([[-3., -2.], - [ 1., 0.]]) + >>> Gs.A.round() + array([[-3., -2.], + [ 1., 0.]]) - >>> T = np.array([[0,1],[1,0]]) + >>> T = np.array([[0, 1], [1, 0]]) >>> Gt = ct.similarity_transform(Gs, T) - >>> Gt.A # doctest: +SKIP - matrix([[ 0., 1.], - [-2., -3.]]) + >>> Gt.A.round() + array([[ 0., 1.], + [-2., -3.]]) """ # Create a new system, starting with a copy of the old one @@ -293,7 +294,8 @@ def _bdschur_condmax_search(aschur, tschur, condmax): Iterates mb03rd with different pmax values until: - result is non-defective; - - or condition number of similarity transform is unchanging despite large pmax; + - or condition number of similarity transform is unchanging + despite large pmax; - or condition number of similarity transform is close to condmax. Parameters @@ -332,22 +334,25 @@ def _bdschur_condmax_search(aschur, tschur, condmax): # get lower bound; try condmax ** 0.5 first pmaxlower = condmax ** 0.5 - amodal, tmodal, blksizes, eigvals = mb03rd(aschur.shape[0], aschur, tschur, pmax=pmaxlower) + amodal, tmodal, blksizes, eigvals = mb03rd( + aschur.shape[0], aschur, tschur, pmax=pmaxlower) if np.linalg.cond(tmodal) <= condmax: reslower = amodal, tmodal, blksizes, eigvals else: pmaxlower = 1.0 - amodal, tmodal, blksizes, eigvals = mb03rd(aschur.shape[0], aschur, tschur, pmax=pmaxlower) + amodal, tmodal, blksizes, eigvals = mb03rd( + aschur.shape[0], aschur, tschur, pmax=pmaxlower) cond = np.linalg.cond(tmodal) if cond > condmax: - msg = 'minimum cond={} > condmax={}; try increasing condmax'.format(cond, condmax) + msg = f"minimum {cond=} > {condmax=}; try increasing condmax" raise RuntimeError(msg) pmax = pmaxlower # phase 1: search for upper bound on pmax for i in range(50): - amodal, tmodal, blksizes, eigvals = mb03rd(aschur.shape[0], aschur, tschur, pmax=pmax) + amodal, tmodal, blksizes, eigvals = mb03rd( + aschur.shape[0], aschur, tschur, pmax=pmax) cond = np.linalg.cond(tmodal) if cond < condmax: pmaxlower = pmax @@ -368,7 +373,8 @@ def _bdschur_condmax_search(aschur, tschur, condmax): # phase 2: bisection search for i in range(50): pmax = (pmaxlower * pmaxupper) ** 0.5 - amodal, tmodal, blksizes, eigvals = mb03rd(aschur.shape[0], aschur, tschur, pmax=pmax) + amodal, tmodal, blksizes, eigvals = mb03rd( + aschur.shape[0], aschur, tschur, pmax=pmax) cond = np.linalg.cond(tmodal) if cond < condmax: @@ -440,7 +446,8 @@ def bdschur(a, condmax=None, sort=None): return a.copy(), np.eye(a.shape[1], a.shape[0]), np.array([]) aschur, tschur = schur(a) - amodal, tmodal, blksizes, eigvals = _bdschur_condmax_search(aschur, tschur, condmax) + amodal, tmodal, blksizes, eigvals = _bdschur_condmax_search( + aschur, tschur, condmax) if sort in ('continuous', 'discrete'): @@ -484,9 +491,11 @@ def modal_form(xsys, condmax=None, sort=False): xsys : StateSpace object System to be transformed, with state `x` condmax : None or float, optional - An upper bound on individual transformations. If None, use `bdschur` default. + An upper bound on individual transformations. If None, use + `bdschur` default. sort : bool, optional - If False (default), Schur blocks will not be sorted. See `bdschur` for sort order. + If False (default), Schur blocks will not be sorted. See `bdschur` + for sort order. Returns ------- @@ -499,9 +508,9 @@ def modal_form(xsys, condmax=None, sort=False): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.modal_form(Gs) # default reachable - >>> Gc.A # doctest: +SKIP - matrix([[-2., 0.], - [ 0., -1.]]) + >>> Gc.A.round() # doctest: +SKIP + array([[-2., 0.], + [ 0., -1.]]) """ diff --git a/control/descfcn.py b/control/descfcn.py index 715d61191..d0f48618c 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -249,7 +249,7 @@ def describing_function_plot( >>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> ct.describing_function_plot(H_simple, F_saturation, amp) + >>> ct.describing_function_plot(H_simple, F_saturation, amp) # doctest: +SKIP [(3.343844998258643, 1.4142293090899216)] """ From 693397339aae50f90329ee89e50b4a21d797014d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 25 Mar 2023 08:53:13 -0700 Subject: [PATCH 0217/1025] update xferfcn._float2str to be more pythonic per @ilayn --- control/xferfcn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 093f3654d..6edb26858 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -75,8 +75,8 @@ } def _float2str(value): - formatter = "{:" + config.defaults.get('xferfcn.floating_point_format', ':.4g') + "}" - return formatter.format(value) + _num_format = config.defaults.get('xferfcn.floating_point_format', ':.4g') + return f"{value:{_num_format}}" class TransferFunction(LTI): From 9373f8e2eb8018f4c1fd925f341990f007f1da43 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 25 Mar 2023 13:03:11 -0700 Subject: [PATCH 0218/1025] fix dtime integral cost calculation; trim unit tests for speed --- control/optimal.py | 5 +- control/tests/stochsys_test.py | 133 ++++++++------------------------- 2 files changed, 31 insertions(+), 107 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index ffd2828fd..bac5ba55c 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -1381,10 +1381,7 @@ def _cost_function(self, xvec): else: # Sum the integral cost over the time (second) indices # cost += self.integral_cost(xhat[:, i], u[:, i], v[:, i], w[:, i]) - cost = sum(map( - self.integral_cost, np.transpose(xhat[:, :-1]), - np.transpose(u[:, :-1]), np.transpose(v[:, :-1]), - np.transpose(w[:, :-1]))) + cost = sum(map(self.integral_cost, xhat.T, u.T, v.T, w.T)) # Terminal cost if self.terminal_cost is not None and self.x0 is not None: diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 1ae0827a5..b2d90e2ab 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -323,7 +323,7 @@ def test_correlation(): tau, Rtau = ct.correlation(T, V) @pytest.mark.slow -@pytest.mark.parametrize('dt', [0, 1]) +@pytest.mark.parametrize('dt', [0, 0.2]) def test_oep(dt): # Define the system to test, with additional input # Use fixed system to avoid random errors (was csys = ct.rss(4, 2, 5)) @@ -336,104 +336,42 @@ def test_oep(dt): sys = csys if dt == 0 else dsys # Create disturbances and noise (fixed, to avoid random errors) - Rv = 0.1 * np.eye(1) # scalar disturbance - Rw = 0.01 * np.eye(sys.noutputs) - timepts = np.arange(0, 10.1, 1) + dist_mag = 1e-1 # disturbance magnitude + meas_mag = 1e-3 # measurement noise magnitude + Rv = dist_mag**2 * np.eye(1) # scalar disturbance + Rw = meas_mag**2 * np.eye(sys.noutputs) + timepts = np.arange(0, 1, 0.2) V = np.array( - [0 if t % 2 == 1 else 1 if t % 4 == 0 else -1 for t in timepts] - ).reshape(1, -1) * 0.1 - W = np.vstack([np.sin(2*timepts), np.cos(3*timepts)]) * 1e-3 + [0 if i % 2 == 1 else 1 if i % 4 == 0 else -1 + for i in range(timepts.size)] + ).reshape(1, -1) * dist_mag / 10 + W = np.vstack([ + np.sin(10*timepts/timepts[-1]), np.cos(15*timepts)/timepts[-1] + ]) * meas_mag / 10 # Generate system data U = np.sin(timepts).reshape(1, -1) - # No disturbances - res0 = ct.input_output_response(sys, timepts, [U, V*0]) - Y0 = res0.outputs - # With disturbances and noise - res1 = ct.input_output_response(sys, timepts, [U, V]) - Y1 = res1.outputs + W + res = ct.input_output_response(sys, timepts, [U, V]) + Y = res.outputs + W # Set up optimal estimation function using Gaussian likelihoods for cost traj_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw) init_cost = lambda xhat, x: (xhat - x) @ (xhat - x) - oep = opt.OptimalEstimationProblem( + oep1 = opt.OptimalEstimationProblem( sys, timepts, traj_cost, terminal_cost=init_cost) - # - # Internal testing to make sure all our functions are OK (developers) - # - if False: - # _cost_function - oep.compute_estimate(Y0, U, X0=0) - assert oep._cost_function(np.hstack( - [res0.states.reshape(-1), V.reshape(-1) * 0])) == 0 - assert oep._cost_function(np.hstack( - [res0.states.reshape(-1), V.reshape(-1)])) != 0 - if sys.isdtime(): - # Collocation contstraint should be satisified for discrete time - np.testing.assert_allclose(oep._collocation_constraint( - np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])), 0) - - # _compute_states_inputs: states and inputs with no noise - # oep.compute_estimate(Y0, U) - xhat, u, v, w = oep._compute_states_inputs( - np.hstack([res0.states.reshape(-1), V.reshape(-1) * 0])) - np.testing.assert_allclose(xhat, res0.states) - np.testing.assert_allclose(u, U.reshape(1, -1)) - np.testing.assert_allclose(v, 0) - np.testing.assert_allclose(w, 0) - - # _compute_states_inputs: states and inputs with no noise - oep.compute_estimate(Y1, U) - xhat, u, v, w = oep._compute_states_inputs( - np.hstack([res1.states.reshape(-1), V.reshape(-1)])) - np.testing.assert_allclose(xhat, res1.states) - np.testing.assert_allclose(u, U.reshape(1, -1)) - np.testing.assert_allclose(v, V) - np.testing.assert_allclose(w, W) - - # - # oep.compute_estimate testing - # - - # Noise free and disturbance free - nonoise_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw/1e6) - oep0 = opt.OptimalEstimationProblem( - sys, timepts, nonoise_cost, terminal_cost=init_cost) - est0 = oep0.compute_estimate(Y0, U) - if sys.isdtime(): - # Full state estimate should be near perfect - np.testing.assert_allclose( - est0.states[:, -1], res0.states[:, -1], atol=1e-3, rtol=1e-3) - np.testing.assert_allclose(est0.inputs, 0, atol=1e-2, rtol=1e-3) - np.testing.assert_allclose(est0.outputs, 0, atol=1e-2, rtol=1e-3) - else: - # Estimate at end of trajectory should be very close - assert est0.success - np.testing.assert_allclose( - est0.states[:, -1], res0.states[:, -1], atol=1e-2, rtol=1e-2) - - # Noise free, but with disturbances and good initial guess - if False: - oep1 = opt.OptimalEstimationProblem( - sys, timepts, nonoise_cost, terminal_cost=init_cost) - est1 = oep1.compute_estimate( - res1.outputs, U, initial_guess=(res1.states, V), X0=0) - np.testing.assert_allclose( - est1.states[:, -1], res1.states[:, -1], atol=1e-2, rtol=1e-2) - if sys.isdtime(): - # For discrete time, estimated disturbance and noise should be close - np.testing.assert_allclose( - est1.inputs[:-1], V[:-1], atol=1e-2, rtol=1e-2) - np.testing.assert_allclose(est1.outputs, 0, atol=1e-2, rtol=1e-2) - - # Noise and disturbances (the standard case) - est2 = oep.compute_estimate(Y1, U) # back to original OEP - assert est2.success + # Compute the optimal estimate + est1 = oep1.compute_estimate(Y, U) + assert est1.success np.testing.assert_allclose( - est2.states[:, -1], res1.states[:, -1], atol=1e-1, rtol=1e-2) + est1.states[:, -1], res.states[:, -1], atol=meas_mag, rtol=meas_mag) + + # Recompute using initial guess (should be pretty fast) + est2 = oep1.compute_estimate( + Y, U, initial_guess=(est1.states, est1.inputs)) + assert est2.success # Change around the inputs and disturbances sys2 = ct.ss(sys.A, sys.B[:, ::-1], sys.C, sys.D[::-1], sys.dt) @@ -441,22 +379,17 @@ def test_oep(dt): sys2, timepts, traj_cost, terminal_cost=init_cost, control_indices=[1]) est2a = oep2a.compute_estimate( - Y1, U, initial_guess=(est2.states, est2.inputs)) - np.testing.assert_allclose( - est2a.states[:, -1], res1.states[:, -1], atol=1e-1, rtol=1e-2) + Y, U, initial_guess=(est1.states, est1.inputs)) + np.testing.assert_allclose(est2a.states, est2.states) oep2b = opt.OptimalEstimationProblem( sys2, timepts, traj_cost, terminal_cost=init_cost, disturbance_indices=[0]) est2b = oep2b.compute_estimate( - Y1, U, initial_guess=(est2.states, est2.inputs)) - np.testing.assert_allclose( - est2b.states[:, -1], res1.states[:, -1], atol=1e-1, rtol=1e-2) - - # - # Disturbance constraints - # + Y, U, initial_guess=(est1.states, est1.inputs)) + np.testing.assert_allclose(est2b.states, est2.states) + # Add disturbance constraints V3 = np.clip(V, 0.5, 1) traj_constraint = opt.disturbance_range_constraint(sys, 0.5, 1) oep3 = opt.OptimalEstimationProblem( @@ -466,17 +399,11 @@ def test_oep(dt): res3 = ct.input_output_response(sys, timepts, [U, V3]) Y3 = res3.outputs + W - # Make sure the constraint screws up the estimation problem - with pytest.raises(AssertionError): - est3 = oep.compute_estimate(Y3, U) - np.testing.assert_allclose( - est3.states[:, -1], res3.states[:, -1], atol=1e-1, rtol=1e-2) - # Make sure estimation is correct with constraint in place est3 = oep3.compute_estimate(Y3, U) assert est3.success np.testing.assert_allclose( - est3.states[:, -1], res3.states[:, -1], atol=1e-1, rtol=1e-2) + est3.states[:, -1], res3.states[:, -1], atol=meas_mag, rtol=meas_mag) @pytest.mark.slow From c39bc875cb6c4bf0120013e9ce50426930d1fc23 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 25 Mar 2023 16:25:32 -0700 Subject: [PATCH 0219/1025] fix up errors from merge with zpk feature --- control/xferfcn.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 9f0a647e8..89e2546f8 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -475,7 +475,8 @@ def __str__(self, var=None): denstr = _tf_polynomial_to_string(self.den[no][ni], var=var) elif self.display_format == 'zpk': z, p, k = tf2zpk(self.num[no][ni], self.den[no][ni]) - numstr = _tf_factorized_polynomial_to_string(z, gain=k, var=var) + numstr = _tf_factorized_polynomial_to_string( + z, gain=k, var=var) denstr = _tf_factorized_polynomial_to_string(p, var=var) # Figure out the length of the separating line @@ -532,7 +533,8 @@ def _repr_latex_(self, var=None): denstr = _tf_polynomial_to_string(self.den[no][ni], var=var) elif self.display_format == 'zpk': z, p, k = tf2zpk(self.num[no][ni], self.den[no][ni]) - numstr = _tf_factorized_polynomial_to_string(z, gain=k, var=var) + numstr = _tf_factorized_polynomial_to_string( + z, gain=k, var=var) denstr = _tf_factorized_polynomial_to_string(p, var=var) numstr = _tf_string_to_latex(numstr, var=var) @@ -1707,12 +1709,13 @@ def zpk(zeros, poles, gain, *args, **kwargs): Examples -------- - >>> from control import tf - >>> G = zpk([1],[2, 3], gain=1, display_format='zpk') - >>> G - s - 1 - --------------- - (s - 2) (s - 3) + >>> G = ct.zpk([1], [2, 3], gain=1, display_format='zpk') + >>> print(G) # doctest: +SKIP + + s - 1 + --------------- + (s - 2) (s - 3) + """ num, den = zpk2tf(zeros, poles, gain) return TransferFunction(num, den, *args, **kwargs) From 2a42fe86e8b21071c1b422159080bf796b809228 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 09:52:36 -0700 Subject: [PATCH 0220/1025] add benchmarks for optimal estimation --- benchmarks/optestim_bench.py | 87 ++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 benchmarks/optestim_bench.py diff --git a/benchmarks/optestim_bench.py b/benchmarks/optestim_bench.py new file mode 100644 index 000000000..fdc4dc824 --- /dev/null +++ b/benchmarks/optestim_bench.py @@ -0,0 +1,87 @@ +# optestim_bench.py - benchmarks for optimal/moving horizon estimation +# RMM, 14 Mar 2023 +# +# This benchmark tests the timing for the optimal estimation routines and +# is intended to be used for helping tune the performance of the functions +# used for optimization-based estimation. + +import numpy as np +import math +import control as ct +import control.optimal as opt + +minimizer_table = { + 'default': (None, {}), + 'trust': ('trust-constr', {}), + 'trust_bigstep': ('trust-constr', {'finite_diff_rel_step': 0.01}), + 'SLSQP': ('SLSQP', {}), + 'SLSQP_bigstep': ('SLSQP', {'eps': 0.01}), + 'COBYLA': ('COBYLA', {}), +} + +# Table to turn on and off process disturbances and measurement noise +noise_table = { + 'noisy': (1e-1, 1e-3), + 'nodist': (0, 1e-3), + 'nomeas': (1e-1, 0), + 'clean': (0, 0) +} + + +# Assess performance as a function of optimization and integration methods +def time_oep_minimizer_methods(minimizer_name, noise_name, initial_guess): + # Use fixed system to avoid randome errors (was csys = ct.rss(4, 2, 5)) + csys = ct.ss( + [[-0.5, 1, 0, 0], [0, -1, 1, 0], [0, 0, -2, 1], [0, 0, 0, -3]], # A + [[0, 0.1], [0, 0.1], [0, 0.1], [1, 0.1]], # B + [[1, 0, 0, 0], [0, 0, 1, 0]], # C + 0, dt=0) + # dsys = ct.c2d(csys, dt) + # sys = csys if dt == 0 else dsys + sys = csys + + # Decide on process disturbances and measurement noise + dist_mag, meas_mag = noise_table[noise_name] + + # Create disturbances and noise (fixed, to avoid random errors) + Rv = 0.1 * np.eye(1) # scalar disturbance + Rw = 0.01 * np.eye(sys.noutputs) + timepts = np.arange(0, 10.1, 1) + V = np.array( + [0 if t % 2 == 1 else 1 if t % 4 == 0 else -1 for t in timepts] + ).reshape(1, -1) * dist_mag + W = np.vstack([np.sin(2*timepts), np.cos(3*timepts)]) * meas_mag + + # Generate system data + U = np.sin(timepts).reshape(1, -1) + res = ct.input_output_response(sys, timepts, [U, V]) + Y = res.outputs + W + + # Decide on the initial guess to use + if initial_guess == 'xhat': + initial_guess = (res.states, V*0) + elif initial_guess == 'both': + initial_guess = (res.states, V) + else: + initial_guess = None + + + # Set up optimal estimation function using Gaussian likelihoods for cost + traj_cost = opt.gaussian_likelihood_cost(sys, Rv, Rw) + init_cost = lambda xhat, x: (xhat - x) @ (xhat - x) + oep = opt.OptimalEstimationProblem( + sys, timepts, traj_cost, terminal_cost=init_cost) + + # Noise and disturbances (the standard case) + est = oep.compute_estimate(Y, U, initial_guess=initial_guess) + assert est.success + np.testing.assert_allclose( + est.states[:, -1], res.states[:, -1], atol=1e-1, rtol=1e-2) + + +# Parameterize the test against different choices of integrator and minimizer +time_oep_minimizer_methods.param_names = ['minimizer', 'noise', 'initial'] +time_oep_minimizer_methods.params = ( + ['default', 'trust', 'SLSQP', 'COBYLA'], + ['noisy', 'nodist', 'nomeas', 'clean'], + ['none', 'xhat', 'both']) From 983cbc072af7f864fd7917c5ed51bd6c02792e7b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 17:46:52 -0700 Subject: [PATCH 0221/1025] revert use of round() in canonical examples (fix doctest failures next) --- control/canonical.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/control/canonical.py b/control/canonical.py index f5e1d25de..27c8af5a4 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -42,16 +42,16 @@ def canonical_form(xsys, form='reachable'): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.canonical_form(Gs) # default reachable - >>> Gc.B.round() + >>> Gc.B array([[1.], [0.]]) >>> Gc, T = ct.canonical_form(Gs, 'observable') - >>> Gc.C.round() + >>> Gc.C array([[1., 0.]]) >>> Gc, T = ct.canonical_form(Gs, 'modal') - >>> Gc.A.round() # doctest: +SKIP + >>> Gc.A array([[-2., 0.], [ 0., -1.]]) @@ -89,7 +89,7 @@ def reachable_form(xsys): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.reachable_form(Gs) # default reachable - >>> Gc.B.round() + >>> Gc.B array([[1.], [0.]]) @@ -152,7 +152,7 @@ def observable_form(xsys): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.observable_form(Gs) - >>> Gc.C.round() + >>> Gc.C array([[1., 0.]]) """ @@ -217,13 +217,13 @@ def similarity_transform(xsys, T, timescale=1, inverse=False): Examples -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) - >>> Gs.A.round() + >>> Gs.A array([[-3., -2.], [ 1., 0.]]) >>> T = np.array([[0, 1], [1, 0]]) >>> Gt = ct.similarity_transform(Gs, T) - >>> Gt.A.round() + >>> Gt.A array([[ 0., 1.], [-2., -3.]]) @@ -508,7 +508,7 @@ def modal_form(xsys, condmax=None, sort=False): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.modal_form(Gs) # default reachable - >>> Gc.A.round() # doctest: +SKIP + >>> Gc.A array([[-2., 0.], [ 0., -1.]]) From df38286f67b0eb7bae37209ac3cb900091f7b8e3 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 17:56:46 -0700 Subject: [PATCH 0222/1025] skip doctests with rounding errors in GitHub Actions --- control/canonical.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/canonical.py b/control/canonical.py index 27c8af5a4..c84ac1f8f 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -51,7 +51,7 @@ def canonical_form(xsys, form='reachable'): array([[1., 0.]]) >>> Gc, T = ct.canonical_form(Gs, 'modal') - >>> Gc.A + >>> Gc.A # doctest: +SKIP array([[-2., 0.], [ 0., -1.]]) @@ -508,7 +508,7 @@ def modal_form(xsys, condmax=None, sort=False): -------- >>> Gs = ct.tf2ss([1], [1, 3, 2]) >>> Gc, T = ct.modal_form(Gs) # default reachable - >>> Gc.A + >>> Gc.A # doctest: +SKIP array([[-2., 0.], [ 0., -1.]]) From 1599f44079f26e2a4e346799a5b271dc3e012ea4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 30 Mar 2023 21:31:57 -0700 Subject: [PATCH 0223/1025] Update doc/optimal.rst Co-authored-by: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com> --- doc/optimal.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/optimal.rst b/doc/optimal.rst index f5ee5d466..f4f25ad4a 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -129,7 +129,7 @@ The result of this optimization gives us the estimated state for the previous :math:`N` steps in time, including the "current" time :math:`x[N]`. The basic idea is thus to compute the state estimate that is most consistent with our model and penalize the noise and disturbances -according to how likely the are (based on a some sort of stochastic system +according to how likely the are (based on the given stochastic system model for each). Given a solution to this fixed-horizon optimal estimation problem, we can From a3293236528cbb4b533b2b4e243e52f24571060c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 31 Mar 2023 12:31:45 -0700 Subject: [PATCH 0224/1025] add executed mhe-pvtol.ipynb to fix doctest failure --- examples/mhe-pvtol.ipynb | 424 ++++++++++++++++++++++++++++++++++----- 1 file changed, 371 insertions(+), 53 deletions(-) diff --git a/examples/mhe-pvtol.ipynb b/examples/mhe-pvtol.ipynb index d9109c94b..14d29e142 100644 --- a/examples/mhe-pvtol.ipynb +++ b/examples/mhe-pvtol.ipynb @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "36715c5f", "metadata": {}, "outputs": [], @@ -57,10 +57,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "08919988", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": pvtol\n", + "Inputs (2): ['F1', 'F2']\n", + "Outputs (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", + "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", + "\n", + "Update: \n", + "Output: \n", + "\n", + "Forward: \n", + "Reverse: \n", + "\n", + ": pvtol_noisy\n", + "Inputs (7): ['F1', 'F2', 'Dx', 'Dy', 'Nx', 'Ny', 'Nth']\n", + "Outputs (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", + "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", + "\n", + "Update: \n", + "Output: \n" + ] + } + ], "source": [ "# pvtol = nominal system (no disturbances or noise)\n", "# noisy_pvtol = pvtol w/ process disturbances and sensor noise\n", @@ -97,10 +122,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "d2e88938", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": sys[4]\n", + "Inputs (13): ['xd[0]', 'xd[1]', 'xd[2]', 'xd[3]', 'xd[4]', 'xd[5]', 'ud[0]', 'ud[1]', 'Dx', 'Dy', 'Nx', 'Ny', 'Nth']\n", + "Outputs (8): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'F1', 'F2']\n", + "States (6): ['pvtol_noisy_x0', 'pvtol_noisy_x1', 'pvtol_noisy_x2', 'pvtol_noisy_x3', 'pvtol_noisy_x4', 'pvtol_noisy_x5']\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/src/python-control/murrayrm/control/statefbk.py:784: UserWarning: cannot verify system output is system state\n", + " warnings.warn(\"cannot verify system output is system state\")\n" + ] + } + ], "source": [ "#\n", "# LQR design w/ physically motivated weighting\n", @@ -132,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "78853391", "metadata": {}, "outputs": [], @@ -147,10 +191,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "c590fd88", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create the time vector for the simulation\n", "Tf = 6\n", @@ -169,10 +224,40 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "c35fd695", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAGzCAYAAAAlqLNlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABWgUlEQVR4nO3dd3RU1d7G8e+kh5LQCUgoKtJraAFBBKRKUzoG0GvBhoj6CioIWFCvBa8KohQFMSBVEAQiSJOiNFFBxBrAxBCEJLTU8/6xSWbGBCSQZGaS57NW1kzO2efMb5w7Nw/77LO3zbIsCxEREREBwMvVBYiIiIi4E4UjEREREQcKRyIiIiIOFI5EREREHCgciYiIiDhQOBIRERFxoHAkIiIi4kDhSERERMSBj6sL8DQZGRn8+eeflCxZEpvN5upyRERE5DJYlkVSUhKVK1fGy+vSfUMKR7n0559/Ehoa6uoyRERE5AocOXKEKlWqXLKNwlEulSxZEjD/cYOCglxcjYiIiFyOxMREQkNDs/6OX4rCUS5lXkoLCgpSOBIREfEwlzMkRgOyRURERBwoHImIiIg4UDgSERERcaBwJCIiIuJA4UhERETEgcKRiIiIiAOFIxEREREHCkciIiIiDhSORERERBwoHImIiIg4UDgSt2ez2Vi+fLmryxARkSJC4UicbNu2DW9vb7p27Zqr46pXr87UqVPzpygREZECpHAkTmbPns3DDz/M1q1biY6OdnU5IiIiBU7hKL9ZFpw5U/A/lpXrUs+cOcMnn3zC/fffz6233soHH3zgtH/FihU0a9aMgIAAypUrx2233QZA+/bt+eOPP3j00Uex2WxZKx5PnDiRxo0bO51j6tSpVK9ePev3b775hltuuYVy5coRHBzMTTfdxJ49e3Jdu4iISF5ROMpvZ89CiRIF/3P2bK5LXbhwIbVq1aJWrVrccccdzJkzB+tCyFq1ahW33XYbPXr0YO/evaxfv55mzZoBsHTpUqpUqcLkyZOJiYkhJibmsl8zKSmJ4cOHs2XLFnbs2EHNmjXp3r07SUlJua5fREQkL/i4ugBxH7NmzeKOO+4AoGvXrpw+fZr169fTqVMnXnjhBQYNGsSkSZOy2jdq1AiAMmXK4O3tTcmSJQkJCcnVa3bo0MHp9xkzZlC6dGk2bdrErbfeepXvSEREJPcUjvJbsWJw+rRrXjcXDh06xNdff83SpUsB8PHxYeDAgcyePZtOnTqxb98+7rnnnjwvMy4ujgkTJrBhwwb++usv0tPTOXv2rMY7iYiIyygc5TebDYoXd3UV/2rWrFmkpaVxzTXXZG2zLAtfX19OnjxJYGBgrs/p5eWVdVkuU2pqqtPvI0aM4Pjx40ydOpVq1arh7+9PeHg4KSkpV/ZGRERErpLGHAlpaWnMnTuX1157jX379mX9fPvtt1SrVo358+fTsGFD1q9ff9Fz+Pn5kZ6e7rStfPnyxMbGOgWkffv2ObXZsmULo0aNonv37tSrVw9/f3/i4+Pz9P2JiIjkhnqOhM8++4yTJ0/yn//8h+DgYKd9/fr1Y9asWbzxxht07NiR6667jkGDBpGWlsbnn3/O//3f/wFmnqPNmzczaNAg/P39KVeuHO3bt+f48eO88sor9OvXjzVr1vD5558TFBSUdf7rr7+eefPm0axZMxITE3niiSeuqJdKREQkr6jnSJg1axadOnXKFowAbr/9dvbt20dQUBCLFi1ixYoVNG7cmA4dOrBz586sdpMnT+b333/nuuuuo3z58gDUqVOHadOm8c4779CoUSO+/vprHn/8cafzz549m5MnT9KkSRMiIiIYNWoUFSpUyN83LCIicgk265+DQuSSEhMTCQ4OJiEhwakHRERERNxXbv5+q+dIRERExIHCkYiIiIgDhSMRERERBwpHIiIiIg4UjkREREQcKByJiIiIOFA4EhEREXGgcCQiIiLiQOFI8lT16tWZOnWqq8sQERG5YgpHAsCIESOw2Wy89NJLTtuXL1+OzWa77PN888033HvvvXldnoiISIHx6HC0efNmevbsSeXKlbHZbCxfvvxfj9m0aRNhYWEEBARw7bXX8u677+Z/oR4iICCAl19+mZMnT17xOcqXL0+xYsXysCoREZGC5dHh6MyZMzRq1Ii33377str/9ttvdO/enbZt27J3716eeuopRo0axZIlS/K5Us/QqVMnQkJCmDJlykXbLFmyhHr16uHv70/16tV57bXXnPb/87LaxIkTqVq1Kv7+/lSuXJlRo0YBZqHaBg0aZDt/WFgYEyZMyJs3JCIicgV8XF3A1ejWrRvdunW77PbvvvsuVatWzfrjXadOHXbt2sWrr77K7bffni81WhacPZsvp76kYsUgF1fDAPD29ubFF19kyJAhjBo1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XTQcgbmdH8zIbREREQ+lcCR2P/xgHhs2dNr8yCPmStuOHfDTT2ab04BsMCO1jx83z6tVy986RURE8pHCkdj98Yd5vPZap80hITB8uHmeucxItp6jdevMY4UKUKpUvpUoIiKS3zw2HJ08eZKIiAiCg4MJDg4mIiKCU1mLfv27++67D5vNxtSpU/OtRo+TufJs6dLZdj32mLljP5NTOLIseOst83z4cOeGIiIiHsZjw9GQIUPYt28fa9asYc2aNezbt4+IiIjLOnb58uXs3LmTypUr53OVHsbPzzxmTmbkoFYt6NXL/rtTOJoxA9avN4vU3ndf/tYoIiKSzzwyHB08eJA1a9Ywc+ZMwsPDCQ8P5/333+ezzz7j0KFDlzz22LFjPPTQQ8yfPx9fDRx2dt115nHPnhx3/9//mceyZe05irlzYdQo8/zll+3nEBER8VAeGY62b99OcHAwLR3uqmrVqhXBwcFs27btosdlZGQQERHBE088Qb169QqiVM/So4d5fO01yOESZevWZvm0JUsw8yHddZe5jJaaCkOHwqOPFmi5IiIi+cEjw1FsbCwVKlTItr1ChQrExsZe9LiXX34ZHx8fRmX2dFyG5ORkEhMTnX4KrZEjoXJl+Plnczv/xx9DfLwZU2RZcOwYt9uWctN7Q00P0Zw55rinnjI9SBprJCIihYCPqwtwNHHiRCZNmnTJNt988w0Athz+EFuWleN2gN27d/Pmm2+yZ8+ei7bJyZQpU/61pkIjKAhWr4auXc09+0OHmu3+/qZ3KCPDuX3LlvDGGxAeXvC1ioiI5BObZbnPQljx8fHEx8dfsk316tX5+OOPGTNmTLa700qVKsUbb7zBnXfeme24qVOnMmbMGLy87J1l6enpeHl5ERoayu+//57j6yUnJ5OcnJz1e2JiIqGhoSQkJBCUbbKfQuLUKXj9dVi0CH780b7dywvq14ebboKICDOTtnqLRETEAyQmJhIcHHxZf7/dKhxdroMHD1K3bl127txJixYtANi5cyetWrXixx9/pFatWtmOOXHiBDExMU7bunTpQkREBHfeeWeOx+QkN/9xC4WzZyEuzvQelSljHkVERDxMbv5+u9VltctVp04dunbtyj333MOMGTMAuPfee7n11ludQk7t2rWZMmUKffv2pWzZspQtW9bpPL6+voSEhFx2MCqSihWD6tVdXYWI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ASIirlSsWDFCQkKu+jzBwcEEBwfnQUUi4mrqORKRQiMyMpKAgACOHTuWte3uu++mYcOGJCQkXPZ52rdvz8MPP8zo0aMpXbo0FStW5L333uPMmTPceeedlCxZkuuuu47PP/88P96GiLiYwpGIFBqDBg2iVq1aTJkyBYBJkyaxdu1aPv/881z36nz44YeUK1eOr7/+mocffpj777+f/v3707p1a/bs2UOXLl2IiIjg7Nmz+fFWRMSFFI5EpNCw2Wy88MILzJw5kxdffJE333yTNWvWcM011+T6XI0aNeKZZ56hZs2ajBs3jsDAQMqVK8c999xDzZo1mTBhAidOnGD//v358E5ExJU05khECpVbb72VunXrMmnSJNatW0e9evWu6DwNGzbMeu7t7U3ZsmVp0KBB1raKFSsCEBcXd3UFi4jbUc+RiBQqa9eu5ccffyQ9PT0rwFwJX19fp99tNpvTNpvNBkBGRsYVv4aIuCeFIxEpNPbs2UP//v2ZMWMGXbp0Yfz48a4uSUQ8kC6riUih8Pvvv9OjRw/Gjh1LREQEdevWpXnz5uzevZuwsDBXlyciHkQ9RyLi8f7++2+6detGr169eOqppwAICwujZ8+ePP300y6uTkQ8jXqORMTjlSlThoMHD2bb/umnn17R+TZu3Jht2++//55tm2VZV3R+EXFv6jkSkSJt2rRplChRgu++++6qzjNy5EhKlCiRR1WJiCvZLP3TR0SKqGPHjnHu3DkAqlatip+f3xWfKy4ujsTERAAqVapE8eLF86RGESl4CkciIiIiDnRZTURERMSBwpGIiIiIA4UjEREREQcKRyIiIiIOFI5EREREHCgciYiIiDhQOBIRERFxoHAkIiIi4kDhSERERMSBwpGIiIiIg/8HVGMWVjCz2KIAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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tRF79+7F+PHjERAQAIlEgp9++knskKiNiY2NxT333AN3d3f4+Phg4sSJuHDhgthhURuyfPly9OvXD2q1Gmq1GpGRkfj111/FDotaAZNqIiuqqqrCk08+iT//+c9ih0JtwPr16zFv3jy8+eabOHHiBIYPH46xY8ciNTVV7NCoDSgrK0NYWBg++eQTsUOhNmrPnj2YO3cuDh8+jPj4eNTU1CAqKgplZWVih0ZtRGBgIN59910kJCQgISEBDz74IB599FGcPXtW7NDIyjhSi6gVrFmzBvPmzUNhYaHYoZADGzx4MAYOHIjly5ebjoWEhGDixImIjY0VMTJqayQSCTZt2oSJEyeKHQq1YTdu3ICPjw/27NmDESNGiB0OtVGenp744IMPMHv2bLFDISviSjURkQOoqqpCYmIioqKi6hyPiorCwYMHRYqKiEg8RUVFAAxJDVFr0+l0+P7771FWVobIyEixwyErk4sdABERtVxeXh50Oh18fX3rHPf19UV2drZIURERiUMQBMTExODee+9FaGio2OFQG3L69GlERkaisrISbm5u2LRpE3r37i12WGRlXKkmMtPChQshkUjueEtISBA7TGqjJBJJna8FQah3jIjI0b344os4deoUvvvuO7FDoTamZ8+eSEpKwuHDh/HnP/8ZzzzzDM6dOyd2WGRlXKkmMtOLL76IqVOn3vGcTp06tU4wRLW8vb0hk8nqrUrn5ubWW70mInJkL730EjZv3oy9e/ciMDBQ7HCojVEoFOjWrRsAICIiAseOHcN//vMffP755yJHRtbEpJrITN7e3vD29hY7DKI6FAoFwsPDER8fj0mTJpmOx8fH49FHHxUxMiKi1iEIAl566SVs2rQJu3fvRufOncUOiQiCIECr1YodBlkZk2oiK0pNTUVBQQFSU1Oh0+mQlJQEAOjWrRvc3NzEDY4cTkxMDKZPn46IiAhERkZixYoVSE1NRXR0tNihURtQWlqKy5cvm76+du0akpKS4OnpiY4dO4oYGbUVc+fOxbfffouff/4Z7u7upsodjUYDZ2dnkaOjtuBvf/sbxo4di6CgIJSUlOD777/H7t27sW3bNrFDIyvjSC0iK5o5cya++uqresd///133H///a0fEDm8uLg4vP/++8jKykJoaCg++ugjjpKhVrF792488MAD9Y4/88wzWLNmTesHRG1OY/0jVq9ejZkzZ7ZuMNQmzZ49G7t27UJWVhY0Gg369euH119/HaNHjxY7NLIyJtVEREREREREzcTu30RERERERETNxKSaiIiIiIiIqJmYVBMRERERERE1E5NqIiIiIiIiomZiUk1ERERERETUTEyqiYiIiIiIiJqJSTURERERERFRMzGpJiIiIiIiImomJtVEREQEALh+/TokEgkkEgn69+/f4sczPpaHh0eLH4uIiMhWMakmIiKiOnbu3Ildu3a1+HGysrKwdOnSlgdERERkw5hUExERUR1eXl7w8vJq8eP4+flBo9FYICIiIiLbxaSaiIjIAd24cQN+fn545513TMeOHDkChUKBHTt2mPVYM2fOxMSJE/HOO+/A19cXHh4eWLRoEWpqavDqq6/C09MTgYGBWLVqlaW/DSIiIpsnFzsAIiIisrz27dtj1apVmDhxIqKiotCrVy88/fTTmDNnDqKiosx+vN9++w2BgYHYu3cvDhw4gNmzZ+PQoUMYMWIEjhw5gvXr1yM6OhqjR49GUFCQFb4jIiIi28SVaiIiIgf18MMP4/nnn8dTTz2F6OhoqFQqvPvuu816LE9PTyxbtgw9e/bEs88+i549e6K8vBx/+9vf0L17dyxYsAAKhQIHDhyw8HdBRERk25hUExERObAPP/wQNTU1+O9//4t169ZBpVI163H69OkDqfTW2wZfX1/07dvX9LVMJoOXlxdyc3NbHDMREZE9YVJNRETkwK5evYrMzEzo9XqkpKQ0+3GcnJzqfC2RSBo8ptfrm/0cRERE9oh7qomIiBxUVVUVnnrqKUyZMgW9evXC7Nmzcfr0afj6+oodGhERkcPgSjUREZGDevPNN1FUVIRly5bhtddeQ0hICGbPni12WERERA6FSTUREZED2r17N5YuXYpvvvkGarUaUqkU33zzDfbv34/ly5eLHR4REZHDYPk3ERGRA7r//vtRXV1d51jHjh1RWFho9mOtWbOm3rHdu3fXO3b9+nWzH5uIiMjeMakmIiKiOoYOHYr+/fvj4MGDLXocNzc31NTUNLvjOBERkT1gUk1EREQAgMDAQFy6dAkAoFQqW/x4SUlJAAzjtoiIiByVRBAEQewgiIiIiIiIiOwRG5URERERERERNROTaiIiIiIiIqJmYlJNRERERERE1ExMqomIiIiIiIiaiUk1ERERERERUTMxqSYi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4eXlhZdffhnz5s3D+vXrceHCBRw/fhyffPIJ1q9fDwCYM2cOKioqMG3aNKSnp+P8+fP48ssvm21/QNRdMZ+JnAfzmch5MJ8dC4tq6jR3d3fs27cPYWFheOCBBxATE4Onn34atbW1bV5J69WrF9544w0sWLAAAQEBmDNnToefz9vbG9u2bcMdd9yBmJgYrFy5Ehs3bsSAAQMAAH//+9/x+uuvIzk5GTExMZgwYQK+/fZbREZGAgB8fX2xZ88eVFVVYfTo0UhISMDq1au75VU0oj9iPhM5D+YzkfNgPjsWkSAIgq2DIDJYt24dXnzxRZSXl1v9uSMiIvDiiy/ixRdftPpzEzkj5jOR82A+EzkP5rP5caSa7I5KpYKnpyf++te/WuX5/vGPf8DT0xM5OTlWeT6i7oT5TOQ8mM9EzoP5bF4cqSa7UllZiaKiIgD6aSh+fn4Wf86ysjKUlZUB0HdTVCqVFn9Oou6A+UzkPJjPRM6D+Wx+LKqJiIiIiIiITMTp30REREREREQmYlFNREREREREZCIW1UREREREREQmYlFNREREREREZCIW1UREREREREQmYlFNREREREREZCIW1UREREREREQmYlFNREREREREZCIW1UREREREREQm+v/ZFpfQC+x5PAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Desired trajectory\n", "xd, ud = xe, ue\n", @@ -211,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "a7f1dec6", "metadata": {}, "outputs": [], @@ -281,7 +366,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "5a1f32da", "metadata": {}, "outputs": [], @@ -298,10 +383,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "3a0679f4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": sys[7]\n", + "Inputs (5): ['y[0]', 'y[1]', 'y[2]', 'F1', 'F2']\n", + "Outputs (6): ['xhat[0]', 'xhat[1]', 'xhat[2]', 'xhat[3]', 'xhat[4]', 'xhat[5]']\n", + "States (42): ['xhat[0]', 'xhat[1]', 'xhat[2]', 'xhat[3]', 'xhat[4]', 'xhat[5]', 'P[0,0]', 'P[0,1]', 'P[0,2]', 'P[0,3]', 'P[0,4]', 'P[0,5]', 'P[1,0]', 'P[1,1]', 'P[1,2]', 'P[1,3]', 'P[1,4]', 'P[1,5]', 'P[2,0]', 'P[2,1]', 'P[2,2]', 'P[2,3]', 'P[2,4]', 'P[2,5]', 'P[3,0]', 'P[3,1]', 'P[3,2]', 'P[3,3]', 'P[3,4]', 'P[3,5]', 'P[4,0]', 'P[4,1]', 'P[4,2]', 'P[4,3]', 'P[4,4]', 'P[4,5]', 'P[5,0]', 'P[5,1]', 'P[5,2]', 'P[5,3]', 'P[5,4]', 'P[5,5]']\n", + "\n", + "Update: ._estim_update at 0x165cf9240>\n", + "Output: ._estim_output at 0x165cf8040>\n", + "xe=array([ 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00,\n", + " -1.766654e-27, 0.000000e+00]), P0=array([[1., 0., 0., 0., 0., 0.],\n", + " [0., 1., 0., 0., 0., 0.],\n", + " [0., 0., 1., 0., 0., 0.],\n", + " [0., 0., 0., 1., 0., 0.],\n", + " [0., 0., 0., 0., 1., 0.],\n", + " [0., 0., 0., 0., 0., 1.]])\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Standard Kalman filter\n", "linsys = sys.linearize(xe, [ue, V[:, 0] * 0])\n", @@ -332,10 +448,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "1f83a335", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": sys[8]\n", + "Inputs (8): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'F1', 'F2']\n", + "Outputs (6): ['xh0', 'xh1', 'xh2', 'xh3', 'xh4', 'xh5']\n", + "States (42): ['x[0]', 'x[1]', 'x[2]', 'x[3]', 'x[4]', 'x[5]', 'x[6]', 'x[7]', 'x[8]', 'x[9]', 'x[10]', 'x[11]', 'x[12]', 'x[13]', 'x[14]', 'x[15]', 'x[16]', 'x[17]', 'x[18]', 'x[19]', 'x[20]', 'x[21]', 'x[22]', 'x[23]', 'x[24]', 'x[25]', 'x[26]', 'x[27]', 'x[28]', 'x[29]', 'x[30]', 'x[31]', 'x[32]', 'x[33]', 'x[34]', 'x[35]', 'x[36]', 'x[37]', 'x[38]', 'x[39]', 'x[40]', 'x[41]']\n", + "\n", + "Update: \n", + "Output: \n" + ] + } + ], "source": [ "# Define the disturbance input and measured output matrices\n", "F = np.array([[0, 0], [0, 0], [0, 0], [1/pvtol.params['m'], 0], [0, 1/pvtol.params['m']], [0, 0]])\n", @@ -385,10 +515,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "a4caf69b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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8paL1g1MmGzFihW4u7tz/vz5ivtmzJhBr169yK08ql9YTEN77AbcF403+WQbAji4OdPSYYlGcuQ2dffdd7Nw4UJee+01+vTpw7Zt21i3bh3tr1zLTEtLq7emnSUVFkLZlQ64oM/ernPfYE/1jSwzTWbFNmfNsT21uMTOyQn69dIDsPeG56wYVfOhKOo/GFtsiokTJqdOnUpUVBQLFiwAYP78+WzYsIGff/4Zv/q6kIRZNGSMHYBLkB8jfJMA2Px9ft07OxhpU83HrFmzOHPmDKWlpSQmJjJixIiKny1fvpytW7fW+thXX32VpKQki8Vm7K1zowTPgrorM4T4qbNhMzNa3ixzaU9NY/LkiW3btvGvf/2LxMRE0tLSWLNmDbfcckut+2/dupXRo6svNXT48GG6drXM0l51JXagTqDY+gckngvlrxaJoHkrKqr9d2NpBQW1TgSrkUaj4Y033uCOO+4gPDycd999l+3bt9OmTZuKfX788UeefvppDAYDzz//PDNmzLBA5C1XQ3vsAMY83Y91r8DmMx2ZbcmgmhlHa1O33norW7duZezYsXz77bcWiLplqrzqhCa05hp2RsGt1A6IzGyH7H+pkyO1p9TUVKZNm0ZGRgbOzs689NJL3HnnnRaKXmXyK6awsJDevXvz/vvvm/S4o0ePkpaWVrF17tzZ1FM3WL2JnXEFChliZxcmTZpEdHQ08+fPZ82aNXTv3r3iZzqdjri4ODZv3szevXt58803ycnJsWG0jqehY+wAxkxW/yMmJEhd1easrjYFaj2uzz77zEbROa76Vp2orGLyxGUXC0clmqqu9uTs7MzChQtJTk5m06ZNzJ49m8LCQovGY3KP3fjx4xk/frzJJwoJCcG/IR/5zSD/ylWg2hI74wSKpD3l6Fatw/n2m60SV3Ph6Xk1+bXFuU21YcMGjhw5UmPx0T/++IPu3btXfDqaMGECGzZs4J577jFHuALTeux691YrCF26BHv+MDB4aMvobXCkNgUwevToOi9Zisapb53YyoJbq7XsMgo86tzPETlSewoLCyMsLAxQ86CAgABycnIsMjnHyGp17Pr27UtJSQnR0dG8+OKLNV6eNSotLaW0UrVtU5dsqa/HrnNn8HIto7DMlaOf7qB7C0vsNBrTupptae/evdx55518+OGHfP3117z00kt88803FT+/cOFClUtIbdu2rTKIVTRdQ8fYgTqGdXTQAVZf6sXmj44zeGiURWNrLhypTQnLqdpjV3dR5JA2ak9dZrGNrknakKO2pz179mAwGExercRUFv84HRYWxkcffcSqVatYvXo1UVFRjB07lm3bttX6mKYu2VJfYqfVQt/IywAknrD/wcKO6syZM0ycOJE5c+Ywbdo0XnvtNVatWkVipfqDSg0jXWuqMi8az5QeO4AxAfsB2JygtUg8ovEa0qaE5TRknVij4C5q8fxMl3CLxyUax5T2lJ2dzfTp0/noo48sHpfFE7uoqCgeeugh+vXrx5AhQ1i0aBETJ07krbfeqvUxTV2ypa4CxUb9eqoDgPaltTbp2MI6cnJyGD9+PFOmTOGFF14AICYmhsmTJzNv3ryK/dq0aVOlh+7cuXMV3d7CPEwZYwcwZpJ6LeO3lAhKSiwTkzBdQ9uUsJystHIAAr1K665QDAT3V0u0ZBrq3k/YhintqbS0lFtvvZW5c+fWWCzb3GyypNjgwYP54osvav15U5dsqa/HDiCqtxt8C6fzg8BgqL72mLCpgIAADh8+XO3+77//vsr3AwcO5NChQ5w/fx5fX1/WrVvHyy+/bK0wWwRTe+y63tWL1i+lkW4IY9e2MkbFykoUzUFD25SwnOx8tS0EvTEb6mkWxskTBQVQXFx13XNhew1tT4qicP/99zNmzBimTZtmldhsks3s27fPor0qDUns2vVQux/OKhGQUXc9IdF8OTs78+9//5vRo0fTt29fnn32WQLrK+kuTGLKGDsATefrGOO+A4DNX6XXs7dojsaNG8edd97JunXraNu2Lbt377Z1SA6hoatOgLperMuVCbGZ6XrLBSUs6rfffmPlypV899139OnThz59+nDw4EGLntPkHruCggJOnDhR8f3p06dJSkoiICCAdu3aMXfuXM6fP18xVX7hwoV06NCB7t27U1ZWxhdffMGqVatYtWqV+Z5FtRjV27oSu/ad1KeeQjs4dxpayyVZe1V58WVhXgYDGOcuNXhSu0bDmO4ZfJUIm7dqeM1SwQmL2bBhg61DcEgNWSfWSKOBECWd87Qm87djtIvsZtnghEUMGzYMg5XXWDS5x27Pnj307duXvn37AurafH379q24/HXtki1lZWU888wz9OrVi+HDh/Prr7/y008/cdttt5npKVTXoB67duptDoEUHLtgsViE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "ekf_resp = ct.input_output_response(\n", " ekf, timepts, [lqr_resp.states, lqr_resp.outputs[6:8]],\n", @@ -398,10 +539,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "1074908c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary statistics:\n", + "* Cost function calls: 5859\n", + "* Final cost: 376.36233549481494\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADHUklEQVR4nOzdd3hUVfrA8e+kF1IIkEavIXQIIqEjGqRaQGF1wYaK2CC6LOjPgq6yuhZsICiIFVEpoiJFujQpASmh14SEQID0nvP74zCBQBJSZuYmk/fzPPeZ5OaWd5I5mXdONSmlFEIIIYQQospzMDoAIYQQQghhGZLYCSGEEELYCUnshBBCCCHshCR2QgghhBB2QhI7IYQQQgg7IYmdEEIIIYSdkMROCCGEEMJOSGInhBBCCGEnnIwOoDTy8/M5c+YMXl5emEwmo8MRdkopRUpKCsHBwTg42O9nHilPwhakPAlhOWUpT1UisTtz5gz169c3OgxRTZw+fZp69eoZHYbVSHkStiTlSQjLKU15qhKJnZeXF6CfkLe3t8HRCHuVnJxM/fr1C15v9krKk7AFKU9CWE5ZylOVSOzM1dve3t5ScITV2XtzipQnYUtSnoSwnNKUJ/vt+CCEEEIIUc1IYieEEEIIYScksRNCCCGEsBNVoo+dsJy8vDxycnKMDsMQzs7OODo6Gh2GsCNSnqQ8CcvJz88nOzvb6DAMYcnyVKUTO6VgyRJwcIAhQ4yOpnJTShEfH8+lS5eMDsVQvr6+BAYG2n2H7vLauRO2boUnnjA6kspNypMm5akC8vNh82bo3BlcXY2OxnDZ2dkcP36c/Px8o0MxjKXKU5VO7L7+Gh54AOrXh9tuAzc3oyOqvMxvQv7+/nh4eFS7f8RKKdLT00lISAAgKCjI4Igqn+hoCAsDJycYMAAaNTI6ospLypOUpwpbtAiGD4f+/WHZMqOjMZRSiri4OBwdHalfv75dT2hdFEuXpzIldlOnTmXhwoUcOHAAd3d3unXrxltvvUVISEiJ561bt47IyEj27dtHcHAwEydOZOzYsRUKHOCee+DFF+H0afjoI/jXvyp8SbuUl5dX8CZUq1Yto8MxjLu7OwAJCQn4+/tLM9I1QkP1B6SVK+G//4VPPzU6ospJypMm5amCvv5aPy5fDhcvQs2axsZjoNzcXNLT0wkODsbDw8PocAxhyfJUprR43bp1PPnkk2zZsoWVK1eSm5tLREQEaWlpxZ5z/PhxBg4cSM+ePYmKiuKFF17gmWeeYcGCBeUO2szdHf7zH/31G29AYmKFL2mXzH2AqmuBuZr5d1Bd+0XdyEsv6cc5c/QHJnE9KU9XSHmqgODgK1/Pm2dcHJVAXl4eAC4uLgZHYixLlacyJXbLli3jwQcfpHXr1rRv354vvviCU6dOsWPHjmLP+fTTT2nQoAHTpk0jNDSUMWPG8PDDD/POO+9UKHCzf/4T2rWDpCR4802LXNJuVbfmoqLI76BkPXtCnz6QkwNvvWV0NJWbvJbkd1Ah589f+drHx7g4KpHq/nqy1POvUEN2UlISAH5+fsUes3nzZiIiIgrt69+/P9u3by82K83KyiI5ObnQVhzH/Bze9nodgI8/Vpw4UcYnIYQo5OWX9ePnn8OZM8bGIoTdMid2334L999vbCzCrpQ7sVNKERkZSY8ePWjTpk2xx8XHxxMQEFBoX0BAALm5uZy/+hPLVaZOnYqPj0/BVuICy8uWEbHxZW5lJdnZJv6v70bdSehy1a4Qomz69IEePSArC/73P6OjEcJO/fgj7NunRyoJYUHlTuyeeuop/v77b+aVom/AtdWLSqki95tNnjyZpKSkgu10SZ19OnbE9NprvFXvYwC+PdGdnRH/hgYN9GiKU6dK+YyEsL3169czZMgQgoODMZlMLF68+IbnrFu3jrCwMNzc3GjSpAmfWniUg8l0pdbu008hPt6ilxdCANSqBa1a6UET6em65i4ry+iohB0oV2L39NNPs2TJEtasWUO9evVKPDYwMJD4a94ZEhIScHJyKnZEmaura8GCyjdcWLlePXjpJTqdWsz9/c8B8C+naagzZ+Cdd3TnO1FlzZs3Dzc3N2JjYwv2jRkzhnbt2hV0BajK0tLSaN++PR9//HGpjrfmYKSr3Xor3HwzZGbCu+9a9NLCYPZepqocpaBLF91h/JdfjI5GlFGlLE+qDPLz89WTTz6pgoOD1aFDh0p1zsSJE1VoaGihfWPHjlVdu3Yt9X2TkpIUoJKSkko87vhxpVxclAKlfn9po1ITJpT6HvYsIyND7d+/X2VkZBgdSpnl5+erdu3aqSeffFIppdSrr76q6tWrp2JiYsp1vZJ+F6V9nVkLoBYtWlTiMRMnTlQtW7YstO/xxx+3Snn67Tddljw8lEpIKPXl7V5VLk9KWbZMVebyZCvlep4pKUo99ZRSU6YolZen1Asv6MI2YID1Aq3EqnKZqozlqUyJ3RNPPKF8fHzU2rVrVVxcXMGWnp5ecMykSZPUqFGjCr4/duyY8vDwUBMmTFD79+9Xs2fPVs7Ozuqnn34q9X3L8oSee06Xj7ZtlcrNLcuzs1/FvlhSU4vfynLsVX//Eo8tp19++UW5urqqN954Q9WsWVPt3bu30M9atGihmjVrpj777LMbXqsyvxGVJrHr2bOneuaZZwrtW7hwoXJyclLZ2dlFnpOZmamSkpIKttOnT5f8PBcuVCo2VuXnKxUWpsvTpEnleUb2qcQ3ITsoU3feeafy9fVVw4YNu+F1KnN5spVyPc8jR3TBqlFDf3/4sP7ewUGp06etE2glZq/vUadOnVK9e/dWoaGhqm3btuqHH34o3+9BWTGxA4rcvvjii4JjHnjgAdW7d+9C561du1Z17NhRubi4qEaNGqkZM2aU5bZlekKJiUr5+uoy8sUXSmd3paxdtFfFvlh0I0DR28CBhY/18Cj+2Gv+3qp27aKPqwDz62ft2rUF+3JyclTz5s1VTEyMSk5OVs2aNVOJiYklXqcyvxGVJrFr3ry5euONNwrt27hxowLUmTNnijznlVdeKbLcFvk89+9XytVVF6Ivv1Q/L84veP+5wa+22igxsaviZUoppVavXq2WLFkiiV0plet5bt6s/36NGl3Z16uX3vef/1g+yErOXt+jzpw5o6KiopRSSp09e1bVrVtXpZaQQFqqPJWpj53SieB124MPPlhwzNy5c1m7dm2h83r37s3OnTvJysri+PHjFll1ojh+fno1CoD/eyGPDO8APaV+errV7imsa/ny5Rw4cIC8vLxCI6z/+usvWrduTd26dfHy8mLgwIEsX77cwEhtw6qDkRwcoG1buHQJHniAIZ8NpX2rHFJTYdo0Cz0BYbjiyhRA37598fLyMiiyasI8I0Tt2lf2PfKIfpwzR68jK6qM4spTUFAQHTp0AMDf3x8/Pz8uXLhg9XjsckG2p57Sg2Jj4xz5wGG8nvpk1y6jw6p8UlOL367tjJ+QUPyxv/9e+NgTJ4o+rhx27tzJPffcw8yZM+nfvz8vmZdGAM6cOUPdunULvq9Xr16hDqz2yOqDkUJC9MLkb74JLi6YfvuVl07oN5wPPlBU8zXvb6yKlylhI+f0QD/q1Lmyb9gw8PKCY8dgwwZj4qps7Kg8bd++nfz8/JKnb7OQMq0VW1W4uemlxkaPhqmZE3icd6m5bRt062Z0aJWLp6fxx5bgxIkTDBo0iEmTJjFq1ChatWrFTTfdxI4dOwgLCyuoqbqavc9cHh4ezi/XjJxbsWIFnTt3xtnZ2TI3cXKCyZNh6FB48EHu2v4NrZnIvuQ2fPiB4uVX7Pt3XCFVvEwJGymqxs7TE0aOhM8+g40boXdvY2KrTOykPCUmJjJ69Gg+//xzi9z3Ruyyxg70RN4tWkByridr6AvbthkdkiiDCxcuMGDAAIYOHcoLL7wAQFhYGEOGDOHFy23tdevWLVRDFxMTQ1BQkCHxlldqaiq7du1i1+Ua5ePHj7Nr1y5OXZ5/cfLkyYwePbrg+LFjx3Ly5EkiIyOJjo5mzpw5zJ49m+eff97ywbVuDZs34/DmG7zkOBWA96eZKGEhGFGJlaZMCRsx19hdndiB/kB15Ahc/vuIyqu05SkrK4u77rqLyZMn081GlUt2WWMHuqtQr15w6BDsIIy7t31ldEiiDPz8/IiOjr5u/88//1zwdZcuXdi7dy+xsbF4e3uzdOlSXjbPrFtFbN++nb59+xZ8HxkZCcADDzzA3LlziYuLK0jyABo3bszSpUuZMGECn3zyCcHBwXz44YcMGzbMOgFerr0bfsdBWg5THDhg4ssv4emnrXM7YT2lKVPCRoqqsQNo3Nj2sYhyKU15Mo9BuOWWWxg1apTNYrPbGjsAc03odjrrDE86CNkVJycn3n33Xfr27UvHjh3517/+VWw/s8qqT58+RQ5Imjt3LmD8YCQzx1YhPPqoboJd8rOSzt12rH///txzzz0sXbqUevXqsa2KtXZMnz6dxo0b4+bmRlhYGBtK2V9t48aNODk5FXR2t6p334X9++Hhh4s/xgad7IV1bdy4kfnz57N48WI6dOhAhw4d2LNnj9Xva7c1dgCdO+vHHQ43ofLBtGMH9OtnbFDCooYOHcrQoUONDqNaGDIEnnsO1q3KIfm3zXgPkT5A9qgqjyyfP38+48ePZ/r06XTv3p2ZM2cyYMAA9u/fT4MGDYo9LykpidGjR9OvXz/Onj1r/UBr1tRbUZTSfe0WLoSoKChhLXZRufXo0YN8Az4E23WNXdu24OwMifl+nHz2fWjY0OiQhKiymjeHFj7x5ODCik8OGx2OENd57733eOSRRxgzZgyhoaFMmzaN+vXrM2PGjBLPe/zxx7nvvvsIDw+3UaQlMJkgJwdyc/XUJ0KUkV0ndq6uOrkD2NFzPDRrZmg8QlR1g2/JAODXdV7SHCsqlezsbHbs2EFERESh/REREWzatKnY87744guOHj3KK6+8Uqr7ZGVlkZycXGgrs3/9C6ZMKb57kLmJ9ptvdA2eEGVg14kdXNXPbruxcQhhDwaPrQfA0sy+5G0o/s1SCFs7f/58kRMuBwQEXDf3o9nhw4eZNGkS3377LU5OpeuZNHXqVHx8fAq2Ms9LlpMD77wDr76qa+WKYh5Qde5cuedXE9WX3Sd2Bf3sNmXC4sVw8aKh8QhRlfXo64yPcxrn8GfbDPm0JCqfolZmKWp+y7y8PO677z6mTJlCixYtSn39Mq3kUpTERP3o4FB8PzsPD93kBDKIQpSZ3Sd2BTV2f2ah7rpLT/wohCgXZ2e4/Wb94eiX352kmUhUGrVr18bR0bHIlVmurcUDSElJYfv27Tz11FM4OTnh5OTEa6+9xu7du3FycmL16tVF3qdMK7kUxTzViZ8fODoWfYzJdCXpk8ROlJHdJ3Zt2oCLC1zM9+EEjWSiYiEqaPBD/gD8mtxT+jiISsPFxYWwsDBWrlxZaP/KlSuLnBjW29ubPXv2FEwQvmvXLsaOHUtISAi7du3i5ptvtk6gxU1OfC0/P/0orUyijOx6uhO4MoBixw49n11jSeyEqJDbh7rgYMrnb9WeUxknKH4SCSFsKzIyklGjRtG5c2fCw8OZNWsWp06dKpjrcfLkycTGxvLVV1/h4OBAm2umEvH398fNze26/RZlrrG7ep3YogwYAB06FN9cK0Qx7D6xA93PbscOvQLFPdve1c1Hdr6mqBDWUrs2hHdzYONG+G1fI57oZXREQmgjRowgMTGR1157jbi4ONq0acPSpUtpeHmqq2tXcjFEcatOXOudd6wfi7BLdt8UC1f1szPdpAvVyZPGBiREFTd4sH789Vdj4xDiWuPGjePEiRNkZWWxY8cOevW68smjqJVcrvbqq68WrNtsNaVtihWinKpFYldoBQqQfnZV1MWLF5kyZQpxcXFGh1LtDRmiH1etzCPtp9+NDUaUm5QpA4wfr5cTu7xwfIlyciA93eohCcuoLOWpWiR2rVvrvnaX8rw5RhNJ7KqoZ555hm3btvHEE08YHUq116oVNKqTSlaOI6smSLVdVSVlygDe3hAaSnZwI775BoqZYg/eekuP/Hv2WZuGJ8qvspSnapHYubhAu3b66+1PfQlPPmlsQKLMlixZQmpqKr/++iu+vr58++23RodUrZlMMPhOZwB+jWkP0dEGRyTKSsqUsT75BEaN0l2FoqKKOMDLSz/KdCdVQmUqT9Vi8ATo5tht22CHew9GyJKxVc7QoUMZOnQooPvJCOMNHubKx5/BrwxG/TQH00v/Z3RIogykTBlk6lTIyuLHXyYDrpw5Az17wvffX+m7Csh0J1VMZSpP1aLGDmRpMSEsrU8f8HTNIY5gor7ZZ3Q4QlQNn3xC3JSZbN6pV5bo0QPS0uCOO+Djj686TiYoFuVUbRI78wCKndvyyP/fu7BunbEBCVHFubpCxK35APxyqAUcPWpwREJUckrB+fP8zB0AdOkCq1fDI49Afj48/TRMmAB5eVypsZPETpRRtUnsWrXSb0RJqY4cnfgp/Pij0SGJUpg3bx5ubm7ExsYW7BszZgzt2rUjKSnJwMgEwOC7da3DrwyGBQsMjkaUhpQpA6WmQlYWi7gLgLvu0sv0ffYZvPmmPmTaNBg+HNLcaukd0hRbqVXG8lRtEjtnZz2JN+iJimVkbNUwcuRIQkJCmDp1KgBTpkxh+fLl/P777/j4+BgcnRg4UD9u5ybi1hwwNhhRKlKmDHT+PJfwYTW3AHD33Xq3yQSTJ+t+dq6usHgx9BndgHgCdDKYnW1czKJElbE8VZvBE6D72W3dqpcWG7lrkS4sLi5Gh2VzShk3NZKHR9kW/TCZTLzxxhsMHz6c4OBgPvjgAzZs2EDdunULjvn111957rnnyM/P59///jdjxoyxQuSiKIGBcFPHXLZFObF02GweMTogg9hbmbrrrrtYu3Yt/fr146effrJC1NXU+fP8xiBycaZVK2jRovCPR4yAevV0f7vtu5wY4LWRnYNfxlTN3qvsqTydPn2aUaNGkZCQgJOTEy+99BL33HOPlaK/TFUBSUlJClBJSUkVus6cOUqBUn2c1usvtm+3UISVW0ZGhtq/f7/KyMhQSimVmqqfvhFbamr5nkPHjh2Vi4uLWrt2baH9OTk5qnnz5iomJkYlJyerZs2aqcTExFL/Lq5mqddZZWfp5/naa/pve+edFrlcpVfUa8ieypRSSq1evVotWbJEDRs2rMy/CzMpT0VYulQN40cFSr34YvGHHTx45e976ZLlYq2s7Pk96syZMyoqKkoppdTZs2dV3bp1VWoxN7FUeao2TbFwZWTsDtWJfEzSHFtFLF++nAMHDpCXl0dAQEChn/3111+0bt2aunXr4uXlxcCBA1m+fLlBkVZP5ikaVqyAzExjYxGlU1KZAujbty9e5nnUhMVkxF7gdwYAun9dcVq00PMYQwkTGItKo6TyFBQURIfL/cD8/f3x8/PjgpUHxFSrpthWrcDNDVIyPTlCM1ps2wZjxxodls15eOhuG0bduyx27tzJPffcw8yZM/n+++956aWX+PGqgS9nzpwp1IRUr169Qp1YhfV16ADBQfmciXNgbcMHuP3Ep+DubnRYNmVPZUpYz0rvYaTjRoPgHDp1ci7x2IAASE6Gs7G5hDTOr1ZNsfZanrZv305+fj7169e3QKTFq1aJnZOTfhPaskX3s2uxc6fRIRnCZAJPT6OjuLETJ04waNAgJk2axKhRo2jVqhU33XQTO3bsIOxy9atS6rrzTGXpICEqzGSCwYNNzPoMfk24idu3bIG+fY0Oy6bsqUwJ61n0uxsAdw53vmE/rsBAOHwY4vvdB18OhtGjbRBh5WCP5SkxMZHRo0fz+eefWz2uMjfFrl+/niFDhhAcHIzJZGLx4sUlHr927VpMJtN124EDxoygM89nt+Mf78DmzYbEIG7swoULDBgwgKFDh/LC5cWyw8LCGDJkCC+++GLBcXXr1i1UQxcTE0NQUJDN463uBg/R71K/MwDWrjU2GFGk0pYpYR25ufDLL/rrkpphzcwtemcJkLnsKqGylKesrCzuuusuJk+eTLdu3aweW5lr7NLS0mjfvj0PPfQQw4YNK/V5Bw8exNvcaQCoU6dOWW9tEebEbntsMLgZEoIoBT8/P6KLWH/0559/LvR9ly5d2Lt3L7GxsXh7e7N06VJefvllW4UpLuvdGxwd8jmW35STy6JpOMXoiMS1SlumhHVs2ACJiVDLPY0ePseAtiUeHxioH+MJlLnsKqHSlielFA8++CC33HILo0aNsklsZU7sBgwYwIABA8p8I39/f3x9fct8nqWZa0d37tQzfTtUq+Ej9sfJyYl3332Xvn37kp+fz8SJE6lVq5bRYVU73t7QpX0Wm6PcWb3Dh4cyMqpdPzt70r9/f3bu3ElaWhr16tVj0aJF3HTTTUaHVaUtWqQfh2bMx+moN3QsObErXGO328rRCWvZuHEj8+fPp127dgUtnF9//TVt25b8968Im/Wx69ixI5mZmbRq1Yr/+7//o28JfXCysrLIysoq+D45OdlicbRseaVj5qF/vELL8JowfrzFri9s7+rFl4VxbhngxuYoWJ3Xi4eqYT87eyIjyy1LKT3pMMBdLII6z9/wnEI1dhfWWC84YVU9evQgPz/fpve0en1VUFAQs2bNYsGCBSxcuJCQkBD69evH+vXriz1n6tSp+Pj4FGyWHEFiHkABsOOHI/Drrxa7thDV2S39dD+7VfRDrVlrbDBCVCI7dsDp0+BJKrexEmrXvuE50sdOlJfVa+xCQkIICQkp+D48PJzTp0/zzjvv0KtXryLPmTx5MpGRkQXfJycnWzS569wZNm3SI2PvP/2pxa4rRHUWHg6uTrnE5QZz0CGUlkYHJEQlYW6GHcDvuJFVqsSucI2dJHai9AzpYda1a1cOHz5c7M9dXV3x9vYutFlSwUTFhOmPUUVMmSGEKBt3d+jeS39WXO0/0uBohKg8zIndXVz+ws/vhucU1NiZAlE9elopMmGPDEnsoqKiDJ2SwjwydiedyMvI0kOVhBAVdote25zVq42NQ4jK4uBBiI4GZyfFIH6DmjXBueTJieFKYpejnLn44jtWjlLYkzI3xaampnLkyJGC748fP86uXbvw8/OjQYMGTJ48mdjYWL766isApk2bRqNGjWjdujXZ2dl88803LFiwgAULFljuWZRRSIie/DAtrQaHaEHo6dOlqhoXQpTMnNitWaPIP3Ich2ZNjA1ICIOZa+tu6XQRn7+SoXbzUp3n6gq+vnDpEpw9W6pKPiGActTYbd++nY4dO9KxY0cAIiMj6dixY8HcYXFxcZw6darg+OzsbJ5//nnatWtHz549+fPPP/ntt9+4++67LfQUys7RES6Hz3Y66+bYaqCoVRqqG/kdWNdNN4GXew4XLpjYPeJNo8OxKnktye+gNMyJ3d2jveDAASjD8m0F/exicvX8XHauur+eLPX8y1xj16dPnxJvPnfu3ELfT5w4kYkTJ5Y5MGsLC4M//9T97EadOWN0OFblfLnaPz09HfdqPrdYeno6cOV3IizLyQl63ZzFb2udWb27Fh3tcD47KU9XSHkqWWws/PWXXiLrjuHOEBBy45OuEhCgc8GzEf+EY1OhcWMrRWosR0dHQFcEVecyZanyVK3Wir1aaKh+PBzxJIy1739Kjo6O+Pr6kpCQAICHh0e1W09VKUV6ejoJCQn4+voW/CMRlnfLYE9+Wwur8nrznB3OZyflScpTaZnnruvW7UqfubK4bmSsnSZ2Tk5OeHh4cO7cOZydnXGoZisHWLo8VdvErmlT/Xj0pH0ndWaBl/9DmN+MqitfX9+C34Wwjn636iRnPb3IWf0eznaW2IGUJ7PKWJ6mT5/O//73P+Li4mjdujXTpk2jZ8+iR5UuXLiQGTNmsGvXLrKysmjdujWvvvoq/fv3t0gsBaNh7wJ++gn27IH+/XWmVwrVZS47k8lEUFAQx48f5+TJk0aHYxhLladqn9gdPw55ebrfnT0zFxx/f39ycnKMDscQzs7OUrNgA23bQi3PTBLTarDt17N0e93oiCxPylPlLE/z589n/PjxTJ8+ne7duzNz5kwGDBjA/v37adCgwXXHr1+/nttuu40333wTX19fvvjiC4YMGcLWrVsL+pGXV34++PiAm9vlxO7lxfDtt+DlVerEzvweb++JHYCLiwvNmzcnOzvb6FAMYcnyVG0Tu/r1wdlZkZ1tIvbeCTRY8L7RIdmEo6NjpftnLOyLgwP07ZHDT8vdWL2nDt0yM/W7mx2S8lS5vPfeezzyyCOMGTMG0LMyLF++nBkzZjB16tTrjp82bVqh7998801+/vlnfvnllwondg4OsGABpKfrZSw5f17/oAwzMJhr7OIJhIunSj7YDjg4OOBmp/8rbKl6NWRfxckJGtXLA+Door8hN9fgiISwH7cMrQHofnZs2WJwNKI6yM7OZseOHURERBTaHxERwaZNm0p1jfz8fFJSUvCz4NwiHh6XvzAndnXqlPrc6lRjJyyn2iZ2AE1b6E/aR1VjiIszOBoh7Ie5n90mx15k1G9hcDSiOjh//jx5eXkEXDNKISAggPj4+FJd49133yUtLY1777232GOysrJITk4utJXKuXP6sbw1dpLYiVKq3oldM/3mc5SmcMr+q7mFsJXmzaFuXcjOc2TTiWCjwxHVyLUjlJVSpRq1PG/ePF599VXmz5+Pv79/scdNnToVHx+fgq3U65iXoynWXGOXYAogv3nZpkoR1Vf1TuzMI2NpWm0mKRbCFkymK6tQrFplbCyieqhduzaOjo7X1c4lJCRcV4t3rfnz5/PII4/www8/cOutt5Z47OTJk0lKSirYTpfmvSM9XW9QpqZYc36Zq5y4MOzRUp8nqjdJ7JAaOyGsoV8//bj6+wTYt8/YYITdc3FxISwsjJUrVxbav3LlSrqVMAp13rx5PPjgg3z33XcMGjTohvdxdXXF29u70HZD5to6Z2c9KraUnJ2hVi399dmzpT5NVHOS2KETO3VKauyEsCTz9HXbjtci6ZtfjA1GVAuRkZF8/vnnzJkzh+joaCZMmMCpU6cYO3YsoGvbRo8eXXD8vHnzGD16NO+++y5du3YlPj6e+Ph4kpKSLBtYUBAcPKiXOyrjZNYF/exi8ywbk7Bb1Tqxa3J5ffIkfLkQm2FsMELYmQYNoJl/Evk4sv7XUnYwF6ICRowYwbRp03jttdfo0KED69evZ+nSpTRs2BC4fi3zmTNnkpuby5NPPklQUFDB9uyzz1o2MGdnaNECunQp86mBNVIBODvSwjEJu1Vt57EDvYRlcFA+Z+IcODr5c2oZHZAQdqZfX8WR+bA6OpAhdjyfnag8xo0bx7hx44r82bVrma9du9b6AVVQQY1diqexgYgqo1rX2AE0baZ/BUePGhyIEHbolrt8AFid1xu2bjU4GiEMsmYNvPwyLFtW5lMD6+tlL8/m+kFmpqUjE3ZIEjtzPztJ7ISwuD59dX+iv2nPud/+MjgaIQyyahW8/jr8+muZTw24nNjp1ScuWjoyYYcksTMndp+uhBMnDI1FCHvj7w9t6yYCsGZpusHRCGGQcsxhZxYYpN+mZfUJUVqS2JkTu1hXqbYThpg+fTqNGzfGzc2NsLAwNmzYUOyxa9euxWQyXbcdOHDAhhGXjXkVitUH60I1XeBbVHPlWE7MTFafEGUliZ3MZScMNH/+fMaPH8+LL75IVFQUPXv2ZMCAAYVG7hXl4MGDxMXFFWzNmze3UcRld8vdNQFY3fAhcHExOBohDFCRGrur14uVplhRCpLYXU7szlCXjGOyXqywrffee49HHnmEMWPGEBoayrRp06hfvz4zZswo8Tx/f38CAwMLNkdHRxtFXHa9eptwcIDDRx1lgRdRPZnXia1AjV0C/uR5+VouJmG3qn1i5+cHPm56pNGx/TLiSNhOdnY2O3bsICIiotD+iIgINm3aVOK5HTt2JCgoiH79+rFmzZoSjy33ouUW4uMDN92kv5blxUS1VIEauzp19JzG+TiS2LqXhQMT9qjaJ3YmEzQN0BNAShc7YUvnz58nLy/vunUsAwICrlvv0iwoKIhZs2axYMECFi5cSEhICP369WP9+vXF3qfci5Zb0K39FAB//Gu5rI0kqpf8fEjUA4jKU2Pn5HQlHyzm34IQhVT7xA6gaSO9VMvROA+DIxHVkemaJYaUUtftMwsJCeHRRx+lU6dOhIeHM336dAYNGsQ777xT7PXLtWi5hd16m34+f5xvj1r5h83vL4RhTCaIjoaNG8uV2MFV/ezi8i0YmLBXktgBTUP0PEFHUwNucKQQllO7dm0cHR2vq51LSEi4rhavJF27duXw4cPF/rxci5ZbWHg4uDtlc5ZA9s3fa/P7C2EYkwmaN4du3XT1WzkE5MYCEP9KyX1vhQBJ7ABoGuYLwNFeDxkbiKhWXFxcCAsLY+XKlYX2r1y5km7dupX6OlFRUQQFBVk6PItydYVeHVMA+GOtEyhlcERCVB2BNXX/77MXZVS5uLFqvVasWdPmsqyYMEZkZCSjRo2ic+fOhIeHM2vWLE6dOsXYsWMB3YwaGxvLV199BcC0adNo1KgRrVu3Jjs7m2+++YYFCxawYMECI59GqfS7y4fl22BVahfG79kD7doZHZIQ1rd7NyxYAG3awL33lusSAf76MT7J3YKBCXsliR1Xpjw5cQLy8qASzxwh7MyIESNITEzktddeIy4ujjZt2rB06VIaNmwIQFxcXKE57bKzs3n++eeJjY3F3d2d1q1b89tvvzFw4ECjnkKp3Xq7E7wAa+lDztJZOEtiJ6qD7dv1cmKDBpU7sQusq9+UzqbVsGRkwk5JYgfUrQsuTnlk5zhyesavNHpqsNEhiWpk3LhxjBs3rsifzZ07t9D3EydOZOLEiTaIyvLat4danhkkpnnx14LTdJ9kdERC2IB5DrtyTHViVrBebKavBQIqJ6Xg22+hc2do2dK4OMQNSR87dA1d4xp6nqGjG2U8uRDW4OAA/XrmAPBHVk/pZyeqhwosJ2YW2FjP2HA21083KxlhwQIYNQo6dYIffzQmBlEqkthd1jTw8lx2xwwORAg7dutdXgD84TNMjxYUwt5VYHJis4Cmugk2nkBISrJEVGV3uZ8vGRm6Sfntt42JQ9xQmRO79evXM2TIEIKDgzGZTCxevPiG56xbt46wsDDc3Nxo0qQJn376aXlitaqCuezOyFx2QliLeT67LVsgNdXgYISwhQosJ2YWeLkp9jy1yc3IsURUZXP+PPz+u/76vvt09Xv79raPQ5RKmRO7tLQ02rdvz8cff1yq448fP87AgQPp2bMnUVFRvPDCCzzzzDOVbhRfwVx2F3yNDUQIO9a4sd5yc2H9D9LtQVQDFqixq1VL51IKB845GDDf6o8/6kLbqZPuZ7dnD/Tvf+XnRjUPiyKVObEbMGAA//nPf7j77rtLdfynn35KgwYNmDZtGqGhoYwZM4aHH364xJnyjdC0g24iOpoeLC9SIazo1r66fP3xyHcQE2NwNEJYmQUSO0dH8L885YkhK/JlZkLNmhy87SlOnwZatbrys6NHoW1bvbKGqBSs3sdu8+bN1y1y3r9/f7Zv305OTtFVykYsWt60c00AjtIEFSc1CUJYy6399dQNf3ArXDM5sxB2Z8UK2LRJJz8VYF6MJj7OgEFHEyawceFZQt9+kAYN9BRhjzyiu92dipyml0zr2xe++ML2sYnrWD2xi4+PL3KR89zcXM6bP8lcw4hFyxs3c8REPil4c/7wRavfT4jq6pZb9OMe2hH/81ZjgxHC2po21WvqeXlV6DKBifsAOPvdKktEVWazv3JGKd1H9tgxmDMHHngAGi75iCYe8TyUM5PfHv4Jli83JD5xhU1GxRa1yHlR+82MWLTczU3PZwdw1L2N1e8nRHVVuzZ0bK5HTqxepSBfFjYX4kYC3PVo2PizNhxNrhRs20ZmhmLhQr3rl19g6VKYOBG6dNHNxMfTA5jLQwzmNz4bsRISE20Xo7iO1RO7wMDAIhc5d3JyolatWkWeY9Si5U2bydJiQthCvyF6aaRVqV0gKsrgaISwktOn4f/+D2bPrvClAmtmA3A20YZLI+3cCV268HvIeJKSdOXHwIEwYAC89RZs3QoXL+oBs6PvywXgiaT/svSOmTJPpYGsntiFh4dft8j5ihUr6Ny5M87Ozta+fZmYlxaTxE4I67o1Qr85reQ21DJpuhF26tAheOMNeP/9Cl8qoI6u2Y6/6Frha5Xat98CMI+RAIwcqUfnXs3LC26/HeZ+48SDQ86ThxP3bHyW7W9IuTZKmRO71NRUdu3axa5duwA9ncmuXbsK1rOcPHkyo0ePLjh+7NixnDx5ksjISKKjo5kzZw6zZ8/m+eeft8wzsKCmJj078dHvtxkciRD2rUcPvYzfaRpw5Od9RocjhHVYYDkxs8BA/Xg2xUZzreblwbx5pFCDX852AeAf/yj+cJMJZi2ozW1Nj5GOJ4M+jOCYTPhviDIndtu3b6djx4507NgRgMjISDp27MjLL78MXL9oeePGjVm6dClr166lQ4cOvP7663z44YcMGzbMQk/BcprWvADA0dOVqyZRCHvj6QndOuumpT+6vGBwNEJYiQWWEzMLqKuXdo9Pt03XJFavhvh4fq7xTzKzHWneXE9jVxJnZ/hpeyM6dFAknHNgwADpbmeEMid2ffr0QSl13WZerHzu3LmsXbu20Dm9e/dm586dZGVlcfz4ccaOHWuJ2C2uaQe9bMvR9CCDIxHC/t06WPez+yOutcGRCHsyffp0GjdujJubG2FhYWzYsKHE4626MpIF5rAzC2yom2DPZvlW+Fql8s03AHzn9ySgF5wozSqA3r4O/PabiQYNdEv00NvSyciwZqDiWk5GB1CZNO2qZ4CMzw8gLTETz1puBkckhP269Vbdr3z1at3q42jDPuHCPs2fP5/x48czffp0unfvzsyZMxkwYAD79++nQYMG1x1vXhnp0Ucf5ZtvvmHjxo2MGzeOOnXqWKZVyYJNsQEt9VyriXk1ycnRtWNWk54OCxdynlqsjNWTEZfUDHut4GD4fXEW3W/OYVNUDf455BI/LPe16zKeng7x8Xo7d04vmVjUlpYG7u7g7X1l8/Ep/HWHDhX7+0pid5WaTWpSkwtcxI9jWxJoO+j6fwRCCMsICwNvb8WlSyaiJnxF5w9H3/gkIUrw3nvv8cgjjzBmzBgApk2bxvLly5kxYwZTp0697virV0YCCA0NZfv27bzzzjuWSews2BTr17UFTk56Za+EhCvTc1nF779Daio/+T1D7gUHOnaEkJCyXaJVBxcWd3mNiI0vs3CVL5HP5DLtY6dS1fpVRE4OXLigm4AvXNCzKbm7683N7crX7u46ecrP1x8sr33MzYVLl/Q1Ll7Uj1dvCQkQF3clmbPkOgqJieDnV/7zJbG7mslEU7dYtmf6cXRnEm0HGR2QEPbLyQn69sjl56XO/PHRfjpHnoBGjYwOS1RR2dnZ7Nixg0mTJhXaHxERwaZNm4o8p7iVkWbPnk1OTk6RMzdkZWWRlZVV8H2JKyNZsCnWwUEvK3bmjE4krJrY3XUXrF3LvCdbw4Wy1dYVMJnovfBZvmr+NCOTZ/HhdCcOH4cXX4Tu3SsWXm6OYvv8o/wxN4bNu91JyPQm0acJiSmuFk2wysrNJY+guo7UqQPeaWeosW8rNUgt2LxIwZ0MMnEj+fYRJNVvQ3IyJJ+4QNK+GJIdfEjyro+XV8UmLJHE7hpNfc6zPROO7ss0OhQh7N6tA5z5ealeXmzSihXw2GNGhySqqPPnz5OXl1fkSkfXzqVqdqOVkYKCru9vPXXqVKZMmVK6oL74AmJjoVmz0h1/A4GBOrGz+nqxDg6cbtKb9ZcHrI8cWc7r+Psz4rs7ODv4GSbwPr//7sjvv0OvXjrBu+220vXbUwqi/85m1WfH+WNpNmtPNCRZNQOu+r2mXvnSZFL4qovUIhFH8sjAnQzcycSNDNzJpXTtnD5cwi/ABb96HtSsCX5Jx/Hbtgw/LlCb8wQRRyDxBY/ec2Zguv8+ffLP2+CRR/V8MF5eUKOGfnR31wn//90O5gR3zmK9RpuDA5zPBGdJ7CyqaUAanIWjcTYaUi5ENXbrrfrxT3qQseJL3CWxExVU1EpHxa1yVNzxRe03mzx5MpGRkQXfJycnF7/sZYMGerOQgCN/Aj2I33YaBlp3qc358/Vjz55QoVU9Bw3imXFLGTg9hLeZyFweZP16F9av190xXngB7rzzyvx4aWlw8CBE71fs35NH9GEntmyBuDgX4Ep7cE0ucEvQAfr0yqNhIwdq9QylVjM/atWCmimncTwUrbPGlBTdbpqQoDPihARyX3mdjEah5OSA4/zvcHhhEo75OTjk5+KYl41Dfi4O+bmYvGrArC9g6FB9001x8PEGnaD5+kKtTro2tlYtvYWGXnned9yht9Lo3x8WLdIJnwU6T0pid42mTw2Ax+Com4zUE8LaQkKgbp0sYs+5sXFVJrcqVbqP8EJco3bt2jg6Oha50tG1tXJm5V0ZydXVhpMEXyUQXVV3NjbHeje5806oX595694FXMrXDHutjz6iWd+FzPrkE17e+g7vPbSHmXNd2bEDhg2D0JA8GjU2Eb07hxNx5t+tiatTFDc3RQ+1gVvbnePWf9Shw5jOOHp1K/p+tRtA4+ITaiegYOXeJ+7TW2l066Y3S6tb16Jt65LYXaNpCz1sR1afEML6TCboF+HEV9/CykudufXAgcKfeoUoJRcXF8LCwli5ciV33XVXwf6VK1dyRzE1J+Hh4fzyyy+F9lXWlZEAAmqkQTLEn7HS+srHjsHPP3PQ1JKdygVHRxg+3ALXdXDQFxo+nHpnz/JegCsvTIEPpik++m8q0Qe9iD4IoJO62pyjFfsJrZ9Kq+cH0a4ddO1qws21p3zwKwVJ7K5hXlbs5Ek9KsZJfkNCWFXEAEed2HEbb61ZI4mdKLfIyEhGjRpF586dCQ8PZ9asWZw6dapg7tTJkycTGxvLV199BeiVkT7++GMiIyN59NFH2bx5M7Nnz2bevHlGPo1iBfpmwhk4m2Cl1UC/+w6AeY0mw3HdB84CA3oLu1x7Wrs2vD7hAv/6oT/fH+6EwkSoVyyh4b7U6ddOL08Tdqs517tMkrrSkLTlGsFOCbg6+JKV68KpU9CkidERCWHfbrtNP0bRibOrZxMwzth4RNU1YsQIEhMTee2114iLi6NNmzYsXbqUhg0bAsWvjDRhwgQ++eQTgoODK+3KSAABfroJNj7RSm/dGzaggHlpuk/ZfaVsoSy3WrXwPriNx3bu1IMKWra8fjFaUWaS2F3DwcuTJvlHiKYVR/9Oo0kTT6NDEsKu+ftDxzbZRO114Y87PuJ+owMSVdq4ceMYN67oTwfmFZKuZl4ZqSoIDNADO84mWWny/AMHiKIjhxJ8cXPT3e2szmTSoyiExUhqfC1PT5o66090R7ZfMjYWIaqJiEEuACxfKf+ShChOQJAuH/EpVqhwSE+HU6f4Dl1NN3iwHvwpqh75L1qEpj561eKj+7NucKQQwhLMc8SuWKHnrBJCXC+wre7wdinbkyxLvz0dOkQ+JuY76GGwFhkNKwwhiV0RmgbqmQ6PHpOOmkLYQvfu4OGWz9mzsGfkG0aHI0Sl5PvoPbjoym3LT1KcksKfDe4nJr8u3t4wcKCFry9sRhK7IjRtmAfA0TPuBkciRPXg6gp9OiUBsPyXbL1goxCiEJOpYFCp5RO7nj35cejXANx9t15XVVRNktgVoVlLPabk6IWa8v4ihI30H+4NwIqMHrBnj8HRCFE5mRO7YlZJq5CtW/XjgAGWv7awHUnsitC4vTdO5JCe50pMjNHRCFE9RAzQk4NvoCfpyzcYHI0QldDJkwTu/QOwfI1dbu6Vz1MdO1r22sK2JLErgvM/R9A8VM86Hh1tcDBCVBMhIVDfJ5ks3Fi/6LzR4QhR+Xh6EpB5AoD42DzLXTc/n8NBvcjMBE+P/IKJ+kXVJIldUUymgsnvJbETwjZMJujfRw/1WxFVB/Is+MYlhD3w9SUQ3QZ79nS25a4bE8Pu88EAtG0rcwRXdfLnK0bLlvpREjshbCdipB8Ay7P6wO7dxgYjRGXj5ESAmx5kFB+Ta7nrHjjALjoA0KGjpAVVnfwFixG6XY8Oit580eBIhKg++kU44kAe+2lNzOEMo8MRotIJ9EoH4OxZC074ePAgu2kPQPv2lrusMIYkdsUIzd4FwIHjriUfKISwGD8/uKmLnj9yRVp3g6MRovIJ8NXdFeITHC130QMHJLGzI5LYFaNlez2Jz7lUDxITDQ5GiGokor/+t7RihcGBCFEJBdbOAeDsRWeLXTPh73jiCMZkUrRta7HLCoNIYlcMzzaNacBJQPrZCWFL/fvrx5UrFXmXUowNRohKJqCDHuSQnOFChoV6K+yO1stZNKuXSY0alrmmMI4kdsVp3pxQdEYniZ0QttOlC3i7ZnLhgomdLy0yOhwhKhXvT6YWrAphkbnscnPZXedWANp3tGDzrjCMJHbFad6clhwAIHqvTLsghK04O0O/Fnpm8BXLLdhBXAg7cPWyYhZZfcLJiV1hjwDQoYuLBS4ojCaJXXGCggh1OQZAdJSMzhPCliKG6iqJFUebQk6OwdEIUbkEBupHSy0rZp5ZSAZO2AdJ7IpjMhEaoheKPXDUcp1UhRA3FvGg7ke0Kf9mktfvMjYYISqThQup//evABw/XvHLZSZlcUA3TkliZycksStB6KqPATgZ50p6usHBCFGNNGnmQDPPM+TizNovTxgdjhCVh8lEy4wowDL9v/cPe4ncXPCrkUW9ehW/njBeuRK76dOn07hxY9zc3AgLC2PDhuIX7F67di0mk+m67YD5I0IlVqcO1KoFSsHBg0ZHI0T1EtFRrxe7fK3MJSlEAT8/iw7s231Al6/2TVIxmSp+PWG8Mid28+fPZ/z48bz44otERUXRs2dPBgwYwKlTp0o87+DBg8TFxRVszZs3L3fQtiRrxgphjP73eAOwIqYVZFtwXUwhqjJLJnZ5eeyO9wegfZhTBS8mKosyJ3bvvfcejzzyCGPGjCE0NJRp06ZRv359ZsyYUeJ5/v7+BAYGFmyOjlVgWPWBA7Tc9xMgiZ0QttZndAOcTLkcUc04dlAGUAgBQM2ahHAQE/kkJsK5cxW41smT7MrTMxJ36OllmfiE4cqU2GVnZ7Njxw4iIiIK7Y+IiGDTpk0lntuxY0eCgoLo168fa9asKXukRqhZk9CL+nkd2CdTnghhS96+DoT30LUIKzZ6GhyNEJWEnx8eZNDQAhPoq+irlhLrKF3u7UWZ/pLnz58nLy+PAPMkOpcFBAQQX8y466CgIGbNmsWCBQtYuHAhISEh9OvXj/Xr1xd7n6ysLJKTkwtthvD3J9T9cuHZIzUGQtiaeRUKWV5MiMvc3cHV1SLNsae3nuESNXEy5RZ0OxJVX7lSdNM1PSyVUtftMwsJCeHRRx+lU6dOhIeHM336dAYNGsQ777xT7PWnTp2Kj49PwVa/fv3yhFlxJhOhTfSCy4dOuJCba0wYQlRXBcuLLc0m85wsLyYEJhPcdBOhQUlAxRK73X/p97fQOudxlTFKdqNMiV3t2rVxdHS8rnYuISHhulq8knTt2pXDhw8X+/PJkyeTlJRUsJ0+fbosYVpUg9ZeeJBGTq4Dx44ZFoYQ1VKnTlDPKY7ULBdWvLvH6HCEqBw2bCD0tX8AFUvsdjmFAdChlbRI2ZMyJXYuLi6EhYWxcuXKQvtXrlxJt27dSn2dqKgogoKCiv25q6sr3t7ehTajOLRoRgh6rhMZQCGsoSzTBwGsW7eOsLAw3NzcaNKkCZ9++qmNIrU9Bwe4u63+ELjwJ+nnKop38eJFRo0aVdDSM2rUKC5dulTs8Tk5Ofz73/+mbdu2eHp6EhwczOjRozlz5oztgq4AS8zYsNutKwDtBxvUKiasosxNsZGRkXz++efMmTOH6OhoJkyYwKlTpxg7diyga9tGjx5dcPy0adNYvHgxhw8fZt++fUyePJkFCxbw1FNPWe5ZWNPVa8ZKYicsrKzTBx0/fpyBAwfSs2dPoqKieOGFF3jmmWdYsGCBjSO3nWEP6g92S461ISdTkjtRtPvuu49du3axbNkyli1bxq5duxg1alSxx6enp7Nz505eeukldu7cycKFCzl06BBDhw61YdTlZ07sTp+G1NTyXUOWErNTqhw++eQT1bBhQ+Xi4qI6deqk1q1bV/CzBx54QPXu3bvg+7feeks1bdpUubm5qZo1a6oePXqo3377rUz3S0pKUoBKSkoqT7gV89df6jX/jxQo9cADtr+9sB0jXmddunRRY8eOLbSvZcuWatKkSUUeP3HiRNWyZctC+x5//HHVtWvXUt/T0PJUDrmZOcrfdFaBUsvf3WN0OKKUbPk6279/vwLUli1bCvZt3rxZAerAgQOlvs5ff/2lAHXy5MlSn2NIeZo9W6ngYOXvnqRAqW3byn6J5DMpSk+/r1RCguVDFJZVltdZuQZPjBs3jhMnTpCVlcWOHTvo1atXwc/mzp3L2rVrC76fOHEiR44cISMjgwsXLrBhwwYGDhxY3jzU9m66idBPdO2i1NgJSyrP9EGbN2++7vj+/fuzfft2cnLss5+Mo6sTdzXV/esWfFnOqglh1zZv3oyPjw8333xzwb6uXbvi4+Nzw6m4rpaUlITJZMLX19cKUVqQiwucOUMrl6NA+d6b9nyiZ6YIdkukTh1LBieMJhPXlMLVfRmUMjYWYT/KM31QfHx8kcfn5uZy/vz5Is+pNNMHVcDd9+r57Bbva0aetMaKa8THx+Pv73/dfn9//2LL0rUyMzOZNGkS9913X4n9uitFeWrRAoDQHN2WWp7Ebvc2vZpLe//S/X5E1SGJXSk0bw6OjoqUFKgi/WpFFVKW6YOKO76o/WaVZvqgCug7oQM1uUBCXm02LkowOhwBOpv480+r3uLVV18tcq3xq7ft27cDRb/+b1SWzHJychg5ciT5+flMnz69xGMrRXkyJ3bpO4DyJXa7DrkD0CEkw2JhicpBErtScHllMk3z9cg8aY4VllKe6YMCAwOLPN7JyYlatWoVeU5lmj6ovJxr+zD0Vv0GtGDD9TUzwkbS0+HLL6FnT2jVCsaNs2ozxlNPPUV0dHSJW5s2bQgMDOTs2bPXnX/u3LkbTsWVk5PDvffey/Hjx1m5cuUNZ2GoFOXJ11dPoF+BSYp3xwcC0P4mFwsGJioDWfW3NNzcaKmiOUQLoqPh1luNDkjYg6unD7rrrrsK9q9cuZI77rijyHPCw8P55ZdfCu1bsWIFnTt3xtnZuchzXF1dcbWD2UeHPVOXL/+AhQvh/ff1VCjCxl54AT74QH/t6Mgx/64krkvnpj7WWfKtdu3a1K5d+4bHhYeHk5SUxF9//UWXLl0A2Lp1K0lJSSVOxWVO6g4fPsyaNWuK/XB0tUpTnkJCCE3QGd2RI5CdrbvelUZeZg57MpsB0L7fjX+/omqRf42l0bx5wSejAwcMjkXYlbJOHzR27FhOnjxJZGQk0dHRzJkzh9mzZ/P8888b9RRs5rbboEYNiImBbduMjqYaUAp++gl27ryy74EHOFC3H2/cuoaOLTNoumoWT08yfh3f0NBQbr/9dh599FG2bNnCli1bePTRRxk8eDAhISEFx7Vs2ZJFixYBkJuby/Dhw9m+fTvffvsteXl5xMfHEx8fT3Z2tlFPpfRCQgjmDF4umeTl6eSutI6sjSEdT9xJp3nPQOvFKAwhiV1pXJXYSVOssKQRI0Ywbdo0XnvtNTp06MD69etZunQpDRs2BCAuLq7QnHaNGzdm6dKlrF27lg4dOvD666/z4YcfMmzYMKOegs24ucGg1icAWPjGfmODsXfr1kHXrnDPPagPPuTvv+GVV6D1PzsSGvsH//dHH3btc8bREby8dG2R0b799lvatm1LREQEERERtGvXjq+//rrQMQcPHiQpSS/FFRMTw5IlS4iJiaFDhw4EBQUVbGUZSWuYzp0x9epFaLAevLG/DEVi95pEANp6HMXRWdIAeyNNsaVxdWK3Px/Jh4UljRs3jnHjxhX5s7lz5163r3fv3uy8uhalGhlWdzPzacSCNX78V+llM4UF7d0LkybBb7+RhDefuUxm1tLnOfzVlUOcnXV3lGHD4I47oBQtpTbh5+fHN998U+Ix6qr+gI0aNSr0fZXz+OPw+OOEPgh/nShbpcPuc3UBaN9KFkC3R5LYlYavLy39zsEFiD/rwKVLuu+qEMK2BjzVDLeFGRxNDeTvHTm071x0v0JRRqdPw8svw5dfckrV4wPTe3zmNJaUbHc4D66u0L8/DB8OQ4bI/7/KpDxLi+06q5f07PBQRytEJIwmVU+l5B0SRF1iAGmOFcIoNXqHcbvrGgAWTKt6o3srrblz2Tl3N/epb2hiOs57agIpOe60agWffw7nzsHPP8OoUZLUVTahTbKAMtbYyVJidk0Su9K65RZa1tb9EmQAhRAGcXDg7pv1ZJILfnc3OBj78McfcMsfkwljJ/O4jzzlyC23wNKlsGcPPPKI7kcnKqFbbiH03rYAHDwI+fk3PiUxEWJj9dft2lkxNmEYSexK6z//IXSk/ngjNXZCGGfI48E4k83+C0EciK7CfaSMtHAhx297jDvvyOe222DNeiccHeH++/Ug2FWrYMAAmVKm0vP0pDHHcHHKIyMDTp688Sm71+vBI005gpeTTE5sj6TYlkF5+jIIISzL984+9HPQzbELZ1w/Ka0oQWYm6Y+N55Vhewj940N+XuKAoyM8/TQcPw7ffAMdpdtV1dGiBU7k0cJHl4PSvDftWqVbntp7HAZ3qfW2R5LYlUFoS107IImdEAby8GBYpxMALFhZ8ioB4gp14CCLQifT6rPxvMYrZOHGLX3z2b0bPvwQquBKc+LyHH2hzkeB0r037d6pF1tuH3TOamEJY0liV1oZGYTeodfnO35ckZlpcDxCVGN3/PYYDg6w84AHx48bHU3ld+C/i+nfOoa7T7zPSRpRv04GP/4If6xyoHVro6MT5WZO7DKjgFImdkf0hNIdQrOsFpYwliR2peXuToBHCj5cIj/fxKFDRgckRPVVx99Er17668sLCYgi5OfD/yJW0m7yQFbm98PVIZv/G59C9HF3hg+XeQCrvBa6siE0aQtw48Tu4kXYf74OAO1vdrNqaMI4ktiVgamFLC0mRGVhXmxjwddpxgZSSZ05AxERMHHlbeTgwqAWh9gX7cjr73vhafwqYMISAgPBy4tQtQ/QiV1Jcy5//TXkKGfa8jcNwuvaKEhha5LYlUWLFrK0mBCVxF3JXwKwaZcnMTEGB1PJLPk6iXbt9OhWDw/4/P0UfjnQgqYtHI0OTViSyQT33EOLf96MyaS4eBESEoo+VCmYOUPPh/I4MzGFtrRhoMKWJLErC1kzVohKo+6gDvRmLQAfvptjbDCVRHqaYlyvvdwx2ofERD3CdedOeGS8lzS72qvZs3H/ehZNmug/cHHvTRs3wv4DDni45PDPB5wgKMiGQQpbksSuLCSxE6LyaNeO5/31Iu8zZuj+Q9XZ39uyuKneGWZsaAPA8x3/YPPmgv71ws7daDqumTP148h/OuMz9wPpYGnHJLEri6sSu4MHIS/P4HiEqM5MJgb9qxVt2ENqljPTPy7FtPt2SCmY8eYFutwM+y/VJZA4Voz5gf/t6Ierq9HRCZvIyiI0WE88XFRil5gIP/6ov378cRvGJQwhiV1ZNGtGo4GtcXXMISsLTpwwOiAhqjfT448xyeMjAKb9L4f0dIMDsrGMDHiofyzjXvQjS7ky2HkZf/94iNs+u1dqZKqLffvAw4PQ714Cik7svvoKsrKgQ/3z3OR9sOQRFqLKk8SuLDw8cPxtCSGtnQHdd0UIYSAvL0ZE1qUxxzif4sqc2dXnDevECejeIY0vV9bFgTz+V3caSw6EUGd4b6NDE7bUqBHk5xOa+hdwfWKn1JVm2MdP/x+mAbdL0m/nJLErh/799eMPPxgbhxACnJ59kn85fwDA/97KI6cajKNYuRI6d4aoQ57Udkli5aAPeP7IWExNGhsdmrA1T0+oV6+gm1BsLCQnX/nx+vW665Cncxb38R306WNMnMJmJLErK6W4b4Dupf3LL4ULkBDCALVr8+Cykfj7K07FOjFvntEBWY9S8N+nYrj9dkViok7uduz34JZfI8FNJpyttlq0wIdkgnx1X4Sr51mdNUs/3uf7O96kQN++BgQobEkSu7L64APa3+JHqHcMWVky670QlYH7LeFMmKCbl956S6+4YG9SkhXDOx5l8if1yM838fBDig0boEFTZ6NDE0YzLy3mEwfA/v169/nz8NNP+uvHE9/UX0iNnd2TxK6sGjXCBPyjxi8AfPedseEIIbQnngBvb8X+/bo23Z4c3JnGzfVjWbi7Kc5kM7Pjp3z+SZZU0gnNvLSYo17r0tzP7ssvITsbwpolEZa/DZo0gQYNjIpS2IgkdmXVvDkA/0jW9durVsHZs0YGJIQA8HHJYJzz5wBMfTndbgb+LZkRS5eb8olOrkddYlj/zAIe2/E4JnfJ6sRl5hq7DD2iz7y0mLkZ9vEmK/UX0gxbLUhiV1ZNm4LJRLPUXXTpmENe3pX5gYQQBnJ359mbt+BKJlv/9mDdOqMDqpj8fHjl3mjuGFeX5HwverpsYcfPsXT94B8yqlEU1qYN/POfhA5pBujEbu1aOHQIvLzgH4kf6+MksasWypXYTZ8+ncaNG+Pm5kZYWBgbNmwo8fh169YRFhaGm5sbTZo04dNPPy1XsJWCmxvUrw/AfT1OAVZujlUKjh6FuXPh2WepFkP+hCinwClP8DBzAF1rV1VdugR3DM7ltR/1cgJPBy9g1ZFGBAy92djAROVUvz58/TWhr44A4Ngx+PBD/aP774cafyzW/RPMUzoIu1bmxG7+/PmMHz+eF198kaioKHr27MmAAQM4depUkccfP36cgQMH0rNnT6KionjhhRd45plnWLBgQYWDN0yXLgDce2kWDg6weTMcP26ha+fnw99/wyefwMiRULcuNGsGDz0EW7eC81UdpefMge3bZbJJIcw6d+Zf3TfjSC4rNnhUybkm9+/X/2J+/d0JV5d85t7+PR+eGIpz/UCjQxOVXGAg+Pjot5HFi/W+xx8HfH1h8GCoXdvA6ITNqDLq0qWLGjt2bKF9LVu2VJMmTSry+IkTJ6qWLVsW2vf444+rrl27lvqeSUlJClBJSUllDdc61qxRCpRyd1f9emUrUOrNNy1w3b//VsrPT1/76s3ZWalu3ZT67rsrx168qJSTk/553bpKPfGEUr/+qlRysgUCqZ4q3evMSuz+ea5ape7jGwVK3TMkw+hoyuSn/0SrGm76f0qDBkpt3250ROVn96+zyyrN88zOVurgQdW1Y0bBW0eXLsaGJCynLK8zp7IkgdnZ2ezYsYNJkyYV2h8REcGmTZuKPGfz5s1EREQU2te/f39mz55NTk4Ozs5VcKh+797wzDMwdCj3nXBi1XrdHDt5cgWv27YtvP8+PPkkhIdDz556u/lmDp5y5/PP4eKqy0U2xRFVdzkq9gwqNg9mgNeM4zQxraFJMweaPNKXJk8OoEYNizzjMlNKj8ZKT4e0tOK31FS9Xf21+fucnCtbbm7hRxcX8PYGL888vBwz8HbLxsslC2+XTPw8s2jaKI9mzaBBWB0cg/x1UPn5enMq08teVDV9+zKpzf18t/d+fvrFhcOHC8Y8VVrZWYrJt+/kvbVhAPTtksb8Xz2pU8fgwETV8fLL8N//EtpyE1sIBy7X1j30EAQHw9NP6yo9YffK9A53/vx58vLyCAgIKLQ/ICCA+Pj4Is+Jj48v8vjc3FzOnz9PUFDQdedkZWWRlZVV8H1yZZsF2GSCD/RM93dfgifGwd69sGePzs0q5N574b77CpKPQ4fg9cd04lh4bi4v4Jbrz1fAYWCS3vz9oUndTBpmHsLH14SXF3j5OuqtlgvetV2o0bAWytWNrCzIij1H1sETZCVlkZWSRVZKDpkZirRsJ9KznUlr0pZ091qkpUF6XBLpJxNIz3MlI8/lypbrTGaeM/nKFmNzHIHis1dnxzyaNNOt2c1rJtLsyHI6vfdPwsNtEJowhslE29fvZdBdv/Ibg3niCcWyZaZKm8+f+DuZEX3i+euiTuoiW/zKW8v74ORrbFyiijFPeZK7BwjH2xtG3HYBxnypP2k/9ZSx8QmbKde/OtM1I7KUUtftu9HxRe03mzp1KlOmTClPaDbn6wuDBikWLTLx3XcwdWoZL3DkiP4k9cUX+tPU5YmpDh2C//wHvv32SkI3eLCuyDOZrt8ALl6EY3vTOLY3g6MXa3LhkiMJCZCQ4MYW2pUyoDqXt2Lsvfobn8tbyZydwdMlG8+0BDxJw4N0PEnDkzS8SMGTNGr0CqNG1zbUqAE14g7jMeMdXMjGmRycycGJ3IJHp0ceJPvOe0lOhpQ9J0h5ZybJzrVIcfIlxcGXs/m1OZpZj6M59cnOc+XgQb2kjn5e/2T4ezKS2e4NHcp/50ax9knFqlUmIiOvdCavTBa/e5SHJtbmUn4LfLnIF2M2ceesQTLqtRwuXrzIM888w5IlSwAYOnQoH330Eb6+vqU6//HHH2fWrFm8//77jB8/3nqBWsvlKU/uSvuGjxs8xvjx4LljvU7qWraEIipRhH0qU2JXu3ZtHB0dr6udS0hIuK5WziwwMLDI452cnKhVq1aR50yePJnIyMiC75OTk6l/eSRqpXL+PLz9Nv846sUiXmLePHjzzTL8T05MhIED4fBh3fy6YEGRCd2QIfDKKxAWVpqLel7e9Mi648fh2OK/ObXyIMkpJlLSHEhJdyQl05mULBdSctxIadIOBx9vXF3BNS0R15OHcHUBVzcTbu4mXN1MeLrm4OmSi0enlng2CcDDAzyTzuCx9y/cHbNxd8jSmykTD4dM3MnA/d4heHTroMd77DmoV6JWSj8xpfQvysVFb3c1h26Xn0KMO7RsrddAvHqrUUM/BgdDTfPzbVRsNp2XBzEx+td75AgcPpjPkcP59OhRSatuhOU4ONDmgTC+9oa774aPPoLWrS83TVUCWVkwccAePlyjq/hvdoni+x8caHTHIIMjq7ruu+8+YmJiWLZsGQCPPfYYo0aN4pdSzFa9ePFitm7dSnBwsLXDtJ7LNXbN4jZwMi0dPDzg2TX6Z7LaRPVS1g58Xbp0UU888UShfaGhoSUOnggNDS20b+zYsVV78IRZQoJSrq4qHTdVwz1HgVIbN5by3IwMpXr00D1cGzZUebFxavJkpRwcroyZGDKkaneermoq7evMwqrL8zT7z4vpCpRycsxTa9YYHY1SR48qFRZ2pZw/13Shyoq/YHRYFmfL19n+/fsVoLZs2VKwb/PmzQpQBw4cKPHcmJgYVbduXbV3717VsGFD9f7775fp3pWqPJkH3+3apb9v105/P3++sXGJCivL66zMnaAiIyP5/PPPmTNnDtHR0UyYMIFTp04xduxYQNe2jR49uuD4sWPHcvLkSSIjI4mOjmbOnDnMnj2b559/vuJZqdHq1IFRo3Ank7vr6Ln8SjWnXX4+PPww/Pkn+PiQtWgp/3w+kKlT9Y+GDNGzmCxZUtpaOiFEcV7Ie52RzCM3z4Hhd+Vy7JgxcSgF336VR8eOsGMH+PkpfnluLe8cvhOXgJo3PF8Ub/Pmzfj4+HDzzVfm+evatSs+Pj7FDuwDyM/PZ9SoUfzrX/+idevWpbpXVlYWycnJhbZK43KtHYcO6Ralv//W30uNXbVS5sRuxIgRTJs2jddee40OHTqwfv16li5dSsOGDQGIi4srNKdd48aNWbp0KWvXrqVDhw68/vrrfPjhhwwbNsxyz8JIl/ti3Hf6bQB++KEUcwi//DLMmwdOTlz68mcGPNfK/C1ffSUJnRCWZHr1FeZ0n0NntpF4yYmhA3Ow9Xvx0ehs+jc7yj8fcCQ5Gbp1g127TAx+p4/0p7OA+Ph4/P39r9vv7+9f7MA+gLfeegsnJyeeeeaZUt9r6tSp+Pj4FGyVqpvQ5X52HDxIwdIrrVvrUXSi+rBBDWKFVaqq7qJERKgcHFUd92QFSv3+ewnHfvVVQRvM6Xe+V23a6G+9vJRascJmEYsiVPrXmYVUl+dZSGKiim3SQwUTo0CpwQNyVG6u9W+blaXUm0/GKDeTnlvMlQz1+r1/q+xs69/baJZ4nb3yyisKPda/2G3btm3qjTfeUC1atLju/GbNmqmpU6cWee3t27ergIAAFRsbW7CvNE2xmZmZKikpqWA7ffp05SlPixcr9corSm3apNRnn+mm2SefNDoqYQFWm8dOFGPCBJxWrODe3Hl8wmPMmwe3317Msd27Q8uW7O35BAOmjSAmRg9WWroUOnSwZdBCVCN+fgSvmMvisAfplbSEX39354VJ+bz1P+tNybNxdRaPj7jIvvN1AejnvJ5P302l2VMDQCrpSuWpp55i5MiRJR7TqFEj/v77b86ePXvdz86dO1fswL4NGzaQkJBAgwYNCvbl5eXx3HPPMW3aNE6cOFHkea6urri6upb+SdjSHXfoDfQUCg8/rCcFFdWLDRLNCqv0NQz5+UqFhqqNhCtQqkYNpdLTr/p5Tk6hw1f/kqp8fPIVKBUaqtSJE7YNVxSt0r/OLKS6PM8ibdqkvnMaVTBwYfp0XXwt6cIFpR67I67gHrVJUF93/Vjln02w7I0qOSMGT2zdurVg35YtW0ocPHH+/Hm1Z8+eQltwcLD697//fcMBF1er1uVJ2IzU2NmayQSTJxO+bTuNFuVwIsaZ55/X/VhNyUk4zPkcU/duOHQPJzERXn/dk+xsvajE4sXg52f0ExCimggP5x/fxbBvzEe8kfw048bB55/r6YSGDKlYd7cDB/SMPnPnKi5d0jP8P+w+j7dn+lBr1JMWegKiKKGhodx+++08+uijzJw5E9DTnQwePJgQc78zoGXLlkydOpW77rqLWrVqXTfllrOzM4GBgYXOqXJOnIDdu+GWW8DLy+hohBFskGhWWFX6RDR58vVLvRa1DR+uZzwRlUdVep1VRHV5niXJS01XL7+slKfnlTLZsU22Wry4bDV4mZlKffdtvurd/kKh8t2ySZZaO+htXX1XTdn6dZaYmKjuv/9+5eXlpby8vNT999+vLl68WOgYQH3xxRfFXqPKT3eilFKNGl15IX71ldHRCAuRGjsDPfccJCXBpV0nyN/yFyo/n3wvH1T3HuR7eKGUHhEXGQkOtlhxSwhxHQdPd6ZM0Yu+vPvYAT5eVJeovV7ceSd0CEnnlf96cMcd19fg5ebq9Y9jY+GLWdl88Xke51PdgZo4mPIZPMSBsWMhIsIFR8d/GfHUqi0/Pz+++eabEo9Rl1c9Kk5x/eqqlJAQXWsHUmNXTUliZ2G1Dmzkk+k9ruwYOFBPbucjBUyIyqZ2bZj6TDzPxT7He3915yOeZtdBL+66C+r5peHsBOkmTzIydEKXm3v12S4A1CWGMc5fMebhfOp9+n+GPA8hCnh7X/m6Vy/j4hCGkcTO0i737wBg4kS9xpijo3HxCCFK1qcPtbf24c2tW3nuvxN47+emfKieIuZC8R/GHMklghU8HvAzg/7VCqdHxumFo4Uw2tXz6kkH7mpJEjtLe/NN/bH+jjtgxAijoxFClNbNN1Nr0c28ceoUz//vf+xeexE3dxPun32Ihwe4u4PHF5/gfmg3bjWcMA0cAAOnywc3Ubm8/DLEx8NDDxkdiTCISd2o00ElkJycjI+PD0lJSXhfXc0shAVVl9dZdXmewljV5XVWXZ6nMFZZXmfSfV8IIYQQwk5IYieEEEIIYScksRNCCCGEsBOS2AkhhBBC2AlJ7IQQQggh7ESVmO7EPHA3OTnZ4EiEPTO/vqrAQPEKkfIkbEHKkxCWU5byVCUSu5SUFADqXz3xohBWkpKSgo+Pj9FhWI2UJ2FLUp6EsJzSlKcqMY9dfn4+Z86cwcvLC9M1izcmJydTv359Tp8+bddzCMnztD6lFCkpKQQHB+Ngxwv5SnmqPs8TjHuuUp6qz+usujxPqBrlqUrU2Dk4OFCvXr0Sj/H29rb7FxTI87Q2e65ZMJPydEV1eZ5gzHOV8qRVl9dZdXmeULnLk/1+jBJCCCGEqGYksRNCCCGEsBNVPrFzdXXllVdewdXV1ehQrEqep7CF6vL7ry7PE6rXc61sqsvvvro8T6gaz7VKDJ4QQgghhBA3VuVr7IQQQgghhCaJnRBCCCGEnZDETgghhBDCTkhiJ4QQQghhJ6pEYjd9+nQaN26Mm5sbYWFhbNiwocTj161bR1hYGG5ubjRp0oRPP/3URpGWz9SpU7npppvw8vLC39+fO++8k4MHD5Z4ztq1azGZTNdtBw4csFHUZffqq69eF29gYGCJ51S1v2VVIOXpelWxPIGUqcpAytP1pDwZTFVy33//vXJ2dlafffaZ2r9/v3r22WeVp6enOnnyZJHHHzt2THl4eKhnn31W7d+/X3322WfK2dlZ/fTTTzaOvPT69++vvvjiC7V37161a9cuNWjQINWgQQOVmppa7Dlr1qxRgDp48KCKi4sr2HJzc20Yedm88sorqnXr1oXiTUhIKPb4qvi3rOykPBWtKpYnpaRMGU3KU9GkPBn796z0iV2XLl3U2LFjC+1r2bKlmjRpUpHHT5w4UbVs2bLQvscff1x17drVajFaWkJCggLUunXrij3GXHAuXrxou8Aq6JVXXlHt27cv9fH28LesbKQ8Fa0qlielpEwZTcpT0aQ8Gfv3rNRNsdnZ2ezYsYOIiIhC+yMiIti0aVOR52zevPm64/v378/27dvJycmxWqyWlJSUBICfn98Nj+3YsSNBQUH069ePNWvWWDu0Cjt8+DDBwcE0btyYkSNHcuzYsWKPtYe/ZWUi5cn+yhNImTKKlCcpT5X171mpE7vz58+Tl5dHQEBAof0BAQHEx8cXeU58fHyRx+fm5nL+/HmrxWopSikiIyPp0aMHbdq0Kfa4oKAgZs2axYIFC1i4cCEhISH069eP9evX2zDasrn55pv56quvWL58OZ999hnx8fF069aNxMTEIo+v6n/LykbKk32VJ5AyZSQpT1KeKuvf08mwO5eByWQq9L1S6rp9Nzq+qP2V0VNPPcXff//Nn3/+WeJxISEhhISEFHwfHh7O6dOneeedd+jVq5e1wyyXAQMGFHzdtm1bwsPDadq0KV9++SWRkZFFnlOV/5aVlZSn61XF8gRSpioDKU/Xk/Jk7N+zUtfY1a5dG0dHx+s+/SQkJFyXJZsFBgYWebyTkxO1atWyWqyW8PTTT7NkyRLWrFlDvXr1ynx+165dOXz4sBUisw5PT0/atm1bbMxV+W9ZGUl5KpuqVp5AypQtSXkqGylPtlOpEzsXFxfCwsJYuXJlof0rV66kW7duRZ4THh5+3fErVqygc+fOODs7Wy3WilBK8dRTT7Fw4UJWr15N48aNy3WdqKgogoKCLByd9WRlZREdHV1szFXxb1mZSXkqm6pWnkDKlC1JeSobKU82ZMCAjTIxDyefPXu22r9/vxo/frzy9PRUJ06cUEopNWnSJDVq1KiC483DjydMmKD279+vZs+eXSmGH5fkiSeeUD4+Pmrt2rWFhlmnp6cXHHPt83z//ffVokWL1KFDh9TevXvVpEmTFKAWLFhgxFMoleeee06tXbtWHTt2TG3ZskUNHjxYeXl52dXfsrKT8qTZQ3lSSsqU0aQ8aVKeKtffs9Indkop9cknn6iGDRsqFxcX1alTp0LDrB944AHVu3fvQsevXbtWdezYUbm4uKhGjRqpGTNm2DjisgGK3L744ouCY659nm+99ZZq2rSpcnNzUzVr1lQ9evRQv/32m+2DL4MRI0aooKAg5ezsrIKDg9Xdd9+t9u3bV/Bze/hbVgVSnuyjPCklZaoykPIk5amy/T1NSl3u6SeEEEIIIaq0St3HTgghhBBClJ4kdkIIIYQQdkISOyGEEEIIOyGJnRBCCCGEnZDETgghhBDCTkhiJ4QQQghhJySxE0IIIYSwE5LYCSGEEELYCUnshBBCCCHshCR2QgghhBB2QhI7IYQQQgg7IYmdEEIIIYSdkMROCCGEEMJOSGInhBBCCGEnJLETQgghhLATktgJIYQQQtgJSeyEEEIIIeyEJHZCCCGEEHZCEjshDDZ9+nQaN26Mm5sbYWFhbNiwodhjFy5cyG233UadOnXw9vYmPDyc5cuX2zBaIYQQlZkkdkIYaP78+YwfP54XX3yRqKgoevbsyYABAzh16lSRx69fv57bbruNpUuXsmPHDvr27cuQIUOIioqyceRCCCEqI5NSShkdhBDV1c0330ynTp2YMWNGwb7Q0FDuvPNOpk6dWqprtG7dmhEjRvDyyy9bK0whhBBVhJPRAZRGfn4+Z86cwcvLC5PJZHQ4wk4ppUhJSSE4OBgHB+tXZmdnZ7Njxw4mTZpUaH9ERASbNm0q1TXy8/NJSUnBz8+v1PeV8iRswdblyShSnoQtlKU8VYnE7syZM9SvX9/oMEQ1cfr0aerVq2f1+5w/f568vDwCAgIK7Q8ICCA+Pr5U13j33XdJS0vj3nvvLfaYrKwssrKyCr6PjY2lVatW5QtaiDKyVXkyirw/CVsqTXmqEomdl5cXoJ+Qt7e3wdEIe5WcnEz9+vULXm+2cu2nfKVUqT75z5s3j1dffZWff/4Zf3//Yo+bOnUqU6ZMuW6/lCdhTUaVJ1uT9ydhC2UpT1UisTO/yXl7e0vBEVZnq+aU2rVr4+joeF3tXEJCwnW1eNeaP38+jzzyCD/++CO33npricdOnjyZyMjIgu/N/yCkPAlbsPfmSXl/ErZUmvJkvx0fhKjkXFxcCAsLY+XKlYX2r1y5km7duhV73rx583jwwQf57rvvGDRo0A3v4+rqWvCmI28+Qghh36pEjZ0Q9ioyMpJRo0bRuXNnwsPDmTVrFqdOnWLs2LGArm2LjY3lq6++AnRSN3r0aD744AO6du1aUNvn7u6Oj4+PYc9DCCFE5SCJnRAGGjFiBImJibz22mvExcXRpk0bli5dSsOGDQGIi4srNKfdzJkzyc3N5cknn+TJJ58s2P/AAw8wd+5cW4cvhBCikqkS89glJyfj4+NDUlKSNCMJq6kur7Pq8jyFsarL66y6PE9byM/PJzs72+gwDOHs7Iyjo2OxPy/L60xq7IQQohJKT4fYWDhz5sqjszO0aQNt20IJA6GvpxTY+SAGUbVlZ2dz/Phx8vPzjQ7FML6+vgQGBlZ4wJEkdraUkaEf3d2NjUMIUamkp+az4P1T/LAugGNx7sTGQlJSyef4++XQtqMzbdtC2+BEOq18i/aOezGlpkBKCqSm6seUFHjqKXj7bds8GSHKSClFXFwcjo6O1K9f364ntC6KUor09HQSEhIACAoKqtD1JLGzpR9/hMceg0cfhY8+MjoaIYRRlEIdOcpfs/cw54cazDvRlRTV6LrDPEijLrHUJZZgzpCOB3toyzGakHDBmVWrYNUqgFrA23TnT17jZW5hd+ELpaTY4EmJMpk/H557Dvr0gW++MToaQ+Xm5pKenk5wcDAeHh5Gh2MI98sVPgkJCfj7+5fYLHsjktjZ0h9/QFYW1KgBf/8Nf/4J48YZHZUQwlaio0n4zyy+/r0Wcy7exX7uKvhRY9NxHup5lPCXbiU4GOpmHcP78X9gSk+DtMuboyP4+ZHmHcS+7o+xJ/Re9uyBPbvy2LhRsTG3B/1YTZ92F5jy+Bl69cgHLy+oVetKDB9+CMeOwX//C25uBvwSBAC5ubqNvZSrzNizvLw8QE8BVZ2Zk9qcnBxJ7KoEpcwfraFRI+jcGfLyoFMn6NrV0NCEENaXnQ3/fr8+H3/3Nrk4A+DukMnwtgd5eIwjvR4NwcG18VVnNIG/thZ5LU+gy+VNc+TMGZg6FWbNgrV/+9H7ST9uvRWmTIFu5svGx8PEifoD5po18N130Lq1VZ6vuIEXXtCP5vcFYfeTWd+IpZ5/9WrINtKBA7r3s5sbPPAAjBgB+fnw0ENX+t4JIexPUhKnTkGvXjDtsxrk4szNIZeY+WEWcRfc+GpXe/o81QYHV+cK3SY4WPfwOHIExo7VAy3++AO6d4cBA2D3biAwEBYsgDp1dKtB584wfbr+4Cls66ppjISwJEnsbOWPP/Rjjx46ufvgAwgK0gnfyy8bG5sQwjqWLGFZ/Ufp2DqLrVvB1xeWLIEtB3x57GlXrDGndP36MGMGHDoEY8bo1ttly+Cmm3Tra97tg3RSd/vtkJkJTz4Jd94p/fCEsBOS2NmKObEzr+vp56fbTADefRc2bTImLiGE5WVkkPfEU7x0x24GpnzPhVRXwsIUO3fCkCG2CaFRI/jsMzh4UOdtOTkwebLuq388IxB++w3efx9cXHS22aePbi8W1nf179lJekQJy5LEzhZyc2HNGnJxpP/isTRuDP/4B3x8YjBRg18iT5mkSVYIe7FnDwkdIuj/6Z38h5dQODDu8Tw2bjTRuPGNT7e0pk1h4UL44gs9juLPP6FdO/jiSwfUs+NhwwbdNDtypE7yhPWdPXvlaxnAUqXNmzcPNzc3YmNjC/aNGTOGdu3akXSjOYusRBI7W8jOhldfZXe/51ixxYcTJ+D77+Hpp6HTr6/ha0ritkMf8+pdu6XiToiq7MQJ/rz5OToe+p5V3IqnWy7ffguffOqIq6txYZlM8OCDup9djx56iruHH4Zhw+Bc4y6wbx88//yVE6rxJLE2ERd35eu2bY2Lo7JLSyt+y8ws/bHXVpoUd1w5jBw5kpCQEKZOnQrAlClTWL58Ob///rth63dLYmcLHh4QGcmmO94CoEsXeO016N8fvL0hVdXgD25jyvKudO8Oc+YYHK8QouyUYtf9/+PWjCWcoS6hLXLZttOJ++4zOrArGjeGtWt1XztnZ1i0SOcVv/1V58rKFMnJ0K2bnndTWEd8PArY3fo+ctbJp/li1ahR/DZsWOFj/f2LP3bAgMLHNmpU9HHlYDKZeOONN/j888958803+eCDD1i2bBl169YFwMnJiQ4dOtChQwfGjBlTrnuUlSR2NmSujRsyBF56SXdovnBBf4qePh0GD9Y/f+45mdpIiKomNSmPkQdeIQs3+vdI468dToSGGh3V9Rwd4d//hq1boVUr3So4eLCu0btwAT20dutWPXL//feNDtc+paay0OUfdNj3LS++aHQwoqIGDx5Mq1atmDJlCosWLaL1VVMI+fr6smvXLnbt2sXnn39uk3gksbO2tDT48kuIiSlI7Lp1u/JjR0fd3+WJJ/Sn57BO+Vy6BOPHGxGsEKK8np7gxMEL/tQNyuPbxZ7lrQCwmY4dYccOmDBBV9Z9+aVO9Ba1nKRHyioFkZH6AGmataz77mP3xG8BPXpZFCM1tfhtwYLCxyYkFH/s778XPvbEiaKPK6fly5dz4MAB8vLyCAgIKPd1LEUSO2tbvx4efJDYrsM4dQocHHRTbFGcjhzgs5iBOJLL/Pl60JoQovL79hvF3Lm6fH/3vWOhhR4qMzc3eO892LgRWrbUtXd3D3fk3oSPSHjp8rKH06ZB375w9KihsVrL+vXrGTJkCMHBwZhMJhYvXmyT+yac003fKcs2wuHDNrlnlePpWfx27aCTko69dn324o4rh507d3LPPfcwc+ZM+vfvz0svvVTo58nJyYSFhdGjRw/WrVtXrnuUlSR21nZ5mpPNLR8EoH37Eprymzalo/sBJqCbP8aNq9CHCCGEDRz5ahNjH0gH9JSUvXoZHFA5hIdDVJSeDsXREX780USr6U/x3ZMbUR6e+gNqu3awYoXRoVpcWloa7du35+OPP7bpfc0DY1OynHW/RlHlnDhxgkGDBjFp0iRGjRrFa6+9xoIFC9ixY0ehY3bs2MGnn37K6NGjSbbB31oSO2u7nNhtcr0F0P9Ai+XsDBMn8iqv0sjxNKdOydzFQlRmWZcyGPGoN6n5nvQOPsz//Z/REZWfmxu8+Sb89ZfO4RIT4f5PujG0awInbh6h50oJCzM6TIsbMGAA//nPf7j77rttd9OHHiJhXTQAKXiVe0SmMM6FCxcYMGAAQ4cO5YXLy8OFhYUxZMgQXryq42RwcDAAbdq0oVWrVhyyQdu7JHbWdPasnuEd2HS2CVC4f12RHnoIzwAvZuQ9CugFKrZvt2aQQojymnzbdnZmt8HPdJFv/gikAut2VxqdOsG2bXrkvrMz/Lrag5CoeTw/+AAXTJfbmJXSfUWqYd+7rKwskpOTC21ltmoVZy/qJeQksaua/Pz8iI6OZubMmYX2//zzzyxbtgyAixcvkpWVBUBMTAz79++nSZMmVo9NEjtrWr0agIx2N7Pzb12Ib5jYubtDZCS3s5x/eP9Kfj48+qie41gIUXn89tEx3t/eE4C5LxyiXqiXwRFZjouLHrkfFQX9+kF2tol3Z/vSrJleKCfry+/1UNrbbtNrYFcjU6dOxcfHp2CrX79+2S6gFMTHcxbdyT4FL0hPt0KkwmjR0dF07tyZ9u3bM3jwYD744AP8/Pysfl9J7Kxp1SoAdrQaRU6OXn+7UaNSnDd2LPj68n7yI9Sskc2uXbr/shCicog9lceDkTUBeLbZbwz5z80GR2QdrVvDypWwdCm0aQMXL+p5jFs+P5jvnB8g/+BhPU9nNTJ58mSSkpIKttOnT5ftAhcukJ7jRCr6g0AqNVCpUmNnj7p168aePXvYvXs3u3bt4s4777TJfSWxs6bLid0mT70+bLduV+YALZG3Nzz9NAEk8E5XPaT7lVfg+HFrBSqEKK28PPhnvzOcz61JR4fdvLWyk9EhWZXJpOd33bULZs+G4GA4kejF/Tlz6VJjP2uifI0O0aZcXV3x9vYutJVJXBwJ+Bd8m48j6RezLBylqM4ksbOmv/6C779n09mmQCmaYa/27LPw1188tOIf9Omja+rHjdO1+EII48yaqVh7pD6epPL9qwdwbRRkdEg24eiolyE7dAj+8x89un/HwRrceScYtCRm1XRNYgeQ4uhrTCzCLtkssZs+fTqNGzfGzc2NsLAwNmzYYKtbG6dOHdS9I9i01QkoY2JXqxbcdBMmE8ycCa6ueqUKWW5MCOPk5sLb/9PV7m+OPkiLF+8xOCLb8/SEF1/U09o9+ST83/+BQUtiWkRqamrBygAAx48fZ9euXZw6dco6N7yqf51Zyu3V73UkrMcmid38+fMZP348L774IlFRUfTs2ZMBAwZYr+BUIkePwrlzujNyp3K22LTwjuf/nkgEYMwY+Ne/ICfHgkEKIUrlp5/0pPW1a8OYGWF6RuJqyt8fPv5Y/z+qyrZv307Hjh3p2LEjAJGRkXTs2JGXrTXXVHo6Z10KD7iQ+UqFJTnZ4ibvvfcejzzySMECuNOmTWP58uXMmDGDqVOn2iIE28rLgzvvhK5d2eT/POBK58661q3MvvsOHn6YSbdEcP7ZJXzwAbzzjl539vvvoawDsq6TnQ3r15PR/VbOntUztJyd8ytn918g/pIbZ1M8SMcdV78auPl74xrgi2uDANw8HHB11QmryXSliVipwl9nZ0NmJmRkXHk0f52bq3Ay5eGUl40TOTjX8sHJCZycwOXEQYLyYmjgfp6GLnE0cDpDgIrHIT1Vt0v/9NOVmZ537dIXrV9fj1BxssnLWlQzSsHbL6cCNXj66Wo3ZsBu9enTB2XLPi6PP05CInDVGrEpKba7vbB/Vn8HzM7OZseOHUyaNKnQ/oiICDaZF0+9RlZWVsHcL4BNZmq2qKgo+PVX2LCBzSMmAzeYmLgkN90EOTk4/f4L06bupnfv9jz0kE7sOnaEr76CgQPLftm4PedZ/spGlv+uWJ3VjYRC/9cGX3/CyXLGXyIT+iVY1Msw5PJ2hQtZ1Oc0DUwxhE70pMvNenm2kCmv47B4oT7I0RHq1oWQEL1GUkiIruYsV1YtxBV//HCBqMN+eJjSefLuJKB69K0TlmdedcIs5YM50OthY4IRdsfqid358+eLXBg3ICCA+Pj4Is+ZOnUqU6ZMufHFExPhgQdg3z44coRKMzvo5dUm6NOHTVt0U02Z+tddrXlzuOcemD8f/vtf7po3j/bt4d579QLegwbBv/+tOzOXVFGVlQV//gnLvzrL8l+y+PtiA+COQse4uOgKrwCn8wQ4XyCgZjYBfrnUMKWRdfYSWQlJZOU5kjl0BFlZ+prZv/8BFy4AYEIVPJpQ4OSMy33DcXPT0/O5/fw97ieicSMTdzJwJI88HMk1uZDr7kXuCy+Rm+dATg5kbtxO7MlcTqb7cyrNjzOp3mQrV47SjKOqGWtmwPQZOm4v52/o7BpFl+w/6ZK3hS6n/qLuqZWYVq7U0+mPHXvlSS5dWr5MWFR7b//7PODHmIBfqdVa+kSJ8ktIKPx9SqwNKy+U0hUPYWF6iLOwOzZrszJdM8+HUuq6fWaTJ08mMjKy4Pvk5OSiJ4H09dVrGKak6OSuXTtLhlx+lxO75O4D2LNE7yp3jR3oBRznz4cffoDXXqNJ8+Zs3Kjnk/r4Y3jrLb2I9zvv6NFpMTHXb0cO5ZGR5QiXO+2ayKezZzT9b1P0fyaENh2d8fExT8dS+/JWCv+Lun6dQ/Pf1cEBXh1+Zf/IRpDsp5cmMm81a+rH614LnQt9l5MDsbFw6pTu47R7tx50vHMnpKS7s4ZurOFK9hzkk87NdY7RpfYxbl7nSOfOehYZzp8v3fOyoenTp/O///2PuLg4WrduzbRp0+jZs2exx69bt47IyEj27dtHcHAwEydOZOzVyauwuJ2rL/HHyRY4kkvkm7VLOW+REEUYPpyza18C2hfsSkmzYV/NSZPg7bfhn/+Er7+23X2F7Sgry8rKUo6OjmrhwoWF9j/zzDOqV69epbpGUlKSAlRSUtL1P+zXT3frmjnTEuFWXHq6Uq6uSoFa8flJBUo1bmyB6w4apJ9nq1ZKzZ2rVE6OUkqpH35QysvL3LOt5C2QM+oB05fqu24fqXPLtlsgKOPl5Ci1e7dSn32m1KOPKtWhg1KOjtc/d5NJ/+oeGpGqvv++6GuV+Dqzku+//145Ozurzz77TO3fv189++yzytPTU508ebLI448dO6Y8PDzUs88+q/bv368+++wz5ezsrH766adS39OI51nVjWj9twKl7q/5q1L5+UaHUyVUl9dZmZ+nt7dqxV4FSgX4pCtQ6t0mH1s3yKv99Zf+hwhK/fmn7e5bgoyMDLV//36VkZFhdCiGKun3UJbXmdUTO6WU6tKli3riiScK7QsNDVWTJk0q1fklPqEXX9Qv0AcftESoFbdihY6nbl316iv5+s3gfgtcNyrqSgbXqJFSubkFPzp0SKlevZSqWVOpNm2Uur1Phnq03RY1pccKNXu2UsuXK3XggFL5n0xXKjbWAsFUbqmpSq1fr9Q77yh1zz1KNWxYOMkbObLo84x4I+rSpYsaO3ZsoX0tW7YstmxMnDhRtWzZstC+xx9/XHXt2rXU96wub7iWcnRXsnIgV4FSu/63wuhwqozq8jor0/NMS1MKVG0SFCjVPTRRgVKvBn9q/UCVUio5WanMTKUeeUT/M+zUqdB7iVHsJbG7cOGCevXVV9WZM2fKdb6lEjubNMVGRkYyatQoOnfuTHh4OLNmzeLUqVOWaT7q2lU/btlS8WtZwuW5kOjRg02bdXNNufvXXa1DB730xGefQUDAlf6E2dk0nzaBde89rDvZvfsuzJunJ9xyc4NFp/XcDAAhT1ggkMrP0xN69tSbWXy8Xth869byTztjaeUZWLR582YiIiIK7evfvz+zZ88mJycHZ2fn684p82CkzEy9+ntl6bNqsHfHHiKfMG73XE/7yH5GhyOqsrg4cnEkkVoANGuQxcZoSMl0sc39334b3ngDHnpITz64c6deTuSxx2xzfzv3zDPPcPHiRaKioli8eLFhcdikYX/EiBFMmzaN1157jQ4dOrB+/XqWLl1Kw4YNK35xc2J34IBeyNBoubng40NevYYFuaZFEjvQkxZPmqQLpdmPP8L06dC5s07+vv5ax9C7t+6TZ4MFh6uCwEAYMkQPMrn7bqOj0cozsCg+Pr7I43NzczlfTP/BMi1aHhKiR7ocOVK2J2Onzp2DOdvaAjDx6YxqPW+dsID4eM5TG4UDDg7QqH4+ACnZNhq1f+yYbrho2RLMAxRfeKFyvHdWcUuWLCE1NZVff/0VX19fvv32W8Nisdl/qXHjxnHixAmysrLYsWMHvXr1ssyFa9eGZs3011u3WuaaFTF5Mly6xP5RU0lO1lOttWljxfu1bQv3369r6xwdYeRIXTW1dq3OZOSNqNIry8Ci4o4var9ZmRYtN08LIwsTA3pwUmaeCze1TqfPlFuMDkdUdXFxBatO1K4NPrV0o1mKaykHq1WQOnKUQfzKTTMfIe6ucdC6tZ5d4pVXbHJ/ezZ06FAWLVoEwNy5c7n//vsNi8U+ZnLt108P265ETUfmaU5uvtnK8+W2awfffAMffqg/idWqZcWbCUuqXbs2jo6O19XOJSQkXFcrZxYYGFjk8U5OTtQq5m/v6uqKa2nn8WvUCPbs0UOPq7m0NJ3YAUx81QOTjVrLhB27KrELCACvZvrrlPCIks6ymHNHk1nKIDgK/QfD2tc/wW/iGBgwwCb3F7ZRpatzcnPh4EH46+FPYd06uO02o0MqYO4iVaFpTsrCz0+SuirGxcWFsLAwVq5cWWj/ypUr6VZM+314ePh1x69YsYLOnTsX2b+uzBo31o9SY8fs/zvGhQu6QeCuu4yORtiFrCwSXHVXCH9/PdMT2GjliZQUjiZeWdR3zx4Y9HZvUrdFS2JnZ6p0YvfHH7qrwNVdzgzXvTvcfjubNuQCFuxfJ+xSZGQkn3/+OXPmzCE6OpoJEyYUGlg0efJkRo8eXXD82LFjOXnyJJGRkURHRzNnzhxmz57N888/b5mAGjXSj9U8scvJyOXdj3Ut5/MD91emxgBRlT3/PGffmA3oGjvzqog2SeyOH+cIuttSixZ6CtEtW+DO4U4UjK3Kz7dBIPZl3rx5uLm5ERsbW7BvzJgxtGvXjqSkJENiqtKJXatW+vHQIb0mKZcuGbuacloabNrEueU7OHJct7+ax3YIUZQbDSyKi4vj1KlTBcc3btyYpUuXsnbtWjp06MDrr7/Ohx9+yLBhwywTkLnGrpo3xf4QuYVTuXXxNyUw+iULDPIS4jLzcmIBAeBVQ/ePTdl7wvqTpx87xlGaAnps3e+/6xkEVq2Cf4zIJ/e9D/UAvLQ068ZhZ0aOHElISEjBuvdTpkxh+fLl/P777/j4+NzgbOuo0n3s6tfXVdkpKXB4+GRa//JfmDPHuCq8y32fNrv0gWydeNasaUwoouoYN24c48aNK/Jnc+fOvW5f79692blzp3WCkRo7AD74yheAZ2/dj3vtPobGIuyLeTkxf3/w8tYDnlKzXfQKPrWtOIgiIIAjjSPgODRtqvt///yzXmFx0c8OjPkjmDlpe3H473/h9detF0cpKAXp6cbc28OjbAvLmEwm3njjDYYPH05wcDAffPABGzZsoG7dugXHODk50ebyKMrOnTvz+eefWzrsQqp0Ymcy6eRp61bYZ2pDa9B1y0YldnFxAGxy7wfZ0gwrqqDGjaFPH/2Yl1epBiTZyrGlB9iW3gYH8hjzYSVZplDYh4gIzu56E+isa+zMfezwgvQL1r13eDhHA4DjVyaS6NdPr1Y5fDh8mTYcH95n2tv/xvTww1dq7w2Qnn6lmdrWUlN1TWZZDB48mFatWjFlyhRWrFhB69atC/3c19eXXeY5bm2gSjfFgh6tDbDf7fKss0ZOVGxO7JRuf5XETlQ5Pj6wZo2u+a6GSR3Aj/89CsAt/nvxbynzQAoLyc2FP/4g4ZyuDrp68EQqXuSnWL8J1Dw9ZdOmV/bdeSd88YX++kOeZUr2JDBwDraqaPny5Rw4cKDIeUmNYDeJ3b70RvqLvXtt1BO1CPHxZOPMtlTd+U8SOyGqmLw85m9uAMC9w5XBwQi7cu4cKFV4uhOvKz9OS8y06u2T954q6MZ3dWIHMGoUfPSR/noKr/Lbr8YOovDw0DVnRmweHmWLdefOndxzzz3MnDmT/v3789JLL113THJyMmFhYfTo0YN169ZZ6LdUvCrdFAtXBlDsO+oODRvCyZN6gt5bDJhMNC6OXXQgM98FPz898kiIKikzE7KydA1eNXJ46WGictviSC53vdjK6HCEPYmLQwEJ+AM6sXN3BwfyyMeRlPNZeJV8hfLLy+Nox+HAX/jXzsPL6/ra+Keegt0rzvL5LwEs+bsxg5QqW2czCzKZyt4caoQTJ04waNAgJk2axKhRo2jVqhU33XQTO3bsICwsrNBxwcHB7N27l0GDBrFnzx68vb2tFpfd1NgdPgzZN3XX3xjYHLvNvTegR8MaVCaEqJhXXtHvOK+9ZnQkNvfjnpYA9OuSSu1gmZFYWFBcHJfwJQf9uqpTR79HeDlmAJByIcd69z5zhiO5enR302bFv+0PvM8XgI0ZHeGq6TvE9S5cuMCAAQMYOnQoL7zwAgBhYWEMGTKEF198sdCxwcHBALRp04ZWrVpx6NAhq8ZW5Wvs6tUDb289oOhQk9tpw3ewebMxwbz5Jidzgf9B8+bGhCBEhZlH5lXDKU9++EE/3vuYr6FxCDsUH1/QDOvjA25uereXSxZJGTVIybLiB4mjRwumOmnWvPgah+636Lkb99GGCxdj8atnvZCqOj8/P6Kjo6/b//PPPxf6/uLFi3h4eODq6kpMTAz79++nSZMmVo2tytfYmUfGAuyv1VOPiP3HPwyLx7wMZ0nrrAtRqVXT1ScORqWze7deAlBWmhAWFxdX0Azr739lt1cjvWJQSlcrrpx07FjB5MTX9q+7mr//lS5Em07WLf5AUWrR0dF07tyZ9u3bM3jwYD744AP8/Kw7KKvK19iBbo7dsgX2pTXSo/kMFBOjHyWxE1WWeS67alZj98Ow74GHue2mS/j5+RodjrA3ubmcdWsImbp/nZlNlhU7doyj9ANKTuxAL5506BBs3AiDB1sxpmqiW7du7Nmzx6b3rPI1dnDVyNh9BgaRkwMdOnB6u56kuJ5UYYuqypzYXbwIBi2JY3MnT/LD8ZsAuPfuXIODEXbp1Vc5+7+vgWtq7GyW2F1uim1W8qE9eujHP39LkiXGqii7SOwKRsbuQ88VFBUFGzbYNoizZ8nbvYfYTF2tLjV2osqqUeNKP7tq0hy7//3l7KUtzqYc7njEirP/i2rNvOpEoRq7CycASFm40mr3zTwSQwy6tuFGNXY9wvMA2LbHlay9h60Wk7Aeu0jsrh4Zm/XDz9CpE0yYYNsg4uNJwJ9cnHFwgKAg295eCIuqTmvGKsWP3+pV0CPaxssygMJqrl4n1qxGXjIAKbHJVrvv8T4PoXDAu0beDVcta97SkTrOF8nCjR0/VY8PdvbGLhK7unX1yNi8PDjsf3nKk927bbvYXFwcp9HVdEFBugO2EFXW4MHw4IMQGGh0JNa3fTs/nNfzXt47TmrrhBUoBeHhJPy8CbimKdZTN3empFnv7fhIT73MZtPmjjechstkgu4NdGfxP1dZd9JkYR12kdiZTFf1szsfAMHBukl2xw7bBREXV1DVLc2wosp7+WW9zlDXrkZHYnV731/Jflrj4pDDHSPdjQ5H2KOkJNiypcgaOy8vvcJJaob1lvA7qlfJu2EzrFmPrrqf6cb9sqReVWQXiR1cldjtN115M7LlRMVX1djJwAkhqojsbH5YrOcPu73Lheq20IawlXg9qO6sg+6jU3jwhK5CS8l0ts69z53j6E49COpGAyfMut9ZB4CNl1qRn5ltnbiKoFT1XsbPUs/fbhK7QgMojEjs4uMLEjupsRN2ITPT7vvYKZMDP/g9DsC9T0gzrLCSuDig8HJiZl7elxO7LCsldl9/zZGvdRNwaWvsOg2pixsZJFKbg79Yd5UEAEdHXVuZnW27JLIySr/cfczZuWKvBbvpCVZoypPxlxO7zZt13wZbrO3l5ESMcxPIkcRO2IEjR/TyKTVq6GVd7HR9vD3RThyM9cLVFYbcab2mMFHNxcWRjjup+XoB1EKJnY+uX0nJdrXOvY8d4yh6QrrS1ti5uJq4ueZh1l1sx8bF5wi9xzqhmTk5OeHh4cG5c+dwdnbGwcFu6pxKRSlFeno6CQkJ+Pr6FiS65WV3id2RI5DVJgxXJyf9Ken0aWjQwPoBfPQRp3cCm6QpVtgB84s4NRUSE7nhULoqyryE2IABegCWEFZxedYEAFfXK3PXAXj56dqZFOVV1JkVlnvkBMfRo9xLW2MH0L2vC+sWwp8ZnRhjlciuMJlMBAUFcfz4cU6ePGnlu1Vevr6+BFpgwJrdJHbBwXr9vaQkOBTjQdtPPoEmTQp3ZrAyWXVC2A03Nz28Oy5ON8faYWKnvp/P/Bm3ArW4916joxF2LS6uYJ3YgIDCFeBeN7UEIKVpB6vc+vShDHJxxtU5j7p1S18T1GNMS1gIf/5tm46nLi4uNG/evNo2xzo7O1e4ps7MbhI788jYTZt0c2zbxx6z6f3z8iA2Vn8tNXbCLjRurBO748ehc2ejo7G4XVN/58iFEbg55TJ4sN38KxSVkVKcdW8EGdfXNVh15Ym8PI6e1oODmjTMw8Gh9IlDeLh+Xz16VI/9sMXMRw4ODri5uVn/RnbOrhqyCw2gsKULF4hv3Y+8PHB0VDI5sbAP5qXF7HH1iRMn+OHvEAAGRuQWahoTwuLeeYeED+cDhfvXgZUTuzNnOJLbEICmIWXrkO/rC21b6HnsNv4Qa+nIhBXZVWJn7me3fz+6Cm3BAvjXvyAry7o3PnOGmIOpAAQHm7BQbaoQxrLj1SfU6jX8gG5/HfGA1BAI6ytqDjsAL0c9EjLlfKZec9ySrl4jtnnZB0B1z1kLwJ8/xlkyKmFldpnY7dsHODjA2LHwzjuwZ491byxz2Al7ZE7s7LDGbs/ioxyjKe5O2QwaZHQ0ojowrxN7XVOsr64JyMh3IzcpzbI3DQ7mSIh+gZdl4IRZjy66v9vGfb4WDEpYm10mdkeOQFa2CRrqKmjz5JBWEx8vq04I+9OhAzzwAAwdanQklqUUqzbofke9OyTj6WlwPMK+ZWVBp06c/XEdUESNXS2Xgq9TEyy8DGbz5hx10X2UypXY3aEHTe282Ig0C+ecwnrsKrELCtL9AvLy4OBBrozkO3/eujeWGjthj8LCYO5ceOIJoyOxrBMnWHWpEwC33ClznAgri4+HqCjOxutVBa6tsXNxNeGEboJNOWfZtVmVurKcWGnnsLtag4FtqMdp8nBi67ILFo1NWI9dJXYm0zUDKGrV0t8kJlr3xlcldlJjJ0TllnPgKOvoDUC/AS43OFqICjKvOuEUDFxfY2cygZdJ99FOOW/Z/uDxy3aRng4ODqqgAatMvL3p4f03ABsXnbNobMJ67Cqxg2sGUNgwsZOmWFFWFy9eZNSoUfj4+ODj48OoUaO4dOlSscfn5OTw73//m7Zt2+Lp6UlwcDCjR4/mzJkz1gsyKwsOH4YS4qpqtvveSipe1PTNp0MHo6MRds+8Tqy6fjkxsysDKCyb2B297yUAGgZl41LOzzA9QnVN3Z+bZVRgVWG3id2+fdiuKdbNjdMO+uOQNMWK0rrvvvvYtWsXy5YtY9myZezatYtRo0YVe3x6ejo7d+7kpZdeYufOnSxcuJBDhw4x1Jp94CIioEUL+P13693Dxlav1o99b3Ggmq1cJIwQF0cujiTm+gJFz5nv5ZQBQOqlXMvdNyWFI5d05UbT5uVPyrr31Rnh5pPB5OVZJDJhZXY3K2ehxK6fbWrscj+fS9w3+mupsROlER0dzbJly9iyZQs333wzAJ999hnh4eEcPHiQkJCQ687x8fFh5cqVhfZ99NFHdOnShVOnTtHAGkvnNWoE69fbz5Qn+fmsWqWzuX79DI5FVA9xcZyjDqAnazA3JF3Ny0n3rbPoXHbHjxdMddI0pPxv9W0f74bXBzmkZHiwZw9Sy10F2N3n1atHxmZGDNUfz99+26r3jI/XAzacnIquZhfiWps3b8bHx6cgqQPo2rUrPj4+bNq0qdTXSUpKwmQy4evrW+wxWVlZJCcnF9pKzc6mPMn4/Fs2rdHNXbfcYnAwonqIjy9YTqx2bYqc59QrXL9xpYRYcIWXq+ewK8fACTPHRvXp1ktPbvznn5YITFib3SV2gYF6ZGx+PhxMrw99+5ZvnHcZnD6tH4ODiy60QlwrPj4e/yLaZPz9/Ykv5fQ8mZmZTJo0ifvuuw/vElawnzp1akE/Ph8fH+qXpVrZvPqEndTYbVpwhixcCa6RRBGVokJYnoMDCR76A1JxH/y9vPTkwRatsTt6lCPojK6ib4Hdu+tHSeyqBrtL7MxrxsLlARTWdvw4MSOeA6QZVsCrr76KyWQqcdu+fTsAJtP1M8ErpYrcf62cnBxGjhxJfn4+06dPL/HYyZMnk5SUVLCdNn8SKQ07q7FbtbUGAP1uTqMUv2YhKu7TTzn76SKg6P51YKVlxa6qsatoYtcj6AgAfy5PRamKBiasze762IFO7DZuhH27cyF5tu5jN3kyVvlPHhPD6dP6lS4DJ8RTTz3FyJEjSzymUaNG/P3335w1rzF0lXPnzhFwg/b8nJwc7r33Xo4fP87q1atLrK0DcHV1xdXV9cbBF8Wc2J08yeXFkMt3ncrgxAlWJ4UBcMtwP4ODEdWJedWJYmvsTu4F2pCyaQ/Q1iL3vHgwgQtcHjxRwcSuS/5WnGhI7KUanDpF+aZOETZjt4kdwL79wFtj9TdPPQU3eAMsF5nqRFyldu3a1DaPxi5BeHg4SUlJ/PXXX3Tp0gWArVu3kpSURLdu3Yo9z5zUHT58mDVr1lCrqJ7YllS3ru48mpOj5+Oqwp9ekn7fxDZGAHDLQFkfVthOcevEmnmlxQFtSIktQ//XGzjafxysgsDaOXh6OlfoWp49O9GRKLbRhT/X5dFwdBX+gFcN2F1TLFyV2B1wAnd3/Y21pjyRyYlFOYSGhnL77bfz6KOPsmXLFrZs2cKjjz7K4MGDC42IbdmyJYsW6Wac3Nxchg8fzvbt2/n222/Jy8sjPj6e+Ph4srOzrROooyM88wy88grlngirklj30znycaRZzfNYYwCxENc5fx46duTsd38AJTTFeupWn5R0yyVMRxv0BaBZy4oldQCEhNDD+S8ANv52seLXE1Zll4mdefWJo0chs1Zd/Y21pjyJj5flxES5fPvtt7Rt25aIiAgiIiJo164dX3/9daFjDh48SFJSEgAxMTEsWbKEmJgYOnToQFBQUMFWlpG0Zfbuu/Dqq8W/K1URq7frGvt+4RkGRyKqjTNnYNcuEhJ0N6Bia+xqXE7sMizXiHZEd4uzzNhBBwd6huj25F//cCPXgtPtCcuzy6bYwECoWRMuXoSDnp1ozxGr1thJU6woDz8/P7755psSj1FX9VRu1KhRoe9FGWRns8qpPwD9Rt64qVwIi7i8nNhZx2DIKaHGzvvyqNhMC70lnznD0T8Bgi02KcSA/vnU2ZvA6Qv+LFwI995rmesKy7PLGrurR8buc2qvv7BSjV1u7FniCAKkxk5UbUlJEB6up+3JybnqB9nZ+uO/TYaZW8fZiy7svaDX6uxzu7vB0YjKaPr06TRu3Bg3NzfCwsLYsGFDxS9qXidW6Q8TxdXY1fDWb8UpWeUc5HStZcs4skxX2VVkDruruXUP4wlmADDtffmAWZnZZWIHVyV2+aH6CysldnFO9cnHEWenfJmcWFRpXl6wa5d+Lyo0I8qPP0Lz5vDkk0aFVmFr1ujH9u2hTh1jYxGVz/z58xk/fjwvvvgiUVFR9OzZkwEDBnDq1KmKXTg+HgUk5NQESmiK9dV961KyLZTYWXCqkwL9+/OE7/e4kMXmLSa2brXQdYuhsrLZ8sFWnugaxe23666+M2bovrIJ0Yky7UoJ7LIpFq5K7DKb6C+s1BR7+qVZsAzq1pN1J0XV5uCgZzeJjoZjx6DJ5aJjD3PZrZp3FgiQ1SZEkd577z0eeeQRxowZA8C0adNYvnw5M2bMYOrUqeW/cFwcF6lJTr5+qy3uQ4VXTf3zlFzLjNZOPxTDGXT/ckvV2OHhQeCmhfzjv858+RV88AF8952Frm2WnMyZ79by9adpzN3TiQP5V1bmWb7c/JX+JdYyJRLqFUOr4CS69nWn52OhNG1fQ+anxI4TO/MAin15LfWyYs2bW+U+5poNaYYV9qBJkyuJXQHz6hMxMZCbq6c/qUpOnmT1klwggH49s4GqPbpXWFZ2djY7duxg0qRJhfZHRERUfFBSfDwJ6I51Pj7gVkze5tW/G/wbUr2CK3a/y44d0KPkfT2z8fOz4Os9NJTxE+DLr3RF/ttvW+C9Tymy5s5jyYcn+GJ3J5arQeSjazDdSWd48910f7AFRy7WIjoa9q+J50S6P4mqFn8m1+LPZJh1AJgBQa6J9BzsQ88+TvTsCW3a3HjqzZwcXe9zLjabc0eTOXcijXMxWSSezSUlKZ+0VEWaiy+pvvVJS0N/v/8E2XmO5CkH8pUD+ZgKvs5zdsWppjd16+rfTb3UA9QLzKV+M1fqtaxBvXZ+BDZ0xdkCg5WLU8X+Q5eeucbuWIwrGV37Fsx6YmkxMfpRBk78f3t3Hh9VdTd+/DPZSTKZEEKGQBK2lH0LASWIuJZFEIVK5cGmrrgVseDyA60KPg+mPmqr1rZStFCrLU9dEKs1aCuLyr4ERELYDCRAAtkTICGZ3N8fJzNJyDYzmX2+79drSDK5d+6ZhJP7veee8/0KX2AepWsW2PXoAaGhUFOjrmTMI3heIveDXRznJwRSx8QbJagTzRUVFWEymVokBjcaja2W96upqaGmpsbydbu1l0NCKIzsD1XtLyq33Ip1UOWJYyfUqb1/Uh2OvpAZNQquvaaejZsC+P3voTMDmgC7d8P0BTdTUKW3PDch4QfuSq9n9pN9iYpOu2yPHlw4d56cf+eR/W0J+3dU8813BnZWD+NMTTf+8SH840O1pSH8Er26XsRUV4+pTsNUp1Fv0jCZwBQcxsWASMrKzK8bAsQ2PNqjA9r5G1gNVELjXfxBrbxCPT1CSujV/RK9xvQkIUGlDE3opdErQcf48W1fBFjDZwM7oxFiYqCkBHJy1H9Gh8vKIu+F74B0GbETPqHVwC4gQKWaP3xY3Y71ssDuq4/VifeKnqfQ6yVlvmjd5aX82irvl5GRwbJly6x70b/+lcJ/ALe3Pb8OGkuK1dSoEaROjeZUVnK0Qt2uTB7shFP8mTP8ct8SNrKaFW/W88wzAYSH2/dSW7fClCk6Kqr09Iq5yJ23neeux7rxowHt/40J7x5Byn8NIuW/YC6ApnExK4edX1ezuWIUX38NW7ZolFeFUH6hjcC2SdajgACNbvXn6M45ugeX0T2sitiIC0SFm4gIryeir5GIm64hIgIiIyFi8+eEhmgE6NQjMKDh8wCNQGN3alLHc+oU5J8wkf/HT8gviSD/fDT5NXGcoie1hHDmUixnTsGuU00bpf6/FRZ6eGC3fPlyPvvsM7KysggJCaGsMTx2Kp1OzS3YsQNy38xkVGoezJvn2IPk5ZFfooYCZcRO+IJWAztQwdzhw5Cb6+omddp/slT5sBsm1nawpfBHsbGxBAYGthidO3v2bKvl/ZYsWcKiRYssX1dUVJDYzgmgo3JiAPrqc5jnjlVWqkEJuzVdODHICSPUPXowvX82/XYf43hZf955Bx580PaX2fy/25j231dSVaVj4kT49NMu6PV23lrT6eiSMoiJKTCx4am643l8d9crlFUEEBgVQYA+gsCohochksB+vQm9Zhzdu0PXrjoCq0JBPxirJsvPnGplwwJh0czGLzWN+nPFnNuZy6mdp8mv78mp+DHk58Opoxc59cFWCoZcR2xs5yYKOj2wu3TpErNnzyYtLY23337b2YdrJjFRBXZ5Kz6DhI8dH9idOUMeIy3HEsLbtRvYgdctoNBOnOSrKlWy7fo74t3cGuGJQkJCSE1N5csvv2TmzMaT8Jdffsktt9zSYntbay+by4m1dys2OMBEKNXUEEZlhUZMTCdO7D17cmzoDPjegQsnmtLpCPzlIzya/hqP8jqvvapx//06mxYP/vu5r5nxfCoX0XHDtXWs+zSIiAjHNjOoXxIpm1+zfgeDwbENaI1OR0BcLMZpsRinweim3zOFwMs/gsTOr/5w+jrOZcuWsXDhQoYPd0xhY1uYg62TJDlnVWyTcmJyK1b4AnP8VlqqHhbTp8Ozz8KPf+yWdtkr++9ZFBBPmK6atBsdfOYQPmPRokW89dZb/PnPfyY7O5uFCxdy8uRJHrRnKOoy1ozYERGBHjXBrvJcdecO2L07Ry+qE5LDUp1c7qc/5e64fxFFOYdydHzxhfW7fv7CXqY/P5aLhDM14Tv++Vmgw4M6rxQY6LARIo+cY2fT5NR2mOtB5pEI1dVw4QJ2TwZoRW1+IQX0AGTETviGiAh1AiosVINzXbs2fGPaNPXwMv9Zp06WE5LyCAtzzsp44f1uv/12iouLef755zlz5gzDhg3jX//6F717d35OpjUjdoSHo+ccRXRvCOzsX+1XWwsnTqjPnRbYhYSg/8XPufe5t/kti3j1VZgypePd1r10mJ8+PYRLhHJLzx38X04qoeGSn8TRPDLzWkZGBgaDwfJob/5Ce8y75ekaIjwHJyk+faIWjQBCgkyS9FT4DPPJoMXtWC/0VZfpAFw/TapNiPY9/PDD5ObmUlNTw+7du5k4cWLHO1nBHNi1O2IXGIheVwVAZfGlTh3vxL++x2SCLmEa8c6cffDAAzwSvIIATKxf33FhmvdfOcltT/blEqHMNm7i/ZyRhIZ3kItE2MWuwG7p0qXodLp2H7t27bK7UUuWLKG8vNzyyGuWBt96jYFdw1WXg2/HmlOd9OpWLcmJhc9odZ6dpqmyYv/+92X1xjyXyQQb96p5MzfcKXMlhHtYdSsW0AdeADof2B179Z8A9Isudu55yWik79w0buVjQCUsbs2RI7DwnnLmPN6LOoK5IzaTvx1KJTjSQVU2RAt23YqdP38+c+bMaXebPuakpnawdXJqW8yB3el6I3UEEuTgEbu8YHUGTOxpcujrCuFObS6gGDlSTWc4fNhpCb8dac8eKCuDqCgYPbrDzYVwCqtuxQL6oItQB5WlnbtwOnFW5cnoY+zkXD1r/OpX/PIa+OgeeOcdeOEF6NZN5TH/9FNVAkzNv1MXWHdHr2XlwWsIjI50ftv8mF2BXWxsLLGxHSXxcz+jUSXJr6sL4gzxJDp4xC7vZ0vgSUgYHOXQ1xXCnVoN7HQ6VYHi4EGV8sQLArsNv/sOGM614y4SFCS3YoXrnT+vHmDFiF1wNVRDZWnnBgoKS9WgSA+jC4qpJiczoT+MfkNdSGVkQHQ0rFjReEdLp4OpU+HhCfu56c5x6Lp3JpeLsIbTF0+cPHmSkpISTp48iclkIisrC4Dk5GQiI50btQcGqtWqubmQ97t1JN6Y5NDXl6oTwhe1m/Lk4EGvSXmy4zN1IXdVzCEgxb2NEX7JfBs2NLQxCXFbIm+5Ed6Fyh6du2gqrFQLBI09XTN/TaeDhQshPR1eeaXx+ViKuPeWczzw28ENq+1HuKQ9wgWLJ5599llSUlJ47rnnqKqqIiUlhZSUlE7NwbOFZZ5d99Hg4FFG89Q/CeyELzEHdidOqFsqFr1UUXFaKbPkcUwmdpWqNzJ2UtcONhbCOZounOioOL0+RpWb6GxZscKLKoI0JrluDttPDzxLP9SV4HjDAd7lDvLpxa8Df+VthWp8gtNH7FavXs3q1audfZg2WQI7+9ZftG3TJvI/jwGGSw474VPi49soDWueJGQehvBgRTt/4ISmsrOOvkWuvIR7WLtwAhpH9DoV2F24QKFJDWAY+7hu+kFINz07GEsZ0fQvPw5dusCvX4L5813WBtHI59dyWgK7z/bDxx877oVzc8mrjm12DCF8QUBAYzDX7HasOafPuXMub5Otdn+iCjAOCDuBIUZSKgj3sHbhBID++20AVB3Kt/+AxcUUoqJIVwZ23Hcf3SJq6M9xuOoq2LcPFiywrjyXcDif/6lbqk9sPAZvvumw172Uf9bSgWTETviaVufZedGI3a5v1IrAMQmFbm6J8Gc2jdidzgGgsvC8/QeMiqKwSx91zB4uTPzbtSt89RW8/z5s2uQVi6t8mUdWnnCkZtUnHJju5PSxi2gEEBpYS/fuwQ57XSE8QauBXUoKPP88DBrkljbZYleOWpg1ZlRdB1sK4Tw2jdhFqlWslRfsH2GuDjVQflF9bk0w6VBXXKEewu18PrCz3Iol0aEJivNy1ZL0hK7n0emiHfa6QniCVgO7gQPhmWfc0h6baBq7ivoAkHpDtFubIvybVVUnGljm2F20/7RsniURHNykHKDwO35zK/YsRmqKOrncqIn80+pHl9C9c1nChfBEbaY88QIFBZBf3wudTiNllizJE+5jvhVr1YhdlLp1WlkdYvfxCneeVMfrVtfhKlzhu3w+sIuJgS5d1BB3fpUBLjkmEMsrUhNTExNckARSCBdrM7A7eBA2boSLF13dJKvt3qPOaIMG6dDHSWJi4T42jdgZ1Om48lInArsPvlbHqztt92sI7+fzgZ1O12QBBUkOm2dnLieW0Ffm1wnfY14VW1KiynJZXH01XHedRw/lmVNkjhnj3nYIsWULHDoE48Z1vK2+q7oFW3nJ/vxzhQVqoMEY7YJyYsJj+XxgB5CUpK7gHbmAIn/cbQAkjpTyKML3REY23j5qVmjCC1Ke7P6/owCM6e35q3eFb4uOVlNTIyI63lYfrRZNVNZ1QbPzRlBhkXoNY4wsGvJnfhHYWRZQ3LtU1bt0AKk6ITqrtLSU9PR0DAYDBoOB9PR0ypoNj7XvgQceQKfT8eqrrzqlfd6a8mTXYTULfUz3k25uiRDW08+9GYA6LYiaGvteo7BM3cY1xskUIX/mX4FdUD81FOEA5jqxksNO2Gvu3LlkZWWRmZlJZmYmWVlZpKenW7Xvxx9/zPbt2+nZs6fT2tdqYOfhI3anD1VwxmQkABOjZsrCCeE9Irs3zge1t/qEq+vECs/kX4Gdg8qK1Xz4qWVSrIzYCXtkZ2eTmZnJW2+9RVpaGmlpaaxcuZJPP/2UnJycdvc9deoU8+fP57333iM42HlzPL1xxG7XWjVKNzT4MOGJ3dzcGiGsFxioKnFBJwK7C1EAGJPsX4AhvJ9fBXYns4rhm286/XqnstRoRVjAJbrJuUPYYevWrRgMBq688krLc+PGjcNgMLBly5Y296uvryc9PZ0nnniCoUOHOrWN3jhit2ujyto/pscpN7dECBvl56OnArAzsNM0CmtV8jpjXysm9Qmf5ReBnaX6xOlA+OijTr9e/nGVMiVBXy65goRdCgoKiGsluVVcXBwFBQVt7vfiiy8SFBTEggULrD5WTU0NFRUVzR7WMAd2x441a6D66Kkjdt+rIY/UYXZOUhLCXSor0V88a/7UdppGYbjqtMYBBgc2THgbvwjszCN25URTWdCJOnwNLAsnul3o9GsJ37J06VJ0Ol27j10N+Th0rVwVaJrW6vMAu3fv5rXXXmP16tVtbtOajIwMywINg8FAopXzB/r3Vx9PnIA68yK78eNVWbGf/9zq47uKpsGuQjXpdcy1jplLK4TLRESgR0V09gR2taYAis+HAWDsHebIlgkv4/MlxUCtl4gOr6HsQih5+TqGdPL18gvUjy2hhywpF83Nnz+fOXPmtLtNnz592L9/P4WFLQvUnzt3DmMb2Uy//vprzp49S5J5CBowmUw89thjvPrqq+Tm5ra635IlS1i0aJHl64qKCquCu549ISRE5fTOz29YUD56tHp4oLwf6jhXF0MQtYy4RRZOCC8THo6eXACqKkyAbQsgzLMjAgORKUJ+zi8CO4DE7tWUnQgl72xopwO7vGK18igxSe7DiuZiY2OJjY3tcLu0tDTKy8vZsWMHVzQUzt6+fTvl5eWMHz++1X3S09O58cYbmz03efJk0tPTufvuu9s8VmhoKKGhtic9DQhQiYpzctQ8OwdlCnKa3fvUn7Nhg0x0GSCrmoSXaTpiV3QJsK1qSuGBc0B3usfUERDgN6d20Qq/uBULkBhvAuBkSedv0eRVRqvX/JEMdwv7DB48mClTpjBv3jy2bdvGtm3bmDdvHtOnT2fgwIGW7QYNGsTatWsB6NatG8OGDWv2CA4OpkePHs32caQWCyjq6+HAAdiwAUwmpxzTXpaKExPCkMmvwuuEhTUGdiW1Nu9e+O/9AMRdPOHQZgnv4zeBXVLvhuoTFZ2cVFpXx8kgdZsnYUhUZ5sl/Nh7773H8OHDmTRpEpMmTWLEiBH89a9/bbZNTk4O5eXlbmphK4GdpsGIEXD99VBU5LZ2tUZKiQmvptOhD1KlwCpL7Qjs8tXUIGNE5+eRC+/mN+O1if1Uvq+8mu5qJniQfW9dCwziWNAgAJJHyQRtYb+YmBjefffddrfROqgt1Na8OkdpEdiZJ/AUFalJPdZUN3cBTYNdm6qASMZ0+wGQOXbC++hDqqEOKkttHw0vLGyoE2uQOrH+zm9G7BIHqnlxeaNv7dRtmnPn1Iolna6xULoQvqrdXHYelPIk93g9JTWRhFDDsP4X3d0cIeyiv38uAJVhHc/TvZylTmw3WdTn7/wnsOut3mpeVVc16mCno6q+OElJYMd8dCG8irckKd71mVphPFx3gNDhA9zcGiHso++lpvdUVtl+ai4sVSckqRMr/CewM1efOKlu29jr6Ir/AJAc9IMDWiWEZzOPShcXg2WqnwcmKd71H9W4MbEn7J5mIYS76fXqoz157AqrpE6sUPwmsEtQeUuprobibUfsfp2jOWruQ3Jk29UBhPAVen3jAN0P5msZDxyx271fBXNjBlW5uSVC2E+/Uw0cVObbvmDKUic2UerE+ju/CexCQ8EYWgpAXub3dr/O0TPqqii5t+2rloTwRi1ux3rYHDtNg135PYCGVCdCeKnI/VsBqCy2vSReYai6LWUc3cuhbRLex6/uWSRGllJY05W8E/Wk2PkaR0tiAEge4DcxsfBz/frB9u1NArsbb4TgYGhIrOxux45BeV0koVQz9Kbe7m6OEHbTR6p5QpUXbDs1m0xQVKUSGhtHeMZKdeE+/hXYda1iVzHknbI/KDt6oScAySMiHNUsITxaixG7q69WDw+x65tqIIxRun0Epwxzd3OEsJtljl21bafm4mKVO1ynaxxQF/7Lr4adErur4e2ThfYtZy0p1iitjwag35gYRzVLCI/W6spYD7LrgLr9OuaBMRAhF1zCe+kN6pRcWWPbPLnC4yopcbfoOlk7JPwrsEvqpfL75JXY98f/6G41obUX+YT3j3dYu4TwZObA7tixhifq6lRZsU2b3NampiwVJ66U1YDCu+mjVI7VqkshNmVvKNx5EgBj1bEOthT+wK9i+8SkhrJilfaVFTuarRZMJIefhpAEh7VLCE9mDuxyc9VcnsCyMhg+XD156ZKab+cm9fWwe7cG6KSUmPB6+q7qlFyvBXDxIoSHW7df4QlVbcIY5r7yg8Jz+NWIXWI/Nbydd8H2rN4AR8vV5IXk//KMSeNCuEKvXip2q6uD/HwgJgYCGv50FBe7tW2HD0NVlY4uAdUM4pBb2yJEZ0VEN14k2ZLLrvCU1IkVjfwrsJuosq2e0uIx2V6Kz1J1IjnZgY0SwsMFBkKfPurz48dRQV23buoJN6c82f2NKh+WUr+boB72XbAJ4SkC7r6TyIh6wMbAThVekTqxAvCzwC5+SFcCA6HOFECBHfmFJbAT/qrFAgpz9Qk3Jyne9UUJAGMiD0GsBHbCy8XEoI9qWEBhS2BXpPaROrEC/CywCwxUt5UA8vJs3/9oluppyQc/cWCrhPB8/furj56WpHjXbjVvdkyyzC0SvsGesmJSJ1Y05VeLJwASw4s5STfyvq9g3Lgoq/crL4dzF1WP69+1xFnNczqTyURtrX9WzQgODiYwUFZO2sMTR+xqa2HXCTVKNzbNPX/KpD9Jf3Ko48fRl4cACbYFdpVSJ1Y08r/ALu9bYAZ5+0sA6wM7c6qHOArR949zStucSdM0CgoKKCsrc3dT3Co6OpoePXqg0+nc3RSv4ollxfbuhWpTCDEUM+B6165Sl/6kSH9ysDNn0BdewubALlAlzjdO+JFz2iW8iv8FdpFlcB7ycutt2s8yv46jjfdzvYj5JBQXF0d4eLjf/SHWNI0LFy5wtiEQiY+XPIS2aBHY3XwzxMfDxIlua9O3m01AIOPZQsDoUS49tvQn6U9OERGBHrXS3NrArr4ezlaoJN3Gqwc4q2XCi/hfYNe1Cgrh5CnbhqyPHqoDglRg1/Mm5zTOSUwmk+Uk1M28mtEPdemiaimePXuWuLg4uY1kg75qQTlFRVBRAVGTJ8PkyW5t05bNdUAgV8UdhT7TXHZc6U+K9CcniIggkirA+sCutFSlIoLGGRLCv/nV4gmApDi1HDzvrG0lW44eUGkVkgN/8LrVd+Y5QOHWZrv0Yeafgb/Oi7JXVFTjf/sffnBvWwA0Db7dpSaMX/XBwsa8ei4g/amR9CcHi4hAj4roKiusWwhReEbdfYrW1xESaEceL+Fz/C6wS4y3r6zY0cOq8yR3LVGVlr2Qv90uao38DOzX7HZsTQ189x1s2eKWtuTmwpkzKnGyuypOyP8l+Rk4XNPArty6IK3wmBrhM1YebRy6E37N/wK73uotF56P5NIl6/c7mq/mMCQPdl/5JCHcyZzyJCcHFd2NGAE3uWdawrffqo+jR2s03BEUwvuFhzcGdqXWBWmFx1W1CWNgEYSGOq1pwnv4XWAXm9iFMC6iEcCpU9btc/48nClWHSZ53StObJ0QnmvECPUxK4vGyTzl5dh0heQg5oHCq/b9AQ4edPnxhXCK4GD0ARcAqCyzcsRO6sSKy/hdYKebOoWEHqrDnDxp3T7mVCcxMdC1q5MaJoSHS0lRH/fuRXUE82T5oiKXt+XbTWpO1/jqDdC7t8uPL4Sz6H/1KABVddYNRUudWHE5vwvs6N+fpCGRgPXVJ6SUmPv8/e9/JywsjFNNhlfvu+8+RowYQXm5XKG6kjmwO3wYKs8HNK6mcHEuu/Jy+C5bLei/qu9piLBtvqw/k/7k+fSDVU7GyvPWnZ4LC9QiC6kTK8z8L7ADEhPVR5sDu+x/wn/+45xGiVbNmTOHgQMHkpGRAcCyZctYv349n3/+OQaDwc2t8y9xcY0pHPftozFJsYurT2zfDpqmox/H6JHqfTkl3Un6k+eztaRYYZEaOZc6scLM/wK7mhoSK74HIO+kdcvJLYFd5R61DM+XnD/f9qO62vptL17seFs76HQ6li9fzltvvcULL7zAa6+9RmZmJr169aKyspKxY8cyatQohg8fzsqVK+38IbhHaWkp6enpGAwGDAYD6enpVlUyyM7OZsaMGRgMBvR6PePGjeOktfMKOqnZ7Vg3lRUzL5wYzxYYOdKlx+6QF/cnswsXLtC7d28ef/xxu47hbZYvX8748eMJDw8nOjra3c1Bv/kzACqLa6zavrBMpe6SOrHCzP8CO5OJxLWvAZCXa93k1GPHVIdRyYl7Oq1pbhEZ2fbjJz9pvm1cXNvbTp3afNs+fVpuY6fp06czZMgQli1bxtq1axk6dCigcmht2rSJrKwstm/fTkZGBsXFxXYfx9Xmzp1LVlYWmZmZZGZmkpWVRXp6erv7HDt2jAkTJjBo0CA2btzIvn37eOaZZwgLC3NJm0ePVh/37MFtZcXMgd1VfNu4osNTeHF/Mlu+fDlXXnml3a/vbS5dusTs2bN56KGH3N0UAPRffAhAZbl11ZEK61U/NP7Yw/qCcBu/qzxBeDiJIWfhEpzMNWHNj0DlsAv02nJi3m79+vUcOnQIk8mE0Wi0PB8YGGhJkFpdXY3JZELTvOOqNTs7m8zMTLZt22Y5ia5cuZK0tDRycnIYOHBgq/s9/fTT3HTTTfzv//6v5bl+5gRzLtBsxO7Zn6rA6qqrXHb8ujrYvl0DdCqwG7nEZcf2FW31J4AjR45w6NAhbr75Zg4cOOCmFrrWsmXLAFi9erV7G9JAH6n+hlVe7PjcpGlwtryhnNj0sU5tl/AeTh2xy83N5d5776Vv37506dKF/v3789xzz3HJDekRmkrsqhI65p3uuAROdTXknVI/pmRDET6XNKuqqu3Hhx823/bs2ba3/fzz5tvm5rbcxg579uxh9uzZrFixgsmTJ/PMM880+35ZWRkjR44kISGBJ598klgvqQqydetWDAZDs5GRcePGYTAY2NJG0t/6+no+++wzBgwYwOTJk4mLi+PKK6/k448/dlGrGwO777+Hmmmz4KmnYKzrTijffQdVVTqiQi4y9Ob+kJTksmNbxcv70+OPP26ZfyfcwzzHrqo6mPoOBu0qKlSucIDLYnThx5w6Ynfo0CHq6+tZsWIFycnJHDhwgHnz5nH+/HlefvllZx66XUlx1VAIpRVBnD/f/qK6H35QE7WjKCc2wTW3u1zKlhWFztq2Dbm5uUybNo3FixeTnp7OkCFDGDt2LLt37yY1NRWA6Oho9u3bR2FhIbNmzeK2225rMQrhiQoKCohrpbBjXFwcBQUFre5z9uxZqqqq+PWvf83//M//8OKLL5KZmcmsWbPYsGED11xzTav71dTUUFPTOF+noqLC7nYnJam0PyUlcOAANPwaXMZ8Gzbtui4EfPKxaw9uDS/uT+vWrWPAgAEMGDCgzYsL4dj+1Bq9oXG85fz5xkCvNYWFDftEmOiiqwV88BwlbObUEbspU6awatUqJk2aRL9+/ZgxYwaPP/44H330kTMP26GouDCiUEv7O1oZa1k4wVF0vXxsfp0HKykpYerUqcyYMYOnnnoKgNTUVG6++WaefvrpFtsbjUZGjBjB5s2bXd3UZpYuXYpOp2v3sWvXLqD1ckyaprVZpqm+4fL9lltuYeHChYwaNYrFixczffp03nzzzTbblJGRYVmgYTAYSDQvC7eDTtfkduz2GrU8dudOu1/PVpb5da67++sTrOlP27ZtY82aNfTp04fHH3+clStX8vzzz7uz2XazpR/aypH9qTVdooIJQM3/7mhlrDmwM54/3phwVfg9l8+xKy8vJyYmpt1tnH1FRGwsieTxPQby8mDQoLY3tQR20cUwbJhj2yHaFBMTQ3Z2dovn161bZ/m8sLCQLl26EBUVRUVFBZs3b3b7BOj58+czZ86cdrfp06cP+/fvp9D8V7mJc+fOtTniGBsbS1BQEEOGDGn2/ODBg/nmm2/aPN6SJUtYtGiR5euKiopOnYxGj1ZZf/Z8WQy/GKVqjZk7ipNZKk6MqATaGcoQzVjTnzIyMiy3YVevXs2BAwd49tlnXdZGR7K2H9rD0f3pcrqIcCKpogJDx4HdGRMQiJFCiP2Rw9ogvJtLA7tjx47xu9/9jldeab8sV0ZGhmVCq1N069YQ2A3rsPqEJbB7eBIsn+S8Ngmb5efnc++996JpGpqmMX/+fEa4eZVkbGysVfP80tLSKC8vZ8eOHVxxxRUAbN++nfLycsaPH9/qPiEhIYwdO5acnJxmzx8+fJje7VRfCA0NJdSBNSQtI3Y/NJRhcVG6k/x8VS0mkDquuDUedm9uXKYrRBPW9kN7OLo/tRARgZ5K6wK7Hy4CkSqwi/GflcyifXYFdkuXLu0w8Nq5cydjxoyxfH369GmmTJnC7Nmzue+++9rd19lXRNxzD4lHusGXNtyKlaoTHic1NZWsrCx3N8MugwcPZsqUKcybN48VK1YAcP/99zN9+vRmK2IHDRpERkYGM2fOBOCJJ57g9ttvZ+LEiVx33XVkZmbyz3/+k40bN7qs7eZYat/hMEwEEGiewe3kAuTm27Aj2UdkwMX2h9pFp9x1113uboLLnDx5kpKSEk6ePInJZLL8TUlOTiayE2ll7PbAA+jfjYVcK27FnqgGIjGGlPlejlVhN7sCO1uHuU+fPs11111HWloaf/rTnzp8fadfEaWmMmAS8CX8+9+wdGnbm0pgJ5zlvffeY8GCBUyapEaCZ8yYwRtvvNFsm5ycnGalnmbOnMmbb75JRkYGCxYsYODAgXz44YdMmDDBZe3+0Y/UXP7z53XkBA5liOk7NWqXkODU41puw/KtakRDqhshOuPZZ5/lL3/5i+XrlIYh6Q0bNnDttde6vkEJCei7Y11gd0rVTDZG2rdKWvgmuwI7W4a5T506xXXXXUdqaiqrVq0iIMAzciLfcYfK1PDtt7BjBzTcDWvm0iWVZQAg+a4J8PmfYcAAl7ZT+K6YmBjefffddrdpLS/fPffcwz333OOsZnUoIEAVfNiyBfZGXs2Q8u9U6g4nB3YeXXFCeK3Vq1d7TA47M0vKkw7itcKGBfRGg3VVKoR/cGqUdfr0aa699loSExN5+eWXOXfuHAUFBW2mc3CZoiLiN/6duWk/APCb37S+2YkTUF8P4Zynx/FvISrKhY0UwnNZKlAEN8zrcfI8u6oqMN91V4mJJbATPurIEfRnDgNWjNgVqVO4MabW2a0SXsSpiye++OILjh49ytGjR0m47GrerRUCfvgB5s5lUdyN/IUv+eADFcRdPv+8WaqToKDG2phC+DnLAgrTcPWJk8uK7dwJJhMkBp8hsTZfAjvhu3Jy0GeXAgM6DuxqogEwzpCFE6KRU0fs7rrrLsuKxcsfbtVwG3lE5bfceKM6Ybz+esvNmgZ2xMere1BCCMuI3d6aIWjLX4BRo5x6PMtt2LqGPIUS2Alf1bAqFqwYsStVc9GNd9zo7FYJL+KfkUq3burjxYssergagJUrVXmWpsyBXX+OQU9JTiyE2ZAhahFe2YVQcv9rCQwf7tTjWRITz+4Fjz4qNZuF77IysKuqggsX1OdyM0k05Z+BnV5vWRo+JfUcQ4aoDvTWW803azZiJycSISxCQhpjub17nXus+nrYulV9ftX/mwCvvqpKYAjhi6wM7Mz5zbuE1hNZ7+Ak/sKr+Wdgp9NZRu10xUUsXKiefu01qKtr3EwCOyHaZp5nt+fzQlVazEkOHoTycpVixc35p4VwvvBwmwI7Y80JdBu+ckHDhLfwz8AOGm/HFhfzs59B9+4qq/2HH6qn6+rUGguA5GFdoEnSWCFEkwUUb+2CBx5w2nHMt2Gv7F9E0N6dKhmyEL6q6YhdRdvz0S2BHYWWeeNCgD8HduaOUFxMWBj84hfqy1deAU1TFSlqa1Uy/YR9nzVuIIQAmqQ8YbRT051Y5tcdXqUSTh444LRjCeF2TQO78vo2N5PATrTFfwO7Z56BtWvh6qsBePhhFcTt3KlOJObbsP36yWJYT1FaWsqyZcs4c+aMu5siULdFdTqNAuI5U+C8OW+WihPV/4bAQBg61GnH8ifSnzxUeDiRLz4LQOX5tk8+hadNgAR2oiX/DVluuAFuvdWy2rV7d/j5z9W3fvObpqXE3JyaRVgsWLCAnTt38tBDD7m7KQI1523QADWisPfCAKiudvgxcnLg2DEVQI5jm5oSERbm8OP4I+lPHkqnQz9erUyqrGr7gqnwpJqSYOQsdO3qkqYJ7+C/gV0rzIsoPv4YMjPV58mfv6HKiDnhpCWs98knn1BVVcWnn35KdHQ07733nrubJICUVPUnZC8pDr8du22bZUCdq5LyMVAh+escRPqTZzOXFGt38cQptdLPGF6pRrKFaOC/gZ3JBOvXq0nfDUthBw+Gm25Sc+w++URtllyXrSYzyCiBW82YMYO1a9cCqrbjHXfc4eYWCYCUFDWisJcUh1afeP99uO46FSumpMCaES+ob0hg5xDSnzyb/t/qd1NZ0c4cuwJ1N8lokEEH0Zx/B3Y/+xn86U/w5ZeWpxctar5ZMkclObEQbXD0AgpNgxdfhJ/+VA2ST58OmzdDryMb1QaS70T4gdiVGQRg4mJ1AB9/3Po2Z6vCATDefo3rGia8gv8GdiEhYL5KXb3a8vT11zcfFJAcdkK0zVxJ7Af6URr7o453aKecYG0tzJsHixerrxcsUNMiIgMvwmFVFF1G7IQ/iIqChfwWgLvvhtzcltsUlqgk+8YHZ7mwZcIb+G9gB3DnnerjunVQWgqo3MXmUbugABNJnJTAzo3+/ve/ExYWxqlTpyzP3XfffYwYMYLy8nI3tkwAxMRAnz7q86zK/u1vXFkJEyfCP//Z4ltlZTB1Krz9tlqF/vrrKmF4YCDqn/Xr1RPx8Y5+C35F+pOXiIgggyVcmVxEWRnMmQOXLjV+u7q6sQSm0eiWFgoP5t+B3ahRqi5STQ384x+Wp+fMgXvvheXj/kkQJgns3GjOnDkMHDiQjIwMAJYtW8b69ev5/PPPMRgMbm6dgCaJitsqLfaf/6jhuN/8Br75BmbOhD//2fLtrCy46iq1WUSEus565JEm+4eEwI03qiE8KSXWKdKfvEREBMHUsWbeV0RHw/bt8NRTjd8257ALCa7HYCpxSxOF5wpydwPcSqeDu+6Cxx6Dv/zFkj0/JKShbuysd9R2PjjHTtMaC0i7Uni4bedmnU7H8uXLue222+jZsyevvfYaX3/9Nb0agu3Kykquv/56amtrMZlMLFiwgHnz5jmp9aI1o4dWs3ZtGHs3lMGi6ObfzM5WQVlSEuzfr+4prV6Ndu+9fL0thIy8O8jMVP8hevaETz9tDBS9ia/0J7MLFy4wePBgZs+ezcsvv+zgVosORUQA0KdLIatWqWuhV16Ba69V804tyYlr89H9+f/giSfc11bhcfw7sAM1z+7JJ1WV8Zyc5qXD+veH1FRITnZf+5zkwgWIjHT9cauqLH+zrDZ9+nSGDBnCsmXL+OKLLxjaJEFteHg4mzZtIjw8nAsXLjBs2DBmzZpFN3PJOOF0KeWbgMns2VgORDf/5quvqo+jR4PBgPb2n/ms6loyPkhmy8qrAAgI0Lj9dh0vvdTG4PiKFWrS0ZQpHpuvy1f6k9ny5cu58sorHdRKYbNwtTCC8+e59VZ49FE1E+HOO9UIt1SdEO3x71uxoCYoTJkCQ4a0TNfw0kuwa5f6vnCb9evXc+jQIUwmE8bLJpQEBgYS3vBHsLq6GpPJhNbOBH3heOYRtkNVCc1HrYqK4B016l33yELeew9GjNRx8wd3soWrCKGGB3iTw1N/yd9W1bQe1GmaWk0xd64q5iw6rb3+BHDkyBEOHTrETTfd5IbWCaAxWj9/HlArxVNToaRETRUyT5GUwE60RkbsAP72N5UR0o/m74SHq6t9dxzXFnv27GH27NmsWLGCNWvW8Mwzz/D+++8326asrIxrrrmGI0eO8NJLLxErf+hcKn5gFEYKKKQH+/fDuHHqee2Pb7KnegjvxS1izc+uxly5KjISHnoIFvb5F/G/XAC7u8HZxyExUU3Ue+MNtZqirEydycrKICgIBg1y0zvsmC/1p8cff5yXXnqJLeZabsL15s+Hn/xE1bRElbv8xz/URdSWLXD8uNrMSCF0G+zGhgpPJIEdqNs8lzOP+vhosKfT2X4Lx9Vyc3OZNm0aixcvJj09nSFDhjB27Fh2795NamqqZbvo6Gj27dtHYWEhs2bN4rbbbmt1JEI4h84YRwp7yWQqe/eqAYS/vVPH316YQw6/goaB8NhYdUvpF78w31GdCT/6DOLiVFAHUFDQbGGFxdVXq7Obh/KV/rRu3ToGDBjAgAEDJLBzp0GDWlzI9OunVo3Pnq26CZhH7K52QwOFJ5PArqnz5xuX6O3Zo1IzjB4NX3/t7pb5nZKSEqZOncqMGTN4qmE5WGpqKjfffDNPP/00meaab00YjUZGjBjB5s2bmT17tqub7L+6d2c0a8hkKosXazz8sA71pyWZMKqZcVswd6QHMnlyK7HZj3/c/OvBg2H5coiOVg+DQX1sEsgL21nbn7Zt28aaNWt4//33qaqqora2lqioKJ599ll3Nl80uO02ePhh+MMf1NdyK1a0RgI7s9xclfqkvl5dDp06pWZES41Yt4iJiSE7O7vF8+vWrWv2dWFhIV26dCEqKoqKigo2b94sRc1dTa9nTNA+qIOKCh0BAfDjnt8zN/9FZi4dhf65RR2/hlmfPs3zOgiHsLY/ZWRkWFKhrF69mgMHDkhQ5w45OSr/T8+ecOutzb71yiuw7etL7PkuhGG6g+rCR4gmJLAz691bLcnLyYEPPlC57UBy2Hm4/Px87r33XjRNQ9M05s+fzwgpO+VaOh0zjNv5n1NPo3/sAW5/IgmjcSjs+SX07evu1gnhfXbsUHMWJk1qEdiFhcHmf50nK+MDxnefoDJ6C9GEBHZmOp1aS/7UU6rE2MSJ6nkJ7DxaamoqWVlZ7m6G3wtc9ChP19bCHQFgnt5oLiQrvNJdd93l7ib4rybpTloTkdCVq34/14UNEt5EArum0tPh6adV1XHzVZAPJicWwuHMdfgKCuDcOeje3b3tEcKbXZbuRAhbyBhuUwkJcMMN6vONG9VHGbETTlJaWkp6ejoGgwGDwUB6ejplZWXt7lNVVcX8+fNJSEigS5cuDB48mD/+8Y+uabA1/vu/1QpX8+xuIYTtOgrs8vJUjlVzpmIhmpDA7nJ33tn8awnshJPMnTuXrKwsMjMzyczMJCsri/T09Hb3WbhwIZmZmbz77rtkZ2ezcOFCHnnkkRaT4F2utBS++koFdDU1anWrEMI+5sCurTp1q1fD2LHwzDMua5LwHhLYXW7mTJWsGCAwUC2qEMLBsrOzyczM5K233iItLY20tDRWrlzJp59+Sk5OTpv7bd26lTvvvJNrr72WPn36cP/99zNy5Eh27drlwta3YsWKxtHukSNVUUshhH06mGNHUZH6KKlORCsksLtcRAT89a9w7BjU1cGAAe5ukfBBW7duxWAwNKvHOW7cOAwGQ7uJYSdMmMAnn3zCqVOn0DSNDRs2cPjwYSZPntzmPjU1NVRUVDR7OFzTlAuLFvlsYm8hXMI8YnfddY3PrVoFd9+tsnx/9ZV6Tmpii1bI4onW3HKLu1vgFPX19e5ugtt5ys+goKCAuLi4Fs/HxcVRYE4r34rXX3+defPmkZCQQFBQEAEBAbz11ltMmDChzX0yMjJYtmyZQ9rdpqZTFm6/3bnH8hCe8n/JneRn4CRxcWo0btUqVQVJp1OJ8levbr6dLO4TrZDAzg+EhIQQEBDA6dOn6d69OyEhIej8bERF0zQuXbrEuXPnCAgIICQkxCnHWbp0aYdB1M6dOwFa/R1omtbu7+b1119n27ZtfPLJJ/Tu3ZvNmzfz8MMPEx8fz4033tjqPkuWLGHRosYkwRUVFSSaS3g5yrRpkJGhRhg8uPSXI0h/cl1/8luhoZCd3byG+e23qztIlZVQUaG+d1mOOyFAAju/EBAQQN++fTlz5gynT592d3PcKjw8nKSkJAKclNRz/vz5zJkzp91t+vTpw/79+ylsZUXbuXPn2qxze/HiRZ566inWrl3LtGnTABgxYgRZWVm8/PLLbQZ2oaGhhDo72AoIgMWLnXsMDyH9qZGz+5Nfu3z+3OTJ6iFEBySw8xMhISEkJSVRV1eHyWRyd3PcIjAwkKCgIKeOrsTGxhJrxYTmtLQ0ysvL2bFjB1dccQUA27dvp7y8nPHjx7e6T21tLbW1tS1OooGBgXJLzMWkP7mmPwkhbCeBnR/R6XQEBwcTHBzs7qb4vcGDBzNlyhTmzZvHihUrALj//vuZPn06AwcOtGw3aNAgMjIymDlzJlFRUVxzzTU88cQTdOnShd69e7Np0ybeeecdfvOb37jrrfgt6U9CCE8kgZ0QbvLee++xYMECJk2aBMCMGTN44403mm2Tk5NDeXm55es1a9awZMkS7rjjDkpKSujduzfLly/nwQcfdGnbhRBCeCYJ7IRwk5iYGN599912t9E0rdnXPXr0YNWqVc5slhBCCC8mM16FEEIIIXyEV4zYmUctnJJYVYgG5v9fl4+S+RrpT8IVpD8J4Ti29CevCOwqKysBHJ97S4hWVFZWYjAY3N0Mp5H+JFxJ+pMQjmNNf9JpXnA5VV9fz+nTp9Hr9S2W1puTrebl5REVFeWmFjqfvE/n0zSNyspKevbs6dN5uaQ/+c/7BPe9V+lP/vP/zF/eJ3hHf/KKEbuAgAASEhLa3SYqKsrn/0OBvE9n8+WRBTPpT4385X2Ce96r9CfFX/6f+cv7BM/uT757GSWEEEII4WcksBNCCCGE8BFeH9iFhoby3HPPOb8WppvJ+xSu4C8/f395n+Bf79XT+MvP3l/eJ3jHe/WKxRNCCCGEEKJjXj9iJ4QQQgghFAnshBBCCCF8hAR2QgghhBA+QgI7IYQQQggf4RWB3R/+8Af69u1LWFgYqampfP311+1uv2nTJlJTUwkLC6Nfv368+eabLmqpfTIyMhg7dix6vZ64uDhuvfVWcnJy2t1n48aN6HS6Fo9Dhw65qNW2W7p0aYv29ujRo919vO136Q2kP7Xkjf0JpE95AulPLUl/cjPNw61Zs0YLDg7WVq5cqR08eFB79NFHtYiICO3EiROtbn/8+HEtPDxce/TRR7WDBw9qK1eu1IKDg7UPPvjAxS233uTJk7VVq1ZpBw4c0LKysrRp06ZpSUlJWlVVVZv7bNiwQQO0nJwc7cyZM5ZHXV2dC1tum+eee04bOnRos/aePXu2ze298Xfp6aQ/tc4b+5OmSZ9yN+lPrZP+5N7fp8cHdldccYX24IMPNntu0KBB2uLFi1vd/sknn9QGDRrU7LkHHnhAGzdunNPa6Ghnz57VAG3Tpk1tbmPuOKWlpa5rWCc999xz2siRI63e3hd+l55G+lPrvLE/aZr0KXeT/tQ66U/u/X169K3YS5cusXv3biZNmtTs+UmTJrFly5ZW99m6dWuL7SdPnsyuXbuora11Wlsdqby8HICYmJgOt01JSSE+Pp4bbriBDRs2OLtpnXbkyBF69uxJ3759mTNnDsePH29zW1/4XXoS6U++159A+pS7SH+S/uSpv0+PDuyKioowmUwYjcZmzxuNRgoKClrdp6CgoNXt6+rqKCoqclpbHUXTNBYtWsSECRMYNmxYm9vFx8fzpz/9iQ8//JCPPvqIgQMHcsMNN7B582YXttY2V155Je+88w7r169n5cqVFBQUMH78eIqLi1vd3tt/l55G+pNv9SeQPuVO0p+kP3nq7zPIbUe2gU6na/a1pmktnuto+9ae90Tz589n//79fPPNN+1uN3DgQAYOHGj5Oi0tjby8PF5++WUmTpzo7GbaZerUqZbPhw8fTlpaGv379+cvf/kLixYtanUfb/5deirpTy15Y38C6VOeQPpTS9Kf3Pv79OgRu9jYWAIDA1tc/Zw9e7ZFlGzWo0ePVrcPCgqiW7duTmurIzzyyCN88sknbNiwgYSEBJv3HzduHEeOHHFCy5wjIiKC4cOHt9lmb/5deiLpT7bxtv4E0qdcSfqTbaQ/uY5HB3YhISGkpqby5ZdfNnv+yy+/ZPz48a3uk5aW1mL7L774gjFjxhAcHOy0tnaGpmnMnz+fjz76iK+++oq+ffva9Tp79+4lPj7ewa1znpqaGrKzs9tsszf+Lj2Z9CfbeFt/AulTriT9yTbSn1zIDQs2bGJeTv72229rBw8e1H75y19qERERWm5urqZpmrZ48WItPT3dsr15+fHChQu1gwcPam+//bZHLD9uz0MPPaQZDAZt48aNzZZZX7hwwbLN5e/zt7/9rbZ27Vrt8OHD2oEDB7TFixdrgPbhhx+64y1Y5bHHHtM2btyoHT9+XNu2bZs2ffp0Ta/X+9Tv0tNJf1J8oT9pmvQpd5P+pEh/8qzfp8cHdpqmab///e+13r17ayEhIdro0aObLbO+8847tWuuuabZ9hs3btRSUlK0kJAQrU+fPtof//hHF7fYNkCrj1WrVlm2ufx9vvjii1r//v21sLAwrWvXrtqECRO0zz77zPWNt8Htt9+uxcfHa8HBwVrPnj21WbNmad9//73l+77wu/QG0p98oz9pmvQpTyD9SfqTp/0+dZrWMNNPCCGEEEJ4NY+eYyeEEEIIIawngZ0QQgghhI+QwE4IIYQQwkdIYCeEEEII4SMksBNCCCGE8BES2AkhhBBC+AgJ7IQQQgghfIQEdkIIIYQQPkICOyGEEEIIHyGBnRBCCCGEj5DATgghhBDCR0hgJ4QQQgjhI/4/37YfaIGFSTIAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Define the optimal estimation problem\n", "traj_cost = opt.gaussian_likelihood_cost(sys, Qv, Qw)\n", @@ -416,10 +577,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "0c6981b9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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mx59YpdVsnb+/HlDX6VLly5led/334d168DZGZYsge++0/Wty66yZWHpUujbdwYQBzRi6dLnqFsXvLx0yaq1BlDkpTJkq/T965o0aZLhF6iMNGnShJIlSxIVFZXle4resmXL8Pb2NiyLlF1hYWGkpKTg4OBA3bp1DSNizT3non7ghK+vLw4OWU+E4OLiYpjWSPrZCZH/mJTY7d69O1uL7W7ZsgVvb++cxpShVatWMWbMGN5//31OnDhBq1at6NKlS4bfcK9evcozzzxDq1atOHHiBO+99x6jRo1i7dq1hmMOHTpE7969GTBgACdPnmTAgAH06tUry3lssiOrxC4y8r+1YRs0+G9psfToa+v0rl69muF927TRDYMPC4MTJzKPUSmVZWKnn1zxxIkTmQ4913/AQtaJ3YYN8MUXup//9z8YNCjzOLNy69Yt1q2bC8C4cZ9SqpSG8+fh7NmaAMyefY79+3VTqeSmvFKG8pMjR45kazBBTgZO6Nnb29P10TchUyYrTk5O5sMPPyQ8PJz+/fuze/fubN9TP9VJuXLlsLe3N3SsXr9+fbavlZnsDJzQkwEUQuRj1m4Lzo4mTZqoYcOGGe2rWbNmhksiTZgwQdWsWdNo3xtvvKGaNWtm+HevXr1U586djY7p1KlTtvraZNV3pF27dgpQS5cuTfNYYqJSbdvq+oVVrqzU559/pQD14osvpnutV155xWjJr8yWB1JKqeef1117ypTMf4fr168rQDk4OKjExMR0j0lOTlaFChVSgAoODs7wWq+99pohvqJFi2Z43KVLSnl66uIbMybz+Ew1YsQIBaiWLVsqrVar7t9Xavx4pVxdv34UU08FSpUpo9To0Upt3KjU338rFRKiVCbdGqV/kAWl99zOmzdPAap169Ym9/OqUaOGAtTmzZtzFId+Ob0yZcpk2sdVKaXWrVtnVA49PDyy3a9vxYoVClCtWrVSSil16dKlR31s7VVERESOfofUoqOV2rRJqYYNeytAPffcDDVrllJff63bVq7Uve7T07u37pyZM2c+cRx6UoaEyB3ZSuxCQ0PVe++9p9q2batq1qypfH19Vdu2bdV7772nQjJ6hzCThIQEZW9vr3777Tej/aNGjVKtW7dO95xWrVqpUaNGGe377bffjJIXHx8f9fXXXxsd8/XXX6vy5ctnGEt8fLyKiooybKGhoZm+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Plot the response of the estimator\n", "plot_estimator_response(timepts, est, U, V, Y, W)" @@ -427,10 +599,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "25b8aa85", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary statistics:\n", + "* Cost function calls: 9464\n", + "* Final cost: 212754409.97292745\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Noise free and disturbance free => estimation should be near perfect\n", "noisefree_cost = opt.gaussian_likelihood_cost(sys, Qv, Qw*1e-6)\n", @@ -444,10 +636,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "7a76821f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot_estimator_response(timepts, est0, U0, V*0, Y0, W*0)" ] @@ -464,10 +667,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "93482470", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "V_clipped = np.clip(V, -0.05, 0.05) \n", "\n", @@ -479,10 +693,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "56e186f1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary statistics:\n", + "* Cost function calls: 4222\n", + "* Constraint calls: 4410\n", + "* Final cost: 522.06154910988\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAHbCAYAAACtCWxXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADPyklEQVR4nOzdd3hU1dbA4d+kF1NoCQk1IL0TWpAqCFItqCj3A1FQERGRawG5KuD1cr02RAUUQayI0tFQghJAASF0SOglkEKoCUkgdX9/bDIQUkjCzJxkst7nOc8kJ+fMrElmZ9bss/faJqWUQgghhBBClGkORgcghBBCCCHunCR1QgghhBB2QJI6IYQQQgg7IEmdEEIIIYQdkKROCCGEEMIOSFInhBBCCGEHJKkTQgghhLADktQJIYQQQtgBSeqEEEIIIeyAJHVClCLz58/HZDJhMpkIDw/P83OlFHfffTcmk4lu3brl+pnJZGLMmDH53u+iRYvy3OfkyZPNj5XfdvLkScs9setOnjyJyWRi/vz55n2bN29m8uTJXL58Oc/xtWvXpn///haPw2ihoaFMnjzZavffrVu3PK+PorJ2bEII63EyOgAhRF5eXl7MnTs3zxvzhg0bOHbsGF5eXhZ7rNWrV+Pj45Nnf0BAgMUe4+b73LJlC3Xr1jXv27x5M1OmTGH48OH4+vpa/DFLo9DQUD7//HOrJU8zZ84s8bnWjk0IYT2S1AlRCg0ePJgffviBzz//HG9vb/P+uXPnEhISQlJSksUeKzg4mMqVK1vs/grj6upKhw4dbPJY9kIpxbVr13B3dy/yOY0bN7ZiREKI0kouvwpRCj3xxBMALFiwwLwvMTGRxYsX8/TTTxsVltmrr76Kj48PWVlZ5n0vvvgiJpOJ999/37zvwoULODg48OmnnwJ5L79OnjyZV199FYCgoKACLz2vXr2a1q1b4+7uTsOGDZk3b16R4kxLS2Pq1Kk0atQINzc3KlWqRPfu3dm8ebP5mGvXrjFx4kSCgoJwcXGhWrVqvPDCC3kuB+dcCr5dLKmpqbzyyisEBQXh5uZGxYoVadOmjflvOXz4cD7//HOAfC9351xGnz17No0aNcLV1ZVvvvkGgClTptC+fXsqVqyIt7c3rVu3Zu7cuSilcsVw6+XXnN/7Bx98wEcffURQUBB33XUXISEhbN261Xzc7WL75ZdfaN++PT4+Pnh4eFCnTp1S8XoUQmjSUydEKeTt7c0jjzzCvHnzeO655wCd4Dk4ODB48GCmT5+e73lKKTIzM/Psz87OLvCxsrKy8pxjMplwdHQs8JyePXvywQcfsG3bNkJCQgBYt24d7u7uhIWFmRO133//HaUUPXv2zPd+Ro4cycWLF/n0009ZsmSJ+ZLvzT1Ne/bs4Z///CcTJkzA39+fr776ihEjRnD33XfTpUuXAmPMzMykT58+bNq0iXHjxnHvvfeSmZnJ1q1biY6OpmPHjiilePDBB/n999+ZOHEinTt3Zu/evbz99tts2bKFLVu24OrqWqxYxo8fz3fffce///1vWrVqRUpKCvv37+fChQsAvPnmm6SkpLBo0SK2bNlivu+bL3cvW7aMTZs28dZbb1G1alX8/PwAnZw999xz1KxZE4CtW7fy4osvEhMTw1tvvVXg7yLH559/TsOGDc2vnzfffJO+ffty4sQJfHx8Co1ty5YtDB48mMGDBzN58mTc3Nw4deoUf/zxx20fVwhhI0oIUWp8/fXXClDbt29X69evV4Dav3+/Ukqptm3bquHDhyullGrSpInq2rVrrnOB227r1683H//2228XeFzdunULjTMlJUW5uLioqVOnKqWUOnPmjALU66+/rtzd3dW1a9eUUko988wzKjAw0HzeiRMnFKC+/vpr8773339fAerEiRN5HqdWrVrKzc1NnTp1yrzv6tWrqmLFiuq5554rNMZvv/1WAWrOnDkFHrN69WoFqP/973+59i9cuFAB6ssvvyx2LE2bNlUPPvhgobG98MILqqB/v4Dy8fFRFy9eLPQ+srKyVEZGhpo6daqqVKmSys7ONv+sa9euuV4fOb/3Zs2aqczMTPP+bdu2KUAtWLDgtrF98MEHClCXL18uNC4hhHHk8qsQpVTXrl2pW7cu8+bNY9++fWzfvv22l7oee+wxtm/fnmd77733Cjxn3bp1eY5ftmxZoY/j4eFBSEgI69atAyAsLAxfX19effVV0tPT+fPPP833XVAvXVG1bNnS3DMF4ObmRv369Tl16lSh561atQo3N7dCf2c5vUzDhw/Ptf/RRx/F09OT33//vdixtGvXjlWrVjFhwgTCw8O5evXqbZ/jre69914qVKiQb7w9e/bEx8cHR0dHnJ2deeutt7hw4QIJCQm3vd9+/frl6oFt3rw5wG1/lwBt27YF9Gvs559/JiYmpqhPRwhhI3L5VYhSymQy8dRTTzFjxgyuXbtG/fr16dy5c6HnVKlShTZt2uTZX1h5khYtWpRookTPnj155513SElJYd26ddx7771UqlSJ4OBg1q1bR506dThx4gRTpkwp9n3frFKlSnn2ubq63jZZOnfuHIGBgTg4FPzZ9cKFCzg5OVGlSpVc+00mE1WrVjVfMi1OLDNmzKB69eosXLiQ9957Dzc3N3r37s37779PvXr1Co05R34zj7dt20avXr3o1q0bc+bMoXr16ri4uLBs2TLefffdIiWPt8afc2m5KOd26dKFZcuWMWPGDIYNG0ZaWhpNmjRh0qRJ5jGgQghjSU+dEKXY8OHDOX/+PLNnz+app54yOpxcevToQXp6Ohs3buT333/nvvvuM+8PCwsjLCzM/L0RqlSpQmxsbKHjCStVqkRmZibnzp3LtV8pRXx8fImSXU9PT6ZMmcLBgweJj49n1qxZbN26lQEDBhT5PkwmU559P/30E87Ozvz666889thjdOzYMd8E3poeeOABfv/9dxITEwkPD6d69eoMGTIk1/g7IYRxJKkTohSrVq0ar776KgMGDODJJ580Opxc2rVrh7e3N9OnTyc+Pt6c1PXs2ZNdu3bx888/07hxYwIDAwu9n+L0FhVHnz59uHbtWq5Cx7fKSTi///77XPsXL15MSkrKHSek/v7+DB8+nCeeeIJDhw6RmpoKlOw5m0wmnJyccl0+vXr1Kt99990dxXirosTm6upK165dzZf1d+3aZdEYhBAlI5dfhSjl/vvf/1r1/nfs2JFv8eHGjRvnqpF3K0dHR7p27crKlSsJCgoyFxS+5557cHV15ffff2fs2LG3ffxmzZoB8Mknn/Dkk0/i7OxMgwYN7rjA8hNPPMHXX3/NqFGjOHToEN27dyc7O5u///6bRo0a8fjjj3PffffRu3dvXn/9dZKSkrjnnnvMs19btWrF0KFDi/247du3p3///jRv3pwKFSoQFRXFd999R0hICB4eHrme83vvvUefPn1wdHSkefPmuLi4FHi//fr146OPPmLIkCE8++yzXLhwgQ8++CDX7FxLKCi2f//735w5c4YePXpQvXp1Ll++zCeffIKzszNdu3a1aAxCiJKRpE6Icu7+++/Pd39YWNhtJzn07NmTlStX5jrO1dWVTp06Fel80DXVJk6cyDfffMOcOXPIzs5m/fr1JV7mKoeTkxOhoaFMmzaNBQsWMH36dLy8vGjRooX5OZtMJpYtW8bkyZP5+uuveffdd6lcuTJDhw7lP//5T4kSpnvvvZcVK1bw8ccfk5qaSrVq1Rg2bBiTJk0yHzNkyBD++usvZs6cydSpU1FKceLECWrXrl3o/c6bN4/33nuPAQMGUK1aNZ555hn8/PwYMWJEseMsSEGxtW/fnoiICF5//XXOnTuHr68vbdq04Y8//qBJkyYWe3whRMmZlLqlaqUQQgghhChzZEydEEIIIYQdkKROCCGEEMIOSFInhBBCCGEHJKkTQgghhLADktQJIYQQQtgBSeqEEEIIIeyAJHVCCCGEEHZAkjohhBBCCDsgSZ0QQgghhB2QpE4IIYQQwg5IUieEEEIIYQckqRNCCCGEsAOS1AkhhBBC2AFJ6oQQQggh7IAkdUIIIYQQdkCSOiGEEEIIOyBJnRBCCCGEHZCkTgghhBDCDkhSJ4QQQghhBySpE0IIIYSwA5LUCSGEEELYASejAyiK7OxsYmNj8fLywmQyGR2OsFNKKa5cuUJgYCAODvb7eUfak7AFaU9CWE5R21OZSOpiY2OpUaOG0WGIcuL06dNUr17d6DCsRtqTsCVpT0JYzu3aU5lI6ry8vAD9ZLy9vQ2ORtirpKQkatSoYX692StpT8IWpD0JYTlFbU9lIqnL6dL29vaWRiOszt4voUh7ErYk7UkIy7lde7LfgQ5CCCGEEOWIJHVCCCGEEHZAkjohhBBCCDtQJsbUFSY5Gc6fh9q1jY6kbMjKyiIjI8PoMAzh7OyMo6Oj0WGUallZcOwY1K9vdCRlg7QnaU/CcrKzs0lPTzc6DENYqj2V6aRu9Wr4xz+gVStYt87oaEo3pRTx8fFcvnzZ6FAM5evrS9WqVe1+8HZJHDsGvXpBUhKcPg1ubkZHVHpJe9KkPQlLSU9P58SJE2RnZxsdimEs0Z7KdFLXuLF+A/r9d9i6FTp0MDqi0ivnDcjPzw8PD49y909YKUVqaioJCQkABAQEGBxR6VOrFmRm6p7vn36C4cONjqj0kvYk7emO7dmjPz01bgx16hgdjaGUUsTFxeHo6EiNGjXsulh1fizZnsp0UlezJgwbBvPmwbvvwsqVRkdUOmVlZZnfgCpVqmR0OIZxd3cHICEhAT8/P7l0dAsnJ3jhBXj9dZgxA558EspZrlIk0p40aU93aN483dAmToT//MfoaAyVmZlJamoqgYGBeHh4GB2OISzVnoqVDk+bNo22bdvi5eWFn58fDz74IIcOHbrteRs2bCA4OBg3Nzfq1KnD7NmzSxRsfiZMAAcH+PVX2L3bYndrV3LG/JTXxnKznN9BeR0HdTsjR4K7O+zaBX/9ZXQ0pZO0pxukPd2B670yzJ0LQ4YYG4vBsrKyAHBxcTE4EmNZoj0VK6nbsGEDL7zwAlu3biUsLIzMzEx69epFSkpKgeecOHGCvn370rlzZ3bt2sUbb7zB2LFjWbx4cYmDvlm9ejB4sP66nH/Yua3ydokoP/I7KFzFinqcKuhOBFEweS3J7+CO5CR1CQmwYAHs3WtsPKVAeX89WeL5FyupW716NcOHD6dJkya0aNGCr7/+mujoaHbs2FHgObNnz6ZmzZpMnz6dRo0aMXLkSJ5++mk++OCDOw4+xxuDdG/hokVw8KDF7laIcunFF/XtkiVw5oyxsQhht3KSugoV9O3MmcbFIuzGHY1GTExMBKBixYoFHrNlyxZ69eqVa1/v3r2JiIgosIsxLS2NpKSkXFuBTp2i6SMNedB9NUrBtPHnQKniPxkhBADNm0O3brq8yaxZRkcjhJ3KSeomT9a3338P199ThSipEid1SinGjx9Pp06daNq0aYHHxcfH4+/vn2ufv78/mZmZnD9/Pt9zpk2bho+Pj3mrUaNGwYHs3w933cWkq/8C4IdVFThRrRP88596SqwkeEIU29ix+vaLL+DqVWNjEcLuZGXpaeYAjz6qZ8CmpMC33xoblyjzSpzUjRkzhr1797JgwYLbHnvrdWJ1PdEq6PrxxIkTSUxMNG+nT58u+M779YOEBNos/Re9q+4hCyfeixsKH30EISFgobF7whgLFizAzc2NmJgY876RI0fSvHlzc0+xsLwBA3SJkwsXdHkTYT+kTZUCFy9CTj22KlVg9Gj99cyZ0hFRxpS29lSipO7FF19kxYoVrF+/nurVqxd6bNWqVYmPj8+1LyEhAScnpwLLAbi6uuLt7Z1rK5S7Ozz4IJN+bgHA107PEPPAaN1Y7r+/6E9MlDqPP/44DRo0YNq0aQBMmTKFNWvWsGrVKnx8fAyOzn45Od14n5kxQ95n7Im0qVLAw0Nfbv3sM93Yhg6Fu+7Sg8LXrzc6OlEMpa09FatOnVKKF198kaVLlxIeHk5QUNBtzwkJCWHlLQXk1q5dS5s2bXB2di5etLfRuTN06QIbNzryQdDnfLzoE91gRP4KmbWMo2PuJQUKO9bBQSfWtzvW07N48aF7c999910eeeQRAgMD+eSTT9i0aRPVqlUD4Ndff+Wf//wn2dnZvP7664wcObLYjyHyN3KkHu6ze7cub9Kpk9ERlQF20KYeeughwsPD6dGjB4sWLSr2/Ysi8PS8Mc0cwNsbnnlGX5KtWtW4uEqbMt6eTp8+zdChQ80dWW+++SaPPvposR+jWFQxPP/888rHx0eFh4eruLg485aammo+ZsKECWro0KHm748fP648PDzUyy+/rCIjI9XcuXOVs7OzWrRoUZEfNzExUQEqMTHxtseuWaMUKOXurlRCQnGenf26evWqioyMVFevXs39A90Bk//Wt2/uYz08Cj62a9fcx1aunP9xd6BVq1bKxcVFhYeHm/dlZGSoevXqqTNnzqikpCR19913qwsXLhR6PwX+LlTxXmdlWXGe5zPP6D/do4/aILAyorDXUFlvU0op9ccff6gVK1aoQYMG3fY+pD2Vn+dpTfb6HhUbG6t27dqllFLq7Nmzqlq1aio5ObnA+7BEeyrW5ddZs2aRmJhIt27dCAgIMG8LFy40HxMXF0d0dLT5+6CgIEJDQwkPD6dly5a88847zJgxg0GDBlkiJ83jvvugTRs9uPvjD7L0NaTWrQvP4kWptmbNGg4ePEhWVlauSTfbtm2jSZMmVKtWDS8vL/r27cuaNWsMjNT+3FzepLChraJsKahNAXTv3h0vLy+DIisnDhzQSyAdOWJ0JMICCmpPAQEBtGzZEgA/Pz8qVqzIxYsXrRpLsZI6pVS+2/CbFomcP38+4eHhuc7r2rUrO3fuJC0tjRMnTjBq1ChLxJ4vkwn+pSfC8tksRy6t2KTL42/bZrXHLLOSkwvebp1gkpBQ8LGrVuU+9uTJ/I8rgZ07d/Loo4/yxRdf0Lt3b958803zz2JjY82XjACqV6+ea7BqWbBx40YGDBhAYGAgJpOJZcuW3fYca67QcqtmzaB7dylvUmRlvE0JG1mwAAYOhE8+yfuzvXt19Yb0dNvHVdrYUXuKiIggOzu78GoeFmCXA84GDICmTXW1k89qvcmbMYNh82b97iRuKM74AWsdW4iTJ0/Sr18/JkyYwNChQ2ncuDFt27Zlx44dBAcHm2dR36ysVSRPSUmhRYsWPPXUU0Xqvc5ZoeWZZ57h+++/56+//mL06NFUqVLFar3fL76ox25/+SW8+WbuoSniFmW8TQkbyalR5+eXe39mJvTuDfHx0L49PPaY7WMrTeykPV24cIFhw4bx1VdfWeRxC3NHxYdLKwcHmDRJfz39+ACS8dRJnSgzLl68SJ8+fRg4cCBvvPEGAMHBwQwYMIBJ1/+41apVy9Uzd+bMGQICAgyJt6T69OnDv//9bx5++OEiHW+LFVpuJeVN7ENR2pQ9mDlzJkFBQbi5uREcHMymTZuKdN5ff/2Fk5OT+XKZVRWU1Dk56QkTAJ9/bv04RIkVtT2lpaXx0EMPMXHiRDp27Gj1uOwyqQNdz7F2bbiY6s4f3AtbttyoCyRKvYoVKxIVFcUXX3yRa//y5ctZvXo1AO3atWP//v3ExMRw5coVQkND6d27txHh2kxJVmgptsOH9fXW65yc4IUX9NdS3qTsKkqbKusWLlzIuHHjmDRpErt27aJz58706dMn1zjv/CQmJjJs2DB69Ohhm0ALSuoAnn1Wz+zcuFFfbhKlUlHaU87wtHvvvZehQ4faJC67TeocHW9cbd3u1BEuXYJDh4wNSliUk5MTH374Id27d6dVq1a8+uqrBdY+tBclWaGlWMvuJSfrNcJat85VL2vECH3Zdfdu+PNPCzwRUWr17t2bRx99lNDQUKpXr8727duNDqnIPvroI0aMGMHIkSNp1KgR06dPp0aNGsy6zYDQ5557jiFDhhASEmKbQAtL6qpXhwce0F/LQNYy7a+//mLhwoUsW7aMli1b0rJlS/bt22fVx7TbpA6gXTt9u83rXv2FXIK1OwMHDuTw4cMcPXqUZ5991uhwbKK4K7QUa9m9ffvg2jU9WPvee2HQIDh+nIoV4Ykn9CFyCda+rVmzhnPnzpGamsqZM2do27at0SEVSXp6Ojt27MjTk92rVy82F/K//+uvv+bYsWO8/fbbRXqcYn1IKkhOUnfLBzSznK7x776TK0xlWKdOncjOzmb37t3mrVmzZlZ9zPKR1F1thgqqI41DlHklWaGlWMvuhYToMgsvvKC7u5csgUaN4I03eKh3KgC//iqXYEXpc/78+XxLtPj7++dpMzmOHDnChAkT+OGHH3AqYqH6Yn1Iys/Vq3Dliv46v546gHvu0bdXroAs3SaKwa6TumbNwNUVLl9z5+iaYzcGoApRRoWEhBAWFpZr3+1WaCn2snuVKunli3bvhh49dGmFadO496VmuLkpoqN1h54QpVF+Pdn59WJnZWUxZMgQpkyZQv369Yt8/8X6kJQfBwf44Qf4+GO9kkR+XF31zypUkKROFItdJ3XOznpoEEiZOlE6JScnm7vlQZcs2b17t3lg98SJExk2bJj5+FGjRnHq1CnGjx9PVFQU8+bNY+7cubzyyiuWD65pUwgLg2XLoG5dPLq2pWdP/eb466+Wfzgh7kTlypVxdHTMtyf71t47gCtXrhAREcGYMWNwcnLCycmJqVOnsmfPHpycnPjjjz/yfZxif0jKewcwZAiMG6cLqxbk4kW91a5dvPsX5ZpdJ3Vw0yXYbegZfbKyhChFIiIiaNWqFa1atQJg/PjxtGrVirfeegswfoUWTCY9aPvAAfj8c/r317tvWc5ZCMO5uLgQHBycpyc7LCws31IS3t7e7Nu3L9d4p1GjRtGgQQN2795N+/btbRV6/hwdjX18USbZZfHhm+UkdX8vi4P5DfVYof/8x9ighLiuW7du+RZRzjF//vw8+3JWaLEpV1dwdTUndX//rUhIMBU4JEgII4wfP56hQ4fSpk0bQkJC+PLLL4mOjjavYjRx4kRiYmL49ttvcXBwoGnTprnO9/Pzw83NLc9+izp8GA4ehHr19HhVISyo3PTU7Yr1Iz3pqsyAFeIOVPvjO1o57UMpU56Vd4Qw2uDBg5k+fTpTp06lZcuWbNy4kdDQUGrVqgXk7fk2xLJluvf7v/8t/LhPP9WLmf/4o03CEvbB7pO6unX1WNP0TEf20lxfh7VUkVYhyhsvL/pnLgVg5QqZTS5Kn9GjR3Py5EnS0tLYsWMHXbp0Mf8sv7XJbzZ58mTz+FarKaxG3c0OH4Z16yAy0rrxCLti90mdyXTTuDr3bno6+Z49hsYkRJnVty8DfPSyS2tWZcua40IUV1GTupwSRRcuWDceYVfsPqmDm5K6ivfrL+QSrBAl4+JC8JNNqUocyVed2LDB6ICEKGMkqRNWVL6SuvQW+gtJ6oQoMYennqQfvwHw66JrBkcjRBlz9qy+LWpSV8Dyf0Lkp1wldQfPVyYRb0nqyqhLly4xZcoU4uLijA6lfGvZkv61DwCwcnGarC5RhkmbMoD01Nmt0tCeykVS5+en6zcqZWJH8HPw1FOQmWl0WKKYxo4dy/bt23n++eeNDqXc6/l8PVy5xokLPkRFGR2NKClpUzamlDmpU1X82LuXgselSlJX5pSG9lQukjq46RLsI/+DKVOgiOv8idJhxYoVJCcn8+uvv+Lr68sPP/xgdEjl2l1PPUr3mscBWV2irJI2ZYDsbPj2W5g+nR9+r0qLFvq96ejRfI6tXFnP9JOu8DKhtLSncpPZtGsHP/8sy4WVVQMHDmTgwIFA/gV5hY1VqUL/16qweoxeXeK114wOSBSXtCkDODrCE08AMO9evWvPHggOhm++gQcfvOnYWrV0+S1ZWaJMKC3tqfz11G0Dzp2DQmoVCSFuL2d1ic2b5QqREMURH4955nibNpCUBA89BK+/ftPIIJNJEjpRbOUmqWvdGhwcICYGYvxa6krdqalGhyVEmVWrFjSrm0J2Nqx+f6/R4QhR+p04AcuXs2hGLNnZ0L69/lD08sv6x//7H/TsqZM+IUqi3CR1np6Qs5zf9or3649D27cbG5S4rQULFuDm5kZMTIx538iRI2nevDmJiYkGRiYABlTUM8lX/nDF4EhEUUmbMtDq1fDggyz88jIAgweDszN89BH88gt4eekevFatYNMm9LiGnj3h778NDVsUrLS1p3KT1MFNl2D9brpuVA4pBSkpxmzFHfP7+OOP06BBA6ZNmwbAlClTWLNmDatWrcLHx8cKvx1RHP1fDAJg9ZkmZMSX32uw0qZEkSQkcIZq/HmhMQCPPnrjR488ovsZmjTRPXXdu8MXy/zh9991D185Iu3pDqgyIDExUQEqMTHxju7nyy+VAqXurXdKf9G/v4UiLN2uXr2qIiMj1dWrV5VSSiUn66dvxJacXPz4V65cqVxdXdW7776rKlSooPbv35/n5/Xr11d33323mjNnTrF+Fzez1OustLPk88zMVKqy00UFSv3x4hILRFf65fcasrc29eCDDypfX181aNCgYv8uckh7ysfo0epDXlagVKdO+R+SnKzUP/6h/7auDmkqDWelPvvMskGXMvb8HhUdHa26du2qGjVqpJo1a6Z+/vnnIv8eblbU11mxe+o2btzIgAEDCAwMxGQysWzZskKPDw8Px2Qy5dkOHjxY/Az0DuX01G2PqUY2Jt1TJ9PFS73+/fvTuHFjpkyZwtKlS2nSpIn5Z5mZmYwfP54//viDnTt38t5773Hx4kUDoy1fHB2hX2tdaPPXhSkGRyOKqrA2Bbre1rfffmtQdHYsIYGFDAb0pdf8eHrqqifOzpCW7cJZ/GUmUilXWHtycnJi+vTpREZGsm7dOl5++WVSUqz3v7LYJU1SUlJo0aIFTz31FIMGDSryeYcOHcLb29v8fZUqVYr70HesSRNwd4crqY4ccmlOo4t74PBhaNDA5rEYycMDkpONe+ziWrNmDQcPHiQrKwt/f/9cP9u2bRtNmjShWrVqAPTt25c1a9bwxPWyAcL6+j9XnW+2wa8Jbflw3z5o1szokGzOntoUQPfu3QmXCgEWd+KUA9toj4Mpm0ceKbhPxcEBqlaF06chlkBqlLOkzp7aU0BAAAEBAQD4+flRsWJFLl68iKenpyXCzaPYSV2fPn3o06dPsR/Iz88PX1/fYp9nSU5Ouh7Qn3/CttqP0ejwHt1bV86SOpNJfxosC3bu3Mmjjz7KF198wU8//cSbb77JL7/8Yv55bGysOaEDqF69eq4Bq8L6ej3ijfPIDA6rBhz+eBr155W/pM6e2pSwnp9PtAWga8tEqlatUOixgYE6qYsjoNyt/2qv7SkiIoLs7Gxq1KhhtXhsNlGiVatWBAQE0KNHD9avX1/osWlpaSQlJeXaLMU8WaLO4zB/PvTqZbH7FpZ18uRJ+vXrx4QJExg6dChTp05l8eLF7Nixw3yMyufyuclksmWY5Z63N3RtfhmAX891MDYYUaiitClhPQsv3QfA4IFXb3vs9c4dYgmUy6+lVHHa04ULFxg2bBhffvmlVWOyelIXEBDAl19+yeLFi1myZAkNGjSgR48ebNy4scBzpk2bho+Pj3mzZFZrTurO14Enn4SbenlE6XHx4kX69OnDwIEDeeONNwAIDg5mwIABTJo0yXxctWrVcvXMnTlzxtzVLWyn//DKAKxM7m5wJKIgRW1TwjqOHIFdWS1wdMhm0HDv2x4fGKhv4wjUK0uIUqU47SktLY2HHnqIiRMn0rFjR6vGZfVlwho0aECDmy5vhoSEcPr0aT744AO6dOmS7zkTJ05k/Pjx5u+TkpIsltjlJHV79sC1a+DmZpG7FRZWsWJFovJZKX758uW5vm/Xrh379+8nJiYGb29vQkNDeeutt2wVpriubz8T416Gv/7SY2HuusvoiMStitqmhHUsXKhve97nQOXat28g5p66p96Aef+yYmSiJIranpRSDB8+nHvvvZehQ4daPS5D6tR16NCBI0eOFPhzV1dXvL29c22WUru2Xic5IwP2fPk3zJmjF1kWZZKTkxMffvgh3bt3p1WrVrz66qtUqlTJ6LDKnbvvhqAg3a42fGH7me3Csnr37s2jjz5KaGgo1atXZ7sUar9jOUldQbNeb2XuqYsvV+Vk7c5ff/3FwoULWbZsGS1btqRly5bs27fPao9n9Z66/OzatcuwS2Qmk+6tCw2FbeN+oL36FAYM0FONRJl080LKwhgmE/TqfJUvTriz9tUw+o0MAClkW2atWbPG6BDsSmQk7N8Pzk7ZPFj3AHD7yUTmnrpY68YmrKtTp05k27DjqNgfAZKTk9m9eze7d+8G4MSJE+zevZvo6GhAXzodNmyY+fjp06ezbNkyjhw5woEDB5g4cSKLFy9mzJgxlnkGJWAeV+feTX9x8qRRoQhhN3o94A7AWtUT1q0zOBohSo+cXrremb9RYerLRTrH3FN3MFEvFXbunJWiE/ak2EldREQErVq1olWrVgCMHz+eVq1amccxxcXFmRM8gPT0dF555RWaN29O586d+fPPP/ntt994+OGHLfQUis+c1Kk2+otytgSLENZw773gYMrmII2I/nmr0eEIUSooddOlVxaCn1+RzsvpqUtI8yHj9w2QkGClCIU9Kfbl127duuVbRiLH/Pnzc33/2muv8dprrxU7MGtqq0sFcfhqTS7hSwXpqRPijvn6QvtGSWyJ9CVsdRYjlNLXZYUox/bsgUOHwNUxg4FZK8Dv6SKdV7myrq2amQln8ad6OatVJ0qmXI7ArFwZ6tTRX0fQRi6/CmEhvR7Ss/rWJrWH60M0hLClmTNnEhQUhJubG8HBwWzatKnAY5csWcJ9991HlSpV8Pb2JiQkxOLjCXN66fpW24s3V4rcU5ezqgRcL0AstepEEZTLpA5uXIL9m/blJqkrrIe1vJDfgXX16qs7/9fRk6xfVxkcjXXJa6n0/Q4WLlzIuHHjmDRpErt27aJz58706dMn15Cgm23cuJH77ruP0NBQduzYQffu3RkwYAC7du2ySDy5Lr1Wuj7OtIhJHdwYV1deChCXtteTrVni+ZfbpK51a327j2Z2n9Q5OzsDkJqaanAkxsv5HeT8ToRltWsH3m7pXKQSO385ZnQ4ViHt6YbS1p4++ugjRowYwciRI2nUqBHTp0+nRo0azJo1K9/jp0+fzmuvvUbbtm2pV68e//nPf6hXrx4rV660SDwREXrItocH9Df9pnfms9ZuQXLG1dl7T52joyOgx+CXZ5ZoT4aUNCkNcuohH67ZE+ba96oSjo6O+Pr6knB9oK2Hh0e5W0pLKUVqaioJCQn4+vqa/4kIy3Jygh7ds1i6CtZ2n0ZbowOyAmlPpbM9paens2PHDiZMmJBrf69evdi8eXOR7iM7O5srV65QsWLFAo9JS0sjLS3N/H1hy1jm9NL17w+ef1/vLSxpT50dj6lzcnLCw8ODc+fO4ezsjIND+epvsmR7kqTufCXUPZ2w93/JVa8Pzkgo5zOofH19zb8LYR29BrrrpG63H/a6+JS0J600tafz58+TlZWF/y09Yf7+/sTHxxfpPj788ENSUlJ47LHHCjxm2rRpTJky5bb3lZ0NP/+sv378cWDwRxAToyt1F9GNnrpAuGa/rzWTyURAQAAnTpzg1KlTRodjGEu0p3Kb1AUFgaMjpKbqdla9utERWVdOo/Hz8yOjnK4j6OzsXCp6FOxdr176dvNmuHIFvLyMjccapD2V3vZ0a6+pUqpIPakLFixg8uTJLF++HL9CetOKs4zld9/B4sXQpw/gVvwyXuaeuj4j4DP77npwcXGhXr165fYSrKXaU7lN6lxc9AzYI0fg8Me/UX1oNWjZ0uiwrM7R0bFU/iMW9qNOHahbR3HsuInwh2cwYPUL+hOUHZL2VHpUrlwZR0fHPL1yCQkJeXrvbrVw4UJGjBjBL7/8Qs+ePQs91tXVFVdX19vG4+AAXbvqraTMPXXx9p3Q5XBwcMBNFmS/I+XrwvUt6tfXt4c/Wgm//WZsMELYkV736WVx1q4z6dHiQliZi4sLwcHBhIWF5dofFhZGx44dCzxvwYIFDB8+nB9//JF+/fpZJ7izZ2HZMti5s1inmXvqZKkwUUSS1AGHaGD3M2CFsKVe9+veq7X00gstC2ED48eP56uvvmLevHlERUXx8ssvEx0dzahRo4C8y1guWLCAYcOG8eGHH9KhQwfi4+OJj48nMTHRsoH9/Tc89BA8/3yxTjOvKnE2m8wHBlk2JmGXynVSZ54sQX1J6oSwoO7dwdEhm8M04ORSy9T8EuJ2Bg8ezPTp05k6dSotW7Zk48aNhIaGUqtWLSDvMpZffPEFmZmZvPDCCwQEBJi3l156ybKB5UyoKcbMV4AqVcDRUaFw4OzKbXr2hRCFKLdj6uCmy6+S1AlhUT4+0CE4k7+2uxC2z59nzp4tVn0uIUpq9OjRjB49Ot+f3bqMZXh4uPUDghIndTmrSsTEQJzyp9rly1BIuRUhynVPXU5Sd4Ig0k/GyqcgISyoV38X4Pol2NWrDY5GCAOVMKkDCAzUkyTKy6oS4s6U66QuMBA8PRVZOHE8s4aMRhXCgnJKm6yjJ1m/SVInyrE7SOpyrSphxwWIhWWU66TOZIL69fWnILkEK4RltWkDvl6ZXKYCEaeqGB2OEMY5e1bflqinTt9KT50oinKd1MFNM2Cf+xiaNzc2GCHsiJMT9Ljv+izY/jMMjkYIA1mqp06SOnEb5T6pM8+AzaoL3t7GBiOEnel9v+4JX7vW4ECEMNK778Knn0KTJsU+9UZPXTVITrZwYMLelPukzjwD9rCxcYjya+bMmQQFBeHm5kZwcDCbNm0q8Njw8HBMJlOe7eDBgzaMuOjuu0/fbtkCSXEpxgYjhFEGDoQxY25kaMVg7qlr3RdeeMHCgQl7I0ldzuXX3akwd66xwYhyZ+HChYwbN45Jkyaxa9cuOnfuTJ8+fXLV0srPoUOHiIuLM2/16tWzUcTFU7s21K+vyMqC9TWfhNOnjQ5JiDLlxqoS5WOpMHFnJKm7ntSdTfIg8d8y7kfY1kcffcSIESMYOXIkjRo1Yvr06dSoUYNZs2YVep6fnx9Vq1Y1b6V5/dFeva5fgs3sDsuXGxyNEDZ24QIsWQLbtpXodPOqEgmQmWnBuIRdKvdJnY8P+FfJAuDIaXfIyjI4IlFepKens2PHDnrl1P64rlevXmzevLnQc1u1akVAQAA9evRg/fr1hR6blpZGUlJSrs2Wcp7eWnrB0qU2fWwhDLd3LwwaBMOHl+j0nFUlsrMh4YUplo1N2J1yn9QB1G+gfw2HsupKrTphM+fPnycrKwv/W1Za8Pf3Jz4+Pt9zAgIC+PLLL1m8eDFLliyhQYMG9OjRg40bNxb4ONOmTcPHx8e81ahRw6LP43a6dQMnJ8VR6nE8PFpm8Iny5Q5mvgI4OoK/bxoAcX9EWioqYackqQMaNLypVt2JEwZHI8obkyn3WBmlVJ59ORo0aMAzzzxD69atCQkJYebMmfTr148PPvigwPufOHEiiYmJ5u20jce1eXnBPffo57Mquxf8+qtNH18IQ91hUgcQ6K+vIMVedLdERMKOSVKHrAErjFG5cmUcHR3z9MolJCTk6b0rTIcOHThy5EiBP3d1dcXb2zvXZmt9++rbUPrq8UVClBcWSOoCri8VFpfoAUpZIqo7c/my0RGIAkhShyR1whguLi4EBwcTFhaWa39YWBgdO3Ys8v3s2rWLgJzR1KVUnz76dj3dubZmA6RIeRNRTliip66mMwCxWX7Gt52vv4aGDSE83Ng4RL4kqeOmAsTUR504aWgsonwZP348X331FfPmzSMqKoqXX36Z6OhoRo0aBehLp8OGDTMfP336dJYtW8aRI0c4cOAAEydOZPHixYwZM8aop1AkTZtCtWqKq3iw4ZnvjQ5HCNu5gyXCcgTUcAIMXFUiLU33zmVnw+zZ+jn16AH/+Y/eJ0qNYid1GzduZMCAAQQGBmIymVi2bNltz9mwYQPBwcG4ublRp04dZs+eXZJYraZOHXBwUCTjRdyYd40OR5QjgwcPZvr06UydOpWWLVuyceNGQkNDqVWrFgBxcXG5atalp6fzyiuv0Lx5czp37syff/7Jb7/9xsMPP2zUUygSkwn69tWXkEId+oOnp8ERCWEjluipq6bbjmHrvy5aBAEBxL/4LnE/rid72HCdzE2aBP37y+SnUqTYSV1KSgotWrTgs88+K9LxJ06coG/fvnTu3Jldu3bxxhtvMHbsWBYvXlzsYK3FxQWCgq5PlrhSui9jCfszevRoTp48SVpaGjt27KBLly7mn82fP5/wmy5zvPbaaxw9epSrV69y8eJFNm3aRN+cAWulXM4l2FWrjI1DCJt680347DNo3brEd5Fr/VcjxrPNncuOa42pPmsSgXd74LHwaxpWvcT9Dmt4ftUA3qv7JT//+7DUFi8FnIp7Qp8+feiT89+5CGbPnk3NmjWZPn06AI0aNSIiIoIPPviAQYMGFffhraZBAzh2DA4d0iUYhBCW1aMHODvDkSNwdPL33N23PrRrZ3RYQlhXMd4vC2JeVSIgGO618coSx47B+vXMYTZZSvcDpaXBoXhfDnG9CGUi8Ca4/lvx++8m7rnHtiGKG6w+pm7Lli15iqv27t2biIgIMjIy8j3HiGKp5skSX/95YwyEEMJivL2hUyf99aopf8uyfEIUUU5P3dmzJtvXx//6a9Jx5menIYDuaT9+HP74QzfhN19L4/9qbqRR5XOkpZkYNAjOnLFxjMLM6kldfHx8vsVVMzMzOX/+fL7nGFEs1TxZ4u9LEBVl9ccTojzKVdpk+XJZwUXYt6QkWLwYbrNCzO34+YGDgx7GljNEzyaysmD+fFbRh0uZXgQGwn33QVAQdO8OTz8NU99z5buTndl2rBLNm+s+kYcegqtXbRinMLPJ7Nf8iqvmtz+HEcVSc3rqDtFAypoIYSU5V6LC6cbVs4mwdauxAQlhTYcPwyOPwGOP3dHdODqCv881AOKmL7REZEWzZg3ExPC9y9MAPPGEjiUPk4m7vB1YtgwqVcwmIgKefTqzVJTUK2+sntRVrVo13+KqTk5OVKpUKd9zjCiWmpPUHacOGceiCz9YCFEijRtDjRpwDXfC6SaFiIV9s8DM1xwBnokAxG614fvTvHkk4s3KLN3F/o9/FH54UG3Fz1XG4Egm3//kxMcf2yBGkYvVk7qQkJA8xVXXrl1LmzZtcHZ2tvbDF1m1auDhnE4WTpzYn2x0OELYJV3aRH8dSl9YurR0VMgXwhosmNQFVkoHIO68Dd83Z8xgyaAfSctypnFjaNnyNsebTNw761E+No0H4NVXslm71upRipsUO6lLTk5m9+7d7N69G9AlS3bv3m2upXVrsdRRo0Zx6tQpxo8fT1RUFPPmzWPu3Lm88sorlnkGFmIyQf1AXan70JH8+peFEJaQcwk21NQPdeIE7N1rbEDCrsycOZOgoCDc3NwIDg5m06ZNhR5v1Tqqluypq6o//MResuH6r4GBfH+pH6B76QoYMZVb9+6MmeLHU8wjWznw+KOZHD1q3TDFDcVO6iIiImjVqhWtWrUCdEX8Vq1a8dZbbwF5i6UGBQURGhpKeHg4LVu25J133mHGjBmlqpxJjvp360Hbh2OkMKoQ1pJT2uS4qsMRx0Zw/QOiEHdq4cKFjBs3jkmTJrFr1y46d+5Mnz59cr0n3czqdVQt2VNXXb9dx125647vq6hiYmD9ev31kCFFP8806Q1m9VxCB7ZwKcmJBwZkceWKdWIUuRW7Tl23bt3MEx3yM3/+/Dz7unbtys6dO4v7UDbXoJkr/A6HL/tBRoZ+5xFCWNRdd0GXLvD777DqnQjqP+lhdEjCTnz00UeMGDGCkSNHAnpZvTVr1jBr1iymTZuW53ir11HNSepuqQBREgG1rq//erXCHd/XbW3ZAm+9xU/VPkSp5nTqBLVrF+N8Bwdcf/yaxc3vp038SiIPBjJ0qOKXX0xFfls9dkxPHF60SNePdXbWCwXkbDnfu7tDkyYQHAxt2kCzZuDqWpInXXxXr8Lp0xAdrbecr+Pj4do1vV29qrh2VXEtzYFr13SNP1+fbAICTFQNMFG1KuYtIEDfNmumn1tJFDups2f1W+keukPthxYwxUcIYQl9++qkLjTcg5cmGh2NsAfp6ens2LGDCRMm5Nrfq1cvNhdQUqSgOqpz584lIyMj33HfaWlppKWlmb8vtI6qJXvq6uoPP3FZVSA9veTv+kXx1Vewbh3fV/QBbj9BIl9VqhD4yycs7foIXbLXs3y5K76+0LYthITc2KpUuXHK4cM6iVu0CHbtKvpDbdmiQwZwdsikecUztKl0guCKJ7knKJZG372ByeH6teP9+3VtmCpVwNdXv9c7OOjNZMp9jTk9Ha5cMW+njqSzdK0ny/+syP5ob85fcStCdKbr2w0XLzpw/ETBZ5w9W/KXjCR1N6nfUHdvH452t1GxFyHKpz594J//hA0bIDUVPBzTbPfxWtil8+fPk5WVlW9d1FsrMOS4XR3VgIC8y0ZOmzaNKVOmFC2oV16BgQN19nKHAu7WnQ6xBMLFi7pLxxquXIGFC4mkEbsv1sLZGR59tIT31akT7Ze8zncXMxn1T1cuXdJtfsOGG4fUrasTvQMHYN++G/sdHXUtvEce0T37KiubjAOHSd+4lfTY86SPfYX0dEhMhD3jviYiLpAI2nAxuxI7ztdmx/na+o62QGA49Ox5fftiCgF/Lco/Xi8vXVvwOtWjJ5F/XmApD7GUh9hJcJ5TPD2hVi2oeW4HNc7toCbRBBCHJym4ce3Gtmkdbnc54ewMl54cR/yOM8RTNc+WUD2YSpVKvmqIJHU3ySlrEhenX9deXsbGI4S9athQ/yM8dQrWtxpPvyrb4M8/jQ5L2IH86qIWVBO1oOPz259j4sSJjB8/3vx9UlJSwQXyczIJC8gZU3fWMZCsKiasdi3p558hJYUfKo6Fi/oDWAHVx4rmgQd4DHjkSYiKVGzp+w5bnLuwJbMtUdGeHDumL7UCODnpX9cjj8ADA7KpfOEQ/P03/He9rpmXs9qTyQRfPWUO7LFL6RDzF8phKyeTKhIRF8iO2EC2nQlky+lqxMY68e238O23AL/QxDGK+7LW0IbtKEyk46K3DB/S3tcddBcuwG+7fuQw1c1PxYEsOnvu5CG/zXStdpRaSz7Gt7KT7txbewHOukPFEN0DeNddNzZPT/B0vNFh9/eHuhc3Nvambbte1/eTNnfwy5akLhdfX/CrkE7CJRcOz/qd4Nd6GB2SEHYpp7TJrFkQergu/Q5/rD9N5dMzIkRRVK5cGUdHx3zrot7aG5ejpHVUXQ3oVfbz0+0mK8vEuXPW66hj7lyyMfGDegIo4aXXfDg4QJOrETQ5/TYjr++7VLMFf3d7jR3+falew4GBj3tQocr1tOT5F+DWmciennqm1f336wwwx3PPATpnCrq+5XQuXrsGf/0FYWGwbh3s3AkHshpxgEZ5g7wGvHbzjuq4uCjuu8/EQw/BwIGOVKnSFmib99xbLuMXytFR/68LCNCDAS1Ikrpb1Pc5S8KlGhxeeUiSOiGsqE+f60mdy0Oo9DGYli+HUaOMDkuUUS4uLgQHBxMWFsZDDz1k3h8WFsYDDzyQ7zkhISGsXLky177SWEcVdA7j768H4cfFWSmpi4yELVvY7NCFU5d88PKCAQMseP9t2sC2bXrR2AULqBC9h/u//Qf3m0y6XmWnnVBFV9agZUs9CyI4GDp2hN694Z57ij1Mw81N54E9rr+dnz+vZ/SGhekJGC4u+i5zJmDkfO3urh+uTx8TNlj/wHJUGZCYmKgAlZiYaPXHGtH9mAKlJtf8yuqPJUoXW77OjFRanmdyslIuLkqBUlE0UKpfP0PjEZZlxOvsp59+Us7Ozmru3LkqMjJSjRs3Tnl6eqqTJ08qpZSaMGGCGjp0qPn448ePKw8PD/Xyyy+ryMhINXfuXOXs7KwWLVpU5Me05fNsVSNBgVK/vf23dR7g1VeVAvVc7VUKlBo+3DoPo5RSKiVFqW+/VaprV/1PAJT6/vsbP09NVSo93YoBlC1FfZ1JT90t6jd2gvVw6NydDCIQQtyOpyd07ao/Ma+iDw3/+ELXCHC3YXFVYVcGDx7MhQsXmDp1KnFxcTRt2pTQ0FBq1aoFFFxH9eWXX+bzzz8nMDCw1NZRBQhUseyiCrF7z1vnAe6+m/S+D/LLpnsBy116zZeHBwwdqrezZ3UXma/vjZ/L/4ESkaTuFvXb6H7Ww1erW3/auBDlXJ8+OqkLdX2Il69O19dFctYRE6IERo8ezejRo/P9WVmuowoQUOEanIG4syWfHVmoZ59lddVnuRiqh3t1726dh8nDAnX8hCaFO27RoJ2uy3OY+qjo0wZHI4R9y8nfNmaEkIwnhIYaG5AQpVhglQwAYs9bb6LG99/r2yeekHKtZZEkdbeoU9eEA1lcwZv4HTFGhyOEXatfH4KCID3bmfX3vGmx8g9C2KOcyeFxiVZYheXiRZKOnGXlSl3S5f/+z/IPIaxPkrpbuLpCbXddBfxwRCGVwoUQdyyntAnAysavw4MPGhqPEKVZYA3ddRabbIXpmN99x5L6r3PtmolGjfTkU1H2SFKXjwZtddXhw3XuNzgSIexfTsmElSv16j1CiPwF1NaXXePSrLD+64EDLEeXfhkyJPdqWaLskKQuH/Vb3QXAoWMyj0QIa+vWTa/eEh8PEb+cgAULjA5JiFIpsJ5eKiw+s7LlPwAdOMA22gG6TYqySZK6fDRooG8PHzY2DiHKA1dXPQsWYPnjP+oSB5cvGxqTEKWRf8e6mEyKTJw5b8mqJkoRs+8isVTDwUHRqpUF71vYlCR1+ahfNRGAw5vOGhyJEOXDwIH6doXro5CVBWvXGhuQEKWQk5sTfn76umhsrAXvODaW7Vd0b0aTxgpPTwvet7ApSery0eBu3a999HIl0i4kGxyNEPavb19dPmF/Wn2OEwS//WZ0SEKUSuYZsHEWvNMDB9h+fT3Ttu0kLSjL5K+Xj2pNK1DBdIksnIhaE337E4QQd6RCBejSRX+9goGwapXMmhAiH4HJhwCI3W7Bkls3JXXt2lnuboXtSVKXD5MJmnufBGDvxkvGBiNEOZGz5vpyx4fh3DnYvt3YgIQohQIuRwEQd+SKxe5TBbchwrUTAG3bWuxuhQEkqStA8xo6mdu7WxkciRDlQ864uk3Z93CRCnIJVoh8BHqnABBrwY66Y4GduZTmgasrNGtmufsVtidJXQGaN8kCYO+JuwyORIjyIShIv6FkKUdC6Qvr1hkdkhClTkClNADizlluDa+cTvGWLcHZ2WJ3KwwgSV0BmnfUBYj3XqhucCRClB/mWbCd/idJnRD5CPTTHQ6xF9wsc4dJSWxbqrv95NJr2SdJXQGa9KqGiWzOZlUmIS7L6HCEKBdyxtWt2h1ImqMV1rcUoowLCNQlTeKSLFR3ZPNmtv9yApCkzh5IUlcAz/rVuLtWJgD7Ii3XzS2EKFhwsC7ZkJwM4eFGRyNE6RNYU690FJfqbZEJ4pl7I9lJa0CSOnsgSV1BHBxo3sYFgL17DY5FiHLCweHGJdjlE7dAhw6QlmZsUEKUIv613TGRTaZy4sKFO7+/yM2XuYoHXi5p5tWURNklSV0hmjfXt5LUCWE75nF1e2qh/v4b/vzT2ICEKEWcBw2kShX9tSVWldi+V3detKmXiINkBGVeif6EM2fOJCgoCDc3N4KDg9m0aVOBx4aHh2MymfJsBw8eLHHQttLcWdcD2rvGkqW7hRCFufde8PSEmOxAfVlISpsIcYO7OwGB+q37jleVUIrtp/USFW3bS0ZnD4r9V1y4cCHjxo1j0qRJ7Nq1i86dO9OnTx+iowtfeeHQoUPExcWZt3r16pU4aFvJKUB8IL4imZnGxiJEeeHmBr17669XMFCSOiFuUaOGvj1x4g7vKDqabZmtAGh7n+8d3pkoDYqd1H300UeMGDGCkSNH0qhRI6ZPn06NGjWYNWtWoef5+flRtWpV8+boWPonH9TuXANPkklTrhw5LEWIhbAV8+oSPAiHD8PRo4bGI0SpkZlJszOrANgTkXFHd3VtVxT70NWG24Y43XFownjFSurS09PZsWMHvXr1yrW/V69ebN68udBzW7VqRUBAAD169GD9+vWFHpuWlkZSUlKuzQgODerRjH0A7N0gy4UJYSt9++pJE3towSlqSm+dEDkcHWl54AcAdu+8s+mvu1ULMnGmitdVata0RHDCaMVK6s6fP09WVhb+/v659vv7+xMfH5/vOQEBAXz55ZcsXryYJUuW0KBBA3r06MHGjRsLfJxp06bh4+Nj3mrk9DXbmqsrzb1PAbD3T2MSSyHKo8qVoZNeilIuwQpxM5OJlhWuvy9FOZN1B2VUt5/R4+nadXHHZLJEcMJoJRoZabrlr6+UyrMvR4MGDXjmmWdo3bo1ISEhzJw5k379+vHBBx8UeP8TJ04kMTHRvJ0+fbokYVpE85qXAdi7Vy6/CmFL5lmwToOgXj1Q0gaFAKjrn4wnyVxNc+DIkZLfT87yYFKfzn4UK6mrXLkyjo6OeXrlEhIS8vTeFaZDhw4cKeSV6Orqire3d67NKM2b6TeSvSd9DItBiPIoJ6kLpyuX3/0c6UoQhbl06RJDhw41X+EZOnQoly9fLvD4jIwMXn/9dZo1a4anpyeBgYEMGzaMWEvUCbEyxyoVaY6utbV7dwnvJDub7esuA9C2tayaZC+KldS5uLgQHBxMWFhYrv1hYWF07NixyPeza9cuAgICivPQhml2j04oo5MrUsj/ByFKrDglggA2bNhAcHAwbm5u1KlTh9mzZ9soUtuqVw8aNYLMTBOrVxsdjSjthgwZwu7du1m9ejWrV69m9+7dDB06tMDjU1NT2blzJ2+++SY7d+5kyZIlHD58mIE5nyZKs7p1acluoORJXeK+aA7G+QLQto30gtsNVUw//fSTcnZ2VnPnzlWRkZFq3LhxytPTU508eVIppdSECRPU0KFDzcd//PHHaunSperw4cNq//79asKECQpQixcvLvJjJiYmKkAlJiYWN9w7l5qqatbIVqDUxo22f3hhO0a8znLa05w5c1RkZKR66aWXlKenpzp16lS+xx8/flx5eHiol156SUVGRqo5c+YoZ2dntWjRoiI/pqHtqZgmTFAKlHr88WylNm9WKj7e6JBEEdnydRYZGakAtXXrVvO+LVu2KEAdPHiwyPezbds2BRTY/vJjSHv6+GM1m2cVKNW7d8nu4vd/b1agVC3nM5aNTVhFUV9nxR5TN3jwYKZPn87UqVNp2bIlGzduJDQ0lFq1agEQFxeXq2Zdeno6r7zyCs2bN6dz5878+eef/Pbbbzz88MN3mo/ahrs7zVvoyz6ysoSwtOKWCJo9ezY1a9Zk+vTpNGrUiJEjR/L0008XOka1LMspbfLromukdOwJ335rbECiVNqyZQs+Pj60b9/evK9Dhw74+PjctjLDzRITEzGZTPj6+hZ4TKmoztC48R331G3/Uy+/17aqcWPWheWVaKLE6NGjOXnyJGlpaezYsYMuXbqYfzZ//nzCb1qJ+7XXXuPo0aNcvXqVixcvsmnTJvr27XvHgduSLBcmrKEkJYK2bNmS5/jevXsTERFBRkb+NatKxZtQCbVvD3XrQnKmO0t4GH780eiQRCkUHx+Pn59fnv1+fn4FVma41bVr15gwYQJDhgwpdBx3qajO0KULzU7+ioMDnD0LRXyKuWyP9ACgbaMUCwcnjCTrghRB81MrAdi73gKrJwtxXUlKBMXHx+d7fGZmJufPn8/3nFLxJlRCJhM8+aT++hvTcN0tERVlZEgCICUFfv4ZFiyw6sNMnjw532Umb94iIiKAvFUZoPDKDDfLyMjg8ccfJzs7m5kzZxZ6bKmozuDmhketKtSvr7/ds6f4d7E9Xv8faNfJxYKBCaNJUlcEzbN2AbDv5F1k31mtRyHyKE6JoIKOz29/jlLxJnQHcsa6/6G6E00NqycS4jb+/BP8/GDwYPjXv6xaambMmDFERUUVujVt2pSqVaty9uzZPOefO3futpUZMjIyeOyxxzhx4gRhYWG3rbZQmqoztGypb4t7CfZsXDbR6QGYyCa4X1VLhyUMJOuCFEG9dhVw/ekaKRlunDihLwcJcadKUiKoatWq+R7v5OREpUqV8j3H1dUVV1dXywRtgNq1oVs3CA934DuGMunHH2HKFClxYguZmZinHvfvr29btIDsbAgKgsceg7Q0vWCvFVSuXJnKlSvf9riQkBASExPZtm0b7dq1A+Dvv/8mMTGx0MoMOQndkSNHWL9+fYFtqFT6+Wda7krhJ54qdlK3/dezQAANTYfwalHfGtEJg0hPXRE4NW1IEw4AMq5OWE5JSgSFhITkOX7t2rW0adMGZ2dnq8VqtOHD9e03puGoY8duVE0V1pGaCp9/ruvKDBgAb75542deXrB/Pxw7xoVXphF53DoJXXE0atSI+++/n2eeeYatW7eydetWnnnmGfr370+DBg3MxzVs2JClS5cCkJmZySOPPEJERAQ//PADWVlZxMfHEx8fT3p6ulFPpehOnaLloZ+A4vfUbT+uk9e2HZ2hDKzDLopOkrqiaNjQXOhx7y4p0igsZ/z48Xz11VfMmzePqKgoXn75ZaKjoxk1ahSgL50OGzbMfPyoUaM4deoU48ePJyoqinnz5jF37lxeeeUVo56CTQwaBJ6ecETVYysdYPlyo0OyT5cuwbvv6u7RMWPg5Em9ZluXLpCRQXa2zqen/lCXkI4m/PzgueeMDlr74YcfaNasGb169aJXr140b96c7777Ltcxhw4dIjExEYAzZ86wYsUKzpw5Q8uWLQkICDBvxZkxa5ibZsAeOqSHORbV9j16HF3bx++2QmDCSHL5tSiqV6e5yyFIh31/pwDGjaEQ9mXw4MFcuHCBqVOnEhcXR9OmTQstERQUFERoaCgvv/wyn3/+OYGBgcyYMYNBgwYZ9RRs4q67dGL37bcwf8BiQt6RcUAWN2cOjB8Pycn6+9q14dVXuTDwKdZucif0aVizBs6dy31aSoq+Sutk8LtJxYoV+f777ws9Rt00/q927dq5vi9zGjfGnwSqEke8CmD/fj1b/HaUkuXB7JkkdUVhMtG8dhIchr37pHNTWNbo0aMZPXp0vj+bP39+nn1du3Zl586dVo6q9HnySZ3ULdwYyPQ0cHc3OiI7U7OmTuiaNSNl3CSWOj7Ctz848vuL5Jog5uUFPXtC375w//1QvbpxIZdrtWqBuzstru4hngB27y5aUnfqFJw/D06O2bSofQWQJTDtiSR1RdS8pQMchqPxnqSk6EtBQgjb6dZN5x3R0bBiBQx+TMlkiTuxdCkkJpoHLGb37EX4Bzv5dl9LFo015bqc16wZ9Omjt44dwUWqYBjPwQEaNqTlrt2s4f4ij6vb/ncW4EiLrJ24XfEFf0nq7Il0OxVRlQUz8PcHpUwcOGB0NEKUPw4OkDO88JvXD0DDhnDtmrFBlUWxsfDww3obM4YjG2J54w2oHWSixyut+OYbndDVrQuTJ8PRo3qC2Hvv6cRaErpSpAQrS2wL08XH2zru1DOYhV2RpK6oHBxkZQkhDJaT1K051ZDYw1dg1SpjAypLsrNh9mxo1AiWLuVvx44Mqr6VBt0DmDYNTp8GX1898eGvv+DIEXj7bSnhVKo1bkzLu44B+n0pqwjz+LZv1Qe1rRYnM1/tkCR1xSBJnRDGqlcP7rkHsnHkB/4hy4YV1cGD0LUr6vnnCU26h65eO+iQ9RdLDjVFKRN9+sAvv0BcnM77OnaUK9tlwiuvUO/SNtzddRWaY8cKPzw9HXYc8QKgbTPp5bZHktQVlVI0X/UeAHu3pxkcjBDll3nZMJ5ErVgJZWgtW0OcO0dG6/Z8+2cQzU376UcoG6+0xtkZnnoKDhyA0FB45BGr1RAW1uLigqOTydzhcLtLsMuXQ3K6K4HE0Lijr7WjEwaQpK6oTCaap2wBYO8BB2uujCOEKMRjj4Gbm+IATdmR3hSWLTM6pFIrOxu+W12Fu51P8STfsl81wcsLXnkFjh+HefOgcWOjoxR3qqjLhX31lb59iq9xbCZ/eHskSV0xNGrujCOZXLriTEyM0dEIUT75+MBDD+lrg9/wpFyCvZVS8NVXbPruJO3b63GI0Um++Psrpk3Ts4fff19KkdiN8eNpufRtoPCk7uRJCAvTvRFPMw+aNLF+bMLmJKkrBtcmd9OQg4CMqxPCSDmXYBfwBOlhG/RgMAHx8RzvMZJHnvGly7DaRETounL//S+cPGliwgQ9GULYkZgYWiasAQpP6ubN09UbenRKo84P/9bFpYXdkaSuOBo1urFcmCR1QhimZ08IDIQLVOa3B+dI4Ujg8jfLeTVoEY3Wz2Qxj+Bgyua5Z7M5cgRef13Gy9mtxo1pxj5MZBMXB2fP5j0kK0sndQDPjHGFIUN0jSBhd+SvWhw3rwErSZ0QhnF0hKFD9dfzM/8PvMvv0n3q3Hnmtf+CesM78sG1MaTjSq+OV9iz14HZXzjg7290hMKqGjfGk1TquZ0GYM+evIesWQMxMVCpEjz4oG3DE7YlSV1x3JzU7SpCQSAhhNXkXIINDYX4eCiPs5eOhR2nZ7UoRmx7jvNUoVHlBEKXZ7D6Ty+aNjU6OmET12e6tMyMAPK/BDtnjr4d5rkY188+LJdtpbyQpK44vL1p3kx/efCIA2lS2UQIwzRqpOupZWbClOfjoXNn2LzZ6LBsIjMTPvgAmj0QxB8ZnXE3XeWDl6LZG+dHn4HOUmOuPKlXDxwdC0zq4uNh5Ur99Yjot+C776QIoR2TpK6Yqu0JpUIFyMoyERlpdDRClG/TpunbL5f7ceCvS/Dqq3bfC7Hn042EtM/m1Vfh6lUT996Txr79Dvxzek2cZDXv8sfFBerVMy8Xduvl12++0WPqQqocpQmR0KuX7WMUNiNJXTGZTNC2rf56+XJjYxGivOvSBR56CLKVA686fKR76uy0bt210+eY1HgpbcaGELHTAV9fmDsX1m1ypW5jV6PDE0Zq04aWzbIBvXjI1at69/XqNgA8k/G5/kKSOrsmSV0JPPWUvv3yS8jIMDYWIcq7994DZ2dYld2btdwHEybYXcOM+N8ftA66yH+iHiITZwY1OkBkJDz9tFxJE8B331F1zxr8/HTB6f379e4NG+DoUfDyzOLRy3P0FOhOnYyNVViVJHXFtWsXD/8zCD/H88TFwYoVRgckRPlWrx688IL++p+O08k6fFR3YdmBjPgLTGm2iA6vdyEqqwFVnc6x+H/HWBTZhIAAo6MTpYnJlHdliZxeuieaHeAuUqBrV6ltY+ckqSsuf39cYk8yMutLAGbONDgeIQRvvgkVKsD+rMbM42l4+224csXosO7IwR920LHGaSbvf4QsnBjcaC8Hor15+NW6RocmSqmWzfUl2N274eJFWLRI73/GdD27k0uvdk+SuuIKCABvb57lCxwcFH/8occwWF1CAqxbBydOmHddvaoL6UdG6qFEf/0FUVF6tpPMzBXlScWK8NZb+us3Hf/DlYRU+PprY4Mqoexs+OQTaDWiFRGZLangkMiCfx/jp8jmVAyQsXMiH1lZ0KIFLT/WdX5274YfftDvAy1aKIL9z+geOknq7F6J5krNnDmT999/n7i4OJo0acL06dPp3Llzgcdv2LCB8ePHc+DAAQIDA3nttdcYNWpUiYM2lMkEzZpR66+/6N/wKCsi6zF7NkyfboXHUgqeegq1cRNrTtTjQ/7JGa5xyfEcl/ElLcu50NM9PPSbXYUK+tbXV399823O1wEBULMmVKkiY3RE2TR6NHz+ORw9WoX/DfiTd14oe4Xaotcd5qlp9fnjDwAHene4zNzv3ahWV3rnRCEcHSElhRZZOwA9Azano3rkSBOmMUvg2jVwlQ8Fdk8V008//aScnZ3VnDlzVGRkpHrppZeUp6enOnXqVL7HHz9+XHl4eKiXXnpJRUZGqjlz5ihnZ2e1aNGiIj9mYmKiAlRiYmJxw7WO+fOVArXKZ7ACpXx8lEpOtsD9hoYqNWJErl07Gw9RPQhTOsPLuzk4KFWxolJ16ihVp0a6qlAhW5lM+R9blM3NTan69ZXq2VOpp59WasoUpb79VqkdO5RKTbXAcyzFSt3rzErs+XkuWXLjdRwdbXQ0RZd9/oL6+p45ypvLCpTy8FBq1iylsrONjqzk7Pl1drNS8zwHDFAZOCo354xc/88vXjQ2LGEZRX2dmZQqXlGn9u3b07p1a2bNmmXe16hRIx588EGm5RSNusnrr7/OihUriIqKMu8bNWoUe/bsYcuWLUV6zKSkJHx8fEhMTMS7NCwHlJEB9euTffIU9Spd4vgFH776CkaMuIP7DA3V67coBUlJnD7vzr/+Bd99p1DKhIuLYswYEwO6J+N7eBsVIsKo0DqIu8Y/q5fwu3QJKlcGLy+yQ+4hMfheLjbuxKWaLbiY6sbFi3D5st4uXcr99cWLEBt7+zXRHRygTh1o2hSaNLlxW7eu7hW0lowMvZ5hXNyNLfFyNimXM0m9kknKNUdSMlxJTYWUpCwyLiTh4mrCxdWEq7sDru4OuLg74OrhiIu7E23bO/DEE3kfp9S9zqzEnp+nUnos+KZNehmxb7+4ComJULWq0aEVKHbuKp57wZFf0/SlsQ41Yvj292rUq2dwYHfInl9nNys1z3PCBHjvPdr5nWB7Qm0A/u//4LuPzulLMKJMK+rrrFiXX9PT09mxYwcTJkzItb9Xr15sLqCS+5YtW+h1y3X83r17M3fuXDIyMnB2znsJMS0tjbSbBoUlJSUVJ0zrc3aG11/H4fnnGZX1Oa/xBjNn3kF5gQ0bYNAgyMggse8T/PdNJ6Z/rnvLwcQTT8C775oICgK4C7j3+naTffvA3R0SE3FYHUqF1aFUyIm1dWt45x14/D59bEKCfkwvL73ddRekpZF2LomYkxlE+zbnVGY1oqPh1K6LHN16jv0XA7mQ5sXRo3qK/K2lwKpWhbrVrlH38g7q+Fygru8F6la4iK/bNZwcld7u7YJzz644OYHTxQTSp8/kbJI7Z5PciU/y4GzKXXpLvYuzPg2II4C4ODh/Xie2uTkALte3mzmCfuYF+r//I9+kTpR9JhN89JGuJfnddzB2zSO08T0K69dDYKDR4eWizibw4wMLefHvf3CJiriY0pk6Ko5XPq2Fo6PR0YkyJ2e5MMf9bKc2ACMfvgj+/voT+LZtMvO1HChWUnf+/HmysrLwv2WFaH9/f+Lj4/M9Jz4+Pt/jMzMzOX/+PAH5zMufNm0aU6ZMKU5otjd8OERG8tSQx3izG+zcCdu3Q7t2xbyfbdugf3+4do2fg//LC9te43yoTmC6doX3379R7LhQXbrorre9e+HPP29scXHw999w8uSNY/fsgccey3MXrkAdoM7MmfD883rn+j2w9F4UkIAf+2nKAZpwgCbspymR7sFcvupGfDzEx7vxF/cUHGOucet+wOQiPDEAE05k4M9ZAoklgDgqcAlPUvAgFc+2TfB8tC8eHuBJCs7/fpuMDEhLN5GWbiI904G0LEfScCW9dQda9pPBwvasTRuduH//Pfwz8S3CEzpg6t69VCV2CV//xqhRiqXpLwIQXPUM3/xWhSataxkcWdl16dIlxo4dy4rrdaYGDhzIp59+iq+vb5HOf+655/jyyy/5+OOPGTdunPUCtZbrSV2r5E1Af+rVgy4pq3T3tZOTJHTlRIkmSphu6Y5SSuXZd7vj89ufY+LEiYwfP978fVJSEjVq1ChJqNbj5gYzZlAZGDwYvv1WlzcpVlK3bx/cfz8kJ/NpvRmM3aH/wTdsCP/7n871itXz5+Ske+Vat4axY3VjPnlSJ3fNm984ztNTJ4FXrkBSkr51cwMfH71Vrnzj2Pr14Z13MDk64u/ggL+jIz0cHcHhGjjugo7uXApqzbFjcDziIseW7ePYeR+OX/Dh+CVfktNdyMx2ICPbkUycyMxyIFvPusdENpXcU/G/KwV/r1T8va/i730Nf59r+DetQkCXegQEQEDFNCof34aDlyd4eIO7v77e6+Gh487VreEJL3yQ93eTnZ3T9QlWvFQsSof//EeXc9h4rT0/VHqJ/zv8CZSSxO6XX2D0Sz05n+6KExm8NeocE2ZUJ5+LFqIYhgwZwpkzZ1i9ejUAzz77LEOHDmVlzsKnhVi2bBl///03gaUk6S+Rhg0BGHblMyJHTmbI0+6YZq/VP+vd28DAhE0VZ6BeWlqacnR0VEuWLMm1f+zYsapLly75ntO5c2c1duzYXPuWLFminJycVHp6epEet9QMRC3Ali16UKqrq1LnzxfxpIQEpfz9VTaoydW/NA9sffFFpTIyrBqu4bKylEpPL33Ps7S/ziylvDzPN9/UbcrJKVv9VPkF/U39+krFxNg+mORkdXLpTvXQQzcmJTWveUnt2la0/4FlkS1fZ5GRkQpQW7duNe/bsmWLAtTBgwcLPffMmTOqWrVqav/+/apWrVrq448/LtZjl6r21KuXUo8+qmcJZWcrVbWqfrH98YfRkYk7VNTXWbHq1Lm4uBAcHExYWFiu/WFhYXTs2DHfc0JCQvIcv3btWtq0aZPveLoyJy6O9jP+QSu3KNLSYP78Ip5XuTLZz47ipUo/MPnMMwBMmaLrU9n7otwODnqon70/T2Gst96Cf/wDMjNNDLn4KV9XegUOH9Y9drGxtgkiO5trc3/gnYCZNHyoIUuX6o7lf/0Lth/xpWVbO/gfWAps2bIFHx8f2rdvb97XoUMHfHx8ChzvDZCdnc3QoUN59dVXadKkSZEeKy0tjaSkpFxbqbFmDfz8M9SoodcKi4/XVzQKeH8W9qfYxYfHjx/PV199xbx584iKiuLll18mOjraXHdu4sSJDBs2zHz8qFGjOHXqFOPHjycqKop58+Yxd+5cXnnlFcs9CyN5eGAK/Y3R1z4EYNYszJcXC5ORaeLJE5P59MIQAD79VL8JSY04ISzDyQm++QaeeQays008feF9Pq/4Lz38wAbji9Rfm1nZ8BWajOzAW1de5RrudA2+wq5det6Sy61zfESJxcfH4+fnl2e/n59fgeO9Ad577z2cnJwYO3ZskR9r2rRp+Pj4mLdSNzQox9rrl167dZP6dOVIsZO6wYMHM336dKZOnUrLli3ZuHEjoaGh1KqlB/jGxcURHR1tPj4oKIjQ0FDCw8Np2bIl77zzDjNmzGDQoEGWexZG8vGBsWN5ggX4OF7h2DG98EO+jh6FMWO4eiGVhx/WA7kdHfXtmDE2jVqIcsHREb74Al56SX8/5uI7vP/An7oat7WcPMmRfuPo3+kSA498xHHqUs37Cj99m8767V40a2a9h7Y3kydPxmQyFbpFREQA+Y/RVoWM996xYweffPIJ8+fPL3RM+K0mTpxIYmKieTt9+nTJnpy1ZGfrCgc5SZ2sIlG+2OZq8J0pVWMW8nP+vFKenmos0xUo9cAD+RyzcKFSXl7qMt6qc+UD5sKQK1faOlhRkFL/OrOQ8vI8b5adrdSkSTfGs7311vXCvoMGKfX880pFRFik0m/M0VT1qtNHyoVrCpRydshQr49JVleu3PlzKGss8To7d+6cioqKKnS7evWqmjt3rvLx8clzvo+Pj5o3b16+9/3xxx8rk8mkHB0dzRugHBwcVK1atYocY6lqT7t368rV1aoptWiRUk89pdShQ0ZHJSzAasWHjVBqijsW5tVXifrgVxoThYODYutWE9euwckj6ZyYvZaT2xM4SW0OOLckIaMi3t6wcqWehCpKhzLxOrOA8vI88zNtGrzxhv76nyMTef8rX8x9NC1a6GKT//gHVKp0+ztTSi+4HB7O1p7/YsYMPbM1M1P/uFdIEjO+9qZBA2s8k9LPlq+zqKgoGjduzN9//0276yUI/v77bzp06MDBgwdpkM8f4cKFC8TdUnG9d+/eDB06lKeeeirfc/JTqtrTpUs3eqETE8HoeITFFPl1ZpMU8w6Vqk9CBYmNVcrVVXXn99suxeXvr9TOnUYHLG5VJl5nFlBenmdBPvnkRlt8IOSsWtbpfZXq4nNjp4uLUo89ptSJEzdOiopSas4cpWbOVGr6dKUmTVLpdRqoH3lctWNrrvbduVOWWrGibC/xZQm2fp3df//9qnnz5mrLli1qy5YtqlmzZqp///65jmnQoEGe6g03K/OzX5VSKiBAvxBvmgksyr6ivs5k/qGlBATAyJFM/HwaG+iKg6OJmtmnqK2OU9s1jqDB7ah9X31q14aWLfUiDkII2xs7Vk8IfPZZWL7Fj+W8gqfnP+nb5CiDLn5F31Mz8fr5Zxg5EmrX1idt3Ej6c2M4SW2OUZdttONLfieWagC4OGfzxBAHXnoJWrUq9lBlYQE//PADY8eONa9gNHDgQD777LNcxxw6dIjExEQjwrOdxo110fnvvtOV6x3k9VieyOVXS4qOhh9+IHX4aFyzr+IY3BLq1YMFC6B6daOjE7dRZl5nd6i8PM/b2bFDv+8tWQI3j3V3dcmmV+ABQu735rSpll4ab18qp+JdySb3+l1V/bN5frQDzz2nV2MSN5SX11mpe56PPabHAQCcO5e7mLwos6yy9qu4jZo1YeLE6wsW+Oj1VevWlYJsQpRCwcF6+/hjiIjQyd3ixXDkiAMrTzZj5eybj9at2sMD7r5bbw89BI895iClSUTpcn25MEASunJIsg1rKq8jpIUoQ0wmfZWqbVu9vNiBAznJnb76mpPE1a0LVatKLUlRyr3+ul768fHHjY5EGECSOiGEuM5kgqZN9SZEmeTuDh9+aHQUwiAyglIIIYQQwg5IUieEEEIIYQckqRNCCCGEsAOS1AkhhBBC2AFJ6oQQQggh7ECZmP2aUx85KSnJ4EiEPct5fZWBetx3RNqTsAVpT0JYTlHbU5lI6q5cuQJAjRo1DI5ElAdXrlzBx8fH6DCsRtqTsCVpT0JYzu3aU5lYJiw7O5vY2Fi8vLww3VL5MykpiRo1anD69OnSsUSLlcjztD6lFFeuXCEwMBAHO14vUdpT+XmeYNxzlfZUfl5n5eV5QulvT2Wip87BwYHqt1k71dvb2+5fTCDP09rsuUchh7SnG8rL8wRjnqu0J628vM7Ky/OE0tue7PfjkxBCCCFEOSJJnRBCCCGEHSjzSZ2rqytvv/02rq6uRodiVfI8hS2Ul99/eXmeUL6ea2lTXn735eV5Qul/rmViooQQQgghhChcme+pE0IIIYQQktQJIYQQQtgFSeqEEEIIIeyAJHVCCCGEEHagTCR1M2fOJCgoCDc3N4KDg9m0aVOhx2/YsIHg4GDc3NyoU6cOs2fPtlGkJTNt2jTatm2Ll5cXfn5+PPjggxw6dKjQc8LDwzGZTHm2gwcP2ijq4ps8eXKeeKtWrVroOWXtb1kWSHvKqyy2J5A2VRpIe8pL2pOBVCn3008/KWdnZzVnzhwVGRmpXnrpJeXp6alOnTqV7/HHjx9XHh4e6qWXXlKRkZFqzpw5ytnZWS1atMjGkRdd79691ddff63279+vdu/erfr166dq1qypkpOTCzxn/fr1ClCHDh1ScXFx5i0zM9OGkRfP22+/rZo0aZIr3oSEhAKPL4t/y9JO2lP+ymJ7UkralNGkPeVP2pNxf89Sn9S1a9dOjRo1Kte+hg0bqgkTJuR7/GuvvaYaNmyYa99zzz2nOnToYLUYLS0hIUEBasOGDQUek9NoLl26ZLvA7tDbb7+tWrRoUeTj7eFvWdpIe8pfWWxPSkmbMpq0p/xJezLu71mqL7+mp6ezY8cOevXqlWt/r1692Lx5c77nbNmyJc/xvXv3JiIigoyMDKvFakmJiYkAVKxY8bbHtmrVioCAAHr06MH69eutHdodO3LkCIGBgQQFBfH4449z/PjxAo+1h79laSLtyf7aE0ibMoq0J2lPpfHvWaqTuvPnz5OVlYW/v3+u/f7+/sTHx+d7Tnx8fL7HZ2Zmcv78eavFailKKcaPH0+nTp1o2rRpgccFBATw5ZdfsnjxYpYsWUKDBg3o0aMHGzdutGG0xdO+fXu+/fZb1qxZw5w5c4iPj6djx45cuHAh3+PL+t+ytJH2ZF/tCaRNGUnak7Sn0vj3dDLkUYvJZDLl+l4plWff7Y7Pb39pNGbMGPbu3cuff/5Z6HENGjSgQYMG5u9DQkI4ffo0H3zwAV26dLF2mCXSp08f89fNmjUjJCSEunXr8s033zB+/Ph8zynLf8vSStpTXmWxPYG0qdJA2lNe0p6M+3uW6p66ypUr4+jomOdTT0JCQp7sOEfVqlXzPd7JyYlKlSpZLVZLePHFF1mxYgXr16+nevXqxT6/Q4cOHDlyxAqRWYenpyfNmjUrMOay/LcsjaQ9FU9Za08gbcqWpD0Vj7Qn2yjVSZ2LiwvBwcGEhYXl2h8WFkbHjh3zPSckJCTP8WvXrqVNmzY4OztbLdY7oZRizJgxLFmyhD/++IOgoKAS3c+uXbsICAiwcHTWk5aWRlRUVIExl8W/ZWkm7al4ylp7AmlTtiTtqXikPdmIAZMziiVnyvjcuXNVZGSkGjdunPL09FQnT55USik1YcIENXToUPPxOVOMX375ZRUZGanmzp1r+BTj23n++eeVj4+PCg8PzzWVOjU11XzMrc/z448/VkuXLlWHDx9W+/fvVxMmTFCAWrx4sRFPoUj++c9/qvDwcHX8+HG1detW1b9/f+Xl5WVXf8vSTtqTZg/tSSlpU0aT9qRJeyo9f89Sn9QppdTnn3+uatWqpVxcXFTr1q1zTaV+8sknVdeuXXMdHx4erlq1aqVcXFxU7dq11axZs2wccfEA+W5ff/21+Zhbn+d7772n6tatq9zc3FSFChVUp06d1G+//Wb74Ith8ODBKiAgQDk7O6vAwED18MMPqwMHDph/bg9/y7JA2pN9tCelpE2VBtKepD2Vpr+nSanro/qEEEIIIUSZVarH1AkhhBBCiKKRpE4IIYQQwg5IUieEEEIIYQckqRNCCCGEsAOS1AkhhBBC2AFJ6oQQQggh7IAkdUIIIYQQdkCSOiGEEEIIOyBJnRBCCCGEHZCkTgghhBDCDkhSJ4QQQghhBySpE0IIIYSwA5LUCSGEEELYAUnqhBBCCCHsgCR1QgghhBB2QJI6IYQQQgg7IEmdEEIIIYQdkKROCCGEEMIOSFInhMFmzpxJUFAQbm5uBAcHs2nTpgKPXbJkCffddx9VqlTB29ubkJAQ1qxZY8NohRBClFaS1AlhoIULFzJu3DgmTZrErl276Ny5M3369CE6Ojrf4zdu3Mh9991HaGgoO3bsoHv37gwYMIBdu3bZOHIhhBCljUkppYwO4nays7OJjY3Fy8sLk8lkdDjCTimluHLlCoGBgTg42ObzTvv27WndujWzZs0y72vUqBEPPvgg06ZNK9J9NGnShMGDB/PWW28V6XhpT8IWjGhPRpD2JGyhqO3JyYYxlVhsbCw1atQwOgxRTpw+fZrq1atb/XHS09PZsWMHEyZMyLW/V69ebN68uUj3kZ2dzZUrV6hYsWKBx6SlpZGWlmb+PiYmhsaNG5csaCGKyVbtySjy/iRs6XbtqUwkdV5eXoB+Mt7e3gZHI+xVUlISNWrUML/erO38+fNkZWXh7++fa7+/vz/x8fFFuo8PP/yQlJQUHnvssQKPmTZtGlOmTMmzX9qTsCZbtyejyPuTsIWitqcykdTldGl7e3tLoxFWZ+tLKLc+nlKqSDEsWLCAyZMns3z5cvz8/Ao8buLEiYwfP978fc4/B2lPwhbs/ZKkvD8JW7pdeyoTSZ0Q9qhy5co4Ojrm6ZVLSEjI03t3q4ULFzJixAh++eUXevbsWeixrq6uuLq63nG8QgghSjf7Hb0qRCnn4uJCcHAwYWFhufaHhYXRsWPHAs9bsGABw4cP58cff6Rfv37WDlMIIUQZIT11Qhho/PjxDB06lDZt2hASEsKXX35JdHQ0o0aNAvSl05iYGL799ltAJ3TDhg3jk08+oUOHDuZePnd3d3x8fAx7HkIIIYwnSZ2t7dgBzs7QvLnRkYhSYPDgwVy4cIGpU6cSFxdH06ZNCQ0NpVatWgDExcXlqln3xRdfkJmZyQsvvMALL7xg3v/kk08yf/58W4cvLEQpOHwYtm0DDw+oVg2qV4eqVcFJ/kvbp4wMCA2FLl2gQgWjoykVsrKyyMjIMDoMQzg6OuLk5HTHY1DLRJ26pKQkfHx8SExMLNsDURMSoFYtSE/XyV3LlkZHJG5iN6+z2ygvz7M0y86G/fth48acTXH2bN5/5g4O4O8P1fzSqV4xlaZ1rvJg8Gla+53BlJQIly9DYiK88AJUqaJP+u47mDsXkpMhJUVv165B377w/vs3jrOy8vI6K/HzfPttmDoVuneHP/6wXoBlRHJyMmfOnKEMpCRW4+HhQUBAAC4uLnl+VtTXmXwGtKXVq/U/V4DRo+Gvv8DOZ4YJITSlYPly+Ppr2LQJLl26+acm3LhKGyLIwpEYqhHrVJPMTBNxcRAX50IELixb78u/5wZQE38eZgkPs4SObMZx4MAbydqZM7BhQ94AvvkGVq7UDy51Co03Y4a+Xb/e2DhKgaysLM6cOYOHhwdVqlSx+xnTt1JKkZ6ezrlz5zhx4gT16tUrccFuSepsadWqG1//9JMkdEKUE1u3wiuvKP7660ab93RJ55709XRlA13YSFufI7iGtAZPT7h6lexZX5DgUp2YGDjz6VJOL9nOhoyOhKbdS7SqxXReZjov4+eexAP/g0FPwX33gcMDD0Dduvp+crbERHjlFT30o0EDA38TwiwpyegISo2MjAyUUlSpUgV3d3ejwzGEu7s7zs7OnDp1ivT0dNzc3Ep0P5LU2UpmJuQsvP7nn1CzprHxCCGs7tgxmDgRfvkFwIS7axZjxzny8MPQOnsvTp99B506QafZuvfspk/nDkBV9Li64PkPwfyHGANcvQpr18KSJbBiBSRc9mbOQpizEBo2hNdfb8w//tEYZ+dbgtm+Hc6dA0dH/f21a/oy7bPPkvdgYXUODvo6fGCg0ZGUGuWth+5WllhOT0qa2Mq2bXDpEtu8evBzdAcOH9btmdBQOHnS6OiEEBZ04QKMGweNGil++QVMZPM0czlS537+O03Rrh04dWgD338Po0ZB06a5ErrCuLvDAw/oq6kJCTrBe+458PGBgwfhqafg7rvh008hNfWmE52dcycQ77wDY8ZAmzb6/5Owrbp19e0PPxgbh7ArktTZyrZtnKcSXVJCGTzEkQYNwMcjnU79vHkxZDvz5mSxa5eeQyGEKJuU0kOl6taFTz6BjAwTvVnNbloyt89iqq36yqLDLpyd9SXX2bMhOhree09PrIiOhrFjoXZt+M9/9HyKPBo3hkqVYO9e6NgRPvpIPwFhGytWwLp10KqV0ZEIOyJJna2MG8eG2QdJy3bB3R3c3CA5zYW/6MRn8Y8y4llHWrfWH6TlQ7MQZY9S8K9/wUsv6SFsLdjNWu5jdZVhNP9xIvz2m579biXe3vDaa3DiBMycqRO6c+dg0iT9sG++qeMy+8c/ICoKBg+GrCz45z/h8cf1rFlhffXrQ48euotVCAuRpM6GwvdXBmDECLhyRZc0+O6FrYznQ7rzB753ZXDhAjz9tPTYCVHWvPOO7hUD+B+vsoNg7nuymk6cnnjCZhOj3N3h+efhyBF9dbdJEz0m/9//hjp1dFWTq1evH1ylCixYoK/VOjnBzz9Du3a6aJ6wrpgYLlS4G+UrNeqE5UhSZ0M5M9e7ddP/P5s0gf/7rAMfPh3JH/TgmFcrqlTO5sAB+OADQ0MVQhTDtGm67BjARx8qXh1zDce1q2H+fH2J0wBOTrozbu9eWLwYGjWCixd1b169evDll7r+LSaTHlu3YQMEBEBMjMzMt7aoKNa8sILKl4/ybuILuqdUlEkLFizAzc2NmJgY876RI0fSvHlzEnN1jduGJHW28OSTJPR4ggMH9Lddu97y8xkzoEEDKsYd4KOanwC6JuXRo7YNUwhRfB9+CG+8ob/+73/h5fEm3fN1333GBnadgwM8/DDs26dr5NWsqfO2557THywXLrw+aatjR9i5U4/1qlfvxh3IODvL276dLcvPArCDYF0gWuSVUzw7vy2n5mtRjjV3Td/m2BJ4/PHHadCgAdOmTQNgypQprFmzhlWrVhmydKMkddaWkQHLl7PxD730SbNmULnyLcd4eupLIC4u/GPneO5reY60ND0pTv6fClF6ffqpLv8GMKXpL7w+4ryxARXC0RGGD9dXVqdP1/+HjhzRw+hatYI5cyDFq2ruT53r1sH990NsrFFh26eYGOKpCkAS3jKOsSB33VXwNmhQ7mP9/Ao+tk+f3MfWrp3/cSVgMpl49913+eqrr/jPf/7DJ598wurVq6lWrRoATk5OtGzZkpYtWzJy5MgSPUZxSFJnbVu2QGIi4a73A/rSa75atYJZszAtW8asXyrj5ga//67HxAghSp8vvtAzTAEm+X/Fm/sf03VMSjlXVz2Z4/hxmDIFvLz0Jdpnn9UTtV58ESIj0R9In3lG10xp0EAPxrPDwb4bN25kwIABBAYGYjKZWLZsmfUfVJI6u9K/f38aN27MlClTWLp0KU2aNDH/zNfXl927d7N7926++uorq8ciSZ21XV9FItytN1BIUgd6hsQDD1D3bhNvvaV3jR8P50vvh38hyqV583RPOsCrbcN55+wzmCpVgv/9z9jAisHLC956S8+Wff99XYYlKQk++0xflu3a05mfRm8kvV0nnXS89ho0bw5hYUaHblEpKSm0aNGCzz77zHYPGhPDWfwBuIKXXH4tSHJywdvixbmPTUgo+NibV3MCXRs2v+NKaM2aNRw8eJCsrCz8/f1LfD8WocqAxMREBajExESjQym+5s3VWaoofSFVqXPninZa+vlE1bRJlgKlnnrKuiEKrUy/zoqhvDxPa1m9WimTSbfnlx46qbJzGvfy5UaHdkeyspRas0aphx5SytFRmf9n+fllq1f77FUHK4bc2Pnww0qdPFno/ZXF1xmgli5dWqxzSvQ827VTtTmuQKkAYpTauLF4gdqZq1evqsjISHX16lWjQym2HTt2KC8vL/Xtt9+qvn37qkceeSTXz52dnVXr1q3VPffco8LDwwu9r8J+D0V9nUlPnTXFxMDevWxEj1HJdzxdfr76CucGdfiy9xJMJj24OTzcqpEKIYogp5ybUvD0kKt8vLkDJtA1RAYONDq8O+LgAL166eXHTp7Us3kDAyEhwcT7q5rR8OJmOgceZb7pKVKWrIZDh4wO2RBpaWkkJSXl2opLnbnp8qtDBV2HRpQ5J0+epF+/fkyYMIGhQ4cydepUFi9ezI4dO3Ids2PHDmbPns2wYcNK9HopDknqrOl6l+96/8cB6N69iOdlZMCFC4T8+CKjRuoJFs89l3eyjxDCtr77Dg4cgAoVFB9efBrT2Xi9MoOd1SCqXh0mT9bJ3dKl0L+/Tvr+jK3LU2oeAS4XeXZRL/7+u/xN5po2bRo+Pj7mrUaNGsW7g6wskuJTuYZO5FKy3clq1cYKkQprunjxIn369GHgwIG8cX36e3BwMAMGDGDSpEnm4wKvL83XtGlTGjduzGEr14CUpM6a/P2hRw/Cle6pK3Q83c1GjNAl4OPjmVZzNgEBesba9RnTQggDXLuGeazrG2Ou4Bu1Rc86WLAAPDyMDc5KnJ3hwQdh5Uo4fVoXV65bF66kuzJnDnToAC1a5K0YYc8mTpxIYmKieTt9+nTx7sBkIv7XiFy7rlyxYIDCJipWrEhUVBRffPFFrv3Lly9n9erVAFy6dIm0tDQAzpw5Q2RkJHXq1LFqXJLUWdOAAST8uI7IBH3NtUuXIp7n4mKuZOrzyVRmvKf/Y06bpovTCyFsb+ZMndhUrw5j3vCGPXtg2TI9eaAcCAyEiRP1B8z163VhYzc3vShFebp66Orqire3d66tWBwciPfI/cYuSZ19ioqKok2bNrRo0YL+/fvzySefULFiRas+ps2SupkzZxIUFISbmxvBwcFs2rTJVg9tqA0b9G3z5sUsLD90qC4Aev48g059RL9++qrsfffJ+DohbC0xEd59V389ZYpOZvDx0TXcyhkHB33V4fvvIS4OZs0yOqKyJz4+9/dJM+YbEoewro4dO7Jv3z727NnD7t27efDBB63+mE5WfwRg4cKFjBs3jpkzZ3LPPffwxRdf0KdPHyIjI6lZs6YtQrC9HTugenXCw/X05iJfes3h5KTfPYYMwfTB+8z+8wV6HPHl8GG49154/XW96oSzs8Ujtzml4MIFXQg1ZztzBipWhGrVdA9Bzm1gYPnqFRClw//+p5fYalQrlWEsgqx/6Gq+5Zyvr97KsuTkZI7etHzPiRMn2L17NxUrVrTO+9OGDZydnwrcKIibdC7N8o8jyiWbJHUfffQRI0aMMFdTnj59OmvWrGHWrFnmpTXszpNPwoEDhNdMAryKn9QBDB6sB7EcOED1yLXs3PkY48bBV1/p5YjWrYMff8y9ok+JpKXB5cu6Tk9Kir6tVEkXHM2xZw8EBUFxLzXk48IFvW74n3/eSOIuXy76+RU806jrn0Lj+hk0bu5Mk/Z30bilC7Vr614EISwpLg4+/lh/Pc3pTZxGfASx0fCvfxkbmLCIiIgIut80i238+PEAPPnkk8yfP9/yDxgWRvxqD3IldYnlbLaJsBqrJ3Xp6ens2LGDCRMm5Nrfq1cvNm/enO85aWlp5sGFgNWnAFvcqVNw4ABnTVWJjPbCZMpnvdeicHDQq257e0OTJniil/K5/35d6D0iQi9EMWMGPPVUMdfgVkpnVV9+Cb/8ohO7mz37rC6ZD3oUdMuW+ms/P51F1qsH9evrRK9RIz1aGvRo8l9/vfEY165BcjJXL6fx685Avo/uTOjOADIz84ZU3RRDPXWIehyhBqe53KQTMc3uJzYWYs5kE3M8jWu4cynFlYjjrkQcB1bfON/dXYfSuDE0vLSZho1MNAypyN3da+BawT4HsgvrmzpVN4GO9c8x8PBHejmhZ581OixhId26dUPZcgpvTAzxdM61q6y9xYnSy+pJ3fnz5/Otsuzv70/8rQMLrps2bRpTpky5/Z0nJ+sibrt36+6rYmU1VnS9lMmG+s/AIT2ersRjI0NC8uwaNAjatYNhw/T4uhEj9EO+9x6kpsK5c3m3K1f0e5GPz/Ut+zLek77Ah8v40oZ6HMX/rpQba+DdHHBcnE7mEhJubH/9dePnL76oM0vQXW6PPgpANiY20JXv+T8WMYQkbixu3KoVDOp3jcb/foK7OUpdjuGhbppC5+QEbWPg6+tjlrIUqmN3LjtXIcZUncPnKxJ5thKRidU4kN2Qgw6NuXrVmZ079Zrk0BF+06c6kEUdxxM09ImjYXMXOo1rwwMPlPDvYQUzZ87k/fffJy4ujiZNmjB9+nQ6d+5c4PEbNmxg/PjxHDhwgMDAQF577TVG5SxvICzq8GH9QQrgv1fG6Jp0r72m24MQJREba65Rl+NKso3eu5SChx7SyxStXl3i9U5F6WWTy6+gF729mVIqz74cEydONHeBg+6py7cWkJOTXk07PR0mTLDAdUgLyVkazEdnDiW69JqfI0d0r52/PzVq6Muv778Pb74JixbpregqALkXlq3mA8HBemvdGoLjICAAqFMHzp7VHydzrpcePqxvo6P1z9H/JyI2erC91hwirjTk7yuNOJtxY3ZIzbsu8I/ucfxjWlOaNAGyXaDZEzrL9PW9kXH6+uqR6De/PhwdMf29lQrXI28KPAz6n9SlS2Reu8SJFD8iIyFyWzKHftrJwbMViUqpSRLeHM0K4ujFIH4NhzNVKTVJXXHHm544cYK+ffvyzDPP8P333/PXX38xevRoqlSpwqBbF7gWd+xf/9IFh/s1PkHnyJ+halW9dp8QJXXTuq8+7mkkXnUlKdlG40YSEmD5cv31pEnwySe2eVxhM1ZP6ipXroyjo2OeXrmEhIQC10hzdXXF1dX19nfu5qa7rP78EzZtKh1JXVqazraA8HN6UV+LJHUffqhnRzRvDi+/DI88gqO7OxMmQI8e+vLrgQO6g61KFb35VcigysWDVDn4Jz4XjpGMF5effpnEbG8SEyExUZGYaOLiRV1kNCZGbytW3HjYgAA9tM7LCzw9vfH0DOauu4Lx9ATPRqAawu6/IOITfR/gDYw0n+/jA489Bv/3f9CpUyUcHG6aAuzgoH94J0wmqFgRJ6Ae+iXwwAN3wbu6foxScDbqIgfD4zm4/QoHU2rQtn/gnT2mBRV3vOns2bOpWbMm06dPB6BRo0ZERETwwQcfSFJnYRERemSCyaSYFvuk3jl5Mnh6GhqXKONuSurqBaQQcdyVpFQb9a8cOXLj688+0/+Y27a1zWMLm7D6K8nFxYXg4GDCwsJ46KGHzPvDwsJ4wBLdJZ0730jqnn76zu/vTm3cCKmpnPVrRtQJN0ymYtSnK0zHjnqq665d+rrrSy/p22efpW3bxuzbp3sUnJyAffvg8891zYGchaLvuguGDIFJl6FmzmSHGz1hV67oq9g7d+qJuzt2wMGD+sprXFzRw6xfX/+PaNPmxm1R8nNrMZmgauOKVG1ckW7GhZGvkow33bJlC7169cq1r3fv3sydO5eMjAyc85kOXawxqllZekxojRr2MbX6DuT8WYY23U2zfZv0p5sRI4wNSpRtqalkXU4iAX35vn6dDCKOQ5J3Nds8fvPm8PvvuqL0lSt6cPb27eW+rdsTm3w8GD9+PEOHDqVNmzaEhITw5ZdfEh0dbZlxQJ0766q8paXunR7QxYZ6IyDhDsfT3SwkBI4e1WMI58zRlz0/+URvnTph+u03nLy9YfFieOSRG+c1bgyjR+u6d4XMXPXy0r/Km4dypaToRC86Wn+dMzH25q8zM6FJE528BQfrnjlRNCUZbxofH5/v8ZmZmZw/f56AgIA85xR5jCro2jFnz8LevXqx4nIqLEy/97m4wNS3s+DDEHj11eufmoQoodhYLlCJrOtvvXd39Id1kNS+121OtBBvb10T6+hRPatszx746CN9FUjYBZv8hxo8eDAXLlxg6tSpxMXF0bRpU0JDQ6lVq9ad33nHjro75tgx3aWUz5uaTQ0aBLVqEb5Qd88Veb3XoqhWTQ/ymTgR1q7Vs1N//VVPzctJ2Hr10llkjx46mevatcQTSDw94Z579CaspzjjTQs6Pr/9OYo8RhWgZk2d1B05Uq6TusmT9e3o0VBrUBt4+K9CjxeiSGrV4uzyv+EBqFz5xgd+m68o4eenh/S8/Xa5WRGlvLDZx87Ro0czevRoy9+xj48up7F7t+6tu9MxWnfq7rvh7rtZf71jxGKTJG7m6Ah9+ugtJka/Cefw8tJdazLup9QryXjTqlWr5nu8k5MTlQpYsqTIY1RBD0rcvl1/ki+nDh2CzZvB0VHx+uvXE+XSMrNelG3OzsS7BwF6zk3OZ3GblTT59FP9HjFwoK6l+uij8l5hQZcuXWLGjBk8++yz+V41sQX7KNXaubO+LKJH6hsuPl6PRzOZcl/OtIpq1fRU1ZtJIy0Tbh5verOwsDA6duyY7zkhISF5jl+7di1t2rTJdzxdsd19t769eUB1OfPNN/q2j/9Oqs54Q68RJoSF5Hwmq1oVvLMuAZC07m/rP7BSMHEirz2VwFMjHUlJNeV+r8iveKgolrFjx7J9+3aef/55w2Kwj6TuzTd1fbTXXjM6EvjmGzZ8GAHoDkQrr90ryrjx48fz1VdfMW/ePKKionj55ZdzjTedOHEiw4YNMx8/atQoTp06xfjx44mKimLevHnMnTuXV155xTIB5cwgL6dJXVYWfPut/vrJ2Gl6fbDizBQSojA//0z8d/pDWdWq4F1RXyxLSnfTpbmsKS6O8yluvM9rzF/qw/33X+8hzM7WRegbNNAlT0SJrFixguTkZH799Vd8fX354YcfDInDPkb9VqlidARaVhaMGEF41qdAG+tcehV25XbjTePi4oiOjjYfHxQURGhoKC+//DKff/45gYGBzJgxw3LlTHKSunJ6+fWPP/SIhgpOSQzIXKlnuzZsaHRYwl4sWkR8WHvgPp3U+bkBkIS3nn3m4mK9xz5yhH3cGCf7559w332w+tdsKsyaBcePw7hxeu1JUWwDBw5k4MCBANZZXq6I7COpu5lSxo1/SUiArCzCrxfPkKROFEVh403z++fQtWtXdl6fZW1xOUldTIxensSjfC2vlvPrfiLzO1wds/RVACEs5aYadf7+4FVRD5m4gpcuJ1ChgvUe+8gR9tMU0FeRzpyBbdugR28n1r7/NZV7B8OCBbpSQp8+t7kzUVrZx+VXgIULdWG0t94yLoaYGOLx5yCNLFefTghbqlgRhg/X1eatfTmolElMhKVL9dfDma9reVWvbmRIwt7clNTlmiiBNyo5xbqPfVNPXf/+sH69ngS7axd0f7klZ0dO0seNGqUTTFEm2U9Sl5qqS8CvX29cDDExbKArAC1bWvdDlxBW8/XX8O9/6+XaypFfftHVgRqZDtKGCF3PRAhLyc6G2FjOome235zUZeBC2kXbJXXNmultwwZdBWz/fui6fjIx1drp6gkGXj4saxYsWICbmxsxMTHmfSNHjqR58+YkGjDJyn6Supxpptu3w7VrxsQQG0sUjQBdjFcIUXbkzHp9Un2NqUEDCxeZFOXehQuQkZGrp+6uu278OCnBuu9b6vCNy69N9Q0NG+pFkGrUgENHHOh6dRWnqKkH3Ikiefzxx2nQoIF5WccpU6awZs0aVq1ahY8B1fjtZ0xd3bq6lcTH64ECRlz7jInhJLokRO3atn94ISwiOxtOn9a9340aGR2NTRw9qt/HHBwU//eUG4S8KrXphGXFxJCOMxeoDOi3KwcH8HJK5UqmB0kZ7tcXD7OOU7NXkdzZC2dnRf36N17bd9+tE7t774VjJyrShY1s2fQIRq6QrZT+92MED4/iNX2TycS7777LI488QmBgIJ988gmbNm2iWrUbS785OTnR9Hom3aZNG7766itLh33jsax2z7aWUxTul190EWLDkrqegCR1ogxbsEAv9N2li74+Uw7klDG57z4T1b4q4pJqQhRHTIx5zVcnpxvlrrz8PLgSC1fqtS7k5Du3/7IeH9qwoSnPUq+1a19P7Lpnc+RoLT7rtZz/GDjpMDU1dy+mLSUnF7/Ua//+/WncuDFTpkxh7dq1NGnSJNfPfX192b17t+WCLIT9XH6FG5dgjVoH9p//5FQVfd1VkjpRZpWzsibZ2TcuvQ4fbmgowp716EH8L/qypr+/7qUD260qsW+fvi1o9b/q1WHyFB3UyohA6akuhjVr1nDw4MF81/K2tTKd1EVE6Do75hJdOUnd5s26ZpyNZTZsyumL+uOFJZa1FcIQOUldbKyunWXnNmzQY8N9nFN4oJKMJRJW4uZGvFttQF96zWGTpO7339n/4x6g8CWd+/TRq1Du36/L1hnFw0P3mBmxFbeK086dO3n00Uf54osv6N27N2/mUwYpKSmJ4OBgOnXqxAYrX/0o05dfnZ1h3Tq9/Gt2Njg0a6bHADVvrleYKGAtTGuJjdW5pLOznlEkRJlUoYK+NnTxou6ta9HC6IisKmei3+CM73F/az7ct8XIcIQdy1ki7ObOHO/zx4C6JP2yBgb0ts4Dh4ayb/+TwI1JEvmpUAG6dMxg/SZnVoxZy7jQXtaJ5zZMprKx2uXJkyfp168fEyZMYOjQoTRu3Ji2bduyY8cOgoODcx0XGBjI/v376devH/v27cM7J5u3sDLdU9e4Mbi66vpSx46hP2JERsJPP9k8oePqVU5+rItc1aypzF3rQpRJ5WS5sORkWLxYAfAk30gZE2E9n37K2R9/B27pqTPpmnDWnP2aceg4B9EroxTWUwcwsLuOZ8Uq53LRU19SFy9epE+fPgwcOJA33ngDgODgYAYMGMCkSZNyHRsYqKedNG3alMaNG3P48GGrxVWmUw9n5xudCDt2GBsLp09zavoSQMbTCTtQTpK6RYsgJcVEPQ4TUvEwPPqo0SEJezV3LvHrI4HcSZ2Xpx4qdOWK9R76cGQmGbjg5ZFJzZqFHztgqC8AG+nMpfW7rRdUGVexYkWioqL44osvcu1fvnw5q1evNn9/6dIl0tLSADhz5gyRkZHUqVPHanGV6aQOIKeHM1dSpxQcOqRvbSUmhpPUBqB2bRlgKsq4cpLUmWvT8Q2mkSPAzc3YgIT9umU1iRzentkAJCVb6e04K4t90bpeWtOGmbed/1D3bhNNvKPJwolV3523TkzlSFRUFG3atKFFixb079+fTz75hIo5U5+toEyPqYMbRX7NSV12tu4qO30aDh6EBg1sE0hsrDmpk0kSosy79169vELO5CM7dOIEhIeDiWyG8j08Z+BqNMK+paXB+fP5J3VeuvMhKdVKb8fR0ezP0pdem7Z2KdIpA9vFc2BdTVb8WYEh1omq3OjYsSP7cqYe24Dd9NTt3Hm9Y87B4cb1T1uWNomJ4RQ6m5PLr6LM69QJpk2Dvn2NjsRqvvtO397LH9Ts0wSseElElHNxcQDEm/QMulxJ3fVFB5KuOt96lmXcvDxY86K95Q98XM9SWBXXkvQ0G17xEneszCd1eSZLwI3eBVsudXLT5VfpqROidFPqptp0/qtkgoSwruvrgubbU+ej34avpFkvqctZHux2kyRytPtHPfyJJ0l5s+GHM9aJS1hFmU/qbp4sERFxfacBRYizY+KIRo9AlZ46YRdiY2H9ejh3zuhILC4iQtfh8vSEh468b9c9kqIUiIkhGU+Sla5jmmuiRBU9jjPJsYJVHjr5H89xnLpA4eVMbubg5sKAqtsBWPGzQWupixIp80kd5DNZomNHfRn2+HH9xmQDcSeukYELjg7ZBBq5aJ4QlvLII3psXXi40ZFYXM7ktF69wNPLAalBJKwqNpaz6OJ07u65l8DyDtFLSiXVam6Vhz5wSI/Vq1oVKlcu+nkD32wJwIqoejadcyjujF38J8uT1Hl73+i+s1Fv3anR7wFQo1o2TmV++okQ6JW+wS5nwK5erksM3N/VoFXDRfny7LOcXaAn4lStmnsFLmuvKLF/v74tai9djh7Da+Durldb2bvX8nEJ67CLpC5nBqx5sgTY/BLsSfdGANSuKxmdsBN2ugbspUuwdacev9R76fMGRyPKBQ8P4l308JybL72ClZO6zEz2fbAGgGaNMot1qoeHXoYTYMUKSweWP1XOuwQt8fztIqnLd7LEQw/Ba6/B4ME2ieHkSX0rkySE3bDTWnXr1kG2cqARkdR6sJXR4YhyImeJsFuTOq+MiwBciU+2fG3VU6fYf9ARgKZFnPl6s4F3/QHAiu8TLRrWrRwddYzp6elWfZzSLjVVXzlwdi75pBm76FbKmSyxbZu+BHv33UC3bnqzhTNnOBWaCDSRSRLCftjp5dfVv2YAztzParhfJkgIG3jjDeL/7AV0y9tTV1G/DV/Jvovsq9dw8LBgAewjR9iH/uDSrEXxk7r+mcsw0Y2Iwz7ExEC1apYL7WZOTk54eHhw7tw5nJ2dcShnY1yVUqSmppKQkICvr685yS0Ju0jqQI+r27ZNz2qzUefcDbt2cfIvF6CJ9NQJ+5HTU3f2rF7DyMvL2HgsQClY/WsW4Mz9frugwctGhyTsnVLwySfEp9Ym36Suqof56+SEVLxrWy6pS9h5hgTux0Q2jRsXP1Hy79GU9j//zVZCWLkSRo2yWGi5mEwmAgICOHHiBKdOnbLOg5QBvr6+VL31BVJMdpXUwS3LhR05AqdOQf363HbBuzsRE8MpugFSzkQU3aVLlxg7diwrrg9YGThwIJ9++im+vr75Hp+RkcG//vUvQkNDOX78OD4+PvTs2ZP//ve/5gWjLcrHB6pU0SVNjh6FVmX/UuX+/RB70Q13UukywIfbrpkkxJ1KTITU1Hxr1AG4ejrhTDoZuJAUn4p3bcstIbV/+1UA6vhexNOzGFNfc3TsyAN8z1ZCWLE8m1GjrNeD5uLiQr169crtJVhnZ+c76qHLYXdJXc5kCZMJPaZu2TKYOROet96AaHVGVpMQxTdkyBDOnDljXvz52WefZejQoaxcuTLf41NTU9m5cydvvvkmLVq04NKlS4wbN46BAwcSYS7SaGFvvaUHrNpJnZ6cUibdCMetf09jgxHlQ07hYcdqkJU3qTOZwNt0hQuqEkkJlq0Jt++gHpvVrHYyUIKkrnFjBnr+wcQU+P13SE7OXY7F0hwcHHCT9ZfviN0kdU2a5J4scffd6F4GsHrx1IRjV7iGOw6mbKpXL19jAUTJREVFsXr1arZu3Ur79u0BmDNnDiEhIRw6dIgG+axZ7OPjQ1hYWK59n376Ke3atSM6Opqa1uiNHjPG8vdpoNXLrgLu3O8QBvdOMTocUR5cT+rOOgRAFvj75z3EyzGVC5mVuHI+zaIPvT9GFzRuWsSVJPJwcKDRPRWpu/YoxzLuZu1aePj/2zvv8KjKrIH/Jr2QDISQhB6CUg0okRJkQVEBFVFYEVbNrgWsiIplQVcFd9lYcG3f2sAFCyuuBWQtQVa6EpoGC10IJTChJTMJIW1yvz/ezKSQMjOZPuf3PPeZO5P3vvdMZs7cc897ygTnySc4H7+xQGp3lrAuwbrJqMvdXwVAxzYltCBpRQggNm7ciF6vtxp0AEOGDEGv1/P999/bPI/RaESn0zW6ZAtQVlaGyWSqswUixcWwfkskAGNevbqmloQguJKjR9EAQ6XylDUUMhUborIeTSeduPRYWcnPxckApA51/Luuu2Qo41AhIu4qbSI4jt8YddBAXJ27jLqjYQB0bV/h0vMI/oPBYCAhIeGc1xMSEjBYah80Q2lpKTNnzuSmm24itgkDJTMzE71eb906d+5su6BnzsC6ddDIkrAvsXo1VFRAt25w/r1XelocIVDIy6OQ1pRr6jrRkKcuNlJdO0xnnecVqAoK4dfoQQBc8LsWtCC75BLGRavSJl98AWazM6QTXIUYdU7g4MloAJK7SdB1oDN79mx0Ol2TmyX+TddAkL6maQ2+Xp+KigomT55MVVUVr7/+epNjZ82ahdFotG6HDx+2/Q3t2gUjRsCUKbYf46VY4unGjJH8CMGN5OVZkyRat4aGQsZi01W7B1MXO9s+NMHBg1BcrCMsDM7v0YIv/KWXcsmp5bRpA6dOgR0LCYIH8JuYOqhr1Gka6NzlqRtzNyyDrn2iXXoewfuZNm0akydPbnJMcnIyP/30E/n5+ef87cSJEyQ2dCtfi4qKCm688UYOHDjAqlWrmvTSAYSHhxMeHt688A1hqVV3/Lgqee+jS5aaBl8vrY6ni1gD1dnqguBy5s3DkH4a/tjw0iu4pquEpT1Y7960LCwoOJjQYLj6ali8WC3BWho2Cd6HXxl15yRLWJa3XO2pK28PQPL5ElAX6MTHxxNvQ9fs9PR0jEYjmzdvZtAgtUSyadMmjEYjQ4cObfQ4i0G3d+9eVq9eTdu2bZ0me4PUL2syYIBrz+ci9u2DA8ciCaWcy/KXIEad4DaiojCEqFp0jRl1lhKQRUXOO+3Pb2wAhnFBOwPQstpnAOPGKaPus8/g+efF2+2t+NXy6znJEl27QmYmPPusS89raREm5UwEW+nduzdjxoxh6tSpZGdnk52dzdSpUxk7dmydzNdevXqxdOlSACorK7nhhhvYunUrixcvxmw2YzAYMBgMrq3t5AftwixLr8PYQMy1l3pUFiHwaKxFmIXYPSokw7T2R6ed8+cfVJxeausjLZ/su++45rG+RAWdZf9+VeRf8E78yqiDenF1bdrAzJnwpz+57HxaznZy9ynlkW4Sgj0sXryY1NRURo0axahRo+jXrx/vv/9+nTG7d+/GaFR9F48cOcLy5cs5cuQIF154Ie3bt7du9mTM2o3FqNu3z3XncDFZy1T9rzGsqOlSLgiuprISpk4l/5P1QBNGXflJAExOLGnyy2m1gnTBwMiWT9ahA9EHd3CtphKmPvyw5VMKrsGvll+hkc4SLuTUsvWUlCv3oCubVgj+R1xcHB988EGTY7RaDb6Tk5PrPHcbPu6pKy2F1RvUT92Y1Dxw9ZK1IFgwGGDBAgy6YcDvGsx8BYiNUXptOuOcS3K5qZRdFd0BSL383Cx7u0lOhqQk/mBYzEfcyEcfwbx5EGAtWn0Cv/tI6idLsGMHrFypAr1dQO5udWfVPtqEo7HoguDVWJIlfNSoW78ezpaH0J6jpI4/z9PiCIGEpZtEmFrGaTZR4qxzjLo9q/OoJJRYjHS+yIFOEvXR6WDoUMaQhT6ilKNHYcOGlk8rOB+/M+rqJ0tw++0wapTL8rAP5qo7rOR2xS6ZXxA8ztCh8MYb8NxznpbEIbK+UsXBx5CF7qoxHpZGCCiOHgXAEKza7DWaKKFXl+KiUuck2/28rgCAC6IPoAtyUkbD0KGEU874eLWU7Kwl2Lw81Vb60kvh3/+GMuc21Qg4/M6oCw2Ffv3U/rZtuLxWXe4x5Z7r2rHSJfMLgsfp3BnuvhuGDfO0JA6R9ZWqljpGnw0DB3pYGsFbef311+nWrRsRERGkpaWxfv36lk9q8dSZ1XWoUU9dG9XI3VTmnOWeX3LU9Sg1yYnXvVGjAPjD0X8A8Mknqph3S9A0uPdeyMmBtWvh5puhY0d45BHYs6d6wI8/wpdfws6dbrP4Nm+GSZPgppvgoYfU/ey776qEq5wctapeVeUWUezG72LqAC6+GLZsUUbdJBcbdQdPq+7GySnBLplfEATHOXQIduwJJSgIrtj1fxAseiqcy0cffcSDDz7I66+/ziWXXMJbb73FVVddxY4dO1rWUzkvDzNBnCjXAzYYdRVOSGoAfj6k1nMvOM+JRlBqKlx5JSNXrqRdZBEnTsawahWMHu34lJ9+qurehYbCgw8q79+RI/Dii2obGbaBu8pf43qWEUaFCuIrKKhZr16zRgXNDh3qlBqaZrMqmDF7dvOdM9q1U31wb7wRhg+HEC+xprxEDOdSJ1niYhcadVVV5Bar+ZN7O0cZBcEr+flnpVADBtS4wn2AFSvU4+DBEJcU5llhBK/lH//4B3fccQdTqjunvPzyy6xYsYI33niDzMxMxyc+epQTtKNKCyIoqGbhqD6xCarNhMncyvFz1eLnyj4ApE6/zCnzWXn8cUI6d2ZiaSWv/1sZYY4adQUFMG2a2p81C+bMgb//Hb4enslbG1P5iqtZVf47VvE74oNP83vdUm6M+oIR0bFYb82efVYpeUiIWkm46ipVJblvX7sL6eXmQkZGTazgxLElpPctwnCsCkO+jvwTQRhOhWIwRXHCGM6JE/DWW2prF13ChNQ9TOy3hxEphwkJD4Z27ajq2o28rkPZtQt271YNeg4dgvR01aSnse9Di9B8AKPRqAGa0Wi0afyPP2oaaFrr1ppW9fwL6snNNztfsPx8LZXtGmja18vLnT+/4Fbs/Z75Kg69z1tvVXr017+6TjAXMGFchQaaNmeOpyUJPHxFn8rKyrTg4GDts88+q/P69OnTteHDh58zvrS0VDMajdbt8OHDjb/Pyy/XfqS/BpqWmNi4DIcOKfUKC2vpu9E0k0nNBZp28mTL52uIdevU/LGxmnb2rGNzTJmi5ujVpVgrNZXV/GHBAk3r2VPLveMZ7S83/6a1b19lfT+gaQkJmnbPPZq2erWmVd57v6Z1767VGQCa1rmzpk2bpmlVVWrOigpN++wzTfvXvzTtpZc0bfZsTXvwQfW7dt112gc3LNViY9WhMTFV2nvcolXVn9OyXXWVVl6uaStWaNodd2haHKfq/Dme49o4lmkX8oMWFVTS4BSgaWHBFVrGoJ3aplc2atq+fUrGJrBVn/zSU2dJligshP2k0B1c4qnTYvUcjI6DM9JNQvBzfDADtqIC/reyOkkiezYw25PiCF7KyZMnMZvN57TnS0xMxGCpGlyLzMxM5syZY9vkn39O/keFcEfjS69Q01GivFyFjbWkksKvv6rH9u1dV73nkkugUye1VJqVBddfb9/xa9bAggVqf/7hqwjPiIOPP1brsLfdBnfcQVfgr8BTFWr8f/6julkcP67ytt54AxITX2X8+Ffpcv0ponN/JWr3j0Tv/oHowwVEfx9J9CYdbdtCUluNVhMmUN93ZySWe3mdf6PeQHo6fPCBjpT+y+BssPpgWrWq2aKjITWV0FAVYjhqFLzBE6zO7cbHBwex9HAaJ8vasZzr1AmqlBOxe3fo1Uuj5xcvkmA+xkdMYot5EO9v7sX7m+HiB7ZwX7fFTPr1KSJbuOjncqNu7ty5fPnll+Tk5BAWFkZhYaGrT2lNltiyBbae6uYyo67wbDimM2pfatQJfo0P1qrLzgbT2TDacpK0vqWeFkfwcnT1lus0TTvnNYBZs2YxY8YM63OTyUTnzp0bnjQ6GkOw6gneVEtni1EHqlVYS4y6XauPAe3pG7Ib6NnccIcI2vkrk1od4EXG8uGH9hl1Z8/CnXeq/bt5k2Haeki8sybetV7xu9BQVS/8yivh9ddh1Spl4C1dCvn58OabAG2B4dVbNT8A6dZZiAoqISm8kKRoE+1jz5CoL+PLA705WNiaoCCNp57S8cQT1bFxBgNERdm0hBu64A1GAaOA16sN0B07oFs36NVLPYaGAhrwy2g4doyHD/zI5nUb+ef6VD46cglbtYHcdmAgj3SGO+6Ahx+GBAfLC7rcqCsvL2fixImkp6fzzjvvuPp0VtLSqpMlCrsz6dln1X/WyRw8qB4TEtTnLwh+iw8adSu/0QAdV7KS4GuklInQMPHx8QQHB5/jlTt+/Pg53juA8PBwwu2wupprEQYQXFRIdFA4Z6oiMRk14uMdL0Ni2HEaaE/Hkr24yqhjyxYm7/o/XmQs//2vRnGxjlY2hgP+9a/qZ6QDeTzLn+Guu5S1ZkMl49BQFcM3erTy1K1aBd98o0qYnTlTdysuVo+nTqn9kqpI9p+NZP/Z9nCyZs5u3WDxYh3p6bVOFB1t3/+jlnwWA/QcdDqVbJKaCsCgu2AQMO8EvLOgijfegEOHg5g3rybW0BFcbtRZ3NSLFi1y9anqcPHF6nHb3lh4888uOUfu59uB/iQnnAEc+xIIgk9gWX49eVLFNbRu7UlpbCJ7ZREQy4jwbBj6gqfFEbyUsLAw0tLSWLlyJePHj7e+vnLlSq677roWz2+LUUdICLFVBZwhEtPxUuju+Bqc4YiqM5LUtoX1RpripptI+8uTdM/bx29nz2P5clX+ozm2b4cXnq8Cgvgn96G/52b4v/9zqDVFWBiMGaO25iguVp9D/S06Gu67zymJsw7Trh3MnBXEo4/BF1+onLTGHL+24JUxdWVlZZTVqkdjMpnsnsOSAfvDDyos0c5EGJs4+PUOoD9dtYNAH+efQBC8hZgYtX6Un696wFrumryUqirYlKOyXQcPCVJXAEFohBkzZpCRkcHFF19Meno6b7/9NocOHeLuu+9u8dw2GXVRUcRyhGN0UEYdjht1+SfUMmZifDM1OVpCWBi6Rx7mDw99yN94kiUfatx0U9MXWbMZplx/kkpzPL/nE66/t6My6Fxxca5Hq1bqvtRyb+qNBAfDddeprSV4ZfHhzMxM9Hq9dWs0XqEJ6iRLfLVL+WgdMA6bIteg0tCTO0vhYSEA8KEl2F27wFQWQSQlpI7t6mlxBC9n0qRJvPzyyzzzzDNceOGFrFu3jq+++oquXVv+3bHJqAsKIiZIBWgXnWxZ/KehIKz6fC7uEz1lCpNjvwYg6+sqCgqaHv7qq7A1Nx49hbx2249uM+gCDYeMutmzZ6PT6Zrctm7d6rBQs2bNwmg0WrfDhw/bPUdoKPTurfZ33va8WoTfudNhmRoit0D5bLumeKXDUxCcy9//rlLdLnNy7SsXsClbXdAGsoWQoYM8LI3gC9x7773k5uZSVlbGtm3bGD58ePMH2YBNRh0QG1wCgOlky5ZN84tUgHdiRxdXZGjVir4zRpPKT1SYg/ns00aMyMpK9u2Dv/xFPX3hr2W0f+dvYtC5CIeskWnTpjF58uQmxyQnJzsyNWB/IGpjpKSolh4HIqqtOydnwB48oxolJ/eRLAkhAPjd7zwtgc1kb1RJEkMuOAMXeb8RKvgv+fnqsVmjLvQsVIDpdMuMOsPZ6u4V3SJaNI9NTJvG5Lmv8nNFP5a8foo7psTX+XPJl6uZ96efee7MfZSUBjN8ONzxeCLn1BYRnIZDRl18fDzx8fHND/QwKSnqcX9w9UL68ePOm/zsWXLNalm464VtnDevIAgtJnuzWoQYPOfqloQnCUKLKCvDuizZrFEXXgolYDrteCxcWRkUVKoVpMQU53SnaJK2bZk0LYEnXoJV29uSn69Cb6uO5bP4958xa+O15KFuqtLT4f33HcqJEOzA5euGhw4d4vTp0xw6dAiz2UxOTg4A5513Hq1szYF2EItRd8BcXUTOiZ460+5jFKBO0DXVg6kzguAujh2raclzyy2elqZRiovhl1/U/pAhnpVFCGwsXrqwsOYTxmMizVAApmLHrR6L3yI0VKPN1elND3YS3f9xH4O+g82bdXz8nyr6H/qCGS91Yqv5HgC6xpzi+VcjmfinKFlxdQMuN+qeeuop3n33Xevziy66CIDVq1dz6aWXuvTcltJ0+8+2VztONOoO/ngaSKFt0GliYuOcNq8geC1796pq7z16eLVRt3Wryn7tnFROh4QgvDTJXwgALPF0iYnNh5DF/mk8ZEJRouMpmhYjMiFBR1BocNODncjkybB5Mzz+0FmKzOMAiAkq5ol7C3nghU5EuGElWFC43BG6aNEiNE07Z3O1QQe1ll9N8WjgXKOuVV8AunaX9mBCgGBZPzp2zLNyNEP2d2r5arDhc/jtNw9LIwQytiZJQE2ttJYUabDnfM7kxhtBp9MoMkcThJm7hv7M3kMR/Pk1MejcjV+vbnftqu6OzpSHcZJ4pxp1ufkqUCc5NaaZkYLgJ1iuFEVFqlS7l7Lp2yIAhkRsrynDIggewN1GXf52dcLE4z87PokDdOwIz1+/kVt6bibnmxO8+V0qiR3FQ+4J/Pq/Hh6uvmxHjsD++/5Bu9GtnTZ3bq56dEIZI0HwDWJiIDJSNW/Mz69xhXsRmgbZ25T3fEhqsURlCx7FLqNuy7fA5Zh2HgE6OXa+fcXqfEV7gVSH5nCURz4b6tbzCQ3j9794lri6A8My4NprnTbvwfWHAEiOdmJGrSB4MzodtK+OT63XJ9NbOHQIDKZoQqhgwEjJShc8i63lTABiClU9VlOB49mv+cfUsYmxZx2eQ/Bt/N6os8bV7XfuvLk71PJTctke504sBAwFBQVkZGRYO6dkZGRQWFho8/F33XUXOp2Ol19+2SnyFBfDc8+p/tpaY8XoLVcnLzXqNm1Sj/3ZTuSwNM8KIwQ8dnnq9CqToqjU8Tjt/Hw1R1JcucNzCL5NwBh1B7acVOUYyp3zZT9Y0g6Arn2inTKfEHjcdNNN5OTkkJWVRVZWFjk5OWRkZNh07LJly9i0aRMdOnRwmjwhIfD44/D2203YbF5u1GWvVT2jh5ANg6SThOBZame/NkdsG3U5NpU5XnjfcFoZhIkJLm4RJngtfm/UWcuafP4zjBnjlIvRmWKNE1Wq+HLXAW1bPJ8QeOzcuZOsrCwWLFhAeno66enpzJ8/ny+++ILdu3c3eWxeXh7Tpk1j8eLFhIY6L/s6IqLmJqjRjnqPPaZujsaPd9p5nUn2GrXsNDh+PyQkeFgaIdDp3Fk1ke9kQ4hcbBsV4m4qdzxdNN+oEviSOrqvnIngXfh1ogTUWn4N6g5mVAZsly4tmvPQ9gIgDj2FtO7l5txxwS/YuHEjer2ewYMHW18bMmQIer2e77//np49ezZ4XFVVFRkZGTz66KP07dvXpnOVlZVRVlZmfW5qIr2ud2/Yt08ZdSNHNjCglrzeRnk5/PCbapE05OnRHpZGEGDJEtvHxrZVN2hFlZFUVTmW42M4o6oxJHZpeZtNwTcJGE/dYXMHKghxSlmT3JxCAJKDj6hS4YJgJwaDgYQGPEkJCQkYmvAmP/fcc4SEhDB9+nSbz5WZmWmN29Pr9XTu3LnRsb2r2yTv2GHz9F7D9u1QVqYjLg7Ou0+MOsG3iIlXhphGkEMVg0pLwVipwoGSUqQfeaDi90ZdUpJaVjITwmE6O6X/a+6OEgC6Rp9s8VyCfzF79mx0Ol2T29atWwHQNVBiXtO0Bl8H2LZtG6+88gqLFi1qdExDzJo1C6PRaN0OHz7c6Ng+fdRjo8uvx4/DwoXwr3/ZfH53kZ2tHgcPbr56vyB4G5FtIgimElClIO2lpiWZhv4PVztRMsGX8Pvl16AgSE6GXbvgAN1IcYKn7uB+pXjJccYWzyX4F9OmTWPy5MlNjklOTuann34i3/IrXIsTJ06Q2EhU9fr16zl+/DhdaoUPmM1mHn74YV5++WVyLcUT6xEeHk54uG3LMRZPXaNG3aFDcPvtqgDk7bfbNKe72LS6BIhiiH4n0NvT4giCXeiuvILYNlBQoAoQ25sDVVM+RYcu1O8v7UIjBMQnn5KijLr9pHC5M5ZfI9UFI3mClEwQ6hIfH098fHyz49LT0zEajWzevJlB1VmamzZtwmg0MnRow0U8MzIyuOKKK+q8Nnr0aDIyMrjttttaLjzQq5d6NBjUxaVN/VJvluzX/HwcDvxxEdnfqxpdQ7b9H/BPzwojCPai0xEbW2PU2Ys9mbaC/+I9v8guxFrWhG7Oiak7qrweXS9xrOq3IPTu3ZsxY8YwdepUsrOzyc7OZurUqYwdO7ZOkkSvXr1YunQpAG3btuWCCy6os4WGhpKUlNRoYoW9xMbWZOo16K2zxAFWVsLp0045pzM4cQJ+y1dB4oOGR3pYGkFwjJa0Csvfqw5KzPvBiRIJvkZAGHXWsib9x8NNN7V4vr171eN557V4KiGAWbx4MampqYwaNYpRo0bRr18/3n///Tpjdu/ejdHo3mX+Jpdgw8LA4ok8dsxtMjXH5s3qsRc7aT28n2eFEQRHKCoiJk8pnamwyu7DDb9VtwgraCx2QggEAmb5FWB/WG+4vGWxNqdO1TgozovJB8TXLThGXFwcH3zwQZNjtEZbOygai6NrCb17w8qVTWTAJiXByZNqvSfVvf0lGyP7OzMQrIoOD5YelIIPEhJC7OlcoDdFp8oB++rV5R9Rsd6JMQ6kzgp+Q0B56g4caPlcFi9dJw4TdablS7mC4G00mwHrhV0lsr9VF7IhkT/B+ed7WBpBcICICGJRaa+mk/Z3PjIY1A1gUuuyZkYK/kxAGXUnT0LR56taNNfeX5TCnM9eVS5cEPyMZjNgvcyoq6qCzT+pONfB/Uu9KnlDEGxGpyM2VJXLMp2qsPvw/JNq4S2xnf1Lt4L/EBC/frGx0DZOfdEPXP8glDl+J7Nnm7qT6hF6APR6Z4gnCF6Fxag7eJCGi6A++CB8841T4lOdwa5dYCoNJ4ozXDBSWoMJvktsWCkApoJKu481FKobmyRpchTQBIRRB5DSXVUj3U+Kctk5yN6dStnOjzvlFLkEwdto107lQmgaNNiGNi0NrrxS1arzAixFhwcODiLk3js9K4wgtICYcOWhK3IgUSK/WHWTSOwsXY4CmcAx6lKUUdfSsiZ7DigXd48OEowq+C/NLsF6EZs2qcfBIyK9xtAUBEeIjVCxdCZj0wlS9SkpgaIKVconKdm+BAvBvwgYo85a1oQUh406TYO9BlUL6/zuErcg+C9NGnWnTqk2YW++6VaZGsPiqRsyxLNyCEJLiY1SK0GmYvv63Fm6SUREaMTcc4uzxRJ8iIAx6qxlTVpg1BkMUFweThBmUnrb1nZJEHwRSwZsg2VN8vPhjjvg8cfdKlNDFBfDLz+rG6zBxm88LI0gtIzYOQ8DYIpqb9dxlpylpCQdurBQZ4sl+BABY9RZy5q0YPnVUs4kuUMFYbfd7CTJBMH7aNJTZ4nELihoUdKRM9i6Faq0IDpziA6FjRXWEwTfIDZOhffY21HC4qmTFmFCwBh1tVuFaccdM+r27FGPPfpF1FiJguCHWIy6ffugvH7JrDZtVGcJ8HhZk+yNKvZIFR0e7FFZBKGlxKjoHoqK7DvOcFglWCQd3uLxGy3BswSMUde5MwQFaZQSiWHwdQ7NYfHUSW1Twd/p1AlatVItXvftq/dHnc5ratVlrz4LwJCgLXDRRR6VRRBaSuza/wJgOn7WruPyD6jEvURDTs0NlxCQBIxRFxoKXbpUlzVpO9ChOfbsUHdDPY6tVVkTguCn6HQ2LsF60KjTNMjerHR68PmnIUKy/gTfJvbwrwCYztjXwdNwqNpTF12slFcIWAKi96uFlBTIzYX9++GSS+w/fu9OMxDK+VmvgW6Es8VzC2azmYoK+6uV+wOhoaEEBwd7WgyfoXdv2LLFe426336DfGMk4ZRy8aWtPCKD6JPokzOxxNSVmkMpL7fd6ZZ/zAxAor7UVaIJPkJAGXXdOlcCIRxYnQsZyXYdW1UF+w6prKLzO9nnGvcGNE3DYDBQWFjoaVE8SuvWrUlKSkInd7PN0mQPWC8w6jZsUI8D2UL40DS3nlv0SSH65Fxi2tRckouKoG1b244zHFeLbkltA/MGQ6ghoIy6FP0pIJH9izfCv5LtOvbwYSirCCaUcrp2971/m+UClJCQQFRUVMD9CGuaRklJCcePHwegfXv7SgYEIpbl1wbLmtx3H0ycCL16uVWm2mxYrwE6hgVthEHj3Hpu0SfRJ1cQoo8mkhLOEmWXUZd/Wrn0JPtV8D3rpAV0661ibg6Ud1AR4CG2v31L5mt3fiO4i29VrTebzdYLUFtbfyX8kMhIVXH9+PHjJCQkyNJRM1iMut27lac6qHYEbr9+HpGpNhu+U4bUJZ88BD3d91Mm+qQQfXIBrVoRi4mzRNlV1sRQFAVAUkf5DAKdgEmUAEjpp+Ju9pOiquLbgSXztQd7VCqtD2GJ+YmKivKwJJ7H8j8I1Dgoe+jWTcX0nD0LBw96Wpq6nDhR05d26IhQtwaHiz7VIPrkZKqNOrC9Vl1xMZRUVHvqukqyUKATUEZdt/PUXUweHSnLO2nXsRZP3fns9TmjzkKgLRE1hPwPbCckBHr2VPvnLMEWFsI778Crr7pbLAC++0499u0LcXEeEUG+S8j/wOk4YNRZwlqjozVazbrfRYIJvkJAGXXt2kG07gwaQRz8xb7qjr7sqRMER2m0rElhIUyZAo895pHyPpYkiWGGj2HbNrefXxBcwrBhxAxX9RZtNepquknopEadEFhGnU4HKZHqtmb/rvpl8pvGWnj4tQdgwABniyYIXkmjRp0l+7WsDIxGt8oEsGGd6vc67NTnEB/v9vMLgksIDSW2tVpRsrWrRE3fVxfJJPgUAWXUAXTTq1i6A/urbD6mokLVtgPoMb5vTS8XQfBzGi1rEhEBrVur/WPH3CkSJSWw7Qe1PyxuJ3Tp4tbzC4IriY1Vj3Z76nI32R0rLvgfAWfUpaSpAJz94X1sPiY3F8xmiIqCDh1cJJggeCG1y5qcs8rqoVp1mzdDpTmIjhyh6+AkqaAv+A8lJcRu/RYAU4HZpkMMh9SqU9LRbbL8KgSeUdftyvMAOHAmweZjrEkS0UfRffwfV4glNMKHH35IREQEeXl51temTJlCv379MHpg2c+ZFBQUkJGRgV6vR6/Xk5GRYVMx2507dzJu3Dj0ej0xMTEMGTKEQ4cOuUTGHj1UKROjsQHbzUNGnTWejg3oBjnW8i9Q8Wd98guCg4ndtRkA02nbMorzD6kuEokhp1TDZiGgCTijLiVFPVqWU23BGk934jtYssT5QnmSM2ca30pLbR979mzzYx1g8uTJ9OzZk8zMTADmzJnDihUr+Prrr9Hr9Q7N6S3cdNNN5OTkkJWVRVZWFjk5OWRkZDR5zG+//cawYcPo1asXa9asYfv27Tz55JNEuKjvaXg4dO+u9huNq3OzUWfJfB3GBrj4Yreeu1lEn4SWEBZGTJD6bE2nbfPU5eepcUkxJeK1FgKr+DBAt4QzQDQH9qmWYbZg8dT5ZeZrU3d2V18NX35Z8zwhQQU0NcSIEbBmTc3z5GQ4Wa9sjANZkjqdjrlz53LDDTfQoUMHXnnlFdavX0/Hjh0pKipi5MiRVFRUYDabmT59OlOnTrX7HJ5g586dZGVlkZ2dzeDBgwGYP38+6enp7N69m56WWiL1eOKJJ7j66qt5/vnnra+lWO5UXETv3urGZscOGDmy1h8sXQTcGFNnNsP331d3kmADDHzSbee2CR/WJwslJSX07t2biRMnMm/ePLvPIbQAnY7Y8HI4C0VGG5dfLTF1cfYl/wn+ScB56rrlZwNQWBRCQYFtx1g9dT5co86XGTt2LH369GHOnDksXbqUvn37Aqrw6dq1a8nJyWHTpk1kZmZyykcChTdu3Iher7cadABDhgxBr9fz/fffN3hMVVUVX375JT169GD06NEkJCQwePBgli1b1uS5ysrKMJlMdTZ7aDQDdsoU+N//4H731cb65RcwmXTEhJwldXic9EVygMb0ycLcuXPrfC8F9xIbUQaAyWib0Z5/SjknktrZnvwn+C8B56mL6hJPEscw0J79+yHNhj7gdQsPX+VaAd1NcXHjf6vf9qe6z2ODBNW7P8jNdVik+qxYsYJdu3ZhNptJrHURDw4Otla0Ly0txWw2o3mgZpojGAwGEhLOjetMSEjA0Mhy5vHjxykuLubZZ5/lb3/7G8899xxZWVlMmDCB1atXM2LEiAaPy8zMZM6cOQ7L2mgGbJ8+NX90E5Z4uvSRkQSvWOXWc9uED+sTwN69e9m1axfXXnstv/zyi9POKdhObGQlFNiW/appYChUoReJ7QPORyM0QOB9C9q1oxsHADjwW/N3NmfPwuHDat8vl1+joxvf6sdpNTW2ug9kk2Md4IcffmDixIm89dZbjB49miefrLvcVlhYSP/+/enUqROPPfYY8R6uWTZ79mx0Ol2T29atW4GGq/FrmtZolf6qKvV9ve6663jooYe48MILmTlzJmPHjuXNN99sVKZZs2ZhNBqt22HLF9pGamfAehprksQwz8rRKD6uT4888og13i5QmDt3LkOHDiUqKorWljI9HiQ2Wi27moqbvzwXFUFpZSgAiV3CXSqX4BsEnKeO+HhSWMVGhrL/17NA0z+Ov/2m7ob0FBLPSf8z6ryY3NxcrrnmGmbOnElGRgZ9+vRh4MCBbNu2jbRqF2vr1q3Zvn07+fn5TJgwgRtuuOEc74M7mTZtGpMnT25yTHJyMj/99BP5lgJTtThx4kSj8sfHxxMSEkKfet6x3r17s8Fi7TRAeHg44eGO/+D36qUe8/OhoADatKn+Q1ER/Oc/6sVHHnF4flvRNFi/Xu0PG1pFIN6TtoTm9Onzzz+nR48e9OjRo9EQAH+kvLyciRMnkp6ezjvvvONpcYhppVYbbDHqLE79mBiNqOeedqVYgo8QeEZdWBjdwo9BGRzYXU5zRl3t9mC6oKCa4HDBpZw+fZqrrrqKcePG8fjjjwOQlpbGtddeyxNPPEFWVlad8YmJifTr149169YxceJET4gMKMPLFm9heno6RqORzZs3M2jQIAA2bdqE0Whk6NChDR4TFhbGwIED2W3pZF/Nnj176Nq1a8uFb4SYGHUvc/iwWoK1ildaquLqAB54AEJDXSYDwKFDkJcHIVQwaHwXMPymikcKzWKLPmVnZ7NkyRI+/vhjiouLqaioIDY2lqeeesrD0rsWS2jCokWLPCtINbFvPg+Docjc/Hfbcl+YlKRTqepCwONSoy43N5e//vWvrFq1CoPBQIcOHbjlllt44oknCPNgkcQU/Sk4bltZE2s83fUXwF82qy7ngsuJi4tj5zlBXPD5559b9/Pz84mMjCQ2NhaTycS6deu455573Cmmw/Tu3ZsxY8YwdepU3nrrLQDuvPNOxo4dWyfztVevXmRmZjJ+/HgAHn30USZNmsTw4cO57LLLyMrK4r///S9ramdKukTeBoy6tm2VPlRWqqtLp04ulcHijBzAD0QnxYhBZwe26FNmZqZ16XXRokX88ssvfm/QOUJZWRllZWXW5/YmHjVHbGd99bw6NK3pKiUWT53kCwkWXLp+sWvXLqqqqnjrrbf49ddfeemll3jzzTetd4qeolu8aqp34EjzBprVU3dhlG1ZFYLbOHLkCMOHD6d///4MGzaMadOm0a9fP0+LZTOLFy8mNTWVUaNGMWrUKPr168f7779fZ8zu3bvrFIUdP348b775Js8//zypqaksWLCATz/9lGEuDjJrMK4uKKjmauKGWnW1iw57XX06IWDIzMy0FgzX6/V0dnJIjqVNWFVV4xVvLFg9dQc2Kle2EPC41O00ZswYxowZY32ekpLC7t27eeONNzxa/yhlykiYAbknW2E2n5uUVhurp+5898gm2E5aWho5OTmeFsNh4uLi+OCDD5oc01A27+23387tt9/uKrEapNEM2KQktSbqbqNu4HCXny+QufXWWz0tQouYPXt2sxnfW7Zs4WIHbg5mzZrFjBkzrM9NJpNTDbuorz8lSDeeKi0Ik6npnBjDMVWzMTFvG2jSw1LwQEyd0WgkLi6uyTGudm93nP57Qv8MFRU68vKa7gdu9dR9/Qp0SfPitDtBcB2N1qpzU1eJggJVow7gEr6DgQ+79HyCb2NrwpIjtDTxqDl0P2wjRrscI60xmZoO484/UgGEkYQB2rVzmUyC7+BWo+63337jtdde48UXX2xyXEvrajVHcDB07Qr79sGBA40bdSZTzbXq/A+egoufEaNOCEgsRl1urupQZfUeuKmrxMaN6rEHu0kIOgUXXeTS8wm+ja0JS15Jq1bEYsJIa4qKmh5qOKyMusSwQokxFQAHY+rsqcVl4ejRo4wZM4aJEycyxZIx1wgtravVLIWFpLRVcUpNJUvs26ceE0JPo8ck5UyEgCU+vsYRUCf51k2eujpLr336OFynTRDqc+jQIXJycjh06BBms5mcnBxycnIobqqQtCupNuqg+QLE+QYVnpHUurTpgULA4JCnzl7X9tGjR7nssstIT0/n7bffbnZ+V7u3+e9/6bbpDHC31XBrCGs8na56kBh1QgDTuzecOKGSJQYMqH4xIwMuuwzOO8+l57YaddfGwcg7XHouIbB46qmnePfdd63PL6r2Aq9evZpLL73U/QJFR9ts1BlOKL9MYrxtfWIF/8cho84e13ZeXh6XXXYZaWlpLFy4kKD67W88Qbt2DEBVMZ0/Hx5+GBoK87PG05X/qnbEqBMCmP79Yd06tRR6yy3VL/booTYXUlYGmzer/UvmjQfXnk4IMBYtWuQ1NeoAmz11mgb5hcr5ISVNBAsutbCOHj3KpZdeSufOnZk3bx4nTpzAYDA02tvSbbRrx60som/ILk6cgEcfbXiYxag7nz2qsGoDvToFIVAYOVI9rnJzy9Vt25Rh166dZKELAUCrVsSggumaMuoKC6G8UpVuSOzk2sLfgu/gUqPum2++Yd++faxatYpOnTrRvn176+ZR2rUjjAre0u4C4F//grVrzx1mXX5lryqs6g1eRkHwECNGKBXYtUtVMQFUc+QFC+Dvf1euAxdgXXo97xi64+e2VhMEv6KWp66pRAlLjTq9XiPi7VfdIJjgC7jUSrn11lvRNK3BzaNUR3xfYl7HXbep0il33aW8AbWp3SJMll6FQKdNm5pYOqu3rqoKpk6FJ55o+grUAqxG3cYX4NprXXIOQfAaBg8mdsokoGlPnWXBKylJBxERbhBM8AUC0/UUGWnNnnt2Wh5JSSqjr7pDDgCnTsHp02r/vL1Zyp0nCAHO5Zerx2+/rX4hOlo1hwWXZMBWVcF336l9VXR4oNPPIQheRUQEsR1aAU0bdRZPncTTCbUJTKMOrN661mX5vPKKeikzUy0tQY2XrlMniDqvA3Tv7gEhhdoUFBQwZ84cjrm4JprQOLWNOqvD3YVlTdavVzdXkUGlXMSP0h7MiYg+eS+WVmE2eep++65e/z4hkAlco+6RR+DFF6FTJyZOhKuvhvJytQxbVSXtwbyR6dOns2XLFu655x5PixKwXHIJhIXBkSM1Nz42GXXPPw+33mqX4Wc0qkMAJgV9QiiV4qlzIqJPXkpZGTFffQSAqbCq0WFWT13eNiiVOnWCInCNuvvugxkzoHNndDr45z9VQe5162DhwlrxdIWbVHrsgQOelTfAWb58OcXFxXzxxRe0bt2axYsXe1qkgCQqCoYOVfvWJdjmukr8+CP8+c/w7rvK02apT9IEmqZusHJzoVuncl6uvE+d3NLaQmgRok9eTFAQsauWAlBU2Hj9OdX3FWkRJtQhcI26eiQng6Uz2aOP1sTxnL/3K5g3T7kNBI8xbtw4li5VP3SLFi3i5ptv9rBEgcs5cXXNeeosihUcrNJmf/c7defUBAsXwkcfQUgIfHjbStXRZcAANYfQYkSfvJjQUGJDzgJgMjbhqcurBCCRfDHqBCuBa9SdOqU8BpYu4cCDD8KFF6rm4atXq9d6FP+gdiT7VRCAGqNu9WoVqtCkUWc2Q4cOKjtv40a4/noV53D77fDZZw3Ov3Mn3H+/2v/b32Dw6a/VE1l6FQKE2MgKoJmYuqPKi5cUaZLsV8GKQx0l/IKvvoI//hFSUtRaa1AQISHw9tswZEj1xYrqGnWRkQ23nBCEAOTii6FVK5XAkJMDAyZNUkqTknLu4OBgeP11ZZ3FxcGnn6r99eth3LhzhpeWwh/+ACUlcMUV1YXBDzykDLq+fV3+3gTBG4iJroIiMBU17nfJP64DIDGuwl1iCT5A4Hrqfv970Oth/3743/+sLw8cCNOmqf2gII0U9isvnU7nIUEDmw8//JCIiAjyrNVuYcqUKfTr1w+jLIl7hNBQVYgYqpdgU1JU/9euXRs/yHJTFBQETz0FWVlqbRWU567aY/7YI1Vs3w7t2pp5b+YOgrZtUZnnf/qTZL46AdEn3yC2lfIqGIuDrA6G2lRVQf5p1UUiKaHxJVoh8Ahcoy4qSnnqAN56q86f/vY3GD0aHrhyJ2FUyNKrB5k8eTI9e/Yks7qI4Jw5c1ixYgVff/01er3ew9IFLpYl2CZbhj3/vEqSaIjasXHVcQ//Db+B1/6pfpLePTWW9lf0VYooOA3RJ98gQV9GFGcoLQ/mzjs5x7ArKIBKs9KVhI7SIkyoIXCXX0Gl1732Gnz+ORw9qmJ/ULVUs7KAvy+DFfilUadpaonL3URF2ef01Ol0zJ07lxtuuIEOHTrwyiuvsH79ejp27AhAUVERI0eOpKKiArPZzPTp05k6daqLpBcsWIy6deugvLicsA/fVdmvTzyhDDZLxuusWXDwoCr42BAVFZCXR545kdvMbwIwgxe5KmINxCYoD5+meb2n3F/0yUJJSQm9e/dm4sSJzJs3z8lSC80RrQ/hHe7gZt2/eecd5a1bsKCmU6UlfDUuTiPsY8lcFmoIbKOub19VeOu771THiL/8pe7fjxxRj35o1JWUqLgod1NcbG3mYTNjx46lT58+zJkzh2+++Ya+tWKroqKiWLt2LVFRUZSUlHDBBRcwYcIE2rZt62TJhdpccIFKuDtxAjZtDeZ3d9+t3Al33qkSJ555Rg2cNKlxgw4gNBTzp8u4ZVgppzZFMqBfJX/fcD/EPOyeN+Ik/EWfLMydO5fBgwc7SUrBbt59l8kAqyq5+bYwFi5UNw4LFqh7pppuEtIiTKhL4C6/WrjrLvU4f77K1KvNa68pw86Siid4hBUrVrBr1y7MZjOJ9XriBAcHExUVBUBpaSlms9nzvYUDgKAgGDlS7X+7JrimpILBoLInli1TLqQnn2xynspKuPc+HWs2RRIdDR9+HEJ4TJhLZQ90mtIngL1797Jr1y6uvvpqD0gnAOpGqFMnJv8xjH//WxlyixbBHXeoy1RN31ePSil4IYHtqQO44QZ44AF1G5SbW7cdWHAw1FuW8BeiotRdvifOaw8//PADEydO5K233mLJkiU8+eSTfPzxx3XGFBYWMmLECPbu3csLL7xAfHy8EyUWGuPyy1UtuW+/hdlJScp9YDCoFHKAyZObLBZcWKgced98o+y/t9+GHj3cI7uz8Sd9euSRR3jhhRf4/vvvnSip4CiTJqmbqD/8QdXvrqqCfv3U3xL3boDNYTBokGeFFLwGMeoiI9Xya48eAVXYVKezf9nG3eTm5nLNNdcwc+ZMMjIy6NOnDwMHDmTbtm2kpaVZx7Vu3Zrt27eTn5/PhAkTuOGGGxr0QHgbBQUFTJ8+neXLlwOqIOxrr71G69atGz2muLiYmTNnsmzZMk6dOkVycjLTp0/3SKsnS1xddjYUj0imFdtVMOrSpc166fbvh7FjVU26qChYvFiVsPNV/EWfPv/8c3r06EGPHj3EqPMkX38NK1eqQt3jxzNxonr5D3+A999XhRsAko5sAeMFnpNT8Dpk+RWUN6G+QVdcrDwNjz567rKs4HJOnz7NVVddxbhx43j88ccBSEtL49prr+WJJ55o8JjExET69evHunXr3Cmqw9x0003k5OSQlZVFVlYWOTk5ZGRkNHnMQw89RFZWFh988AE7d+7koYce4v777+fzzz93k9Q1pKSoTiyVlbBeN1y9+Mor6rEJL92GDTB4sDLoOnZUz33ZoPMFbNWn7OxslixZQnJyMo888gjz58/nGUt8pOA+vv8eXnqpTnr5xIk1XVYs1WcSyYeEBA8JKXglmg9gNBo1QDMaja49UXm5pu3cqfZ37NA00LTYWNee0w2cPXtW27Fjh3b27FlPi+J0DAaD9XthNBq1Pn36aNu3b290fFP/C7d9zzRN27FjhwZo2dnZ1tc2btyoAdquXbsaPa5v377aM888U+e1AQMGaH/5y19sPrcz3+fttys1eXjQWrUDmtahg9KfBnjvPU0LC1PD0tI0LS+vxSK4HX/Wp9osXLhQe/jhh5sc4y365Elc8j6ffVYpyW23nfOnTz/VtJCQKg007T1u8U0lEuzG1u+ZeOos/PwzdOmiythXVsLhw+p1P8x89SeOHDnC8OHD6d+/P8OGDWPatGn0swSceDEbN25Er9fXyTAcMmQIer2+yWWvYcOGsXz5cvLy8tA0jdWrV7Nnzx5Ge6iem7UPbF4vtXPjjaqEST0vXVWVSi7/4x9VreEJE1Q5lOoqQoIg1Maylt9AoOaECfDVhyam8RrXswwkhliohcTUWejRQxlzBoNqIXbihHpdjDqvJi0tjZycHE+LYTcGg4GEBpZNEhISMDTUQ7WaV199lalTp9KpUydCQkIICgpiwYIFDBs2rNFjysrKKCsrsz43NdVQ0k4sGbA5eQmcXLaB+P4dazpFVFNSArfeCpZ4/FmzVIHvILml9GpuvfVWT4sQuFjq4zSSfXNl36NcyXRo0wbCJFtcqEF+Vi2Eh6srD6gOE+KpExxg9uzZ6HS6JretW7cCqhBsfTRNa/B1C6+++irZ2dksX76cbdu28eKLL3Lvvffyv1qt7uqTmZmJXq+3bp2d+J1OSqppybq6/BIVZFeLw4dh2DBl0IWGqrIMf/+7GHSC0CTNGHUcP64eLaWEBKEa8dTV5s47Yd48lXlk8WyIUSfYwbRp05g8eXKTY5KTk/npp5/It1QQrcWJEycazdw9e/Ysjz/+OEuXLuWaa64BoF+/fuTk5DBv3jyuuOKKBo+bNWsWM2bMsD43mUxONewuvxx+/VXFdFuy9AA2boTx41Wlk3bt4LPPlIEnCEIzNGfUFRUpD50kSQj1EKOuNuefr65Q335b3akcMeoEu4iPj7epTl56ejpGo5HNmzczqLrG1KZNmzAajQwdOrTBYyoqKqioqCConpsrODiYqoa6flcTHh5OeHi4He/CPi6/HF59tUZlQNXTuvNOFT/Xv7/qxNe1q8tEEAT/whJTd+ZMw38fOxZKS9UmCLWQRZD6WDpMWBCjTnABvXv3ZsyYMUydOpXs7Gyys7OZOnUqY8eOpWfPntZxvXr1YunSpQDExsYyYsQIHn30UdasWcOBAwdYtGgR7733HuPHj/fUW2HECLWcunevqt/9yCMqkqG8XHnqNmwQg04Q7GLAAOX+rn2nVB+dTtVZFYRaiFFXn+uuq3Fpv/suNOI1EYSWsnjxYlJTUxk1ahSjRo2iX79+vP/++3XG7N69G6OlKBWwZMkSBg4cyM0330yfPn149tlnmTt3Lnfffbe7xbei18PAgWp/xAh48UW1/9RT8MknnumJKgg+TXQ09OmjlCs/X2UbSftDwQZk+bU+YWGqX1Fyslo38iOaWqILFLzpfxAXF8cHH3zQ5Bit3g95UlISCxcudKVYDjFyJGzaBIcOKefBokWquok/403fJU8h/wMXs2gRTJ+u9oOCICZG3SXl5ak7qKeeqklBFwTEqGuY667ztAROJSwsjKCgII4ePUq7du0ICwtrMsPSH9E0jfLyck6cOEFQUBBhUgbAqVx3HWRmqj7ky5ZBrS5ufofok+iT26gdM1dVpVpJWDz3a9dKGrlwDmLUBQBBQUF069aNY8eOcfToUU+L41GioqLo0qXLOckGQssYPBi2b1cO7thYT0vjWkSfahB9cjGPPgoPP6wSJoqK1FZcrB5jY+GiizwtoeBliFEXIISFhdGlSxcqKysxB2gv2+DgYEJCQgLOq+IufKCRh9MQfRJ9chuWZdeYGE9LIvgAYtQFEDqdjtDQUEJDQz0tiiD4PKJPgiB4G+IzFwRBEARB8APEqBMEQRAEQfADxKgTBEEQBEHwA3wips5Sq8tkMnlYEsGfsXy/6teG8zdEnwR3IPokCM7DVn3yCaOuqKgIwKlNyAWhMYqKitDr9Z4Ww2WIPgnuRPRJEJxHc/qk03zgNqqqqoqjR48SExNzTvq8yWSic+fOHD58mFg/LpAl79P1aJpGUVERHTp08Ou6W6JPgfM+wXPvVfQpcL5ngfI+wfv1ySc8dUFBQXTq1KnJMbGxsX7/ZQJ5n67Gnz0KFkSfagiU9wmeea+iT4pA+Z4FyvsE79Un/719EgRBEARBCCDEqBMEQRAEQfADfN6oCw8P5+mnnyY8PNzTorgUeZ+COwiU/3+gvE8IrPfqbQTK/z5Q3id4/3v1iUQJQRAEQRAEoWl83lMnCIIgCIIgiFEnCIIgCILgF4hRJwiCIAiC4AeIUScIgiAIguAH+IRR9/rrr9OtWzciIiJIS0tj/fr1TY5fu3YtaWlpREREkJKSwptvvukmSR0jMzOTgQMHEhMTQ0JCAtdffz27d+9u8pg1a9ag0+nO2Xbt2uUmqe1n9uzZ58iblJTU5DG+9ln6AqJP5+KL+gSiU96A6NO5iD55EM3LWbJkiRYaGqrNnz9f27Fjh/bAAw9o0dHR2sGDBxscv3//fi0qKkp74IEHtB07dmjz58/XQkNDtU8++cTNktvO6NGjtYULF2q//PKLlpOTo11zzTValy5dtOLi4kaPWb16tQZou3fv1o4dO2bdKisr3Si5fTz99NNa375968h7/PjxRsf74mfp7Yg+NYwv6pOmiU55GtGnhhF98tzn6fVG3aBBg7S77767zmu9evXSZs6c2eD4xx57TOvVq1ed1+666y5tyJAhLpPR2Rw/flwDtLVr1zY6xqI0BQUF7hOshTz99NNa//79bR7vD5+ltyH61DC+qE+aJjrlaUSfGkb0yXOfp1cvv5aXl7Nt2zZGjRpV5/VRo0bx/fffN3jMxo0bzxk/evRotm7dSkVFhctkdSZGoxGAuLi4ZsdedNFFtG/fnssvv5zVq1e7WrQWs3fvXjp06EC3bt2YPHky+/fvb3SsP3yW3oTok//pE4hOeQrRJ9Enb/w8vdqoO3nyJGazmcTExDqvJyYmYjAYGjzGYDA0OL6yspKTJ0+6TFZnoWkaM2bMYNiwYVxwwQWNjmvfvj1vv/02n376KZ999hk9e/bk8ssvZ926dW6U1j4GDx7Me++9x4oVK5g/fz4Gg4GhQ4dy6tSpBsf7+mfpbYg++Zc+geiUJxF9En3yxs8zxCNntROdTlfnuaZp57zW3PiGXvdGpk2bxk8//cSGDRuaHNezZ0969uxpfZ6ens7hw4eZN28ew4cPd7WYDnHVVVdZ91NTU0lPT6d79+68++67zJgxo8FjfPmz9FZEn87FF/UJRKe8AdGncxF98tzn6dWeuvj4eIKDg8+56zl+/Pg51rGFpKSkBseHhITQtm1bl8nqDO6//36WL1/O6tWr6dSpk93HDxkyhL1797pAMtcQHR1NampqozL78mfpjYg+2Yev6ROITrkT0Sf7EH1yD15t1IWFhZGWlsbKlSvrvL5y5UqGDh3a4DHp6ennjP/mm2+4+OKLCQ0NdZmsLUHTNKZNm8Znn33GqlWr6Natm0Pz/Pjjj7Rv397J0rmOsrIydu7c2ajMvvhZejOiT/bha/oEolPuRPTJPkSf3IQHkjPswpIy/s4772g7duzQHnzwQS06OlrLzc3VNE3TZs6cqWVkZFjHW1KMH3roIW3Hjh3aO++84/EU4+a45557NL1er61Zs6ZOKnVJSYl1TP33+dJLL2lLly7V9uzZo/3yyy/azJkzNUD79NNPPfEWbOLhhx/W1qxZo+3fv1/Lzs7Wxo4dq8XExPjVZ+ntiD4p/EGfNE10ytOIPilEn7zn8/R6o07TNO2f//yn1rVrVy0sLEwbMGBAnVTqP/3pT9qIESPqjF+zZo120UUXaWFhYVpycrL2xhtvuFli+wAa3BYuXGgdU/99Pvfcc1r37t21iIgIrU2bNtqwYcO0L7/80v3C28GkSZO09u3ba6GhoVqHDh20CRMmaL/++qv17/7wWfoCok/+oU+aJjrlDYg+iT550+ep07TqqD5BEARBEATBZ/HqmDpBEARBEATBNsSoEwRBEARB8APEqBMEQRAEQfADxKgTBEEQBEHwA8SoEwRBEARB8APEqBMEQRAEQfADxKgTBEEQBEHwA8SoEwRBEARB8APEqBMEQRAEQfADxKgTBEEQBEHwA8SoEwRBEARB8APEqBMEQRAEQfAD/h+2VfH8YcZ29AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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15S3ZcuWUmOpqFOnTnH27FnGjh2Lk5NTscdkZGSwf/9+RowYQY0aNfT7bW1tGT16NJcuXeLkyZOFzhk2bFih71u3bg2gbwJt06YNDg4OPP/883zzzTecO3euXPEX1zcxPT2dN998k/vuuw87Ozvs7OyoUaMGGRkZHD9+/J7X1Gg0DB06tEj8dzfflqRjx44sX76c999/n3379pGTk1O2JyOEMClJ6oSoRIKDg2nfvn2hLSQkpMhxdevWJTIykpo1a9K/f3/27t1b4jW9vb2LXPNezXNdunTBxcWFzZs3c+bMGc6fP69P6vbv3096ejqbN2+mYcOGBAUF6c/75Zdf8PHxoVu3bvp9V69epU6dOkWae318fLCzszN5k11ycjIA9erVK/GY69evoyiKvim3IH9/f4AicdauXbvQ946OjgDcunULgEaNGrF582Z8fHyYOHEijRo1olGjRsybN8+g+IuL6YknnuCLL75g3LhxbNy4kQMHDnDw4EG8vb319y+Ni4tLkQTX0dFRPxXOvaxatYqnnnqKxYsXExoaSq1atRgzZgyJiYlle1JCCJOQpE6IKiooKIjIyEhq1apF//799bVqxuDg4EC3bt3YvHkzERER1KlTh1atWtGjRw9A7YC/ZcuWQrV0oPane+ihhwr1AaxduzZXrlwpNJgCICkpidzcXH2CqUsyCg6egKLJlKF0/cAuXbpU4jE1a9bExsaGhISEIj/TDX4oz9x+3bt35/fffyc1NZV9+/YRGhrK5MmT+fHHH8t8jbuT4dTUVP744w/eeOMNpk2bRlhYGB06dKBVq1Zcu3bN4BjLw8vLi7lz53L+/HkuXLjAnDlzWLNmjb72VQhhGZLUCVGFNWjQgMjISLy8vBgwYAC7d+822rX79OlDVFQUq1ev1idvrq6udO7cmf/9739cvny5UFIXFxfHwYMHizQXhoWFkZ6eztq1awvt//bbb/U/B3XqFScnJ44ePVrouHXr1hWJ7e5asdI0adKERo0asXTp0iIJo46rqyudOnVizZo1ha6p1WpZsWIF9erVo0mTJve8V0lsbW3p1KkTX375JQDR0dEGPw8djUaDoij6c3UWL15MXl5euWO8W1ljCwwM5KWXXqJv37765yWEsAwZ/SpEJXLs2LEiI1VBbcq7e1SkTv369YmMjKR3794MGDCA8PBwunfvXuFYwsLC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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "uvec = [xe, ue, V_clipped, W]\n", "clipped_resp = ct.input_output_response(lqr_clsys, timepts, uvec, x0)\n", @@ -513,10 +758,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "108c341a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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yxtj/j/6lsRni6ZYAH9/bWLn6lowsTNnsIkt/fbbb4XetmzZYvMYHLH8mFov1paJXVGf8bwXL8boahljYmL00wgZO07+vwm6xC4mJsZoM6il8jbD5h8EUpjCykregRPdu2vfmxs3buj7EQsh7MvsxO6///5j7NixJu9/5pln+O+//6wSlCnLly9n/PjxTJs2jUOHDtGpUyf69u1r8qr43Llz3H///XTq1IlDhw4xdepUXnzxRVatWqXfZ8+ePQwePJgRI0Zw+PBhRowYwaOPPlrkWnGWKF6NXZxBjV1qaippaWmA4ZeBOf3GXFxuN3maao4tTo2dqS89Y/GlpKToO7rfvKld/gus2xQLkJWlTeySkspejV3//v0ZMGAA/fv3N3qbOHGiTc/vqOVHlyTpJinWKY0aO3MuXowJDg7G09MTpZR+FZS8TP1NKF++vL4W/vTp08ULPg9L+9fpFFZWzp7VfV7C6NzZS7+vNMcKUTaYndhVrlyZ3bt3m7x/z549Nh/FN3fuXEaNGsXo0aNp2LAh8+bNIywsjAULFhjd/8svv6R69erMmzePhg0bMnr0aJ566imDhYXnzZtHz549mTJlCg0aNGDKlCl0797dqpMKFq/GLtboqhPe3t76/i9gfr+xovrZFafGzlRTbN5j+Pv76+fF053j3DndfVBIa1axxMdrE7uoqMbkryjJmwTrFoEuTZUrV2bVqlXk5uYavR08eNCm53fU8qObpBgwSJJsseqETlGf8aLKsouLi8maRii8vFmzn50usTN3RKxOYTV2hw9rEzg/v+pUq1b0QBEhROkyO7F75ZVXGDt2LM8//zy//vore/fuZd++ffz66688//zzPPvss0yaNMlmgWZmZnLgwAF69eplsL1Xr14mE849e/YU2L93797s379f3zxiap/CktiMjAySk5MNboWxJGny979dY1fYcmI6lk55YqwSIDc316IYLamxM7b0Wd5mWAtah4qUkJDA1avac2RlNeToUcP7dSsA5OTk2KXZqHXr1oUmb5asTGEpRy4/ukmKwbCfnS0HT5S0xg5M97O7efOm/jkbSxCtldgdP35cv+5ly5YtLXpsYX9XzpzRJqoNGlRHoyl6oIgQZdnIkSPp37+/vcOwKrMTu3HjxrF06VL279/Pww8/TMeOHenQoQMPP/ww+/fvZ+nSpYU21ZbU1atX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ahhOaqyTk5PDyy+/zMyZM4vsfzdz5kwAnn76aapUqWJxzACurq5GlxUTZV/Tpk3Zs2cPPa0xZ44ZLC2HxugSnqSkJAB8fHyKXE6sLFiyBDIztc83JUU7IriwxK5y5cq4urqSlZVVoos3IcoqpZRDtPJIYmdDxVtOTPu/v7+/wdQO1qyx0yV2Z89qk5rg4OBiTcGRPyZjMW7cqP2/dWsICzNeYzdv3jzmzp3L9OnT+fnnn02eb9u2bWzfvh0PDw8mTZpkcbzGYpUvIFEYcz7jRQkODjZovizuwInSlJurGy1uGGthiZ2bm5u+/500x4r8unbtygsvvMD48eMpX748ISEhLFy4kLS0NJ588kn8/PyoU6cOf2r77gAQERHB/fffj6+vLyEhIYwYMcKglWX9+vXce++9BAYGUrFiRR588EHOnj2rvz8zM5Pnn3+eypUr4+XlRc2aNZk9ezYA58+fR6PREB4ert//+vXraDQatm7dCtxuPt2wYQNt2rTB09OTHTt2oJTi/fffp3bt2nh7e9O8eXP98pY669ato169enh7e9OtWzfO513+yMYksbOh4iwnpssBNRqNQUJYVHKYf4mvwtSqpR1UkJ5eso7c5tRm6Mponz7GYzxx4gTTdLMEA88//zwxMTFGzzdjxgwARo8eXeKpLix5vcSdyxo1di4uLgafV0doht28GU6dAh8fw1hNTU6c/35J7EqRUpCWVvq3YsxusGTJEoKCgvjnn3944YUXePbZZ3nkkUfo2LEjBw8epHfv3owYMYIbN24QExNDly5daNGiBfv372f9+vXExcUZLKGXlpbGxIkT+ffff/nrr79wcXFhwIAB+q4An376Kb/99hsrVqzg5MmT/PDDD9TUTQthgUmTJjF79myOHz9Os2bNeP311/nuu+9YsGABx44dY8KECQwfPpxt27YB2oFSAwcO5P777yc8PJzRo0czefJki89bbEqUWFJSkgJUUlKSfltqaqoCCmw35fPPlQKlBg26va1du3b6Y7z99tuFPv7YsWMKUOXLlzcr5lq1lILFClC9evUy6zH5RUVF6eMD1IkTJwzuz85WqkIF7fPauVOpGTNmKECNGTNGKaVUVlaWatu2rQJU7969VevWrRWgHnzwQZWbm2twrO3btytAubu7qwsXLhQr3rxGjBihAPXee++Ztb+x91hYR1l+bdPT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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot_estimator_response(timepts, est_clipped, U, V_clipped, Y, W)" ] @@ -533,10 +789,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "121d67ba", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MHE for continuous time systems not implemented\n" + ] + } + ], "source": [ "# Use a shorter horizon\n", "mhe_timepts = timepts[0:5]\n", @@ -557,10 +821,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "1914ad96", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sample time: Ts=0.1\n", + ": sys[9]\n", + "Inputs (4): ['F1', 'F2', 'Dx', 'Dy']\n", + "Outputs (3): ['x', 'y', 'theta']\n", + "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", + "\n", + "Update: at 0x1662e3490>\n", + "Output: at 0x165cf9c60>\n" + ] + } + ], "source": [ "# Create discrete time version of PVTOL\n", "Ts = 0.1\n", @@ -575,10 +854,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "11162130", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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ZyaIWmqSCIIgCIIgMgRSXgiCIAiCyCooeCEIgiAIIqug4IUgCIIgiKyCgheCIAiCILIKCl40snjxYowYMQI5OTmYPHkyVq9ene5dymg++ugjXHbZZaiuroYgCHjrrbfSvUsZy8KFC3HmmWeisLAQ5eXluPLKK7Fz585071ZG89hjj2HixIm8CVZNTQ3ee++9dO9W1rBw4UIIgoC77ror3buSsTzwwAMQBCHkVllZme7dymiOHj2K//mf/0FpaSny8vIwadIkbN682ZTXouBFA0uWLMFdd92F+++/H59++inOOecczJ49G4cOHUr3rmUsXV1dOO200yKaEhKRrFq1Cj/84Q+xbt06LF++HD6fD7W1tejq6kr3rmUsgwcPxu9+9zts2rQJmzZtwte+9jVcccUV+PLLL9O9axnPxo0b8eSTT2LixInp3pWMZ9y4cairq+O3zz//PN27lLG0tLTgrLPOgt1ux3vvvYft27fjj3/8I4qLi015PSqV1sC0adNwxhln4LHHHuP3jR07FldeeSUWLlyYxj3LDgRBwJtvvokrr7wy3buSFTQ2NqK8vByrVq3Cueeem+7dyRpKSkrw8MMP45Zbbkn3rmQsnZ2dOOOMM7B48WL85je/waRJk7Bo0aJ071ZG8sADD+Ctt97C1q1b070rWcG9996LTz75JGVZCVJe4uDxeLB582Y+4oBRW1uLNWvWpGmviL4MG5dRUlKS5j3JDvx+P1599VV0dXWhpqYm3buT0fzwhz/EJZdcggsuuCDdu5IV7N69G9XV1RgxYgSuvfZa7Nu3L927lLG8/fbbmDJlCr797W+jvLwcp59+Op566inTXo+Clzg0NTXB7/ejoqIi5P6KigrU19enaa+Ivoooipg/fz7OPvtsjB8/Pt27k9F8/vnnKCgogNPpxNy5c/Hmm2/i1FNPTfduZSyvvvoqtmzZQmqxRqZNm4YXXngB77//Pp566inU19djxowZOHHiRLp3LSPZt28fHnvsMZxyyil4//33MXfuXNx555144YUXTHk9U2cb9SUEQQj5WRTFiPsIIlluv/12bNu2DR9//HG6dyXjGT16NLZu3YrW1la8/vrruPHGG7Fq1SoKYFQ4fPgwfvSjH+GDDz5ATk5OuncnK5g9ezb//4QJE1BTU4OTTz4Zf/vb3zB//vw07llmEggEMGXKFDz00EMAgNNPPx1ffvklHnvsMdxwww2Gvx4pL3EoKyuD1WqNUFkaGhoi1BiCSIY77rgDb7/9NlasWIHBgwene3cyHofDgZEjR2LKlClYuHAhTjvtNPzpT39K925lJJs3b0ZDQwMmT54Mm80Gm82GVatW4dFHH4XNZoPf70/3LmY8+fn5mDBhAnbv3p3uXclIqqqqIhYOY8eONa2whYKXODgcDkyePBnLly8PuX/58uWYMWNGmvaK6EuIoojbb78db7zxBj788EOMGDEi3buUlYiiCLfbne7dyEjOP/98fP7559i6dSu/TZkyBddffz22bt0Kq9Wa7l3MeNxuN3bs2IGqqqp070pGctZZZ0W0eNi1axeGDRtmyutR2kgD8+fPx5w5czBlyhTU1NTgySefxKFDhzB37tx071rG0tnZiT179vCf9+/fj61bt6KkpARDhw5N455lHj/84Q/x8ssv41//+hcKCwu5yudyuZCbm5vmvctM7rvvPsyePRtDhgxBR0cHXn31VaxcuRLLli1L965lJIWFhREeqvz8fJSWlpK3Kgo/+clPcNlll2Ho0KFoaGjAb37zG7S3t+PGG29M965lJHfffTdmzJiBhx56CFdffTU2bNiAJ598Ek8++aQ5LygSmvjrX/8qDhs2THQ4HOIZZ5whrlq1Kt27lNGsWLFCBBBxu/HGG9O9axmH2ucEQHzuuefSvWsZy80338y/jwMHDhTPP/988YMPPkj3bmUVM2fOFH/0ox+lezcylmuuuUasqqoS7Xa7WF1dLX7jG98Qv/zyy3TvVkbzzjvviOPHjxedTqc4ZswY8cknnzTttajPC0EQBEEQWQV5XgiCIAiCyCooeCEIgiAIIqug4IUgCIIgiKyCgheCIAiCILIKCl4IgiAIgsgqKHghCIIgCCKroOCFIAiCIIisgoIXgiAIgiCyCgpeCIIgCILIKih4IQiCIAgiq6DghSAIgiCIrIKCF4IgCIIgsor/D1oD5LiJnCv+AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create a new list of time points\n", "timepts = np.arange(0, Tf, Ts)\n", @@ -596,7 +886,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "c8a6a693", "metadata": {}, "outputs": [], @@ -610,10 +900,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "d683767f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "mhe_timepts = timepts[0:10]\n", "oep = opt.OptimalEstimationProblem(\n", @@ -630,7 +931,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "id": "bfc68072", "metadata": {}, "outputs": [], @@ -644,10 +945,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "49213d04", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "mhe_timepts = timepts[0:8]\n", "oep = opt.OptimalEstimationProblem(\n", @@ -661,19 +973,25 @@ ")\n", "plot_state_comparison(timepts, mhe_resp.outputs, lqr_resp.states)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "650a559a", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" } }, "nbformat": 4, From 981104bf9b80280ac59634d5598332b52f7eaea6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 10:29:31 -0700 Subject: [PATCH 0225/1025] use obc as standard prefix for control.optimal --- examples/kincar-flatsys.py | 10 +++++----- examples/mpc_aircraft.ipynb | 8 ++++---- examples/steering-optimal.py | 24 ++++++++++++------------ 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/examples/kincar-flatsys.py b/examples/kincar-flatsys.py index 2ebee3133..b61a9e1c5 100644 --- a/examples/kincar-flatsys.py +++ b/examples/kincar-flatsys.py @@ -10,7 +10,7 @@ import matplotlib.pyplot as plt import control as ct import control.flatsys as fs -import control.optimal as opt +import control.optimal as obc # # System model and utility functions @@ -147,7 +147,7 @@ def plot_results(t, x, ud, rescale=True): basis = fs.PolyFamily(8) # Define the cost function (penalize lateral error and steering) -traj_cost = opt.quadratic_cost( +traj_cost = obc.quadratic_cost( vehicle_flat, np.diag([0, 0.1, 0]), np.diag([0.1, 1]), x0=xf, u0=uf) # Solve for an optimal solution @@ -168,7 +168,7 @@ def plot_results(t, x, ud, rescale=True): # Constraint the input values constraints = [ - opt.input_range_constraint(vehicle_flat, [8, -0.1], [12, 0.1]) ] + obc.input_range_constraint(vehicle_flat, [8, -0.1], [12, 0.1]) ] # TEST: Change the basis to use B-splines basis = fs.BSplineFamily([0, Tf/2, Tf], 6) @@ -198,11 +198,11 @@ def plot_results(t, x, ud, rescale=True): # # Define the cost function (mainly penalize steering angle) -traj_cost = opt.quadratic_cost( +traj_cost = obc.quadratic_cost( vehicle_flat, None, np.diag([0.1, 10]), x0=xf, u0=uf) # Set terminal cost to bring us close to xf -terminal_cost = opt.quadratic_cost(vehicle_flat, 1e3 * np.eye(3), None, x0=xf) +terminal_cost = obc.quadratic_cost(vehicle_flat, 1e3 * np.eye(3), None, x0=xf) # Change the basis to use B-splines basis = fs.BSplineFamily([0, Tf/2, Tf], [4, 6], vars=2) diff --git a/examples/mpc_aircraft.ipynb b/examples/mpc_aircraft.ipynb index 5da812eb0..a1edf3ebb 100644 --- a/examples/mpc_aircraft.ipynb +++ b/examples/mpc_aircraft.ipynb @@ -19,7 +19,7 @@ "source": [ "import control as ct\n", "import numpy as np\n", - "import control.optimal as opt\n", + "import control.optimal as obc\n", "import matplotlib.pyplot as plt" ] }, @@ -70,15 +70,15 @@ "# model.y.reference = ys;\n", "\n", "# provide constraints on the system signals\n", - "constraints = [opt.input_range_constraint(sys, [-5, -6], [5, 6])]\n", + "constraints = [obc.input_range_constraint(sys, [-5, -6], [5, 6])]\n", "\n", "# provide penalties on the system signals\n", "Q = model.C.transpose() @ np.diag([10, 10, 10, 10]) @ model.C\n", "R = np.diag([3, 2])\n", - "cost = opt.quadratic_cost(model, Q, R, x0=xd, u0=ud)\n", + "cost = obc.quadratic_cost(model, Q, R, x0=xd, u0=ud)\n", "\n", "# online MPC controller object is constructed with a horizon 6\n", - "ctrl = opt.create_mpc_iosystem(model, np.arange(0, 6) * 0.2, cost, constraints)" + "ctrl = obc.create_mpc_iosystem(model, np.arange(0, 6) * 0.2, cost, constraints)" ] }, { diff --git a/examples/steering-optimal.py b/examples/steering-optimal.py index 778ac3c25..d9bad608e 100644 --- a/examples/steering-optimal.py +++ b/examples/steering-optimal.py @@ -8,7 +8,7 @@ import numpy as np import math import control as ct -import control.optimal as opt +import control.optimal as obc import matplotlib.pyplot as plt import logging import time @@ -106,7 +106,7 @@ def plot_lanechange(t, y, u, yf=None, figure=None): # Set up the cost functions Q = np.diag([.1, 10, .1]) # keep lateral error low R = np.diag([.1, 1]) # minimize applied inputs -quad_cost = opt.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) +quad_cost = obc.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) # Define the time horizon (and spacing) for the optimization timepts = np.linspace(0, Tf, 20, endpoint=True) @@ -124,7 +124,7 @@ def plot_lanechange(t, y, u, yf=None, figure=None): # Compute the optimal control, setting step size for gradient calculation (eps) start_time = time.process_time() -result1 = opt.solve_ocp( +result1 = obc.solve_ocp( vehicle, timepts, x0, quad_cost, initial_guess=straight_line, log=True, # minimize_method='trust-constr', # minimize_options={'finite_diff_rel_step': 0.01}, @@ -158,9 +158,9 @@ def plot_lanechange(t, y, u, yf=None, figure=None): print("\nApproach 2: input cost and constraints plus terminal cost") # Add input constraint, input cost, terminal cost -constraints = [ opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] -traj_cost = opt.quadratic_cost(vehicle, None, np.diag([0.1, 1]), u0=uf) -term_cost = opt.quadratic_cost(vehicle, np.diag([1, 10, 10]), None, x0=xf) +constraints = [ obc.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] +traj_cost = obc.quadratic_cost(vehicle, None, np.diag([0.1, 1]), u0=uf) +term_cost = obc.quadratic_cost(vehicle, np.diag([1, 10, 10]), None, x0=xf) # Change logging to keep less information logging.basicConfig( @@ -175,7 +175,7 @@ def plot_lanechange(t, y, u, yf=None, figure=None): # Compute the optimal control start_time = time.process_time() -result2 = opt.solve_ocp( +result2 = obc.solve_ocp( vehicle, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, initial_guess=straight_line, log=True, # minimize_method='SLSQP', minimize_options={'eps': 0.01} @@ -207,10 +207,10 @@ def plot_lanechange(t, y, u, yf=None, figure=None): # Input cost and terminal constraints R = np.diag([1, 1]) # minimize applied inputs -cost3 = opt.quadratic_cost(vehicle, np.zeros((3,3)), R, u0=uf) +cost3 = obc.quadratic_cost(vehicle, np.zeros((3,3)), R, u0=uf) constraints = [ - opt.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] -terminal = [ opt.state_range_constraint(vehicle, xf, xf) ] + obc.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] +terminal = [ obc.state_range_constraint(vehicle, xf, xf) ] # Reset logging to its default values logging.basicConfig( @@ -219,7 +219,7 @@ def plot_lanechange(t, y, u, yf=None, figure=None): # Compute the optimal control start_time = time.process_time() -result3 = opt.solve_ocp( +result3 = obc.solve_ocp( vehicle, timepts, x0, cost3, constraints, terminal_constraints=terminal, initial_guess=straight_line, log=False, # solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2}, @@ -254,7 +254,7 @@ def plot_lanechange(t, y, u, yf=None, figure=None): # Compute the optimal control start_time = time.process_time() -result4 = opt.solve_ocp( +result4 = obc.solve_ocp( vehicle, timepts, x0, quad_cost, constraints, terminal_constraints=terminal, From 6a18702914202cd46811c6d85b3db58ce3486aa2 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 13:32:21 -0700 Subject: [PATCH 0226/1025] update installation instructions per issue #850 --- README.rst | 28 +++++++++++++++-------- doc/conventions.rst | 54 ++++++++++++++++++++++----------------------- doc/intro.rst | 54 +++++++++++++++++++++++++-------------------- 3 files changed, 76 insertions(+), 60 deletions(-) diff --git a/README.rst b/README.rst index f3e3a13ff..ebcf77c43 100644 --- a/README.rst +++ b/README.rst @@ -22,14 +22,17 @@ Python Control Systems Library The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems. - Have a go now! -============== +-------------- Try out the examples in the examples folder using the binder service. .. image:: https://mybinder.org/badge_logo.svg :target: https://mybinder.org/v2/gh/python-control/python-control/HEAD +The package can also be installed on Google Colab using the commands:: + + !pip install control + import control as ct Features -------- @@ -44,7 +47,7 @@ Features - Nonlinear systems: optimization-based control, describing functions, differential flatness Links -===== +----- - Project home page: http://python-control.org - Source code repository: https://github.com/python-control/python-control @@ -52,9 +55,8 @@ Links - Issue tracker: https://github.com/python-control/python-control/issues - Mailing list: http://sourceforge.net/p/python-control/mailman/ - Dependencies -============ +------------ The package requires numpy, scipy, and matplotlib. In addition, some routines use a module called slycot, that is a Python wrapper around some FORTRAN @@ -64,6 +66,7 @@ functionality is limited or absent, and installation of slycot is recommended https://github.com/python-control/Slycot + Installation ============ @@ -73,7 +76,7 @@ Conda and conda-forge The easiest way to get started with the Control Systems library is using `Conda `_. -The Control Systems library has been packages for the `conda-forge +The Control Systems library has packages available using the `conda-forge `_ Conda channel, and as of Slycot version 0.3.4, binaries for that package are available for 64-bit Windows, OSX, and Linux. @@ -83,6 +86,10 @@ conda environment, run:: conda install -c conda-forge control slycot +Mixing packages from conda-forge and the default conda channel can +sometimes cause problems with dependencies, so it is usually best to +instally NumPy, SciPy, and Matplotlib from conda-forge as well. + Pip --- @@ -92,7 +99,8 @@ To install using pip:: pip install control If you install Slycot using pip you'll need a development environment -(e.g., Python development files, C and Fortran compilers). +(e.g., Python development files, C and Fortran compilers). Pip +installation can be particularly complicated for Windows. Installing from source ---------------------- @@ -106,11 +114,13 @@ toplevel `python-control` directory:: Article and Citation Information ================================ -An `article `_ about the library is available on IEEE Explore. If the Python Control Systems Library helped you in your research, please cite:: +An `article `_ about +the library is available on IEEE Explore. If the Python Control Systems Library helped you in your research, please cite:: @inproceedings{python-control2021, title={The Python Control Systems Library (python-control)}, - author={Fuller, Sawyer and Greiner, Ben and Moore, Jason and Murray, Richard and van Paassen, Ren{\'e} and Yorke, Rory}, + author={Fuller, Sawyer and Greiner, Ben and Moore, Jason and + Murray, Richard and van Paassen, Ren{\'e} and Yorke, Rory}, booktitle={60th IEEE Conference on Decision and Control (CDC)}, pages={4875--4881}, year={2021}, diff --git a/doc/conventions.rst b/doc/conventions.rst index 476366714..5dc2e3d76 100644 --- a/doc/conventions.rst +++ b/doc/conventions.rst @@ -6,8 +6,11 @@ Library conventions ******************* -The python-control library uses a set of standard conventions for the way -that different types of standard information used by the library. +The python-control library uses a set of standard conventions for the +way that different types of standard information used by the library. +Throughout this manual, we assume the `control` package has been +imported as `ct`. + LTI system representation ========================= @@ -29,7 +32,7 @@ of linear time-invariant (LTI) systems: where u is the input, y is the output, and x is the state. -To create a state space system, use the :func:`ss` function: +To create a state space system, use the :func:`ss` function:: sys = ct.ss(A, B, C, D) @@ -51,7 +54,7 @@ transfer functions where n is generally greater than or equal to m (for a proper transfer function). -To create a transfer function, use the :func:`tf` function: +To create a transfer function, use the :func:`tf` function:: sys = ct.tf(num, den) @@ -77,7 +80,7 @@ performed. The FRD class is also used as the return type for the :func:`frequency_response` function (and the equivalent method for the :class:`StateSpace` and :class:`TransferFunction` classes). This -object can be assigned to a tuple using +object can be assigned to a tuple using:: mag, phase, omega = response @@ -91,7 +94,7 @@ is not SISO or `squeeze` is False, the array is 3D, indexed by the output, input, and frequency. If `squeeze` is True then single-dimensional axes are removed. The processing of the `squeeze` keyword can be changed by calling the response function with a new -argument: +argument:: mag, phase, omega = response(squeeze=False) @@ -101,10 +104,10 @@ Discrete time systems A discrete time system is created by specifying a nonzero 'timebase', dt. The timebase argument can be given when a system is constructed: -* dt = 0: continuous time system (default) -* dt > 0: discrete time system with sampling period 'dt' -* dt = True: discrete time with unspecified sampling period -* dt = None: no timebase specified +* `dt = 0`: continuous time system (default) +* `dt > 0`: discrete time system with sampling period 'dt' +* `dt = True`: discrete time with unspecified sampling period +* `dt = None`: no timebase specified Only the :class:`StateSpace`, :class:`TransferFunction`, and :class:`InputOutputSystem` classes allow explicit representation of @@ -119,8 +122,8 @@ result will have the timebase of the latter system. For continuous time systems, the :func:`sample_system` function or the :meth:`StateSpace.sample` and :meth:`TransferFunction.sample` methods can be used to create a discrete time system from a continuous time system. See -:ref:`utility-and-conversions`. The default value of 'dt' can be changed by -changing the value of ``control.config.defaults['control.default_dt']``. +:ref:`utility-and-conversions`. The default value of `dt` can be changed by +changing the value of `control.config.defaults['control.default_dt']`. Conversion between representations ---------------------------------- @@ -165,10 +168,9 @@ points in time, rows are different components:: ... [ui(t1), ui(t2), ui(t3), ..., ui(tn)]] - Same for X, Y - -So, U[:,2] is the system's input at the third point in time; and U[1] or U[1,:] -is the sequence of values for the system's second input. +(and similarly for `X`, `Y`). So, `U[:, 2]` is the system's input at the +third point in time; and `U[1]` or `U[1, :]` is the sequence of values for +the system's second input. When there is only one row, a 1D object is accepted or returned, which adds convenience for SISO systems: @@ -185,8 +187,10 @@ Functions that return time responses (e.g., :func:`forced_response`, :func:`impulse_response`, :func:`input_output_response`, :func:`initial_response`, and :func:`step_response`) return a :class:`TimeResponseData` object that contains the data for the time -response. These data can be accessed via the ``time``, ``outputs``, -``states`` and ``inputs`` properties:: +response. These data can be accessed via the +:attr:`~TimeResponseData.time`, :attr:`~TimeResponseData.outputs`, +:attr:`~TimeResponseData.states` and :attr:`~TimeResponseData.inputs` +properties:: sys = ct.rss(4, 1, 1) response = ct.step_response(sys) @@ -213,13 +217,13 @@ The output of a MIMO LTI system can be plotted like this:: plot(t, y[1], label='y_1') The convention also works well with the state space form of linear -systems. If ``D`` is the feedthrough matrix (2D array) of a linear system, -and ``U`` is its input (array), then the feedthrough part of the system's +systems. If `D` is the feedthrough matrix (2D array) of a linear system, +and `U` is its input (array), then the feedthrough part of the system's response, can be computed like this:: ft = D @ U -Finally, the `to_pandas()` function can be used to create a pandas dataframe: +Finally, the `to_pandas()` function can be used to create a pandas dataframe:: df = response.to_pandas() @@ -242,16 +246,12 @@ for various types of plots and establishing the underlying representation for state space matrices. To set the default value of a configuration variable, set the appropriate -element of the `control.config.defaults` dictionary: - -.. code-block:: python +element of the `control.config.defaults` dictionary:: ct.config.defaults['module.parameter'] = value The `~control.config.set_defaults` function can also be used to set multiple -configuration parameters at the same time: - -.. code-block:: python +configuration parameters at the same time:: ct.config.set_defaults('module', param1=val1, param2=val2, ...] diff --git a/doc/intro.rst b/doc/intro.rst index ce01aca15..9d4198c56 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -31,23 +31,43 @@ some thing to keep in mind: * You must include commas in vectors. So [1 2 3] must be [1, 2, 3]. * Functions that return multiple arguments use tuples. * You cannot use braces for collections; use tuples instead. +* Time series data have time as the final index (see + :ref:`time-series-convention`). Installation ============ -The `python-control` package can be installed using pip, conda or the -standard setuptools mechanisms. The package requires `numpy`_ and -`scipy`_, and the plotting routines require `matplotlib -`_. In addition, some routines require the `slycot -`_ library in order to implement -more advanced features (including some MIMO functionality). +The `python-control` package can be installed using conda or pip. The +package requires `NumPy`_ and `SciPy`_, and the plotting routines +require `Matplotlib `_. In addition, some +routines require the `Slycot +`_ library in order to +implement more advanced features (including some MIMO functionality). +For users with the Anaconda distribution of Python, the following +command can be used:: + + conda install -c conda-forge control slycot + +This installs `slycot` and `python-control` from conda-forge, including the +`openblas` package. NumPy, SciPy, and Matplotlib will also be installed if +they are not already present. + +.. note:: + Mixing packages from conda-forge and the default conda channel + can sometimes cause problems with dependencies, so it is usually best to + instally NumPy, SciPy, and Matplotlib from conda-forge as well.) To install using pip:: pip install slycot # optional pip install control +.. note:: + If you install Slycot using pip you'll need a development + environment (e.g., Python development files, C and Fortran compilers). + Pip installation can be particularly complicated for Windows. + Many parts of `python-control` will work without `slycot`, but some functionality is limited or absent, and installation of `slycot` is recommended. Users can check to insure that slycot is installed @@ -56,28 +76,14 @@ correctly by running the command:: python -c "import slycot" and verifying that no error message appears. More information on the -slycot package can be obtained from the `slycot project page +Slycot package can be obtained from the `Slycot project page `_. -For users with the Anaconda distribution of Python, the following -commands can be used:: - - conda install numpy scipy matplotlib # if not yet installed - conda install -c conda-forge control slycot - -This installs `slycot` and `python-control` from conda-forge, including the -`openblas` package. - -Alternatively, to use setuptools, first `download the source +Alternatively, to install from source, first `download the source `_ and unpack it. To install in your home directory, use:: - python setup.py install --user - -or to install for all users (on Linux or Mac OS):: - - python setup.py build - sudo python setup.py install + pip install . Getting started =============== @@ -85,7 +91,7 @@ Getting started There are two different ways to use the package. For the default interface described in :ref:`function-ref`, simply import the control package as follows:: - >>> import control + >>> import control as ct If you want to have a MATLAB-like environment, use the :ref:`matlab-module`:: From 1d670a7f702d0d284ae35d05393c214f3b1febf7 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 14:30:20 -0700 Subject: [PATCH 0227/1025] deprecate ctrlutil.issys() --- control/ctrlutil.py | 3 +++ control/matlab/wrappers.py | 4 ++-- control/tests/ctrlutil_test.py | 8 +++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/control/ctrlutil.py b/control/ctrlutil.py index fa7b91ee5..425812dc1 100644 --- a/control/ctrlutil.py +++ b/control/ctrlutil.py @@ -44,6 +44,7 @@ from . import lti import numpy as np import math +import warnings __all__ = ['unwrap', 'issys', 'db2mag', 'mag2db'] @@ -99,6 +100,8 @@ def issys(obj): False """ + warnings.warn("issys() is deprecated; use isinstance(obj, ct.LTI)", + FutureWarning, stacklevel=2) return isinstance(obj, lti.LTI) def db2mag(db): diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 1c4ee053a..e7d757248 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -5,7 +5,7 @@ import numpy as np from ..iosys import ss from ..xferfcn import tf -from ..ctrlutil import issys +from ..lti import LTI from ..exception import ControlArgument from scipy.signal import zpk2tf from warnings import warn @@ -124,7 +124,7 @@ def _parse_freqplot_args(*args): i = 0 while i < len(args): # Check to see if this is a system of some sort - if issys(args[i]): + if isinstance(args[i], LTI): # Append the system to our list of systems syslist.append(args[i]) i += 1 diff --git a/control/tests/ctrlutil_test.py b/control/tests/ctrlutil_test.py index 460ff601c..758c98b66 100644 --- a/control/tests/ctrlutil_test.py +++ b/control/tests/ctrlutil_test.py @@ -1,7 +1,8 @@ """ctrlutil_test.py""" import numpy as np - +import pytest +import control as ct from control.ctrlutil import db2mag, mag2db, unwrap class TestUtils: @@ -58,3 +59,8 @@ def test_mag2db(self): def test_mag2db_array(self): db_array = mag2db(self.mag) np.testing.assert_array_almost_equal(db_array, self.db) + + def test_issys(self): + sys = ct.rss(2, 1, 1) + with pytest.warns(FutureWarning, match="deprecated; use isinstance"): + ct.issys(sys) From 423744aea70cd0243b55546938f76aa06710a3ee Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 15:12:36 -0700 Subject: [PATCH 0228/1025] add documentation on scaled portions of Nyquist plot --- control/freqplot.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index c20fb189e..25de3c11b 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -558,21 +558,21 @@ def nyquist_plot( List of linear input/output systems (single system is OK). Nyquist curves for each system are plotted on the same graph. - plot : boolean - If True, plot magnitude - - omega : array_like + omega : array_like, optional Set of frequencies to be evaluated, in rad/sec. - omega_limits : array_like of two values + omega_limits : array_like of two values, optional Limits to the range of frequencies. Ignored if omega is provided, and auto-generated if omitted. - omega_num : int + omega_num : int, optional Number of frequency samples to plot. Defaults to config.defaults['freqplot.number_of_samples']. - color : string + plot : boolean, optional + If True (default), plot the Nyquist plot. + + color : string, optional Used to specify the color of the line and arrowhead. return_contour : bool, optional @@ -690,6 +690,13 @@ def nyquist_plot( to `none` will turn off indentation. If `return_contour` is True, the exact contour used for evaluation is returned. + 3. For those portions of the Nyquist plot in which the contour is + indented to avoid poles, resuling in a scaling of the Nyquist plot, + the line styles are according to the settings of the `primary_style` + and `mirror_style` keywords. By default the scaled portions of the + primary curve use a dotted line style and the scaled portion of the + mirror image use a dashdot line style. + Examples -------- >>> G = ct.zpk([], [-1, -2, -3], gain=100) From 1aa6a7e775c114d630ab42b8e18ee99482b3efa5 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 16:58:55 -0700 Subject: [PATCH 0229/1025] fix sphinx version processing to point to released source code --- doc/conf.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index a76b1c486..9c28ef216 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -37,11 +37,12 @@ import re import control +# Get the version number for this commmit (including alpha/beta/rc tags) +release = re.sub('^v', '', os.popen('git describe').read().strip()) + # The short X.Y.Z version -version = re.sub(r'(\d+\.\d+\.\d+)(.*)', r'\1', control.__version__) +version = re.sub(r'(\d+\.\d+\.\d+(.post\d+)?)(.*)', r'\1', release) -# The full version, including alpha/beta/rc tags -release = control.__version__ print("version %s, release %s" % (version, release)) # -- General configuration --------------------------------------------------- @@ -206,11 +207,10 @@ def linkcode_resolve(domain, info): linespec = "" base_url = "https://github.com/python-control/python-control/blob/" - if 'dev' in control.__version__: + if release != version: # development release return base_url + "main/control/%s%s" % (fn, linespec) - else: - return base_url + "%s/control/%s%s" % ( - control.__version__, fn, linespec) + else: # specific version + return base_url + "%s/control/%s%s" % (version, fn, linespec) # Don't automaticall show all members of class in Methods & Attributes section numpydoc_show_class_members = False From 7350e7937d789554db8ee9eccda896928ca9be81 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 18:04:53 -0700 Subject: [PATCH 0230/1025] add known failure for OS/BLAS matrix: numpy 1.24.2 --- control/tests/flatsys_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 95fb8cf7c..7f480f43a 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -212,7 +212,7 @@ def test_kinematic_car_ocp( elif re.match("Iteration limit.*", traj_ocp.message) and \ re.match( "conda ubuntu-3.* Generic", os.getenv('JOBNAME', '')) and \ - re.match("1.24.[01]", np.__version__): + re.match("1.24.[012]", np.__version__): pytest.xfail("gh820: iteration limit exceeded") else: From 1d7480a410a6210de2acc65d0d7b9092abcf2d43 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 26 Mar 2023 19:39:39 -0700 Subject: [PATCH 0231/1025] reset_defaults() at start of each doctest --- control/config.py | 5 ----- doc/conf.py | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/control/config.py b/control/config.py index f7f449bb8..f75bd52db 100644 --- a/control/config.py +++ b/control/config.py @@ -76,7 +76,6 @@ def set_defaults(module, **keywords): >>> ct.defaults['freqplot.number_of_samples'] 100 >>> # do some customized freqplotting - >>> ct.reset_defaults() """ if not isinstance(module, str): @@ -209,7 +208,6 @@ def use_matlab_defaults(): -------- >>> ct.use_matlab_defaults() >>> # do some matlab style plotting - >>> ct.reset_defaults() """ set_defaults('freqplot', dB=True, deg=True, Hz=False, grid=True) @@ -229,7 +227,6 @@ def use_fbs_defaults(): -------- >>> ct.use_fbs_defaults() >>> # do some FBS style plotting - >>> ct.reset_defaults() """ set_defaults('freqplot', dB=False, deg=True, Hz=False, grid=False) @@ -263,7 +260,6 @@ class and functions. If flat is `False`, then matrices are -------- >>> ct.use_numpy_matrix(True, False) >>> # do some legacy calculations using np.matrix - >>> ct.reset_defaults() """ if flag and warn: @@ -285,7 +281,6 @@ def use_legacy_defaults(version): >>> ct.use_legacy_defaults("0.9.0") (0, 9, 0) >>> # do some legacy style plotting - >>> ct.reset_defaults() """ import re diff --git a/doc/conf.py b/doc/conf.py index 9c28ef216..5fb7342f4 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -282,4 +282,5 @@ def linkcode_resolve(domain, info): import control as ct import control.optimal as obc import control.flatsys as fs +ct.reset_defaults() """ From 07c9e637a09185dbf7041d8ccc7135bed51037ee Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 7 Apr 2023 13:09:23 -0700 Subject: [PATCH 0232/1025] add new examples of interconnect and simulating sampled data systems. --- doc/examples.rst | 6 +- examples/interconnect_tutorial.ipynb | 363 +++++++++++ .../simulating_sampled_data_systems.ipynb | 584 ++++++++++++++++++ 3 files changed, 951 insertions(+), 2 deletions(-) create mode 100644 examples/interconnect_tutorial.ipynb create mode 100644 examples/simulating_sampled_data_systems.ipynb diff --git a/doc/examples.rst b/doc/examples.rst index a7ddfacde..1ea328bd7 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -8,7 +8,7 @@ Examples The source code for the examples below are available in the `examples/` subdirecory of the source code distribution. The can also be accessed online via the [python-control GitHub repository](https://github.com/python-control/python-control/tree/master/examples). - + Python scripts ============== @@ -44,10 +44,12 @@ using running examples in FBS2e. cruise describing_functions + interconnect_tutorial kincar-fusion mhe-pvtol mpc_aircraft - steering pvtol-lqr-nested pvtol-outputfbk + simulating_sampled_data_systems + steering stochresp diff --git a/examples/interconnect_tutorial.ipynb b/examples/interconnect_tutorial.ipynb new file mode 100644 index 000000000..1fc7f7d07 --- /dev/null +++ b/examples/interconnect_tutorial.ipynb @@ -0,0 +1,363 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "76a6ed14", + "metadata": {}, + "source": [ + "## Interconnect Tutorial\n", + "\n", + "Sawyer B. Fuller 2023.04" + ] + }, + { + "attachments": { + "abea3596-e68b-445a-a86f-943dfcbde669.png": { + "image/png": "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LFO3bt2cMcHCK2eoaQgCEIAABOIIoPCKA8JbCEAAAhCAAAQgAAEI5IOAAtRnQ9566y2zcOFCW/VWW21VpomVK1eWeZ+pNzVr/jdyiizKEAhAAAIQgEA+CKDwygd12oQABCAAAQhAAAIQgEAcAVlgOfn999/dZsqvTrmkDI9BmT17tv/2scce87elYLvrrrv898H2Vbhq1Sp/X1hAe1mOxR/nTthkk03s5vfff++KzLx58/xtNiAAAQhAAALZJoDCK9uEqR8CEIAABCAAAQhAAAIVEFixYoV55513/KNklZWO6Hx3zsyZM01QQdWtWzez5ppr2urOOOMM079/fzN06FDTvn1707t3b+OyNx555JHm2GOPNZ999pk99rvvvvO7MHXqVH9bG6r/iy++sGXvv/++iVeybbHFFnbfPffcY26++WZzzTXXmEsvvdSW8Q8CEIAABCCQCwIovHJBmTYgAAEIQAACEIAABCAQQkBWVEOGDDFt2rQxQWsoKYl22GEHM2zYMFORq+N1111nevbsaRYvXmxbUD39+vUzN910k33fokULc+edd5p11lnHWm19+OGHplatWubZZ581hx56qDnuuOOMXBClKNt+++1N27Ztzcknn2yVX67LN954oxkxYoR1jZw0aZLp2LGjcQoxWaOpfadw0zmXX365qV+/vlm2bJk974cffjDqJwIBCEAAAhDIFYFq3upMLFeN0Q4EIAABCEAAAhCAAAQKjcD6669vFixYYIO9O6VSoY1B/ZXySe6NrVu3NvHB5DU+Kajiy6syTsUH+/TTT60yr169elWpinMhAAEIQAACaRNA4ZU2Mk6AAASiQkCxRj755BPz8ccf2xXnVq1a2Um1Uq27ifXtt99uDjjgALuqHZV+57ofirGi1fhnnnnG6OHjlltuKdOFivaXOZg3EIAABEqQQLEovErw0jFkCEAAAhAoYQL/TZ9SwgAYOgQgUHgE7rjjDnPxxRebGTNmWBeMrbfe2iq6Hn30UfP555/bAckNZL311jPPP/+82W233UpW4XX++eeb8ePHG7mSSHr16mVf3b+K9rvjeIUABCAAAQhAAAIQgAAEIFBIBIjhVUhXi75CoMQJ/Pbbb2a//fazgXZ//vlnI8XXokWLjILl3n///dZtQu+lDHvvvffMc889Z4PqLl26tGTJXXjhhWbatGnWfSUMQkX7w86hDAIQgAAEIAABCEAAAhCAQNQJYOEV9StE/yAAAUvgyy+/tJZac+fONU2bNjVPPPGEDZgbj2fttdc2Z599ttlmm23MgQceaAP4ujTt8cfm+r2C9Z544om5btZausnN85tvvgltW5Zw5e0PPYnCShOQUvbNN9+s9PnBEzt37mxj7gTLtD1x4sT4oqy+12do5513TmhDgbNdFreEnVkq2G677cxGG22UUPsrr7xi4xcl7MhSQe3ate09K7563cM++uij+OKsvt9yyy3NpptumtCGAozLNTxXothQCqQeL4odFcxOGL8/G+8VxN1lEQzWrwWUefPmBYvsttzBJcpEmOnvl4K9uwyKthHvn3635IqeS9Fvq34740UZG2fNmhVfnNX3u+yyi1l33XXLtCH2strOpciVtVOnTglNfvvtt+arr75KKM9mgZIJbLjhhglNvPjiizZcQcKOLBXUqVPHdO/ePaH2OXPm2IXHhB1ZLGjXrp3517/+ldDCG2+84SdwSNiZhQJlOe3Tp09CzfPnzzdTpkxJKM9mgeLzKQFGvGgh+Ndff40vzur73Xff3XpiBBtRDERdn1zKxhtvbDPSxrepsChiIk8QpIgJKGg9AgEIQCDKBLzsVLEuXboowYb985QFKXX3oosussd7Dw0pHZ/Ng9QHLyNWNpsot+59993XsvBcGkOPq2h/6EkUVoqAlx3N/yy7z3RlX8O+C/q+VLa+yp7nuRCHshg1alTO+zJhwoTQvnhKsJz2xVMehPbDs0bNaT90TUePHh3alw4dOuS0L57CK7Qfr732Wk77ISannXZaaF8GDBiQ8754StCEvngLFDnvx6BBgxL6oYJjjjkm533xFI8JffGstXPej27duiX0QwVuflHZe2ZlznvyySdD++ItOOSUixcvNbQf48aNy2k/xNDLZBraF0/Jn9O+eIutof3wPA1y2g8xGTlyZGhfPMV6zvuycOHChL54SSxy3o+hQ4cm9EMFgwcPjjVr1ix0H4XFQwCXRu/OgEAAAtEmINdFZxGjlXCt/KYiJ5xwgg1en2+XRll0eA8S1jIglX5zDAQgAAEIQAACEIAABCCQHQJbbbWVefzxx7NTObVGigAujZG6HHQGAhCIJyD3rzPOOMMvvuCCC/ztijbkZiWll9KwJxO5qSjQvdxHZBpft27dZIfacinPZs6cafRDKfHW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CBAgQIAAAQIECBAgsCzw/fv/WT7QbQQIECBAgAABAgQIECBAgAABArcE/MLr1nu7lgABAgQIECBAgAABAgQIECAwLyB4zT+xAwkQIECAAAECBAgQIECAAAECtwQEr1vv7VoCBAgQIECAAAECBAgQIECAwLyA4DX/xA4kQIAAAQIECBAgQIAAAQIECNwSELxuvbdrCRAgQIAAAQIECBAgQIAAAQLzAoLX/BM7kAABAgQIECBAgAABAgQIECBwS0DwuvXeriVAgAABAgQIECBAgAABAgQIzAsIXvNP7EACBAgQIECAAAECBAgQIECAwC0BwevWe7uWAAECBAgQIECAAAECBAgQIDAvIHjNP7EDCRAgQIAAAQIECBAgQIAAAQK3BASvW+/tWgIECBAgQIAAAQIECBAgQIDAvIDgNf/EDiRAgAABAgQIECBAgAABAgQI3BIQvG69t2sJECBAgAABAgQIECBAgAABAvMCgtf8EzuQAAECBAgQIECAAAECBAgQIHBLQPC69d6uJUCAAAECBAgQIECAAAECBAjMCwhe80/sQAIECBAgQIAAAQIECBAgQIDALQHB69Z7u5YAAQIECBAgQIAAAQIECBAgMC8geM0/sQMJECBAgAABAgQIECBAgAABArcEBK9b7+1aAgQIECBAgAABAgQIECBAgMC8gOA1/8QOJECAAAECBAgQIECAAAECBAjcEhC8br23awkQIECAAAECBAgQIECAAAEC8wKC1/wTO5AAAQIECBAgQIAAAQIECBAgcEtA8Lr13q4lQIAAAQIECBAgQIAAAQIECMwLCF7zT+xAAgQIECBAgAABAgQIECBAgMAtAcHr1nu7lgABAgQIECBAgAABAgQIECAwLyB4zT+xAwkQIECAAAECBAgQIECAAAECtwQEr1vv7VoCBAgQIECAAAECBAgQIECAwLzAH8EaqWK0dfDOAAAAAElFTkSuQmCC" + } + }, + "cell_type": "markdown", + "id": "3cfc972b", + "metadata": {}, + "source": [ + "### Goal: Create a single dynamic system that implements a complicated interconnected (ie, realistic) system such as the following:![image.png](attachment:abea3596-e68b-445a-a86f-943dfcbde669.png)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "c56846b0", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np # numerical library\n", + "import matplotlib.pyplot as plt # plotting library\n", + "import control as ct # control systems library" + ] + }, + { + "cell_type": "markdown", + "id": "9a123aa4", + "metadata": {}, + "source": [ + "## preliminaries\n", + "\n", + "The representation of all systems in the interconnected system will be a linear, time-invariant system in state-space form given by\n", + "\n", + "$\\dot x = Ax + Bu$,
$y = Cx + Du$ \n", + "\n", + "for continuous-time systems, and \n", + "\n", + "$x[k+1] = Ax[k]+Bu[k]$
$~~~~~~~y[k]=Cx[k]+Du[k]$ \n", + "\n", + "for discrete-time systems. $x$ is the *state*, $u$ is the *input*, and $y$ is the *output*. All of which are possibly vector-valued. " + ] + }, + { + "cell_type": "markdown", + "id": "c015dcd3", + "metadata": {}, + "source": [ + "## auto-splitting\n", + "\n", + "A signal is automatically routed into every system that has an input of the same name\n", + "\n", + "```\n", + " u y1\n", + "u +--> sys1 --->\n", + "---| \n", + " +--> sys2 --->\n", + " u y2\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cbc685f2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$$\n", + "\\left(\\begin{array}{rllrll|rll}\n", + "-0.&\\hspace{-1em}1&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\hline\n", + "0.&\\hspace{-1em}1&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "$$" + ], + "text/plain": [ + "['y1', 'y2']>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# arbitrary example systems\n", + "sys1 = ct.tf(1, [10, 1], inputs='u', outputs='y1')\n", + "sys2 = ct.tf(1, [1, 0], inputs='u', outputs='y2')\n", + "\n", + "# create interconnected system\n", + "interconnected = ct.interconnect([sys1, sys2], inputs='u', outputs=['y1', 'y2'])\n", + "display(interconnected) # 1-input, 2-output system" + ] + }, + { + "cell_type": "markdown", + "id": "8d80cc7c", + "metadata": {}, + "source": [ + "For this system, the input has a single value $[u]$, while the output is a two-element vector $y=[y1, y2]^T$." + ] + }, + { + "cell_type": "markdown", + "id": "002e7111", + "metadata": {}, + "source": [ + "## auto-summing\n", + "\n", + "Systems with output signals of the same name are automatically added.\n", + "\n", + "```\n", + " u1 y\n", + "---> sys1 ---+ \n", + " |\n", + " + V y\n", + " O----->\n", + " + ^\n", + " |\n", + "---> sys2 ---+\n", + " u1 y\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6f932077", + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$$\n", + "\\left(\\begin{array}{rllrll|rllrll}\n", + "-0.&\\hspace{-1em}1&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\hline\n", + "0.&\\hspace{-1em}1&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "$$" + ], + "text/plain": [ + "['y[0]']>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sys1 = ct.tf(1, [10, 1], inputs='u1', outputs='y')\n", + "sys2 = ct.tf(1, [1, 0], inputs='u2', outputs='y')\n", + "\n", + "# create interconnected system\n", + "interconnected = ct.interconnect([sys1, sys2], inplist=['u1', 'u2'], outlist='y')\n", + "display(interconnected) # 2-input, 1-output system" + ] + }, + { + "cell_type": "markdown", + "id": "aa2b727c", + "metadata": {}, + "source": [ + "## summing junctions\n", + "\n", + "Use a summing junction to interconnect signals of different names, or to change the sign of a signal. \n", + "\n", + "```\n", + " u w \n", + "---> O ---> \n", + " ^\n", + " | -v\n", + " |\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8d374ea0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$$\n", + "\\left(\\begin{array}{rllrll}\n", + "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "$$" + ], + "text/plain": [ + "['w']>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "summer = ct.summing_junction(['u', '-v'], 'w') # w = u - v\n", + "display(summer)" + ] + }, + { + "cell_type": "markdown", + "id": "aa2f9097", + "metadata": {}, + "source": [ + "## constructing the goal system depicted above" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b62a1549", + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$$\n", + "\\left(\\begin{array}{rllrllrllrll|rllrll}\n", + "-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-10\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&10\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-10\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&10\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0.&\\hspace{-1em}1&\\hspace{-1em}\\phantom{\\cdot}&-0.&\\hspace{-1em}01&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0.&\\hspace{-1em}1&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0.&\\hspace{-1em}1&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\hline\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "$$" + ], + "text/plain": [ + "['theta']>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# constants\n", + "K = 10\n", + "zc = 0.001 # controller zero location\n", + "pc = 2 # controller pole location\n", + "tau = 1\n", + "J = 100\n", + "b = 1\n", + "\n", + "# systems\n", + "C = ct.tf([K, K*zc],[1, pc], inputs='e', outputs='u')\n", + "lopass = ct.tf(1, [tau, 1], inputs='u', outputs='v')\n", + "P = ct.tf(1, [J, b], inputs='w', outputs='thetadot')\n", + "integrator = ct.tf(1, [1, 0], inputs='thetadot', outputs='theta')\n", + "error = ct.summing_junction(['thetaref', '-theta'], 'e') # e = thetaref-theta\n", + "disturbance = ct.summing_junction(['d', 'v'], 'w') # w = d+v\n", + "\n", + "# interconnect everything based on signal names\n", + "sys = ct.interconnect([C, lopass, P, integrator, error, disturbance], \n", + " inputs=['thetaref', 'd'], outputs='theta')\n", + "display(sys)" + ] + }, + { + "cell_type": "markdown", + "id": "897a9264", + "metadata": {}, + "source": [ + "Finally, we can use the interconnected system just like we would use any other system object, such as computing step and frequency responses. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7a773597", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAESCAYAAAA2bzuCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqOUlEQVR4nO3de3SU1aH38d9ckpkkJANJIBcIIXhFo6hJ1aDUo9ZYRPt2tW+lagELdJVzVIS0HgXOKsprTzxdPSxqFawV9fhKldeCLtumSmwtoOCFECqCFyrUBEiI4TIJBHKZ2e8fc0mGJDDPQEgYvp+1njUz+9nPzN4Jl9/ae89+bMYYIwAAAFhm7+8GAAAAnKkIUgAAADEiSAEAAMSIIAUAABAjghQAAECMCFIAAAAxIkgBAADEyNnfDYiG3+/Xnj17lJqaKpvN1t/NAQAAccwYo+bmZuXm5spuP/6Y0xkRpPbs2aO8vLz+bgYAADiL1NbWasSIEcetc0YEqdTUVEmBDqWlpfVzawAAQDxrampSXl5eOH8czxkRpELTeWlpaQQpAABwWkSznIjF5gAAADEiSAEAAMSIIAUAABAjghQAAECMLAeptWvX6rbbblNubq5sNptee+21E16zZs0aFRUVye12a/To0XrqqadiaSsAAMCAYjlIHT58WGPHjtUTTzwRVf2dO3fqlltu0fjx41VdXa158+Zp1qxZWrlypeXGAgAADCSWtz+YMGGCJkyYEHX9p556SiNHjtTixYslSWPGjNHGjRv1y1/+Ut/97netfjwA4AxhjJExkgk9l4KvTfC8wo9GPdfVcc4ZBQuliLKIul0+I9wudb6ILI9se8/l3XoZxXtF8dlR1In4VIv9CZyLpk8W+xPFe3ZtXy9Pe9Rb30MGJyeocLjnBO/S9/p8H6kNGzaotLQ0ouzmm2/WsmXL1N7eroSEhG7XtLa2qrW1Nfy6qampr5sJYAAzxqjdZ9Th9wcefYHHdp9fPr+Rz5jAY9fDGPn9Rh3+wKPPdHnepU7Xa/zH1OkIlvn8ks/vDzwaE37uN0YdvkCdziPQXn/wfPh16LkC5cer4w8GgG7vaXqo7+8MDb1e7+9+vXoLJ8HnOuacQue7XHe8kAP0tWvPzdSLM67q72b0fZCqr69XVlZWRFlWVpY6OjrU2NionJycbteUl5frkUce6eumAWc9EwwObR1+tXX41Rp8bPP5ws/DZR1+tfn8au3wRdb3+dXaHngMlbcHg06H36+OYOBp9/nV4Q887/AZtfsDgSjwPPDY4fOr7ZjrOoKhBuiJzSbZFNg40RZ+HSjs+jpUr/O6zlcRWy4es/9ir9fYTlyn+7mez/T+Xse2xfrn9/peEddbe99un2Dxmt4+uyfH2w8zLz3puNeeLqdlZ/Njf7GhocDefuFz585VWVlZ+HVoq3bgbNLu86ul1adDbR1qae1QS5tPR9p9Oho8jrT7dKTNH35+tN2nI+E6/i51fDraEXzsUhYIRf4zdvTAabfJ6bDJabfLYbfJYbfJbrPJGXpul5x2u+w2Bc/b5bBLDpstsr4j8OiwB661dznvsNvksNlkD50Lvo4436WO3SbZbYFHmy3wn3fotd1mk83WvU7k+Z4fI+sHy+w9X29T8LW9988IB4tjQkbgn+Sur23dwohCr7ucC17VGVa6vW8PISeaz+jtPbh5PQaQPg9S2dnZqq+vjyhraGiQ0+lURkZGj9e4XC65XK6+bhpwyrX7/Go+2qGmI+1qOtqupiMdaj7arkPBIHSotUOHj3keOtf1+aHWDrV1+E97+x12mxIddrkS7Ep02JXoDBwupyPw6Ai97jzXWd/Rpcwmp8Mup92mBIddTodNCXa7EpyB4JMQDEBOR/C8PVA/VJ7oPP75BIeN/0wBDAh9HqRKSkr0hz/8IaJs9erVKi4u7nF9FNDf2jr8OtjSpv0tbdp/uE0HW9ojglHgsV1NxwSmpqPtamnznfL2JDrsSnY5lJLolCvBrqQER+BIdMidEDiSguXuxMA5d6hOsMzttCupyzl3gkOuYCAKhaREZ2BkBwAQPctB6tChQ/rHP/4Rfr1z505t3rxZ6enpGjlypObOnavdu3frhRdekCTNnDlTTzzxhMrKyvSjH/1IGzZs0LJly/TSSy+dul4AvTDGqOlIh746dFRfNbfpQDgctWn/4fbI1y1tOnA4MHp0sga5nEpzO5WWlKBBLqdSXM7go0PJic5wWUowIIWfB+slJzqCj04lOtk3FwAGKstBauPGjbr++uvDr0NrmaZOnarnn39edXV1qqmpCZ8vKChQRUWF5syZoyeffFK5ubl6/PHH2foAJ6WlrUNfNbd2HocCj42HWiPKGw+1qc1nfYrMbpOGJCdqSEqihiQnyJOUoDR3gtKSEsIBKfDa2aU88HqQyymng/ADAGcDmzEDf6lpU1OTPB6PvF6v0tLS+rs56GPNR9tV7z2qOu9R1XmPqM57VPXeo9rjPar64Ovmo9ZGjTxJCcoYlKiMlEQNSU5UekqiBicnKj0l4ZjXiUpPTlSq2yk701wAcFaykjtOy7f2gBBjjA62tKv2QItq9x9R7YEW1exv0a4DR1R38IjqvUfVHOXUWlKCQ0NTXYFjkKvzeapLmYO6Pk+Uy+no454BAM5GBCmcch0+v3YdOKKdjYdVs79FtfsDYan2wBHt2t8SVVBKdTuV60lStsetHI9bOZ4k5Xjcyva4lTvYraw0twa5nHxzCwDQrwhSiIkxRo2H2rSz8bB2fHVIOxsP64uvDmtn4yHV7G9Ru+/4M8ZDU13KG5KkvPRkjUxP1oghScodnKScYHga5OKPJgBg4ON/KxyXMUYNza36rL45cOxt1va9zdrRePi465TcCXaNykhRfkay8oYkKy89WXnpScobkqwRQ5KVlMhUGwDgzEeQQpj3SLs+39usT+ub9XkwNH2+t1kHW9p7rG+zScMHJ2n00EEanZmi0UNTVJCZotFDByknzc1ibQBA3CNInaX2H27Tx7u9+niPV1t3N2nLbq9q9rf0WNduk0ZlpuiCrFRdkJ2q87NSdc7QQcrPSJY7gZElAMDZiyB1FvC2tKu69oC27AoEp493N2n3wSM91s3xuHVBdiAwXZAVCE3nDhtEYAIAoAcEqTjj9xttbzikTTUHtOnLA9pUc0BffHW4x7qjMpJVONwTOHI9KhyepsHJiae5xQAAnLkIUme4I20+bao5oPd37ld1zQFtrjnY4/YCBZkpunSER5cEg9NFuWlKc3OvQwAATgZB6gwTCk7v7din93bs0+bag922GkhOdGjsiMG6In+wrhg5RJePHKL0FEaaAAA41QhSA1xbh1+bag7o3X809hqccjxuXVWQrqJR6bpi5GBdkJXKvd4AADgNCFIDUM2+Fq3Z/pXWfPaVNnzRqMNtvojzOR63rh6doatHp+vq0RkamZ7MDt8AAPQDgtQAcLTdp/VfNGrNZ19pzedf6Z/7IrchyEhJ1LXnZWrcORkEJwAABhCCVD85cLhNf/m0QZXb6rX280Ydae8cdXLabboif4iuO3+ovn7eUF2cm8bmlgAADEAEqdOoZl+LVm+r1+pte7Xxn/vl77LUKdfj1vUXDtN15w9VyTkZSuUbdQAADHgEqT5Wu79Ff9pSpz/8fY+27mmKODcmJ003XZSl0ouydHFuGtN1AACcYQhSfaDee1R/2lKnP360R9U1B8PlDrtNV45KV+nFWfrGmCzlpSf3XyMBAMBJI0idIs1H2/Wnj+q0qnq3PvznfpngtJ3NJl1dkKHbxubqm4XZ7OcEAEAcIUidBL/faMOOffp91S79+eM6HW33h88V5w/RrZfm6JZLcjQszd2PrQQAAH2FIBWDmn0t+n1VrVZu2h1x899zhw3Sd68Yof91Wa5yByf1YwsBAMDpQJCKks9v9NdPG/R/3/tSaz//Klye5nbqW5fl6n8X5WnsCA8LxgEAOIsQpE6gtcOnFR/W6jdrdoRHn2w26dpzM3V7cZ5uuihL7gRHP7cSAAD0B4LUcWzb06R7f7dJOxoPS5KGJCfo9q/l6a4r8zUyg2/cAQBwtiNI9WLHV4d0x2/fk/dIu4alunTfDefqe8V5jD4BAIAwglQvFry+Vd4j7bosb7Ce/+HXNDiZbQsAAEAke383YCD6tL5J67Y3KsFh06/vuJwQBQAAekSQ6kHFR3WSpOvOH8bu4wAAoFcEqR68+8U+SdLNF2f1c0sAAMBARpA6hs9vtC14c+HLRw7u38YAAIABjSB1jJ2Nh3Wk3afkRIcKMgf1d3MAAMAARpA6Ru3+FklSfkaKHHZ2KQcAAL2LKUgtWbJEBQUFcrvdKioq0rp1645bf/ny5Ro7dqySk5OVk5OjH/7wh9q3b19MDe5ruw4EgtSIIdwrDwAAHJ/lILVixQrNnj1b8+fPV3V1tcaPH68JEyaopqamx/rvvPOOpkyZounTp2vr1q165ZVX9OGHH2rGjBkn3fi+sCt4G5jh3HQYAACcgOUgtWjRIk2fPl0zZszQmDFjtHjxYuXl5Wnp0qU91n/vvfc0atQozZo1SwUFBbr22mv14x//WBs3bjzpxveFPQePSmJECgAAnJilINXW1qaqqiqVlpZGlJeWlmr9+vU9XjNu3Djt2rVLFRUVMsZo7969+v3vf6+JEyf2+jmtra1qamqKOE6XfYdaJUmZg1yn7TMBAMCZyVKQamxslM/nU1ZW5P5KWVlZqq+v7/GacePGafny5Zo0aZISExOVnZ2twYMH69e//nWvn1NeXi6PxxM+8vLyrDTzpBxoaZckDU5OOG2fCQAAzkwxLTa32SK/zWaM6VYWsm3bNs2aNUs/+9nPVFVVpTfeeEM7d+7UzJkze33/uXPnyuv1ho/a2tpYmhkTb0ubJGkIt4UBAAAnYOmmxZmZmXI4HN1GnxoaGrqNUoWUl5frmmuu0QMPPCBJuvTSS5WSkqLx48fr0UcfVU5OTrdrXC6XXK7+mVoLjUgRpAAAwIlYGpFKTExUUVGRKisrI8orKys1bty4Hq9paWmR3R75MQ6HQ1JgJGsgOdru05F2nyRpcApTewAA4PgsT+2VlZXpmWee0bPPPqtPPvlEc+bMUU1NTXiqbu7cuZoyZUq4/m233aZVq1Zp6dKl2rFjh959913NmjVLV155pXJzc09dT06Bg8HRKKfdplSXpcE6AABwFrKcFiZNmqR9+/Zp4cKFqqurU2FhoSoqKpSfny9Jqquri9hT6u6771Zzc7OeeOIJ/eQnP9HgwYN1ww036L/+679OXS9OEe+RQJDyJCX0uuYLAAAgxGYG2vxaD5qamuTxeOT1epWWltZnn7Op5oC+s2S98tKTtO7fb+izzwEAAAOXldzBvfa6ONIWWB+VnMC0HgAAODGCVBeHWzskSckuRz+3BAAAnAkIUl2EvrGXnEiQAgAAJ0aQ6uJwayBIJTG1BwAAokCQ6qKlLTC1l8LUHgAAiAJBqovwYnOm9gAAQBQIUl0cbmNqDwAARI8g1cURpvYAAIAFBKkuWkIjUkztAQCAKBCkumhpD03tEaQAAMCJEaS6aG33S5JcToIUAAA4MYJUF+2+QJBKdPJjAQAAJ0Zi6KKtgyAFAACiR2Looi00IuXgxwIAAE6MxNBF54iUrZ9bAgAAzgQEqS7Ca6QcLDYHAAAnRpDqgjVSAADAChJDF60EKQAAYAGJoYvQ1F6CgzVSAADgxAhSXYS+tediRAoAAESBxNBFeI0Ui80BAEAUCFJdsNgcAABYQWII8vuNOvxGEmukAABAdAhSQaH1URIjUgAAIDokhiCCFAAAsIrEEBRaHyVxrz0AABAdEkNQ1z2kbDbWSAEAgBMjSAV1bn3AjwQAAESH1BAUGpFyEqQAAECUSA1BbH0AAACsIkgFdfgCQcphJ0gBAIDoxBSklixZooKCArndbhUVFWndunXHrd/a2qr58+crPz9fLpdL55xzjp599tmYGtxXfMERKaedbAkAAKLjtHrBihUrNHv2bC1ZskTXXHONfvOb32jChAnatm2bRo4c2eM1t99+u/bu3atly5bp3HPPVUNDgzo6Ok668adSaGqPESkAABAty0Fq0aJFmj59umbMmCFJWrx4sd58800tXbpU5eXl3eq/8cYbWrNmjXbs2KH09HRJ0qhRo06u1X2gc0SKIAUAAKJjaR6rra1NVVVVKi0tjSgvLS3V+vXre7zm9ddfV3FxsX7xi19o+PDhOv/88/XTn/5UR44c6fVzWltb1dTUFHH0tQ5/4Ft7jEgBAIBoWRqRamxslM/nU1ZWVkR5VlaW6uvre7xmx44deuedd+R2u/Xqq6+qsbFR//Zv/6b9+/f3uk6qvLxcjzzyiJWmnbTwiBTbHwAAgCjFlBqO3fnbGNPrbuB+v182m03Lly/XlVdeqVtuuUWLFi3S888/3+uo1Ny5c+X1esNHbW1tLM20pIOpPQAAYJGlEanMzEw5HI5uo08NDQ3dRqlCcnJyNHz4cHk8nnDZmDFjZIzRrl27dN5553W7xuVyyeVyWWnaSfOx/QEAALDI0ohUYmKiioqKVFlZGVFeWVmpcePG9XjNNddcoz179ujQoUPhss8//1x2u10jRoyIocl9gxEpAABgleWpvbKyMj3zzDN69tln9cknn2jOnDmqqanRzJkzJQWm5aZMmRKuf+eddyojI0M//OEPtW3bNq1du1YPPPCApk2bpqSkpFPXk5PkY/sDAABgkeXtDyZNmqR9+/Zp4cKFqqurU2FhoSoqKpSfny9JqqurU01NTbj+oEGDVFlZqfvuu0/FxcXKyMjQ7bffrkcfffTU9eIUCH1rz8ktYgAAQJRsxhjT3404kaamJnk8Hnm9XqWlpfXJZ6zatEtl/+/v+vr5Q/XCtCv75DMAAMDAZyV38F3/INZIAQAAqwhSQayRAgAAVhGkghiRAgAAVhGkgnw+bhEDAACsIUgFMSIFAACsIkgFda6R4kcCAACiQ2oIYkQKAABYRZAKCo9IsSEnAACIEkEqiBEpAABgFUEqyOfnW3sAAMAaglQQI1IAAMAqglSQz8e39gAAgDWkhiBGpAAAgFUEqaAO1kgBAACLCFJBPkakAACARQSpoA4f+0gBAABrCFJBjEgBAACrCFJBocXmdhtBCgAARIcgFeQ3oe0PCFIAACA6BKmgYI5iRAoAAESNIBUUGpFiQAoAAESLIBUUWmxuY0QKAABEiSAV5GdqDwAAWESQCjLhxeb93BAAAHDGIDYEhdZIMbUHAACiRZAKYmoPAABYRZAK4lt7AADAKoJUEPtIAQAAqwhSQZ1rpPq5IQAA4IxBkArqnNojSQEAgOgQpIL8/sAjQQoAAEQrpiC1ZMkSFRQUyO12q6ioSOvWrYvqunfffVdOp1OXXXZZLB/bp1hsDgAArLIcpFasWKHZs2dr/vz5qq6u1vjx4zVhwgTV1NQc9zqv16spU6boxhtvjLmxfSkcpEhSAAAgSpaD1KJFizR9+nTNmDFDY8aM0eLFi5WXl6elS5ce97of//jHuvPOO1VSUhJzY/sS+0gBAACrLAWptrY2VVVVqbS0NKK8tLRU69ev7/W65557Tl988YUWLFgQ1ee0traqqakp4uhrhqk9AABgkaUg1djYKJ/Pp6ysrIjyrKws1dfX93jN9u3b9dBDD2n58uVyOp1RfU55ebk8Hk/4yMvLs9LMmDAiBQAArIppsfmx96MzxvR4jzqfz6c777xTjzzyiM4///yo33/u3Lnyer3ho7a2NpZmWsI+UgAAwKrohoiCMjMz5XA4uo0+NTQ0dBulkqTm5mZt3LhR1dXVuvfeeyVJfr9fxhg5nU6tXr1aN9xwQ7frXC6XXC6XlaadNEakAACAVZZGpBITE1VUVKTKysqI8srKSo0bN65b/bS0NG3ZskWbN28OHzNnztQFF1ygzZs366qrrjq51p9Chg05AQCARZZGpCSprKxMkydPVnFxsUpKSvT000+rpqZGM2fOlBSYltu9e7deeOEF2e12FRYWRlw/bNgwud3ubuX9zednsTkAALDGcpCaNGmS9u3bp4ULF6qurk6FhYWqqKhQfn6+JKmuru6Ee0oNRJ1rpEhSAAAgOjYTmtMawJqamuTxeOT1epWWltYnn3HDL/+mHY2H9f9+XKIrC9L75DMAAMDAZyV3cK+9IG4RAwAArCJIBYW+tcfUHgAAiBZBKogRKQAAYBVBKsiwjxQAALCIIBXkZx8pAABgEUEqiFvEAAAAqwhSQdwiBgAAWEWQCvKHdjbnJwIAAKJEbAgKTe05GJECAABRIkgFsY8UAACwiiAVxD5SAADAKoJUEPtIAQAAqwhSQewjBQAArCJIBbGPFAAAsIogFRTeR4pFUgAAIEoEqSDDYnMAAGARQSrI52eNFAAAsIYgFcQtYgAAgFUEKXVO60lM7QEAgOgRpNQ5GiUxIgUAAKJHkFLn1gcSQQoAAESPIKXIIGXjJwIAAKJEbFDn7WEkRqQAAED0CFI6dmqvHxsCAADOKAQpsdgcAADEhiClzs04Je61BwAAokeQUuQ+Ug6SFAAAiBJBSkztAQCA2BCkdMz2B+QoAAAQJYKUOoOUzSbZSFIAACBKBCl17iPFtB4AALAipiC1ZMkSFRQUyO12q6ioSOvWreu17qpVq3TTTTdp6NChSktLU0lJid58882YG9wXQiNS7CEFAACssBykVqxYodmzZ2v+/Pmqrq7W+PHjNWHCBNXU1PRYf+3atbrppptUUVGhqqoqXX/99brttttUXV190o0/VUKLzZnWAwAAVthM1+/+R+Gqq67SFVdcoaVLl4bLxowZo29/+9sqLy+P6j0uvvhiTZo0ST/72c+iqt/U1CSPxyOv16u0tDQrzY1K7f4Wjf/F23In2PXp/5lwyt8fAACcOazkDksjUm1tbaqqqlJpaWlEeWlpqdavXx/Ve/j9fjU3Nys9Pb3XOq2trWpqaoo4+lLn1B4jUgAAIHqWglRjY6N8Pp+ysrIiyrOyslRfXx/Ve/z3f/+3Dh8+rNtvv73XOuXl5fJ4POEjLy/PSjMt87PYHAAAxCCmxebHriUyxkS1vuill17Sww8/rBUrVmjYsGG91ps7d668Xm/4qK2tjaWZUWOxOQAAiIXTSuXMzEw5HI5uo08NDQ3dRqmOtWLFCk2fPl2vvPKKvvGNbxy3rsvlksvlstK0kxJaJmYnSQEAAAssjUglJiaqqKhIlZWVEeWVlZUaN25cr9e99NJLuvvuu/W73/1OEydOjK2lfYipPQAAEAtLI1KSVFZWpsmTJ6u4uFglJSV6+umnVVNTo5kzZ0oKTMvt3r1bL7zwgqRAiJoyZYp+9atf6eqrrw6PZiUlJcnj8ZzCrsSOqT0AABALy0Fq0qRJ2rdvnxYuXKi6ujoVFhaqoqJC+fn5kqS6urqIPaV+85vfqKOjQ/fcc4/uueeecPnUqVP1/PPPn3wPTgG/P/DIPlIAAMAKy/tI9Ye+3kfq491e3frrd5SV5tL7846/fgsAAMS3PttHKl5xrz0AABALgpQkHxtyAgCAGBCk1LnYnBwFAACsIEipcx8pB1/bAwAAFhCkxD5SAAAgNgQpSX4/U3sAAMA6gpQYkQIAALEhSKnLvfbIUQAAwAKClBiRAgAAsSFIqev2BwQpAAAQPYKUum7I2c8NAQAAZxSClLqukSJJAQCA6BGkJPn9gUc7Q1IAAMACgpQ610iRowAAgBUEKfGtPQAAEBuClNhHCgAAxIYgpc4RKbY/AAAAVhCkxBopAAAQG4KUugYpkhQAAIgeQUqSYbE5AACIAUFKks8fukVMPzcEAACcUQhS6pzac7BICgAAWECQElN7AAAgNgQp8a09AAAQG4KU2EcKAADEhiAlRqQAAEBsCFLqeosYkhQAAIgeQUrctBgAAMSGIKXOqT1yFAAAsIIgpc4NORmRAgAAVhCkJHUEg5TTQZACAADRiylILVmyRAUFBXK73SoqKtK6deuOW3/NmjUqKiqS2+3W6NGj9dRTT8XU2L4SGpFKsJMrAQBA9CwnhxUrVmj27NmaP3++qqurNX78eE2YMEE1NTU91t+5c6duueUWjR8/XtXV1Zo3b55mzZqllStXnnTjT5V2n18SI1IAAMAay0Fq0aJFmj59umbMmKExY8Zo8eLFysvL09KlS3us/9RTT2nkyJFavHixxowZoxkzZmjatGn65S9/edKNP1U6fMERKQcjUgAAIHqWkkNbW5uqqqpUWloaUV5aWqr169f3eM2GDRu61b/55pu1ceNGtbe393hNa2urmpqaIo6+1O4PjEhx02IAAGCFpSDV2Ngon8+nrKysiPKsrCzV19f3eE19fX2P9Ts6OtTY2NjjNeXl5fJ4POEjLy/PSjMtGzrIpQuzU5Wd5u7TzwEAAPElprmsY+9JZ4w57n3qeqrfU3nI3Llz5fV6w0dtbW0szYzajPGj9cbsr+tHXx/dp58DAADii9NK5czMTDkcjm6jTw0NDd1GnUKys7N7rO90OpWRkdHjNS6XSy6Xy0rTAAAATjtLI1KJiYkqKipSZWVlRHllZaXGjRvX4zUlJSXd6q9evVrFxcVKSEiw2FwAAICBw/LUXllZmZ555hk9++yz+uSTTzRnzhzV1NRo5syZkgLTclOmTAnXnzlzpr788kuVlZXpk08+0bPPPqtly5bppz/96anrBQAAQD+wNLUnSZMmTdK+ffu0cOFC1dXVqbCwUBUVFcrPz5ck1dXVRewpVVBQoIqKCs2ZM0dPPvmkcnNz9fjjj+u73/3uqesFAABAP7CZ0MrvAaypqUkej0der1dpaWn93RwAABDHrOQOdqAEAACIEUEKAAAgRpbXSPWH0OxjX+9wDgAAEMob0ax+OiOCVHNzsyT1+Q7nAAAAIc3NzfJ4PMetc0YsNvf7/dqzZ49SU1OPu4P6yWhqalJeXp5qa2vPigXt9Df+nW19pr/x72zrM/3tP8YYNTc3Kzc3V3b78VdBnREjUna7XSNGjDgtn5WWltbvv8DTif7Gv7Otz/Q3/p1tfaa//eNEI1EhLDYHAACIEUEKAAAgRgSpIJfLpQULFpw1N0umv/HvbOsz/Y1/Z1uf6e+Z4YxYbA4AADAQMSIFAAAQI4IUAABAjAhSAAAAMSJIAQAAxIggBQAAECOClKQlS5aooKBAbrdbRUVFWrduXX83KSpr167VbbfdptzcXNlsNr322msR540xevjhh5Wbm6ukpCT9y7/8i7Zu3RpRp7W1Vffdd58yMzOVkpKib33rW9q1a1dEnQMHDmjy5MnyeDzyeDyaPHmyDh482Me9i1ReXq6vfe1rSk1N1bBhw/Ttb39bn332WUSdeOqvJC1dulSXXnppeJffkpIS/fnPfw6fj7f+Hqu8vFw2m02zZ88Ol8Vbnx9++GHZbLaIIzs7O3w+3vorSbt379YPfvADZWRkKDk5WZdddpmqqqrC5+Opz6NGjer2+7XZbLrnnnskxVdfQzo6OvQf//EfKigoUFJSkkaPHq2FCxfK7/eH68Rdv81Z7uWXXzYJCQnmt7/9rdm2bZu5//77TUpKivnyyy/7u2knVFFRYebPn29WrlxpJJlXX3014vxjjz1mUlNTzcqVK82WLVvMpEmTTE5OjmlqagrXmTlzphk+fLiprKw0mzZtMtdff70ZO3as6ejoCNf55je/aQoLC8369evN+vXrTWFhobn11ltPVzeNMcbcfPPN5rnnnjMff/yx2bx5s5k4caIZOXKkOXToUFz21xhjXn/9dfOnP/3JfPbZZ+azzz4z8+bNMwkJCebjjz+Oy/529cEHH5hRo0aZSy+91Nx///3h8njr84IFC8zFF19s6urqwkdDQ0P4fLz1d//+/SY/P9/cfffd5v333zc7d+40b731lvnHP/4RrhNPfW5oaIj43VZWVhpJ5u233467voY8+uijJiMjw/zxj380O3fuNK+88ooZNGiQWbx4cbhOvPX7rA9SV155pZk5c2ZE2YUXXmgeeuihfmpRbI4NUn6/32RnZ5vHHnssXHb06FHj8XjMU089ZYwx5uDBgyYhIcG8/PLL4Tq7d+82drvdvPHGG8YYY7Zt22Ykmffeey9cZ8OGDUaS+fTTT/u4V71raGgwksyaNWuMMfHf35AhQ4aYZ555Jq7729zcbM477zxTWVlprrvuunCQisc+L1iwwIwdO7bHc/HY3wcffNBce+21vZ6Pxz53df/995tzzjnH+P3+uO3rxIkTzbRp0yLKvvOd75gf/OAHxpj4/B2f1VN7bW1tqqqqUmlpaUR5aWmp1q9f30+tOjV27typ+vr6iL65XC5dd9114b5VVVWpvb09ok5ubq4KCwvDdTZs2CCPx6OrrroqXOfqq6+Wx+Pp15+R1+uVJKWnp0uK//76fD69/PLLOnz4sEpKSuK6v/fcc48mTpyob3zjGxHl8drn7du3Kzc3VwUFBfr+97+vHTt2SIrP/r7++usqLi7W9773PQ0bNkyXX365fvvb34bPx2OfQ9ra2vTiiy9q2rRpstlscdvXa6+9Vn/5y1/0+eefS5L+/ve/65133tEtt9wiKT5/x87T+mkDTGNjo3w+n7KysiLKs7KyVF9f30+tOjVC7e+pb19++WW4TmJiooYMGdKtTuj6+vp6DRs2rNv7Dxs2rN9+RsYYlZWV6dprr1VhYaGk+O3vli1bVFJSoqNHj2rQoEF69dVXddFFF4X/oYi3/r788svatGmTPvzww27n4vF3fNVVV+mFF17Q+eefr7179+rRRx/VuHHjtHXr1rjs744dO7R06VKVlZVp3rx5+uCDDzRr1iy5XC5NmTIlLvsc8tprr+ngwYO6++67JcXnn2dJevDBB+X1enXhhRfK4XDI5/Pp5z//ue644w5J8dnvszpIhdhstojXxphuZWeqWPp2bJ2e6vfnz+jee+/VRx99pHfeeafbuXjr7wUXXKDNmzfr4MGDWrlypaZOnao1a9aEz8dTf2tra3X//fdr9erVcrvdvdaLpz5PmDAh/PySSy5RSUmJzjnnHP3P//yPrr76aknx1V+/36/i4mL953/+pyTp8ssv19atW7V06VJNmTIlXC+e+hyybNkyTZgwQbm5uRHl8dbXFStW6MUXX9Tvfvc7XXzxxdq8ebNmz56t3NxcTZ06NVwvnvp9Vk/tZWZmyuFwdEuvDQ0N3dLymSb0zZ/j9S07O1ttbW06cODAcevs3bu32/t/9dVX/fIzuu+++/T666/r7bff1ogRI8Ll8drfxMREnXvuuSouLlZ5ebnGjh2rX/3qV3HZ36qqKjU0NKioqEhOp1NOp1Nr1qzR448/LqfTGW5PPPX5WCkpKbrkkku0ffv2uPwd5+Tk6KKLLoooGzNmjGpqaiTF79/jL7/8Um+99ZZmzJgRLovXvj7wwAN66KGH9P3vf1+XXHKJJk+erDlz5qi8vFxSfPb7rA5SiYmJKioqUmVlZUR5ZWWlxo0b10+tOjUKCgqUnZ0d0be2tjatWbMm3LeioiIlJCRE1Kmrq9PHH38crlNSUiKv16sPPvggXOf999+X1+s9rT8jY4zuvfderVq1Sn/9619VUFAQcT7e+tsbY4xaW1vjsr833nijtmzZos2bN4eP4uJi3XXXXdq8ebNGjx4dd30+Vmtrqz755BPl5OTE5e/4mmuu6bZtyeeff678/HxJ8fv3+LnnntOwYcM0ceLEcFm89rWlpUV2e2S0cDgc4e0P4rLfp2dN+8AV2v5g2bJlZtu2bWb27NkmJSXF/POf/+zvpp1Qc3Ozqa6uNtXV1UaSWbRokamurg5v3fDYY48Zj8djVq1aZbZs2WLuuOOOHr9iOmLECPPWW2+ZTZs2mRtuuKHHr5heeumlZsOGDWbDhg3mkksuOe1fMf3Xf/1X4/F4zN/+9reIrxO3tLSE68RTf40xZu7cuWbt2rVm586d5qOPPjLz5s0zdrvdrF69Oi7725Ou39ozJv76/JOf/MT87W9/Mzt27DDvvfeeufXWW01qamr435946+8HH3xgnE6n+fnPf262b99uli9fbpKTk82LL74YrhNvffb5fGbkyJHmwQcf7HYu3vpqjDFTp041w4cPD29/sGrVKpOZmWn+/d//PVwn3vp91gcpY4x58sknTX5+vklMTDRXXHFF+Cv1A93bb79tJHU7pk6daowJfM10wYIFJjs727hcLvP1r3/dbNmyJeI9jhw5Yu69916Tnp5ukpKSzK233mpqamoi6uzbt8/cddddJjU11aSmppq77rrLHDhw4DT1MqCnfkoyzz33XLhOPPXXGGOmTZsW/nM5dOhQc+ONN4ZDlDHx19+eHBuk4q3Pof1zEhISTG5urvnOd75jtm7dGj4fb/01xpg//OEPprCw0LhcLnPhhReap59+OuJ8vPX5zTffNJLMZ5991u1cvPXVGGOamprM/fffb0aOHGncbrcZPXq0mT9/vmltbQ3Xibd+24wx5vSOgQEAAMSHs3qNFAAAwMkgSAEAAMSIIAUAABAjghQAAECMCFIAAAAxIkgBAADEiCAFAAAQI4IUAABAjAhSAAAAMSJIAQAAxIggBQAAEKP/Dwk4utuvLgiXAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAESCAYAAAA/hJv4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAyD0lEQVR4nO3deXhTZd438G+2pgtp6J4GuoGVrWVrFVpRYECQYVFxBEERBBVHZeigo6LjK/ooqM886jgo84o+oKLi6wiIAyp1hCIWBAuFUqAUKdDShi60SbolTXK/f6QNDQWkkHLa5Pu5rnMlOedO8vtRoN/r5M59ZEIIASIiIiK6anKpCyAiIiLyFgxWRERERB7CYEVERETkIQxWRERERB7CYEVERETkIQxWRERERB7CYEVERETkIUqpC7gSDocDpaWl0Gg0kMlkUpdDREREXk4IAbPZDL1eD7n84uelumSwKi0tRUxMjNRlEBERkY8pLi5Gz549L3q8SwYrjUYDwNlccHCwxNUQERGRtzOZTIiJiXFlkIvpksGq5eO/4OBgBisiIiK6Zn5rChInrxMRERF5CIMVERERkYcwWBERERF5CIMVERERkYe0K1gtW7YMN9xwAzQaDSIjI3HHHXegoKDAbYwQAkuWLIFer0dAQABGjRqF/Px8tzEWiwULFixAeHg4goKCMGXKFJSUlFx9N0REREQSalewysrKwmOPPYZdu3YhMzMTNpsN48aNQ11dnWvM66+/jjfeeAPLly/Hnj17oNPpcOutt8JsNrvGZGRkYP369Vi7di127NiB2tpaTJo0CXa73XOdEREREV1jMiGEuNInV1RUIDIyEllZWbjlllsghIBer0dGRgaefvppAM6zU1FRUXjttdcwf/58GI1GRERE4OOPP8b06dMBnFvwc/PmzRg/fvxvvq/JZIJWq4XRaORyC0RERJcghIAQgEMIOAQgcO6x6xaAcDiPOUTzc+A8BoELPs/52m2f4zzWsu/c81rfb/3c5rdo83zXuJaxrY4LND+p1XEASO6phTZA1SF/jpebPa5qHSuj0QgACA0NBQAUFRXBYDBg3LhxrjFqtRojR45EdnY25s+fj5ycHDQ1NbmN0ev1SEpKQnZ29gWDlcVigcVicWuOiIh8g90h0GR3oMnugM0u0ORw3trsAjaHA7bm485xArbm+zaHcD239WPnrePcY7vz1i6ab5vHOFpuhXOMQ7QaZ3feOlo9z3Xc4QwBrfc7HIBdCIjmcGN3iFZjmsc3j20dglrGOVoHIyFc993HnwswjlZjfMm/HklDanyopDVccbASQmDRokUYMWIEkpKSAAAGgwEAEBUV5TY2KioKJ0+edI3x8/NDSEhImzEtzz/fsmXL8OKLL15pqUREdJma7A40NtlhsZ27tTQ5YLE137c5YGk6d99qcx6zNt+32lv2nbtvtTlcwcjiuu8MPC3HbA6BJpsD1uaw1GRrHuNwuM5G0LUnkwEyOBfFlAGQN++QywAZZJDJnPtkANB67HnPk8nOuw/3Ma73utix816/ZV/r8QDgr1Jcoz+Zi7viYPX444/jwIED2LFjR5tj569KKoT4zZVKLzVm8eLFWLRoketxy7LyRES+RAgBi82BOosN9VY76qw21FnsqLc6H7fcNljtztsm5/2GlvtNdjQ2uT+2NDkDVGOTHY0255mdzk4mA1RyOZQKGRRyGVQKOZTNtwq5DEqFDEq5DMrWY+RyyOWASiGHXOY8rmjelM3Pb9kvl7sfV5x3TCFzvodcJoNC7gwWzvvnjivkzt+Filb75TJAIWu5f26MvHmcXAbXMbms5Rhc798SYs5/rlvIaX6flrAjO++1ZJBBJj93vOV1Wwekc/su/XubLuyKgtWCBQuwceNGbN++3e1ChDqdDoDzrFR0dLRrf3l5uesslk6ng9VqRXV1tdtZq/LycqSnp1/w/dRqNdRq9ZWUSkQkOSEE6q12mBqbYGqwwdTYhNpG56250QZzow21Fuc+s8WGOosNtRYbahudt/VWO2qb91/L3OOnlMNfKYdapYC/Sg61UgG1Ug61Ug4/pfOxn+t+836F3LXPT6Fodd8ZfPyUcigVLeOc+5ybDH4KBZQKmeuxsvlWJZdDpXQPT0SdVbuClRACCxYswPr167Ft2zYkJCS4HU9ISIBOp0NmZiaGDBkCALBarcjKysJrr70GAEhJSYFKpUJmZiamTZsGACgrK8PBgwfx+uuve6InIqIOYbM7UNPQhOo6K6rrm1BTb0VNfRNqGpyPjQ1NMLbcNm8t4cnTZ4ICVAoEqRUI8FMgyE+JQD8FAv2UCPBTNN9XIEClRICfHIF+SqiV8ubjcgSoFPBv3s7dlztvlQqoVc7gI2eAIWq3dgWrxx57DJ9++im++uoraDQa15worVaLgIAAyGQyZGRkYOnSpUhMTERiYiKWLl2KwMBAzJw50zV23rx5eOKJJxAWFobQ0FA8+eSTSE5OxtixYz3fIRHRRTTZHaiqtaKy1oKqOisqzRZU1Tnvn6214mydFVV1VlTXO++bG21X9X5KuQzBASpo/JXOTa1CN9d9JTT+zsfd1Oe2QLUC3dRKBDU/DlIrEaBS8KwNUSfVrmC1YsUKAMCoUaPc9q9atQpz5swBADz11FNoaGjAo48+iurqagwbNgxbtmyBRqNxjX/zzTehVCoxbdo0NDQ0YMyYMVi9ejUUCuknnRFR11dvteGMyYIzpkacMTWi3GRBubkRFWYLKmotqDBbUG62oKa+qd2vLZMB2gAVQgL90D1Qhe4BKnRvvq8NaLsFB6gQ7K9CcIAzEHHeCpF3u6p1rKTCdayIfFedxYYyYwNKaxpRWtOAUmMjDMYGGEwWGIwNKDM2tuvMkkIuQ2iQH8K7qRHezQ9hQX4IDVIjrJsfQoPObSGBzlttgIpni4h80DVZx4qIyNPqLDYUV9ej+GwDSqrrUVJ97vZ0TcNln2UKUCmg0/ojUqNGVLDzNjJYjQiNGhHd/BGhcQapkEA/ziUiIo9hsCKia666zooTVXXOrbIeJ6vqcOpsPU6dbUBlreU3n69RK6HvHgB9d3/otAHQa/2ha96itf6IDPaHRq3kx25EdM0xWBFRh7DaHDhZVYdfK+rwa0UtjjffFlXWwdhw6bNO3QNViAkJRM+QgObNeb9HSAD03QMQ7N8xl6wgIrpaDFZEdFWsNgeOV9bi6JlaHDtjxtEztSgsN+NEVf0llxjQBfsjLiwQCeFBiAsLQlxYIGJDAxETGthh1/oiIupoDFZEdNkqzBbklxpxuMyMAoMJRwxm/FpRiyb7hQNUN7USvSKC0DuiG3qFB6FXRDckhAchPjwQgX7874eIvA//ZyOiNoQQOF3TgLwSI/JOG3GozIT8UhMqzBee/9RNrUQfnQbXR3XDdZEaJEZ2Q2JUN+iC/TnPiYh8CoMVEaGq1oLc4hrkFtfgQHOYOltnbTNOJgN6hQehX3Qw+kUHo69Ogz46DXp0D2CAIiICgxWRz7HZHThcZkbOybPYV1yDfadqcOpsfZtxSrkMfaM1SO6hRX+9FgP0ziDFj/CIiC6O/0MSebl6qw37TtVgz4mz+OVENfaeqka91d5m3HWR3TA4pjsG9dQiuWd39NVp4K/i1RCIiNqDwYrIy9Rbbcg5WY1dx6uw6/hZ7C+uge28b+dp/JVIiQvB0NgQDIntjoE9u/ObeEREHsBgRdTF2ewOHDhtxI7CSuworMS+4uo239LTa/1xY0IoUuNDcUN8KBIju3G1cSKiDsBgRdQFldY0YFtBBbKOliP716o218bTa/0xvHcYhvcKQ1qvMMSEBkpUKRGRb2GwIuoCbHYHfjlZja0F5dh2pAIFZ8xux7UBKqT3DsOIxHCMuC4csaGB/JYeEZEEGKyIOqlaiw1ZBRXIPGTA1oIKt8vAyGXA0NgQjOoTgZsTI5DUQwsFP9ojIpIcgxVRJ3K2zoot+QZ8m29A9rEqWO0O17HQID+Muj4Co/pG4pbEcHQP9JOwUiIiuhAGKyKJna2z4rt8AzbnlSH71yq36+slhAfh1v5RuLV/FIbGhvCsFBFRJ8dgRSSBWosNW/IN2JBbip+OVbqFqf7RwZg4MBrjB0Shd0Q3zpUiIupCGKyIrpEmuwPbj1ZgQ24pMg8Z0Nh07mO+pB7B+H1yNH6fFI348CAJqyQioqvBYEXUwQrPmPFFTgnW7S1BZe256+8lhAfh9sF63D64BxIYpoiIvAKDFVEHMDc2YeP+UnzxSwlyi2tc+8O7+WHyID3uGNwDA3tq+TEfEZGXYbAi8qD8UiPW7DqFr3JPu67Hp5TLMLpvJKalxmBUnwioFHKJqyQioo7CYEV0lRqb7Pj3gTKs2XXS7exU74gg3HNDLO4Y0gMRGrV0BRIR0TXDYEV0hcpNjViz6yQ++fkUquqcc6dUChnGD9DhvuFxGJYQyo/6iIh8DIMVUTsdPG3E//5UhK/3l7oudtyjewBmDovFtNQYnp0iIvJhDFZEl0EIgZ+OVWFF1jH8dKzKtT81LgRzRyRgXP8oKDl3iojI5zFYEV2C3SGwJd+AFVm/4kCJEYBzMvrEgdF44KYEDI7pLm2BRETUqTBYEV2Aze7AV7mleGfrMRyvrAMA+KvkuOeGWDx4cwJ6hgRKXCEREXVGDFZErdgdAhv3n8bb/zmGouZApQ1QYXZ6POakxyM0iBc+JiKii2OwIoIzUH29vxRv/6fQdYYqNMgPD9/SC/cNj0M3Nf+pEBHRb+NvC/JpQghsK6jAa98ewRGDGQDQPVCFh2/phdlp8QhioCIionbgbw3yWftOVePVb47g56KzAIBgfyXmj+yN2enxPENFRERXhL89yOecrKrDa98eweY8AwDATynHAzfF49GR10EbqJK4OiIi6soYrMhn1FpseGfrMXzwYxGsdgdkMuAPQ3viz7deD333AKnLIyIiL8BgRV7P4RBYt+80Xvv2CCrMFgDAzYnh+OvE/uij00hcHREReRMGK/JqB0pq8PxX+djffHHkuLBAPD+xP8b0i+R1/IiIyOMYrMgrmRub8D9bjuKjnSfgEECQnwILxiTigZvioVYqpC6PiIi8FIMVeRUhBL45aMCLX+fjjMn5sd/tg/V47vf9EBnsL3F1RETk7RisyGucrmnA8xsO4ocj5QCA+LBA/NcdSbg5MULiyoiIyFcwWFGXJ4TA2j3FeGXTYdRabPBTyPHIqN54dFRv+Kv4sR8REV07DFbUpZVU12Pxujz8WFgJAEiJC8Frdw3EdZHdJK6MiIh8EYMVdUlCCHy2uxhLNzvPUqmVcvxlfB88cFMCFHJ+24+IiKQhb+8Ttm/fjsmTJ0Ov10Mmk2HDhg1ux+fMmQOZTOa2DR8+3G2MxWLBggULEB4ejqCgIEyZMgUlJSVX1Qj5jspaC+au3oNn1+eh1mJDSlwIvll4Mx68uRdDFRERSardwaqurg6DBg3C8uXLLzrmtttuQ1lZmWvbvHmz2/GMjAysX78ea9euxY4dO1BbW4tJkybBbre3vwPyKVsLynHbW9uxtaACfko5/jqxH/7f/DT0iuBHf0REJL12fxQ4YcIETJgw4ZJj1Go1dDrdBY8ZjUZ88MEH+PjjjzF27FgAwJo1axATE4Pvv/8e48ePb29J5AMam+x49ZsjWJ19AgBwfVQ3vD1jCPrqgqUtjIiIqJV2n7G6HNu2bUNkZCSuv/56PPTQQygvL3cdy8nJQVNTE8aNG+fap9frkZSUhOzs7Au+nsVigclkctvIdxwrN+OOd35yhao56fHY+PgIhioiIup0PD55fcKECbj77rsRFxeHoqIiPP/88/jd736HnJwcqNVqGAwG+Pn5ISQkxO15UVFRMBgMF3zNZcuW4cUXX/R0qdQFbNxfime+PIB6qx3h3fzw338YhNF9I6Uui4iI6II8HqymT5/uup+UlITU1FTExcVh06ZNmDp16kWfJ4S46LXbFi9ejEWLFrkem0wmxMTEeK5o6nQsNjte2XQYH+08CQBI6xWGv88YjEgNV08nIqLOq8OXW4iOjkZcXBwKCwsBADqdDlarFdXV1W5nrcrLy5Genn7B11Cr1VCr1R1dKnUSJdX1eOyTvdhfYgQAPD76Ovz51uv5jT8iIur0OmSOVWtVVVUoLi5GdHQ0ACAlJQUqlQqZmZmuMWVlZTh48OBFgxX5jh2FlZj0jx3YX2KENkCFVXNuwJPj+zBUERFRl9DuM1a1tbU4duyY63FRURFyc3MRGhqK0NBQLFmyBHfddReio6Nx4sQJPPvsswgPD8edd94JANBqtZg3bx6eeOIJhIWFITQ0FE8++SSSk5Nd3xIk3yOEwOrsE3h502HYHQKDemrxzr1D0TMkUOrSiIiILlu7g9Uvv/yC0aNHux63zH2aPXs2VqxYgby8PHz00UeoqalBdHQ0Ro8ejc8//xwajcb1nDfffBNKpRLTpk1DQ0MDxowZg9WrV0Oh4HXdfJHFZsf/2ZCPz38pBgDcNbQnXrkzidf5IyKiLkcmhBBSF9FeJpMJWq0WRqMRwcH8yn1XVmG24JE1Ocg5WQ25DHj29/0wb0TCRb/IQEREJIXLzR68ViBJ5nCZCfNW70GpsREafyX+MWMIRvXhUgpERNR1MViRJHYUVuKRNTmotdjQKzwIK2enojcvS0NERF0cgxVdc+v2luCpfx2AzSFwY0IoVs5KhTZQJXVZREREV43Biq4ZIQTe2XoMf9tyFAAweZAef7t7INRKTlInIiLvwGBF14TN7sDzX+Xjs92nAADzR/bC0+P7Qs71qYiIyIswWFGHs9jsWPhZLr7NN0AuA5ZMGYD70+KlLouIiMjjGKyoQzVY7Zi/Jgfbj1bATyHH2zOG4LYkndRlERERdQgGK+owpsYmzFu9B3tOVCNApcDK+1MxIjFc6rKIiIg6DIMVdYizdVbc/78/4+BpEzT+Sqx+4AakxIVKXRYREVGHYrAijys3NWLm+z/jWHktwoL88NG8GzFAr5W6LCIiog7HYEUeVW5uxIyVu/BrRR2itf74eN4wXBfJhT+JiMg3MFiRx1TWWnDvyp/xa0Ud9Fp/rH04DbFhgVKXRUREdM3IpS6AvENVrQUzV+5CYXktorX++Ozh4QxVRETkcxis6KqdrbPi3vd/xtEztYgKVuOzh4YjLixI6rKIiIiuOQYruio19c5QdcRgRqTGGariwxmqiIjINzFY0RWrt9owd/UeHC4zIbybGp8+NBy9IjhRnYiIfBeDFV0Rq82BP67Zi72naqANUOGTB/ntPyIiIgYrajeHQ+CJL/Yj62gFAlQK/O+cG9BHp5G6LCIiIskxWFG7CCGw5Ot8fL2/FCqFDP+clYKUuBCpyyIiIuoUGKyoXf7+n0J8tPMkZDLgf6YNxsjrI6QuiYiIqNNgsKLL9tnuU3jr+0IAwEu3J2HKIL3EFREREXUuDFZ0WbYfrcBfNxwEACwck4hZw+MkroiIiKjzYbCi31RgMOPRT/bC7hCYOqQHMsYmSl0SERFRp8RgRZdUbmrE3NV7UGuxYVhCKJbdlQyZTCZ1WURERJ0SgxVdVL3Vhnkf/oLTNQ3oFR6E/zsrBWqlQuqyiIiIOi0GK7ogu0Ng4dpc5J02IjTID6seuAHdA/2kLouIiKhTY7CiC3ojswCZh87ATynHe7NSeFFlIiKiy8BgRW1szivDO1t/BQC8dlcyUuNDJa6IiIioa2CwIjcFBjOe/GI/AODBEQm4c0hPiSsiIiLqOhisyMVY34SHP/4F9VY7brouDM9M6Ct1SURERF0KgxUBcE5WX7B2H05W1aNH9wD8Y8ZQKBX860FERNQe/M1JAIC/bSnA9qMV8FfJ8d79KQgN4jcAiYiI2ovBivBdvgErtrVMVh+IAXqtxBURERF1TQxWPq74bD3+0jxZfd6IBNw+uIfEFREREXVdDFY+zGpz4PHP9sHUaMPgmO6crE5ERHSVGKx82OvfHsH+4hoE+yuxfOYQqDhZnYiI6KrwN6mPyjx0Bu/vKAIA/O3uQegZEihxRURERF0fg5UPKqmudy0COvemBIwboJO4IiIiIu/AYOVjmuwO/OmzfTA2NGFQTy3nVREREXkQg5WP+ccPx7D3VA00/kosnzkUfkr+FSAiIvIU/lb1IXtPVeOdrccAAEvvTEZMKOdVEREReRKDlY+os9jw589zYXcI3DFYj8mD9FKXRERE5HXaHay2b9+OyZMnQ6/XQyaTYcOGDW7HhRBYsmQJ9Ho9AgICMGrUKOTn57uNsVgsWLBgAcLDwxEUFIQpU6agpKTkqhqhS3t502GcrKqHXuuPF29PkrocIiIir9TuYFVXV4dBgwZh+fLlFzz++uuv44033sDy5cuxZ88e6HQ63HrrrTCbza4xGRkZWL9+PdauXYsdO3agtrYWkyZNgt1uv/JO6KK+P3QGn+0+BZkM+Nu0QdAGqKQuiYiIyCvJhBDiip8sk2H9+vW44447ADjPVun1emRkZODpp58G4Dw7FRUVhddeew3z58+H0WhEREQEPv74Y0yfPh0AUFpaipiYGGzevBnjx4//zfc1mUzQarUwGo0IDg6+0vJ9QmWtBbe9tR2VtVY8dHMCnpvYX+qSiIiIupzLzR4enWNVVFQEg8GAcePGufap1WqMHDkS2dnZAICcnBw0NTW5jdHr9UhKSnKNOZ/FYoHJZHLb6LcJIfDMl3morLWiT5QGT4zrI3VJREREXs2jwcpgMAAAoqKi3PZHRUW5jhkMBvj5+SEkJOSiY863bNkyaLVa1xYTE+PJsr3Wur2n8f3hM/BTyPHm9MHwVymkLomIiMirdci3AmUymdtjIUSbfee71JjFixfDaDS6tuLiYo/V6q0qzBa89O9DAICFYxPRX8+PTImIiDqaR4OVTue8NMr5Z57Ky8tdZ7F0Oh2sViuqq6svOuZ8arUawcHBbhtd2pKN+TA2NKF/dDAevqWX1OUQERH5BI8Gq4SEBOh0OmRmZrr2Wa1WZGVlIT09HQCQkpIClUrlNqasrAwHDx50jaGr8+1BAzbllUEhl+H1PwyESsHlyoiIiK4FZXufUFtbi2PHjrkeFxUVITc3F6GhoYiNjUVGRgaWLl2KxMREJCYmYunSpQgMDMTMmTMBAFqtFvPmzcMTTzyBsLAwhIaG4sknn0RycjLGjh3ruc58lLG+Cc9/dRAAMP+WXkjqoZW4IiIiIt/R7mD1yy+/YPTo0a7HixYtAgDMnj0bq1evxlNPPYWGhgY8+uijqK6uxrBhw7BlyxZoNBrXc958800olUpMmzYNDQ0NGDNmDFavXg2FgpOrr9bLmw6hwmxBr4gg/GlMotTlEBER+ZSrWsdKKlzH6sJ+LKzArA92QyYDvpifhtT4UKlLIiIi8gqSrGNF0qm32rB4XR4AYHZaPEMVERGRBBisvMTb/zmGkuoG9OgegL+M50KgREREUmCw8gKFZ8x4/8fjAIAXpwxAkLrdU+eIiIjIAxisujghBJ7/6iBsDoGx/SIxtv+F1wIjIiKijsdg1cVt3F+KXcfPQq2U44XJA6Quh4iIyKcxWHVhpsYmvLzpMADg8dHXISY0UOKKiIiIfBuDVRf2ZuZRVJgtSAgPwsMjedkaIiIiqTFYdVGHSk34MPsEAOCl2wdAreTiqkRERFJjsOqCHA7nhHWHACYmR+PmxAipSyIiIiIwWHVJX+0/jZyT1Qj0U+Cvk/pJXQ4RERE1Y7DqYhqsdrz+bQEA4LHR1yFaGyBxRURERNSCwaqLWfnjcZQZG9GjewDmjUiQuhwiIiJqhcGqCzljasSKbb8CAJ6Z0Bf+Kk5YJyIi6kwYrLqQ//6uAA1NdgyN7Y5JA6OlLoeIiIjOw2DVRRw8bcSXe0sAAM9P6g+ZTCZxRURERHQ+BqsuQAiB//r3IQgB3D5YjyGxIVKXRERERBfAYNUFfJd/Bj8XOa8H+NRtfaUuh4iIiC6CwaqTs9ocWPaN83qAD93cCz26c3kFIiKizorBqpP7bPcpnKyqR4RGjT+O6i11OURERHQJDFadWL3Vhn/8cAwA8KcxiQhSKyWuiIiIiC6FwaoTW/XTCVTWWhAbGojpqTFSl0NERES/gcGqk6qpt+KfWc7FQBfdej38lPxRERERdXb8bd1J/TPrOMyNNvTVaTBlkF7qcoiIiOgyMFh1QuWmRqzOLgIAPDmuD+RyLgZKRETUFTBYdUJv/1CIxiYHhsZ2x5h+kVKXQ0RERJeJwaqTOVlVh7W7iwEAT93Wl5euISIi6kIYrDqZNzOPwuYQuOX6CAzvFSZ1OURERNQODFadSOEZM77aXwoAeGp8H4mrISIiovZisOpE/vHDMQgB3DZAh6QeWqnLISIionZisOokjpXX4usDzrNVC8ZcJ3E1REREdCUYrDqJd7c6z1bd2j8KA/Q8W0VERNQVMVh1Aicq67Ah9zQA4E+/S5S4GiIiIrpSDFadwDtbj8EhgNF9IpDck2eriIiIuioGK4kVn63Hun3Os1ULxvBsFRERUVfGYCWxd7cdg90hcHNiOIbGhkhdDhEREV0FBisJna5pwL9ySgAAC3m2ioiIqMtjsJLQP7f9iia7QHrvMKTGh0pdDhEREV0lBiuJnDE14vM9zmsC/olnq4iIiLwCg5VEVv10Ala7A6lxIbwmIBERkZdgsJKAubEJn+w6CQCYP7K3xNUQERGRpzBYSWDt7mKYLTb0jgjCmL6RUpdDREREHuLxYLVkyRLIZDK3TafTuY4LIbBkyRLo9XoEBARg1KhRyM/P93QZnZbV5sD//lQEAHj4ll6Qy2USV0RERESe0iFnrAYMGICysjLXlpeX5zr2+uuv44033sDy5cuxZ88e6HQ63HrrrTCbzR1RSqfz9f5SlBkbEaFR444hPaQuh4iIiDyoQ4KVUqmETqdzbREREQCcZ6veeustPPfcc5g6dSqSkpLw4Ycfor6+Hp9++mlHlNKpCCHw3vbjAIAHboqHWqmQuCIiIiLypA4JVoWFhdDr9UhISMA999yD48edYaKoqAgGgwHjxo1zjVWr1Rg5ciSys7Mv+noWiwUmk8lt64q2Ha1AwRkzgvwUuHdYnNTlEBERkYd5PFgNGzYMH330Eb777jusXLkSBoMB6enpqKqqgsFgAABERUW5PScqKsp17EKWLVsGrVbr2mJiYjxd9jXxXpYzYN5zYyy0ASqJqyEiIiJP83iwmjBhAu666y4kJydj7Nix2LRpEwDgww8/dI2RydwnbAsh2uxrbfHixTAaja6tuLjY02V3uAMlNdh5vApKuQxzRyRIXQ4RERF1gA5fbiEoKAjJyckoLCx0fTvw/LNT5eXlbc5itaZWqxEcHOy2dTX/t3lu1eRBevToHiBxNURERNQROjxYWSwWHD58GNHR0UhISIBOp0NmZqbruNVqRVZWFtLT0zu6FMkUn63HN3llAICHbu4lcTVERETUUZSefsEnn3wSkydPRmxsLMrLy/Hyyy/DZDJh9uzZkMlkyMjIwNKlS5GYmIjExEQsXboUgYGBmDlzpqdL6TTW7DoJhwBuui4M/fVd72wbERERXR6PB6uSkhLMmDEDlZWViIiIwPDhw7Fr1y7ExTm/BffUU0+hoaEBjz76KKqrqzFs2DBs2bIFGo3G06V0Cg1WO9Y2X2z5gXTOrSIiIvJmMiGEkLqI9jKZTNBqtTAajZ1+vtVnu09h8bo8xIQGYNuTo6HgSutERERdzuVmD14rsAMJIbD6pxMAgNlp8QxVREREXo7BqgPtOn4WBWfMCFApcHdq11x7i4iIiC4fg1UHWp3tvNjy1KE9uCAoERGRD2Cw6iAl1fXIPHQGADA7PV7aYoiIiOiaYLDqIB+3WmLh+ijv/MYjERERuWOw6gANVjs+b15iYXZavLTFEBER0TXDYNUBvso9jZr6JvQMCcCYfhe/VA8RERF5FwYrDxNCYHX2CQDA/WlxXGKBiIjIhzBYeVjOyWocMZjhr5Jjemqs1OUQERHRNcRg5WGf7j4FAJg8UA9tIJdYICIi8iUMVh5krG/CpgNlAIAZw3i2ioiIyNcwWHnQ+n0lsNgc6KvTYEhMd6nLISIiomuMwcpDhBD4bLdziYWZw2Ihk3HSOhERka9hsPKQvadqUHDGOWn99sE9pC6HiIiIJMBg5SGfNU9anzRQz+sCEhER+SgGKw8wNjTh3wdKAQAzbuSkdSIiIl/FYOUBG/adRmOTA32iNBga213qcoiIiEgiDFZXyTlp3fkx4IwbYzhpnYiIyIcxWF2lfcU1OGIwQ62U484hPaUuh4iIiCTEYHWVPvu51aR1rrRORETk0xisroK5sQlfN09anzksRuJqiIiISGoMVldh04EyNDY50DsiCENjQ6Quh4iIiCTGYHUVvtxbAgD4QwonrRMRERGD1RU7UVmHPSeqIZcBdw7hSutERETEYHXF1jWfrRqRGAGd1l/iaoiIiKgzYLC6Ag6HwJd7TwMA7hrKs1VERETkxGB1BX4uOovTNQ3QqJUYP0AndTlERETUSTBYXYF/5Tg/Bpw0KBr+KoXE1RAREVFnwWDVTnUWG745WAYAuGsoV1onIiKicxis2unbgwbUW+2IDwtEShzXriIiIqJzGKzaqeVjwLuG9uTaVUREROSGwaodSqrrsfN4FWQyYGoKPwYkIiIidwxW7bC+eYmFtF5h6NE9QOJqiIiIqLNhsLpMQgjXJWw4aZ2IiIguhMHqMu04VokTVfXoplbitiSuXUVERERtMVhdptU/nQAA/CGlJ4LUSmmLISIiok6JweoynKisww8F5QCA2enx0hZDREREnRaD1WX4cOcJCAGM7hOBhPAgqcshIiKiTorB6jfUWmz44hfnpPU5NyVIXA0RERF1ZgxWv+FfvxSj1mJD74gg3JIYLnU5RERE1IkxWF2CwyHw4c6TAIA56fFcaZ2IiIguicHqErKOVqCosg4afyWmcu0qIiIi+g2SBqt3330XCQkJ8Pf3R0pKCn788Ucpy2ljVfYJAMD01BgusUBERES/SbJg9fnnnyMjIwPPPfcc9u3bh5tvvhkTJkzAqVOnpCrJzbHyWmw/WgGZDLg/LV7qcoiIiKgLkCxYvfHGG5g3bx4efPBB9OvXD2+99RZiYmKwYsUKqUpy82Hz2aoxfaMQGxYobTFERETUJUgSrKxWK3JycjBu3Di3/ePGjUN2dnab8RaLBSaTyW3rSMaGJtd1AefeFN+h70VERETeQ5JgVVlZCbvdjqioKLf9UVFRMBgMbcYvW7YMWq3WtcXExHRofaaGJqT3DkNfnQZpvcM69L2IiIjIe0g6ef385QuEEBdc0mDx4sUwGo2urbi4uEPrigkNxPuzb8CGx27iEgtERER02ST5qlt4eDgUCkWbs1Pl5eVtzmIBgFqthlqtvlblufirFNf8PYmIiKjrkuSMlZ+fH1JSUpCZmem2PzMzE+np6VKURERERHTVJFucadGiRZg1axZSU1ORlpaG9957D6dOncIjjzwiVUlEREREV0WyYDV9+nRUVVXhpZdeQllZGZKSkrB582bExcVJVRIRERHRVZEJIYTURbSXyWSCVquF0WhEcHCw1OUQERGRl7vc7MFrBRIRERF5CIMVERERkYd0ySsLt3x62dErsBMREREB5zLHb82g6pLBymw2A0CHr8BORERE1JrZbIZWq73o8S45ed3hcKC0tBQajabDVkY3mUyIiYlBcXGxT0yQ97V+Ad/rmf16P1/r2df6BXyv587UrxACZrMZer0ecvnFZ1J1yTNWcrkcPXv2vCbvFRwcLPkP81rytX4B3+uZ/Xo/X+vZ1/oFfK/nztLvpc5UteDkdSIiIiIPYbAiIiIi8hAGq4tQq9V44YUXJLn4sxR8rV/A93pmv97P13r2tX4B3+u5K/bbJSevExEREXVGPGNFRERE5CEMVkREREQewmBFRERE5CEMVkREREQewmBFRERE5CEMVhfw7rvvIiEhAf7+/khJScGPP/4odUmXZfv27Zg8eTL0ej1kMhk2bNjgdlwIgSVLlkCv1yMgIACjRo1Cfn6+2xiLxYIFCxYgPDwcQUFBmDJlCkpKStzGVFdXY9asWdBqtdBqtZg1axZqamo6uLu2li1bhhtuuAEajQaRkZG44447UFBQ4DbGm3pesWIFBg4c6FqBOC0tDd98843ruDf1eiHLli2DTCZDRkaGa5+39bxkyRLIZDK3TafTuY57W78AcPr0adx3330ICwtDYGAgBg8ejJycHNdxb+s5Pj6+zc9YJpPhscceA+B9/dpsNvz1r39FQkICAgIC0KtXL7z00ktwOByuMd7WMwS5Wbt2rVCpVGLlypXi0KFDYuHChSIoKEicPHlS6tJ+0+bNm8Vzzz0nvvzySwFArF+/3u34q6++KjQajfjyyy9FXl6emD59uoiOjhYmk8k15pFHHhE9evQQmZmZYu/evWL06NFi0KBBwmazucbcdtttIikpSWRnZ4vs7GyRlJQkJk2adK3adBk/frxYtWqVOHjwoMjNzRUTJ04UsbGxora21jXGm3reuHGj2LRpkygoKBAFBQXi2WefFSqVShw8eNDrej3f7t27RXx8vBg4cKBYuHCha7+39fzCCy+IAQMGiLKyMtdWXl7uOu5t/Z49e1bExcWJOXPmiJ9//lkUFRWJ77//Xhw7dsw1xtt6Li8vd/v5ZmZmCgBi69atQgjv6/fll18WYWFh4t///rcoKioSX3zxhejWrZt46623XGO8rWcGq/PceOON4pFHHnHb17dvX/HMM89IVNGVOT9YORwOodPpxKuvvura19jYKLRarfjnP/8phBCipqZGqFQqsXbtWteY06dPC7lcLr799lshhBCHDh0SAMSuXbtcY3bu3CkAiCNHjnRwV5dWXl4uAIisrCwhhG/0HBISIt5//32v7tVsNovExESRmZkpRo4c6QpW3tjzCy+8IAYNGnTBY97Y79NPPy1GjBhx0ePe2PP5Fi5cKHr37i0cDodX9jtx4kQxd+5ct31Tp04V9913nxDCO3/G/CiwFavVipycHIwbN85t/7hx45CdnS1RVZ5RVFQEg8Hg1ptarcbIkSNdveXk5KCpqcltjF6vR1JSkmvMzp07odVqMWzYMNeY4cOHQ6vVSv5nZDQaAQChoaEAvLtnu92OtWvXoq6uDmlpaV7d62OPPYaJEydi7Nixbvu9tefCwkLo9XokJCTgnnvuwfHjxwF4Z78bN25Eamoq7r77bkRGRmLIkCFYuXKl67g39tya1WrFmjVrMHfuXMhkMq/sd8SIEfjPf/6Do0ePAgD279+PHTt24Pe//z0A7/wZK6/pu3VylZWVsNvtiIqKctsfFRUFg8EgUVWe0VL/hXo7efKka4yfnx9CQkLajGl5vsFgQGRkZJvXj4yMlPTPSAiBRYsWYcSIEUhKSgLgnT3n5eUhLS0NjY2N6NatG9avX4/+/fu7/uPwpl4BYO3atdi7dy/27NnT5pg3/nyHDRuGjz76CNdffz3OnDmDl19+Genp6cjPz/fKfo8fP44VK1Zg0aJFePbZZ7F792786U9/glqtxv333++VPbe2YcMG1NTUYM6cOQC88+/0008/DaPRiL59+0KhUMBut+OVV17BjBkzXLUC3tUzg9UFyGQyt8dCiDb7uqor6e38MRcaL/Wf0eOPP44DBw5gx44dbY55U899+vRBbm4uampq8OWXX2L27NnIyspyHfemXouLi7Fw4UJs2bIF/v7+Fx3nTT1PmDDBdT85ORlpaWno3bs3PvzwQwwfPhyAd/XrcDiQmpqKpUuXAgCGDBmC/Px8rFixAvfff79rnDf13NoHH3yACRMmQK/Xu+33pn4///xzrFmzBp9++ikGDBiA3NxcZGRkQK/XY/bs2a5x3tQzPwpsJTw8HAqFok26LS8vb5Omu5qWbxZdqjedTger1Yrq6upLjjlz5kyb16+oqJDsz2jBggXYuHEjtm7dip49e7r2e2PPfn5+uO6665Camoply5Zh0KBB+Pvf/+6Vvebk5KC8vBwpKSlQKpVQKpXIysrC22+/DaVS6arHm3o+X1BQEJKTk1FYWOiVP+Po6Gj079/fbV+/fv1w6tQpAN75b7jFyZMn8f333+PBBx907fPGfv/yl7/gmWeewT333IPk5GTMmjULf/7zn7Fs2TJXrYB39cxg1Yqfnx9SUlKQmZnptj8zMxPp6ekSVeUZCQkJ0Ol0br1ZrVZkZWW5ektJSYFKpXIbU1ZWhoMHD7rGpKWlwWg0Yvfu3a4xP//8M4xG4zX/MxJC4PHHH8e6devwww8/ICEhwe24N/Z8PiEELBaLV/Y6ZswY5OXlITc317Wlpqbi3nvvRW5uLnr16uV1PZ/PYrHg8OHDiI6O9sqf8U033dRmiZSjR48iLi4OgHf/G161ahUiIyMxceJE1z5v7Le+vh5yuXvUUCgUruUWvLFnfivwPC3LLXzwwQfi0KFDIiMjQwQFBYkTJ05IXdpvMpvNYt++fWLfvn0CgHjjjTfEvn37XEtFvPrqq0Kr1Yp169aJvLw8MWPGjAt+pbVnz57i+++/F3v37hW/+93vLviV1oEDB4qdO3eKnTt3iuTkZEm+0vrHP/5RaLVasW3bNrevL9fX17vGeFPPixcvFtu3bxdFRUXiwIED4tlnnxVyuVxs2bLF63q9mNbfChTC+3p+4oknxLZt28Tx48fFrl27xKRJk4RGo3H9/+Nt/e7evVsolUrxyiuviMLCQvHJJ5+IwMBAsWbNGtcYb+tZCCHsdruIjY0VTz/9dJtj3tbv7NmzRY8ePVzLLaxbt06Eh4eLp556yjXG23pmsLqAd955R8TFxQk/Pz8xdOhQ19f3O7utW7cKAG222bNnCyGcX2t94YUXhE6nE2q1Wtxyyy0iLy/P7TUaGhrE448/LkJDQ0VAQICYNGmSOHXqlNuYqqoqce+99wqNRiM0Go249957RXV19TXq8pwL9QpArFq1yjXGm3qeO3eu6+9lRESEGDNmjCtUCeFdvV7M+cHK23puWb9HpVIJvV4vpk6dKvLz813Hva1fIYT4+uuvRVJSklCr1aJv377ivffeczvujT1/9913AoAoKChoc8zb+jWZTGLhwoUiNjZW+Pv7i169eonnnntOWCwW1xhv61kmhBDX9hwZERERkXfiHCsiIiIiD2GwIiIiIvIQBisiIiIiD2GwIiIiIvIQBisiIiIiD2GwIiIiIvIQBisiIiIiD2GwIiIiIvIQBisiIiIiD2GwIiIiIvIQBisiIiIiD/n//Yvk4SPMoUsAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# extract system input-output pairs\n", + "# index order is [output, input]\n", + "plt.figure(figsize=(7,3))\n", + "sys_thetaref_to_theta = sys[0, 0] \n", + "sys_d_to_theta = sys[0, 1]\n", + "t, y = ct.step_response(sys_thetaref_to_theta) # step response\n", + "plt.plot(t,y)\n", + "plt.figure(figsize=(7,3))\n", + "t, yd = ct.step_response(sys_d_to_theta) # disturbance response\n", + "plt.plot(t,yd);\n", + "plt.figure(figsize=(7,5))\n", + "ct.bode_plot(sys_thetaref_to_theta, plot=True);" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/simulating_sampled_data_systems.ipynb b/examples/simulating_sampled_data_systems.ipynb new file mode 100644 index 000000000..471141af8 --- /dev/null +++ b/examples/simulating_sampled_data_systems.ipynb @@ -0,0 +1,584 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e2b51597", + "metadata": {}, + "source": [ + "# simulating sampled-data control systems \n", + "Sawyer B. Fuller 2023.03" + ] + }, + { + "attachments": { + "image-4.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArgAAAHMCAYAAAA+m9tlAAAKsWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdUU+kSgOfe9JDQEiIgJfQmXSCAlBBaAAXpYCMkAUKJMRBU7MriCq4FEREsK7oqomCjiB0LtkWxYHdBFhF1XSzYUHkXOITdfee9d96cM2e+TOafmf+e/79nLgCdKZDJMlF1gCxpjjwyyI8dn5DIJvUAChqgBuZgLxBmy7gREWGAyaj9u3xoB2TI3rIdyvXv//9X0RCJs4UASATGyaJsYRbGRzHtE8rkOQC4XZjfZG6ObIgvYcyUYw1i/GiIU0e4b4iThxmPH46JjuRhrA1ApgkE8lQAminmZ+cKU7E8NH+MHaQiiRRj7Dd4Z2XNFmGM1QVLLEaG8VB+TvJf8qT+LWeyMqdAkKrkkb0MC9lfki3LFMz/Px/H/5asTMVoDXNMaWny4EjMYn0h9zJmhypZmjwlfJQlouH4YU5TBMeMsjCblzjKIoF/qHJt5pSwUU6RBPKVeXL40aMszg6IGmX57EhlrRQ5jzvKAvlYXUVGjNKfJuYr8+elRceNcq4kdsooZ2dEhY7F8JR+uSJS2b9YGuQ3VjdQufes7L/sV8JXrs1Jiw5W7l0w1r9Yyh3LmR2v7E0k9g8Yi4lRxsty/JS1ZJkRynhxZpDSn50bpVybgx3IsbURymeYLgiJGGUIgyBgQwxkQg7IQQCBIAEpiHPE84bOKPBmy+bLJalpOWwudsvEbL5UaDeB7eTg5AwwdGdHjsQ71vBdRFhXxnwrqgC8jg0ODh4f84XcADiUBECtG/NZzgBQ7wG4dEKokOeO+IauExCAir0LmKADBmAClmALTuAKnuALARAC4RANCTAThJAGWVjnc2EhLIMCKIJ1sBHKYTvshL1wAA5DA5yAs3ARrsINuAMPoQO64SX0wQcYQBCEhNARBqKDGCJmiA3ihHAQbyQACUMikQQkCUlFpIgCWYisQIqQYqQc2YFUIYeQY8hZ5DLShtxHOpFe5C3yBcWhNJSJ6qPmqD3KQbloKBqNzkBT0TloHpqPrkHL0Ep0P1qPnkWvonfQDvQl2o8DnAqOhTPC2eI4OB4uHJeIS8HJcYtxhbhSXCWuBteEa8HdwnXgXuE+44l4Bp6Nt8V74oPxMXghfg5+MX41vhy/F1+PP4+/he/E9+G/E+gEPYINwYPAJ8QTUglzCQWEUsJuQh3hAuEOoZvwgUgksogWRDdiMDGBmE5cQFxN3EqsJZ4hthG7iP0kEkmHZEPyIoWTBKQcUgFpM2k/6TTpJqmb9ImsQjYkO5EDyYlkKXk5uZS8j3yKfJPcQx6gqFPMKB6UcIqIMp+ylrKL0kS5TummDFA1qBZUL2o0NZ26jFpGraFeoD6ivlNRUTFWcVeZqiJRWapSpnJQ5ZJKp8pnmibNmsajTacpaGtoe2hnaPdp7+h0ujndl55Iz6GvoVfRz9Gf0D+pMlTtVPmqItUlqhWq9ao3VV+rUdTM1LhqM9Xy1ErVjqhdV3ulTlE3V+epC9QXq1eoH1O/q96vwdBw1AjXyNJYrbFP47LGc02SprlmgKZIM19zp+Y5zS4GjmHC4DGEjBWMXYwLjG4mkWnB5DPTmUXMA8xWZp+WptZErViteVoVWie1Olg4ljmLz8pkrWUdZrWzvozTH8cdJx63alzNuJvjPmqP1/bVFmsXatdq39H+osPWCdDJ0Fmv06DzWBeva607VXeu7jbdC7qvxjPHe44Xji8cf3j8Az1Uz1ovUm+B3k69a3r9+gb6Qfoy/c365/RfGbAMfA3SDUoMThn0GjIMvQ0lhiWGpw1fsLXYXHYmu4x9nt1npGcUbKQw2mHUajRgbGEcY7zcuNb4sQnVhGOSYlJi0mzSZ2poOtl0oWm16QMzihnHLM1sk1mL2UdzC/M485XmDebPLbQt+BZ5FtUWjyzplj6WcywrLW9bEa04VhlWW61uWKPWLtZp1hXW121QG1cbic1Wm7YJhAnuE6QTKifctaXZcm1zbattO+1YdmF2y+0a7F7bm9on2q+3b7H/7uDikOmwy+Gho6ZjiONyxybHt07WTkKnCqfbznTnQOclzo3ObybaTBRP3DbxngvDZbLLSpdml2+ubq5y1xrXXjdTtyS3LW53OUxOBGc155I7wd3PfYn7CffPHq4eOR6HPf70tPXM8Nzn+XySxSTxpF2TuryMvQReO7w6vNneSd4/e3f4GPkIfCp9nvqa+Ip8d/v2cK246dz93Nd+Dn5yvzq/jzwP3iLeGX+cf5B/oX9rgGZATEB5wJNA48DUwOrAviCXoAVBZ4IJwaHB64Pv8vX5Qn4Vvy/ELWRRyPlQWmhUaHno0zDrMHlY02R0csjkDZMfTTGbIp3SEA7h/PAN4Y8jLCLmRByfSpwaMbVi6rNIx8iFkS1RjKhZUfuiPkT7Ra+NfhhjGaOIaY5Vi50eWxX7Mc4/rjiuI94+flH81QTdBElCYyIpMTZxd2L/tIBpG6d1T3eZXjC9fYbFjHkzLs/UnZk58+QstVmCWUeSCElxSfuSvgrCBZWC/mR+8pbkPiFPuEn4UuQrKhH1ir3ExeKeFK+U4pTnqV6pG1J703zSStNeSXiScsmb9OD07ekfM8Iz9mQMZsZl1maRs5Kyjkk1pRnS87MNZs+b3SazkRXIOuZ4zNk4p08eKt+djWTPyG7MYWLD0TWFpeIHRWeud25F7qe5sXOPzNOYJ513bb71/FXze/IC835ZgF8gXNC80GjhsoWdi7iLdixGFicvbl5isiR/SffSoKV7l1GXZSz7dbnD8uLl71fErWjK189fmt/1Q9AP1QWqBfKCuys9V27/Ef+j5MfWVc6rNq/6XigqvFLkUFRa9HW1cPWVnxx/KvtpcE3Kmta1rmu3rSOuk65rX++zfm+xRnFecdeGyRvqS9glhSXvN87aeLl0Yun2TdRNik0dZWFljZtNN6/b/LU8rfxOhV9F7Ra9Lau2fNwq2npzm++2mu3624u2f/lZ8vO9HUE76ivNK0t3Enfm7ny2K3ZXyy+cX6p26+4u2v1tj3RPx97Iveer3Kqq9untW1uNViuqe/dP33/jgP+Bxhrbmh21rNqig3BQcfDFoaRD7YdDDzcf4RypOWp2dEsdo66wHqmfX9/XkNbQ0ZjQ2HYs5Fhzk2dT3XG743tOGJ2oOKl1cu0p6qn8U4On8073n5GdeXU29WxX86zmh+fiz90+P/V864XQC5cuBl4818JtOX3J69KJyx6Xj13hXGm46nq1/prLtbpfXX6ta3Vtrb/udr3xhvuNprZJbadu+tw8e8v/1sXb/NtX70y509Ye037v7vS7HfdE957fz7z/5kHug4GHSx8RHhU+Vn9c+kTvSeVvVr/Vdrh2nOz077z2NOrpwy5h18vfs3//2p3/jP6stMewp+q50/MTvYG9N15Me9H9UvZy4FXBHxp/bHlt+fron75/XuuL7+t+I38z+Hb1O513e95PfN/cH9H/5EPWh4GPhZ90Pu39zPnc8iXuS8/A3K+kr2XfrL41fQ/9/mgwa3BQJpALhkcBHKZoSgrA2z0A9AQABjZDUKeNzNTDgox8BwwT/CcembuHxRWgBjNDoxHvDMBBTM2XAqj5AgyNRdG+gDo7K3V0/h2e1YfEAPtWmKYOZF5pewlzKfxDRub4v/T9TwvKrH+z/wKTbgpl1GWk6AAAAKJlWElmTU0AKgAAAAgABgEGAAMAAAABAAIAAAESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgEoAAMAAAABAAIAAIdpAAQAAAABAAAAZgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAJCgAgAEAAAAAQAAArigAwAEAAAAAQAAAcwAAAAAQVNDSUkAAABTY3JlZW5zaG90ufBS7gAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA1NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+MTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTQ0PC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+Njk2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQ2MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgqCsbe9AABAAElEQVR4AexdB3xUxROeVFIJoXcSeu9dVEAEpUhTughYsKACdgVBxF5Bpaj4l2JBBLEBIr136b33DiEF0v/zbdjjcinkcne5e3ez/MK923tvy7dvd7+dnZn1SuVAEgQBQUAQEAQEAUFAEBAEBAE3QcDbTeoh1RAEBAFBQBAQBAQBQUAQEAQUAkJw5UUQBAQBQUAQEAQEAUFAEHArBITgulVzSmUEAUFAEBAEBAFBQBAQBITgyjsgCAgCgoAgIAgIAoKAIOBWCAjBdavmlMoIAoKAICAICAKCgCAgCAjBlXdAEBAEBAFBQBAQBAQBQcCtEBCC61bNKZURBAQBQUAQEAQEAUFAEBCCK++AICAICAKCgCAgCAgCgoBbISAE162aUyojCAgCgoAgIAgIAoKAIOArEAgCgoAgIAgIAoJA3iPg5eWV95lKjoKAgRCw5bBdIbgGamgpqmchIJOfZ7W31NZ6BGyZ/KzPTZ4QBAQBIyEgBNdIrSVlFQQEAUFAEDAhkJSUpK7NF4P6Gp/62vSAi14IUXfRhpFiOQ0B3Xdt6eNCcJ3WfJKxIJAzBGTyyxlOcpfnIKAnvxs3bpgqrQmtt7c3mf/peNONciEICAKGQcCWPi4E1zDNLAUVBAQBQUAQMEcgKirK9FWTWl9fX/Lz81N/uPbx8VH3aFJsekAuBAFBwOURsKWPC8F1+eaVAgoCgoAgIAhkhsD58+dVNMgrCC4Ibb58+SgwMFD94Rq/aZKbWRoSJwgIAq6LgC19XAiu67arlEwQEAQEAUEgGwTOnDmjftUk1t/fXxHb0NBQSklJMZFbkF+R4GYDpPwkCLgoArb0cSG4LtqoUixBQBAQBASB7BE4d+6cugHkVUtvQ0JCCHrr+A7Ciz9cSxAEBAHjIWBLH5deb7z2lhILAoKAICAIMAJXr15VOGiCGxAQoCS3ILVBQUGUmJiovouhprwugoAxEbCljwvBNWabS6kFAUFAEPB4BOLi4hQGmuBCLQEGZvHx8YrcJicnK4Lr8UAJAIKAQRGwpY8LwTVoo0uxBQFBQBDwdAS0j0zgoNUSILVFPMgu4kR66+lvidTfyAjY0se9jVxxKbsgIAgIAoKA5yJgTmAzu9bkVn96LlJSc0HAmAhk1q9REx2v+7b+NK+lEFxzNORaEBAEHIZArVq1HJa2JCwICALORUD6t3Pxl9wzIiAENyMmEiMICAKCgCAgCAgCgoAgYGAEhOAauPGk6IKAICAICAKCgCAgCAgCGREQgpsRE4kRBAQBQUAQEAQEAUFAEDAwAkJwDdx4UnRBQBAQBAQBQUAQEAQEgYwICMHNiInECAKCgCAgCAgCgoAgIAgYGAEhuAZuPCm6ICAICAKCgCAgCAgCgkBGBITgZsREYgQBQUAQEAQEAUFAEBAEDIyAEFwDN54UXRAQBAQBQUAQEAQEAUEgIwJCcDNiIjGCgCBgZwSSz52mOn4plHL5gp1TluQEAUFAEBAEBIGMCAjBzYiJxAgCgoCdEEhNTqboj0fQlV4t6fOwRLrc4y6KnfKZnVKXZAQBQcDZCCRsXk0xX4yllEsXKGHremcXR/IXBEwICME1QSEXgoAgYG8Erv/6P4r/+5dbyTLhvT5jIsUv+etWnFwJAoKAIRGI/fojuvbiQLoxZxqlXLtC14Y9THHff2HIukih3Q8BIbju16ZSI0HAZRBIWDo/07LEZxGf6c0SKQgIAi6HQNL+XXT9p2+IfP0o8OGnybtAQSIfH4qb+gUlHTvocuWVAnkeAr6eV2WpsSAgCFgi0K9fPypcuDB9/vnnNGHCBNqwYQOlpKTQtGnTTLcOGDCAChQooO4xRd7uIjUl8zuyis/8bokVBAQBGxEw7+OWSS1cuJAGDx5Mu3btoqCgIMufM/2e8N9aFR9wXzcKHjSUTk94gipdvXlrd3zG3fxi348rm3JWPvvmKqkZEQGR4Bqx1aTMgoAdEVi+fDnNmjWLXnjhBZVq+/btac2aNVS2bNl0ubzxxhs0ceJE2rJlS7r47L7439k205+zis/0ZheJTL0eRwmbVlPCf+soNSHBRUolxRAEbo+AZR/HE2fPnqVXX32Vbty4QW3btqXixYvTmDFjbp/YzTu8AoPVFQxIjR5SkxIpftl8ivthEsUv/4dSk5OMXiUpPyMgElx5DQQBD0cAk1zPnj2pTJkyColy5crRmTNnqEmTJumQqVSpEnXo0IFefvllWrRoUbrfsvoS2OsxSjq8nxKW/m26JaBbfwpo19X03QgXiVs30LXRz1Jq1BVVXO+iJSj/OxPJt2J1IxRfyujhCFj2ccAxZcoUmjlzJr3//vsKHSxw+/TpQ0OGDKHSpUvfFrF8LdpQ7MQPKHHjSrryeGcqcXgprahTnLyCQyn8h0XkHRZ+2zSsuSG8oWMkwilRlylq+COUfHifqTg+FatR2CdTyTt/AVOcXBgPAZHgGq/NpMSCgFUInDp1ii5fvmx65tKlS6bvO3fupHXr1hG2L3U4duwYxcTEUKNGjVQUJD0rVqxQ1yDCixcvpv379+vbs/30Yv28/G9+RgW+n0evX/NTE1/IsyOyfcbVfky9HkvXRg0xkVuUL+X8Gbr2JhNeNpqTIAg4GwFr+zjKe/DgQWrWrJmp6J07dyZvb2/69ttvTXHZXXgXLEL5x3xJXkwCkw/u4V2NePJiPdzQsRPsTm6zK4etv8VOeF+RW++SZSiwxyDyLl5a1Sd28ke2Ji3POxkBIbhObgDJXhBwFAKxsbH04osvEiSy8+bNU9nExcVRiRIlaPfu3er79u3b1WeNGjVMxYAKAiQ42LKElKdq1ar00ksvqd+rV0+TWM6fn7nxmCkRiwvfchVpbYI3+ZRMr/ZgcZtLfk3ctpFSr2nlwltFTDlzgpIP7b0VIVeCQB4jkJs+Dt362bNnE/RuDx8+TE888YTSt/fz8yPs0ljTt/0btaCCPy+j/B//j3yYGOLav276nZ88hsTq7BLWLFHPhH0whUpPeY4qHPiLKkVvpbIz3yBIjR3xZ3Uh5YFcISAEN1ewyUOCgOsjsHnzZmrdujUls5SxQYMGqsCQ1gYHB5skNyC4gYGBVLJkSVOFNm3apNQTJk2aRBs3bqQTJ07Q+vVp/i0xAULKg3iPCVzfLEN2v2X5kPwgCNgHgdz0cRBcjAHYmenVqxf16NFD9WmUqEqVKoQ0cU9Og1dgEPk3uIPw6ZUvIKePuc59N/twalKS65RJSmIXBEQH1y4wSiKCgOshcNddd9Eff/yhvCNUq1ZNFRDGZC1atGBvPj7q+44dO6h8+fLk5eVlqgAIbmpqqpLeWhLZgIAAZXx27tw50/3ufuFXuxF5hRem1CsX01XVp0x58ilfJV2cfBEE8hKB3PRxX19fRWTRxx999FEKDQ01FRkEFwtiqDEVKVLEFO/OF/4t7qX4ebPo2ksDuZr/qKoeCK1LAZ37UMjQ0XatuqP0iO1aSDdKLBvRhBvVUqoiCHgoAmvXrqXmzZur2kNvdvLkyXTnnXea0Lhy5Yois6YIvoAEB1JbqCpAt88ygBznz5/fMtptv3sFBFJ+6BUWLmaqo3fpCAp9m/UPRYJrwkQunINAbvt4hQoV0pFblB59Gzs0kPB6Sgh+6hXyrVaHUi7eWrT71qxPQY+/6CkQuG09heC6bdNKxQQBUgZkjRs3JujqjRgxggoWLGgyHgM+0MeFsQmkNgiHDh2iqKgoWrVqFUHqO3XqVBWv/0vibTwYodWuXVtHecSnX/W6FP7TEgr76hcKmzSbwr+fT9ArliAIOBsBqB1Z08dRXqgc1apVK0PR0f8rVqyYY1+4GRIwYIR3SH4K+3Im5f/glnFd2PifyDs4xIC1kSKbIyAE1xwNuRYE3AwBeEmAVAZeEoYNG6a2Hi9cuEA//fSTqinUFRLYp+vRo0fVd3hLAHnFoQ/Yvhw3bpyS4modXJBbkNzMJkc3gy5DdeARAkTXr0ot8rqp4pHhJokQBPIYAWv7OIoHNSQsbseOHZvOrzUWux7Zt1lq7d/4LlPLmatsmSLlwnAICME1XJNJgQWBnCEAqSzcfcEqGieUQecO2484rQiGJQitWrVSn3v27FGfy5YtM/m/BcFNTEyk3r17m/Tx9H116tRR98t/goAg4DwEctPHUdro6Gjly7pNmzZUv359VQGkBTUm6dvOa0/J2b4IiJGZffGU1AQBl0EAkltMWKVKlVLEFq6/YBwG6awOdevWVdubMD7r2LGjktjiOF4E6NlCohMeHm4yQpsxY4bS4YX+ngRBQBBwLgK56eMo8V9//aXUlfz9/U0V+Pvvv9WC2NwntulHuRAEDIiASHAN2GhSZEEgpwjgdDJIbREwGZqTW53GBx98oE40OnnyJGlyq3+Dzq7erjty5AjNmTOH3nvvPf2zfAoCgoCTEbC2j6O48HFtTm4R9/HHH9PgwYMpMjISXyUIAoZHQAiu4ZtQKiAI2IZAy5YtlT9MTHDZhQ8//FAd5XnHHXdkd5v85sIIJJ88StEfvUFRQ/tRzLi3KJlPZJPg/gjcro+vXLmS9u3bp3Ry3R8N96xhSnQUn644hC62qqz+LvdqRQkbV7lnZXNYK1FRyCFQcpsg4M4IfPfdd7d17j5+/HiT/1x3xsJd65Z07CBFPf0QpcbFqiombttA8cvmU4HJv5FP0RLuWm2p100EsuvjWLRiBwenmUkwJgLRY4ZS4qbVxI1IXkEhlHLuFF1740kq8M1cj/X4IgTXmO+ylFoQsCsCUGPQqgxZJSyTX1bIGCM+bupXJnKrS5x69TJd//lbCnlupI6STzdFILs+nt1vbgqHW1Ur+cQRRW69gkOp4tmVRJfNqtcd13FmEfa7vLIpyH6JOSAlUVFwAKiSpCAgCAgCroZAMktwMwtZxWd2r8QJAoKA6yGQcjntlEWfMqI/bd46IsE1R0OuBQFBQBBwUwR8+PS15MP7MtTOp1S5DHESIQgIAsZBwCeyklJNSNq73VTow9W7EiS7wU+9SoE9Bpni7XFhlCOHRYJrj9aWNAQBQUAQcHEEgh5+mihfQLpSevEpToG9HksXJ18EAUHAWAh45y9AQQOHpis0yK1PZGUK6NQrXbwnfREJrie1ttRVEBAEPBYB34rVqAAfSRr3wyRKPnWMfCMqUVD/Z8inZFmPxUQqLgi4CwJBvR8nn1Lcl4en1Siw31MU2PMx8gp0bT1ZR+IvBNeR6EragoAgIAi4EAIguflHjXNoiVL5RKyknVsoJfoq+dWoT97hhRyanyQuCAgCaQjku6sdX6QZlAU/OszusKTEXKO4bz7hdF9RacdO/IAlx8+RV0Cg3fOyR4JCcO2BoqQhCAgCgoAgQMkXztK1Vx6j5CP709Bgl0Uhz4+mgA4PCTqCgCBgYARSk5Moanh/Sj6wm2uRRnCv/zKFkg7tobCPv3fJmokOrks2ixRKEBAEBAHjIRDz0eu3yC2Kn5hIMZ+OJPjglSAIeDICIIg64ACG1NRU/dUQnwkrFipy6128tKm8XmHhlLh5DSVu3WCKc6ULIbiu1BpSFkFAEPBYBJIvnqPoD1+jK/3b0dWhfSl+1SJDYZF643qao3nLUqekUMLapZax8l0Q8BgEUtjf9NXByiGtqvO1lwfRtWEPU+p1x/indQSwyccPq2TztWpvSr7iyaVUKXorFX2sJsGzgqt5VxCCa2oquRAEBAFBwDkIpMREU9SQXhQ/f7Zy7ZO0bSNFj3ya4hf/6ZwC5SZXPiyETwvJ9EkvH9GGyxQYifQIBGK+GEvJvJWvg1d4YcJJgnHfj9dRLv/pXbKMKmPC6sUuX1ZdQBl1NBLyKQgIAoZFIDUhgbfKVhOMIPxqNyKfYiUNVZf4BbPV0ZqWhY79/gvKd08ny2iX/O7ln4/877iHsJWZLrAern+LNumi5IsgYA0C0O0myq8eST51PM1bgDUJOPnehFX/pitBxeM3d2emcPQUY0hx8919H12fPoGSjx+iA6F1TfXxrVaHwtg7i1cWi1vTjU64yHy57YSCSJaCgCAgCOQGAbi8ujLgfrr2+mCKefclutL3Hrr+24zcJOW0Z5LPnMw075QzJzKNd9XIkBfGkl+9pqbieYWGUeibn5NPiTTpj+kHuRAEcohA/JK/VZ/Wt195pB1d/+Mn/dXlP5WurcH0bTMDFQvYsM+mkz88NfC1V2Aw5WvXlfJ/8K1LklvUQSS4mbWkxAkCgoBhEIj+4DVKRwTZTVXsF28rouUbUdEQ9fAtXyXTcvpkEZ/pzS4QCYfzYZ9OU2oWKdFR5FuhKnlZHC7hAsWUIhgEgZRL5yn6fbbYZ2NFU0D/HvcW+dVtTL5lK5iiXfXCy8uL/Ju3poTlC+hQtS7k37QlJSybTymscx/QvT+FDBnhqkXPUC7vQkUp/1tfZIh31QghuK7aMlIuQUAQuC0CKbExlLRjU8b7WGKSsH45H2ZgDIKb797OdOPPnylp345bdfH1o+An09zx3Io0xpVPmUjyMUZRpZQujAC8DVBiAvk1vovopuonjJpU6Ib/jbG9H/LcSIo6eoCSjx2iG79+r4rvW6MeBQ1Kf/qY+kH+sxsCQnDtBqUkJAgIAnmNgJcvD2E+TKVYqmMZsKVmlODl76+2/67/Np0Sd2wm74JFKLBrX/KtWN0oVZByCgIOQOCmKy2Wgho5oD8X+OZ3SmDPKFBH8uGFNyS5rqi3amScLcsuBNcSEfkuCAgChkEA29/QCUtYOi99mflkHf87700f5+LfcKRmUJ/BLl5KKZ4gkHcI+DVsQeTnT4m8G3Os/cuEhWD84r+ImPAW+N/f5FuuYt4VxsacvLge5i62bExOHs8BAmJklgOQ5BZBQBBwXQRCho8hP5aG6OBduBjlHzuRfPhTgiAgCBgXAfTh0FfeY2shP0pYuTCN3LK1fvCzIw1Fbo3bAsYuuUhwjd1+UnpBwOMR8A7JT2Hvfa2OiU1lf7I+ZcuTF9QWJAgCgoDhEYCbPN+aDdIOC0lJJn/Wx/UpHWH4ekkFHI+AEFzHYyw5CAKCQB4g4FOkOBH+JAgCgoBbIQC/1oFd+rpVnaQyjkdAVBQcj7HkIAgIAoKAICAICAKCgCCQhwgIwc1DsCUrQUAQEAQEAUFAEBAEBAHHIyAE1/EYSw6CgCAgCAgCgoAgIAgIAnmIgBDcPARbshIEBAFBQBAQBAQBQUAQcDwCQnAdj7HkIAgIAoKAICAICAKCgCCQhwgIwc1DsCUrQUAQEAQEAUFAEBAEBAHHIyAE1/EYSw6CgCCQRwjUqlXL4Tk5Og9Hpw+A3CUPhze2ZOAyCLjLO+sO9ciLOtjjxROCaw8UJQ1BQBAQBAQBQUAQEAQEAZdBQAiuyzSFFEQQEAQEAUFAEBAEBAFBwB4ICMG1B4qShiAgCAgCgoAgIAgIAoKAyyAgR/W6TFNIQQQB90LAUk/r4MGDDtf9dIc83KEOeJNtrceOHTvcq0O4WW3yun/b+j7lBH7JIyco2d63kUte9G8huDlrT7lLEBAErETAcgDDhGgZZ2WSt73dHfJwhzqgofKiHrd9IeQGhyFg2Zcd3d6OTh9ASR45e13yAqeclST7u0RFIXt85FdBQBAQBAQBQUAQEAQEAYMhIATXYA0mxRUEBAFBQBAQBAQBQUAQyB4Br1QO2d8ivwoCgoAzEPDy8lLZShd1BvqSpysjoPvGqFGjVDHx3cfHhwIDAyksLIyKFClCJUqUoKJFi1J4eDgFBQWRn5+fy1VJ10P6uMs1jRTIyQjovmFLHxcdXCc3omQvCHgCAidOnKA//viDrl+/TnfddRc1btzYYdUeO3Ysde/enapVq2b3PNauXUsrV66kc+fOUZUqVahv374UHBxsl3xAcubPn08bNmygggULUocOHahChQp2STuzRM6cOUPA6qmnnqKaNWtmdkuu4qCbuXHjxgzP9ujRg0JCQjLES4TxEcir/m3Uvo0Wdof+bbS+LQTX+GOL1EAQcGkEFixYQO3bt1dEMCAggF566SX65JNPaPjw4XYv97x582jkyJFUsWJFuxPczz//nIYNG0b58+enfPny0YULF+ijjz5ShBRSQlvDY489Rt99952SOmIh8Pzzz1O3bt3o119/JS3NsDUP/Twm20ceeYT+/fdfuueee+xKcKdMmULjxo3TWZk+W7duLQTXhIb7XORV/zZy30Zru0P/NlrfFh1c9xlnpCaCgMshcO3aNTWwN2rUiM6fP6/+QKxeeOEF2rdvn93KC2LYtm1b6tKli93SNE8oPj6eXn31VUXUL168SJB+gtzCrdCnn35qfmuurvfv36/I7WuvvaakwyDPkELPmTOHdu7cmas0s3sICwyQW0cEYNKzZ09C25v/lStXzhHZSZpORCAv+rfR+zaax136t9H6thBcJw4OkrUg4O4IrF+/nk6dOkWvv/660o+EJPLpp59W1YZk0l4hJiZG6V22atXKXkmmS2fz5s0EkvvMM88oXU7oe2JrH5/btm1Ld29uvkD1AUFjAwkxSCICSIQ9A+qC9sAiwxHhwIEDVKNGDQoNDU33Z28ptCPKLmlah0Be9G+j920g6i7922h9Wwiudf1Z7hYEBAErEIDkAqF58+ampypXrqyuDx06ZIqz9eK5556jH374gd566y1bk8r0+fLly9Off/6p9If1DStWrKDk5GSKiIjQUbn+7N+/vyLQpUuXprNnz9KaNWuUGkexYsWoadOmuU7X8sHY2Fjq06cPde3aVakoWP5u63fgcfToUSUdRptDDxp6yvZsa1vLKM/bD4G86N9G79tA2x36txH7thBc+/V1SUkQEAQsEMAECMkdjKZ0KFCgABUuXJguXbqko1z+s3jx4tSxY0eTDimkz/369VMW+/aQhAIjf39/hUODBg3ojjvuIEjHhg4dqqTE9gLo2Wefpbi4OJo0aZK9kkyXzvHjxykhIYF27dpFdevWJSxmZs2aRQ0bNiT8JsG9EHCH/u3ovo0Wd4f+bcS+LQTXvcYbqY0g4FIIpKSkKOvhGzdupCsXjJxKlSqVLs4IX44dO6a8Gzz00EOKvK1bt47srVsKo51vvvlGkVzo5M6dO9cu0MycOZOmTp1K06ZNU66z7JKoRSLwKPHFF18QcJkwYQL9/vvv9P3339PVq1dVvMXt8tXgCLhT/86Lvo3mNmr/NmLfFoJr8AFGii8IuDIC2GJHOHz4sKmYSUlJdOXKFapdu7YpzggXW7duVeoC0GEFSYQaQdWqVe1S9MWLFysyiMRwDCYsrmGxDMkP3KvZI6DMWFg8+eSTysUZ3JAhQJe4Xbt29shCeYAYMmQIVapUyZQejOUgnYaBigT3QsBd+rcj+zZa3B36N3xKG61vi5sw9xpvpDaCgEshoP3dwrcriBvCokWLCJIfIxFcEPK7776bIljfdsmSJVSoUCG74jxjxgylQ3z58mWTGoRWWYAhmz3CoEGDVB10WvDU8PHHHytyay/jPLgH+9///kc//vgjVa9eXWUFbxlQW4iMjNRZy6ebIOAO/dvRfRtN7Q7924h9Wwiumww0Ug1BwBURgI9VEJs33nhDqSTA0T+MRiDhq1evnisWOdMy4XAHeDNo0qSJ8ktrfhPqBxdltgTo92IrH14aXnzxRcJ2KdyPQeIKX7j2CJCkmgcQTxBcuFazVx4wKoNXCbiCQ312795N77//vtIjHjhwoHn2cu0GCLhD/3Z030Yzu0P/NmLfFoLrBoOMVEEQcFUEIH3E6Vxt2rSh+++/XxWzTJkySg8Nx6oaJUAdAQG6sfgzDw8++KDNBBfkE8QW/mmhSoCA42XxXeNmnqerXoPogzR/9dVXpsMjcHQuJFhagu+qZZdyWY+AO/RvR/dtoOoO/duIfduLJQSp1r/W8oQgIAg4GgHoXyK4QxdFHXBggbe3t/KR6mjsjJo+DpHYu3ev8hmMo4CNfLQt2hsECKfK+fn52bVJdN+w5Zx6uxYol4npehi9j0v/ztkL4C7925F9WyOp+4YtfVwkuBpN+RQEBAGHIYDBSiR4t4cX7tNatGhx+xtv3gH9QUiU4Uge/nJfeeWVHD/r6Btr1qzp6CwkfRdBQPp3zhrCXfq3Ufq2eFHI2XspdwkCgoAg4HIIwHVPp06dlCsxSHwlCAKCgPsgIP3btrYUgmsbfvK0ICAICAJOQ0B7WkABYAAnQRAQBNwHAenftrWlEFzb8JOnBQFBQBBwKgI4NQyHZpQoUUKVA+fF//fff04tk2QuCAgC9kFA+nfucRSCm3vs5ElBQBAQBJyOwJYtW6hRo0bKGBHHBtepU4cmT57s9HJJAQQBQcB2BKR/5x5DMTLLPXbypCAgCAgCTkdg06ZNhIMa4EMXHgvgr9fXV4Z2pzeMFEAQsAMC0r9zD6KMgrnHTp4UBAQBQcDpCODoYLhfK1u2LA0fPtzp5ZECCAKCgP0QkP6deyyF4OYeO3lSEBAEBAGnInD48GHC8b7nzp1Tp4bhCGSQXQmCgCBgfASkf9vWhjIS2oafPC0ICAKCgNMQ2LBhg1JLWLJkCZ0/f54WLVrktLJIxoKAIGBfBKR/24anEFzb8JOnBQFBQBBwGgIrV65U+rfh4eHqONCxY8fS8ePHad++fU4rk2QsCAgC9kFA+rdtOArBtQ0/eVoQEAQEAachsHz5cmrcuLHKH/q3q1evppEjR1Lx4sWdVibJWBAQBOyDgPRv23AUHVzb8JOnBQFBQBBwGgKrVq2iAgUKqPwbNGigdHFxHKgEQUAQMD4C0r9ta0OR4NqGnzwtCAgCgoDTENDkVhdAyK1GQj4FAeMjIP3btjYUCa5t+MnTgoDDEfDy8nJ4HpKBICAIOA8B6ePOw15ydl8ERILrvm0rNRMEBAFBQBAQBAQBQcAjERAJrkc2u1TaCAikpqaqYsK3aXx8vDqh6tKlS3T27Fn1B/+nMTExlJCQoI5pNUKdpIyuh8Dp06fpypUrVKNGDdcrnBUlMqIUVPfx5ORkUx+/ePFiuj4eGxtLiYmJhHHAljBu3DgKCAigwYMH25KMPCsIOA0Ba/u4EFynNZVkLAhYhwA6N/7gyN/Hx0f94UhWTI56orQuRblbECCCK6IDBw5QrVq11PtlVEx0n0D/wJ/uL0arjy63eT9HH0d8bgMWyFFRURQZGanGjdymI88JAs5EQPdt/an7SlZlEoKbFTISLwi4GALozOjYILV+fn6UL18+SkpKUhOfEFwXaywDFQcuxfbs2UNxcXFUqFAhA5U8fVHRL9An8If+ge/oL7ebBNOn4pxvmrzqiRtkHXXw9/dX0lv8bksfP3PmjHq+dOnSCh/n1FJyFQRsQ0D3cd2/0U90/9Z9yDwHIbjmaMi1IOCiCGDi05MeJvCgoCA18SEe25e2TH4uWmUpVh4hULZsWZUTtsIh4TNqQP9A3wgODqbAwEBFDhGHPmKEoMktJm+oEug+jokbC1lb+jjUmRAqVKhAoaGhRoBDyigIZEBA93H0DfQRTXQzI7d4WAhuBgglQhBwPQTQgfXqFRM4Jjx8v3Hjhs2Tn+vVVkqUlwhUqVJFZQd97iJFiuRl1nbNSy8AQW5B4jTJBXHMagK0awFsTMyyj2PhirJjMreV4EKvFwFqKEJwbWwoedxpCKCPY1cDfTskJER9guQiPrM+LgTXaU0lGQsCOUMAHRcTHQgtVq0wNsF3dHJMgqKDmzMc5a7MEcB7hHD16lXDnoCGPmJOEFEnEENMhllNfpmj4ZxY3ce19BYk1J59HIaEWLxUqlTJORWUXAUBGxHQfUQLetC/b9fHheDaCLo8LgjkBQJ68gbBxTUmQnNya8v2ZV6UX/JwXQSKFStGYWFhBD1NXBs16AkQfQN/UFcwCsEF5uaLWN3HsVuDBawtHhTw7NGjR6lJkyaGXcAY9Z2UctsXAfQLLFhBctG3b9fHheDaF39JTRCwOwJ64kbCuoOjY2vJLcitEFy7w+5RCUJNASQoPDzckPVGv0DQfQWToP4DcdS/u3LlNMHNqo/ntuwHDx6k69evU7169QxtRJjb+stz7oWA7h+6f4PsZtXHheC6V9tLbdwUAT1x6090aiG2btrYTqhWtWrVaMOGDeqdgm6bUQP6B/4Qspr0XLFuKDP6sy4zPnX/tnXxChdwCA0aNFAGeK5YfymTIJATBHTf1v3c/DOz54XgZoaKxAkCLoiA7sy2TnguWDUpkpMRqFq1qirB4cOHFRFycnHslr2eEO2WoAMTMi8rpFP2Crt371ZJgeBiW1eCIOBOCJj3G8t6CcG1RES+CwIujkB2HdrFiy7Fc1EENMHdv38/NWzY0EVL6RnFsnf/3rZtmzJOhYGZvdP2jBaRWhoVAWM4CDQqulJuQUAQEAQMgIB2FbZv3z4DlFaKaA0CILi1a9dWOsnWPCf3CgJGR0AIrtFbUMovCAgCgoCNCJQvX14RICG4NgLpYo9fuXKFTp48SXXq1HGxkklxBAHHIyAE1/EYSw6CgCAgCLg0AvDKgVPMhOC6dDNZXbitW7eqZ4TgWg2dPOAGCAjBdYNGlCoIAoKAIGArAlBT0Bb3tqYlz7sGAlBPQBCC6xrtIaXIWwSE4OYt3pKbICAICAIuiQAIbmxsLJ04ccIlyyeFsh4BTXBxRK8EQcDTEBCC62ktLvUVBAQBQSATBMTQLBNQDB4FggvVE5xUJ0EQ8DQEhOB6WotLfQUBQUAQyAQBIbiZgGLgqKSkJIIPXFFPMHAjStFtQkAIrk3wycOCgCAgCLgHAkJw3aMddS327t1L8fHxQnA1IPLpcQgIwfW4JpcKCwKCgCCQEYHixYtTaGioeFLICI0hY7T+rUhwDdl8Umg7ICAE1w4gShKCgCAgCLgDAjjRTFyFuUNLEgnBdY92lFrkHgEhuLnHTp4UBAQBQcCtEICaArwo3Lhxw63q5YmVAcENCQlRRmaeWH+psyAgBFfeAUFAEBAEBAGFAAhuSkoK7d+/XxAxOALbt29X+rdeXl4Gr4kUXxDIHQJCcHOHmzwlCAgCgoDbISCGZu7RpOfOnaOzZ8+KgZl7NKfUIpcICMHNJXDymCAgCAgC7oaAEFz3aFHRv3WPdpRa2IaAEFzb8JOnBQFBQBBwGwQqVqxI2NIWQzNjN6kQXGO3n5TePgj4ZpWM6O1khYzECwK3EEhNTb31Ra4EAYMjEBQURGXLlhWCa/B2BMHFHF6zZk2D10SKLwjkHgGR4OYeO3lSEBAEBAG3QwBqCmJkZuxmBcGtVKkSBQcHG7siUnpBwAYEspTg6jRFQqWRkE9B4BYCeocDFueWQf+mPy1/l++CgCsjAIK7cOFCZaSEwx8kGAuBhIQEJYHv0qWLsQoupRUE7IyASHDtDKgk51kIwF8o/nAkJiYWnP+OPxBf/MkC0bPeB3eorRiaGbsVd+3aRYmJieJBwdjNKKW3AwJCcO0AoiThuQhER0cT/mJiYig2Npbi4uJMRFcIrue+F0auuRBcI7eenGBm7NaT0tsTgduqKNgzM0lLEHA3BC5evKiq5OPjQ76+vpQvXz4KCAhQn7gWNQV3a3H3r48QXGO3sXhQMHb7Senth4AQXPthKSl5IAJnzpwhb29vAsEFoYUVemhoqEIC8fpPiK4HvhwGrXLp0qUpMDBQPCkYtP1AcAsUKEBlypQxaA2k2IKAfRAQgmsfHCUVD0UAJwaBvPr5+SlSoMktpLmIw5+rBahOoMxCul2tZVyjPHgvIMUVX7iu0R7WlgJH9NatW9fax+R+AyOgbT1ceUxHGc3LZ/ndGvhz+qzo4FqDqtwrCFggcPnyZbpy5Yr6u3r1qtLHhR4ujM5gbIaOiD9XCprgulKZpCyuhQAI7tGjR5WxkmuVTEqTHQInT56kS5cuiYFZdiC54W8gjubk0RWraFk+fM/t3JjTZ0WC64pvgpTJMAjAuAxqCP7+/mqAgf6t9qZgq5EZOv+hQ4fowvnz5OvjS/EJ8WpACA4JocjISAoPD7cKJ5RnO29fbli/gQJYnaJL926UP39+q9KQmz0DARBcLNAOHjxI1apV84xKu0EtRf/WDRrRiipcuHCBtv23lbCwwdwD9aJS/BcTE01VqlZV85IVydn9Vsw5Z8+epb179qjyNW3aTBljHzp0kI4fP0F3t7ybwsLCcpwvPBYd5jnxyJEj1OLOO2/7rEhwcwyt3CgIZEQA7njM/0AKkpOTTS7CcrtC1Tnh+a8nfU3du3VTxPTypcv0+29zqeeDD9HXkyerfPS92X2iTH/M/Z0WzF9AdevVpe+nTqW1a9Zk94j85sEIiKGZMRtfCK4x2y03pf7z9z/oyScG08qVK6lEyRJUokQJ2rJlCz06cKCaG2JZ+GKvAKKam5CYkEh7du2m5599jv5Z8A8lpyTzDsNFmvDlVzTmrbfoWtS1HM9hyB8CpUkTJ9Hrr72uPBbdrkweJcGtVasW7dix43aYyO+CQI4R0B0fRBTX+MO1rcRWFwCnETVr3pxWrVpJXbp1pfLly1PHBzrR5EmT6c03RlC5cuWo3X336duz/MTK98cff6SuXbtSo8aN6dc5sykoOCjL++UHz0ZACK4x2x8EFwav1atXN2YFpNQ5QmDe33/T20wQnx82lLp2766Mm/Hg3a1aUmT5SFr87yJK4XnI1nD9+nVav3YdNWnWVNmYWJsebFAaNm5EZXmewnuJEMG7j02aNqUd7K/Zy9vLqiQLFy5MjRo1ojWrV+dIJUMkuFbBKzcLAnmPQFJSIjFlVqoPyB0qEc14wOEeTjt37ExXIEiTjx8/TqdPnTbFxzO53bd3L505fVqtgKGjB2O4gHwBiogjHs9osq4f1HrE16Ki1GEWiMc9586eo2PHjik9Y30vCD3uh6QYg+LZM2fVal3/rp5NvvVsHN9jHpJZ8o1ttlOnTtltcWCevlxbh0DlypXVA2JoZh1uzr4bBLcqb01ju1qCeyJwhe0+IAGtWasmtW3XLgPxbHPvvdSUCWQ+VpvTAWM+tvVhL2I5zsNmBOM37EmgDqd/j2O/7hO/mkAzZ/6s1AywO4mAcR73Q/oafyNeZ6HsTw4fPkwwvNYCnpRUFvrwvTpNfbP6zvHmAap9x48dJ3gmyiwc5znnLP+mnuW5LyfBoyS4OQFE7hEEXA0BKNTjn/bIgMFj2dJllMpks0bNGqbiXrxwkebM/pUCAoNo3do1VKxYMXrltdfoEvvqXbViJWHLCqccQXcX+ktwJTR37m90Pe46HThwQA1+I0aO5OcDaPasWbR+3XrWkWpJP/30k7Kq//Djj2jeX3+rgRCDEPSDh70wnCqzlHnO7Dn0159/0n33368G0rVr11KDBg1Ip4dBFKoVIL/evGrH7wMHDVIr+atXr/CzfzGB5+2s3buU3tjTQ4YofTJT5eQiTxHAAqhkyZLiSSFPUbctM/Qt9ONevXrZlpA87dIIbN68RenGt+/QgQLZLSXmB/MAF38P8DHNGMcxV/w661c6f/4czwfFeR5YQbXq1KbeffpQEo+306ZNIyyKWrVqRZs3b6b//tui3p/+AwbQSRY2zJ8/XwlUlvN807BRQ9q4cSPhuhPvIn777RSqWq0qvfPuuzxXrKNNGzdR5SqVee5ZR8HBwfT80OcphMeR9KVLK6l5mXENPd3f585Vzy1btozKlS3Hc9erai6I4YOUJk6YyONRCVXfxYsXszSYqasFQTbHQF+LBFcjIZ+CgAsjADK7iQcXdO633xpD8/6eR2PGjqV727ZVgxgkt199+SVVYsnbw/0fpqHDhtH3//ueZs2cyfpZJemetvdSEBunNWzYkAe/zhReMJx++eUXlszG0yOsszV0+HBlCPDJxx+r7a5AJsmrWLcL7s7GvD2G2nI+//6zkI6fOEH9BzxCQ54dwsQ4jsaMfotX1KlUtmxZ2rFzp5IAPDH4CXrxpRdp/rx5tHHDBkVq5/72Gx09dpT6PtyPOnXurMjstKnT1Kr/h+kzKDQklAYMGkiDBj1KK5avoCk8eFqu+l24edyyaFBT2L9/v1vWzR0rBfU79Jk6deq4Y/WkTjcROHT4EGHHq0B4AdO2vyU4UD/DTt/ff/1FC/9ZQJ2Z8HZ/sDs9+vhj9B2PrRA2+PDYHsJzAsZoCE9efPkl6tOnL/34w490/tx5qlChAlWvUV2pwWHOwNwS4J+PVq9aRdeuRdOIN0fSAw88wEKJ3fTpJ58q0tuJvw9/4QVayUR63OfjTLuOluXT30FusesHSXHNmrWob79+TIyH0nfffUc//fCDmtuQdipLgnv37UtdWMWuQsUK/J4nqx1MnU5WnyLBzQoZiRcEXAgBbPPERMcQSCGsSH+dM8ckvcUq/ciRo0ovqRDrKGGbJ5HVGlq0aEGXeNsJg4gfD2YI0IOCx4dr167RXzz41a5dm36YMYMSEhM4vZqK0GJghNFCoSJFqBb/Xqt2LWX5OuL1N9TvGACxXVWaHcnDWjfuehwVKVaUglma0LhpEypWvDh7fEhQA/B53vKCYQCM2556+il1GAZI81tMmrHVBaO5JUuWqrJO57phm6p6jRrkw2XAtWy1Ou8lBMFdunSpcjtVqFAh5xVEcs4RAmJgliOYDH9TKqt6QT1NqQFkI8UEcZw9e7Ya47Fbh3kA43ljVl9APGw3ihQprMbpxk2aUHEet/E7nouNjUmTDLPwgjNSBBgHGZWNKEdhnFbTZs3YS0MVRaLfeXus2m2DPQjmjiJFizCZfpCNwSay8GSA8nSQqRSXZbuYC7DrgB29UqVK0UG+TmBhTdMmTdmI7LpSV8A8BaNopI0AD0Kq7jloSSG4OQBJbhEEnI2ALxPTNiyFhVuVTh060acsaR33xXi1BYTODtIL0nn/ffdT8ZLF1eA0gCWzILQgx+YDAq6hX3WO1Qzu41U7CCXiHn74YTXgQAqUjEGUg37uBm9/njp1kh55ZAC1uqe1iteHWeA+6F0hYHBESMEnD6gwIohmMn2CdXz1IRgoEyS+uHf7tu2EtDt26siDJJ+8xCPhwEFp5dYDmkpQ/stzBMwNzZqzoaME10ZACK5rt4+9SleOSaYXk71LFy+ZxtvM0oZh8Ul2xVWLJaPmoVLFirSB1c+SktP8tLN5R9p4jU8e+9UgbP6A2TV+B1HGnw7Q7fXzYyppFgdVBbi1hOpBwYIF0/2mn8Pt/n7+tHsnq6WxBPn+9u2pYKGCKm3MAZhfsAsIG5JgM4PotDLqVLL/FBWF7PGRXwUBpyMAkgl1fAxYFXhwGjP2bVq4cCGNHzeeiSbGDi8KZKOSi6xre5FdsED/CXpYIJLQy01gNQSQxVtDEhuq8W8gxDAiwvHCuB/bVFFXo5j8xpE3p4l/OuB+Ly9v2rt3j7ofz0ASDL0/HHBhPuClPcPPctlQdp0XVuc6IB71geoFpMnH+FABbKvpckez3lVsTKy+XT6dgIA5wXVC9pKllQiA4BbhXRdI4iS4LwL16tensrx7tpo9CcSwoEILIVBjGHXpTxDEMFZjOMFqZdpADL/5+HhT0WJF1PyA+SPbABaKv5tB55U2I6VFFmJSCnsMqMnpgLzzsToDdn4gyNDP6d/1J1QPQkJD6DQbOsMWQ89FeP4qG8RhDsEOYBQbOiMN/HnzPJTTkPM7c5qi3CcICAJ2QUAPCiCqGCQwzIBIQpfqmSHP0BfjxtEMNhJAHLaWoE81nuOgP4XBZs3qNfTH77+zrpUPE1wfNThgcMP9uBeS2/GsJwVPDEgfFrC/sM4uVvY+vCLHIAZyijEQqgK1WVVhxrTpym0M7sfqfMb06SyhjVbk2HzwQZkxLuKACmyPVWFjhC/Gf6F8IoLYQnK7kP0iFmBdYGxpTWAdLJycBbWEnaxLCJ+9yVwOCc5DQAiu87DPTc5yRG9uUDPeM1jAPPnUU2qc/IHHYwgIdABhhbAAOrYYS+/jHT3o2MI7jZZ8btu+Q0lLtTABz3rxvIAJBgbAahzn8RsBxBj6rojD8yCeuMa4rsP997enUydPsV/1tSYivY5VDlq1bq1882rhB+YSHSBwwc5iUlIyu/1qrPSBoWsLIQ3ywdw1l43Oateto+aqn3/6WeWLtFDfpMQkVT+dXlaft0qZ1R0SLwgIAk5DAKRz06ZNKv9lrA9ZkFfE8AX4HCvi72IH2h99+KE6jaztfe3o1ddfo9deeZVVGDqwL8TyVIa3/GE4gEFqJxuAxbBe1V52F3aRT79BOoOfHEwvDBtOvXr0UH4zob/7OBuIQZK7d89epTqwf/8+NjYor3Rne/bqrTwrDBo0kKpUrqLK0aNXTypeojj9yxJl6N0eOnKY6tavRwfZOOny5SvKo0Kbe9vQE4MH0ysvvUw9HnpI+fIFuX7mmWeU7u7jTzxBb40aTT26P0iRkZFKfQFWvPmtOOHGaQ3kxhlDpw5SenEV5vqNjG1iTPxiYOb6bWWPEnZjIQcOTYAh8QE+bfCeNvco7zgnWCUB0k7o14LA9uTx+RDvnH337bfUncfXM2fPUCk2OoaOLEgm5hfswh1jGw5IW/ft3ce6r7F05NBhNU7X4HF6OgtRPvnoY5Xmnt17WHiSRJt5TsK4D0HJXaw2B8NiGAsHcZ4o10VWn4CPXujtHuC5AB58TjPJhisyxEHim8A2GPhs3KQxjRgxkl5jrwkPdOiojNow9rzAc1fRokXpzdGjaOzbbxPco9WpW5e2bt2qhCeYcx597LFs4fRiNp6pkFqz7ix+zjZRV/1RDnpw1ZYxXrl0/xg1apQaKNBpoRoAfSOssOGiC0RU+Ztl6ScGE2sD+h4U8PVRvdh+AgEszifWIEDvFYMHCCkkuBjQYNGK41VxBG9DdoiNAQhbPAcPHOSBjFUPWJIL90+ly5RWaUA3Fq7DIHGtzdbXKDcmyv2sugBiHMBpwpoW6WFljTwhfcU1/G3CqTgM1A7s26+eg/cF6IjBDy62mCD5rczGCPiEn9vdnBeuMVAp3SwuBfI5zAPqgQP71RZVndp1qGBhMWpSDeTk/2qy4SHaeje/VxJcFwFIu3CIy3TeUenHlugSPAMB+C8HKT1x4jiPq4EUERHBc0EtNe7rOQo6rJDuQ5UshL3V1GGpKFQB4LoRi1d4wylQIFzNC8ePH1MGxaGh+ZXLLzy7hd2H+bPP9EqVK9FRXkhhdxBzTkV2D4ljdnU+OAYe7iODeA6Aj94C7I4SYwfmniuXL7GE2EuVD94bDvEchfkNz8M7A9KDF5AjTLjD8odRIya9KKMO2NXDvIbT2jBHYU6DkOR286oQXI2gfAoCViCgO7UjCa4VxVG3YsDQ5UKE5ffbpWf1/Zwg1CZyGrCS1vdnm5f5jTlNXO5zCALd+ZQkWDFjMsQiSIJrIvAWn2o1evRoRWQgyJHg/ghkNUxajq23++4IpCzzvF0elven+55FRdPdk0UG1ouVskhIogUBQcC5CJiTW5TE8vvtSmf1/bdL0OJ3TW4RnW1e5jdapCFf8xYB6OFClw9b4BJcFwEYmEGdBLsqEjwDgayGScux9XbfHYGWZZ63y8Py/nTfs6hounuyyEAIbhbASLQgIAgIAp6OgBiaGeMNAMGtXr262uo1RomllIKA4xEQgut4jCUHQUAQEAQMiYAQXNdvNrjUg4RdDMxcv62khHmLgNMJLgxPoGiMIyFhUAM9opYtW9I///xjQuICW33D1ZAYOpggkQtBQBAQBByOQGU2AEEQTwoOhzrXGcCACPqIQnBzDaE86KYIOJ3gDh8+nNq1a0cYSGF9Dh2i5cuXk7miPJxXDxo0iJ5i328SBAFBQBAQBPIGAXi6wPgrBDdv8M5NLnKCWW5Qk2c8AQGn+sGFf89Zs2bR+vXrFdZwqYTz6UuXLq1cVpg3wLBhw5SLJLhD6dKli/lPci0ICAKCgCDgIASgpuBIggvpo7uHnBjE5BYDTXBrs6tACYKAIHALAYcTXKgdwGkv/KHBqS8cB+vwLTsfrsS+1Bo3bqyjlE/ORuy/U4eNGzcqCQL8uzVr1owmTJggBFeDI59ujQCmffj/28EGJAgpKakEstGgUcPb+v9TDxjwP5Cdy5cu0a+zfqVjx46pGjiSHBgQolwXGVb2devVo/vuv085W89pQnjnVq1apfwcwx+yvYO0r22IguCWKlVK+d3OaUrKv+mWLUotEF4yJDgRAR7oK1SsQE2aNk3n+zWrEkGdczPzInCqQPYVW5PdwpXng31wyhjc+a1fu459jp+gMPZt27p1Kz4KNzSrpDKNP3/+PH3Jp0526tSJ6jWor9LN7Eb4w/3vv//4pLSNdNdddypuZ35aGZ7ZzYcRbVi/Tvnf7dT5AeXpIy/7u8MILpzF46SiGTNmEDogruH4/rfffjNhBd0hc8KLH7Zwp7vnnnvUYNqnTx9asmQJjR8/nh7jEytgJTp16lTViOZOgE0JyoUg4E4IMNkrV7YcreVjC1975RV68umnqH3HDtm72LJT/dOEaun96top6WyTAcE9y4dJzJk9m+o3aKD08z1BwpctKHb4EZPhUT7CE8crN2veTJ0QlNNkzQ3NzIUPOX0+q/vQridPnFQ7eDjMJC8nvqzK5Ij4cFbzaNCwgdqBtLcvYbQrHOTDbsWacJ7tWmbO/EU51sdpUfYulzVl8fR7z/N4B2KIgxNywmtKFC/BwsLDNOWbb+jpIUOoxZ13mtoPBw4FBQfRL7/8QsNeeIH8eFFrbcBR6jj58o477lC63Vk9j/6KY+FxZHwECzGrMT8z13mFgIZvIRyzi8McOnTqaLVv9qzyzmm8wwguiGzbtm3p119/pe+//56a8uqkfv36pnJhcAOIzZs3Txe3mU/NeO6559RpLI8//rhyMq5vwEALFQYQY6QnQRBwZwQwgOQPw4lkDZXErUHDRqbTvyxJX1bkQN+nXAlitOGASREBz+Bfqvqnv6edLLZ65Uo+7ayskiyom/PoP5QX5YKa0rAXhltFxPKoiIbMBqfFLV2ylBYvWmRq/5xWxFEENyU5hTDez+DTt3A6EaTD+n3Nadlc+T68x5ConTl9Wp0WVbZMGRMRsVe5cboT8rDWwCw5KZlPjMpPmGPbsUQfJ0lJcA4CG1hF85uvv85x5qH5Q2nAwAG0lI9uP8XH32Jxosd/XOMo3ZatWlMDFhCA8KrA4yrYJsZ6jPnpAv+Gn3V0GX5Pf/5lpnondLq4X4/NqbyT6OXtpSS79flYdujp+/imHQKDZJAYnkMuIL0gt6qMyJnj025Ju0enqSId8J/DCO4jjzxCP/74I2E1gKNBX3zxxXTFhzQB7k0qVqxoiocKAyS/X375JfXo0YM6d+5s+g0XeqDFcaESBAFPQSA5OTltcFKjUFqtMTDgONwiRQrTflYD8vfzV0cpakywfRR9LZqPb8xHe/bsocJsKARVoWQmOsdPnMBQQ0WKFlFbRjju0YeP8C3Ex+PiuN8VbOT5zttj6ZVXX1VHPhYtVtQ0MOn0Hf2J+iXK1qndYMaiJikp8eZSxrpk9bjrCD1cX56QIRUeMGig2ma3rmSufze2e2dMm0a+fr6Mvf2D1r+1luAq9sHFSU5OohSML0Jw7d84OUwRi09rQ2kmodjpxk7XHj7+vAmrb2KRgn6Oo3UbN25EgXwkug6xvAjCMe442rYGH79tIr58w4ULFymQpb4nWCWsCEvzQVjB265FRRF2H7R0H0fuYqelbLmyVJJVYpCWFpZAPeISq5adOH5CzUNYrJqTWV0O/Xn58mXlOQu7+uCA+l79u70+zSXK9krTlA70M7Ayh0TWMlzhc+oRMJHpAKMzAIbKz5s3T0ebPjXQjtADM2UiF4KACyKgV8QoGhaCTz4xmEno2zTrl1/p808/o0cefpj+/vMv1X+g0tC/bz/67NNPadznn9M7Y9+hvr16029z5iiivHfPXnqkf3/WjUoz7jx6+Ain9wTN++vvWzpcTILhlu8w54U+at5PXRAe/ouoBAAAQABJREFUKZIDEdD6ffYmuGk7B6mKYKlFHNdBv2vu8IkmSauH4xon1wTXcUWSlPMIga7du7Ek1Zv+/nsexcbGqlxPsLDizJnTFBkZaVJPAOH96MMPKYbvWbtmLb3NxzqDY505c4beGjWaXmNBxg/TptMTjz5GkyZOot/n/k69e/aiP//4k6XBiepv4ldf0ZrVqymJF0SYTxbMm6/iIfYFuV21YiW9y0KRl1mQ+TCrlm7ftt1EflEwCG5T+Q/z2CbWH57Jagv79+2jN157jb6ePJkXWrzIckBwKMGFPu0TPHHCuMEylChRQkWZD5obNmyg3r170yeffKJUE+D/1jxgYkcQa1FzVOTaYxBI290hbCHBd/R/3L+q16xOEyZNVMZDX/M2FwaKChUqEHY5MNgNGDiQpk6fRo2bNKGxb42hE6zzWLNWTVb1uUFxsXFq1Q/jBhiaYEclODiY7m3XloLZMAH6vk1ZX1OR65tbSx6DtVTUhAAkQyC55mO16Uc7Xdx8tU3vmn7njPwJaNI2au0EUibJgOBi1wXG2hI8CwG4Vr3zzha0bNkyNio7qQgl1JAimdyG8bkB6DsIM6bPoPNnzyk1FuyMr2MjtN0s9dWCwm1bt1LlKpXpvQ8+oPbt2yuXrZDGXr9+XT2P3faZP/9M9Vgd4Y4WLQjcbQ4LS+Kxw8ZZgARDh3jk6FE0+dtveBc+WpHoqKtX1fP4D3JMby4P0po2dRq179CeejMR7tatO7095m0ldXaEEMVhBBcT5rp16+jee+81VdL8AiBZDporWe+vdevWbJF3l2qkDxhwSHW1tBf6RniuUKFC5knJtSDgUQhgJwNEtESpklS3bl21VVS5ciXW87uuVvIFCoarwatO3TpUgtWDcG+ffn0pkbfC1q1dQ36+fmrlDz0qBEjSkCa2nBAwYJkPNnqgVD/Kfx6JANQU4BHH/L3wSCBcrNIguDV5y1nvbrpY8aQ4DkQAbd6ZXabGxsTQooX/KqHG/v376K677zYZq6G/Pjf0eXr1jdeVEGPHju2KuMbeFG6AS4FTValSle5gsly/QX2lqoY5Q4/7ZcuWpYksZY3kRS50fuHlBhJjqLvpAMNVHMaFhdZgPq8A9lU4XS9NhSFVzS1IDzYAp5iML1m8hFV3prN6xAXlrQEczxFji8N0cFezOBuVg6JzVqFVq1a0iCuMAN1bWIPifgDxAlsADmELQYD2GouxEaBLaLWukXpS/hME3AsBDAZQ9leDDPcXNZAwX70lMUrl7aS0bR/0p8KFCqu+FBsTayKyWSGC+0F9seLGtQRBAAT3zz//JOhrQ5dbgvMRACk4wapEOCjJ1YNWRJTRxL4thd03GNz/888C5YqrcOEiSqihFzwYv0Fg//z9DzWW4zCtfEo3N61FMG/gKjklWRFM03ivG4x/g75uMhuE/vTjT1SbXZLBNRmEIaot+T48Y65igLECuwrx8dr9HBu3QYTLAV5TSrJgpl//hzPs7Ot71I12+s9hElz4toWYOzu3F1BfgK9L+LrFigFsvh77aUSAdSd0REaMGKFWp7hevHgxDeQtVwmCgCciYBp8clh5fT8GDngfwTZSuYgISkjkgYfjtMRWf+r7dfKW33W8fHoeAo40NPM8NO1TYyPo36qFOI81K3gb/fc5vyk3dfapvaQCbAOYrHbp1o1xPUdTv/+f2tEDudQhgcf9MaNHM8faQK3uaU1Vq1dTfOqWIETfmfXnrp27WE/3FRY+1qdGTRrf2kHPQviRxDuA+VmFDvZXeg7Rn/DJi/TMJbYg2Qf3H1Ak2d4k12EEF4Q1O3ILOEGCu3fvrnRuseLASWY6ABBzVYRx7GsN0tsHH3xQ3yKfgoBHIIC+AEltErt/QVCDBS+fUznehxX8EXisU/9ptQPIckFq035LVQeolOSV/B0t7lDPY1A5y4tGqBJBLyqat7mw7QSLXqSPzwQeqGI4HioLEjwbASG4rtf+RiC4QA1jzMJ/FtIP7BMfVvZZBZAbjEtKqsjXmuxgdxfCMqSj79G/WX7XaWcVH8N2BhCkIS0d9L06Xx2PT/ym//C7KwWM0ygbPCZgVwV8qUq1qsquQpcTXjxWr1rNAsQQdS8MioEBJK7wnuHt463i9TyC5+BRJzU1xSQAgTHy+fMXlEcFzBGnWU0B8xEwhOQX84zPTfU2PL+cvfDcyb55S5UudZPg3hIHN2O3sNh1mMCestCmFy9eVJLhw4cPp0mFuU72DA5TUchpIUFcoUMEAwY9iFo+e5WVlSdNmkQLFy40gW55j3wXBNwRAegxYXLAghEDR63atahAeLgaJKB7dYBPtQkPL6j0I+Ha5QCvhGvXqa10bDdv3KQ8K2AQWssqQy/zKhyre7hmadu2HX3Bp9VsY2vXatWqsd/ZUspjQhS7hilTugwVZzIMq9j2HTrQA106pxs03RFnqVP2COix2ZGGZtmXQH61REATXFc2ugYJ27N7j7IPwFgGH/ZVmYSZC7PM64WFtTcTLB8mXkwvlSEsDgooU6a08pnvHRKSjgiBqCEP/JkHReCYkMLCX/8GgorDLQozEYSeqn/BNON3/I58QRYt/QHrZ5E2fne1gPLBBeQDD3TiOiQr2wvzMhfkujZmqeuff/yhpKbgWpCizpw5U7muO8KEN5oXELtYPTQ8rIDyZ7tz5w66waT14KGDdJEXA3XrsZ0H5/PSCy/yoRItKJjbAIR0zq+zWQe4s1Ir/Zd1gJE/hCEQVg5/8QWlgnCI7abOsXQZBPog6/A35bI8P3SoOhxi0aLFBJUJuDvr0bOHQ7id0wkujhjEKgMvYlYBeriwCjf33ZbVvRIvCLgTAiC2PXv1pIcf6a8GD/g2BEl9881RPHATBfB1AOtIvfLaq2oQwq6JkjjwYN64WVOqUrWK0m8fMepN5XkB2KAfjeTvPXv34me8lbEnXM7gWaSNAXLajOnKQT1O10EZJHg2AjjtCuOwEFzXeQ9AcCMiIkz92nVKdqskOFACBkf3tr2XSdN12rxpszohCyTXPMSwbQDcRx08eID9XyeqnSYcEADrfRgjYbfXl41jQ0ND1PGvqDeOLIenmA3rNxB8dcPCP/zm4n/b1m08fp3hMS2QDz1oqfRSF8yfT9O/n6r8wKawhLIl2wDh/v+2/Kd2uK5cvqT0VVuxoXshtlmIuhZFu3k7Hd4EMKauWbOaT+PqRLVYD9WSCJvXxRnXvfv2VVJZy11zfB89ZgzPH4fUPAFDsfva368M0+DjFhhjvAeBxaIC15UqVaafZ/7MkvRURYZLlS5Ns+bMVmS3DBucwfsCCGlRVkHAuPDFhK/o2NFjap4pUCCMOjLZhtobMAsJCaWP2CsWAtoCbs2GPPesuucc+3EvXqI4+9Utp/J1BG5Zs0pH5JZFmjl5WYTcZgGeRLs1AhhA8GcZ4CbMPITw6TY66O23fP751PGPOt78E677sJrXISDwllNwxGFljT8JgoBGAFJcIbgaDed+QuK4i1093Xfffc4tyG1yP3rsqNrKLl+hPEvq2tC3fLwspLgRkRFKfxSPY4f2B3ZlVZgPmkF9fmHp4uhRo2jY8OFqmzs8vACVKVeGIvkZ6HZO+eZbliAeokrs2qp8+Qr0/Xf/U26mqlatqqSRo3jxD+9ND3R+gD7/7DM6zSfJwagpIiJS7X4h78qVq6gF/exZs5TxeqcHOquFwnjeUV7NfsSHDh9GsdEx9CmTM2zBt2p9D7viOqUEbcgnJ5yFq5ZnwVzv1jJTkFyQch0gVNShCEt/LUNplpZbBpwsiT8datWurS+VwARuxiwDyHKx4sUso9X3CF6g4M/RwWE6uI4uuDXpp/I2RsKGldQuH+sxHjtozaM5vjclNobily+gG4v+pJTLF3P8nDU3Jp87TTcWzqX4VYsolf2YOiIk7d9FN+bPpoSt6x2yJZMSHUXxS+dR/GLGKeqyI6pAyWdO0I0F7KdvzRJKNdO1ckhmLpYotuGwMoZuE3wjXuJPV9xaczHYpDg5QAAEF+8UjoaV4FwEsNAA8XJ1r0L79u6lYrxAxzY63FBB9QknJUIPU+00sZRv9apV6uCB2uzyECd0PcAnmLZv34GKFyuuJKwQbsFgCS4PsbAPZQmiHy/QQaCC+ASugoUKpu3u8ndY++NkLBhTFeZTHqGOdRQ2Bqx3ipMacbIj4suULa1cXv0+9w9W+6qjfL+C+PZ7uJ8ivKvYZWkZPrGrIrtfhC5p125d6KuJE1i1q60ixs5tfck9pwi4hAQ3p4XNzX0pVy9T1IsDKfnQHnqVhVxXB7SnwF6PUfDgl3OTXKbPJO7eStdeG0yp19JOZyOWnIW+8THlu8t+7luu//ETxY4fg7MVVRm8i5ag/B99R75lK2RaJmsjMdjEfPAqxf/zm+lRvzqNKf97X5NXYJApzpYLkOboEU9Tamx0WjIBQZR/1Ofk37SlLcmme/b6L99R7OQPifdXVLx3ybIUxjj58KcnBBBc+CocMGAAv4b5eHA/ppx+Z6cC5Am4SB1tRwAEF+PEftb7hv9lCc5DQOvfuizBZXVVWMrjNFOoFsCIFdvgME7azqoV0MeMYAkexiu4B/X19VHEEe8X1KLwh7CefelD8xX3aUIMv91e6te0//C71o6NLB9Jr7HPV/hsXrZ0mdIVVTtafAMIsXqQ88AD8Md6jdUQsHvlw/kjfRDwglBzYNUHpZrA+YawgRZ0SGUMNQPdIJduL8GN/XKsIrfm7XH9529ZorvCPCrX15AOR48ZeovcIqWEeIp+72W7SSiTTxyh2HFvmcgtskg5f4Zi3nsFl3YJ8Sy1NSe3SDRx2waKm/qlXdKHJFXhpMktUr0RR9FjX6CUuBi75JF0cA/FTnzfRG6RaMrp4xTz0Rt2Sd8IiWAQbtS0MT02+AnqP+ARZSCgfSIaofxSRtdFQAzNXKdtXJ7gMpfEyaT+fv5Kgqv8pvLBMnX5NCyQ0Y0bNrJO50WlNwrL/Kioa+wlJnfeWuDySpFXThdeX6Z8+y0tXbJEqTTgVMe0k1RvemUAt03jt4rQIu9rbFgLlQ8E2BvAiAq2CQhIW4JxEXB7gpuwbnmmrZNVfKY3ZxOZfPQApbDqQIZw4zolbt2YITo3EQkbV6YjbTqNpL183rOdtvkT1i/Tyab7TFi3NN333H5J2r+TUq9cyvA4pLlJO7dkiM9NRML6zNs6EeoW3B6eEjA4a2mHmlggufCwgPpj0oLkR4J9EPBEgov3JxnSQ/tAaLdUQHBDmIjhNFBXDCCOOBSkabNm1LtvH2WU9BAfE/sMH96Ek0phUAb9XJDPMmXK0l5WZThy5KgivKjPvr371E6UIp48fGGRrkmskuaaVRr3YJzDuPfP/AUEi34YpZVncotxQAWzMRDSWqRVmr3FgMyePHHSdCwtXJIlsIAKOsPBrLuqKO5NsmuWpVwaBAG3V1HgYzuItcUzNIcXb9/aI3gh/SyC3fJglYdMAzqtr3+mP1kb6ZVFHtnVz5o8skvHyz9rDO2SB2+R8QhpTVKGvldPBIauRC4Lj4kVW5Pr1q5VW4pwhA4ioLwA8BHGWR0dnsvsPOox6DaCSDjT0Ax6p/tZ/xQSQPjR9PPzZZKUT7V1kaJFWJ+yNkVERGS5nYxtZ7jW82PJYjXW08wqHGWXVjhO9BiTMNwbyNvYsLjPz66UYJxp6QUgq3QcFQ+CC/dgrtjXQUDXsFvCY6z7Wq9e3XQGWTDOAn7z581TZDSiXAS1atWSJa6LaSxb+y9ftkzdX4T1ZDs98ABb7IdRwo14dTgA3CHWqlNL6eMi/VKskwuVArgfw7tw4sRxirsex0Zlp+ifBf8o4zKcfnru7FnleQHuriCQ3bF9h/IZW5v96ndmfd+F//xD9evXp/oNGyh94MjI8tSwUSN+132UCgPcL+IPZNkV8XbUO+YO6bq9BDegbeeM7cRkJ989HTPG5yLGpzQPptXqZHjSu3Ax8qvXNEN8biL872hDXkEZXTX5t7iXvFk/yB4hX9uumSaTr22XTOOtjfSpUJV8ylfJ8Jh3yTLkWzPt9LoMP1oZ4Q+d50wWHPlatScvnqQkuC8CmFQxob7+yqv0vylT1Kk9Tz3zNPXu05vdW4XRZPajvXL5CpcEAD47QbxQB1cOWCzAobwzCS4kfjiND4TjtzlzmNDcoNZt7qHqNaqr05BGvv4Gffj+B+qEzMywhOuon/nI0Tns9gjW+5YB+poLWAo48o0RdOjQQerWrTs9MXiw8hsNvc7p06YqV1aWz+Xld7jVPMukzVX1b4HreXbrGRISTJcuX1YGXhofeDQAyYQhGcgupLgwLHtz9Ghqzf5QcbIpfOTC/3ZJtvbHIqQPu8CC6kFU1FWCZ5iH+/dXfmyh34t+06VrF+rduzfBOwCM03r37pNGdmPjqD+7V6zJHgSw8EW6/R8ZoA7MAYaBAYFKjWsAn466det//F78qKTATzw5WLmu2rtvL1WoWEFJczG2IA0JxkLA7SW4QYOG8jb+FYpnq3pegpFX/gIU8vwo8q1Y3W4tFfrWF0q/VG+1+7DhV+ibn1F2UktrMvcOL0T53/2aot99Uene4lm/JndTyEvvWJNMtvf6N2IHzs+9SbFff6x0Y1mrngIfHEAB3fpn+1xOf4T/u/xjJ1D0W0Mpad8O9RgIbygbmXlBwmqH4APDu7ETKeb9Vyjl0nmVIhYBwUNH2SF1ScIRCNhLKgKDlq8nf03b2WBlwqSJ6vAKXd7uDz3Ek2VpWrtmjY7K0WeaMQvPxjdDVmXNKl4/l91nIhMqGG3BcTokVtkFW/LJLl1rfoPrOBCLH5kMtGvXLt1pkzlNx5Z6QIIGP5woByzrIa2F6gRcNzW/4w6WBC6l8Z+PU+6cXnjpRSrLfjt1QL6Q9m1jN1X52a0eDJ0gqTMP2Dr//rvvqDwTm+eHDTO56IOf1SFsrT9/3nzeDHLetAkXW9OnT1dFrnTTEMu8/Jld24J3ZundLq4g+1ft+/DDmd4GV1O9+/TJ8BsOm3lzdMZxGjsG8NeNPx2Q/suvZG1/8syzQ/St6hOHOujQvkN7Js/t9Vf12e7++wh/ONkL85SW0tarV48l0PYRvqTL0AO/5PU7qCF2Xk/VJXDwJyR3oS+/x14TXqLOd99FfyxcZXdpnk+R4lTgi58p+ewp4uUhQapr7+BXpxGF/7SUkk8eYWkuW3WyhNjeIbBrPwpo/yAlnz5B3lwnb3bSbM/gU6IMFZg0W7nxInYi7VPq1uRjr3z8G95B4TOXK5y8Q8PIu2BGP3/2ykvSyR0CkFhCAoWjh8tFlMtdImZP4fScPbt30zze9oS0B5OleYDksQFvP8KROfLGpKlO72E/ojd4+xOSH+3HEb/D6AQnusHnJqR28XwPJjo8jy3Pa2wQU71GDeXjEVJXuM26zJKqYN5lwf045rJatersJD2ELvARl+fPn2NXRoUIPich2cK92O4uxiRt08ZNSroMFQroU2J71D+fvzr85uCBgzzZEm+Hs8sjdneESQJSJJQNxoSnT53mspdUDtfN6+uIaywgHuKFwlpW/UDoyzhD9WPChAn0cBZkxrwcUC2Ayzpgj21lWwMWH8AjJYWPHOU2QLr4w1HUR3ix8OMPP9BC3qYeMHCAsoAHabl08ZKy7AcZhpuqjUxmodKgfayjXRYvWqws/lu0uNOEuSY8cFPV4q47leFRXk/YkGD2Z8nlb7/d8nLz5ptvqgUG4jMLV7nN8BxOPkRbScgeAW8PUmPLHgn7/Qr3bPBIUYX7nDOMnd2e4Oqm8g4rSEeT2SbSgVvVPsVvOVDW+drzE6tLe7kFy6pckDr7RlbK6me7xIPoOjJ48UDlW66iI7OQtG1AANvAyyBpGzde+Z18iE/F0YdKQF56S2aas0ywTbll8xY+ASlBHWWc2VOQ+rXg89FTeWG1b89ePiFpJjVs3FCRGzh3r1ipIj351FPsVu0oTfzyK+XvtX379mqLFRJLEFScrw7XQruZTMPP0JixY/lc9xiayCQP/j7vbtmSjh87riSyFSqUpxFMQGC0giORQTAgocKJTT/M+IGirkbRex++z6c73aDLrD+IU8Ju8Hb7dTaGxNY4iC9I7+YtW2j61Gn05NNPs3OWeJoxYwadv3CeataoqdwtdejYgQYMGmSSOmVW9/RxPAaCNVsZ+rDUbfHixTSQt3NBaEEQR7Ez/gEDBihifgdLT7MLMTzRAfNF//5L3R98kE+E6qgIP0ipPQPIKhYEIHU4COECHzUKYooAKTneke4Pdqe5v81VJ2ChzapXT9vNQ9uiHeEmCgsvy7Lhuza0yw2GttTzscceU+QWi4xB3N7wRzyW3z+0B9RG7jaTUup8Dh06TBO/+kq9e33Zv2tt9veaj/3AIuSmn+l05dMRCFjfJx1RCnunCU8Zgx9/QqmJPPrYo1S/QYMM/creeZqn5zEE17zSci0IGAGBvJYS5TUmx44eUScFzeLThB5k0vEgW1mD6GrykJrDAkGCC90+WFFbHlVpngQIytnzZ3l7/QdFWDt07KhcE0HC+9ao0RQZEUF38/GdlXnLG4ZILXjHB1vc/y5cyGR8HPVkIt6zZ0/W19tKY0aPVsYqze9ork4J2sXHkeIUphq1atKqlavovXffpb/++pM68tGecCwPQgsJRnE+2SeC84ELJUhhS7P0GCcHlWOn8jh6FFvoi/5dpBzVN2/eXEmBP/7oY5o79zd6/vnnlT4gJCI4A/6xJx5X1dN4mdc1q2tMo9a6PsJRqwsWLFBS2+94+16HZmwhD2noJ3za0+0ILjeq8moBn6eQgs+ZPZugOqLUxuxMcrGYgLsn6IJeuxbNBDfttCwQ2AJ8KlaTpk2Vhf9PrIu7ZfNmRVrRNliMQDoOdQQt1dV11Z/WYK2fwSfePUvCbP57dtd4J2by6V6d+F365ZdfTLe25iNlgf8HH3yQKcH1ZrdcwABqFcuWLmVd5TbUi7f6YVyFeqTVJe2NMCUqF3mPwM2BDjsR+MO47w4BfQr+g6Ev/9eff9KSRYvoHj5h7mE+VQ59EP3B0XOcEFx3eJOkDm6JwLmz55QuIc9FHNR/blHPhMQEpaLgy0Ymvj6+yjjsow8/YtIzhx5k0gNrfTUB57C2uBcnFGGwBNnNKmDyuMgSPRDUp1giioAygMSWZYIJ7wstW7UmPx6UQ1k9ARJUDMKBgUHqBCV1rCU3A4xjcIjG1atXVDn9/P3S9EJLllC/wfcmLMW3b9uujF5AKL2YbCCkTV23rLHxPW1SA9dLVdvoW1hqizpBsgtpdzsmzhGRkdDqYeIVoAgzDK0g9bUmIK/omGjat38fnT13Vhfmtkn8w1bmCI1YXxV1Mg+VK1emzUwSLePN78GrC/J48eIFhQ/KAV1pEF0Y/rRioobdKXsFqC0ASyxc8rG6B8IJlqyfPXOGijB5xUEDaBMAsGH9BmrJUlwYOmHBgb/kpGR1IIF60Nb/OJtkLg8WYDtYfxaHHlgbli1bph7BgscS5xrVaxDeF8t4vD+HDh5SuwJQebnGEnQcgbuYSQZ0p5s0a8q7B/E3i4IWkeA0BLit4AMYhmwggzcHCccUh99HvBvoHw7Nh0uPBdY5VslCwDsId26/z52r3kGcCNenXz+lOpbmp1jdZvf/hODaHVJJUBCwDwIfsmTmP568civ5sU8p7J+KIlpMePKxRTx0KX15pc8zPx0+dIjeefttReZK8rZyTo15QGRAtJKSk+jUiZOZFhgDOv6gwwr923hWB9ABx34WKlSYXQ1d1FHpPqFTi/kgBf9x0PqfaSQp7Vb8BvUHBEj/QIaP8oSFey0DkuE5Rk00+jd8h/5vdPQ1dnvlpwxhIEk2D3CFhLKkcD4gxdaGVH5m+9Zt6s+aSQX6twhfjBtPf/DWvg4owyFus6DAQBrG0uXsAnzJQrcZgauqFhG4ho6eOmkKX+wQMHkDJ6SLRUYxPu4VE+uJkyfoCLdHLOtLQ3cZcaFsYwBDsy1b/lMW+9BzLsH6wSCjOOq68s32Rpq5DXg2ltVS/mEJ+Ly//k7X5jlNE1JlhK8nT6Z/Wa9YB7zPu/fsVr5kLfFHviCwVxgLPX6gnyCt6dOm0/z585UudJMmTdJeRp2ofOY5ApB0Hjl8hEaw5w4srh0dQKKxSId0VQ1sDsoQ7yAEDur9xTDI3wN5rEDf+/mnn2gBL5yhR96nX1+H6ec6Hk0HgSfJCgLujsCYsW9n6srI6PXGoDf/73n07jtjlXQ0ickPyB0kplAbqFu3Dm9p/cVxaacL3a6+mLgbNGhIJdjgChP3A7x9byndBBmDwQ0ks8HBobSfiY0OaWQxlSIiIjkqM0p6804eoLMKkD9qKS3qh7/yfGyoD0smQUSgPgGigUHfm43VQPNwfSt4qUEeEwAmBFjLa4Ibx6T8PBuroWw+7JtTMUTzR28lku0V8ocO3KBHB7EUuIgqV7YP3PwRBBTSw/MsgX3/ww+oKW8vYqEwcuRIVc/hI0YovdCs0kI9oaIx8+efacZNDwBobwS0HaSmuQ1IW/8hjQvs/gneMrBIaHFnC3UMK3RvYewHfeU7+ZABtDeeWbVyJX3+2ecsxV2vjNNg4d+A8dnFOtaQStdj36iWKi/aVRTikcbtAtoeKhP9WVcZOt2+7LfX2gBC0KJFC7rIZPWjjz8mkFK0yTvvvENLVyxXqivPPfdcumRBmnaylPyrL75UOxYoK9KB6kYbVlWAxwlI0L34vcxkDZYuLfniWATgvQE7SAMGDVSeQfiVcUjA65oQn0BjWYjQtVs35WbOnjsnloXG2HeGd01eevHFtHmMK4ZFF8j1PfwOwiC41T2tHUZuUR7re5tlLeS7ICAIOAQBTIz4c7cACUI4H7qArWBM1CVZatap8wPsCqg3RUZGKqkaCG5Ox3kQt7JsFDTkmSFMmt/hv3fptddfU54KILWEHiIMxeLYL2ZztrJvc28bWsRbtXA9BFID636QSrg2Qp4gX0nsDUURJ/4OGgPjJKSFOG+QBSawWqILKUg8f49mfU+Q9IssCcZ2/ICBg5QKBNQnDh08yA7nzymjMmwdQ4oMK3cE5HftWpTaxgdxgtRx4lcTlZ9OqGvglKdEJid3MmFDuRITWA0jp+CoHG79BwINoyuU05rwE0tcOvLiA0ZOUOmAhBPeI0DaXn/99duSVOQbFpZfkSzkCxdXD3TpoqT3wB/YWhNACvAeJTAWwA/XILKzZv6ipMqDHn2UmjEpV1JONjaLYdUMWHKr9uP3BZ8wGFMqFps2qZ2SNqwf2JbdRR08dFAtsIoWLaZ0nbXUCRJ56FpHREQoPdYclZfbCe8n6l6SF2DWSM7N04dxYQf2DfsgG+hBBQYeHyBZh+Hj20xYMtMZxvuG/NDH4LUD5L5nr57UiE/5unLpsrJu530JziaXL5N5Aa28xiIDC7cL3PYg3XD9Zb7QwUIC/RbthHEC7z3UgiBlz6yuVmbvUrdjSR3A/aMS70KVYVUZRwYsvGFwi5PaqrKPYZBNR4YQdseHdkX/DOTFLPTGH+HFHgx+YfCI/unIIATXkehK2oKAIJABAQxqIGmFWIrYn0llF5YmmLvpSmLCgnB7+ditpEFC2rOEDhPlD+wiashTT7OT9opKAodBHOnDkTwIJAxtECZNmKjcfWGi7cflwJb2YbY8h4eAINa73bl9B0Uown1QTarY3i/MqgywtIdLobNnz6jtcEjBLvNEDf2yMNaLjY2Noa7du7O0tD7BPdY9be5VJzG9+vLLamCPZHdgUDMAASkXGcES67rKEGjKN9+yZKWrMh77/NPPaCRLRjHhQQe3C8dj6/z48RNq0t/IRmqYJEAOrAmYTNMk1tY8RXzaVCslCfzss8/UJzwPdON2g0U/pIW3CynJKaxCksITawXlmP8B9vkLPeIFLHEHwc1pAFmDF4ydO3cp8raZySl0la9fj1NkF+QTEygmcNRzz+49tHb1GoLe9xnGDwQJEy7SgX4g1GNAQNeuWUtoF5DHoez/9k82ivn7r7+UcRbUZUAUYaAGcliN6w7iZU3AO2/LZN6S9YSxSPvoo4+UdBmu7bp27UpPsy55VqQZpBDvPvy+9u7dR5U9PxNtBCxQTAs0aypip3uxm/LbnN/UVvUjAx5RBz+YE1x4RvmbVTp+Yn/L2AmpxR4g8J6gD7Rmqd/9vLBCX3eXANWjvAjoE3gP9Q6Ko/PEAhR53ss6t/B/3Lp1K4JKmA7W9iP9XE4/heDmFCm5TxAQBOyCACZdWN3/yFLB2nVqqzQx6No62EGy05IH0Gbs2QBbY1cvX+Gz5oOpEJMaqCyAyCDAD+uQ555Vkzx83Iax2gLICyb80mXL0EuvvqJUC3AvyEOvvn2UnhhkDdhShyUwLNJRXkgSwcSLcZpQjUAZICGBxAx1wnf4ZsUxoUpFgvU+IbnAoA8ckAZcgGHwh8Gbfm7S15OVVBmTPuJwH8r5+htvKFUI0KusiA3K7YgAqSv83uYmBDERByHrzsQ/kgkL2gILmWQmvdYE4JF2CMNQpa6RyCQOW+/AB2TffMcDcSC6L3N78g0KL5+b7wDSqcj1QVvjPkiQ0bYI8E/8KLvleoi9euCY13je1gUxBDmGr2O0tzMCpM3ffPNNjrMuw5J2uKqDZxLsmLhSgHEhTp/DgRuZBWDdvHkzmsveNuDeDKeXwVAJ3jcmfjWBrvPuQQ/2aAJf1RJcF4FwHnc/Hz9eLfYhhMjrIAQ3rxGX/AQBD0cA5KJCpYrpUADJsDXoNEAqIyIiiP/LMkmUQfve1TdB9QDbaPgzD5YDsyZCuAekVenX8rMYzIuYbf3r8oDMYULHn9oNvllVTepBVC2fQ56W+YLAWSuxNa+HM6+DgrAFa+FfmxcA1m6PA8uscACeSFG/ScA/MxyBg04H15kFPIsFBf6MGnDSG/4cEbDljIVFVjrUaAtICYEz/swDdjXwLN575VUii11qJW3kdlCtyo2KxQvUSODDeO3adcrjSXYEFyo0SAPvQIZdBi4f1CCwqEQ5VF+9+fJAJQL+qDN7DmkioN7m9UI86oxnzOPN6+2J1wX59D8s8J0VhOA6C3nJVxAQBAyNACZP6DLCEh+W+7t27aZGtyOhmn1xzTUBNjQILlR4wdPxjYHDRtbxaXZnzpxVOwwgjne3aqlOAzywbx+tZnUQqJ6cZ2M/3FeDT/zDwR5Q80jhbXgcYLKbdaJBBqFHDD30LA2dmNyiu2DhqQN036F6AQ8sR1knes2a1RSWP4yOHTumdLD7suupqtWqKrUUqDNATxkE9j7WrYa6Ecp7mfvs6lWr1A4OdnpQRuz8YDFz+uQpWs9Gh/u4Lli8wt90HfYbDI8DcCmHAzZusPoEyn9/+/vVwhRGjadOnVKSfujqa9/Xuszy6TwE0i+tnFcOyVkQEAQEAUMhgEnOj7dNoa7w1ttjWA0iLM902wwFlBTWbRBYsWKFOnSiSNEi1I0PZ8GpfnCBBiPNKDayhN7y36y/jINLGjduxL/9Q8vZj29cXCytWrGSDzFZyMZ+VdSzOOAE7uNSb+rcZwUS9Dhxyh+Ouf6RdXJxvHY7JqwFmJDOnvUr/frLLKViVIbVi6DL+s3X39A29td8FxvV9Wf93gt88t87b4+l/UxaYQg65dtvlbFnxwc6KY8t4z7/TJFx6N7jKOTICuXpqWdYt5mlu++98y6fTHiAdu3YxTrDc5S+fHs29oM3AEhtcVoedInr12+gyDB0u+HqD4tfCc5HQCS4zm8DKYEgIAgYEAFIg6DmYKnqYMCqSJEFgRwhgAMxOrGBIPSBscBDuHSRDyRhPWUQTHjnaNCwITXkQ0FKlSpNK1euUv6Po6NjaPGSJey1pJR6FtLSWjVrKb1mFtFmnjenD5d669etUwQaqg2QxsI9HU79Q/7wCAJDzHvvbcvXJRTh3rRxAw1gQ0OUBwZNPXr0pBfYcHDjho3sLeM/JV3u0rWL8lWNkwuh8lKZPWzgtLcdO7YrvXl4PfFhghvNUtyTTHxhPLqLDRvXrF5N3bp3Y/3sh9RzOOUPXk5WLFtO3R7qrvSCUUYJroGAEFzXaAcphSAgCAgCgoAg4NII4GhgkNNdO3YqCWYUu/KCUSV0qWGoZ65OC91ZqI14+/rQpcuX2IvFKfZSUZ6NLNN03JWO7U2SnGmloX/L3kYasd/fbuxFBF4TQjkvGGcixPBhHsxylaRV671CbQGqBVh8apWVUiwpLsK6yFBjgN4t7oXuLQLI7f/ZOw84J6rtj5/tlY4I0hYp0gWWooIUUVCKBRB5dpqAigXE7t+nj6c+O89eAPGBimJFBQSRKr0X6VV6b9uy5X9/d501u5tlk80kmWR+l09IMpm5c+/3zuz85sy550DkouzauVMJ9AuldZvWal8VdJi5e4bco33nUdfVV3eWN15/XeYoi/TwB4aryA5N1QS4ptKxYwd5/fXX1PLf5D61HC4NRnt0xfwvYAToohAw9NwxCZAACZAACQQPgTUqzfVHH3woDpWEBX6rNWrW1GJSC1slAgvbYpXIVd2D7ywe6SOrGyaYoTiLYb3AxX+w0sLftnyFCioSRPk8cWusWnB/sdExSvielRMqsYgRbhCCOEa5EmGSGhKlIOkHoqc4F4SxQ0QP+NInqsmgcJ+A3zAyEmI5BPPwhx6Ul1R2SUTWePjBh7RlGe174KGH5FUlfBF6DcvnK1cMWJtZAk+AAjfwY8AWkECJCeQony+8UGBByT5+pFifthLvjBuSAAnYlgAsrj/99JNyFzgptZKStOhDvFplKtUWSy021X+wduIzJofhM4y0FSqoUH1lyuoY0hCCKLDwns9XFVZQXZdyYUB9+Oxc9OQ07AO///UTkncgSx+yuBkpphE/FwkOmqiQhM2Tm8uOndvlt9m/6t8hUOF2sE25JCQlJck6lUFwmZpMBksvymLlHoF06WtUDGzEX+7QsaN8NPZj7YoBn961a9ZoF4aOaqLdx+PHaXcJxGaGFZkl8AQocAM/BmwBCZSIwKlHB8qxro3l9NPDJGXyWDl+85VyvHdbcaxYWKL6uBEJkIA1CJwc1keOXt1Q8G6UlAlv62WZO/9OM2385o93CMwKypK6Vk3g+lBZcSf9b6J+rL9aCcCVK1bqBCknTpzUmfxgrUUkhSNHjmqLJ8Tq9TfcoCMdvPryK/KFmiz2k8pWuEe5DcDHdp+KTuAsdjGpbKdKugJxumXTZtmvoh0Yll/0FcIUaZmPn1AZ2ZSPLLKeISwZ3BEGDhqoErZs16mY4XYw7edpcvnll+tELtded50KW9VOTTQbK4P6D5AhgwfrtNhl1ATRa1VUhCZNmsjLykp779Bh8sD9w2Xe3LlK+NZUqaZP6sl1iJiCgmQfDRs11vud/MVkHUkF4cUQWzm5ZXKhFM96oyD+L23qF3L0mkZyrNcVeb0488qTucfokF55y6z2gT64Jo4ITo516s7Rl4X7cI+uPzi51xLfrZU48l9yol9Hydy0VnLOnZHYrjdK6ucfSeQlTXy3U9ZMAiTgcwKJT/xHTt51nURcfEnevhx/rIFZVCKq1sxb5s8PELh9VKrmysqf9bhKooLJZK1VZjeE1EJmtQg1IQyZ7eBjiygD8G8dpFImR6vEJrDXXt3lGpVkpbKa7LVUR0Jop1JPw9+1WrXq2tXB2W8VVuKEhHidpAOZAlNVmm3E3jUSeUDMnlYREW677XZdN9wRYKWFKwEy/2Ey3B8qwsOK5SukUeNG2lcW/rsoo1RGQaRx3qGstjVrJsmVHdrnZUX7p4qGggljEM0QthDDSBQDNweEOTt46KAKFbZXhT7rrVM/n4EfsCoIEwYf395qAhr8lJF6N5RKbM9+kjZrqmSuXSY5KkxbWGSUxPa4RdJ/niJRl3WwbFcpcC07NGwYCZyfQNaeHXqFsFJlpPTL4yRMpZeNu3WohKtsWSwkQALBSyDrLyttVLM2eZ3I/GOtRNZtJGHKJzVQBRbcG1RGOufSrEVzbVGFAG7eooX+CRZWRDdo1rx53nd8aKomYOHlXLBuQfcDZJPDq6gCIYssiM6ZEPP8FNRGiG2Ll1E33o2CrIY9evQwvuZ7h89t75v/tpob2xvtgbBGWw0xjoQPnVWYQIQ7gy+G4VaRr9IQ+RKZVEcL3OzjRyWiUhXJWPSbqLsZiet1p2V7SBcFyw4NG0YC5yeQuXG1XiFh2OMSnpCoA6ZT3J6fGX8lgWAg4Fi3XDczqllr/Z715y7JOX1CIhvlCkar9aGgQMV352UFvzu333k95+XOn50FKpa72ia/h67z1q7Xz7+G628F91OUgIW/cVG/ua45+JaGV66mG63neahMb+kzvpX4W4dIeJlylu1MSFtw8ZjaucCRvOAy59+9/ezr+tE+7sO9UTKDk6/dTdzrSdFrOTasUjkj4yS6TfuiV+IvJEACQUfAsXa5hFepLhEX5Fox0+dO132Iatgs6PpiRoMLCs2CdRb1e1HLC27v7vei6itqubv1BsN6EZWr6mbCgntu9k8SBuvtPwZbuukhLXALChRf+2X6un4cSdyHe+eTPzi51xLfrAWLBiy4kfUaS1hU4B5Z+qZ3rJUE7EsgR4XgytqxRaLbXqUhZB3aLymfvqM/W9WCa9/Rsk/Pw6vkWnAzfp8t6dO/ltKvfmL5aw9dFOxzfLKnIUQga892PbEsqn7+pxQh1EV2xSYEwpU/ZUREaNpa8NgaL4+K8vNEydq/VzJWLpLTjw3Uj4HD4hPyLLoe1ceVScAEAhF/uSik//SlxPW+W6Kd/MNNqN4nVYTmXxWfoGKlJGAdAplbNurGRNZvap1GmdkS5dMWGck/T2YhxSNUTMzJjShqVq3e14NJOzt37FDxVX/UaVuRuSpkimKOaACIl1q+vPt+imEqWUHMNdcrK9k3cvaVpyRhyChtwc0+clDOvj1aEu9/2hREOCZwc6HjyZpSIyspCQE9BmosrF7Cy5YXlftYImvVlfhBD1u9ubp9trqCFHRZMHuEfF0/2st9uDdq/uDkXkt8s1asugDiFYoF7hcnVNzJBSqP/QUqt32OCs9j9WIISAi2ghNiAt52dfFEjM61a9dJCgLzW6RAcNdUmbAwc33+3HlaaFn/Mu8ZvGx1LKN/F9euo28w3N261GMvScLQxySsdFk9oSqm43XublrsevoWQv2HZAYbN2zQMVt5M1ksNp+sAHG7Tp2XyL5mub8bBXqc+u1EHR6s1NOvW941wWi6bQQu4tr98MMPgswr7du31/H7DAhmvo8ePVrFwustDRo0MLNaXdeiRYtk/vz5cujQIUHGlttuu03HGjRrRzjBpk2bJktVnELk/e7evbvKHV7brOoL1XNABe8Gr2HDhukg3IVWKMECCNtly5YV2rJv3755MRQL/cgFliGAx7nIbV+zRg2ZNGmS5493A9QTh8omhwxNFSpWUGlBYy13sYJwjFSxKy+7/DLLnAe4Kbi0WTMVp7RxviD/ARpCn+0Wx3SkcsEIV3FiPSm+mp2OY6FMmdxzbIHK4rVsWW7EBk/axnXNIYBzIEvFlcV5EB8fb06lJtaS/utUFee2kzgW/ybn3ntRSo9+TyKq1zJxD76tKkyJGpfPhAAepYiffdsqk2ufPn26dOvWTYtBxK3Dhei1116TESNGmLqnn3/+WYvCzz//XPr162dq3W+++aY8/PDD+uIfExOjMsQckTp16mgxWq6c+4+/zteogSoo97hx43QaQtwIIIh1r169ZMqUKS7DspyvruJ+w3HVtWtXmTlzpnz99dd6P8Vt487vD6m84GPGjCm06k6V0SYpKanQ8pIuMM6PZ599VoswjAkCm+PGoDJiOKpg6BVVgPBSKq85jjmP/fBK2rAQ2Q5ZjXCMGJyt3K1MR6YsUtmYxrzxhgwcOEC69+xpPcGm/sojNSp4WulYxBgbLyuPsTdtA3Pj5U09Zm+be44hhJbZNbM+TwhgHLT7kB8GIl0l4BgyaLAMHDxI3exerhNYFNXWnNQUOdYzWcISSktOyllBYqHYa62btcxVP0Legnv69GkZNGiQtGrVSubMmaPFRv/+/WXkyJFajMIS6m2BKPziiy90/d7W5Wp7HJSPP/64FunfffedvkC9oS6mo0aNktdff13+9a9/udrMo2VbtmzR4vaJJ56QF154QbBPWIghPtevX296eDXcYEDcml0QHuyWW26Rjz76KF/VRgacfAv5xbIErCTCioN07Pgxma5ubpGX/pdfZspVKvB7XIhlMiqOQUl/t6LwK2lfgm27YDrHgo2tJ+216jggmkfc7cO0W0J0+64SWeNiT7pliXU9e2ZiiSZ71oglS5boNHpPPvmkvujgD+q9996rK4Fl0oxy9uxZ7WfVqVMnM6orVMeKFSu04Lzvvvv0HRfu9vBYH+9r1EXVjAL3BxSDDSySEIoouEkws6A/GA/cZJhdtqpc4chgA8up8wvjzkICZhPIUK4JmzZtktm//ir4vFRZcmeoJ0ahbpU0myPrIwESsBaB8MTSknD3AxKvRG4wilvQDHmBC8skyhUq97RR6tWrpz9u377dWOTV+wMPPKD9BZ977jmv6ilq44svvlimTp2qfYeNdebNmyeY0JKUlGQs8ur9zjvv1CK6WrVqcvDgQfn999+1GwcetV922WVe1e28MSY23HrrrXKTSvd41113Of/k9Wfw2LVrl7YMY7zhBw0rtFnj7HUDWUHIETh+/Lj8qqy2+/fv1zefx9T36cqP/fSpUyHXV3aIBEiABIKJgC0ELqx38I00CnJRwz/y2LFjxiJLv8OnE7mzjcfssDzffvvtaqJAGdOsoGAU/VeO8+TkZGnbtq3A+g2fVliKzSrDhw+XlJQUef/9982qMq+ePXv2aCvaBjUzuJly2seNzFdffSUtW7YU/MZCAmYS0CGulG/3L8rVxpiF7nA49KzohQsWBoX/sJk8WBcJkAAJWIlAyAtcY7JKWlpaPu54hFi1am7quXw/WPjL7t27td/wzTffrMXbYvU4FGF2zC6YlAcfVohc+OTC79eMMnnyZJkwYYJ8+umnYtbEOOd2YZLXW2+9JeDy7rvvyvfffy+ffPKJnFQhp7CchQTMJHBUTfSc/vM02acitCAXveGWcPjwYRWx5Xt93Jm5P9ZFAiRAAiTgPoGQF7h4xI6yQwUTN0pmZqacOHFCmjYNniD5q1ev1q4C8F+FQIQLQf369Y0uef3+q/IhhCBEQZpbTMwbO3astkIhvJoZBe2GCBg6dKgOc4YwZCjwJ0ZEBW9LJRUz9f7775e6devmVYWQbbBMY/IZCwmYRcCR4ZAd23fIInUe4mYtToX4iYqKktJ/Rc3AbyuXrzBrd6yHBEiABEjAQwIhH0WhdevWGgliu0K4ocyaNUuH8QkWgQsx3qFDB0lS/razZ8+WChUq6H6Y+d/EiRO1HzF8Cg1XCMNlwSwXhQEDBuh+GO1GqLNXX31Vi1szJughPNj48ePls88+k4YNG+rdbFZZhDD5p1atWsZu+U4CXhOAS0LTSy+VsZ+MV9nBRDas3yBfqicUg4cMkerVq6slOZKoxC4LCZAACZBAYAiEvMDt3LmzFjdPPfWUdkmAeMOkMFj5mjdvHhjqHu4VyR0QyaBNmzY6Jq3z5hBuXbp0cV5Uos/w8cXjfERqeOSRRwTuEAhBBosrYuGaUWBNdS4QnxC4N954oyn7wKQyRJXA5DX0ZePGjfLSSy9pH2KEhmMhAbMIhIWHSUJign7BDeqo8uePT4iXylUqS9VqweX6ZBYT1kMCJEACViIQ8gIX1kdk57paxaa87rrcdIewsMDPNFhiVcIdAQV+sQXju/bp08cUgQvxCWGL+LRwJUBBZhV8N7jphRb+D0Ifgvmdd97Jy4yGiXiwThvWews3n00LYgLZKoJHdnaO9RI8BDFTNp0ESIAEvCFgi0xmAARLJBIWIKgy4qSyuCaALG+I6wnxjyQYhruC67WtuxRjjZsbZHuDb6TZxYiry0xmZpMNvvpgwV29apWM/XisjBz1iCCsHwsJkAAJWI2AJ5nMrNb2krQn5C24BhQIElrxDBpFvyN8Wrt27YpeocAv8A+GVRmJIhAv97HHHiuwRmC+Nlb57VlIgARIgARIgATsSSDkoyjYc1j912uE5urZs6cOJWZG2mP/tZx7IgESIAESIAESCFUCFLihOrJ+6pcRaQG7wyQ4FhIgARIgARIgARIINAEK3ECPQAjsH5nDkDSjSpUqujdbt26VVconkYUESIAESIAESIAEAkGAAjcQ1ENsnytXrpRWrVrpiXwjR46US1V80A8++CDEesnukAAJkAAJkAAJBAsB20wyC5YBCcZ2Ll++XJCoATF0EbUAMXsRCJ+FBEiABEiABEiABAJBgCokENRDbJ9IH4zwazVq1JARI0aEWO/YHRIgARIgARIggWAjQIEbbCNmsfbu2LFDkN730KFDOnMYYoJC7LKQAAmQAAmQAAmQQKAIUIkEinyI7Hfp0qXaLWH27Nly+PBhmTVrVoj0jN0gARIgARIgARIIVgIUuME6chZp9/z587X/bbly5QTpfkePHi179uyRzZs3W6SFbAYJkAAJkAAJkIDdCFDg2m3ETe7v3LlzpXXr1rpW+N8uXLhQnnnmGalcubLJe2J1JEACJEACJEACJOAeAfrguseJaxVBYMGCBVK2bFn9a3JysvbFRbpfFhIgARIgARIgARIIFAFacANFPkT2a4hbozsUtwYJvpMACZAACZAACQSKQLEW3LCwsEC1jfslARIgARIgARIIAIGcnBw5ceKEnD1zViXxyQ5AC0JzlzmqW4kJiVK2XFnGi/fxEBcrcH28f1ZPAiRAAiRAAiRgMQJ79+yVMW++KatV2vUIJu4xZXRgLszIcEj16tVk9Asv6NjxQhuiKWxdVVKkwMXdG0pmZqakpaXJqVOndBiogwcPaj9L3NmlpKTo3411Xe2Ay0iABEiABEjAFQFcQxBD+9zZcxKqTwvj4mKl4gUXSKlSpYKqj6dOnZTY2Fh54MEHJbllSzV8uZrA1ThymXsEECN+y5YtMn7sOEnPSFdEc5S+pcJ1j57naxUpcF1V5fwHCJ+N78a7q224jARCnYBx/POcCPWRZv/MJJCdlSXz582T9955R84qgRsdE2Nm9QGvC8LF4ciQyKgoufOuu6RX714SHR0d8Ha53QB1jY+Ni5NKlS+UasriyGIOgRMnT0qMunEwrhvm1MpaXBFwS+AaF268R0REaL+RSPXIAi8UWnBdoeUyuxDAXblxPuD8wMs4Z+zCgP0kAU8JZKunhOnp6XJps+ZKAN4pVatVC6lrCf4GHDl8RD6bNEkyHY6g65u2K+JJLg23nh7a518fPP96Qn7+FfmrtwSKFbg4SVGMi3iUuhuNUXfaeHQBYQsXBgpcb4eB2wczAZwbsMzgvMALYpciN5hHlG33FwFcX3C+xETnXlP8tV9/7ScmNkZwzeRTaH8R535I4G8CbglcXMBxwcZFPE49skhISJDs7Gz9HQKXhQTsTAAXaVzEjHMDN3/4bohcO7Nh30mgWALKUIJ/IVlgAKW1LiSHlp2yPoFiBS66AIGLCzYu3HCUxwkLS1VGRoZkKT8qFhKwM4E8K5Q6J3Dzl5iYqM8VWKZw7hhPQezMiH0nARIgARIgAX8SKFbg4uJsCFxYqCBuceHGhRzWW1hyWUjAzgRwjsBai5tA3PjhPDGsuDh3WEiABEiABEiABPxLoFiBi+YYAhefcSHHxRviFtZbPn4BFRY7E4DANUQubv7gygOxa1hw7cyGfScBEiABEiCBQBBwW+CiccZFHFYqWG4hbilwAzFs3KeVCOC8QMGNoPPL8ME1frdSm9kWEiABEiABEghlAsUKXOPijAu3IXApbEP5kGDfvCGAc8Q4Z5w/e1MntyUBEiABEiABEk75nMkAAEAASURBVPCMQLEC16iu4MWalluDDN9J4G8Chrj9ewk/kQAJkAAJkAAJ+JuA2wK3YMN4IS9IhN9JgARIgARIgARIgASsQIBTvK0wCmwDCZAACZAACZAACZCAaQQocE1DyYpIgARIgARIgARIgASsQIAC1wqjwDaQAAmQAAlYkgDnm1hyWNgoEiiWQIl9cIutmSuQAAmQAAmQgEUJQLi6M5fEnXUs2kXLNuv0qdPyxx9/yNkzZ+SialWlXLlyOr4+skAifjgLCZhBgEeSGRRZBwmQAAmQQEAIOBwOOXv2rBZGSCVvFMRqP3H8hBw9elRUxHYduz1TrRsREanTaVeoUEESSyUaq+d7T0tLk927d8uWzZvl3NlzcmHlylKjRnWJVAlcIMKwLUvJCOxRXD/88EOJiY6R2nVqy+Ili2XFsuXS95ZbpHuPHlKq9N9jWLI9cCsSyCVAgcsjgQRIgARIIGgJbNq0SX78Yao0aNBAbux1U14/YHnNycmWeXPnysT//U8uqlJFulzbVf++dctWOXHihFzZvr1ce911Ur5CeVErI5uR7Ni+Xa0/USDErmjXVpKSkmT//n3y6YQJcu7cORl8z2C5pkuXvP3wg2cEpkz5WjIyMuSOO+6QS+rXl9TUVPn4w48kW2VGzchIV5V5L3D/GkqXDXPXcu9yYy4MKgIUuEE1XGwsCZAACZhPYMWKFfLMM8/IggULtCW0ixJwL774otSqVcv8nZlYI4TSxvUbZNrPP2txdNXVnaV06dJ6DxC4FS+4QBo1biRVq1aVppdeKrfefrsgEycejf/040/yv08/lXXr1sm9990n1ZWFdueOnfL2f9+So8eOygMPPSQtW7bMa229evXkh+9/UIIsLW+ZGR9gaUZBMiVPCvr+xhtvyJdffqmt1I0bN5ZRo0ZJx44dPanG7+sePXJE9v35p6SkpOhMqHFxcdKtR3d1E7Ff2dn/LriZwKtMmTJ6zJyFKZhhfCGOkRrdyBqJrbOUUD527JgkJCRIfHx8PjeU9PR0zQqWflji8zHHzlVSSjwRQN3Odf7dKv98Qh+M5Fr+2WNo7oUCNzTHlb0iARIgAbcIzJs3TyBoIRraK4smhNPkyZPl119/lUWLFkmdOnXcqicQK+3ft0/OnjsrFykBu23bdtm4YYNcdvnl+ZoCYZStXpmZmZLpyNRiKVEJnF59ekuGI0PGjx0vVZR194677pQZM2Yo39BNctfdd0mL5i3yrLqo8NJLm0l6eoYWVM5iK9/OPPhy8uRJ+e3X2VrEte/QQWrUrOH21hBh1ynL8+zZs6Wycp9IUlbmX375RaZPny5jx46Vu+++2+26/L0ibjRmzZwl/3nhJXlwxMOS3DJZ30hVr65cQP7yv/1DjePatetkx44d2tJ+w403SLPmzWXdmrW6n/WV5RcW+N8XLlQ3JjVkwMCBUuviWnrZ3DlzlTgNlz/37pOLLqoiHZTgL1e+nN4WN3Jh4WGye9dutc8kJax7CAT2vLnzZPmypdK0WTP5ddYsqXxhZek/oL9UVseFPwueGnylblhatEiWy6+4QmLjYv25+5Dbl2e3jCHXfXaIBEiABOxNYNiwYVpYLF68WGapizsE7/fffy/Hjx+XRx55xLJwYOX6U1kCExIS5ea+fbXlbvHiJUqE4jF3/qKcFfIvUN+ilD8thAR8azesXy+rVq6UtatXKwtwKalbr66EK5EElwWjRMdES3JyC2nSpHE+q6Dx+3nfnXYPYQvr8QP33S9PPP64gHtaumdW4Q8++ECL26FDh8qePXv0jciWLVukZs2aMnz4cD12521PAH+89rpr5SblSrJ23Vp54P775YP33pcjyqoLSyyslnA5mf3bHGnYqJGyoj+oj80PP/hQdu7cKaXKlNbjNG3aNKl3ySVym3JzWKPGbM6c3+TM6dMy9YcfZK/ikZzcUtq2u0IcmQ5JV24PqHPs2I+lmhrrm5Wv7429e2lr/Jeff64tugeU9Xjq1B/1+Dds0FCqVa8mEX6c7IY2v/PW23LbP26Vd95+R1uzs7KzAjhKobFrWnBDYxzZCxIggYASyH2kCREUTGXXrl2yceNGLYpatFAWy7/K9ddfL507d9YWQVh28z3KNVby8h3WOoiaMA8fzRu7Pa4eQx86eEjPwG+kxNDypUu12Nm2bZvguzul4gUVtZUOHLZs3iKHDh2SMmXLSGn1WNxViVOPvD0teNyNvp45fUZmLZ6preOLFy1Wj9dTdP9hQYTY9qR899132hXj9ddfz9sW7iT/93//J/3795eZM2fKLUrIeVOi8Og/MsKbKlxuW7ZsWXl45Ajt/vH+e+/Ja6++IuvWrpURj4zUPrlzZs+RzUqQgtt65T4Srt7hUnL86DEtesuqiAvJynWk6aVN9XFZtVo1QVQG3NjAfQQ3aHXq1pVOV3WSmsqyHRsTK19+MVndAOVIzRo1JS42Vpo2aaKfVsz4Zaa0VU8t6jdsIBUrVpS2V7aTK6+8Uo1XlHafcNkBExbifIoIj5A/9+yVKVOmyDdff60nNaLP0cqFJlYdE7445+CeEx4RoTwx/r5xM6E7lq2CAteyQ8OGkQAJBAMBPK6GlQgiacrkr+QC5fcZLGX/gf26qYgYMElNrHIuEBVwV5j46f+0P6Lzb2Z8hnDeoB5F46Jekgsu2ozoCXjkXenCStK4aVPZqFwrVq9aJXiEDYGAus9XIJ7wOBtjiMf+sArDEfP8W52vxgK/qYpQ79w5c+THH6fKsqXLtN+oFvdK1GI/cKuYqHyBPYnMABEfpUTzeOWO4Fw2qagPKD8oC/wxZRUtaYHB+cD+A9q6WQzCEu0iVonMa7p2UWPWRN5TFkuIvGrKRWHwPffIAXVM1lCfIVARPuzqLtfoGwH41J46dUqPFbjpMVLjpvxI9Av/9+zZU1Yri+5Tjz8hN910kwwcPFC7IOzZs1u54KixVRsZN2y1levNz8p3+9iRo/pYwbEQGaHGJCz3wXZxx47aXYkKeJ5TNzfvv/eutrzv2rlL71/f5KA/6rxYMH++nD59SqKjzL1hhpsO9udQ73YoFLh2GGX2kQRIwKcEypYpqx5dN1FWmF3aEuPTnZlYOS72sCDOUQKs6kVVVeim3AvqafW4d9ny5VKpUiVZpQSjLwpE5YEDBwS+l0pVeLQLTC7avn2Hfry/d+9eLcAxeQlW3cW/L9LREWoo38ziCiYxnVaiCROZ4MNZrlxZSVHLzihxb0ZBryCs9qlH4CeVywfCj0FIGeIJogw3EcdVODOH8g8GE3dKhfIV9HG2SLlkJCm3BKP89ttv+iPG9MCBg8Zij9/RPriooG1mlg3rN2hf6Nq1a+sQbfB9hh/ugYMH9M3OQXU8ZCnxhUl+sDbCvxgFNx4Yc7y7PlJyb0oqV6ksL/3nJe2qAOvw1m1bZdRjjykrd7TmAYFn3PigfnCKi48zvZ/nY4aWOpQvNyY0IowdxjzPWvvXeYBjGsdNuLLymlrUvtqpyCDVldU7b5+m7sBalVHgWms82BoSIIEgI4DZ1g3UI85/v/hCkLU8t7n16l8i9ytfyF9m/iJDhgzR4u7zyV9oS9cEFRqra9fc0Fpmdy5bhfCarnwpVyxfoSaB5UYScGcfEAS7lD9mqpqFj8fwDRo1lBwl1NPS0uUL5VM5R4m8lapOZ4GLbfSrgC/u5k2bZe/eP+XKDu2lZatWWmTNUBO14M96qZpw5K0IULtVCQzi5B//+Ie0uewyPUHq22++kS3qEXyWajOsdrBA36f4X1z7Yne6r9e5U02Ca64mXf0w9QftJ40ID5gYuF5Zg7t37y4fF7Dsul2x04qbVCKGr1VIL/TBjAL+8In9+aef9aTGFsqfGXzhcpCQWEq5BUSr90R1o3GxfK7GsaUawypK4OKR/Vzlk4voGFWVbyx8o7EdRDjew5XFFecgbpIw6Qws7rjzTkmqVUv+++YY5ae9V5oq6z58dRGpAZMmwX3Hzh0qDm8ddRN3oRxWrimoT9djRmfPUwcmPMJNY9Sjo+ScOoY/mzRJuQLN0JEfcPMD4d2vXz8VE7i7Et+eu8ScZ9e2+4kC13ZDzg6TAAmQwN8E7lMhsmDZekxZuh599FH9AyxrCD/lK3GLnWRnZStrnXpsnK0yiv3dnGI/5U4u26d8GMOleYvmyme2bN42V7S9QrkBLJXlK5ZLh6vUI271G0QQfCrhT4rPKBBbmFAG30c8Gu/Ro6e2Fnbs2Em7EUz7eZo0btxEhxgzKk9T/p2blQtAbGyMnuAEQeROgZUcL0xcGjpsqGLaRb799ls9yQlCPUP5jua6RrhTW+46dZWPKR6vI5Ys/G6N0qtXLxk/frzx1at3uFag3WYV8KqmLIcHVOSLsR99JEeP3Kh8ZGsKIhvA+t6rd2+pWq2qXH3N1bJo8SJ5+aWXZPqM6ZIQn6BF601qYhhcFDAhbZ+KS3xGuaecU6+DSpxCGKecS9HuKevVhMHOna+WVPW9mbpJqVunrlygnkRs2vSH/KKEJARklEr2sVf5v/ZSk93gh710yRJlNT4m27Zu0TerEKDujm9J+GiuSpg3UcL7RfXq3aePfD7pM+07jacHiO5h0n1FSZoXMttQ4IbMULIjJEACJFAyArAGYpIOIioMHjxYu1vAT9RqBcIAoaJ+nDpVhYC6SE9Qg1iFGIFIj1JCNkxZ+OYoix9cRhB+CzPodyl/XYjI75SwzFaCertK5oAQY02UD+iNylcTIhf1tGzVUkaoCVAfqcQDz/3zn9rSiAlLmKEPSyCEUtu2bT0WP8ikhvpRYKF8+OER0lsJOvjKYjn8gD0tCOkGX1xEYYDInasSWowbNy4vDrCn9RVc3xcCDz61dw/or54SnFWP54/r8FywmsKaiaQP8M2Fr+0LL7yo/VD37ftTL2/VurXuFyaTDR12r+al26fGHX67KFFRkdL12mu17/Bu5Q+Pm5m71YQ7uC1gH4898YQsV243f6rH/xDN/QcM0Dcd8ONGmLnHVESLhIR47UaC48zX1lwcEyjoB/qHiXOwMn/x+RfKZebvmza9Ev8rEQHr/QUrUTe4EQmQAAmQQEkJ/Pjjj3pThJ3C41yrFojYhMQE6da9mxYpsOAZ6Xkh0BFGasiQodqPE361x48dV4+k68rTzzyt5yJBuODxNKIsJNVK0pOYjL5CaEDUXKEEbIOGDWWlsixidv/yZcu0u8PV13TR22B7bwtisWKG//AHH9TCvKT1oS2Y9d9HWQDhR71MtfXqq68uaXU+3w58IeSMYtycGN/xjmWYNIg4xQVL/Qb1BS/nggx2zgXhw1zVi6QPuCnIV5TGhOhur1xUAl0gyJurSCaI94vj3Io3mIFm5On+KXA9Jcb1SYAESCDECEDgYrKXlcUtkCOsGAQMXgULLH/I5oWXtwWip7MSinj5upghZForCyDKUuWeYWWBW5AlbioKFlfLCq5T3He36yi8++Kq9vnvaLsZN1E+b2gQ7MDz5yJB0Ck2kQRIgARIwD0CCKD/h5pQ1ENldWIJTgKXqolqEP8QuCwkQAK5BChweSSQAAmQgI0JTFX+rCiIIcoSnAQgbjGhigI3OMePrfYNAQpc33BlrSRAAiQQFAQgcOGf2KlTp6BoLxvpmgDcFBBXGOmLWUiABEQocHkUkAAJkIBNCWAGOVKbwm8TM9hZgpdAmzZtdONpxQ3eMWTLzSVAgWsuT9ZGAiRAAkFDYMaMGTqLE/1vg2bIimyo80SzIlfiDyRgIwIUuDYabHaVBEiABJwJGOHBunXr5ryYn4OQAJI/IEEBLbhBOHhssk8IUOD6BCsrJQESIAFrE0CsUGTDaqFib1ZVge5ZgpsAwku1UumGkcxAZ8oK7u6w9STgNQEKXK8RsgISIAESCD4CS1R60sOHDzN6QvANXZEthpsCUr0i7BsLCdidAAWu3Y8A9p8ESMCWBAz3BPrfhs7w0w83dMaSPfGeAAWu9wxZAwmQAAkEHQEI3MqVK0tycnLQtZ0Ndk0ALgoo9MN1zYdL7UWAAtde483ekgAJkICOlbpmzRrp3r27uJ3WlNwsT6BKlSo65TIFruWHig30AwEKXD9A5i5IgARIwEoE6J5gpdEwty1wU1i3bp2kpaWZWzFrI4EgI0CBG2QDxuaSAAmQgLcEIHBjYmJ0ggdv6/J6ezX7H/9Csqhu+dtCDoHrcDhk1apVXiMN0VHxmos3FajDHQeFN1VwWzcJRLq5HlcjARIgARIIAQKpqakye/ZsnZo3MTEx4D3KzsqSdEeGpKenC0KXhUqBsM1QfcrMzPRrl5wnml1++eVe7TtbjUdGRuiNjVdQSrgxjge8HBkOycnOFgmdQ72ERHy/GQWu7xlzDyRAAiRgGQKzZs0SiNxAR0/QF3xluf39999lzty5Eh0dbRlGZjUkU1lS0c+7+/f3myUXkwbDw8O9nmgWrSz8e/bskaefekri4+PNQmLrenAspKlzLz4uzm/Hg52Bh6k7Zt5H2PkIYN9JgARsRWDIkCHy4Ycfys6dOyUpKclWfbdLZxs3bqwt4lu3brVLl9lPEihEgD64hZBwAQmQAAmELoGffvpJIIAobkN3jOGmsG3bNjl+/HjodpI9I4FiCFDgFgOIP5MACZBAqBDAxKN9+/Yxe1moDGgR/TD8cJctW1bEGlxMAqFPgAI39MeYPSQBEiABTWDq1Kn6PdD+txwO3xIwBC7j4fqWM2u3NgEKXGuPD1tHAiRAAqYRQHiwChUqyGWXXWZanazIegSaNGkisbGxXk80s17P2CIScJ8ABa77rLgmCZAACQQtgUOHDsny5culW7duepZ90HaEDS+WQFRUlLRo0YICt1hSXCGUCVDghvLosm8kQAIk8BcBTC5D0By6J9jjkICbwuHDh2X37t326DB7SQIFCFDgFgDCryRAAiQQigTgnhAZGSldu3YNxe6xTwUI0A+3ABB+tR0BClzbDTk7TAIkYDcCyEY1c+ZMad++vZQpU8Zu3bdlfw2Bu2TJElv2n50mAQpcHgMkQAIkEOIEfvvtNzl79izdE0J8nJ27V7t2bSlfvjz9cJ2h8LOtCFDg2mq42VkSIAE7EoB7Akr37t3t2H3b9hlW3JUrV0pWVpZtGbDj9iVAgWvfsWfPSYAEbEIAE8zq1aunXzbpMrupCEDgnjt3TjZs2EAeJGA7AhS4thtydpgESMBOBCBudu7cSfcEOw36X301/HCZ8MGGg88uCwUuDwISIAESCGEChntCz549Q7iX7JorAhS4rqhwmV0IhKm4iDl26Sz7SQIkQAJ2I9CuXTtZv369HD16VIcJs1v/7d7fWrVq6cgZq1evtjsK9t9mBGjBtdmAs7skQAL2IXDs2DFZvHixXHvttRS39hn2fD2FFRduKikpKfmW8wsJhDoBCtxQH2H2jwRIwLYEpk2bpmfQM3uZbQ8BPdEsMzNTR1OwLwX23I4EKHDtOOrsMwmQgC0IwP82IiJCrrvuOlv0l50sTIB+uIWZcIk9CFDg2mOc2UsSIAGbEYDVbsaMGXL55ZdLhQoVbNZ7dtcgkJycrG9yGEnBIMJ3uxCgwLXLSLOfJEACtiIwf/58OXnyJMOD2WrUC3c2Pj5eGjVqxIxmhdFwSYgToMAN8QFm90iABOxJwAgPRv9be46/c6/btGmjYyEjkgYLCdiFAAWuXUaa/SQBErAVAQjcpKQkbb2zVcfZ2UIE6IdbCAkX2IAABa4NBpldJAESsBeBrVu3ypYtW+ieYK9hL7K3FLhFouEPIUyAAjeEB5ddIwESsCcBuifYc9yL6jV8cOGLy4lmRRHi8lAkQIEbiqPKPpEACdiawNSpUyUxMVE6duxoaw7sfC4BhIpDNAUKXB4RdiJAgWun0WZfSYAEQp7AqVOnZMGCBXLNNddITExMyPeXHXSPANwUkNlu+/bt7m3AtUggyAlQ4Ab5ALL5JEACJOBMALFvHQ4H/W+dofCzzmgGDLTi8mCwCwEKXLuMNPtJAiRgCwLwvw0LC5Nu3brZor/spHsEONHMPU5cK3QIhOWoEjrdYU9IgARIwL4EsrOz5cILL5RatWrRUmffw6DInleqVEnq1q0rCxcuLHId/kACoUKAFtxQGUn2gwRIwPYEFi9eLAjm37NnT9uzIIDCBGDFXbVqlSCNMwsJhDoBCtxQH2H2jwRIwDYEED0BhdnLbDPkHnUUAjc1NVXWrVvn0XZcmQSCkQAFbjCOGttMAiRAAi4IwP+2atWq0rx5cxe/cpHdCdAP1+5HgL36T4Frr/Fmb0mABEKUwO7du2X9+vXSvXv3EO0hu+UtgVatWukqGEnBW5LcPhgIUOAGwyixjSRAAiRQDAFmLysGEH+WChUqSO3atTkBkceCLQhQ4NpimNlJEiCBUCcAgRsbGyudO3cO9a6yf14QgJvCxo0b5ezZs17Uwk1JwPoEKHCtP0ZsIQmQAAmcl8C5c+fkt99+0+I2Pj7+vOvyR3sTgMBFOLkVK1bYGwR7H/IEKHBDfojZQRIggVAnMHPmTElPT2f0hFAfaBP616ZNG10L/XBNgMkqLE2AAtfSw8PGkQAJkEDxBAz/W04wK56V3ddAhI3IyEj64dr9QLBB/5nJzAaDzC6SAAmELgEko7zooot0BrPVq1eHbkfZM9MIJCcn64QgiLzBQgKhSoAW3FAdWfaLBEjAFgTgS3nw4EG6J9hitM3pJPxw9+zZo48bc2pkLSRgPQIUuNYbE7aIBEiABNwmYGQvY3pet5HZfkUmfLD9IWALABS4thhmdpIESCBUCcD/tlKlSmIE8Q/VfrJf5hGgwDWPJWuyLgEKXOuODVtGAiRAAuclsH//flm1apV069ZNwsP55/y8sPhjHoEGDRpIYmIiJ5rlEeGHUCTASWahOKrsU9ATCAsLC/o+sAMk4GsCmGBn9cJz2eojxPZZgYAvzmXe8lthZNkGEiABEiABEiABEiAB0whEmlYTKyIBEjCdgC/uak1vJCskAT8TMKyimZmZYnxGE4zPeDc++7lpRe6O53KRaPiDjQkY56kvzmUKXBsfWOw6CZAACQQzgbS0NN18Q9DCD9n5ZSwP5j6y7SRgBwLO5zLOYZy7ERER+nw2zmO8e1IocD2hxXVJgARIgAQsQ+DUqVO6LYaoRYauqKgo/cJnXCBRPL0w6o34HwmQgN8I4Fw2hCzOW+M8xju+G+eyJw2iwPWEFtclARIgARKwDIHDhw/riyIELgRtTEyMxMXF6Rc+44JZkgujZTrIhpCATQjgXMZ5bIjb2NjYvHM5Ojo6z5LrCQ4KXE9ocV0SIAESIAHLEDhw4ECeiMVFMD4+XkqVKiXwdzUulninBdcyQ8aGkIBLAsjGaNyoQtwijF12dnbeeQzhi989KRS4ntDiuiRAAiRAApYhcOjQIS1eYb01LooQt/gOwYvHm/jMQgIkYG0COJchYI0b1aysLG3NxXfjXMa57cnNKs98a485W0cCJEACJFAEgZMnT+YTuLgAGhdIh8OhLUBYxkICJGBtAidOnNCCFq5FELe4OcUTGW/OYwpca485W0cCJEACJFAEgZSUlDyBa4jb9PR0fVHERZLitghwXEwCFiOAcxlPW+CWgPeMjIy88xjLSnIuU+BabJDZHBIgARIgAfcIIHYmCi5+sPjgO4StcUEsyUXRvT1zLRIgATMJ4NzF+Qo3BXzGy9vz2DOPXTN7w7pIgARIgARIwAsCzgIWn4t6ebELblqAQJMmTQos4VcS8J6Ace56X9PfNVDg/s2Cn0iABHxEgBdFH4FltSRAAiRAAi4JUOC6xMKFJEACJEACJEACJEACwUqAAjdYR47tJgESIAESIAESIAEScEmAAtclFi4kARIgARIgARIgARIIVgIUuME6cmw3CZAACZAACZAACZCASwIME+YSCxeSAAkECwHH6qWS8tkHkn3kgETWayzx/R+QiMrVgqX5bCcJkAAJkIAPCFDg+gAqqyQBEvAPgYwVC+X0owNFBUzUO8zatU0yls2Xch//IOHlL/BPI7gXEiABEiAByxGgi4LlhoQNIgEScJdAyidv54lbY5ucE8ck9dtJxle+kwAJBAGB1LQc+WN7tixfnyWbd2ZLWjpTLAfBsFm6ibTgWnp42DgSIIGiCGRl5Ujmn7td/py1f4/L5VxIAiRgHQLHT+bI5z9mynezsmTlxmzjQYxuYHSUyOXNw+XOGyPlxqsjVIarMOs0nC0JCgIUuEExTGwkCZCAQQCWnvQMkcwstaRmPZGTR42f8t4dF9VVKVtzJCKCF8U8KPxAAhYhcOJUjrw6ziHjv86U1LTcRkVEiNSpGSZlSoUJft/5Z47MXZqtXhny6tgwefOpaGndVK3EQgJuEqDAdRMUVyMBEggsAQjbFHUxjFJ/tRLjRSIjw8QxdIScemilSPpfV0nVxPCqNSW8+61y6FiOlC0tEh9LkRvYkePeSSCXANKxTvg2S/75VoacOpO77Jq24XLHDZHS6bIIdV7/fa5C5H47M1PGfJqpXBdy5LpB6fLUsCgZ0V+ZdllIwA0CFLhuQOIqJEACgSOQmZkjp86K4NJXtpTks8pG1W8qZd//RlKnfCLZh/frKApxfQdIeOkykqi2O35KxKHeyyT+feEMXE+4ZxKwL4E9B7Ll3mczZOHK3AmhHduEy/MPREuTS1xPBSpXJkwG9ImS266PlP986JA3J2TKv95xyPY92fLWM9F0WbDvoeR2zylw3UbFFUmABPxN4Fxqjpw5J1IqQSQhzrVIjUyqI6UeGV2oabDwXlA+V+SeOkuRWwgQF5CAnwhMmZ4pI17M0OdypQoiL4+Klhuudk9+xESHyf/dHy1tmkXIgMfT5bOpWeJwZMgH/4qWsDDXfxP81C3uxuIEXN86WbzRbB4JkEBoE8CjTDyihH/eBeWKFrfFUcAFsEJZ5dOnJrNA5LKQAAn4j0CGI0dGvpQhg5/OFbfXd46QRZPj3Ba3zi3t2i5Cvn03RrsnfTU9S558zeH8Mz+TQCECFLiFkHABCdiDwAsvvCBdunTRnf3yyy/l3nvvlQ4dOuTr/Msvv5y3Tr4ffPgFLgVHjitfWjWfpGK5sHwuCSXdbVK1cMnMFGVBosgtKUNuRwKeENh7MFuuHZgu46ZkCiIivPFktEz4T4yUVzecJS2YZPbFmzG6vve/yFR1U+SWlKUdtqPAtcMos48kUIDA7t275d///rc8+eST+pe2bdvKrl27pEIF9fzQqUD0rlq1Sr744gunpb77mKImkh0/KVI6UUz3my1fRrRFmPE1fTd+rNlaBJxvYgu2DOd72bJlBX8LzC6zfs+SDrelySoV+qvGRWHyy/hYubuXey4JxbWlbYsIefvZaL3a4686ZOlahFMJjpKdnSNbdmXLmk3Zckw9VWLxLQEKXN/yZe0kYEkCzz33nDRo0EA6duyo21e1alU5cuSItGnTJl97ExMTZciQIfLYY48pC6gygfqwpGeoKAmpsNqKxMaU3MpTVBPhrgCRe1LN3kYIsWAocNVA9IiTp3NfEOe4SLKQQHEECt7EYv2zZ8/Kiy++KNu2bZOkpCTp1auXDB8+vLiq3P4dx+aL72dI3wfTlYuRSJd24TJ3YqxcWt9cqXHztZEy7NZINYFUZNCTKiKDxd2PMFH2NRUWrW6XVGnTJ0063p4mda5Olbb9UuW/nzr0+e02ZK7oNgFzjzq3d8sVSYAEfEnA4XDIvn378u3i4MGDcurUKUlPT5eJEyfK7bffnvc7hNQff/whrVq10stOnz4ts2fPVpM5HHLLLbfInj175Mcff8xb38wPuCgePZGjMheZ55JQVPsw8QwT1hBdIRgK2nlOif4w9Zc6XL2y1AT00yqiBC7ouCFgIYGiCBS8icV6M2fOlGeeeUYuvPBCvdkjjzwiU6dOlTlz5ujv3vwHi2Tv4eny8se5N8II6fXFGzEqVJ/5N6to5/MPREnLxuGy92COjHhBBca2aMEN6s1K8I9+16GfTlW9MEwa1w3TvsQbt+XIs/91yKXXp2oBzHPa3EGkwDWXJ2sjgYATWL16tTRq1EhuuOGGvLYsX75cqlSpIn/++acWshCuWMcomzdvlpSUFGnZsqW+CF5yySXSt29fPUsZnyNUFPZp06YZq5v2jkkoR0+IxMUqlwQV4N0fBdEYItRfvtMWtvpA9CPLE3wX4YeMMGel1Qtth2CIVU9oT55WQl2tEyzWaH+MrZ324elNLNjActu4cWMpVUrF21OlYcOG+vu7776rv5f0vyVrsqT9rWkyZ0m2fgLz7Tsx8sjAKJ9GOcDN6oejo9U5IfLNL1nyw6++fcJUEjYwHAx6KkNzQfSI79QkufU/xcn8z+Nk5+w4+XJMjIr/G65vWiGA2/ZLk0Wrg8floiRM/LkNBa4/aXNfJOAHAjNmzNDiNivr7z+Us2bNkubNm2tRu3btWt2K2rVr57UGArh+/fqyZMkSee+992TFihVy9OhRlUwhUqKjo/XjzGXLluWtb8aHsyl47C5STrkNFBUCzIz9uKoDCSCQNAKPDq1QcjLSJeWTt+TkvTfLqYfvkGPffqNFf6kE16IfoZMurBgmUUoAHz6eo6y81uiHFVjaoQ0luYmFlXbSpEn6RhZuR8YTHohcWHad/154wvCdiQ7pMSRd9h/Okcuahcu8z2KlQ2v/ZByrpSaP/ushdRKogmgNiLxipYLYvT/PzdIJZ6Z+kJ8LBPo1bSPkm7dj5Yf3Y6T+xWEqxm+OdB+crhNhYLIti3cEKHC948etScByBOAvW6ZMGSlfvnxe26ZMmaL97bBg3bp1ShhFSc2aNfN+h8AtV66c3H333TJ58mS56KKL8n7DB1hxDx06lG+ZO18c61dq0TazQrocv62zpE37WowQYBnqqeIFqolR6g+9vwvy2pdRE9mQQMIK5fRTQyVlwluS+ccacaxeImFvPyE5XxZvVYMAvkBZeM+l5FpzwZYl9AmU5CYWVE6ePCk9evSQ66+/XipVqqRB4dzG8q1bt3oEDn7ht41Ml6ffdOgIJfffHilTlVCrcoF/ZQUmr7VNDtdPgv7vv9ZxVcBkshffz43y8OG/YqReUtFcrmwZIXMnxcqoQZHK6i0yRgljRKDYsz83KYZHA8OV8wgUTTxvFX4gARIINgK4YFWsWFE3e/r06doi27NnT/39xAnlE6CKsxiCwIVF5/jx4zJ//nz9u/N/cFEoXVqZPT0omXt2yKlH7taiDRo2e/9eOfvyE3Lk+6nKMiw6XFAgA7XHqRS+SufqSVwedMv0VR2rl4pj+cJC9aZMfE9yUpVyLabAElSpgnK7UEwPHcvN3FbMJvw5yAmU5Ca2ffv2eiJpv379pHv37vomFxggcFE8uYFdti7XJQHWyTLK22HSa9HKkhqt02fryvz4H/6GjHkqWrvzTPw+SxZb5BH/Y69k6Elwd9wYoS21xSGJjgqTJ4dGy7SPY6R6lTBZuSFbu31Mm2c914vi+mKV3ylwrTISbAcJmEgAAhcW3LS0NBk2bJhUq1ZNLr30Ur0H+OLCf2/Hjh36O6IjIBTYZ599pq0748aNK9SS7du3S9OmTQstP9+CtB8+F0lXfgAFStTP49VEL/9bbQs0Q3/Fxfms0pDOYt/Ver5clvXnTtfVq2xNWUcOuP7NxVL46SKV8TEVZo0uCy4AhdgiT29iN23apCeYFjyPcfOK4u4N7JnwPnLdoHQ9uStZTfKCS0K3DuaEACvpENWuES4P3pXbhlEvZwQ80sicJVna7xZPiZ4bnhvSzN2+IdbvfDDtGKGfMN06IkOef1v9LQiSyC/u9tMf61Hg+oMy90ECfiaAkF+YUAZfu3r16mnhajShXbt2+iMmlqHA3xZWEIQIGzRokHZR2LBhg8ydO1f/DvEHMdykSRP93d3/sk8cc7lqzomjLpcHYiFcFTDBDemAA1Uikuq63nVsnERcWNX1b0UsRXg1ZH5DuDWrh04qogtc7CYBT25iUSX86+vUqSOxseqAdyq4eYXIhS+uOyUyZ78SkCLD74jU1sYaVawhI0b0j9KWz/VbcuTT7/6ef+BOn8xe5z8f5bomPHh3lJpj4PnNPCbcTno1Rp5TkSIQPeWNTzKl1/3pOtqM2W0N5fqscWSGMmH2jQQCQCApKUnmzZsngwcPli1btkifPn3yWoGkDpg4hrBgKJh8kpycrC9yyGyGC13v3r0lLk5NT1Zl586d2hJsWID1Qjf+i2rc3OVakY1cL3e5sh8WJsaHSYa6HgVqwllU4xYS3e6aQj1NGPCQhMXkFyOFVnKxICJCidzyYZKjRMjhY4yy4AJRSCzy5CYWHYYbUo0aNeTjjz+W77//Po8BIivgJjgmJiZv2fk+xOX8Lku+ipXnH4wOiP98UW3Dzd3zD+ZOOBv9bkbAoqQsXAk3iWw9sWxwX+8s2w/cGSXfvxejXJBE5i3LdVlAxAoW9whQ4LrHiWuRQFARQAYjCFNYZiBmr7rqqrz2I3nDrbfeKl999ZVeBhcGiFwUWHLhg4tIC61bt9bLEDMXk86MtL56oRv/xXa/RSKbtMy3ZniFSpJwzyP5llnhS2J8brzZQLUl9uk3Re5+XKKSr5Dotp2l1PNvS9zN/b1qDsKJJaqYv0eUy7WRvQ0+vZmb10v28SNe1c2NA0/Ak5tYtPbMmTOyZs0a7brkHEIQN7qe3rzWPc+EqUCSufHqSLlcRXKAm86YCblWVH+35y2VuAFlyC2RKtat59bbgu1tl4wJaHG6XweO5OiIFe9OCkzfCrbN6t8pcK0+QmwfCZSAQEJCgr6QTZgwQR56SFkClXB1Ls8++6zADQFWXvjeOf+O7xDFKKmpqYIYmQga766Fx9hPmKqjzOsTJPGxF+Wb1AiJH/qolB07VSIuqmGsYpl3WH8QVQ1xeQNRzqRGSqwStGVe/URKj35PYq7sYkoz4tVEugplc10wTnz1mRzrdbmcHNpLjvduK2fUhL+cTF4oTQEdgEo8uYlF88aMGSNwR0D2MqMgcsLSpUulf3/vbqaM+qzwboQNe/ezTBW6TD3G8GPZvidbZizIlhj153NQ31xrshm7r6xCAiKU2H0qUgUSSj71hkP6PZTGdL/FwKXALQYQfyaBYCKASAgtWrRQfwQzZePGjYLsZUOHDi3UBVh//vnPf8ro0aML/ea8AI8zse7AgQOdF7v9OSwySmKv7S1vnYuU+FsGSXgZ5SBq0ZKgrLiB8MXF5BFkO0LAel8UhGErs3eZZL37T2XKVc65f5V0FbIt5X/vGl/5HmQEPLmJRdcQBhBPb5zLa6+9ptN1e/p0xrkOq31ObhwhN1wdoTMjvvShf2/gPv4yN+LBzddF6AQtZrJBtJTRKlLFxFejtfsDhHQ7lRhi3jJruiwgjFygCwVuoEeA+ycBEwngogffPGQke+edd+TTTz/NZ5113tWoUaOKTb8L94WFCxcWWYdzfcH+GckTMHkmRYlNfxZEccCjTGcrutn7z/j1R5dVps/6weXyQCzEZEZOjCuevFk3sQcOHNCJH/B3ItTK/90XpdyzRD6bmqWSJ/jHiou/G5/9mCtw77nFPOttwbHp3jFSR1mAK8bBozlyw7B0QUgyf//dKtgu4zsSVIx4MUPa35YmR1QSmkAWCtxA0ue+ScBkAmXLlpVdu3bJ77//rgXu+UL/QFAZrghFNQOZzIwwQkWtE0rLSyP5wxn//lFGSC/4APuyFOmKoMLFWaHAin3kuOgUylZoj5XbYNZNbOXKleXYsWPSoEEDK3e3RG27uHq43NYzQrsdvfiBf47xKdOzdMrd1k3DpUk930qrapXDZeoHMSpubpSOKf7h5Ey58h+Bt+buOZCtQ8iN/zpTT3Bd/Yd/bi6KOkh8OwpF7ZXLSYAEfEYAgjQ+3seKyWetD2zFsOJGqigESCPsj4LJX/CTxeNHX5boK65yWX1mi6v81leXDVAL4Z6BSUGl1IQ4MyblFLWfUFlu1k2sOze4wcxs1KAonfzh6xlZsnGb74XWuCm51tsBfbyLnOAuc0RLQR9nT4iVhnXCZMfeXGvukGfS5ZCy7Pqz4OnLuCkO7TKxYn22VK8cpkPIIRVxIAsFbiDpc98kQAKWI4DkD6fP+ucCka6MS4jD6+sSo8KQxfXN70cd2bSVlB02Uvsq4oKYnuGfPht9hdUWfnqpKhcIJsIhsxyLewR4E1s8J1g5kcYX5eWPfWvFhaVyzaZsFfNW5Ebl/+vP0uSScJkzMVaevlfNd1CR3r6cliXJN6UKYvH6I+ELUhL3uCddRr7k0HMYenSK0Mk/mjf0LwdXzP1zq+Fqz1xGAiRAAhYkgJSZ0cqFDheHhDjfia7sbBWjVhl9YlQGMn+UhGGPSWyPvpK5dYOEX1BFIlX8XVjxKqqdw3/v2Mkc3W8IfExM81WBtQeT+VKUsIVrBq22viLNeh+6O1ImfJsp38/Kkj+2Z0uD2r6x6X3yTa71tl/3SBVBwXfnTlEjivN15IAo6d0lQkdYQArll5RrxkeTHTL0H1GCeLxIHmFm2b0vW4voyT9n6bkLEPcvjoyWW7pZR1b6ZrTNpMi6SIAESMDPBCDyYFn0ZUlNV+LWvdj6pjUjonotibmqh0Q1Sc43qQ1uEhdVCtcWILgLYLJXSRJfZG7ZIKeff0hO3tdXzr75T8k6eiiv7RC2sIzvP4y6RWdco7jNw8MPPiBQ5YJwueumv6y4f2UXM3s3cGf6ekauwDUsxmbvw936kqqFy6TXYuSnj2KkVZPceMD/fs8hDa9LlfufT5ela7O8SkuOcxhRG+55Ol1a9k6Tz3/MjeCAfi//Os5S4hbMrCO13R1BrkcCJEACPiYAi0hUVI5OkIAYub4omMxWSWUcs1KB4IRVFb7B51REMViZERIZFu3irLqODavk1EO3q5RwuY+DMzeuloyFv0rie99Jelx5LW7BslIFxdaHFmIr8WRbAk/AsOJ+p6y4o5QvbsM65tr1MLkMkVCuaB4u9SySAOOK5hHyy3jlKqDE6BufOGTOkmyZ9EOWfiGm7nUdIqRdcri0UhPiqitXjvOV4+rJDrKzLViRLdPmZcneA7muTEgh3LtrhDw6OMoy/S7YDwrcgkT4nQRIgAQUgQTlG3v6rGirptlA4BKAyWy+nlxW0nZDiMKfT8foVZZmhPuB2IXLBnyGI5V7nfJuEFzkjPBmKePG5IlbY7/ZyoJ7dsr/JPbuB6XKBWFqfWsJeqOdfA9dArDiwsL4wReZgri4n75s7mOTcV/n3tDd9Ze/r5VItm8VIXghVNqn32UqS3OW7DuUI4hyMP7r3JYi/nb1KmFSTU0MM27mES4R6+09mC3H1RMd51LjojC5tWek/KNHhNSocn5x7LxdID5T4AaCOvdJAiRgeQIQnxGRuUkYzJ4AdVb5oCKNrtULZmobfrJwWchQT2Kz1MXPod7hwqFTAIflSCll+c3atd1ldyIP7tCRIlz+yIUk4AcCD90dpX1xp87OklUbs8SsCVDL12fJus05Ul5Nkryhc+AnVRWFsnaNcHnugWj1ElmrJsPN/D1LuyssVxEPIGA37cjRL1fbx6sb2pbK3QEpg9u3CheEQTNual2tb6VlFLhWGg22hQRIwFIEEpV14+QZcyMdQCgqY2jQiT4IfhUWOa8grJey3+Z9P5VUWxzH//a5NX6IqHGx8ZHvJBAQAngsP6RfpIyZkCnPve2Q7941R4x+pOLPotx+fWAml5UEZtP64YKXcjrSm8PfHm4HsNg6/kpVjqczYFZdWWjhUhSsxenPVbB2ge0mARIgAd8QgAUzUllxMZEE/qmYZOGt9SItQ6RM/oypvmm8n2uNH/CgnFq3TJl3/w7JFF7xQonrdaefW8LdkUBhAg8rKy6iHcxdmi0zFmRJ13beidzDx3Lk25lZ2lVnoJ9i3xbulfdLyqgoLmXqhknjut7XZbUarO1AYTVabA8JkIDtCCRGZsi5d0bLsR4t5Ng1jeTUE/dI1uEDJeaQrgQu/FtDrUQ1ai5l3/5Sojt1l8iGzST2xtukzHtTJLxs+VDrKvsThAQQJuvxIblWy6ffyFBuNt7FfR77lUO76mDCVo2LKKWseEjQgmvFUWGbSIAELEMgZcyzEjH9GzEuh47Fc+TUyLuk3LgfJSxKhRjwoCBrFyISeGsF9mCXfl01sl4jKf1/b/h1n9wZCbhLYJCytI5XGce27MqRtydmCqy6JSmYJPrxX5nL7r2VMqokDP2xDW87/EGZ+yABEghKAtlnTkn6jG8LtT37z12SsWReoeXFLUDoLUzaYCEBEvA/AfiRv/Z47k3pKyq72c4/S5bCF8kjMDmrRaNwadvCO1cH/1Owzx4pcO0z1uwpCZCAhwRyTqurmPK7dVVyThx1tbjIZfDjRZQs+PWykAAJBIZAu5YROsQVooDc/1yGDn/nSUvwFGbMhFw/8xH9ab31hJ2/16XA9Tdx7o8ESCBoCIRXribhFSq5bG9k42SXy10txOQ0JHYoHYKTy1z1l8tIwMoEXnwkWmXuC5PfV2WrRAi5kRDcbe97n2fKIXVv2+SSMOmm/G9ZrEuAAte6Y8OWkQAJBJhAWESEJI78l4qok99XL7LfMImsVdft1iFhBNLhWjWxg9sd4YokEAIEEDng/eejdQSEF953qMgKuSlni+vanyrxwevjcq23/xyO7fk0pjhmgfyd9vVA0ue+SYAELE8g+vJOakLZT5I++yfJSUuRiOT2crJmaz0L252UsxkqtuS51BwdV9LynWUDScAmBK5UrgpPDo2Sf7/nkLseTZefP449bxpfZPW7T7k0wI8elturLqP11uqHCgWu1UeI7SMBEgg4gYhqSRJ/53157SiXkSPHlHtuudI5EhNdtBUHrgnHT4mUL8M0tXnw+IEELELgkYFRsnlntkyZniU3DEuTr9+K/SsJQuEGPv2GQ+Yty5aypUVefTz/E53Ca3OJFQjQRcEKo8A2kAAJBBUBiFpk+jlxWgQWWlcF4nbvwRwdNcHI8e5qPS4jARIIHIF3/xmtLbJHT4h0HZgmH33pEGQbNAoyfQ17Nl3e/yJTTRAVmfCfGKlyAaWTwcfK77TgWnl02DYSIAFLEyhfRtTkMSRuyJE4lbzB8LFFEHn43UIER0cVbeG1dOfYOBKwAQG4GU34T7Q8+opDxn+dKY++7JA3xmdKu+RwyVJRxH5dlPXXOS7y8b+jpX0ruiYEy2FBgRssI8V2kgAJWI4AxGvFcjmSokIOHTmRm8sd89Hi48JUal+huLXciLFBJFCYAG5MX38iWjpfHi7P/tch2/fkyFfKbcEobZXYfeXRaGlQm5Zbg0kwvFPgBsMosY0kQAKWJYCZ1Alxol601Fp2kNgwEnCDQPeOkdpdYfn6bNmwNUcilbE2uXE4ha0b7Ky4CgWuFUeFbSIBEiABEiABEvA7AdywtmoSoV5+3zV3aDIB2ttNBsrqSIAESIAESIAESIAEAkuAAjew/Ll3EiABkwg0aeJ7k0so7CMU+mDSIcNqLErAH8eoRbvOZplIgALXRJisigRIgARIgARIgARIIPAEKHADPwZsAQmQAAmQAAmQAAmQgIkEOMnMRJisigRIgARIgARCjYCzy8C2bdvE+bsv+uqPffii3azTNYF169a5/sHHSylwfQyY1ZOAXQk4XwT9ccHiPtw70oKBU6AuiO4RtN9azuOB89r5uy9o+GMfvmg367QWAQpca40HW0MCIUPA+SLojwsW9+HeoRMqnNzrLdciARKwKwH64Np15NlvEiABEiABEiABEghRAhS4ITqw7BYJWImAszXXV+3iPtwjGyqc3Ost1zKbAI8fs4myPl8RoIuCr8iyXhIgARIgARIIIQJ79+6VH374QVJTU6V9+/bSunXrEOoduxJqBChwQ21E2R8SsBgBf14UR48eLb1795YGDRqYTmHRokUyf/58OXTokFxyySVy2223SUJCgmn7ycnJkWnTpsnSpUulfPny0r17d6ldu7Zp9TtXdODAAQGrYcOGSePGjZ1/8uozrHvLli0rVEffvn0lMTGx0HIuCB4C06dPl27duuljPjY2VkaNGiWvvfaajBgxwqtOnPv4dcn8Y63E3TJQoltfmVeXY9Nayfh9toTFxIpERkpYeISIOkdysrJEsjIlx5EhcTfdIeFly+dtww8k4EyAAteZBj+TAAmYSsBXF0VXjfz555/lmWeekTp16pgucN988015+OGHpXTp0hITEyNHjhyRV155RYvRcuXKuWqOx8sGDRok48aNk0qVKmkL2YMPPii9evWSKVOmSFhYmMf1FbUBhPRdd90lM2fOlM6dO5sqcMeOHStjxowptOurrrqKArcQleBZcPr0acHx2apVK5kzZ45A4Pbv319Gjhypb8Rww1eSkn3imKROHiuS6VCb5+QXuGuWSuba5RJ9xVUiUdFy7r/PS1SzNvp7TmaGpH39qcT1ubsku+U2NiFAH1ybDDS7SQL+JuB8UTx8+LDgBWGFi+LmzZtNaw5EYZcuXeTGG280rU7nitLT0+Xxxx/X1qujR48KrJ8Qtwi39frrrzuvWuLPW7Zs0eL2iSee0BZiCGhYor/55htZv359iet1tSGsbhC3vihgcssttwjG3vlVs2ZNX+yOdfqJwJIlS2Tfvn3y5JNPSlxcnL7huvfee/XecQNW0pI2TW2rxG1UiyvEsXKRZO7ZkVdV9pGDEj94pMT1HSAxV3XXy6M7dZO4m/tL/B33SeQljSW8VJm89fmBBAoSoMAtSITfSYAETCHgq4tiwcadPXtWLrjgAunUqVPBn0z5vmLFCoHIve+++yQqKkoiIiL0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" + } + }, + "cell_type": "markdown", + "id": "6934e483", + "metadata": {}, + "source": [ + "This example creates a precise simulation of a sampled-data control system consisting of discrete-time controller(s) and continuous-time plant dynamics like the following.\n", + "![image-4.png](attachment:image-4.png)" + ] + }, + { + "cell_type": "markdown", + "id": "02dab3bc", + "metadata": {}, + "source": [ + "In many cases, it is sufficient to use a discretized model of your plant using a zero-order-hold for control design because it is exact at the sampling instants. However, a more complete simulation of your sampled-data feedback control system may be desired if you want to additionally \n", + "\n", + "* observe behavior that occurs between sampling instants,\n", + "* model the effect of time delays,\n", + "* simulate your controller operating with a nonlinear plant, which may not have an exact zero-order-hold discretization\n", + "\n", + "Here, we include helper functions that can be used in conjunction with the Python Control Systems Library to create a simulation of such a closed-loop system, providing a Simulink-like interconnection system. \n", + "\n", + "Our approach is to discretize all of the constituent systems, including the plant and controller(s) with a much shorter time step `simulation_dt` that we specify. With this, behavior that occurs between the sampling instants of our discrete-time controller can be observed. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5ffaa0e8", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np # arrays\n", + "import matplotlib.pyplot as plt # plots \n", + "%config InlineBackend.figure_format='retina' # high-res plots\n", + "\n", + "import control as ct # control systems library" + ] + }, + { + "cell_type": "markdown", + "id": "39555216", + "metadata": {}, + "source": [ + "We will assume the controller is a discrete-time system of the form\n", + "\n", + "$x[k+1] = f(x[k], u[k])$
$~~~~~~~y[k]=g(x[k],u[k])$ \n", + "\n", + "For this course we will primarily work with linear systems of the form \n", + "\n", + "$x[k+1] = Ax[k]+Bu[k]$
$~~~~~~~y[k]=Cx[k]+Du[k]$ \n", + "\n", + "The plant is assumed to be continuous-time, of the form \n", + "\n", + "$\\dot x = f(x(t), u(t))$,
$y = g(x(t), u(t))$\n", + "\n", + "For this course, we will design our controller using a linearized model of the plant given by \n", + "\n", + "$\\dot x = Ax + Bu$,
$y = Cx + Du$ " + ] + }, + { + "cell_type": "markdown", + "id": "36d410a9", + "metadata": {}, + "source": [ + "The first step to create our interconnected system is to create a discrete-time model of the plant, which uses the short time interval `simulation_dt`. Each subsystem gets signal names according to the diagram above, and we use `interconnect` to automatically connect signals of the same name. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "852cb7dd", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAANkCAYAAABVuUSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AADsoUlEQVR4nOzdd3RU1d7G8e9MegJJ6B0C0qv0LmJBUVFBRBCpIoh6bdhf6/XaruVaEBRFiooICAoiSpEqIE0gEHpJIySB9F7mvH8MjBkyE5KYSSHPZy2W4z77nP07Qwp5cvbeJsMwDEREREREREREKilzWRcgIiIiIiIiIlKWFI6IiIiIiIiISKWmcEREREREREREKjWFIyIiIiIiIiJSqSkcEREREREREZFKTeGIiIiIiIiIiFRqCkdEREREREREpFJTOCIiIiIiIiIilZrCERERERERERGp1BSOiIiIiIiIiEilpnBERERERERERCo1hSMiIiIiIiIiUqkpHBERERERERGRSk3hiIiIiIiIiIhUagpHRERERERERKRSUzgiIiIiIiIiIpWawhERERERERERqdQUjoiIiIiIiIhIpaZwREREREREREQqNfeyLuBKkZGRQXBwMAC1atXC3V1vrYiIiIiIiEhJy8nJITY2FoAOHTrg7e39j6/p0p/gY2Ji2LFjBzt27GDnzp3s3LmT8+fPAzBu3Djmzp1b4mMuXLiQOXPmsH//fuLj46lbty79+/fn4YcfplevXiU+3kXBwcH06NHDZdcXEREREREREXs7duyge/fu//g6Lg1H6tSp48rL28nIyODuu+/m559/tmsPDQ0lNDSUBQsW8Oqrr/LSSy+VWk0iIiIiIiIiUv6V2tyPRo0a0aZNG1avXu2S699///22YGTgwIE89thj1K9fn+DgYN58801OnDjByy+/TL169Zg0aVKJj1+rVi3b6x07dlCvXr0SH0NERERERESksouKirLN3Mj7s/g/4dJw5OWXX6Z79+50796dOnXqcPr0aZo2bVri42zcuJEFCxYAMGTIEJYtW4abmxsA3bt35/bbb6dr166EhYXxzDPPMHz4cAIDA0u0hrxrjNSrV4+GDRuW6PVFRERERERExF5Jrffp0t1qXnvtNW677TaXT6/573//C4CbmxszZsywBSMX1axZk3feeQeA+Ph4Zs+e7dJ6RERE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ZmYW6T1Ys2YN9913H02bNsXHxwd/f386derEM888Q1RUVJGuJSIiIleQs8GwbApYchwft+RYj58NLt26ypohJSI8PNwADMAIDw8v9HlHjx41QkJCjKNHj7qwOskrLS3NGDVqlO3vy9mfV155Jd+56enpxtChQws8r379+sZff/3lcOw5c+bY+h04cMC47rrrnF6nR48eRkpKit35r7zyymXrvvTTesCAAQZgDBgwIF89p06dsp0zZ84c49lnn3V6zVq1ahkhISFO39fTp08bbdq0KbCufv36GefPn3d4fkF1OnsPnHnzzTcNs9nstA4vLy9j3rx5Ds9dv369rd/69esLrKWgj5VNmzYZ/v7+l/27WrFiRYFjOHLxvSroz6XvY0G15v243Ldvn9GzZ0+n133//fcNwzCM0NBQo127dg77mEwm4+uvvy7wHr788kvDx8enwHu4//77jezs7CK/P4Zh//e4evVqY8iQIU7HefTRRw3DMIy4uDjjmmuucdrvjTfecDpebm6u8fDDDxd4PwEBAcbq1audXiMpKcno27ev0/O7du1q7Nmzx+5z1pGUlJTLfp2qUqWK04+9vB8Pp06dKvR7fpG+r4mIiJSt9KwcI+x8qrE7NM5Ytf+MsWjDbmPBD0uM775831j64eNG5GutDOMV/8v/WfpgWd+KU8X9+bsgWnNEKhWLxcIdd9zBmjVrAGjRogUPPfQQ3bp1w9fXl6ioKLZu3er0t8Tjxo1j2bJlAHTq1Ilp06bRpk0b4uLiWLhwIXPnzuXMmTNcf/317N+/nwYNGjitZfLkyWzfvp1x48YxYsQI6tatS1hYGP/973/Ztm0bO3bs4D//+Q9vvfWW7ZyHHnqI4cOH8+KLL/LTTz9Rv359fvvttxJ5b7744gu2bt3KgAEDmDJlCi1btiQhIYH58+czf/58YmNjmThxItu2bct3bkpKCtdddx0nT54E4M4772TixInUr1+fU6dOMX36dDZu3MiWLVu47bbb2Lx5M25ubiVS96VmzJjBCy+8AECtWrV49tln6du3L7m5uaxdu5Z3332X1NRUxo8fT82aNbnllltKvIbMzExGjhxJUlISVatWZerUqQwcOJDatWuTnZ1NaGgo27Zt44cffijW9efMmUNqaio33XQTZ86c4Y477uA///mPXR8/P79iXXvy5Mns3r2bhx56iKFD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3n//fatp06bOfe+9916hxzhw4IBVp04dS5LlcDis8ePHWz/99JP1008/WePHj7ccDoclyapTp4514MCBMvcK7+Ut67lfv36WJKt69erWqFGjrM8//9xavXq1FRcXZ73zzjtWixYtnMfo2bOnlZWVVeZe4b28ZT0X5tprr7UkWbVr1yYcgWVZ3remf/zxRysoKMiSZFWpUsUaO3astXDhQmvdunXW999/b7399tvW1VdfbXXr1q3MvcJ7edN6vvLKK53jGjdubL355pvWihUrrCVLllgvvfSSVbNmTef+++67r8y9wnt5Yj1PmjTJeZygoCCrW7duxhouaThSGb4TEo5UUOdSZIfDYa1evTrf/qlTpzoX7FNPPVWmcyxbtsx5jMGDB1uZmZnG/mPHjlkNGza0JFnVqlUr9L+UjxgxwnmcL774It/+L774wrl/5MiRZeoV3s1b1vOIESOsd955x0pNTS3wHElJSVbPnj2d5/n444/L1Cu8m7es54LMnTvXkmTVqlXLmjZtGuEILMvyrjX9119/WTVq1LAkWa1atbLi4+MLPSf/pd03ect6/vXXX53HaNKkiXXmzJl8Y/bt22dFREQ4r0T566+/ytQvvJcn1vO5UHndunVWRkaGZVnm97uShiOV4Tsh4UgFFBcX51w499xzT4FjsrKyrFatWjn/0k1PTy/1eQYNGmRJsvz8/Ar9x8XMmTOdvbz88sv59h85csTy8/OzpJxbDQozcOBA57mOHDlS6l7hvbxpPZfE5s2bnccYMmRImY4B7+XN6/nMmTNWZGSkJcn66KOPrBkzZhCOwOvW9J133mlJsgIDA61t27aVug9Ubt60nl977TXn/v/7v/8r9FwPP/ywc9w333xT6l7hvTy1ngtS2nCksnwn5IGsFdDcuXOdn0eOHFngGLvdrttuu02SdPLkSS1btqxU5zh79qxiY2MlSQMGDFBkZGSB4/7xj38oPDxckjRnzpx8++fPn6+srKwie5Wk22+/XZKUlZWl+fPnl6pXeDdvWs8l0aZNG9WsWVOStHv37jIdA97Lm9fz448/rgMHDqhPnz7O/gBvWtOnTp3S559/Lkm66aab1KJFi1L1gcrPm9Zzenq683OTJk0KPV/Tpk2dn9PS0krVK7ybJ9azq1SW74SEIxXQihUrJEmhoaHq2LFjoeN69+7t/Lxy5cpSnSMuLs75F2ze45wvICBA3bp1c87JyMgosNfijnMhvcK7edN6Lqlz/6Cx2/kr1Nd463r+5Zdf9NZbbykgIEBvvfVWqfpB5eZNa/qbb75RSkqKJOn666931hMTE7Vz50799ddfpeoLlY83refo6Gjn5z179hR6nLz/ISbvHFR+nljPrlJZvhPyL/sKaOvWrZKkZs2ayeFwFDquZcuW+eaU9hznH6eo82RmZmrnzp0FHqdq1aqqW7duoceoV6+eMz0vba/wbt60nkti/fr1OnPmTInOhcrHG9dzRkaG7r77bmVnZ+uRRx5h3cLgTWs676tRu3fvru+//149evRQeHi4oqOjVadOHV100UUaM2aMEhISStUjKgdvWs8DBw5UVFSUJOm1115TUlJSvvkHDhxwvmq9e/fuatu2bal6hXfzxHp2lcrynZBwpIJJTU11/h96YZfpnVOtWjWFhoZKkuLj40t1nrzjiztPgwYNCpyXd7u4Y+Q9Tml7hffytvVcEs8995zz8w033FDq+fBe3rqeX3rpJW3evFlNmjTR//t//69UvaBy87Y1vWXLFkk5//iePn26rrzySq1evdoYc/jwYb366qtq3769czx8g7et58DAQH322WeqXr26du/erXbt2umdd97RqlWrtGzZMk2bNk0dO3bUyZMnFRUVpRkzZpSqT3g3T61nV6ks3wkJRyqYxMRE5+ewsLBix5/7g3D27Fm3nefcOQo6z7njuLNXeC9vW8/F+e9//6uvvvpKktSxY0cNHTq0VPPh3bxxPe/atUtTpkyRJL3xxhsKDg4uVS+o3LxtTZ84cUKSlJKSokcffVSBgYF64YUXdODAAaWlpen333933nt/4MABXX311fybw4d423qWpMsuu0zr16/X2LFjtX//ft17773q2bOnYmJiNG7cOCUnJ+upp57S2rVrecaOj/HUenaVyvKdkHCkgklNTXV+DggIKHZ8YGCgJDnvwXXHec6do6DznDuOO3uF9/K29VyUbdu2OR8wFRwcrI8//lg2m61UfcK7eeN6vvfee5Wamqrrr79ef/vb30rVByo/b1vT5247SE9Pl2VZ+uSTT/Too4+qfv36CggI0MUXX6yPPvpIo0aNkpQTDr799tul6hXey9vWsyRZlqWvvvpKX331VYHPjTp79qxmzZqlBQsWlKpHeD9PrWdXqSzfCQlHKpigoCDn57xPsS7MuQdClfa/BpbmPHmfjH3+ec4dx529wnt523ouzKFDh3TllVcqMTFRNptN77//vlq3bl2qHuH9vG09f/jhh4qNjVV4eLj+/e9/l6oH+AZvW9N5j9OtWzfjoax5Pffcc85/fM+cObNUvcJ7edt6zs7O1rBhwzR27Fjt27dPd955p3777TelpKTo7NmzWrlypYYMGaKtW7fq9ttv19ixY0vVJ7ybp9azq1SW74SEIxVMlSpVnJ9LcqnRuf+KUpJLmMp6nrwPiDr/POeO485e4b28bT0X5MSJE7riiiu0d+9eSTkPTbvppptK1R8qB29az8eOHdO4ceMkSVOmTNFFF11Uqh7gG7xpTZ9/nCuvvLLQY9SoUUOdOnWSJG3cuLHMbyaDd/G29fzmm2/qyy+/lCRNnjxZ06dPV/v27RUUFKTQ0FD16NFD8+bN06233ipJeuWVV7iCxId4aj27SmX5Tkg4UsEEBQWpZs2aknLuly3KyZMnnYsr7wOfSiLvw3KKO0/eh+Wcf55zxynuGHmPU9pe4b28bT2fLzExUX/729/0xx9/SMr5kvnAAw+UqjdUHt60nqdPn67jx48rIiJCNWrU0KxZs/L9+uWXX5zjf/nlF2ed16H6Dm9a0+dvl/RBmFlZWTp+/HiJe4X38rb1/P7770vK+VL52GOPFXqMvA+Cnz59eql6hffy1Hp2lcrynZBwpAJq1aqVpJx7ZTMzMwsdt23btnxzSirvLQF5j1PUeRwOh5o1a1bgcU6fPq0jR44UeozDhw87X39a2l7h3bxpPeeVkpKiwYMHa+3atZKkRx55RE888USp+kLl4y3r+dwlq6dOndItt9yim266Kd+vvM9iePvtt5113vDhW7xlTUvSxRdf7PyclZVV5HHy7i/qFZioXLxpPZ97jWnr1q2NZ5OcLzIyUnXq1CnR+VC5eGI9u0pl+U5IOFIB9ezZU1LOJUfr1q0rdNzy5cudn3v06FGqc3Tu3Nn5wJy8xzlfenq61qxZk2/O+b0Wd5wL6RXezZvW8zkZGRkaOnSo81j33nuvpk6dWqqeUDl543oGiuJNa/ryyy93ft69e3eR5zy3Pzg4WNWrVy9Vv/Be3rSez4V2RX3pPefcrWEEfb7FE+vZVSrNd0ILFc4vv/xiSbIkWffcc0+BY7KysqxWrVpZkqyIiAgrPT291Oe58sorLUmWw+Gw4uPjCxwzc+ZMZy9Tp07Nt//w4cOW3W63JFkDBw4s9FwDBw60JFl2u906fPhwqXuF9/Km9WxZlpWZmWldd911znG33nqrlZ2dXep+UDl523ouyowZM5zzZ8yYUer5qBy8aU1nZmZatWrVsiRZLVq0KPTv5j179jj/bdKvX79S9wrv5U3ruU2bNpYkKzAw0Dp58mSh59q8ebPzOIMHDy51r/BenlrPBRkxYoTz3H/++Wex4yvLd0LCkQqqV69ezr90V69enW//1KlTnQt20qRJ+fbn/UdvQfsty7JiY2OdY4YMGWJlZmYa+48dO2Y1bNjQ+YftxIkTBR7n1ltvdR7nyy+/zLf/iy++cO4fMWJEsT87Kh9vWc/Z2dnWyJEjnccZOnRovuMA3rKei0M4gnO8aU2/+OKLzuM8//zz+fanp6dbf/vb34r8dwkqN29Zz48//rjzGCNHjiww7EtJSbFiYmKc4955552S/Sag0vDEei5IacMRy6oc3wkJRyqo3377zQoODrYkWWFhYdZzzz1n/fzzz9aSJUusUaNGORdWdHS0debMmXzzS/oH4cYbb3SOi4mJsebNm2etXbvW+uCDD6ymTZs697399tuFHmP//v3O/5LjcDisRx991FqxYoW1YsUK69FHH7UcDoclyapVq1ah6ToqN29Zz2PGjHGOadOmjbVu3Tpr8+bNRf6C7/GW9VwcwhGc401rOiUlxerQoYNz7C233GJ9//331rp166zZs2dbXbt2de4bNGgQV/75IG9Zz8eOHbNq167tHNezZ0/r008/tX799Vfrl19+sd5++22rdevWzv2tWrWy0tLSXPXbBC/hifWcmJhozZgxw/jVo0cP57yXXnrJ2Ld+/foCj1MZvhMSjlRg8+fPt8LDw50L8/xf0dHR1s6dOwucW9K/2JOTk61BgwYVeg673V6ilHHNmjVW3bp1Cz1O3bp1rTVr1pTxdwKVgTes50aNGhU6t7Bf8E3esJ6LQziCvLxpTR86dMjq2LFjkX83Dxo0qMAvCvAN3rKe169fbzVu3LjYf2tceuml1t69ey/gdwTezN3r+c8//yzVv32LWtfe/p2QB7JWYIMHD9amTZv08MMPKzo6WiEhIYqIiFCnTp304osvav369UW+baMkgoODtWDBAn322WcaMGCAateurYCAADVo0EA333yz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7tW6KSkpRY7r16+f/vOf/yg4OFipqamaPXu27rjjDjVv3lyRkZG69957tXHjxmLPl/c8wcHBpe4XAABfxwNZAQCATzgXlgQEBJTqVpnIyMhSn6tWrVqSVOyDVCVp9OjRuv766/X555/rxx9/1KpVq3T69GkdPHhQ77zzjt59911NmDCh0DfwnH+ec+cGAAAlRzgCAAB8Qo0aNSRJ6enpqlGjhvN5H+5wLqA4efJkicbXrl1bDz30kB566CFlZ2drw4YNmjNnjt544w2dOnVKzz77rDp37qyrr766wPl5z0M4AgBA6XFbDQAAKDWbzVbeLZRa+/btnZ8XLVrk1nO1bdtWknT69OlS385jt9vVoUMHPfPMM4qNjXXWz732tyA7duzId24AAFByhCMAAKDUzj1TQ5LS0tLKsZOSu/LKK+Xv7y9JevXVV5WZmem2c/Xq1cv5ee3atWU+TocOHZwPW01ISCh03LlzNG3a1K1XxAAAUFkRjgAAgFLL+wX8Ql5B60n169fXyJEjJUkbN27UPffcU2RA8tdff2n69OllOleXLl0UGBgoSYqLiyt03OzZs4t8aOuvv/7qvGWmcePGhY47d468oQwAACg5njkCAABKrX379goKClJqaqomTpwoh8OhqKgo59ti6tevXyHfmjJt2jStXr1av//+uz744AOtWbNGo0aNUseOHRUWFqZTp07pjz/+0OLFi7Vw4UK1bdtWd911V6nPExgYqH79+mnhwoWKjY3VU089VeC4Rx99VPfee6+uvvpqXX755YqOjlZoaKiOHz+ulStX6vXXX5ck+fn56e677y7wGDt37lR8fLwk6aqrrip1rwAAgHAEAACUQZUqVfTggw9q6tSp+u233zRw4EBj/9KlS9WnT5/yaa4IYWFhWr58uYYPH67vv/9eW7Zs0UMPPVTo+PDw8DKf69Zbb9XChQu1evVq7d27V1FRUQWOO3XqlD766CN99NFHBe4PCgrSO++8o44dOxa4//PPP5ckVa1aVX//+9/L3C8AAL6M22oAAECZvPDCC3rvvffUq1cvVa9eXX5+fuXdUolUr15d3333nWJjYzVy5Eg1b95cYWFhcjgcql69ujp37qzRo0dr4cKF+vHHH8t8nn/84x+qW7euLMvSzJkzCxzz008/afr06Ro2bJjatm2rWrVqyeFwKDw8XB06dNAjjzyiLVu26Lbbbiv0POeOfccddxjPggEAACVnsyzLKu8mAAAAKqMXXnhBjz/+uJo3b65t27Y5bztylZUrV6pXr17y9/fXjh07Cr06BQAAFI0rRwAAANzk/vvvV61atbRz507Nnj3b5cefMmWKJGnkyJEEIwAAXACuHAEAAHCjt956S/fdd59atWql33//3WVXj8TFxalr164KCwvTjh07eIUvAAAXgAeyAgAAuNGoUaN06tQppaWl6dChQ4qMjHTJcRMSEjRp0iR16NCBYAQAgAvElSMAAAAAAMCn8cwRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPi0/w9qb27anB7j9wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 434, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# continuous-time plant model\n", + "plantcont = ct.tf(1, (0.03, 1), inputs='u', outputs='y')\n", + "t, y = ct.step_response(plantcont, 0.1)\n", + "plt.plot(t, y, label='continouous-time model')\n", + "\n", + "# create discrete-time simulation form assuming a zero-order hold\n", + "simulation_dt = 0.02 # time step for numerical simulation (\"numerical integration\")\n", + "plant_simulator = ct.c2d(plantcont, simulation_dt, 'zoh')\n", + "\n", + "t, y = ct.step_response(plant_simulator, 0.1)\n", + "plt.plot(t, y, '.-', label='discrete-time model')\n", + "plt.legend()\n", + "plt.xlabel('time (s)');" + ] + }, + { + "cell_type": "markdown", + "id": "17955fa7", + "metadata": {}, + "source": [ + "Next we create a model of a sampled-data controller that operates as a nonlinear discrete-time system with a much shorter time step than the controller's sampling time `Ts`. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "654c2948", + "metadata": {}, + "outputs": [], + "source": [ + "def sampled_data_controller(controller, plant_dt): \n", + " \"\"\"\n", + " Create a (discrete-time, non-linear) system that models the behavior \n", + " of a digital controller. \n", + " \n", + " The system that is returned models the behavior of a sampled-data \n", + " controller, consisting of a sampler and a digital-to-analog converter. \n", + " The returned system is discrete-time, and its timebase `plant_dt` is \n", + " much smaller than the sampling interval of the controller, \n", + " `controller.dt`, to insure that continuous-time dynamics of the plant \n", + " are accurately simulated. This system must be interconnected\n", + " to a plant with the same dt. The controller's sampling period must be \n", + " greater than or equal to `plant_dt`, and an integral multiple of it. \n", + " The plant that is connected to it must be converted to a discrete-time \n", + " approximation with a sampling interval that is also `plant_dt`. A \n", + " controller that is a pure gain must have its `dt` specified (not None). \n", + " \"\"\"\n", + " assert ct.isdtime(controller, True), \"controller must be discrete-time\"\n", + " controller = ct.ss(controller) # convert to state-space if not already\n", + " # the following is used to ensure the number before '%' is a bit larger \n", + " one_plus_eps = 1 + np.finfo(float).eps \n", + " assert np.isclose(0, controller.dt*one_plus_eps % plant_dt), \\\n", + " \"plant_dt must be an integral multiple of the controller's dt\"\n", + " nsteps = int(round(controller.dt / plant_dt))\n", + " step = 0\n", + " def updatefunction(t, x, u, params): # update if it is time to sample \n", + " nonlocal step\n", + " if step == 0:\n", + " x = controller._rhs(t, x, u)\n", + " step += 1\n", + " if step == nsteps:\n", + " step = 0\n", + " return x\n", + " y = np.zeros((controller.noutputs, 1))\n", + " def outputfunction(t, x, u, params): # update if it is time to sample\n", + " nonlocal y\n", + " if step == 0: # last time updatefunction was called was a sample time\n", + " y = controller._out(t, x, u) \n", + " return y\n", + " return ct.ss(updatefunction, outputfunction, dt=plant_dt, \n", + " name=controller.name, inputs=controller.input_labels, \n", + " outputs=controller.output_labels, states=controller.state_labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "80836738", + "metadata": {}, + "outputs": [], + "source": [ + "# create discrete-time controller with some dynamics\n", + "controller_Ts = .1 # sampling interval of controller\n", + "controller = ct.tf(1, [1, -.9], controller_Ts, inputs='e', outputs='u')\n", + "\n", + "# create model of controller with a much shorter sampling time for simulation\n", + "controller_simulator = sampled_data_controller(controller, simulation_dt)" + ] + }, + { + "cell_type": "markdown", + "id": "30567aaa", + "metadata": {}, + "source": [ + "If the model is simulated with a short time step, its staircase output behavior can be observed. Because the controller model is nonlinear, we must use `ct.input_output_response`." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "39e9b769", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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D/7YN18GAICBa23vjLseey6v7X+dOKVM1QDAnyU2PWT37t0REbF3796oqqqK5cuXx/ve976YNGlSjBgxIk455ZS49dZbY/HixRER8cADD8RNN92UVDkAAPTivie3xu62zq7nqVTEuSeYGgJA+SU20qK2trYruHjLW94Sr3zlKw/ok06n42tf+1osX748IiJ+8pOfxJvf/OaCz9HY2Njn683NzbFw4cJ+VA0AMPws/2P+lNpTj5oQk8fUlqkaAPizxEKLMWPGdIUW+0ZT9OSEE06I6dOnx4YNG+Khhx7q1zlsYQoAcGjaOrJxxxpTQwCoTIlND9l/vYmDhQv7+m7evDmpcgAA6MFv1j4fO1o78tqEFgBUisRCixNOOKHrcWdnZx89//x6JmMfbQCAUvr3blNDFjSMj2nj68pUDQDkSyy0+Iu/+Iuux08//XSffdeuXRsREdOnT0+qHAAAuunozMZ/PJo/NWSxURYAVJDEQovzzz8/qqurIyL63BXk3nvvjeeffz4iIs4444ykygEAoJsHn9kW23a35bUtPnFqmaoBgAMlFlocfvjhccUVV0RExH/913/FjTfeeECfnTt3xoc//OGu5+973/uSKgcAgG7+/Y+b8p7PnTo2jjx8ZJmqAYADJRZaRER87nOfiyOPPDIiIi655JK48sor4+67747f//73cf3118fChQtj5cqVERHx/ve/P0499dQkywEA4H9ks7kDQovz5pkaAkBlSXTly0mTJsW///u/x/nnnx9PPfVUfPvb345vf/vbB/T7q7/6q/j7v//7JEsBAGA/jzRuj8079+a1/S9TQwCoMImOtIiIOP7442PlypXxta99LV7xilfEhAkToqamJurr6+Otb31r3HXXXXHdddd1rX8BAEDylq/OH2Vx7OTRcczk0WWqBgB6VpI9RkeNGhUf+9jH4mMf+1gpTgcAQB9yuVws7zY1xK4hAFSixEdaAABQWVZveDE2vNCS12ZqCACVSGgBADDMdB9lcdThI+P4qWPKVA0A9E5oAQAwjORyB+4asvjEqZFKpcpUEQD0TmgBADCM/Om5nbFu6+68NutZAFCphBYAAMNI911Dpo+vi5fVjytTNQDQN6EFAMAwsvyPzXnPX3fCFFNDAKhYQgsAgGHi6S274onnduW1LZ5naggAlUtoAQAwTHRfgHPSmBFx8pGHlaka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73hH13udffbZuV/+8pe5Bx98MHfdddfljj766K7Xvve97xXx07FP0tf5hhtu6Pri87rXvS53zTXX5O66667cww8/nPvVr36Ve+tb39p1jpEjR7rBSUipfp67+9WvfpWLiNzkyZP9g1kCpbrOL7zwQu7kk0/uer/Xv/71uRtuuCH3m9/8JrdixYrcj370o9yHP/zhXH19vZ/pIivFNf7pT3/a9T41NTW5j3zkI7nbbrst99///d+5H//4x7lFixZ1vT516tTcCy+8UORPObztf4PR0NCQO/fccxO7yfEdrHxKcZ19Byu/Uv48d+c7WGUSWhTZWWedlYuIXCaTyT3wwAMHvP7Vr3616wfgc5/73IDOcc8993S9xxvf+MZcR0dH3utbtmzJHXnkkbmIyB122GG57du3D+g89C7p63zjjTfm3ve+9+XWr1/fa59vfetbXed49atf3e9zcHCl+HnubufOnbmGhoZcROR++MMf+gezBEp1nS+55JKu89x444299stms7n29vYBn4cDleIan3jiiV3vceutt/bY501velNXn6VLlw7oPPTsM5/5TO6WW27Jbdq0KZfL5XLr1q1L5CbHd7DyKsV19h2s/Er189yd72CVS2hRRA8++GDX/9zve9/7euzT2dmZO/7447v+MWtra+v3ec4777xcROSqqqpyjY2NPfb5yU9+0lXL17/+9X6fg96V6joX4pRTTun6bcDWrVsTOcdwVa7rfOWVV3b99i6Xy/kHM2Glus733Xdf13muvvrqQy2bfijFNX7xxRe7znHSSSf12m/VqlVd/S6++OJ+nYP+Seomx3ewylKqm9me+A5WOqW6zr6DVS4LcRbRL3/5y67H7373u3vsk06n413veldERGzfvj3uueeefp1j165dceedd0ZExDnnnBP19fU99nvTm94UY8eOjYiIm266qV/noG+luM6F2rcwUDabjXXr1iVyjuGqHNf5wQcfjH/8x3+Mmpqa+M53vnNI70VhSnWdv/3tb0dExOjRo+Oqq67q9/EMXCmucVtbW9fjWbNm9drv6KOP7nq8d+/efp2D8vMdjP35Dja0+A5W2YQWRXTfffdFRMSoUaPi5JNP7rXfmWee2fV4xYoV/TrHgw8+2PVFZ//36a6mpiZe+cpXdh3T3t7er/PQu1Jc50Lt/6U3nfbjXEylvs4dHR3x3ve+N7LZbHziE5+I4447bsDvReFKcZ3b2tri5ptvjoiIxYsXx+jRoyPipWu+fv36ePbZZ/NueimuUlzjiRMnxoQJEyIiYu3atb32e/rpp7sez549u1/noPx8B2N/voMNHb6DVT4/YUX02GOPRUTEMcccE5lMptd+c+bMOeCY/p6j+/v0dZ6Ojo548skn+3UeeleK61yoe++9NyIiMplMHHPMMYmcY7gq9XX++te/HqtWrYqjjz46PvWpTw34feifUlznVatWRWtra0REnHbaabFp06Z497vfHePHj48ZM2bEUUcdFePGjYvzzjsvHnjggQF8CvpSqp/l9773vRER8fDDD8fy5ct77POFL3whIiKqqqriiiuu6Pc5KC/fwdif72BDh+9glU9oUSStra2xdevWiIhehwvuc9hhh8WoUaMiIqKxsbFf59m//8HO09DQ0ONxDFyprnMhbrvttvjDH/4QERGve93ruoaicuhKfZ3Xrl0bn//85yMi4p/+6Z+itrZ2QO9D/5TqOq9ZsybvnPPmzYvrr78+du/ende+fPnyOOOMM+Kb3/xmv96f3pXyZ/lv//Zv47WvfW1ERFx00UXxsY99LJYvXx4PPfRQ/PSnP42zzjorfv7zn0dVVVV861vfiuOPP77f56C8fAdjH9/Bhg7fwQYHoUWR7Ny5s+vxvqG/fdn3xWjXrl2JnWffOQZyHnpWqut8MNu2bYsPfvCDEfHSb+z2/faO4ij1dX7f+94XLS0t8da3vjXOPffcAb0H/Veq67xt27aux5/73Odi69at8YY3vCF+97vfRWtrazz33HPxT//0TzF27NjIZrPx0Y9+tNff1NM/pfxZHj16dCxfvjy+973vRX19fSxdujTOO++8WLhwYbztbW+Le++9N970pjfF/fffHx/4wAf6/f6Un+9gRPgONtT4DjY4CC2KZN/Q34iX5jIezIgRIyIioqWlJbHz7DvHQM5Dz0p1nfvS2dkZ73znO2P9+vUREfF//+//jZe//OVFe39Ke51/+MMfxh133BFjx46Na665pt/HM3Clus77j6jYu3dvvPGNb4ybb745Tj755BgxYkRMnjw53v/+98dtt90W6XQ6crlcfPzjH49cLtev83CgUv+d/bvf/S5+8pOf9LquxR133BE/+MEPYseOHQN6f8rLdzB8BxtafAcbPIQWRbL/UKJCFlTb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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 414, + "width": 534 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "time = np.arange(0, 1.5, simulation_dt)\n", + "step_input = np.ones_like(time)\n", + "t, y = ct.input_output_response(controller_simulator, time, step_input)\n", + "plt.plot(t, y, '.-');" + ] + }, + { + "cell_type": "markdown", + "id": "1020f95a", + "metadata": {}, + "source": [ + "## simulating a closed-loop system\n", + "\n", + "Now we are able to construct a closed-loop simulation of the full sampled-data system. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f8675193", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 417, + "width": 547 + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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Ma655po+f7bff//9/n9RCJGI5/mRRx4x3G53r8/vaaedZmzdujVGXxU69fZ3ftttt8V0Ll6HJU8inmdehyVfIn+eu8PrsNTCyhGL2rp1q+bMmaPjx48rLy9PDzzwgN566y298sor+ud//mdJ0kcffaQrr7yyX78ZnDdvnlavXi1JmjZtmp5//nlt3LhRy5Yt0+jRo+X3+3X//fdr6dKlMfm6ECzez/Phw4fV1tYmp9Opyy+/XI8++qheffVVbd68WS+++KK+/OUvS5IOHDigL33pS9qyZUssvzz8XaJ+ns1eeukl/e///q+Kiopidk30LFHP8/HjxzVjxgy98MILkqQrr7xSTz31lN5++21VVFTo6aef1l133aXS0tKYfF0IlojneeXKlbr77rvl9Xrl8Xj0rW99S2vWrNFf//pXPfPMM5oyZYokae/evbriiit0/PjxmH19CFZWVqbLLrssbtfndVhqiNfzzOuw1BLvn2czXoeloGSnM4jOJZdcYkgy3G638dZbb4V8/qc//WkggfzBD34Q1Ryvv/564BpXXXWV4fV6gz5/6NAh49RTTzUkGQMHDjSOHj0a1TzoWbyf5xUrVhgLFiww9u7d2+OY//zP/wzMMX369IjnQN8S8fNs1tjYaJSVlRmSjN/97nf8xiIBEvU833LLLYF5VqxY0eM4v99vdHR0RD0PupeI5/nMM88MXGP16tXdjrnuuusCYxYvXhzVPOje/fffb7z00kvG/v37DcMwjD179sTlN828DkuuRDzPvA5LvkT9PJvxOiw1EY5Y0MaNGwM/QAsWLOh2jM/nM84444zAf5jt7e0RzzNr1ixDkuFyuYyqqqpuxzz77LOBe3nkkUcingM9S9TzHI7zzz8/sHy3vr4+LnOkq2Q9z9/85jcNSca0adMMwzD4TznOEvU8v/HGG4F5Fi1a1N/bRoQS8TwfP348MMe5557b47itW7cGxl1//fURzYHIxOvNFK/DUkui3jR3h9dhiZOo55nXYamJshoLev755wOPb7/99m7HOJ1O3XrrrZKko0eP6vXXX49ojhMnTuiVV16RJM2YMaPH5dfXXXedCgoKJEmrVq2KaA70LhHPc7g6m0P5/X7t2bMnLnOkq2Q8zxs3btR//dd/yePx6Ne//nW/roXwJOp5/tWvfiVJysvL08KFCyM+H/2TiOe5vb098HjU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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plantcont = ct.tf(.5, (0.1, 1), inputs='u', outputs='y')\n", + "u_summer = ct.summing_junction(inputs=['-y', 'r'], outputs='e')\n", + "\n", + "plant_simulator = ct.c2d(plantcont, simulation_dt, 'zoh')\n", + "# system from r to y\n", + "Gyr_simulator = ct.interconnect((controller_simulator, plant_simulator, u_summer), inputs='r', outputs=['y', 'u'])\n", + "\n", + "# simulate\n", + "t, y = ct.input_output_response(Gyr_simulator, time, step_input)\n", + "y, u = y # extract respones\n", + "plt.plot(t, y, '.-', label='y')\n", + "plt.legend()\n", + "plt.figure()\n", + "plt.plot(t, u, '.-', label='u')\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "fb9c601d", + "metadata": {}, + "source": [ + "## time delays\n", + "\n", + "Given that all of the interconnected systems are being simulated in discrete-time with the same small time interval `simulation_dt`, we can construct a system that implements time delays by suitable choice of $A, B, C, $ and $D$ matrices. For example, a 3-step delay has the form \n", + "\n", + "$x[k+1] = \\begin{bmatrix}0 & 0 & 0\\\\ 1 & 0 & 0\\\\ 0 & 1 & 0\\end{bmatrix}x[k]+\\begin{bmatrix}1\\\\0\\\\0\\end{bmatrix}u[k]$
\n", + "\n", + "$~~~~~~~y[k]=\\begin{bmatrix}0 & 0 & 1\\end{bmatrix}x[k]$ \n", + "\n", + "The following function creates an arbitrarily-long time delay system, up to the nearest $dt$. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "92767723", + "metadata": {}, + "outputs": [], + "source": [ + "def time_delay_system(delay, dt, inputs=1, outputs=1, **kwargs):\n", + " \"\"\"\n", + " creates a pure time delay discrete-time system. \n", + " time delay is equal to nearest whole number of `dt`s.\"\"\"\n", + " assert delay >= 0, \"delay must be greater than or equal to zero\"\n", + " n = int(round(delay/dt))\n", + " ninputs = inputs if isinstance(inputs, (int, float)) else len(inputs)\n", + " assert ninputs == 1, \"only one input supported\"\n", + " A = np.eye(n, k=-1)\n", + " B = np.eye(n, 1)\n", + " C = np.eye(1, n, k=n-1)\n", + " D = np.zeros((1,1))\n", + " return ct.ss(A, B, C, D, dt, inputs=inputs, outputs=outputs, **kwargs)" + ] + }, + { + "cell_type": "markdown", + "id": "5a5e6f76", + "metadata": {}, + "source": [ + "The step response of the time-delay system is shifted to the right." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "e82445c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$$\n", + "\\begin{array}{ll}\n", + "A = \\left(\\begin{array}{rllrllrllrllrll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "&\n", + "B = \\left(\\begin{array}{rll}\n", + "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "\\\\\n", + "C = \\left(\\begin{array}{rllrllrllrllrll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "&\n", + "D = \\left(\\begin{array}{rll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "\\end{array}~,~dt=0.02\n", + "$$" + ], + "text/plain": [ + "['ud']>" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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xm41AAAAdGCUSOE1ly/IauYIAAAAHQhHKLzKrXy97QEAAPgro0QKr8VWvgAAAHRDOELhWZAVAACA7ghHKLySBVkBAADohlEihVcqmznSpKwGAACADgYtHHn++edz9tlnZ8qUKRkzZkw233zzTJ06NZdddlmWL1/eL3088cQT+cQnPpFdd901m2yySUaMGJGtttoq06dPzxVXXJHXXnutX/qhupTK1hxpUFYDAABAB42D0cmcOXPy/ve/P6+++mr715YvX5558+Zl3rx5ufrqq3Prrbdmxx13XO8+Lr/88px77rkplUrrfH3RokW5++67c/fdd+dLX/pSbr755vzN3/zNevdD9SkPR5rsVgMAAEAHAz5KfOSRR3L00Ufn1VdfzdixY3PxxRfnvvvuy5133pkPf/jDSZKnn346hx9+eJYuXbpefVx//fU5++yzUyqVMmLEiJxxxhmZM2dO/u///i/XXXdd9tlnnyTJc889l3e84x3rhDQUX8VWvspqAAAA6GDAZ46cfvrpWb58eRobG3P77bdn2rRp7c8dcMAB2WmnnXLOOefkqaeeyhe+8IVccMEFfe7joosuan98ww035PDDD2//+9SpU3PcccflPe95T2644YYsXLgw11xzTc4888wNuzCqRvmaI8pqAAAA6GhAZ47Mmzcvd999d5Lk5JNPXicYWeuss87KlClTkiRf/OIX09zc3Kc+lixZkscffzxJsvvuu68TjHT0b//2b+2P77vvvj71QXUr362myW41AAAAdDCgo8Qbb7yx/fFJJ53U+QnU1+f4449PkixevLg9TOmt1atXtz/ubs2SN77xje2PV61a1ac+qG7la440mjkCAABABwMajtxzzz1JkjFjxmSPPfbost1+++3X/vjee+/tUx9bbrllNt988yTJs88+22W73/72t+2PJ0+e3Kc+qG7lZTXWHAEAAKCjAV1z5Mknn0ySTJo0KY2NXXe1yy67VLymLz7ykY/kkksuycMPP5zbbrsthx56aEWbteuSNDQ05EMf+lCf+1iwYEG3zy9cuLDPx2RwlJfVNNqtBgAAgA4GLBxZuXJlFi1alCQZP358t20322yzjBkzJsuWLcv8+fP73NcnP/nJPPjgg7njjjty1FFH5eMf/3gOPPDAbLnllnn22Wfz1a9+NXPnzk1DQ0O+/OUvt69x0hcTJkzo82sYHipmjiirAQAAoIMBC0dee+219sdjx47tsf3acGR9tvMdO3ZsbrvttsyaNSuXXHJJLr/88lx++eXrtHn3u9+dc845J29729v6fHyqW3PFVr5mjgAAAPBXAzpzZK0RI0b02H7kyJFJkhUrVqxXfw8++GC+853vdLnuyB133JHXve51mTJlSjbZZJM+H7+nGS0LFy7M1KlT+3xcBl5L+YKs1hwBAACggwELR0aNGtX+uOOOMl1Zu4PM6NGj+9zX97///XzgAx/IqlWr8jd/8zf59Kc/nb//+7/PxhtvnPnz5+e73/1uLrroonz1q1/NT3/609xxxx15/etf36c+eioNYvhqtlsNAAAA3Riw+oKNN964/XFvSmWWLVuWpHclOB29+OKLOfHEE7Nq1aq8+c1vzn333Zcjjzwym2++eZqamrLjjjvmvPPOy49+9KPU1dXlV7/6VT7xiU/07WKoahUzRyzICgAAQAcDNkocNWpUttxyyyQ97/SyePHi9nCkrwufzp49u/21M2bMyJgxYzptd+CBB+bAAw9Mktxwww1ZvHhxn/qhOrW1tVWEI03KagAAAOhgQH+FvnZXmGeeeSalUqnLdk899VTFa3qr49a/u+++e7dt99hjjyRJa2trfv3rX/epH6pTc9lONUnSoKwGAACADgY0HNlnn32SrCmZeeihh7psN3fu3PbHe++9d5/6aGz867Ip3QUwSdLc3Nzp6yiu8lkjSdJktxoAAAA6GNBR4pFHHtn+eObMmZ22aW1tzbXXXpskGTduXKZPn96nPnbYYYf2x/fcc0+3bX/6058mSerq6jJx4sQ+9UN1am5trfia3WoAAADoaEDDkalTp2bfffdNklxzzTX5+c9/XtHm8ssvby+NOe2009LU1LTO87NmzUpdXV3q6upy4YUXVrz+8MMPT13dmsHuxRdfnD/84Q+dnstVV12VBx98MEny9re/PVtsscV6XxfVo6SsBgAAgB4MeG3Jl770pey9995ZsWJFDj744MyYMSPTp0/PihUrMnv27Fx11VVJksmTJ+ess87q8/F32WWXnHTSSfn617+eP/zhD9ltt91y+umnZ999923fynf27Nm57rrrkiQNDQ35j//4j369RoavUiczR5rsVgMAAEAHAx6O7Lbbbvnud7+bD3zgA1myZElmzJhR0Wby5MmZM2fOOtv/9sWVV16Z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GDGix/YjR45MkqxYsaJP/Sxbtqz98apVq3LEEUfkpptuyh577JGRI0dm6623zkc/+tHMmTMn9fX1aWtryznnnJO2trZujkq1K7WWL8hq5ggAAACdG7CZI6NGjWp/3JsFUVetWpUkGT169Hr3kySf//znU9/JLIF99tkn7373u/P9738/jz/+eB5//PHsuuuuve6np3KfhQsXZurUqb0+HgOrfLcaC7ICAADQlQELRzbeeOP2x70plVk7A6Q3JThd9bPDDjtk55137rLtIYccku9///tJknnz5vUpHOlp3RSGl1JrWVmNrXwBAADowoCNGEeNGpUtt9wySc+LmS5evLg9HOnr2h4d2/cUYHRs+9JLL/WpH6pL+cwRZTUAAAB0ZUB/nT5lypQkyTPPPJNSqdRlu6eeeqriNb315je/uf1xS0tLt207Pt/d1sJUv/KZIw0WZAUAAKALAzpi3GeffZKsKZl56KGHumw3d+7c9sd77713n/rYfvvt84Y3vCFJ8tvf/rbbth2f32677frUD9WlYkFWa44AAADQhQENR4488sj2xzNnzuy0TWtra6699tokybhx4zJ9+vQ+9/Oe97wnSfLiiy/mvvvu67LdDTfc0P5433337XM/VI/ysppGZTUAAAB0YUDDkalTp7aHENdcc01+/vOfV7S5/PLL8+STTyZJTjvttDQ1Na3z/KxZs1JXV5e6urpceOGFnfZz+umnt+9a8//+3/9bZ3vftb71rW/l7rvvTpIcfvjhFlgtuFJL2YKsymoAAADowoCPGL/0pS9l9OjRKZVKOfjgg/PZz342999/f37yk5/klFNOyTnnnJMkmTx5cs4666z16uMNb3hDPvOZzyRJHnrooUydOjXf+MY38tBDD+Wuu+7Kxz/+8Zx44olJkk022SRXXHFFv1wbw1d5WY2ZIwAAAHRlwFcl3W233fLd7343H/jAB7JkyZLMmDGjos3kyZMzZ86cdbbl7at/+Zd/ySuvvJJLL700TzzxRHsY0tHWW2+dG2+8MTvttNN690N1qAhHzBwBAACgC4MyYjziiCPy6KOP5owzzsjkyZOz0UYbZdy4cdlzzz1z6aWX5he/+EUmTZq0wf189rOfzc9+9rN88IMfzMSJEzNy5Mhsuumm2WuvvXLRRRfl17/+daZNm9YPV8Rw11xRVmPmCAAAAJ2ra2tra+u5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akyOAgAAoHsDPnJ85JFHcvTRR+fVV1/N2LFjc/HFF+e+++7LnXfemQ9/+MNJkqeffjqHH354li5d2m/9/uhHP8oPfvCDbL311v12TIa/5rLdaswcAQAAoCcDHo6cfvrpWb58eRobG3P77bdnxowZmTZtWg444IBcddVV+dznPpckeeqpp/KFL3yhX/pcunRpTj311CTJZZdd1i/HpDpUzhwRjgAAANC9AQ1H5s2bl7vvvjtJcvLJJ2fatGkVbc4666xMmTIlSfLFL34xzc3NG9zvjBkzMn/+/EyfPj0f/OAHN/h4VI+KrXztVgMAAEAPBnTkeOONN7Y/Pumkkzo/gfr6HH/88UmSxYsXt4cp6+uBBx7If/3Xf2XEiBH56le/ukHHovqUyspqGpTVAAAA0IMBDUfuueeeJMmYMWOyxx57dNluv/32a3987733rnd/pVIpH/nIR9La2pp//dd/zc4777zex6I6lcpnjiirAQAAoAcDulvNk08+mSSZNGlSGhu77mqXXXapeM36uOyyy/LII4/kjW98Y2bMmLHex+nMggULun1+4cKF/dof66d85ojdagAAAOjJgIUjK1euzKJFi5Ik48eP77btZpttljFjxmTZsmWZP3/+evX37LPP5jOf+UyS5Morr8yoUaPW6zhdmTBhQr8ej4FRPnNEWQ0AAAA9GbBfq7/22mvtj8eOHdtj+zFjxiTJem/ne8opp2TFihU55phjcvDBB6/XMah+pRZlNQAAAPTNgM4cWWvEiBE9th85cmSSZMWKFX3u69prr80dd9yRTTbZJFdccUWfX98bPc1oWbhwYaZOnTogfdN7pdbyBVmV1QAAANC9AQtHOpa1rF69usf2q1atSpKMHj26T/0sWrQoZ511VpLk4osvzjbbbNOn1/dWT6VBDA8VM0eU1QAAANCDAfu1+sYbb9z+uDelMsuWLUvSuxKcjs4888wsWrQoe+65Zz72sY/17SQpnPI1RyzICgAAQE8GdObIlltumUWLFvW408vixYvbw5G+LHz6xz/+Md/85jeTJAcccECuv/76btu/9NJLmT17dpJkhx12yNve9rZe90V1qNitxswRAAAAejCgW/lOmTIl99xzT5555pmUSqUut/N96qmn1nlNb3Us1/nc5z7XY/snn3wyxx13XJLkhBNOEI4UUHPFzBHhCAAAAN0b0JqD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2cyRBmU1AAAA9JJwhEIoD0ea7FYDAABALxlBUgilsrIaM0cAAADoLeEIhVAq363GmiMAAAD0knCEQii1li/I6q0NAABA7xhBUggWZAUAAGB9CUcohPKyGlv5AgAA0FvCEQqhvKym0W41AAAA9JIRJIVQsSCrshoAAAB6SThCIZSvOdJoQVYAAAB6yQiSQii1lJXVWHMEAACAXhKOUAjN5TNHlNUAAADQS8IRCqGlIhzx1gYAAKB3jCCpem1tbRXhiK18AQAA6C3hCFWvuWynmiRpUFYDAABALwlHqHrls0aSpMluNQAAAPSSESRVr7m1teJrZo4AAADQW4MWjjz//PM5++yzM2XKlIwZMyabb755pk6dmssuuyzLly/foGMvWbIks2fPzoc//OHsvvvuGTduXEaMGJGtttoq+++/fy677LL8+c9/7p8LYdgpdVJWYytfAAAAequura2tcmTZz+bMmZP3v//9efXVVzt9fuedd86tt96aHXfcsc/Hvu2223LUUUdl1apV3bZ73etel+985zuZPn16n/vojQULFmTChAlJkvnz52f8+PED0g+VXnptZaZefOc6X/vF+QdlszEjhuiMAAAAGCgDMf4e8JkjjzzySI4++ui8+uqrGTt2bC6++OLcd999ufPOO/PhD384SfL000/n8MMPz9KlS/t8/D/96U9ZtWpV6uvrc8ghh+SKK67IXXfdlYcffjg333xzjjnmmCTJiy++mHe+85355S9/2Z+XxzDQ2cyRBjNHAAAA6KXGge7g9NNPz/Lly9PY2Jjbb78906ZNa3/ugAMOyE477ZRzzjknTz31VL7whS/kggsu6NPxm5qacsopp2TGjBl5wxvesM5zu+22W4444ojsvffe+X//7/9l+fLlOeuss3LnnXd2cTSqUacLstZbTgcAAIDeGdCymnnz5mXq1KlJklNOOSX//d//XdGmtbU1b3nLW/Lkk09ms802y4svvpimpqZ+P5e99torDz74YOrr6/PSSy9liy226NfjK6sZOs++vDQHXD53na/95uJD7VgDAABQQFVXVnPjjTe2Pz7ppJM6P4H6+hx//PFJksWLF+fuu+8ekHPZf//9k6wJY373u98NSB8MjVInM0ca7VYDAABALw1oOHLPPfckScaMGZM99tijy3b77bdf++N77713QM6l44Kt9UouCqV8zZGG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MmbMmIwdOzYjRowY6lNKIhyhylWsOaKsBgCAKtTW1pZFixZl0aJFQ30qMODWhoAvvvhittpqq2yxxRapqxvasZxwhKpWvuZIo91qAACoQgsXLsyrr766ztfq6urS0NAwRGcEA6OlpSVtbX8dx7388stZvXp1tt122yE8K+EIVa58K18zRwAAqDYrV65cJxjZYostsskmm2TkyJFD/tt06G9tbW1ZtWpVlixZkj/96U9JkldffTVbbLFFRo4cOWTn5dfsVLVmW/kCAFDl/vznP7c/3nrrrbP11ltn1KhRghEKqa6uLqNGjWp/r6+1ePHiITwr4QhVrqVi5oi3NAAA1WX58uXtj8eNGzd0JwKDrOP7vePPwVAwkqSqlc8caTJzBACAKtPS0pIkaWxstMYINaWhoaH9Pb/252CoCEeoauW71TRYcwQAAKBqDJfyMeEIVa2irMZuNQAAAPSRkSRVrbl8K18zRwAAAOgj4QhVrdRiQVYAAAA2jJEkVa3UakFWAAAANoxwhKpmQVYAAKCvZs2albq6utTV1eX3v//9UJ8Ow4BwhKpWOXPEWxoAAIC+MZKkqlWuOWLmCAAAQEf7779/6urqsv/++w/1qQxbwhGqWvnMkQZrjgAAAD048cQT09bWlra2tkycOHGoT4dhQDhCVasoq7FbDQAAAH1kJElVqyirMXMEAACAPhKOUNWay3arseYIAAD0o9bWZNmyNf8tkO52qylfn+MPf/hDzjzzzEyaNCmjR4/OFltskUMOOSS33XZbl8f//e9/3378WbNmJUm+973v5R/+4R+y9dZbZ/To0dlll11y7rnnZvHixV0e58QTT0xdXV2PpT9dXc/a18+dOzdJMnfu3PZ2a/8oK1pDOEJVa2ktnzniLQ0AABvskUeSE05INt44GTt2zX9POGHN12vIvffem7e+9a254oor8tvf/jYrV67MK6+8kttvvz2HHXZYLrvssl4d5+STT87RRx+dO++8My+//HJWrlyZp59+Opdeemne/OY354knnhjgK6EnRpJUtfI1R8wcAQCADfSd7yR77plce22yfPmary1fvubve+655vkasHDhwhx11FFpaGjIJZdcknvvvTcPPPBAvvCFL2TcuHFJkvPOOy+/+tWvuj3OlVdema9//euZOnVqvvOd7+TBBx/MrbfemmOOOaa9n0MOOSRLlizp92u4+OKL89hjj2XPPfdMkuy555557LHH1vlz++2393u/1ahxqE8ANkSzrXwBAKgFra3Jn/408P08/nhy/PFJqdT586XSmudf//rkLW8Z2HPZYotkCDdc+PWvf53tt98+P/vZz7Lddtu1f32vvfbKXnvtlb//+79PqVTKVVddlS996UtdHmfevHk57LDDctNNN6Wx8a9D8EMPPTRvfvObc8EFF2TBggW56KKL8vnPf75fr2G77bbLdtttlzFjxiRJxowZk7cM9H2rUsIRqlpL+cwRZTUAABTRn/6UbL31UJ/FGqVScsABA9/PSy8lW2018P104z//8z/XCUbW2mefffK2t70t999/f+65555ujzFy5Mh87WtfWycYWeuTn/xkrr/++jz++OO55ppr8u///u8ZOXJkv50/vWckSVWzICsAADAQxo0bl8MPP7zL5/fYY48kybPPPtvtcQ4++OBsu+22nT5XX1+fE044IUmyePHiPPzww+t5tmwo4QhVrWRBVgAAYADstNNOqe+mrGfzzTdPkrz22mvdHmevvfbq9vmpU6e2P3788cf7cIb0JyNJqlqpbOZIU4OZIwAAwIbbaKONun1+bXDS2sM2x1v3UA71ute9rv3xK6+80suzo79Zc4SqVr5bTYOyGgAAimiLLdaswTHQPv7x5Prre253zDHJf/7nwJ7LFlsM7PEHSV1d92OUtra2bp9ncAhHqGoVC7IO4WrWAAAwYOrrB2dx0hkzkhtu6Hq3miRpbEzOO2/IF0utFi+++GK3z7/UIfRaW6qzVm9npyxbtmw9z461jCSpauVb+SqrAQCADfDWtybXXrsmAOlMY+Oa59/61sE9ryo2b968Xj9fvs3uxhtvnCT585//3O0xnn766W6f72n2CsIRqlz5miPKagAAYAMdd1zy4IPJCScka9fd2GijNX9/8ME1z9Nrt99+exYuXNjpc62trfnGN76RJNlss82y++67r/P8DjvskGTNoq9dBSCrV6/OD37wg27PYdSoUUmSVatW9enca4lwhKpWvuZIk91qAABgw731rcmsWclrryVLl67576xZZoysh1WrVuWUU05JS0tLxXOXXHJJHnvssSTJP//zP2fkyJHrPL/ffvu1P7788ssrXt/W1pbTTjstf/zjH7s9h2222SbJmm2HrXHSOWuOUNUqtvI1cwQAAPpPfX0yZsxQn0VV23PPPfOjH/0oe++9d84444zstNNOeemll/KNb3wjs2fPTpKMHz8+559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95l+fwd3/3d5k5c2ZeeumlnHnmmfnABz6QTTfdNEnS1NSU7bfffmAuvooIR6hq5WU1jdYcAQAAhpFTTz01c+fOzaxZs3LsscdWPL/NNtvkxz/+cXtYUW7mzJnZb7/92gOVtWU4a5155pnZdddduw1Hjj322Hz2s5/Ns88+my9+8Yv54he/2P7c9ttvn9///vfrdW1FogaBqlY5c8RbGgAAGF5mzpyZ6667Lvvvv3+22GKLjBw5MpMnT84555yTX/3qV3nTm97U5Wt32WWXPPzww/noRz+a7bffPiNGjMhWW22Vd7zjHZkzZ06n5Tblxo4dm/vuuy+nnXZapkyZko3WriVDu7o2BUf9YsGCBZkwYUKSZP78+Rk/fvwQn1FtmDTj1nXWHbnlE/vkLdt1nrgCAMBw9Jvf/CalUimNjY3Zaaedhvp06Ae///3v2xdTnTlzZk488cShPaFhbH3e/wMx/vZrdqpWW1ubBVkBAADYYEaSVK2W1spJT9YcAQAAoK+EI1St8lkjid1qAAAA6DvhCFWruaW14muNymoAAADoIyNJqlZnZTVNZo4AAADQR41DfQKwvppbKsORBuEIAAAwxCZOnBgbw1YXM0eoWp0vyOotDQAAQN8YSVK1OltzpMluNQAAAPSRcISq1dluNcpqAAAA6CvhCFWrpbWTmSP13tIAAAD0jZEkVat8Qdb6uqTezBEAAAD6SDhC1SqVhSONZo0AAACwHowmqVqlsrKaRouxAgAAsB6EI1St8gVZLcYKAADA+hCOULXKt/JtavB2BgAAoO+MJqlaLa3la46YOQIAAEDfCUeoWpULsgpHAAAA6DvhCFWrvKymUVkNAAAA68FokqpVUVZjtxoAAADWg3CEqtVszREAAAD6gXCEqtXSWlZWU+/tDAAAQN8ZTVK1mssWZG1SVgMAAFSRiRMnpq6uLieeeOJQn0qf7L///qmrq8v+++8/1KfSb4QjVK3y3WoalNUAAACwHoQjVK2Kshq71QAAALAejCapWspqAAAA6A/CEapWqWzmSIMFWQEAoF+1trZl+epSWst2iiyK1atX58orr8z06dOz1VZbZcSIEXn961+fww47LN/61rfSWjbmWKu3a25ceOGFqaurS13dur/IXfv65557LknyjW98o73d2j8dj/373/++/euzZs1Kknzve9/LP/zDP2TrrbfO6NGjs8suu+Tcc8/N4sWLuzyfE088MXV1dZk4cWK35z1r1qz2/n7/+99XvH7u3LlJkrlz51acd0/HHq4ah/oEYH2Vyv6BbrLmCAAA9Isn/rgkV9/7bG577IWsaG7J6KaGHLrr6/OhfXbMm7bdZKhPr18899xzOfTQQ/Pkk0+u8/UXX3wxt912W2677bb8z//8T2666aZsvvnmQ3SWnTv55JPz9a9/fZ2vPf3007n00ktz7bXX5o477sib3vSmITq76uRX7VQtC7ICAED/u+mXf8g/fuXe3PDwH7KiuSVJsqK5JTc8vObrN/3yD0N8hhtu6dKlOeCAA9qDkSOPPDI333xzHnzwwXzve9/LfvvtlyS599578853vjMtLS392v/MmTPz2GOPZdttt02SvOtd78pjjz22zp+ZM2d2+torr7wyX//61zN16tR85zvfyYMPPphbb701xxxzTJJk4cKFOeSQQ7JkyZJ+Peckufjii/PYY49lzz33TJLsueeeFed9++2393u/g8HMEapWqWXdKW5NFmQFAKCgWlvbsnj56gHv59cvvpYzr38kLV2U0ZRa23Lm9Y9k641HZvLrNh7Qc9lsoxGpH6BfgH7605/Os88+myT51Kc+lYsuuqj9uT322CPvec978sEPfjDf/va38/Of/zxXXXVVPvrRj/Zb/zvssEOSpKmpKUkybty4vOUtb+nVa+fNm5fDDjssN910Uxob/zqkP/TQQ/PmN785F1xwQRYsWJCLLroon//85/vtnJNku+22y3bbbZcxY8YkScaMGdPr8x7uBi0cef755/PlL385c+bMyfPPP5+RI0dm0qRJOfroo/Oxj30sG220Ub/0M3v27MycOTOPPvpoFi9enNe//vXZd999c+qpp+btb397v/TB8FBeVtNoQVYAAApq8fLV2ePf7xjq00iStLS25biv/d+A9/PQp/4hW4wd2e/HXbVqVa6++uokyZve9KZceOGFFW3q6upy5ZVX5n//93/zpz/9KV/5ylf6NRzZECNHjszXvva1dYKRtT75yU/m+uuvz+OPP55rrrkm//7v/56RI/v/e1hEg/Kr9jlz5uRv/uZvcvnll+epp57K8uXLs3jx4sybNy//8i//kt133709tVtfK1euzBFHHJHjjjsut99+e1544YWsWrUqzz33XL71rW9l7733XicNpPqVhyPKagAAgJ489NBD+fOf/5xkzQKjDQ0NnbbbZJNNcvTRRydJnnjiiSxcuHCwTrFbBx98cHs5Trn6+vqccMIJSZLFixfn4YcfHsxTq2oDHo488sgjOfroo/Pqq69m7Nixufjii3PfffflzjvvzIc//OEkaxaOOfzww7N06dL17ufkk0/OLbfckiSZPn16brzxxjzwwAO55ppr8sY3vjGtra254IIL2hNCql9zeVmN3WoAAIAePP744+2P3/a2t3XbtuPzHV83lPbaa69un586dWr74+FyztVgwMtqTj/99CxfvjyNjY25/fbbM23atPbnDjjggOy0004555xz8tRTT+ULX/hCLrjggj73MXfu3Fx33XVJkiOOOCI//OEP29O/vfbaK//4j/+YPfbYI88//3zOOeecvPe97824ceP65fqqXWtrW1aWWjKqsaFX9XzDqX15HaSyGgAAoCevvPJK++PXve513bZ9/etf3+nrhtLWW2/d7fMdr2m4nHM1GNBwZN68ebn77ruTrJnZ0TEYWeuss87KzJkz8+STT+aLX/xizjvvvPZFaXrrc5/7XJKkoaEhV155ZcW0qC233DKXXnppjjvuuCxevDjXXHNNzjrrrPW7qILo69Zcw7H9T3+9aJ2v3f/sn/LEH5cUZmsxAABYa7ONRuShT/3DgPdzwU2/ypzHei4feeffbJNP/+ObB/RcNttoxIAeP1mztkh32to6X5h2KFXjOVeDAQ1HbrzxxvbHJ510Uqdt6uvrc/zxx+e8887L4sWLc/fdd+eggw7qdR9Lly7NnXfemSQ56KCDMn78+E7bvfvd784mm2ySJUuW5IYbbqjpcOSmX/4hZ13/yDprdqzdmuvmX/4xlx/91rzrb7erqvZJ8tuXl+Ufv3JvRXsAAKh29fV1A7I4ablTp0/Kj3/1QsVn7Y4a6+vysf0nDcr5DITNN9+8/fELL7yQyZMnd9n2xRdf7PR19X8p6W9tba14TUfLli1b39Ps1Tl15qWXXmp/3PGck6E97+FuQBdpuOeee5Ks2d5njz326LLd2j2kkzX7SPfFAw88kFWrVlUcp9yIESPad6t54IEH0tzc3Kd+iuKJPy7pNFhYa+3WXD956qXMf2V5fvLUSzmzytqfdf0jeeKP/b+nNwAAFN2btt0klx/91jR2UeLeWF+Xy49+a1XP1u649ez//V/3u+488MADnb5u443XbGO8ePHibl//9NNPd/t8T7NAOjNv3rxeP1++ze7a8167IG1XBuK8h7sBnTny5JNPJkkmTZrU6TZDa+2yyy4Vr+lrH+XH6aqf22+/PaVSKb/5zW/ypje9qdf9LFiwoNvnh8vKxT25+t5nu02BkzVreZw0q/sfuOHcvtTalmvu/V0uP/qtvX4NAACwxrv+drvstPXGuebe3+XWxxa2l70ftus2OXmfHao6GEmSPfbYI+PGjcuf//znfOMb38iZZ57Z6Y41r732Wq6//voka7b83Wabbdqf22GHHZIkv/71r/Paa6+1hw4dvfzyy7njju63Xx41alSStP/Cvzduv/32LFy4cJ3zWau1tTXf+MY3kiSbbbZZdt9993WeX3ver732Wp5++unsvPPOFcdYvXp1fvCDH/T7eQ93AzZzZOXKlVm0aM2aEF2Vuqy12WabZcyYMUmS+fPn96mfju176mfChAmdvq43JkyY0O2fjisCD1etrW257bEXhvo0BsWtjy1Maw8hEAAA0Lm1M0h+9elD8sRnDsmvPn1I1c8YWWvkyJH50Ic+lCT51a9+lU9/+tMVbdra2vLxj3+8fUz78Y9/fJ3n11YtrF69Ov/5n/9Z8frm5uacfPLJWbFiRbfnsjbg+O1vf9vr81+1alVOOeWUtLS0VDx3ySWX5LHHHkuS/PM//3NGjly39KljtcXll19e8fq2tracdtpp+eMf/9ir83722WcLs8bJgM0cee2119ofjx07tsf2Y8aMybJly/q8nW9f+lkbwCTZoG2Dq9XKUktWNFf+ABXRiuaWrCy1ZKMRA74hEwAAFFZ9fV0hP1NfcMEFueGGG/Lss8/moosuyuOPP55//ud/zrbbbpvf/e53+cpXvtK+uci0adPykY98ZJ3XH3744dl+++3z3HPP5fzzz8+iRYvy7ne/O6NGjcrjjz+eL3/5y/nlL3+Zt73tbd2W7vzd3/1dfvKTn2TevHm55JJLcuihh7aPW0ePHp3ttqtcS3HPPffMj370o+y9994544wzstNOO+Wll17KN77xjcyePTvJmokD559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95t+c9c+bMvPTSSznzzDPzgQ98IJtuummSpKmpKdtvv333N2AYGrB3+cqVK9sfjxjR8yrDaxOtnpK1DemnY2rW1356mmmycOHCYT97ZFRjQ0Y3NdREQDK6qSGjGiunxgEAAGy88ca58847c+ihh+app57KD3/4w/zwhz+saLf33nvn5ptvrii7GTFiRL71rW/lHe94R5YtW5YrrrgiV1xxRfvzDQ0N+cIXvpA///nP3YYjH/3oR/PVr341r7zySs4777ycd9557c/tt99+7QFNR6eeemrmzp2bWbNm5dhjj614fptttsmPf/zj9rCi3MyZM7Pffvu1Bypry3DWOvPMM7Prrrt2G44ce+yx+exnP5tnn302X/ziF/PFL36x/bntt98+v//977t87XA1YGU1a2uQkjVTjXqytlZp9OjRA9ZPx3qovvYzfvz4bv90Vu813NTX1+XQXV/fc8MkR/7ttnnyM+/Iu/5226psf9iu26S+i0WkAAAAJk6cmEceeSRf+cpXst9++2WLLbZIU1NTXve61+Ud73hHvvnNb+anP/1pxY4va+2zzz556KGH8sEPfjDbbrttmpqass022+Q973lPfvrTn+b000/v8Ry22267PPDAAzn55JMzadKkdca33Zk5c2auu+667L///tliiy0ycuTITJ48Oeecc05+9atfdbu+5i677JKHH344H/3oR7P99ttnxIgR2WqrrfKOd7wjc+bM6bTcptzYsWNz33335bTTTsuUKVOy0UYb9eq8h7MBmznScUGa3pSwrN0qqDclOOvbT8ftiPraT1F8aJ8dc/Mv/9jj1lwf+fs3ZvSIhpzy92/MnEcXVl37k/fZocvnAQAAkjUzQE499dSceuqp6/X6nXfeOddee22Xz1944YW58MILuz3GG9/4xlx99dV97vu4447Lcccd1+fXJWtCmSuvvLLL50888cSceOKJ3R7jda973TozRqrdgM4c2XLLLZP0vNPL4sWL24OLjoum9kbHRVh76qdjaUxf+ymKvm7NVe3tAQAAoCcDurLOlClTcs899+SZZ55JqVTqcjvfp556ap3X9EXH6UIdj9NdP42NjZk0aVKf+imSvm7NVe3tAQAAoDsD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jl22e+Mb39j+eNWqVX3qg6Hncxgd+RxWLD6HDV/CkSp0zz33JEnGjBmTPfbYo8t2++23X/vje++9t099PPDAA+0fpjoep9yIESPy9re/vf01zc3NfeqHrg3Gfe6tjh+s6+v9s9GfBvs+l0qlfOQjH0lra2v+9V//NTvvvPN6H4veG4z7vHr16vZ1Rg499NCMHTs2yZp7/txzz+X5559fZ2BN/xuM+7zllltm8803T5I8++yzXbb77W9/2/548uTJfeqDoedzGB35HFYcPocNb366qtCTTz6ZJJk0aVIaGxu7bLfLLrtUvKavfZQfp7t+SqVSfvOb3/SpH7o2GPe5t+bOnZskaWxszKRJkwakj1o12Pf5sssuyyOPPJI3vvGNmTFjxnofh74ZjPv8yCOPZOXKlUmSadOm5YUXXshJJ52UcePGZeLEidl+++2z6aab5rDDDst99923HldBTwbr5/kjH/lIkuThhx/Obbfd1mmbiy66KEnS0NCQD33oQ33ug6Hlcxgd+RxWHD6HDW/CkSqzcuXKLFq0KEl63Glgs802y5gxY5Ik8+fP71M/Hdv31M+ECRM6fR3rb7Duc2/MmTMnjz76aJLkkEMOaZ++y4Yb7Pv87LPP5jOf+UyS5Morr8yoUaPW6zj0zWDd5yeeeGKdPnfdddfMmjUry5YtW+frt912W/bdd9988Ytf7NPx6d5g/jx/8pOfzD/8wz8kSY466qicffbZue222zJv3rx897vfzf7775/vf//7aWhoyJe//OVMmTKlz30wtHwOYy2fw4rD57DhTzhSZV577bX2x2unTHdn7Yevvm4X2Jd+1vaxPv3QucG6zz155ZVXcuqppyZZ89vHtb+JpH8M9n0+5ZRTsmLFihxzzDGDulVdrRus+/zKK6+0P/70pz+dRYsW5Z3vfGcefPDBrFy5Mi+++GKuvPLKbLLJJmltbc2ZZ57Z5awD+m4wf57Hjh2b2267LV/72tcyfvz4XH755TnssMMyderUHHvssZk7d27e/e5352c/+1k+9rGP9fn4DD2fw0h8Disan8OGP+FIlVk7ZTpZU2fak5EjRyZJVqxYMWD9rO1jffqhc4N1n7vT0tKS97///XnuueeSJJ/61Key22679dvxGdz7fO211+aOO+7IJptskiuuuKLPr2f9DdZ97jhDZNWqVTniiCNy0003ZY899sjIkSOz9dZb56Mf/WjmzJmT+vr6tLW15ZxzzklbW1uf+qFzg/3v9oMPPpjvfOc7Xa47cscdd+Qb3/hGlixZsl7HZ2j5HIbPYcXic1h1EI5UmY7Tr3qzsN7aBZxGjx49YP10XCSqr/3QucG6z9352Mc+lv/93/9Nkhx++OE5//zz++3YrDFY93nRokXtO5dcfPHF2Wabbfr0ejbMUPy7nSSf//znO124b5999sm73/3uJMnjjz+exx9/vE/90LnB/Hf7+9//fvbff//cdddd2XXXXfPDH/4wf/rTn7J69er89re/zX/8x3+kubk5X/3qV/N3f/d3eeGFF/rcB0PL5zB8DisOn8Oqh3Ckymy88cbtj3szdXLtbxJ7M8V3ffvp+NvKvvZD5wbrPnflvPPOy1VXXZVkzUDqe9/7XhoaGvrl2PzVYN3nM888M4sWLcqee+5piv0QGIp/t3fYYYduV8A/5JBD2h/PmzevT/3QucG6zy+++GJOPPHErFq1Km9+85tz33335cgjj8zmm2+epqam7LjjjjnvvPPyox/9KHV1dfnVr36VT3ziE327GIacz2G1zeewYvE5rHp0vZQ6w9KoUaOy5ZZbZtGiRVmwYEG3bRcvXtz+P8yOi3X1RsfFvxYsWJA999yzy7YdF//qaz90brDuc2cuvfTSXHLJJUmS3XffPbfccovfRA2QwbjPf/zjH/PNb34zSXLAAQfk+uuv77b9Sy+9lNmzZydZM8B+29ve1uu+6Nxg/Tx3bN+XBRxfeumlPvVD5wbrPs+ePbv9tTNmzFhnvYmODjzwwBx44IG54447csMNN2Tx4sXZbLPN+tQXQ8fnsNrlc1ix+BxWXYQjVWjKlCm555578swzz6RUKnW5XeBTTz21zmv64k1velOnx+muH9uL9a/BuM/lrrzyypx77rntx/rxj3+cTTfddIOOSfcG+j53nI79uc99rsf2Tz75ZI477rgkyQknnOB/yv1kMH6e3/zmN7c/bmlp6bZtx+e723KWvhmM+9xxi9fdd9+927Z77LFH7rjjjrS2tubXv/61n+cq4nNYbfI5rHh8Dqsuymqq0D777JNkzTTKhx56qMt2a/dET5K99967T33stdde7QuAdTxOudWrV+f++++veA0bbjDuc0ff/OY38/GPfzxJsuOOO+aOO+7Illtuud7Ho3cG+z4zNAbjPm+//fZ5wxvekCT57W9/223bjs9vt912feqHrg3Gfe4YuJRKpW7bNjc3d/o6hj+fw2qPz2Ew9IQjVejII49sfzxz5sxO27S2tubaa69NkowbNy7Tp0/vUx8bb7xxDjzwwCRrVrzvaorwDTfc0L4S/lFHHdWnPujeYNzntW644YacdNJJaWtry/jx43PnnXdm2223Xa9j0TcDfZ8nTpyYtra2Hv+std9++7V/bdasWet1TVQarJ/n97znPUnWrEtx3333ddnuhhtuaH+877779rkfOjcY93mHHXZof3zPPfd02/anP/1pkqSuri4TJ07sUz8MLZ/DaovPYcXlc1iVaaMq7bvvvm1J2hobG9vuu+++iuc/97nPtSVpS9L2b//2bxXPz5w5s9vn29ra2u688872Nv/4j//YViqV1nn+5ZdfbnvDG97QlqRt3Lhxba+88kp/XBodDMZ9/vGPf9w2YsSItiRtW2+9ddtTTz3Vz1dBTwbjPvdk7ev322+/9Xo9PRuM+/zcc8+1jRo1qi1J2x577NG2dOnSijbf/OY3249z+OGHb+hlUWag7/OTTz7ZVldX15akbbvttmtbsGBBp+fxP//zP+3HmTZt2oZeFt343e9+1/69PuGEE3r1Gp/Dqs9A3Wefw4aXgbrPPfE5bHgwx7JKfelLX8ree++dFStW5OCDD86MGTMyffr0rFixIrNnz25f4Xry5MntW0f11QEHHJBjjz02s2fPzs0335yDDjoop59+erbddts89thjufjii/P8888nSS655BILvQ2Agb7P999/f4466qisXr06TU1NueKKK9Lc3Nzt1p7jx4/PuHHj1veS6MRg/Dwz9AbjPr/hDW/IZz7zmZxzzjl56KGHMnXq1Jxzzjl5y1vekldffTU33HBD/vu//ztJsskmm+SKK67ot+tjjYG+z7vssktOOumkfP3rX88f/vCH7Lbbbjn99NOz7777ZuONN878+fMze/bsXHfddUmShoaG/Md//Ee/XmOtu/fee/PMM8+0/33RokXtj5955pmK3/aeeOKJ69WPz2FDazDus89hQ2+wfp6pEkOdzrD+br755rZNNtmkPWks/zN58uS23/zmN52+trcJ5/Lly9sOO+ywLvuor69f74SU3hnI+/xv//ZvXR63qz8zZ84c2AuuUYPx89ydta/3G4uBNVj3+dxzz22fXdDZn6233rrTWQ30j4G+zytXrmw75phjevz3esyYMW3f/va3B/BKa9MJJ5zQp/9vdsbnsOFvMO6zz2FDbzB/nrvjc9jwYM2RKnbEEUfk0UcfzRlnnJHJkydno402yrhx47Lnnnvm0ksvzS9+8YsNXrV89OjRmTNnTr797W/noIMOytZbb50RI0ZkwoQJed/73pd77703F154Yf9cEJ0ajPvM0HOfa8Ng3efPfvaz+dnPfpYPfvCDmThxYkaOHJlNN900e+21Vy666KL8+te/zrRp0/rhiujMQN/nkSNHZvbs2bnrrrty/PHHZ/LkyRkzZkwaGxuz+eabZ9q0aTn//PPz1FNP5X3ve18/XhmDzecwgMFT19bWYQUYAAAAgBpj5ggAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANQ04QgAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANS0/x9IX8EnCxQPPAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "delayer = time_delay_system(.1, simulation_dt, inputs='u', outputs='ud')\n", + "t, y = ct.input_output_response(delayer, time, step_input) \n", + "plt.plot(time, step_input, 'r.-', label='input')\n", + "plt.plot(t, y, '.-', label='output')\n", + "plt.legend()\n", + "delayer" + ] + }, + { + "cell_type": "markdown", + "id": "862ce22c", + "metadata": {}, + "source": [ + "We can incorporate this delay into our closed-loop system. The time delay shifts the response to the right and brings the system closer to instability." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d8f6e5b3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9t5vO+02zcsZFpqAACCGzM/JkLOdX8L8DgYA65AcAYAYkZmarEuG9231cafdpkVzxykzNTmEUQFAbMhMTdaiuePaTJDwOxgArBOy5MiBAwf0ve99T2PGjFFSUpJ69+6tKVOm6NFHH1V1dXWXXKOwsFD33HOPsrKylJycrLi4OPXr10/Tp0/X448/rhMnTnTJdQAgUlWcrG+25nY5NGdCmlYuyNHs7EEWRAUAsWF29iCtXJCjORPSFO9s/jZ8TAqJEQCwis3v9wd9VtiqVat02223qbKyssXHR40apdWrVysjI6PT11i0aJF++MMfyuv1trpnyJAhWrlypcaOHdvp67SmuLhY6enpkqSioiKlpaV1+TUA4FxU1XqU/fAbOntC5F/mTdHF5/XlfDsAhJjXa+jiX7+jQyfqGte+c8UI3XfVSAujAoDIEIzP30GvHMnPz9fcuXNVWVmpbt266ec//7k+/PBDvf322/r6178uSfrss8903XXX6eTJk526xrJly/S9731PXq9XcXFx+u53v6tVq1bp448/1t/+9jfl5ORIkvbv369rr7221SQNAESzTw4cNyVG4hx2TRram8QIAFjA6bTr+rGpprVXt5YqBN9bAgBaEPTkyL333qvq6mo5nU698cYbeuCBBzR16lRdfvnlevrpp/Wb3/xGkrRjxw499thjnbrGz372s8bby5cv12OPPaaZM2dqypQpuvXWW7Vu3TrddNNNkqSysjItWbLk3P9gABBhNu07aro/Nq2HEgIcLQkA6HrXjU0x3d9z+JR2lHMMHACsENTkyMaNG/Xee+9JkubNm6epU6c227Nw4UKNGTNGkvTb3/5WHo+nQ9eoqqrSp59+KkmaMGGCrrvuuhb3/eQnP2m8/eGHH3boGgAQDTY2SY5MGtrbokgAAJI0YXBPDerpNq29urXUomgAILYFNTny8ssvN96+6667Wg7Abtftt98uSTp27FhjMiVQ9fVnmgu21bPkvPPOa7xdV1fX6j4AiEb1XkN5RcdNa5OH9rImGACAJMlmszWrHnl1axlHawDAAkFNjqxbt06SlJSUpIkTJ7a6b9q0aY23c3NzO3SNvn37qnfv099+7tmzp9V9n3/+eePtkSNpdAUgtmwrrVStxzCtTRxCcgQArHZdljk5sv9ItbaVVlkUDQDErqAmR7Zv3y5JGj58uJxOZ6v7Ro8e3exnOuIb3/iGJGnLli1as2ZNi3sa+pI4HA7Nnz+/w9cAgEi2ad8x0/2RA7qpZ2KcRdEAABqMTeuhwb0TTWuvcLQGAEKu9YzFOaqtrVVFRYUktTtWp1evXkpKStKpU6dUVFTU4Wv993//tzZt2qS33npLN954oxYsWKArrrhCffv21Z49e/TUU09p7dq1cjgc+t3vftfY46QjiouL23y8rKysw88JAKFCvxEACE8NR2ueeu9MlfOqrWX64bWjZbMxTQwAQiVoyZETJ8502u7WrVu7+xuSI50Z59utWzetWbNGS5cu1a9+9SstWrRIixYtMu256aabdP/99+vCCy/s8PNLapyhDACRxu/3a9N+c+UI/UYAIHxcl2VOjhQfq1F+caWy03taFxQAxJigHaupra1tvB0X137pdnx8vCSppqamU9fbtGmT/v73v7fad+Stt97Ss88+q6oqznACiC17Kk7p6Kl609qkIVSOAEC4OD81WcP6JpnWXs3naA0AhFLQkiMJCQmNt8+eKNOahgkybre7nZ3Nvfjii7rsssv0zjvvKCsrS//617905MgR1dfX6/PPP9cvfvELeTwePfXUU7r44otVXl7e4WsUFRW1+c+GDRs6/JwAEAqbmhypGZicoLReHf9dCwAIDpvN1qwx66qCMhkGU2sAIFSCdqyme/fujbcDOSpz6tQpSYEdwTnbwYMHdeedd6qurk7nn3++PvzwQyUlncm8Z2Rk6Ec/+pGmTJmiq666Stu2bdM999yjf/7znx26Tnt9UwAgXDVtxjpxaC/OsQNAmLl+XIqefHd34/2yylp9UnRME6n0A4CQCGrlSN++fSW138z02LFjjcmRjvb2eOGFFxp/9oEHHjAlRs52xRVX6IorrpAkLV++XMeOHWtxHwBEm2b9RhjhCwBhZ9SA7hre3/wl4Sv5NPwHgFAJ6ijfhqkwu3fvltfrbXXfjh07mv1MoM4e/TthwoQ2906cOFGSZBiGdu7c2aHrAEAkOnyiTnsrTpnWmFQDAOGnpaM1qzlaAwAhE9TkSE5OjqTTR2Y2b97c6r61a9c23r7kkks6dA2n88zJoLYSMJLk8Xha/DkAiFab95v7jXSLd2r0wO6t7AYAWOmGcebkyKETdc1GsQMAgiOoyZEvfvGLjbefeeaZFvcYhqHnnntOktSzZ09Nnz69Q9cYNmxY4+1169a1uff999+XdDozP3To0A5dBwAi0cYm/UbGD+4ppyOov/oBAJ00vH/3ZgnsV7dytAYAQiGo75CnTJmiSy+9VJK0ZMkSffTRR832LFq0qPFozH/913/J5XKZHl+6dKlsNptsNpseeuihZj9/3XXXNTYW/PnPf66SkpIWY3n66ae1adMmSdJFF12kPn36dPrPBQCRoumkmskcqQGAsNb0aM2aT8vk42gNAARd0L8+fOKJJ+R2u+X1enX11Vfrl7/8pdavX693331Xd999t+6//35J0siRI7Vw4cIOP//o0aN11113SZJKSko0fvx4/eIXv9C6deuUl5enV155RbfddpvuvvtuSZLD4dAvfvGLrvsDAkCYqq736tPSKtPapKE0YwWAcHbdWHNypOJkvT7ec8SiaAAgdgS98cb48eP1j3/8Q1/96ldVVVWlBx54oNmekSNHatWqVabxvx3xhz/8QadOndI//vEPHT58WP/93//d4r6kpCQ9/fTTuuyyyzp1HQCIJHkHjpu+bXTabcpO72ldQACAdmX066bMlGQVlp1Jbr+ytUwXD+9rYVQAEP1CcvD8hhtu0NatW/Xd735XI0eOVGJionr27KlJkybp17/+tT755BMNHz68088fHx+vF154Qe+8845uv/12jRw5UklJSXI6nerdu7emTp2qH//4x9qxY4e+8pWvdOGfDADCV9N+I+cP6qHEOJpRA0C4u75JY9bXPi2T12dYFA0AxAab3+/nEGMXKC4uVnp6uiSpqKhIaWlpFkcEINZ9bcnHWrerovH+vJxh+vH1mRZGBAAIxIEj1frCI++a1p77jyn6wsh+FkUEAOElGJ+/GVkAAFHI6zO0Zb+5cmQy/UYAICIM7pOosWk9TGuvbi21KBoAiA0kRwAgCu0oP6FT9T7T2sQhTKoBgEhxfZPGrK9vO6h6L0drACBYSI4AQBRqOsJ3WN8k9eseb1E0AICOmtlkpG9ljUcf7K5oZTcA4FyRHAGAKLSxyZGaSUM4UgMAkSStV6LGD+5pWvvXJ8UyDNoFAkAwkBwBgCjj9/ubVY5MHsqRGgCINNePTTXdX5lfpvN/8rruW5anwtKqVn4KANAZJEcAIMoUH6vRwao609okmrECQMRxtvBOvcbj0/ItJZr1ZK5W5JWEPigAiFIkRwAgymxsUjXSJylOw/omWRQNAKAz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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# incorporate delay into system by relabeling plant input signal\n", + "plant_simulator = ct.ss(plant_simulator, inputs='ud', outputs='y')\n", + "\n", + "# system from r to y\n", + "Gyr_simulator = ct.interconnect((controller_simulator, plant_simulator, u_summer, delayer), \n", + " inputs='r', outputs='y')\n", + "\n", + "# simulate\n", + "t, y = ct.input_output_response(Gyr_simulator, time, step_input)\n", + "plt.plot(t, y, '.-');" + ] + }, + { + "cell_type": "markdown", + "id": "c6c41775", + "metadata": {}, + "source": [ + "We can also observe how the dynamics behave with a nonlinear plant." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "83655c36", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1PP8inOrvFQ77qpyvOrnqf5Z3a+xESFqFh1W/QRU4/fhiCRdeeWVeumll3To0CGtWLFC55xzTo3nzZ4927N97rnnNlV78DFTp07V448/Lsn9H5SSkhL94x//0Icffqht27ZJknr06KGbb75Zv//97086ymj37t165ZVXtGDBAu3du1cOh0MpKSkaMWKE/vSnP510XZuKJ8g89thjmjp1qlavXq0XX3xRS5cu1eHDh5WUlKQRI0Zo8uTJ6tGjR6N81qrat2+vPXv26JZbbtH06dO1ZcsWvfDCC/r666+VmZmphIQEnXPOOfrzn/+ss88++5T327dvn/75z39q/vz52rVrl4qLi9WyZUsNHjxYv//97zV8+PBa35uTk6M5c+Zo0aJFWrt2rfbu3auysjIlJibqzDPP1JVXXqkJEyYoLKzm/7jv3r1bHTp0kCS98847mjBhgmbPnq233npLP/30k7KysjR06NAan+oDAABOn8vlktMl2Z1OOZwu2Z0uOY+/Vt93eupOp+RwuWsOp9w1l/uY58flfq/jeN3lkqHudOnEOcff7zzej9N14vyKmstVcV5F38ZzK7/fVcM58pzj/rJauVbx/oovxMb94+fqxJdul6vKtuT5gl35S/yJL/DujYp99+knrnP87Ybf/aqeV3GOKp3nOfskx2v9wm4IE2oPHFyGcyt93qqfsXJPVf4Mqv3ZGXqu/mdWtb9gc8ewjnp4TMO+SwQbnw9Hpk+frokTJ0o68SWyqnvvvVevv/66SkpKdPfdd2vJkiWKjo42nDNjxgzPl6KxY8eywCokSYcOHdLo0aO1fv16Q3316tVavXq1FixYoDlz5tT4BKT33ntPt99+u0pLSw317du3a/v27Zo2bZqefPJJPfzww6fs49VXX9V9990nu93uqR04cEAzZszQ7NmzNW/ePJ133nkN/JR1M3v2bI0fP15FRUWeWlZWlubMmaMvvvhC//nPf3TttdfW+v5p06bprrvuUnFxsaGekZGhjIwMffzxx7rtttv0r3/9q8bAqV+/ftqzZ0+1+qFDh7RgwQItWLBA//rXv/Tll1+qVatWJ/0sLpdLN998s95///1TfWwAAExR8eW83OFSudOpcrs7LCg7/mp3OFXmcMrucMnudKrM7n61O1yGernDfW758ffUdtzudKnc4fTc0+48cR/3uSeu76lXCjUcld7vqVdcr1KIAcDH8Neyzrwajixbtkzbt2/37GdnZ3u2t2/frunTpxvOnzBhQoPu07ZtWz3xxBN66KGHtGbNGqWnp+uhhx5Sr169lJubq9mzZ+tf//qXJCkuLk4vvfRSg+6DwHPFFVdo8+bNuvvuuzVu3DglJiZq69atevLJJ7V582Z98cUXevPNN3XHHXcY3jd37lxNmDBBLpdLMTExmjRpki688EKFhIRoxYoVevrpp5Wdna3JkycrISFBf/jDH2rtYf78+frhhx/Up08f3XPPPerdu7eKi4v16aef6pVXXlFRUZHGjx+vbdu21Tpq4nRt2LBBH330kVq3bq1JkyZp4MCBcrlcmj9/vp555hmVlJTo9ttv14gRI9SiRYtq73/77bf129/+VpLUq1cv3XHHHerXr5+ioqK0a9cuTZs2TV9++aWmTZum+Ph4vfDCC9Wu4XA4dNZZZ+niiy9Wv379lJycrLKyMu3atUszZszQV199pXXr1um666475eiPl19+WRs2bNC5556rP/zhD+ratauOHTum3bt3N8YfFwDAjzicLpXaHSotd6rU7nRv253H9x0qsztV6nCqzF7px2HcLj2+Xe448VNmd4cQ5cfrZZ5jruPHjfsVr/aKbaczqP81GwB8jVfDkbfeekvvvvtujceWL1+u5cuXG2oNDUck6cEHH9TRo0f17LPPatOmTTVeq2XLlpozZ466dOnS4PuYxel0KaeozOw2mkyzqDBZrRav36didMj555/vqfXv31+jR4/WGWecoUOHDum1114zhCPl5eW64447PMHI0qVL1bdvX8/xs88+W1deeaUGDx6szMxMPfDAA7r66quVlJRUYw/ff/+9fvOb3+jTTz81hB/nnnuumjdvrkcffVR79+7V3Llzdfnllzf6n4EkrVu3TgMGDNCiRYsUHx9v+CydO3fWTTfdpLy8PM2YMUP33Xef4b0ZGRm66667JEm33HKL3nrrLcPIkH79+umKK67QI488or/97W96+eWXdccdd6hr166G63zzzTc1/t0855xzdOONN+qdd97RrbfeqiVLlmjRokW64IILav08GzZs0M0336zp06d7pi8BAHxLmd2p4jKHisrtKix1uLfL7Coqd6io1L1dYneqpMyhknKHissdKil3qrjcoVLP/ol6SXlF6HH89XgQUu4ggQAAnJrPT6upj6efflqXXHKJXn/9dS1dulSZmZmKiIhQ165ddckll+iuu+4yfPHzJzlFZRrwfwvNbqPJrHn0QjWPCff6fe666y5DMFIhMTFREydO1DPPPKMNGzYoNzfX87+dTz/9VPv375ckPfLII4ZgpEK7du303HPP6aabblJRUZHeeecdPfjggzX2EBERoXfeeafGUSF33323nnjiCZWVlWnp0qVeC0ck9+iPmv5+3HDDDXrooYd04MABLV26tFo4UjG6pU2bNrVOmZGkxx9/XO+++67279+v9957T//3f/9nOH6q0HLixIn6xz/+oXXr1mnOnDknDUcSEhL06quvEowAQCNyOF0qKLUrv6Rc+SV25ZfYVVhqV0Fp5VeHCstO1Az1UruKytzHi8scsjMFA5JsVotsFousVinEapXVcrxW8WOxyFp1+/hrxblWi+X4qzzbNqtFFotFtuM1i8Uim9W9ba30fs++RbIcv56lYl8V9RPnWK0WWeSuWSzyXMMiSdXed+I8i06cX7GtiutInvu4z3Vfy32fE+dX7Evumjy14/evOL/SOZV/Far4vajqdU5sn7iG52i1Y5Zq51Xt6WTnV+xZTpx6/HMY65X/LNzXN/ZiqeHPR7Xdp8pnNfZf83Vruo4M76vlz6KWz1f5/lX/fIz7xut4Xmp530nfqxP/m0bdeDUcmT59erWpM/U1YcKEeo0oGTx4sAYPHnxa90TwuPHGG2s9NmDAAM/2rl27PCHIwoXukMpisejWW2+t9f1XX3217rzzTuXm5mrhwoW1hiMjR45Uy5YtazwWGxurLl266JdfftHOnTtP9XEarHfv3urTp0+NxywWi/r166cDBw7U2MNnn30mSRo3bpwiIiJqvUdISIgGDx6sWbNmaeXKlSftx+Vy6dChQ8rLy1NZ2YkRU23atNG6deuqrRFT1bhx4xQbG3vScwAg2DidLuWX2JVbXG74OVZcptzicuUV25XnCT6qvrpDDjQtm9WiEKtFYTarQmwWhdisJ7atFoXarAo9vh9qPXFOqNVi2HafY1WozR0ahNqs7lerRbbj73Mfq3SO1X2O+15WTy+G/eN9VOxX1GyWGratVk8AUnFuRSAAAL4goEaOAPXVvXv3Wo8lJiZ6tvPz8z3bGzdulOR+0kttoYYkhYWFqV+/flq8eLHnPfXtoXIflXtobA3tITc317Ou0L///W/9+9//rtP9Dh48WGN97ty5ev311/Xdd9+d9PNWXr+oJrUFPQAQCFwul4rKHMopKlNOYbn7tahMOYVlOlpUrmNFZTpaWKZjRSeCj9yicuWX2lnjopIwm1XhIVaFVf6xVd8Or7JfEUi4ty2e7TDbiWOV6yFWi0JDrAo9HjxUBByhIe7A4ETwYfFcoyLsaIopxgAAN8IRBLWoqKhaj1V+Qo3D4fBsHz16VJKUnJx8yutXPFWl4j317aFyH5V7aGwN7SErK6tB96v8RBzJ/Yv+7373O02bNq1O76/6RJyqmjVr1qC+AMAMFWHH0cIyZReU6khBmY4Uliq7oMyzfaTAfexYUbmOFpWpzO40u+1GF2qzKCosRFFhNkWG2dyvoTZFHP9xb1sNNXfdatgPD3UHGuEhNoWHWBURenw79EQtzEbwAAAwIhzxE82iwrTm0QvNbqPJNIvyzlNZGlNdhoG6Avyf6CqHJffee69uu+22Or2v6voqb7/9ticY6du3r+69916dddZZSklJUVRUlGw2myR5Hs97qj/XivMBwEwl5Q4dzi/V4YJSHc4vVVa++9X9U6LD+ccDkMJSlZT7V9hhsUgx4SGKDQ9R9PGfmPAQRYfbKm0ffw2zKer4dlSY+3hkqDv8iAoL8QQhoTbrqW8MAICXEI74CavV0iQLlOLUKqaY1DY1pLJDhw4Z3hNomjdv7tkuKipSr169GnSdN998U5LUqVMnrVixQpGRkTWel5OT06DrA0BjKrM7dSivRIfySnQwr0QHc0uO71eEIO7gI6/Ed9foCLVZFB8ZqrjIUMVX+omLCFVsRIhiPa8hNdaiw0IYeQEACCiEI0A99erVSytXrtTu3buVlZVV67oj5eXlWrdunec9gahFixZKSUnR/v37tXDhQrlcrgYtrPbLL79Iki699NJagxGXy6W1a9eeVr8AcCol5Q4dOFasA8dKdOBYsTv8yCvRodzjr3klyi4oO/WFmkiI1aKEqDA1iwpVs2j3a2J0mKeWEBVmCD8qfqLCbCyECQBAJYQjQD1deOGFevPNN+VyufT222/rL3/5S43nzZo1S7m5uZ73BKqKx2fv3LlTs2bN0tVXX13va9jt7n9drboWSWWff/65Dhw40OA+AcDlcimnqFz7c4q1/1ixDhw78VqxbXbwERZiVYuYcDWPCVPz6DA1P76dFB2uxOgwJcaEqVlUmBKjwpQQHarY8BBCDgAAGgHhCFBPl19+udq0aaMDBw7ob3/7m8aMGaMzzzzTcE5GRoYeeOABSe7FTidOnGhGq03iwQcf1Ntvv63S0lL9/ve/V4cOHTRw4MBaz//yyy+VmppqeKJMly5d9PPPP+uLL77Q3/72t2oLqu7YsUN//OMfvfYZAASOknKH9uUUa+/RQu09UqS9R49vHy1SxtFiFZd7b3Hr2oSFWNUyNlwtYsM9ry1iItQiNlxJMe4ApOI1mhEdAACYgnAEqKfQ0FC98cYbGjdunPLz8zV06FA9+OCDuuCCCxQSEqIVK1bomWee8TzJ5fnnn1dSUpLJXXtPhw4d9K9//UsTJ07U0aNHNWTIEI0fP14XX3yx2rZtK7vdrn379mnVqlWaNWuWduzYoS+++MIQjtx888168MEHtX//fp1zzjl66KGH1LNnT5WUlOibb77Ryy+/rNLSUvXv35+pNQBUUGrXzsMF2pXtDkD2HC06Hn4U6WBeSZM9rjY8xKpW8RFKjotQq7gItYqPqBSCuMOPFrHhiotgdAcAAL6OcARogLFjx+qdd97RHXfcoYKCAj322GN67LHHDOfYbDY9+eST+sMf/mBSl01nwoQJioyM1O233668vDxNmzat1sfyWq1WRUdHG2r33HOPvv76ay1YsEBbtmzRrbfeajgeGRmp9957T3PnziUcAYKEw+nS/pxi7cgu0M7Dhdp52P2643CBsvJLvX7/+MhQtY6PUJuEyErhR7h7O969Hx8ZSugBAECAIBwBGuiWW27RsGHD9PLLL2vBggXau3evnE6n2rRpoxEjRuiuu+5S7969zW6zyVx77bUaNWqU3njjDX311VfatGmTcnJyFBoaqlatWqlnz54aPny4rrrqKqWlpRneGxoaqrlz5+r111/Xe++9p02bNsnlciklJUUXXnih7rnnHnXv3l1z58416dMB8JYyu1M7swu09WC+fj2UfzwIKdSuI4Uqs3vn8bY2q0Wt4iLUJsEdfqQkRHpeU5pFqnV8hGIjQr1ybwAA4JssLldTDT4NbPv27fN84cvIyFBqamqd3rdt2zbZ7XaFhISoS5cu3mwRQD3wdxNoXE6nS/uPFWvLwXxtPZinrYcKtPVgnnYeLpTd2fi/ijSPDlPb5lFqm2j8SU2MUnJsuEJs1ka/JwAAaBoN/f59MowcAQAAjSq/pFybDuTplwN5+vVQvrYczNe2Q/kqLGu8xVCtFim1WZTaNXf/uMOPaPdr8yjFhPMrDgAAqDt+cwAAAA2WV1Kujftz9cv+PP28P1cb9+dq15HCRlsUNS4iRB1bxKhTixh1bBGtTi2i1bFFjNo1j1J4iK1xbgIAAIIe4QgAAKiT3KJybTzgDkAqgpDdR4oa5dopCZHqmhyjLsmx6pjkDkA6tohW8+gwFj0FAABeRzgCAACqcTpd2pZVoDV7crR2b47W7snRzuzC075uQlSouiXHqnurWHVt5X7tkhyrOBZABQAAJiIcAQAAyi8p108Zx46HIce0bm+O8kvsDb5eiNWirsmx6tE6Tt1bxarb8Z+WseGMBAEAAD6HcAQAgCCUcbRIq3cf1Zo9OVqzJ0dbD+U3eJ2QUJtF3VrFqndKvHqlxKt3Sry6tYplTRAAAOA3CEcAAAgCB3NLtHJntlZsP6KVO49oX05xg64TZrOqe+tYTwjSq028uraKIQgBAAB+jXAEAIAAdDi/VN/vdAchK3cc0a4GrheSkhCp/u2aaUDbBPVv10zdW8UpLMTayN0CAACYi3AEAIAAkFtUfjwIydbKnUf066GCel8j1GZRr5R49W/bTAPaNVP/ts3UKj7CC90CAAD4FsIRAAD8kMvl0ubMfH27NUuLt2Zp7d5jcjjrt2hIYnSYBrU/EYT0SolXRCjTYwAAQPAhHAEAwE/kl5Rr+fZsfbvlsBb/mqVDeaX1en9cRIjO6thc53RqrsGdmqtry1hZrTw5BgAAgHAEAAAf5XK5tC2rQN9uydLirYe1evdR2esxOiQ6zKb0Doka3Km5zumUpB6t42QjDAEAAKiGcAQAAB9idzi1atdRzdt4UN9sydL+Y3V/qkxYiFXp7d1hyOBOzdU7JV6hNhZPBQAAOBXCEQAATFZqd2jF9iOatzFTX286pJyi8jq/Ny0xUsO7tdTwbi11dsfmigxjzRAAAID6IhwBAMAExWUOLfk1S19tPKhFm7OUX2qv0/vCbFald0jU+d1aaHj3luqYFC2LhakyAAAAp4NwBACAJpJfUq5vtrgDkcVbD6u43FGn97WJj9D53d2jQ87p1FzR4fzfNwAAQGPitysAALyopNyhRZuz9Om6/fru18Mqczjr9L7eKfG6qFcrjTwjWV1axjA6BAAAwIsIRwAAaGROp0urdh/Vp2v368uNmcovqduUmQHtmmlMr1Ya3bOV0hKjvNwlAAAAKhCOAADQSLZn5Wv22v367KcDdXrKjNUind2xuS46Hogkx0U0QZcAAACoinAEQWf69OmaOHGiJGnXrl1q376959iECRP07rvvql27dtq9e7c5DQLwK4fzS/X5+gOas26/ft6fe8rzQ20WDemcpDG9WmnkGa2UGB3WBF0CAADgZAhHAACop1K7Q/N/OaTZa/dp6bZsOZyuk55vsUiDOzbXZf1SNLpnK8VHhjZRpwAAAKgLwhEAAOpo75EifbBqr/77Y4aOFJad8vyuyTG6vF+qLu3bRm0SIpugQwAAADQE4QhQyfTp0zV9+nSz2wDgQ+wOpxZtydJ/ftir7349fMrzW8SG69Iz2+jy/ik6o3UcT5kBAADwA4QjAADU4GBuiT5ctVcfrc7QwbySk54bGWrTRb1a6fJ+KRrSOUk2K4EIAACAPyEcAQDgOKfTpaXbs/Wf7/do0ZasU64lcnbHRF0zME2je7ZSdDj/lwoAAOCvrGY3APiSCRMmyGKxGJ5gU5nFYpHFYtHUqVMlSatXr9b111+v1NRUhYeHKyUlRePHj9fmzZvrdL+tW7fq7rvvVs+ePRUfH6/IyEh17NhREydO1Nq1a0/63szMTL322mu66qqr1KVLF0VHR3t6uPTSS/XRRx/J6XTW+v7Fixd7Ps/ixYvldDr19ttva/jw4UpOTpbVatWECRPq9DkAf5dbXK5/L9mhYc9/q1veXqUFmw7VGozERYRo4pD2Wnj/eZp5+2Bd0T+VYAQAAMDP8dsc0ECvvvqq7rvvPtntdk/twIEDmjFjhmbPnq158+bpvPPOq/X9Tz75pJ544gnD+yX344V37dqld999V3/961/1+OOPV3uvw+FQampqjeHHgQMH9Pnnn+vzzz/XtGnTNHv2bMXExJz0s5SUlGj06NFauHDhqT42EFAyc4v19rJd+nBVhgpK7Sc9t29agm48q60u7tNGkWG2JuoQAAAATYFwBGiA+fPn64cfflCfPn10zz33qHfv3iouLtann36qV155RUVFRRo/fry2bdumsLCwau+fMmWKnnzySUnSOeeco1tvvVU9e/ZUaGiotm7dqldffVUrV67UE088oaSkJN11112G97tc7n/RHjFihMaMGaPevXurRYsWys/P186dO/Xmm29q5cqV+vrrr3XnnXfq3XffPenn+fOf/6wNGzbokksu0YQJE9SuXTsdOnRIeXl5jfQnBviWLQfz9MZ3O/X5TwdkP8nUmagwmy7rl6Ib0tuqV0p8E3YIAACApkQ44i+cTqn4qNldNJ3IRMnqu7O+vv/+e/3mN7/Rp59+agg/zj33XDVv3lyPPvqo9u7dq7lz5+ryyy83vHf16tV66qmnJEmPPvqoJySpMGDAAF133XW65ZZbNGPGDD3yyCMaP368EhISPOfYbDZt3bpVnTt3rtbbsGHDNHHiRD322GN64okn9P777+vRRx9Vly5dav08GzZs0F//+lc98cQTDfnjAPyCy+XSyp1H9MZ3O7V468mfOtO9VaxuPLudLuvbRrERoU3UIQAAAMxCOOIvio9Kz3Uyu4um8+AOKTrJ7C5qFRERoXfeeafGUSF33323nnjiCZWVlWnp0qXVwpFnn31WTqdTAwYMqDWMsFqt+sc//qH//ve/ys/P16xZs/Tb3/7Wc9xisdQYjFQ2ZcoUvfbaa8rOztbnn3+uSZMm1Xpu165d9dhjj530eoC/sjuc+uqXg/r3kp36eX9uredZLdKYXq1169D26t+2GY/gBQAACCKEI0ADjBw5Ui1btqzxWGxsrLp06aJffvlFO3fuNBwrLy/XvHnzJElXXXXVSb98JSQkqHfv3vrxxx+1cuVKQzhSldPp1MGDB5Wfn6/y8nJPPTU1VdnZ2Vq/fv1JP8+1114rm401FBBYissc+u+aDL25dKcyjhbXel5EqFVXD0jTb8/toHbNo5uwQwAAAPgKwhGgAbp3737S44mJiZKk/Px8Q33Tpk0qKiqSJD388MN6+OGH63S/gwcPVqu5XC795z//0bRp0/TDDz+ouLj2L3/Z2dknvX6fPn3q1AfgD0rKHXp/5R69vmSHjhaW1Xpes6hQ3Ty4vW4e3E7NY8KbsEMAAAD4GsIRoAGioqJOetx6fL0Uh8NhqGdlZTXofhWBSoWSkhJdccUVnlEop3Ky4ESSmjVr1qC+AF9SZnfqo9V79Y9vtisrv7TW89omRum353bQ1QPSeOoMAAAAJBGO+I/IRPc6HMEiMtHsDryicljy3HPP6aKLLqrT+6KjjUP9n3rqKU8wMmzYMN15553q37+/WrVqpcjISE84c95552np0qWep9vUhik18Gd2h1Oz1+3XKwu3af+x2oPAPqnxuv28jrqoZyuF2Hx3wWcAAAA0PcIRf2G1+vQCpaib5s2be7bLy8vVq1evel/D5XLprbfekiQNHTpU33zzjScMqSonJ6dhjQJ+wOl06X8/Z+rlr3/VzuzCWs8b1rWFfj+sk87umMgiqwAAAKgR4QjQhHr27KmwsDCVlZVpwYIFdV5zpLKjR4961iC55pprag1GCgoKtHXr1tPqF/BFLpdLX286pBe//lVbDubXet65XZI0aVQ39U1LaLrmAAAA4JcIR4AmFBUVpQsuuEDz5s3T4sWLtWrVKqWnp9frGna73bNddS2SyqZNm2Z4cg3g71wul5Ztz9bzC37V+oxjtZ43sF0zPTC6m87u2LzWcwAAAIDKmHQNNLFHHnnEM7T/uuuu044dta8l43A49MEHH2jfvn2eWosWLZSQkCBJmjlzpsrKqj+NY/Xq1Xr00Ucbt3HARBv35+q6N77X+Gmrag1GeqfEa/rEQfrv7wcTjAAAAKBeGDkCNLEhQ4ZoypQpevzxx7Vr1y717dtXt912m0aNGqXWrVurtLRUu3fv1sqVKzVr1iwdOHBAP//8s1JTUyW5n4Rz44036p///Kd++uknnXvuubrvvvvUuXNn5ebm6ssvv9Rrr72mmJgYtWnTRr/++qvJnxhouCMFpXp+wVbNXJ2h2tYV7pYcq/tHddWoM5JZUwQAAAANQjgCmGDq1KlKSEjQX/7yFxUUFOiVV17RK6+8UuO5YWFhioiIMNSeeuopLV++XD/99JNWrVql66+/3nA8MTFRn3zyiaZMmUI4Ar9U7nDq/ZV79NLCX5VfYq/xnA5J0br3wi66uE8b2ayEIgAAAGg4whHAJPfee6+uvvpq/fvf/9bXX3+t7du369ixYwoPD1dKSop69+6tkSNH6sorr1RSkvFJRfHx8Vq+fLlefPFFffzxx9q2bZtCQkKUlpamsWPH6p577vGMNAH8zbJt2Xr8i1+0LaugxuMpCZG654IuuqJ/Co/kBQAAQKOwuFy1DVRGfezbt09paWmSpIyMjDp/Md22bZvsdrtCQkLUpUsXb7YIoB74u9n09h4p0v/N3aQFmw7VeDwqzKY7h3fWbUM7KCLU1sTdAQAAwFc09Pv3yTByBABgqqIyu177dofeWLpTZXZnjedc1reN/jKmh1rFR9R4HAAAADgdhCMAAFO4XC59vv6Anpm3RZm5JTWe0yslTlPH9dTA9olN3B0AAACCCeEIAKDJbc/K1+TZG7Vq99EajydGh+mh0d109cA0FlsFAACA1xGOAACaTLnDqTe+26lXFm5TmaP6FBqb1aJbBrfXPRd2UXxkqAkdAgAAIBgRjgAAmsSmA3l66JP12rg/r8bjQzsn6bFxZ6hLcmwTdwYAAIBgRzgCAPCqMrtTr367Xa99u112Z/UHpKUlRurRsWdo1BnJsliYQgMAAICmRzgCAPCaDfuO6cH/btDWQ/nVjlkt0m/P7aj7R3bl0bwAAAAwFeEIAKDRlZQ79PLCbXrjux2qYbCIurSM0d+v6qN+bZs1fXMAAABAFYQjAIBGtWbPUT04a4N2Hi6sdsxmteiP53fSn0Z0VngIo0UAAADgGwhHAACNoqjMrufmb9X0FbvlqmG0SI/WcXruqj7qlRLf9M0BAAAAJ2H15sWzsrL0v//9T1OmTNGYMWOUlJQki8Uii8WiCRMmePPWkqTMzEwlJCR47nn++ed7/Z4AEIzW7MnRRS8v1TvLqwcjoTaLJo3sqs//NIRgBAAAAD7JqyNHkpOTvXn5U7rrrruUm5trag+nYrPZZLfbZbfb5XA4ZLMxzBwwm9PplMPhkCT+Tp6C0+nSv77boRcW/CpHDYuLnJkar79fdaa6teLxvAAAAPBdXh05UllaWppGjRrVVLfTF198oU8++UQtW7Zssns2RFRUlGf72LFj5jUCwKOgoECu48MfIiMjTe7Gdx3OL9Ut76zS37/aWi0YCQux6uEx3fXJH84hGAEAAIDP8+rIkSlTpmjQoEEaNGiQkpOTtXv3bnXo0MGbt5Tk/mJz5513SpKef/553XzzzV6/Z0MlJCQoJydHknsaksPhUFxcnMLDw2WxWEzuDgguTqdTBQUFOnjwoKcWG8sX+5os25atez/6SdkFpdWODWjXTH+/qo86tYgxoTMAAACg/rwajjz++OPevHytJk+erIyMDA0fPlzjx4/36XAkIiJC8fHxnuk/R44c0ZEjR2SxWBjODzQxh8PhGTEiuUeNREdHm9iR77E7nHrx61/1+pId1dYWsViku0d00d0XdJHNSrgLAAAA/xFwT6tZtWqV/vnPfyosLEyvv/662e3USevWrRUWFqbDhw97ai6XS3a73cSugOAWGRmptm3bMoKrkv3HinX3h+u0Zk9OtWMtY8P1ynX9NLhTcxM6AwAAAE5PQIUjdrtdt99+u5xOp/785z+rW7duZrdUJxaLRUlJSYqLi1NBQYEKCwtVVlYmp9NpdmtAULHZbIqMjFRsbKyio6MJRiqZ/8tBPTRrg3KLy6sdO79bC71w9ZlqHhNuQmcAAADA6QuocOT555/X+vXr1alTJ02ePNnsduotLCxMiYmJSkxMNLsVAJAklZQ79PSXm/Xuyj3VjoVYLfrzRd1129AOsjKNBgAAAH4sYMKRnTt36oknnpAkvfbaa4qIiGjU6+/bt++kxzMzMxv1fgBgtp2HC/SnD9ZpU2ZetWNpiZH6x/X91TctoekbAwAAABpZwIQjd9xxh4qLi3Xttdd65ZHBaWlpjX5NAPBVX/6cqQf+u15FZY5qx8b2bq2nr+ytuIhQEzoDAAAAGl9AhCPvvfeeFi5cqLi4OL300ktmtwMAfsvpdOmVRdv0yqJt1Y6Fh1j12Lieuj49jfVYAAAAEFD8PhzJzs7WpEmTJElPPfWUWrdu7ZX7ZGRknPR4Zmam0tPTvXJvAGgKRWV2Tfp4veZtPFjtWOeWMXr1hn7q3irOhM4AAAAA7/L7cOT+++9Xdna2Bg4cqD/+8Y9eu09qaqrXrg0AZtt/rFi/e/fHGtcXuWpAqp64tKeiwvz+/zIAAACAGvn1b7oHDhzQ+++/L0kaMWKEPv7445Oen5WVpZkzZ0qSOnTooLPOOsvrPQKAr/tx91H9fsYaZReUGepWi/TXi8/QhHPaM40GAAAAAc2vw5GyshO/yP/9738/5fmbN2/W9ddfL0m65ZZbCEcABL2Pf8zQI5/+rHKHy1CPiwjRqzf013ldW5jUGQAAANB0/DocAQA0jN3h1NPztmjasl3VjnVMitZbtwxUxxYxJnQGAAAAND2/Dkfat28vl8t1yvMqhoMPGzZMixcv9nJXAODbcovLddeH6/Tdr4erHTuvawv94/p+io/kMb0AAAAIHlazGziV6dOny2KxyGKxaOrUqWa3AwB+bVd2oS5/bXmNwchtQzvo7VsGEowAAAAg6Hh15MiyZcu0fft2z352drZne/v27Zo+fbrh/AkTJnizHQAIaku3Hdad/1mrvBK7oR5qs+ipy3rrmkFpJnUGAAAAmMur4chbb72ld999t8Zjy5cv1/Llyw01whEA8I4Pftirv362UQ6ncSpi8+gw/Wv8AA1qn2hSZwAAAID5/HrNEQDAyblcLv3z2+16fsGv1Y71aB2nN28eoNRmUSZ0BgAAAPgOi6suK5rilPbt26e0NPeQ9IyMDKWmpprcEYBg53S69OTcTXpn+e5qxy7q2UovXHOmosPJyAEAAOBfvPH9m9+KASAAlTucemjWBn26bn+1Y3cO76RJI7vJarWY0BkAAADgewhHACDAFJc5dOcHa/XNlqxqxx4bd4YmDulgQlcAAACA7yIcAYAAkltUrtveXa0f9+QY6iFWi1645kxd2jfFpM4AAAAA30U4AgAB4lBeiW55e5W2HMw31CNCrXr9pgEa3q2lSZ0BAAAAvo1wBAACwO7sQt007Qftyyk21OMiQvTOxEEa0I5H9QIAAAC1IRwBAD+3cX+uJryzStkFZYZ6y9hwvX/bWerWKtakzgAAAAD/QDgCAH7s+51H9Lt3f1R+qd1Qb988Su/fdpbSEqNM6gwAAADwH4QjAOCnvt50SHd+sFZldqeh3rNNnN69NV1JMeEmdQYAAAD4F8IRAPBDn67bpwf+u0EOp8tQP6tDot66ZaBiI0JN6gwAAADwP4QjAOBnPvtpvyZ9vF5VchGNOiNZ/+/6fooItZnTGAAAAOCnCEcAwI/M3ZCp+2sIRq4ZmKq/Xd5bITarOY0BAAAAfoxwBAD8xPxfDuqemeuqTaX57dAOemRsD1ksFpM6AwAAAPwb/8QIAH5g0eZD+tMHa2WvEoxMHNKeYAQAAAA4TYQjAODjFm/N0h9mrFW5wxiMjD+7naZcfAbBCAAAAHCaCEcAwIct3XZYt7+/RmUO4+N6r09P0+OX9CQYAQAAABoB4QgA+KgVO7L123d/VJndGIxcPSBVT13WW1YrwQgAAADQGAhHAMAHrdp1VLdN/1GlVYKRK/ql6Jkr+xCMAAAAAI2IcAQAfMyaPUc18Z1VKi53GOrjzmyj564+UzaCEQAAAKBREY4AgA/5KeOYbnl7tQrLjMHImF6t9NI1BCMAAACANxCOAICP+HlfrsZP+0EFpXZDfeQZyfp/1/dTiI3/ZAMAAADewG/aAOADNh3I003TflB+iTEYGdG9pV69oZ9CCUYAAAAAr+G3bQAwWcbRIt3yzirlFpcb6ud1baHXbuyv8BCbSZ0BAAAAwYFwBABMlFNYplveWaXD+aWG+tDOSXpj/ABFhBKMAAAAAN5GOAIAJikpd+i37/2onYcLDfX0Dol68+aBBCMAAABAEyEcAQATOJwu3TNzndbsyTHUuyXH6s2bByoyjGAEAAAAaCqEIwDQxFwulx7/4hfN/+WQod46PkLTbx2k+MhQkzoDAAAAghPhCAA0sX8t2an3Vu4x1GIjQjR9Yrpax0ea1BUAAAAQvAhHAKAJzVm3X89+tcVQC7NZ9cb4gerWKtakrgAAAIDgRjgCAE1k+fZsPThrfbX689ecqcGdmpvQEQAAAACJcAQAmsSmA3m64/01Kne4DPVHftNDl5zZxqSuAAAAAEiEIwDgdfuPFWvi9FUqKLUb6rcO6aDfntvBpK4AAAAAVCAcAQAvOlZUplveXqVDeaWG+tjerfXo2B6yWCwmdQYAAACgAuEIAHhJSblDt7+3RtuzCgz19A6JeuGaM2W1EowAAAAAvoBwBAC8wOl06f6Pf9Kq3UcN9S4tY/Tm+IGKCLWZ1BkAAACAqghHAMALnp63WV/+fNBQS44L1/Rb0xUfFWpSVwAAAABqQjgCAI1s9tp9enPpLkMtNjxE0yemKyUh0qSuAAAAANSGcAQAGtHG/bl6ePbPhlqozaJ/jx+gHq3jTOoKAAAAwMkQjgBAI8kuKNXt7/2oUrvTUH/qst46p3OSSV0BAAAAOBXCEQBoBOUOp+78z1odyC0x1G8e3E7XDEozqSsAAAAAdUE4AgCN4Km5m/XDLuOTadLbJ+qvF59hUkcAAAAA6opwBABO06w1+zR9xW5DrXV8hP55Y3+F2vjPLAAAAODr+K0dAE7D+oxjmvypcQHWsBCr/j1+gFrEhpvUFQAAAID6IBwBgAY6nF+q389Yo7IqC7D+7fLe6pOaYE5TAAAAAOqNcAQAGqDM7l6ANbPKAqwTzmmvqwakmtQVAAAAgIYgHAGABvi/uZu0ardxAdazOiTqkbE9TOoIAAAAQEMRjgBAPX28OkPvrdxjqLVhAVYAAADAb/FbPADUw7q9OXp0zkZDLTzEqn+PH6ikGBZgBQAAAPwR4QgA1FFWfol7AVaHcQHWp6/ord6p8SZ1BQAAAOB0EY4AQB2U2Z3644y1OpRXaqjfOqSDrujPAqwAAACAPyMcAYA6+L+5m/TjnhxDbXDH5pr8m+4mdQQAAACgsRCOAMApfLXxYLUFWFMSIvXqDf0UwgKsAAAAgN/jt3oAOIkDx4r15082GGoRoVb9e/wANWcBVgAAACAgEI4AQC0cTpfu/egn5RaXG+pTx/VUrxQWYAUAAAACBeEIANTin99u16pdRw21sb1b69pBaSZ1BAAAAMAbCEcAoAY/7j6qVxZtM9RSEiL1tyt6y2KxmNQVAAAAAG8gHAGAKnKLy3XPzJ/kcLo8NatFeuW6voqPDDWxMwAAAADeQDgCAJW4XC5Nnv2z9h8rNtTvvbCrBrZPNKkrAAAAAN5EOAIAlXz8Y4bm/pxpqKV3SNSdwzub1BEAAAAAbyMcAYDjtmcVaOrnmwy1+MhQvXxtX9msrDMCAAAABCrCEQCQVGp36O4P16m43GGoP3tlH7VJiDSpKwAAAABNgXAEACQ9O2+rNmXmGWo3ntVWF/VqZVJHAAAAAJoK4QiAoPftliy9vXyXodalZYweHXuGSR0BAAAAaEqEIwCCWlZeiR7473pDLSzEqn/c0E+RYTaTugIAAADQlLwajmRlZel///ufpkyZojFjxigpKUkWi0UWi0UTJkxotPvk5eVp5syZ+t3vfqf+/fsrISFBYWFhatGihc4//3w9//zzOnbsWKPdD0BgcDpdmvTf9TpSWGaoPzq2h7q3ijOpKwAAAABNLcSbF09OTvbm5SVJ8+bN0+WXX67S0tJqx7Kzs7VkyRItWbJEzz//vD788EMNHz7c6z0B8A9vLt2ppduyDbULeyRr/NntTOoIAAAAgBmabFpNWlqaRo0a1ejXPXLkiEpLS2W1WjV69Gi99NJL+uabb7R27Vp9/vnnuvbaayVJhw4d0sUXX6yffvqp0XsA4H/WZxzTc/O3GmrJceH6+1V9ZLHw2F4AAAAgmHh15MiUKVM0aNAgDRo0SMnJydq9e7c6dOjQqPcIDQ3VHXfcocmTJ6tt27aGY/369dO4ceM0ZMgQ3X333SoqKtKkSZO0aNGiRu0BgH8pKXfovo9+kt3p8tQsFumla/sqMTrMxM4AAAAAmMGr4cjjjz/uzctLkq699lrP6JDa3HXXXXrvvff0448/avHixTpy5IiaN2/u9d4A+KaXvv5VO7MLDbU/nt9J53RKMqkjAAAAAGYKmqfVnH/++ZIkp9OpXbt2nfxkAAFrfcYxvbl0p6F2Zmq87r2wq0kdAQAAADBb0IQjlRdstVqD5mMDqKTU7tCDs9ar0mwahdmseu7qMxVq478LAAAAQLAKmm8DS5YskSSFhISoc+fOJncDwAz//HaHfj1UYKjdfUFndU2ONakjAAAAAL7Aq2uO+Iq5c+dqw4YNkqTRo0crLi6u3tfYt2/fSY9nZmY2qDcATWPTgTy99u12Q+2M1nG6Y1gnkzoCAAAA4CsCPhw5evSo7rzzTkmSzWbTk08+2aDrpKWlNWZbAJpQucOpB2etNzydJsRq0XNX92E6DQAAAIDAnlbjcDh04403as+ePZKkRx99VP369TO5KwBN7Y3vduqXA3mG2u+HdVLPNvEmdQQAAADAlwT0yJE//vGP+uqrryRJY8eO1V//+tcGXysjI+OkxzMzM5Went7g6wPwju1Z+Xpl0TZDrXPLGN11AWsPAQAAAHAL2HDk4Ycf1htvvCFJGjp0qP773//KZrM1+HqpqamN1RqAJuJwuvTQrA0qszs9NatFeu6qPgoPafh/DwAAAAAEloCcVvPss8/qmWeekST1799f//vf/xQZGWlyVwCa2vQVu7V27zFD7bahHdSvbTNzGgIAAADgkwIuHHnttdf0l7/8RZLUo0cPzZ8/X/HxrCsABJs9Rwr13Pwthlr75lG6f2Q3kzoCAAAA4KsCKhx5//339ac//UmS1LFjRy1cuFBJSUkmdwWgqTmdLv3lk59VUu401J+9so8iw5hOAwAAAMAoYMKR2bNna+LEiXK5XEpNTdWiRYvUpk0bs9sCYIIPV+/Vyp1HDLXxZ7fTWR2bm9QRAAAAAF/m8+HI9OnTZbFYZLFYNHXq1BrPWbBgga6//no5HA61bNlSCxcuVPv27Zu0TwC+Yf+xYj39pXE6TUpCpP48prtJHQEAAADwdV59Ws2yZcu0fft2z352drZne/v27Zo+fbrh/AkTJtT7Ht9//70uv/xylZWVKTQ0VC+99JLKy8u1cePGWt+TmpqqhISEet8LgG9zuVyaPPtnFZTaDfWnr+itmPCAfTgXAAAAgNPk1W8Lb731lt59990ajy1fvlzLly831BoSjnz11VcqKiqSJJWXl+vGG2885XveeeedBt0LgG/7ZO1+Lfn1sKF2zcBUnde1hUkdAQAAAPAHPj+tBgDqIiuvRE988Yuh1jI2XI+MPcOkjgAAAAD4C4vL5XKZ3UQg2Ldvn9LS0iRJGRkZSk1NNbkjILj8/v01+uqXg4bamzcP1Mgzkk3qCAAAAIA3eOP7NyNHAPi9b7dmVQtGLjmzDcEIAAAAgDohHAHg10rtDj3+uXE6TWJ0mB4bx3QaAAAAAHVDOALAr721dJd2Hyky1P4ypruax4Sb1BEAAAAAf0M4AsBvHThWrFe/2W6o9WuboKv6s+YPAAAAgLojHAHgt56au1nF5Q7PvsUiPXFJL1mtFhO7AgAAAOBvCEcA+KXl27M19+dMQ+369LbqnRpvUkcAAAAA/BXhCAC/U2Z36rEqi7AmRIXqwVHdTOoIAAAAgD8jHAHgd95dsVvbswoMtQdHd1Oz6DCTOgIAAADgzwhHAPiVQ3klennhr4Zar5Q4XTeorUkdAQAAAPB3hCMA/MrTX25WYZnDUHvi0l6ysQgrAAAAgAYiHAHgN37YeURzfjpgqF09IFX92zYzqSMAAAAAgYBwBIBfsDuqL8IaGxGiP4/pblJHAAAAAAIF4QgAvzDj+z3acjDfUJs0squSYsJN6ggAAABAoCAcAeDzDueX6oWvjYuwdm8Vq5vObmdSRwAAAAACCeEIAJ/396+2KL/Ebqg9cWkvhdj4TxgAAACA08c3CwA+be3eHP13zT5D7bK+bZTeIdGkjgAAAAAEGsIRAD7L4XRpymcbDbXoMJse/k0PkzoCAAAAEIgIRwD4rJmr92rj/jxD7d4Luyo5LsKkjgAAAAAEIsIRAD4pp7BMz83faqh1bhmjCUPam9MQAAAAgIBFOALAJz23YKuOFZUbao9f0lOhLMIKAAAAoJHxLQOAz/n1UL5mrtprqI3t3VpDOieZ1BEAAACAQEY4AsDnPDtvi5yuE/uRoTZNHssirAAAAAC8g3AEgE/5YecRLdqSZaj97ryOSkmINKkjAAAAAIGOcASAz3C5XHp63hZDLSkmTLef19GkjgAAAAAEA8IRAD5j3saD+injmKF29wVdFBMeYk5DAAAAAIIC4QgAn1DucFZ7dG/75lG6Pr2tSR0BAAAACBaEIwB8wsxVe7Uru9BQe3B0dx7dCwAAAMDr+NYBwHQFpXa9smiboXZmWoJ+07uVSR0BAAAACCaEIwBM9+Z3O5VdUGaoPTymuywWi0kdAQAAAAgmhCMATJWVX6I3l+401EZ0b6mzOzY3qSMAAAAAwYZwBICp/t+ibSoqc3j2rRbpzxd1N7EjAAAAAMGGcASAaXYeLtCHqzIMtSv7p6pbq1iTOgIAAAAQjAhHAJjmuflb5XC6PPvhIVbdP6qriR0BAAAACEaEIwBMsXZvjuZtPGioTRzSQa3jI03qCAAAAECwIhwB0ORcLpee+XKLoZYQFao/nN/JpI4AAAAABDPCEQBNbtHmLK3afdRQ+9PwzoqPDDWpIwAAAADBjHAEQJOyO5x69ivjqJGUhEiNH9zOpI4AAAAABDvCEQBN6pO1+7Qtq8BQe2B0V4WH2EzqCAAAAECwIxwB0GSKyxx68etfDbUzWsfp0jNTTOoIAAAAAAhHADSht5fv0qG8UkPtL2O6y2q1mNQRAAAAABCOAGgiRwvL9K/FOwy1oZ2TdF7XFiZ1BAAAAABuhCMAmsSr32xXfqndUPvLmO4mdQMAAAAAJxCOAPC6zNxizfh+j6F2ad826pUSb1JHAAAAAHAC4QgAr3t98Q6VOZye/TCbVQ+M6mZiRwAAAABwAuEIAK86mFuimasyDLXr0tOUlhhlUkcAAAAAYEQ4AsCrXl+8vdqokT+c38nEjgAAAADAiHAEgNcczC3Rh6uNo0auHZSm1vGRJnUEAAAAANURjgDwmn8t2aEy+4lRI6E2C6NGAAAAAPgcwhEAXnEor0QfrNprqF07KE1tEhg1AgAAAMC3EI4A8IrXF9c0aqSziR0BAAAAQM0IRwA0uqy8En1YZdTI1QPTlMKoEQAAAAA+iHAEQKN7fckOlVYZNfJH1hoBAAAA4KMIRwA0qqy8En3wg3HUyFUD0pTaLMqkjgAAAADg5AhHADSqfy3ZaRg1EmK16M7hjBoBAAAA4LsIRwA0mqz8Ev3nhz2G2tUDUxk1AgAAAMCnEY4AaDT/rmHUyB95Qg0AAAAAH0c4AqBRHM4vrTZq5KoBqUpLZNQIAAAAAN9GOAKgUbzx3Q6VlFdda4RRIwAAAAB8H+EIgNN2OL9U739vHDVyZX9GjQAAAADwD4QjAE7bm0t3GkaN2Bg1AgAAAMCPEI4AOC3ZBaV6b+VuQ+3K/ilq25xRIwAAAAD8A+EIgNPy5nfVR438aXgXEzsCAAAAgPohHAHQYO5RI8a1Ri7vx6gRAAAAAP7Fq+FIVlaW/ve//2nKlCkaM2aMkpKSZLFYZLFYNGHCBK/cc+bMmRo9erRat26tiIgItW/fXuPHj9f333/vlfsBwezNpTtVXO7w7LtHjbDWCAAAAAD/EuLNiycnJ3vz8gYlJSW6+uqr9b///c9Q37Nnj/bs2aMPPvhAU6dO1V//+tcm6wkIZEcKSvXeCuOokcv6pqh9UrRJHQEAAABAwzTZtJq0tDSNGjXKa9e/7bbbPMHI8OHDNWfOHK1atUrTpk1Tp06d5HQ6NWXKFL311lte6wEIJm8u3VVt1MhdIxg1AgAAAMD/eHXkyJQpUzRo0CANGjRIycnJ2r17tzp06NDo91myZIk++OADSdK4ceP06aefymazSZIGDRqkSy65RAMGDNDevXv10EMP6aqrrlJCQkKj9wEEi2NFZdWeUHNp3zaMGgEAAADgl7w6cuTxxx/XxRdf7PXpNX//+98lSTabTa+99ponGKmQlJSkZ599VpKUk5OjadOmebUfINDN+H6PispOjBqxWqS7RvCEGgAAAAD+ye+fVlNQUKBFixZJkkaOHKnU1NQaz7viiisUFxcnSZo9e3aT9QcEmpJyh6av2G2oXdynjTowagQAAACAn/L7cGTVqlUqLS2VJA0bNqzW88LCwnT22Wd73lNeXt4k/QGBZvba/couKDPUbj+vo0ndAAAAAMDp8/twZPPmzZ7t7t27n/TciuN2u13btm3zal9AIHI4XXpz6U5DbWjnJPVKiTepIwAAAAA4fV5dkLUpZGRkeLZrm1JTIS0tzfC+M844o8732bdv30mPZ2Zm1vlagL/6etMh7couNNTuGMaoEQAAAAD+ze/Dkfz8fM92TEzMSc+Njj6xJkJBQUG97lM5WAGCkcvl0r+/22GondE6TkM7J5nUEQAAAAA0Dr+fVlNSUuLZDgsLO+m54eHhnu3i4mKv9QQEoh/35Gjd3mOG2h3DOspisZjTEAAAAAA0Er8fORIREeHZLisrO8mZ8izcKkmRkZH1uk/l6Ts1yczMVHp6er2uCfiTfy8xjhpJSYjUb3q3NqkbAAAAAGg8fh+OxMbGerZPNVWmsPDEWgmnmoJT1anWMwEC2fasfC3cnGWo3Ta0g0Jtfj/4DAAAAAD8f1pN5dDiVIumVh79wRoiQN298Z3xCTXxkaG6dhB/hwAAAAAEBr8PRyo/cWbLli0nPbfieEhIiDp37uzVvoBAcSivRHPWHTDUxp/dTtHhfj/wDAAAAAAkBUA4MmjQIM9CrEuWLKn1vLKyMn3//ffV3gPg5N5ZvltlDqdnPyzEqlvOaW9eQwAAAADQyPw+HImNjdUFF1wgSVq4cGGtU2tmz56tvLw8SdLll1/eZP0B/iy/pFz/+WGPoXZl/1S1iA2v5R0AAAAA4H98PhyZPn26LBaLLBaLpk6dWuM5DzzwgCTJbrfrzjvvlMPhMBzPzs7Wn//8Z0lSQkKCfvvb33q1ZyBQzFyVofwSu2ffYpF+d24HEzsCAAAAgMbn1UUDli1bpu3bt3v2s7OzPdvbt2/X9OnTDedPmDChQfcZMWKErrvuOs2cOVOff/65Ro4cqXvvvVdt2rTRzz//rKeeekp79+6VJD3zzDNq1qxZg+4DBJMyu1NvL99lqI06I1kdW9TvSU8AAAAA4Ou8Go689dZbevfdd2s8tnz5ci1fvtxQa2g4Iklvv/228vLy9OWXX+rbb7/Vt99+azhutVr117/+VXfccUeD7wEEky/WH1Bmbomhdvt5nUzqBgAAAAC8x+en1dRVZGSk5s6dq//85z8aOXKkWrZsqbCwMKWlpemGG27QsmXLap2WA8DI5XJVe3zvoPbNNKAdo64AAAAABB6Ly+Vymd1EINi3b5/S0tIkSRkZGUpNTTW5I6Dhvt2apYnvrDbU3rx5oEaekWxSRwAAAADg5o3v3wEzcgRA43ljiXHUSKcW0bqge0uTugEAAAAA7yIcAWCwYd8xrdx5xFC7/byOslotJnUEAAAAAN5FOALA4N9V1hppERuuy/qlmNQNAAAAAHgf4QgAj71HijTv50xDbeKQ9goPsZnUEQAAAAB4H+EIAI+3lu2Us9ISzdFhNt14VjvzGgIAAACAJkA4AkCSdLSwTB//mGGoXZ/eVvGRoSZ1BAAAAABNg3AEgCTpvZW7VVLu9OyHWC26dWgHEzsCAAAAgKZBOAJAJeUOvbdyj6F2Sd82apMQaVJHAAAAANB0CEcA6LOf9utoYZmhdvt5HU3qBgAAAACaFuEIEORcLpfeXWEcNXJulyR1bxVnUkcAAAAA0LQIR4Ag9+OeHG3KzDPUJpzT3pxmAAAAAMAEhCNAkJu+Yrdhv21ilM7v1tKcZgAAAADABIQjQBA7mFuirzYeNNRuHtxONqvFpI4AAAAAoOkRjgBB7D8/7JHD6fLsR4badPXANBM7AgAAAICmRzgCBKlSu0MfrtprqF3eP0XxkaEmdQQAAAAA5iAcAYLU3A2Zyi4wPr73lsHtzWkGAAAAAExEOAIEqXerLMQ6uGNzdWsVa04zAAAAAGAiwhEgCK3bm6P1+3INtVt4fC8AAACAIEU4AgShqqNGUhIidWEPHt8LAAAAIDgRjgBBJiu/RHN/zjTUbjq7nUJs/OcAAAAAQHDi2xAQZD78IUPljhOP7w0Pseq6QTy+FwAAAEDwIhwBgkiZ3an//LDHULu0bxs1iw4zqSMAAAAAMB/hCBBEvvrloLLySw01FmIFAAAAEOwIR4AgUnUh1kHtm6lnm3hzmgEAAAAAH0E4AgSJjftztWZPjqHGqBEAAAAAIBwBgkbVUSPJceEa3bOVOc0AAAAAgA8hHAGCwNHCMn22/oChduNZ7RTK43sBAAAAgHAECAYzV+9Vmd3p2Q+zWXV9elsTOwIAAAAA30E4AgQ4u8OpGSuNj+8d26e1WsSGm9QRAAAAAPgWwhEgwC3cfEgHcksMNRZiBQAAAIATCEeAADe9ykKsZ6YlqG9agim9AAAAAIAvIhwBAtiWg3n6fudRQ23COe1M6gYAAAAAfBPhCBDA3l1hXGskKSZMv+nd2qRuAAAAAMA3EY4AASq3qFxz1u031G5Ib6vwEJtJHQEAAACAbyIcAQLUxz9mqLjc4dkPsVp049lMqQEAAACAqghHgADkcLr03ve7DbWLerVSclyEOQ0BAAAAgA8jHAEC0NJth5VxtNhQm8DjewEAAACgRoQjQACauSrDsH9G6zgNaNfMpG4AAAAAwLcRjgABJiuvRAs3HzLUrj+rrSwWi0kdAQAAAIBvIxwBAsx/1+yT3eny7EeG2nRp3zYmdgQAAAAAvo1wBAggTqdLH602TqkZd2ZrxUWEmtQRAAAAAPg+whEggKzYcUR7jxYZateltzWpGwAAAADwD4QjQAD5cNVew373VrHql5ZgTjMAAAAA4CcIR4AAkV1QqgWbDhpq16ezECsAAAAAnArhCBAgPlmzT+WOEwuxhodYdVnfFBM7AgAAAAD/QDgCBACXy6WZVRZiHdunteKjWIgVAAAAAE6FcAQIAN/vPKpd2YWG2vUsxAoAAAAAdUI4AgSAqguxdm4Zo4HtmpnUDQAAAAD4F8IRwM/lFJbpq40sxAoAAAAADUU4Avi5T9buU5nD6dkPs1l1RT8WYgUAAACAuiIcAfyYy+WqNqVmTO9WahYdZlJHAAAAAOB/CEcAP/bjnhztOGxciPW6QSzECgAAAAD1QTgC+LEPfzCOGumQFK2zOyaa1A0AAAAA+CfCEcBP5RaVa+7PmYba9elpLMQKAAAAAPVEOAL4qU/X7VOp/cRCrKE2i67sn2piRwAAAADgnwhHAD/kXog1w1Ab1bOVmseEm9QRAAAAAPgvwhHAD63de0xbD+UbajeksxArAAAAADQE4Qjgh2ZWeXxv28QoDe7Y3KRuAAAAAMC/EY4AfiavpFxfbDhgqF2XniarlYVYAQAAAKAhCEcAP/PZuv0qKT+xEGuI1aKrBrAQKwAAAAA0FOEI4EdcLpc+qLIQ64U9ktUyNsKkjgAAAADA/xGOAH5kw75cbc7MM9SuP4uFWAEAAADgdBCOAH5k5mrjQqwpCZE6t3OSSd0AAAAAQGAgHAH8REGpXZ/9VGUh1kEsxAoAAAAAp6vJwpG9e/fqgQceUI8ePRQdHa3ExESlp6fr+eefV1FRUaPcY9OmTbrrrrvUu3dvxcXFKSwsTC1atNDw4cP10ksvKT8/v1HuA5jh858OqKjM4dm3WqSrB6aZ2BEAAAAABAaLy+Vyefsmc+fO1Y033qjc3Nwaj3fr1k1ffvmlOnbs2OB7vPDCC/rLX/4iu91e6znt2rXT559/rj59+jT4PrXZt2+f0tLcX1QzMjKUmsrTQ9C4Lnl1mTbsO/F36MIeyXrrloEmdgQAAAAATc8b37+9PnJk/fr1uuaaa5Sbm6uYmBg99dRTWrFihRYtWqTf/e53kqStW7dq7NixKigoaNA9Pv74Yz3wwAOy2+0KCwvTfffdp7lz5+qHH37QBx98oKFDh0qS9uzZo4suuqjWkAbwVZsO5BmCEUm64SxGjQAAAABAYwjx9g3uvfdeFRUVKSQkRAsWLNDgwYM9x0aMGKEuXbrooYce0pYtW/Tiiy9qypQp9b7Hk08+6dmePXu2xo4d69lPT0/X9ddfryuvvFKzZ89WZmampk2bpvvvv//0PhjQhGat2WfYbxUXoWFdW5rUDQAAAAAEFq+OHFm9erUWL14sSbrtttsMwUiFSZMmqUePHpKkl19+WeXl5fW6R15enjZu3ChJ6t+/vyEYqeyxxx7zbK9YsaJe9wDMVO5w6rOf9htqVw5IkY2FWAEAAACgUXg1HJkzZ45ne+LEiTU3YLXq5ptvliTl5OR4wpS6Kisr82yfbM2STp06ebZLS0vrdQ/ATEu2HtaRwjJD7Yr+rGkDAAAAAI3Fq+HI0qVLJUnR0dEaMGBArecNGzbMs71s2bJ63SMpKUmJiYmSpJ07d9Z63o4dOzzbXbt2rdc9ADNVnVLTr22COrWIMakbAAAAAAg8Xl1zZPPmzZKkzp07KySk9lt179692nvq4/bbb9czzzyjtWvXat68eRozZky1cyrWJbHZbPrtb39b73vs27fvpMczMzPrfU3gVHIKy7RoyyFD7aoBjBoBAAAAgMbktXCkpKRE2dnZknTKx+o0a9ZM0dHRKiwsVEZGRr3v9cgjj+jHH3/UwoULdfnll+tPf/qTLrjgAiUlJWnnzp16/fXXtWTJEtlsNv2///f/PGuc1EfFY4KApvTFhgMqd5x42nZYiFUX92ljYkcAAAAAEHi8Fo7k5+d7tmNiTj0FoCIcacjjfGNiYjRv3jxNnz5dzzzzjF544QW98MILhnOuuOIKPfTQQzrrrLPqfX3ALFWn1Iw8I1nxkaEmdQMAAAAAgcmrI0cqhIWFnfL88PBwSVJxcXGD7vfjjz/qww8/rHXdkYULFyo5OVk9evRQXFxcva9/qhEtmZmZSk9Pr/d1gdpsO5SvDftyDTWm1AAAAABA4/NaOBIREeHZrvxEmdpUPEEmMjKy3veaNWuWbrrpJpWWlqpPnz56/PHHdd555yk2NlYZGRn66KOP9OSTT+r111/Xd999p4ULF6pVq1b1useppgYBjW3WWuOokRax4Tq3c5JJ3QAAAABA4PLa02piY2M923WZKlNYWCipblNwKjt06JAmTJig0tJS9ezZUytWrNBll12mxMREhYaGqmPHjnr44Yf1xRdfyGKx6JdfftFdd91Vvw8DNDG7w6lP1+431K7ol6IQm1cfMAUAAAAAQclr37QiIiKUlOT+V+5TPeklJyfHE47Ud+HTmTNnet47efJkRUdH13jeBRdcoAsuuECSNHv2bOXk5NTrPkBTWrY9W1n5pYbalUypAQAAAACv8Oo/Q1c8FWb79u2y2+21nrdly5Zq76mryo/+7d+//0nPHTBggCTJ6XTq119/rdd9gKb0SZVRI71T4tU1ObaWswEAAAAAp8Or4cjQoUMluafMrFmzptbzlixZ4tkeMmRIve4REnJi2ZSTBTCSVF5eXuP7AF+SW1yu+b8cNNRYiBUAAAAAvMer4chll13m2X7nnXdqPMfpdOq9996TJCUkJGj48OH1ukeHDh0820uXLj3pud99950kyWKxqH379vW6D9BU5m7IVJnd6dkPtVl0yZltTOwIAAAAAAKbV8OR9PR0nXvuuZKkadOmaeXKldXOeeGFFzxTY+655x6FhoYajk+fPl0Wi0UWi0VTp06t9v6xY8fKYrFIkp566int37+/2jmS9MYbb+jHH3+UJJ199tlq3rx5gz8X4E2fVHlKzYjuLdUs+tSPwwYAAAAANIzX55a88sorGjJkiIqLizVq1ChNnjxZw4cPV3FxsWbOnKk33nhDktS1a1dNmjSp3tfv3r27Jk6cqLffflv79+9Xv379dO+99+rcc8/1PMp35syZ+uCDDyRJNptNf/vb3xr1MwKNZefhAq3ZY1ws+KoB9VukGAAAAABQP14PR/r166ePPvpIN910k/Ly8jR58uRq53Tt2lVz5841PP63Pl577TUVFhbqo48+0uHDh/XII4/UeF50dLTeeOMNnX/++Q26D+Bts6ssxNo8Okznd2thUjcAAAAAEBy8Oq2mwrhx47Rhwwbdd9996tq1q6KiopSQkKCBAwfq2Wef1bp169S5c+cGXz88PFwzZ87UN998o5tvvlldu3ZVdHS0QkJClJiYqMGDB+uvf/2rtmzZohtuuKERPxnQeJxOl2ZXmVJzSd82CrU1yV9TAAAAAAhaFpfL5TK7iUCwb98+paW5pz9kZGQoNZWni6B+lm/P1o1v/WCozb17qHq2iTepIwAAAADwPd74/s0/SQM+4pM1xlEj3VvFEowAAAAAQBMgHAF8QEGpXfM2HjTUrhrA6CMAAAAAaAqEI4AP+PLnTBWXOzz7NqtFl/ZNMbEjAAAAAAgehCOAD6g6peb8ri3UIjbcpG4AAAAAILgQjgAmyzhapB92HTXUmFIDAAAAAE2HcAQw2SdVHt8bHxmqET1amtQNAAAAAAQfwhHARE6nq1o4csmZbRQeYjOpIwAAAAAIPoQjgIlW7z6qjKPFhhpTagAAAACgaRGOACaqOmqkc8sY9UmNN6kbAAAAAAhOhCOASYrK7Pry54OG2pX9U2WxWEzqCAAAAACCE+EIYJL5vxxUQands2+1SJf3SzGxIwAAAAAIToQjgEk+WbPfsD+0Swu1io8wqRsAAAAACF6EI4AJMnOLtXxHtqF2ZX9GjQAAAACAGQhHABN8sf6AXK4T+7HhIRrds5V5DQEAAABAECMcAUzw2U8HDPtjerdSRKjNpG4AAAAAILgRjgBNbHtWvn45kGeoXdqXKTUAAAAAYBbCEaCJfV5l1EiL2HCd3bG5Sd0AAAAAAAhHgCbkcrn02XpjODKuTxvZrBaTOgIAAAAAEI4ATWj9vlztOVJkqF3at41J3QAAAAAAJMIRoEl99tN+w3775lHqkxpvUjcAAAAAAIlwBGgyDqdLX6zPNNQu6Zsii4UpNQAAAABgJsIRoIms3HFE2QWlhtolZzKlBgAAAADMRjgCNJGqU2p6pcSpc8sYk7oBAAAAAFQgHAGaQEm5Q19tPGioXXpmikndAAAAAAAqIxwBmsDirVnKL7V79i0W6eIzW5vYEQAAAACgAuEI0AQ+++mAYf+sDolqHR9pUjcAAAAAgMoIRwAvyysp16ItWYbapX2ZUgMAAAAAvoJwBPCy+RsPqszu9OyH2iwa06uViR0BAAAAACojHAG87PP1xik1w7q2VEJUmEndAAAAAACqIhwBvCgrv0TLt2cbapf2bWNSNwAAAACAmhCOAF40d0OmnK4T+1FhNl3YI9m8hgAAAAAA1RCOAF5U9Sk1o3u2UmSYzaRuAAAAAAA1IRwBvGTPkUL9lHHMULuEKTUAAAAA4HMIRwAv+bzKqJHE6DAN7ZxkUjcAAAAAgNoQjgBe4HK5NOen/Yba2N6tFWrjrxwAAAAA+Bq+qQFesCkzTzsOFxpqPKUGAAAAAHwT4QjgBVWn1KQkRKp/22YmdQMAAAAAOBnCEaCROZ0ufb7eGI5c0reNrFaLSR0BAAAAAE6GcARoZKt3H1VmbomhxpQaAAAAAPBdhCNAI6s6aqRbcqy6t4ozqRsAAAAAwKkQjgCNqMzu1NyfMw21Sxg1AgAAAAA+jXAEaETLth/WsaJyQ+2SMwlHAAAAAMCXEY4AjeizKk+pGdCumdISo0zqBgAAAABQF4QjQCMpKrNrwS+HDDUWYgUAAAAA30c4AjSSrzcdUnG5w7Nvs1r0m96tTewIAAAAAFAXhCNAI/m8ypSaoZ2TlBQTblI3AAAAAIC6IhwBGkFOYZmW/HrYUGNKDQAAAAD4B8IRoBHM/+Wg7E6XZz88xKpRPVuZ2BEAAAAAoK4IR4BGMPfnTMP+iO4tFRMeYlI3AAAAAID6IBwBTtPRwjKt2HHEUBvbh4VYAQAAAMBfEI4Ap2nBLwflqDSlJiLUqhHdW5rYEQAAAACgPghHgNNU05SaqDCm1AAAAACAvyAcAU5DTVNqftObKTUAAAAA4E8IR4DTMJ8pNQAAAADg9whHgNPwJVNqAAAAAMDvEY4ADVTjU2p6tzGpGwAAAABAQxGOAA1U05Sa4d1bmNgRAAAAAKAhCEeABmJKDQAAAAAEBsIRoAGYUgMAAAAAgYNwBGgAptQAAAAAQOAgHAEaYO4G45SaC7onM6UGAAAAAPwU4QhQT0cLy7Ryp3FKzW96tzapGwAAAADA6SIcAeqp6pSayFAbU2oAAAAAwI81WTiyd+9ePfDAA+rRo4eio6OVmJio9PR0Pf/88yoqKmrUey1cuFATJkxQ586dFR0drfj4eHXt2lVXXXWVXn/9dRUUFDTq/RBcqk6p4Sk1AAAAAODfmuQb3dy5c3XjjTcqNzfXUysqKtLq1au1evVqvfXWW/ryyy/VsWPH07pPTk6OJk6cqM8++6zasby8PG3btk2ffPKJBg8erL59+57WvRCcjhSUMqUGAAAAAAKM18OR9evX65prrlFRUZFiYmL08MMPa/jw4SouLtbMmTP15ptvauvWrRo7dqxWr16tmJiYBt0nNzdXI0eO1Jo1ayRJY8eO1XXXXafOnTvL4XBoz549Wr16tWbNmtWYHw9BZv4vh5hSAwAAAAABxuvhyL333quioiKFhIRowYIFGjx4sOfYiBEj1KVLFz300EPasmWLXnzxRU2ZMqVB97nrrru0Zs0ahYSEaMaMGbr22msNx4cMGaIbbrhBL774ohwOx2l9JgSvL39mSg0AAAAABBqvrjmyevVqLV68WJJ02223GYKRCpMmTVKPHj0kSS+//LLKy8vrfZ9ly5bp/ffflyQ9+uij1YKRyiwWi0JC+DKL+jtSUKoVO7INtbF9mFIDAAAAAP7Oq+HInDlzPNsTJ06suQGrVTfffLMk95ohFWFKfbz66quSpJiYGE2aNKne7wfqYv4vh1RpRo17Sk23luY1BAAAAABoFF4NR5YuXSpJio6O1oABA2o9b9iwYZ7tZcuW1eseZWVlngVYx4wZ41mzxG63a8+ePdq7d6/Kysrq2zpQTbUpNT1aKjLMZlI3AAAAAIDG4tX5JZs3b5Ykde7c+aRTWbp3717tPXW1fv16lZSUSJIGDx6sgwcP6uGHH9Z///tfFRYWSpIiIiI0fPhwPfroozrnnHPq+zEkSfv27Tvp8czMzJMeh3+rcUoNT6kBAAAAgIDgtXCkpKRE2dnuL5OpqaknPbdZs2aKjo5WYWGhMjIy6nWfTZs2Ge7Zu3dvz30r1+fNm6f58+frhRde0L333luve0hSWlpavd+DwMGUGgAAAAAIXF6bVpOfn+/ZrsvjeaOjoyVJBQUF9brP0aNHPduPP/64srOzdfHFF+vHH39USUmJDh06pNdee01xcXFyOp26//77NW/evHrdA5j78wHDPlNqAAAAACBweHXkSIWwsLBTnh8eHi5JKi4urtd9KqbOSFJpaanGjRunOXPmyGp15z4tW7bUH/7wB/Xu3VvDhg2T0+nUQw89pIsuukgWi6XO9znViJbMzEylp6fXq3f4hyMFpVq544ihxpQaAAAAAAgcXgtHIiIiPNt1WRC1tLRUkhQZGdng+0jSc8895wlGKhs6dKiuuOIKzZo1Sxs3btTGjRvVu3fvOt/nVFODELiYUgMAAAAAgc1r02piY2M923WZKlMxAqQuU3Bqu0+HDh3UrVu3Ws8dPXq0Z3v16tX1ug+CF1NqAAAAACCweS0ciYiIUFJSkqRTP+klJyfHE47Ud+HTyuefanRH5XOzsrLqdR8Ep5qm1FzMlBoAAAAACCheC0ckqUePHpKk7du3y26313reli1bqr2nrnr27OnZdjgcJz238vGTPVoYqPDVLwerTak5nyk1AAAAABBQvBqODB06VJJ7ysyaNWtqPW/JkiWe7SFDhtTrHu3atVPbtm0lSTt27DjpuZWPp6Sk1Os+CE5f/pxp2GdKDQAAAAAEHq+GI5dddpln+5133qnxHKfTqffee0+SlJCQoOHDh9f7PldeeaUk6dChQ1qxYkWt582ePduzfe6559b7Pggu2UypAQAAAICg4NVwJD093RNCTJs2TStXrqx2zgsvvKDNmzdLku655x6FhoYajk+fPl0Wi0UWi0VTp06t8T733nuv56k1d999t+HxvhVmzJihxYsXS5LGjh3L02dwSvOZUgMAAAAAQcGr4YgkvfLKK4qMjJTdbteoUaP09NNP6/vvv9e3336rO+64Qw899JAkqWvXrpo0aVKD7tG2bVs98cQTkqQ1a9YoPT1d7777rtasWaNvvvlGf/rTnzRhwgRJUlxcnF566aVG+WwIbFWn1FzAlBoAAAAACEheX5W0X79++uijj3TTTTcpLy9PkydPrnZO165dNXfuXMNjeevrwQcf1NGjR/Xss89q06ZNnjCkspYtW2rOnDnq0qVLg++D4FDTlJqxTKkBAAAAgIDk9ZEjkjRu3Dht2LBB9913n7p27aqoqCglJCRo4MCBevbZZ7Vu3Tp17tz5tO/z9NNPa/ny5Ro/frzat2+v8PBwxcfHa9CgQXryySf166+/avDgwY3wiRDovt50iCk1AAAAABAkLC6Xy3Xq03Aq+/btU1pamiQpIyODNU383IR3Vmnx1sOe/bG9W+ufN/Y3sSMAAAAAgOSd799NMnIE8Cd5JeVavj3bUBvdq5VJ3QAAAAAAvI1wBKji2y1ZKnecGFAVZrNqeLcWJnYEAAAAAPAmwhGgivm/HDTsD+ncXLERobWcDQAAAADwd4QjQCUl5Q7DWiOSdBFTagAAAAAgoBGOAJUs3ZatojKHZ99qkS7skWxiRwAAAAAAbyMcASqpOqVmUPtENY8JN6kbAAAAAEBTIBwBjit3OLVw8yFDbXRPptQAAAAAQKAjHAGOW7XrqI4VlRtqPMIXAAAAAAIf4QhwXNUpNb1T4pWSEGlSNwAAAACApkI4AkhyOl3VwhGeUgMAAAAAwYFwBJC0ft8xHcorNdRG9+QpNQAAAAAQDAhHAElfVRk10qlFtDq3jDWpGwAAAABAUyIcQdBzuVyav5EpNQAAAAAQrAhHEPR+PVSg3UeKDDUe4QsAAAAAwYNwBEGv6kKsbeIj1Dsl3qRuAAAAAABNjXAEQe+rKlNqRvVsJYvFYlI3AAAAAICmRjiCoJZxtEibMvMMNdYbAQAAAIDgQjiCoFZ1Sk1idJgGtU80qRsAAAAAgBkIRxDUqk6pGdkjWTYrU2oAAAAAIJgQjiBoZeWXaM3eHENtdK9kk7oBAAAAAJiFcARB6+tNh+RyndiPCQ/ROZ2SzGsIAAAAAGAKwhEErfm/HDLsn9+thSJCbSZ1AwAAAAAwC+EIglJucblWbM821HhKDQAAAAAEJ8IRBKVvt2TJ7jwxpyYsxKrzu7U0sSMAAAAAgFkIRxCUqj6l5tzOSYoJDzGpGwAAAACAmQhHEHSKyxxa/GuWoTaaKTUAAAAAELQIRxB0vtt2WCXlTs++1SJd2INH+AIAAABAsGIeAYLO/CpTas7q0FyJ0WEmdQMg4DmdksshOR2Sq+q201ivqLmckstlPK/aj6vStqPmulyV9qvWq9Z0olb5eMU1aq25aq7V+VXHt3WSY1XeJ9VwXFWOVT1PtZx3GvtVr19rvcqxk76vLufX9Zya3lOP82u85yl6OOU96vn+umiKe5x2D41ykya4hx9okj9rIIh1vUjqP97sLkxBOIKgUu5wauFm4yN8R/dk1AhgOpdLcpRLjlLJXuZ+dZQZtx3llV4rtivVneWSw378tazSdrnktJ94dZa7QwdH+fFtu3vfaa/0U9v+8VeXwx16eLbtVUKQSq8AAAD+Ij7N7A5MQziCoPL9ziPKK7EbaqN6st4IUI3LJZUXSWWF7tfyYqms6MR2eeHx14r9Eslew6u9VLKX1PJaemLfUWr2JwYAAEAQIxxBUJn/i3FKzZmp8WqTEGlSN0AjczqlsnypJE8qyXX/lOa7f8qOv5YWVKkVuAOQskKprOBEIFJWKIZwAwAAIFgQjiBoOJ0uLfilypQanlIDX1ReLBUdcf8U50jFx46/Vv05VikEyXWHIgQaAcoiWSySxSZZrDX8VByvVJOl+vFqtarnWirdy1JL3Xpiu9qr6nBODa8V7/O8VrpejdtV3lP1nMrXqXaeajjvNPYNtTrUazu32rEa1Hj8VNeo5/E63fMUPdT7Go3Rw6k0wjUapY+T3sDL128kXv9zAGCqlP5md2AawhEEjXUZx5SVbxy6P5opNWgKDrtUeFgqzJIKKn4OSYXZx0OQ46+FxwOR8kKzO/YtFqtkC5dsYZIttMprmGQLcb9aQ93b1tDjx0NPbHuOHT9utbm3baHHa7bj9ZBK+yFV9o/XLDZjzVL1WEX4UOW4xXritXKt6nsqAgtr5SCELyMAAADeRDiCoFF1Sk2XljHq1CLGpG4QEJwOd+iRd0DKz6z0minlHzgRhBQdUUCM6AiJkEKj3D9hUVJo5PH9SCkkUgqNcJ8TEnG8FmGseX7CK/1EuIONkHB3ABISVuU13B0SAAAAAF5EOIKg4HK59FWVR/gyagSnVFYk5e6TcvdKx/ZKxzKk3Izjr/ukgoPup5T4JIsUHidFxEnhsVJYjPs1vOI17ngtRgqLdm+HRVffDo12ByEhke7RDQAAAEAAIhxBUNhyMF97jxYZahex3ghcLvfUlqM73T85u45v75Jydrunu5jJYpMim9Xwk+B+jUhwb0fEu3/C405sh8UQZgAAAAB1RDiCoPD1JuNCrCkJkerZJs6kbtDkyoul7G1S9q/S4a3u16M73CFIWUHT9WGxStEtpJiWUnRL93Z0khTV/MRrVNLx7UR3+MFaEwAAAIDXEY4gKCzcbAxHRp6RLAtfOgNPebGUtUk69MuJEOTwVveUGG+u+WGxSbGtpNjWUlxrKbbN8dfWx8OQZPdPVCLrZwAAAAA+iHAEAe9gbok27Ms11EadkWxSN2gULpd74dODG6VDPx9/3Sgd2S65nI1/v8hEKSFNik+TEtq6f+JTpbgUKa6NOwAh9AAAAAD8FuEIAl7VUSOxESEa1CHRpG7QIPmHpANrpf1r3D8HfpKKjzbe9W1hUkI7KbGjlNjB/dqs/fEQJM29aCkAAACAgEU4goBXdb2R4d1aKtTGQpU+q7RAyvzpRBCyf637CTGNIb6t1KKrlNRNSup8PAzp6B4BwsgPAAAAIGgRjiCgFZTatXLHEUNtJFNqfEvRUWnv99Ke5dKeFVLmesnlOI0LWqTmnaSWPdwhSItuUlJXKamL+9G0AAAAAFAF4QgC2ne/HlaZ48QaFKE2i4Z1a2FiR1D+wRNByJ4V7gVUGyosVkruKbXqJSX3klr1docihCAAAAAA6oFwBAFtYZUpNWd3bK64iFCTuglS5cXuEGTHN9L2RdLhzQ27TliM1KaflNJfatNfan2me50QK1OkAAAAAJwewhEELLvDqW+2ZhlqF/ZgSo3XuVzux+fuWOQOQ/Ysl+wl9buGNcQ9EiSlv5QywP2T1JV1QQAAAAB4BeEIAtaPe3J0rKjcULuQ9Ua8w1Eu7fpO2vI/6df5Ut7++r0/JFJKGyS1GyK1O0dKGSiFRXmnVwAAAACognAEAavqlJozWscpJSHSpG4CUFmRe3TI5v9Jv86TSnLr/t7wOKntYHcQ0m6Ie4pMSJj3egUAAACAkyAcQUByuVz6erMxHOEpNY2g+Jh7ZMjmz91TZuzFdXufxeqeGtPpAqnzBe41Q2z85wcAAACAb+DbCQLS9qwC7TlSZKgRjjSQvUzavlBa/6H061eSo6xu74tLkTqNcIchHYZJUYne7RMAAAAAGohwBAFpQZUpNa3jI9SzTZxJ3fghl0s6sFZaP1P6eZZUfLRu70sZIHW/WOo2RmrRXbJYvNsnAAAAADQCwhEEpIVVptRc2CNZFr6on9qxDGnDR+5Q5Mi2U59vsUnth0jdx0ndx0rxKd7vEQAAAAAaGeEIAk5Wfol+yjhmqDGl5iScTvfCqqvekLZ9Lcl18vNtYe61Q3qMc48QYboMAAAAAD9HOIKA883mLLkqfb+PCQ/RWR35Al9N0VHpp/9Iq6dJObtOfX7a2dKZ10k9L5Mim3m9PQAAAABoKoQjCDhfV1lvZFi3FgoPsZnUjQ/KXC+tetO9lsipnjbTrL105vVSn2ukxI5N0h4AAAAANDXCEQSUojK7lm3PNtRG9mBKjZxOacsX0sp/Shk/nPzc8Hip1xXuUCQtnUVVAQAAAAQ8whEElGXbslVqd3r2bVaLzu/WwsSOTOawSxtnSUtflLK3nvzc5N5S+m+l3ldLYdFN0x8AAAAA+ADCEQSUqlNq0tsnKiEqzKRuTGQvda8nsuxl6die2s+zhkhnXCql3y6lncUoEQAAAABBiXAEAcPhdOmbLVmG2oXB9pSaskJpzXRpxT+k/Mzaz4ttLQ2YKA24RYpt1WTtAQAAAIAvIhxBwFi3N0dHCssMtaBZb6SsSPrhX9LKV6WiI7Wfl9xLGnqfe7SILbTp+gMAAAAAH0Y4goDx9WbjlJpuybFq2zzKpG6aiNMhrZ8pffN/Uv6B2s9LGSid96DUdTRTZwAAAACgCsIRBIyq642MDPQpNTu+kRZMkQ79XPs57c+VzntA6jCMUAQAAAAAakE4goCw43CBdh4uNNQCdr2RQ79IX0+Rti+s/Zwuo92hSFp60/UFAAAAAH6KcAQBYWGVUSMtY8PVJyXepG68JO+A9O1T0k8fSC5nzed0PF+68HGpTd+m7AwAAAAA/Jq1qW60d+9ePfDAA+rRo4eio6OVmJio9PR0Pf/88yoqKvLKPTMzM5WQkCCLxSKLxaLzzz/fK/eB+RZWWW/kgh7JsloDZBqJwy4t/3/SPwZI62bUHIy0PEO68RNp/ByCEQAAAACopyYZOTJ37lzdeOONys3N9dSKioq0evVqrV69Wm+99Za+/PJLdezYsVHve9dddxnuicB0pKBUa/bkGGqjAmVKzf610hd3SwdrWVckppU04hGp742S1da0vQEAAABAgPD6yJH169frmmuuUW5urmJiYvTUU09pxYoVWrRokX73u99JkrZu3aqxY8eqoKCg0e77xRdf6JNPPlHLli0b7ZrwTd9syZLTdWI/KsymwZ2am9dQYygtkL6aLL11Qc3BSGi0dP5k6e61Uv+bCUYAAAAA4DR4feTIvffeq6KiIoWEhGjBggUaPHiw59iIESPUpUsXPfTQQ9qyZYtefPFFTZky5bTvWVBQoDvvvFOS9Pzzz+vmm28+7WvCd1WdUnNelxaKCPXjsODXBdLcSVLu3hoOWqQBt7iDkdgAGR0DAAAAACbz6siR1atXa/HixZKk2267zRCMVJg0aZJ69OghSXr55ZdVXl5+2vedPHmyMjIyNHz4cI0fP/60rwffVVLu0He/ZhtqfvuUmoIsadat0gdX1xyMtDxDuu1radwrBCMAAAAA0Ii8Go7MmTPHsz1x4sSaG7BaPSM7cnJyPGFKQ61atUr//Oc/FRYWptdff/20rgXft2JHtorLHZ59q0Ua0d0Pp1Jt+Fh6dZC08ZPqx2zh0oi/SrcvkdIGNX1vAAAAABDgvBqOLF26VJIUHR2tAQMG1HresGHDPNvLli1r8P3sdrtuv/12OZ1O/fnPf1a3bt0afC34h6+rPMJ3YLtEJUaHmdRNA5TmS7PvkGb/Tio5Vv14+3OlP66UzntACvGjzwUAAAAAfsSra45s3rxZktS5c2eFhNR+q+7du1d7T0M8//zzWr9+vTp16qTJkyc3+Do12bdv30mPZ2ZmNur9cGpOp0sLN2cZahee4UejRvavlT65TTq6s/qxyGbSqKekvjdIlgB5JDEAAAAA+CivhSMlJSXKznavBZGamnrSc5s1a6bo6GgVFhYqIyOjQffbuXOnnnjiCUnSa6+9poiIiAZdpzZpaWmNej2cvvX7julwfqmhNvKMViZ1Uw9Op7TyVWnR45LTXv1476ul0U9LMS2avjcAAAAACEJeC0fy8/M92zExMac8vyIcaejjfO+44w4VFxfr2muv1ahRoxp0DfiXqk+p6dQiWh2Sok3qpo7yD0lzfi/t+Kb6sfB4adzLUq8rmrwtAAAAAAhmXh05UiEs7NRrJYSHh0uSiouL632v9957TwsXLlRcXJxeeumler+/Lk41oiUzM1Pp6eleuTdqVnW9EZ8fNbJtoTsYKTxc/VjqIOnKaVKzdk3fFwAAAAAEOa+FI5WntZSVlZ3y/NJS9/SIyMjIet0nOztbkyZNkiQ99dRTat26db3eX1enmhqEprXnSKF+PWQcZTTSV9cbcdjdU2hW/L8aDlqkcydJ5/9FsoU2eWsAAAAAAC+GI7GxsZ7tukyVKSwslFS3KTiV3X///crOztbAgQP1xz/+sX5Nwm8tqrIQa1JMmPqmNTOpm5MoyZVm3SptX1j9WGxr6Yo3pA7nNX1fAAAAAAAPr44cSUpKUnZ29imf9JKTk+MJR+qz8OmBAwf0/vvvS5JGjBihjz/++KTnZ2VlaebMmZKkDh066KyzzqrzveBbvtliDEfO79ZSNquPPdXl6E7pg+uk7K3Vj3UdI136Tym6edP3BQAAAAAw8OqjfHv06KGlS5dq+/btstvttT7Od8uWLYb31FXl6Tp///vfT3n+5s2bdf3110uSbrnlFsIRP5VfUq4fdh0x1C7s4WNTanYvkz66SSrOMdZtYdKo/5PSb+cRvQAAAADgI6zevPjQoUMluafMrFmzptbzlixZ4tkeMmSIN1tCAFi2LVvlDpdnP9Rm0dAuPvTY2zXvSu9dWj0YiUqSbvlCOusOghEAAAAA8CFeDUcuu+wyz/Y777xT4zlOp1PvvfeeJCkhIUHDhw+v8/Xbt28vl8t1yp8Kw4YN89SmT5/eoM8E8y2qMqXm7I7NFRPu1UFQdeN0SF89LH1xt+S0G4+17Cn97hup7dnm9AYAAAAAqJVXw5H09HSde+65kqRp06Zp5cqV1c554YUXtHnzZknSPffco9BQ4xM7pk+fLovFIovFoqlTp3qzXfgBp9Olb6uEIxd094EpNSW50gfXSt+/Vv1Y1zHSbfN5TC8AAAAA+Civ/3P7K6+8oiFDhqi4uFijRo3S5MmTNXz4cBUXF2vmzJl64403JEldu3b1PJIXqM36fcd0pND4aOgR3ZNN6ua4YxnSf66SDm+pfmzIPdIFj0lWW9P3BQAAAACoE6+HI/369dNHH32km266SXl5eZo8eXK1c7p27aq5c+caHv8L1KTqU2q6tIxR2+ZRJnUj9xNp3r1Eys0w1q2h0rhXpH43mtMXAAAAAKDOvDqtpsK4ceO0YcMG3XffferatauioqKUkJCggQMH6tlnn9W6devUuXPnpmgFfm7RZmM4MsLMp9RkbZHeHlM9GIlq7l54lWAEAAAAAPyCxVV5xVI02L59+5SWliZJysjIUGpqqskdBZ7M3GINfvobQ+3jOwYrvUOiCc1skN6/TCoyPlJYSd2kG//L+iIAAAAA4CXe+P7tA4/4AOqm6pSa+MhQ9W+b0PSN7PtRmnGFexHWylr1kcbPkaKbN31PAAAAAIAGIxyB3/imypSa87u1UIitSWaGnbB7mfupNGUFxnpqunvESGRC0/YDAAAAADhthCPwC8VlDi3bnm2ojWjqR/huXyjNvEmyFxvr7c+Vrp8phcc0bT8AAAAAgEZBOAK/sHJntkrtTs++zWrRsK4tmq6BLXOl/06QHMbHCKvzSOna96XQyKbrBQAAAADQqAhH4BeqPqVmQLtmSogKa5qb//KpNOs2yeUw1rtfLF31thQS3jR9AAAAAAC8ookXbADqz+VyVVuM9YKmmlKz4xvpk99VD0Z6XyNd/S7BCAAAAAAEAMIR+LzNmfnKzC0x1C7o0QThyP617jVGnOXGev+bpcv/JdkYeAUAAAAAgYBwBD7vmy2HDPttE6PUqYWXFz/N3i795yqpvNBYH3ibNO7/SVabd+8PAAAAAGgyhCPweQurrDcyontLWSwW790wL1N6/3Kp6Iix3vMK6TfPS968NwAAAACgyRGOwKcdzi/V+n3HDDWvTqkpPibNuFLK3WusdzzfPZXGyl8ZAAAAAAg0fNODT1u8NUsu14n96DCb0jskeudm5cXSh9dJWb8Y6236SdfOYPFVAAAAAAhQhCPwaVWfUnNulxYKD/HCeh8OuzTrVmnvSmM9sZN04ywpPLbx7wkAAAAA8AmEI/BZZXanvvv1sKE2whtTalwu6X/3SFu/NNZjWknjP5Wikxr/ngAAAAAAn0E4Ap+1atdRFZY5DLXh3bwQjnzzpLRuhrEWHi/d9InUrF3j3w8AAAAA4FMIR+CzFlV5hO+ZaQlqEdvI6378PEta+oKxFhIh3TBTatWrce8FAAAAAPBJhCPwSS6XS4uqPML3gu6NPGrk4Ebpsz8ZaxardNU7UrtzGvdeAAAAAACfRTgCn7TjcKH2Hi0y1EY0ZjhSdFT66EbJXmysj31B6v6bxrsPAAAAAMDnEY7AJ31TZUpNcly4eraJa5yLOx3S7N9JObuN9QETpIG3Ns49AAAAAAB+g3AEPqnqlJoR3ZNlsVga5+Lf/k3avtBYSx0kjfl741wfAAAAAOBXCEfgc3KLyvXjnhxDrdHWG9n8hbT0eWMtuqV0zXtSSCMv9goAAAAA8AuEI/A5S7YdlsPp8uyHh1g1pHPS6V/48Fbp098ba9YQ6Zp3pbg2p399AAAAAIBfIhyBz/lms3G9kSGdkxQZZju9i5bkSTNvlMoKjPXRf+PJNAAAAAAQ5AhH4FPsDqcW/3rYUDvtp9Q4ne4RI0e2GetnXi+l33561wYAAAAA+D3CEfiUdRnHdKyo3FA77XBk6QvS1rnGWuszpYtfkhprkVcAAAAAgN8iHIFPqfqUmh6t49QmIbLhF9y5RPr2KWMtMlG6doYUehrXBQAAAAAEDMIR+JRvthjXGzmtp9QUH5Pm/EHSicVdZbFKV70tJbRt+HUBAAAAAAGFcAQ+I+NokX49ZFwwdUSP0whH5j0k5e031i54TOo0vOHXBAAAAAAEHMIR+Ixvthin1DSPDtOZqQkNu9gvc6QNHxlrHYZJ59zdsOsBAAAAAAIW4Qh8xqIq4cj53VrKZm3Agqn5B6X/3WushcdLl70mWfmfPAAAAADAiG+K8AmFpXZ9v+OIoXZBQ6bUuFzSZ3+SinOM9bHPS/Gpp9EhAAAAACBQEY7AJyzbnq0yh9OzH2K16NwuSfW/0Jp3pO1fG2tnXCb1vvr0GgQAAAAABCzCEfiExVuNU2rSOyQqNiK0fhc5skOa/4ixFtNKuvglydKA6TkAAAAAgKBAOALTuVwufbvlsKE2or6P8HXYpU/vkMqLjPVLX5WiEk+zQwAAAABAICMcgek2Z+brYF6JoXZ+t3qGI8tfkvatNtYG3ip1GXma3QEAAAAAAh3hCEz3bZUpNW0To9SpRXTdL3DgJ2nxM8ZaYkdp1P+dfnMAAAAAgIBHOALTfVvlEb7Du7WQpa5rhJSXuKfTOO0nahardPkbUlg9AhYAAAAAQNAiHIGpjhWVae1e42N3z6/PeiOL/yYd3mKsDb1fShvUCN0BAAAAAIIB4QhM9d22bDldJ/YjQq0a3LF53d6ctUX/v717j46qvPc//plLLpAQQoR40AQjxEAU2sMtFYEDgSKVgAW03vACq6WsemmhsFBpQaqHVjxYqr9TbHukeGCp0baISEA5XBKBGLmIgEpAFCGp3AIhXJKQy+zfHzRDdu4zmdlDZt6vtVhrz97P3t/v9nHgyTd7P48++qN53799Rxr2pO8SBAAAAAAEPYojCKjsOq/U3NajsyLDHM2faBjS2lnm12kc4dLEv0jOcB9nCQAAAAAIZhRHEDDVLkPZB81L+Kb37NKykz/7h/TNFvO+234uxaf6KDsAAAAAQKigOIKA2Vt4VmcuVpj2tWgJ3/Jz0ge/Mu/rmCgNnenD7AAAAAAAoYLiCAJm8wHzUyPJ8dFKjGvf/Ik5C6ULx837fvC8FN6CcwEAAAAAqIPiCAIm+4B5vpERLVml5sQXUt4r5n3Jo6ReGT7MDAAAAAAQSiiOICBOni/X3sIS077hzc03UjMJq1F9ZZ8jQrpjoWSz+SFLAAAAAEAooDiCgMip80pNdIRTA26Ia/qkvW9LR7aZ9w2ZLl3Tw7fJAQAAAABCCsURBER2neLIkOTOCnc28b9jeYm0/tfmfbHdpCEz/JAdAAAAACCUUByB5SqrXfrwS3NxpNn5Rjb/TrponqNEd7wghbXzcXYAAAAAgFBDcQSW23WkWOfLq0z7hjU138jxfdL2P5v3pfxA6nmHH7IDAAAAAIQaiiOw3OY6q9Tccl2Mro2JbLixyyVlzZIM15V9zsjLS/cCAAAAAOADFEdguex88ys16T2beKVmb6ZUkGfeN+SXUtyNfsgMAAAAABCKKI7AUv88W6YDJ86b9qU3Nt9IxUXp/54x7+uUJA3+hX+SAwAAAACEJIojsNTmfPMrNbHtw/TvibENN857pZFJWBt5BQcAAAAAAC9QHIGlsuvMNzIspYscdlv9hmXF0raXzfuSR0kpo/2YHQAAAAAgFFEcgWXKK6u17dBp075G5xvZ9rJ0qcS8b+RcP2UGAAAAAAhlFEdgme2Hz6isstr92Wa7/ORIPedPSB//ybzvlolS1+/6OUMAAAAAQCiiOALLbKoz30jfxFh1igqv33DLIqmy9Mpnm0NK/5WfswMAAAAAhCqKI7BM3flGGnylpvgbaecy876+k6TOyf5LDAAAAAAQ0iiOwBKHiy7qm9Olpn0NLuGbvVByVV757AiXhj3p5+wAAAAAAKGM4ggsUXcJ3/gOEbrluhhzo5P50t5M876BP5E6Jvg5OwAAAABAKKM4AktsrvNKzfCeXWSz1VnCd/N/SobryufwaGnoTAuyAwAAAACEMooj8LuLl6r08ddnTPvqzTfyz13S/vfM+259VIrq7OfsAAAAAAChjuII/C73q9OqqL7yRIjTbtPgm+oUPTY+Z/7crpN02+MWZAcAAAAACHUUR+B3dV+pGZgUp5jIsCs7Dn8ofb3ZfNKQGVJkRwuyAwAAAACEOsuKI0ePHtWsWbOUmpqqqKgoxcXFKS0tTYsWLVJpaWnzF2jCuXPnlJmZqalTp6pfv36KjY1VeHi4unTpouHDh2vRokU6e/asb24EHjEMo95krOm9utRuUP+pkeh/kwZOtSA7AAAAAAAkpxVBsrKyNGnSJJWUlLj3lZaWaseOHdqxY4deffVVrV27Vt27d/f42uvWrdOECRN06dKleseKioqUk5OjnJwcLVq0SG+++abS09NbdS/wzIET53WspNy0zzTfyMH3pcLt5pOGzZbC21uQHQAAAAAAFjw5smfPHt1zzz0qKSlRdHS0FixYoNzcXG3cuFFTp15+OuDAgQPKyMjQhQsXPL7+6dOndenSJdntdo0ePVqLFy/Wpk2b9Mknn2j16tW69957JUknTpzQ2LFj9emnn/ry9tCMzfmnTJ+vj22n5Pjoyx9crvpPjXRKkvo+ZE1yAAAAAADIgidHpk+frtLSUjmdTq1fv16DBg1yHxsxYoRuuukmzZ49W/n5+fr973+vefPmeXT9sLAwTZs2TXPmzFG3bt1Mx/r27atx48Zp8ODB+vnPf67S0lLNnDlTGzdu9Mm9oXl15xsZ0Sv+yhK++Wukk5+bTxg+R3KGW5QdAAAAAACSzTAMw18X37Fjh9LS0iRJ06ZN05/+9Kd6bVwul3r37q39+/erU6dOOnHihMLCwuq1a62BAwdq586dstvtOnnypK655hqfXr+wsFCJiYmSpIKCAiUkJPj0+m1RSWml+v3n/6nadeV/sb9OHqARva69PNfI0lFS4Y4rJ3RJlX62TbI7ApAtAAAAAKAt8MfP3359rWbVqlXu7SlTpjScgN2uhx9+WJJUXFys7Oxsv+QyfPhwSZeLMYcPH/ZLDJhtOXTKVBgJd9o1qPu/lvA9mmcujEjS0JkURgAAAAAAlvNrcWTLli2SpKioKPXv37/RdsOGDXNvb9261S+51J6w1W5nBWMr1J1vZFD3a9Qu/F/Fj20vmRt37CbdMt6axAAAAAAAqMWvc47s379fkpScnCyns/FQvXr1qneOr+Xk5EiSnE6nkpOTPT6/sLCwyePHjh3zKq9g5XIZyjlYf74RSdKpA9LBdeYTBj0qOXz/OhUAAAAAAM3xW3GkvLxcRUVFktTs+z+dOnVSVFSULl68qIKCAp/nkpWVpb1790qSRo8erZiYGI+vUfM+E1pm3z9LVHShwrTPvYRv7v8zN46MZYUaAAAAAEDA+O39kvPnz7u3o6Ojm20fFRUlSV4t59uUM2fO6LHHHpMkORwOPffcc82cAV/IPmB+paZ75yh1u6a9dP64tPctc+OBP5Yimv9/BAAAAAAAf/DrkyM1wsObX5o1IiJCklRWVuazHKqrqzVp0iQdOXJEkvTrX/9affv29epazT3RcuzYMffKPKi/hO/wmqdGPv6zVF3riRJHuJQ2zcLMAAAAAAAw81txJDIy0r1dUVHRRMvLaiZMbdeunc9yePTRR/X+++9LkjIyMjR37lyvr8XSvC135mKF9hSeNe1L79VFunRe2rnU3Pi790kdrrUuOQAAAAAA6vDbazUdOnRwb7fkVZmLFy9KatkrOC3x9NNP6y9/+YskaciQIfrb3/4mh4NlYq2w5ctTMq6s4Kt2YQ6l3RgnfbJCKi8xNx70hLXJAQAAAABQh9+KI5GRkercubOk5ld6KS4udhdHfDHx6cKFC/X8889Lkvr166c1a9b49IkUNK3ufCO39bhGETaXlLfE3LDnGKlLioWZAQAAAABQn9+KI5KUmpoqSTp06JCqqqoabZefn1/vHG8tWbJETz31lPtaH3zwgTp27Niqa6LlXC5DHx40F0eG9+wifb5KKqkzb8ttP7cuMQAAAAAAGuHX4siQIUMkXX5lZteuXY22y8nJcW8PHjzY63grVqzQ448/Lknq3r27NmzY4H56BdbY988Snb5onmNmeEoXKfclc8OENKnbrRZmBgAAAABAw/xaHBk/frx7e9myZQ22cblcWr58uSQpNjZW6enpXsVauXKlpkyZIsMwlJCQoI0bN+q6667z6lrwXr0lfLtEKfHsx9LxfeaGg38u2WwWZgYAAAAAQMP8WhxJS0vT0KFDJUlLly7VRx99VK/Niy++qP3790uSfvGLXygsLMx0/LXXXpPNZpPNZtP8+fMbjLN+/Xrdf//9qq6uVnx8vDZs2KCkpCSf3gtaJvtgnSV8U+KlbS+bG8X1uDzfCAAAAAAAVwG/LeVb46WXXtLgwYNVVlam22+/XXPmzFF6errKysqUmZnpXlEmJSVFM2fO9Pj6eXl5mjBhgioqKhQWFqbFixersrJSn332WaPnJCQkKDY21ttbQiOKL1bo04Kzpn0Z8aekXZvNDW97XLKzchAAAAAA4Org9+JI37599dZbb+nBBx/UuXPnNGfOnHptUlJSlJWVZVr+t6Xef/99lZaWSpIqKys1adKkZs9ZtmyZJk+e7HEsNO3DBpbw/feCFeZG7TtL373f2sQAAAAAAGiCX1+rqTFu3Djt3btXM2bMUEpKitq3b6/Y2FgNGDBACxcu1O7du5WcnGxFKvCjuvONZNxQJcfnK82NvjdNCmNZZQAAAADA1cNmGLV/1w9vFRYWKjExUZJUUFCghISEAGdkLZfL0MAFG0wr1azptV69v3ntSqOw9tKMz6X2cdYnCAAAAAAICv74+duSJ0cQ/Oou4RuuSqUeX21u1PdBCiMAAAAAgKsOxRH4RN1XaibFfiZH+Rlzo4FTLcwIAAAAAICWoTgCn6i7hO9DYXVWqLlhiNQlxcKMAAAAAABoGYojaLW6S/jeYDuu7ud3mhv1n2xpTgAAAAAAtBTFEbRa3SV8HwzLMTdo10lKHWdtUgAAAAAAtBDFEbRaTq35RsJUpXucdYoj331ACou0OCsAAAAAAFqG4ghaxeUylHPwSnFklH2nOrrOmhv1f8TapAAAAAAA8ADFEbTKZ9+al/C937HJ3KDbbVKXnhZnBQAAAABAy1EcQatszr/y1Eg32wkNdXxmbsBErAAAAACAqxzFEbRK7SV873PUWb43Mla6+U5rEwIAAAAAwEMUR+C12kv4hqlKP3Jkmxt8934prJ3VaQEAAAAA4BGKI/Ba7SV8R9o/URfbOXMDJmIFAAAAALQBFEfgtdpL+D7g2Gg+mHirFJ9qcUYAAAAAAHiO4gi8UnsJ3wTbSf2HY5+5AROxAgAAAADaCIoj8ErtJXzrT8TaUbplvPVJAQAAAADgBYoj8Er2v16pcapK9zhyzAeZiBUAAAAA0IZQHIFXsg9cXsJ3pH234m1nzQf7MRErAAAAAKDtoDgCj9Vewrf+RKzfk6692fqkAAAAAADwEsUReOzDL0/JZVyeiHWonYlYAQAAAABtG8UReKxmCd97Hdmy24wrByI6SjePD0hOAAAAAAB4i+IIPFKzhK9NLt3l+NB88Lv3SuHtA5MYAAAAAABeojgCj9Qs4TvQdkDX2c6YD/Z7ODBJAQAAAADQChRH4JGaJXzvdOSaD3RJlf6tTwAyAgAAAACgdSiOwCPZB07KqSqNcXxsPtDnrsAkBAAAAABAK1EcQYudLb28hO9g++eKs10wH+xNcQQAAAAA0DZRHEGLffhlkVxGA6/UXN9fiusemKQAAAAAAGgliiNosewDJxWhCt1u32k+0PvuwCQEAAAAAIAPUBxBi7hchj48eErp9k/VwVZW64hNumVCwPICAAAAAKC1KI6gRT77tkRFFyrqv1KTNESK6RqYpAAAAAAA8AGKI2iRnAOnFK1SjbTvNh/owys1AAAAAIC2jeIIWiT74Cndbt+pCFvllZ32MCn1zsAlBQAAAACAD1AcQbNKSiu1+2ix7nR8ZD6QPFJqHxeYpAAAAAAA8BGKI2jWlkOnFGuc0xD7PvMBVqkBAAAAAAQBiiNoVs6BUxrj+FhOm+vKTmc7qecdgUsKAAAAAAAfoTiCJhmGoZyDpzSu7is1Pe+QIqIDkxQAAAAAAD5EcQRN2n/svBznv9X37PnmA6xSAwAAAAAIEhRH0KTsgyeV4cgz7TMiO0rJ3w9QRgAAAAAA+BbFETQp58Ap3enINe2zpY6TnBEByggAAAAAAN+iOIJGnS+vVNGRL/Qd+2Hzgd53BSYhAAAAAAD8gOIIGrXt0Gll2MxPjRjtu0hJ/xGgjAAAAAAA8D2KI2hUzoGT9V+p6T1BcjgDlBEAAAAAAL5HcQQNMgxD3+ZvV7L9W/OB3qxSAwAAAAAILhRH0KBDJy9oUFm2aV9lhwQpMS0wCQEAAAAA4CcUR9Cg7PwTGuv4yLTP+Z27JZstQBkBAAAAAOAfFEfQoILPc5VgKzLts/XhlRoAAAAAQPChOIJ6Ll6qUvyxzeZ90UnStb0DkxAAAAAAAH5EcQT15H19WiNsu0z7wm7O4JUaAAAAAEBQojiCenbv26eb7UdM+8JvGRugbAAAAAAA8C+KIzAxDEP2L9837St3dpQSWKUGAAAAABCcKI7A5HDRRfUv/9i0r/zG70sOZ4AyAgAAAADAvyiOwGTbF9/oVvsXpn0dvzsuQNkAAAAAAOB/FEdgcnbfB4qwVbk/V9mcsiWPDGBGAAAAAAD4F8URuJVXVivhZLZpX3GXNCkyJjAJAQAAAABgAYojcMs7dFLDbJ+Y9kV/584AZQMAAAAAgDUojsDt6083K852wbSvXe+MAGUDAAAAAIA1KI7Ard3X/2f6XBR1kxTbLUDZAAAAAABgDYojkCQdPV2qgZfyTPuqbxodoGwAAAAAALAOxRFIkj7ZvUPJ9m9N+7r0nxCgbAAAAAAAsA7FEUiSLn2x1vT5nCNO9uv7BSgbAAAAAACsQ3EEulRVraTTH5r2nUkYIdn53wMAAAAAEPz46RfafeAb9Ve+ad81/X4YoGwAAAAAALAWxRHo+K7Vctpc7s+XFK4Oqd8PYEYAAAAAAFiH4ggUW7DR9LmwU5oU3j5A2QAAAAAAYC3LiiNHjx7VrFmzlJqaqqioKMXFxSktLU2LFi1SaWmpz+JkZmZq9OjR6tq1qyIjI5WUlKSHHnpIeXl5zZ8cgr49XaJ+FbtM+5w3ZwQoGwAAAAAArGczDMPwd5CsrCxNmjRJJSUlDR7v2bOn1q5dq+7du3sdo7y8XD/60Y+0Zs2aBo/b7XbNnz9fc+fO9TpGUwoLC5WYmChJKigoUEJCgl/i+NqmtW9rxPappn3VM/Ll6Ng1QBkBAAAAANA4f/z87fcnR/bs2aN77rlHJSUlio6O1oIFC5Sbm6uNGzdq6tTLP5QfOHBAGRkZunDhgtdxfvzjH7sLI+np6Vq1apW2b9+upUuXqkePHnK5XJo3b55effVVn9xXsDAOrDN9PhLZi8IIAAAAACCkOP0dYPr06SotLZXT6dT69es1aNAg97ERI0bopptu0uzZs5Wfn6/f//73mjdvnscxcnJy9MYbb0iSxo0bp3feeUcOh0OSNHDgQN15553q37+/jh49qtmzZ+vuu+9WbGysT+6vLausqlbK2a2S7cq+CzcwESsAAAAAILT49cmRHTt2KDs7W9LlJztqF0ZqzJw5U6mpqZKkP/zhD6qsrPQ4zgsvvCBJcjgcWrJkibswUqNz585auHChJKm4uFhLly71OEYw+mLvdiXaTpr2dU2bGKBsAAAAAAAIDL8WR1atWuXenjJlSsMJ2O16+OGHJV0uXNQUU1rqwoUL2rjx8moro0aNavRdo4kTJyomJkaStHLlSo9iBKuzu981fT5p76K47v0ClA0AAAAAAIHh1+LIli1bJElRUVHq379/o+2GDRvm3t66datHMbZv365Lly7Vu05d4eHhuvXWW93nePOESrCJ/3aT6XNhl2GSzdZIawAAAAAAgpNf5xzZv3+/JCk5OVlOZ+OhevXqVe8cT2PUvU5jcdavX6+qqip9+eWXuvnmm1scp7CwsMnjx44da/G1rganjh1Vz6qDpvlGovqMDVxCAAAAAAAEiN+KI+Xl5SoqKpKkZpfV6dSpk6KionTx4kUVFBR4FKd2++bi1Cz1U3OeJ8WR2ucGg28+ekddbFdWcb6oSPUY+IMAZgQAAAAAQGD47bWa8+fPu7ejo6ObbR8VFSVJHi/n60mcmhjexAk2YV+tN30+EJUmZ0S7AGUDAAAAAEDg+PXJkRrh4eHNto+IiJAklZWV+S1OTQxv4jT3RMuxY8eUlpbm0TUDqaxrmg58c0o9qw5IkiqTRwc4IwAAAAAAAsNvxZHIyEj3dkVFRbPtayZVbdfOs6cXPIlTE8ObOM29stPWDHrwGUnP6MyJozry0Sr1uO2uQKcEAAAAAEBA+K040qFDB/d2S15huXjxoqSWvYLjbZyaGN7ECVZx13ZT3PifBzoNAAAAAAACxm9zjkRGRqpz586Sml/ppbi42F248HTi09pPdDQXp/arMcE2wSoAAAAAAPCO34ojkpSamipJOnTokKqqqhptl5+fX++clqq94kzt6zQVx+l0Kjk52aM4AAAAAAAgOPm1ODJkyBBJl19n2bVrV6PtcnJy3NuDBw/2KMbAgQPdE7HWvk5dFRUVysvLq3cOAAAAAAAIbX4tjowfP969vWzZsgbbuFwuLV++XJIUGxur9PR0j2J06NBBI0eOlCRt2LCh0VdrVq5cqXPnzkmSJkyY4FEMAAAAAAAQvPxaHElLS9PQoUMlSUuXLtVHH31Ur82LL76o/fv3S5J+8YtfKCwszHT8tddek81mk81m0/z58xuMM2vWLElSVVWVHnvsMVVXV5uOFxUV6cknn5R0uQDzk5/8pFX3BQAAAAAAgodfiyOS9NJLL6ldu3aqqqrS7bffrt/97nfKy8vT5s2bNW3aNM2ePVuSlJKSopkzZ3oVY8SIEbrvvvskSatXr9aoUaO0evVq7dy5U8uWLdOtt96qo0ePSpKef/55derUyTc3BwAAAAAA2jy/LeVbo2/fvnrrrbf04IMP6ty5c5ozZ069NikpKcrKyjIty+upv/71rzp37pzWrl2rzZs3a/Pmzabjdrtdc+fO1bRp07yOAQAAAAAAgo/fnxyRpHHjxmnv3r2aMWOGUlJS1L59e8XGxmrAgAFauHChdu/e3erVY9q1a6esrCy9/vrrGjVqlOLj4xUeHq7ExEQ98MAD2rp1a6Ov5QAAAAAAgNBlMwzDCHQSwaCwsFCJiYmSpIKCAiUkJAQ4IwAAAAAAgo8/fv625MkRAAAAAACAqxXFEQAAAAAAENIojgAAAAAAgJBGcQQAAAAAAIQ0iiMAAAAAACCkURwBAAAAAAAhjeIIAAAAAAAIaRRHAAAAAABASKM4AgAAAAAAQhrFEQAAAAAAENIojgAAAAAAgJBGcQQAAAAAAIQ0iiMAAAAAACCkURwBAAAAAAAhjeIIAAAAAAAIaRRHAAAAAABASKM4AgAAAAAAQhrFEQAAAAAAENIojgAAAAAAgJDmDHQCwaKqqsq9fezYsQBmAgAAAABA8Kr9M3ftn8Vbg+KIj5w6dcq9nZaWFsBMAAAAAAAIDadOnVJSUlKrr8NrNQAAAAAAIKTZDMMwAp1EMCgvL9e+ffskSV26dJHTefU/lHPs2DH3Uy7bt29X165dA5wRfIn+DW70b3Cjf4MffRzc6N/gRv8GN/q3baiqqnK/vdGnTx9FRka2+ppX/0/wbURkZKQGDhwY6DS81rVrVyUkJAQ6DfgJ/Rvc6N/gRv8GP/o4uNG/wY3+DW7079XNF6/S1MZrNQAAAAAAIKRRHAEAAAAAACGN4ggAAAAAAAhpFEcAAAAAAEBIozgCAAAAAABCGsURAAAAAAAQ0iiOAAAAAACAkGYzDMMIdBIAAAAAAACBwpMjAAAAAAAgpFEcAQAAAAAAIY3iCAAAAAAACGkURwAAAAAAQEijOAIAAAAAAEIaxREAAAAAABDSKI4AAAAAAICQRnEEAAAAAACENIojAAAAAAAgpFEcAQAAAAAAIY3iSBt39OhRzZo1S6mpqYqKilJcXJzS0tK0aNEilZaW+ixOZmamRo8era5duyoyMlJJSUl66KGHlJeX57MYaJg/+/jcuXPKzMzU1KlT1a9fP8XGxio8PFxdunTR8OHDtWjRIp09e9Y3N4IGWfUdru3YsWOKjY2VzWaTzWbT8OHD/RIH1vbvhg0bNHnyZCUnJysqKkodO3ZUSkqK7r77br3yyiu6cOGCT+PBmv794osv9MQTT6hPnz6KiYlx/x2dnp6uxYsX6/z58z6JgytOnjypNWvWaN68ebrjjjvUuXNn99+XkydP9ktMxlnWsap/GWMFRiC+v7UxxmrjDLRZa9asMTp27GhIavBPz549ja+++qpVMcrKyoyxY8c2GsNutxvPPvusj+4Idfmzj9euXWtEREQ0eu2aP9dee62xadMmH98ZDMOa73BD7rrrLlOcYcOG+TwGrOvfM2fOGD/84Q+b/S7v3r279TcFNyv6d9GiRYbT6WyyX2+44QZjz549ProrGIbR5H/vRx55xKexGGdZz4r+ZYwVOFZ+fxvCGKtt48mRNmrPnj265557VFJSoujoaC1YsEC5ubnauHGjpk6dKkk6cOCAMjIyWvXbwh//+Mdas2aNJCk9PV2rVq3S9u3btXTpUvXo0UMul0vz5s3Tq6++6pP7whX+7uPTp0/r0qVLstvtGj16tBYvXqxNmzbpk08+0erVq3XvvfdKkk6cOKGxY8fq008/9eXthTyrvsN1vffee/rHP/6h+Ph4n10T9VnVvyUlJRo1apTeffddSVJGRoZWrFihjz76SFu3btXrr7+u6dOnKyEhwSf3hcus6N+3335bs2bNUlVVlcLDwzVjxgxlZWXp448/1htvvKEhQ4ZIko4cOaIf/OAHKikp8dn94YrExETdfvvtfrs+46zA8lf/Msa6Ovj7+1sXY6wgEOjqDLwzfPhwQ5LhdDqN3NzcesdfeOEFd8XyN7/5jVcxsrOz3dcYN26cUVVVZTp+6tQpo1u3boYko1OnTkZxcbFXcdAwf/dxZmamMW3aNOPIkSONtnn55ZfdMUaMGOFxDDTOiu9wXefPnzcSExMNScby5cv5rYYfWdW/Dz30kDtOZmZmo+1cLpdRWVnpdRyYWdG/vXv3dl9jzZo1DbaZOHGiu82LL77oVRzUN2/ePOO9994zjh8/bhiGYRw+fNgvv3lmnBUYVvQvY6zAser7WxdjrOBAcaQN2r59u/sLN23atAbbVFdXG6mpqe5/UCsqKjyOM2bMGEOS4XA4jIKCggbbvPnmm+5cFi1a5HEMNMyqPm6JAQMGuB/tLSoq8kuMUBOo/n3iiScMSUZ6erphGAb/cPuJVf27ZcsWd5z58+e3Nm20kBX9W1JS4o7Rr1+/Rtvt2bPH3e6uu+7yKAZazl8/XDHOujpY9cNzQxhj+Z9V/csYKzjwWk0btGrVKvf2lClTGmxjt9v18MMPS5KKi4uVnZ3tUYwLFy5o48aNkqRRo0Y1+kj2xIkTFRMTI0lauXKlRzHQOCv6uKVqJpJyuVw6fPiwX2KEmkD07/bt2/XHP/5R4eHheuWVV1p1LTTNqv797//+b0lSdHS0Zs6c6fH58I4V/VtRUeHe7t69e6PtevTo4d6+dOmSRzEQWIyzIDHGChaMsYIHxZE2aMuWLZKkqKgo9e/fv9F2w4YNc29v3brVoxjbt293D7RqX6eu8PBw3Xrrre5zKisrPYqDhlnRxy1Ve8Btt/NXhi9Y3b9VVVX66U9/KpfLpSeffFI9e/b0+lponhX9W1FR4Z5n5I477lB0dLSky3195MgRHT161PQDNnzHiv7t3Lmz4uLiJElff/11o+2++uor93ZKSopHMRBYjLMgMcYKBoyxggvfwjZo//79kqTk5GQ5nc5G2/Xq1aveOZ7GqHudpuJUVVXpyy+/9CgOGmZFH7dUTk6OJMnpdCo5OdkvMUKN1f27aNEi7dmzRz169NCcOXO8vg5axor+3bNnj8rLyyVJgwYN0vHjxzVlyhTFxsYqKSlJN9xwgzp27KgxY8YoNzfXi7tAY6z6/v70pz+VJH3yySdat25dg22ee+45SZLD4dBPfvITj2MgcBhnQWKMFQwYYwUXiiNtTHl5uYqKiiSp2dUHOnXqpKioKElSQUGBR3Fqt28uTmJiYoPnwTtW9XFLZGVlae/evZKk0aNHux/thfes7t+vv/5azz77rCRpyZIlioyM9Oo6aBmr+veLL74wxezTp49ee+01Xbx40bR/3bp1Gjp0qP7whz94dH00zMrv769+9St9//vflyRNmDBBs2bN0rp167Rjxw699dZbGj58uP7+97/L4XDo5ZdfVmpqqscxEDiMs8AYq+1jjBV8KI60MefPn3dv1zxG3ZSagZmnSwl6EqcmhjdxUJ9VfdycM2fO6LHHHpN0+beSNb+hROtY3b/Tpk1TWVmZ7r33XkuXswtVVvXvmTNn3Nu/+c1vVFRUpLFjx2rnzp0qLy/XiRMntGTJEsXExMjlcumXv/xlo08foOWs/P5GR0dr3bp1+p//+R8lJCToxRdf1JgxY5SWlqb77rtPOTk5mjhxorZt26ZHH33U4+sjsBhnhTbGWMGBMVbwoTjSxtQ8Ri1dfg+1OREREZKksrIyv8WpieFNHNRnVR83pbq6WpMmTdKRI0ckSb/+9a/Vt29fn10/lFnZv8uXL9eGDRsUExOjxYsXe3w+PGdV/9Z+QuTSpUsaN26c3n33XfXv318RERGKj4/Xz372M2VlZclut8swDM2ePVuGYXgUB2ZW//28c+dOvfnmm43OO7Jhwwb97//+r86dO+fV9RE4jLNCF2Os4MAYKzhRHGljaj+u1ZLJ9momemrXrp3f4tSeTMrTOKjPqj5uyqOPPqr3339fkpSRkaG5c+f67Nqhzqr+LSoqcq9gsmDBAnXt2tWj8+GdQPwdLUn/9V//1eBkfkOGDNHEiRMlSZ999pk+++wzj+LAzMq/n//+979r+PDh2rRpk/r06aN33nlHp0+fVkVFhb766iv99re/VWVlpV555RXddtttOn78uMcxEDiMs0IXY6y2jzFW8KI40sZ06NDBvd2SRytrfrvYksd/vY1T+zeYnsZBfVb1cWOefvpp/eUvf5F0+Qerv/3tb3I4HD65Nqzr31/+8pcqKirSgAEDeOTeQoH4O/rGG29scnb80aNHu7d37NjhURyYWdW/J06c0OTJk3Xp0iXdcsstys3N1fjx4xUXF6ewsDB1795dTz/9tN577z3ZbDZ9/vnneuKJJzy7GQQU46zQxBgrODDGCl6NT7OOq1JkZKQ6d+6soqIiFRYWNtm2uLjY/Q9q7cm8WqL25GCFhYUaMGBAo21rTw7maRzUZ1UfN2ThwoV6/vnnJUn9+vXTmjVr+C2Vj1nRv99++61WrFghSRoxYoTefvvtJtufPHlSmZmZki7/oP29732vxbFgZtX3t3Z7TyZzPHnypEdxYGZV/2ZmZrrPnTNnjmnOidpGjhypkSNHasOGDVq5cqWKi4vVqVMnj2IhMBhnhR7GWMGBMVZwozjSBqWmpmrLli06dOiQqqqqGl1KMD8/33SOJ26++eYGr9NUHJYh8x0r+riuJUuW6KmnnnJf64MPPlDHjh1bdU00zN/9W/sR7RdeeKHZ9vv379f9998vSXrkkUf4h7uVrPj+3nLLLe7t6urqJtvWPt7U0rNoGSv6t/Yyr/369Wuybf/+/bVhwwa5XC4dPHiQ728bwTgrtDDGCh6MsYIbr9W0QUOGDJF0+THLXbt2NdquZu10SRo8eLBHMQYOHOieIKz2deqqqKhQXl5evXPQOlb0cW0rVqzQ448/Lknq3r27NmzYoM6dO3t9PTTN6v6Ftazo3xtuuEHdunWTJH311VdNtq19/Prrr/coDuqzon9rF1yqqqqabFtZWdngebi6Mc4KHYyxgLaD4kgbNH78ePf2smXLGmzjcrm0fPlySVJsbKzS09M9itGhQweNHDlS0uXZ8Bt7fHjlypXuWfInTJjgUQw0zoo+rrFy5UpNmTJFhmEoISFBGzdu1HXXXefVtdAy/u7fpKQkGYbR7J8aw4YNc+977bXXvLonXGHV9/euu+6SdHl+itzc3EbbrVy50r09dOhQj+PAzIr+vfHGG93bW7ZsabLthx9+KEmy2WxKSkryKA4Ch3FWaGCMFXwYYwU5A23S0KFDDUmG0+k0cnNz6x1/4YUXDEmGJOOZZ56pd3zZsmVNHjcMw9i4caO7zZ133mlUVVWZjp86dcro1q2bIcmIjY01zpw544tbw79Y0ccffPCBER4ebkgy4uPjjfz8fB/fBRpjRf82p+b8YcOGeXU+GmdF/x45csSIjIw0JBn9+/c3Lly4UK/NihUr3NfJyMho7W3hX/zdv/v37zdsNpshybj++uuNwsLCBvP485//7L7OoEGDWntbaMThw4fd/50feeSRFp3DOKvt8Ff/Msa6Ovirf5vDGKtt4vnLNuqll17S4MGDVVZWpttvv11z5sxRenq6ysrKlJmZ6Z4JOyUlxb3UlKdGjBih++67T5mZmVq9erVGjRql6dOn67rrrtO+ffu0YMECHT16VJL0/PPPMwmcj/m7j/Py8jRhwgRVVFQoLCxMixcvVmVlZZNLfSYkJCg2NtbbW0ItVnyHEThW9G+3bt307LPPavbs2dq1a5fS0tI0e/Zs9e7dWyUlJVq5cqX+9Kc/SZJiYmK0ePFin91fqPN3//bq1UtTpkzRX//6V/3zn/9U3759NX36dA0dOlQdOnRQQUGBMjMz9cYbb0iSHA6Hfvvb3/r0HkPZ1q1bdejQIffnoqIi9/ahQ4fq/fZ38uTJXsVhnBUYVvQvY6zAser7iyAV6OoMvLd69WojJibGXZms+yclJcX48ssvGzy3pRXR0tJSY8yYMY3GsNvtXldU0Tx/9vEzzzzT6HUb+7Ns2TL/3nCIseI73JSa8/mthn9Y1b9PPfWU+ymDhv7Ex8c3+HQDWsff/VteXm7ce++9zf69HBUVZbz++ut+vNPQ88gjj3j0b2NDGGddvazoX8ZYgWPl97cpjLHaJuYcacPGjRunvXv3asaMGUpJSVH79u0VGxurAQMGaOHChdq9e3erZzVv166dsrKy9Prrr2vUqFGKj49XeHi4EhMT9cADD2jr1q2aP3++b24I9VjRxwgc+je4WdW/v/vd77Rt2zY99NBDSkpKUkREhDp27KiBAwfqueee08GDBzVo0CAf3BFq83f/RkREKDMzU5s2bdLDDz+slJQURUVFyel0Ki4uToMGDdLcuXOVn5+vBx54wId3BisxzgKAq4fNMGrNGAMAAAAAABBieHIEAAAAAACENIojAAAAAAAgpFEcAQAAAAAAIY3iCAAAAAAACGkURwAAAAAAQEijOAIAAAAAAEIaxREAAAAAABDSKI4AAAAAAICQRnEEAAAAAACENIojAAAAAAAgpFEcAQAAAAAAIY3iCAAAAAAACGkURwAAAAAAQEijOAIAAAAAAEIaxREAAAAAABDSKI4AAAAAAICQRnEEAAAAAACENIojAAAAAAAgpFEcAQAAAAAAIY3iCAAAAAAACGkURwAAAAAAQEijOAIAAAAAAEIaxREAAAAAABDSKI4AAAAAAICQ9v8BIwMgTyVASSoAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "def nonlinear_plant_dynamics(t, x, u, params):\n", + " return -10 * x * abs(x) + u\n", + "def nonlinear_plant_output(t, x, u, params):\n", + " return 5 * x\n", + "nonlinear_plant = ct.ss(nonlinear_plant_dynamics, nonlinear_plant_output, \n", + " inputs='ud', outputs='y', states=1)\n", + "\n", + "# compare step responses \n", + "t, y = ct.input_output_response(nonlinear_plant, time, step_input)\n", + "plt.plot(t, y, label='nonlinear')\n", + "t, y = ct.step_response(plantcont, 1.5)\n", + "plt.plot(t, y, label='linear')\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "a7a163d6", + "metadata": {}, + "source": [ + "## now create a closed-loop system. \n", + "\n", + "Note that this system is not intended to show operation of well-designed feedback control system. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "dce984be", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 546 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# create zero-order hold approximation of plant2 dynamics\n", + "def discrete_nonlinear_plant_dynamics(t, x, u, params):\n", + " return x + simulation_dt * nonlinear_plant_dynamics(t, x, u, params)\n", + "nonlinear_plant_simulator = ct.NonlinearIOSystem(discrete_nonlinear_plant_dynamics, nonlinear_plant_output, \n", + " dt=simulation_dt,\n", + " inputs='ud', outputs='y', states=1)\n", + "\n", + "# system from r to y\n", + "nonlinear_Gyr_simulator = ct.interconnect((controller_simulator, nonlinear_plant_simulator, u_summer, delayer), \n", + " inputs='r', outputs=['y', 'u'])\n", + "\n", + "# simulate\n", + "t, y = ct.input_output_response(nonlinear_Gyr_simulator, time, step_input)\n", + "plt.plot(t, y[0],'.-');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f0fe24a2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 7733044e41ba51b445f23d00ece03d5ce53d65f9 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Sun, 9 Apr 2023 16:28:32 -0700 Subject: [PATCH 0233/1025] reword examples according to @murrayrm suggestion, change example to be compatible with new interconnect --- doc/examples.rst | 5 +++- ..._nonlinear_and_sampled_data_systems.ipynb} | 29 ++++++++++--------- 2 files changed, 19 insertions(+), 15 deletions(-) rename examples/{simulating_sampled_data_systems.ipynb => interconnected_nonlinear_and_sampled_data_systems.ipynb} (99%) diff --git a/doc/examples.rst b/doc/examples.rst index 1ea328bd7..1410407db 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -37,7 +37,10 @@ Jupyter notebooks The examples below use `python-control` in a Jupyter notebook environment. These notebooks demonstrate the use of modeling, anaylsis, and design tools -using running examples in FBS2e. +using examples from textbooks +(`FBS `_, +`OBC `_), courses, and other +online sources. .. toctree:: :maxdepth: 1 diff --git a/examples/simulating_sampled_data_systems.ipynb b/examples/interconnected_nonlinear_and_sampled_data_systems.ipynb similarity index 99% rename from examples/simulating_sampled_data_systems.ipynb rename to examples/interconnected_nonlinear_and_sampled_data_systems.ipynb index 471141af8..5c5306029 100644 --- a/examples/simulating_sampled_data_systems.ipynb +++ b/examples/interconnected_nonlinear_and_sampled_data_systems.ipynb @@ -5,7 +5,7 @@ "id": "e2b51597", "metadata": {}, "source": [ - "# simulating sampled-data control systems \n", + "# simulating Simulink-like interconnections of systems including nonlinear and sampled-data systems \n", "Sawyer B. Fuller 2023.03" ] }, @@ -41,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "5ffaa0e8", "metadata": {}, "outputs": [], @@ -91,7 +91,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAANkCAYAAABVuUSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AADsoUlEQVR4nOzdd3RU1d7G8e9MegJJ6B0C0qv0LmJBUVFBRBCpIoh6bdhf6/XaruVaEBRFiooICAoiSpEqIE0gEHpJIySB9F7mvH8MjBkyE5KYSSHPZy2W4z77nP07Qwp5cvbeJsMwDEREREREREREKilzWRcgIiIiIiIiIlKWFI6IiIiIiIiISKWmcEREREREREREKjWFIyIiIiIiIiJSqSkcEREREREREZFKTeGIiIiIiIiIiFRqCkdEREREREREpFJTOCIiIiIiIiIilZrCERERERERERGp1BSOiIiIiIiIiEilpnBERERERERERCo1hSMiIiIiIiIiUqkpHBERERERERGRSk3hiIiIiIiIiIhUagpHRERERERERKRSUzgiIiIiIiIiIpWawhERERERERERqdQUjoiIiIiIiIhIpaZwREREREREREQqNfeyLuBKkZGRQXBwMAC1atXC3V1vrYiIiIiIiEhJy8nJITY2FoAOHTrg7e39j6/p0p/gY2Ji2LFjBzt27GDnzp3s3LmT8+fPAzBu3Djmzp1b4mMuXLiQOXPmsH//fuLj46lbty79+/fn4YcfplevXiU+3kXBwcH06NHDZdcXEREREREREXs7duyge/fu//g6Lg1H6tSp48rL28nIyODuu+/m559/tmsPDQ0lNDSUBQsW8Oqrr/LSSy+VWk0iIiIiIiIiUv6V2tyPRo0a0aZNG1avXu2S699///22YGTgwIE89thj1K9fn+DgYN58801OnDjByy+/TL169Zg0aVKJj1+rVi3b6x07dlCvXr0SH0NERERERESksouKirLN3Mj7s/g/4dJw5OWXX6Z79+50796dOnXqcPr0aZo2bVri42zcuJEFCxYAMGTIEJYtW4abmxsA3bt35/bbb6dr166EhYXxzDPPMHz4cAIDA0u0hrxrjNSrV4+GDRuW6PVFRERERERExF5Jrffp0t1qXnvtNW677TaXT6/573//C4CbmxszZsywBSMX1axZk3feeQeA+Ph4Zs+e7dJ6RERE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ZmYW6T1Ys2YN9913H02bNsXHxwd/f386derEM888Q1RUVJGuJSIiIleQs8GwbApYchwft+RYj58NLt26ypohJSI8PNwADMAIDw8v9HlHjx41QkJCjKNHj7qwOskrLS3NGDVqlO3vy9mfV155Jd+56enpxtChQws8r379+sZff/3lcOw5c+bY+h04cMC47rrrnF6nR48eRkpKit35r7zyymXrvvTTesCAAQZgDBgwIF89p06dsp0zZ84c49lnn3V6zVq1ahkhISFO39fTp08bbdq0KbCufv36GefPn3d4fkF1OnsPnHnzzTcNs9nstA4vLy9j3rx5Ds9dv369rd/69esLrKWgj5VNmzYZ/v7+l/27WrFiRYFjOHLxvSroz6XvY0G15v243Ldvn9GzZ0+n133//fcNwzCM0NBQo127dg77mEwm4+uvvy7wHr788kvDx8enwHu4//77jezs7CK/P4Zh//e4evVqY8iQIU7HefTRRw3DMIy4uDjjmmuucdrvjTfecDpebm6u8fDDDxd4PwEBAcbq1audXiMpKcno27ev0/O7du1q7Nmzx+5z1pGUlJTLfp2qUqWK04+9vB8Pp06dKvR7fpG+r4mIiJSt9KwcI+x8qrE7NM5Ytf+MsWjDbmPBD0uM775831j64eNG5GutDOMV/8v/WfpgWd+KU8X9+bsgWnNEKhWLxcIdd9zBmjVrAGjRogUPPfQQ3bp1w9fXl6ioKLZu3er0t8Tjxo1j2bJlAHTq1Ilp06bRpk0b4uLiWLhwIXPnzuXMmTNcf/317N+/nwYNGjitZfLkyWzfvp1x48YxYsQI6tatS1hYGP/973/Ztm0bO3bs4D//+Q9vvfWW7ZyHHnqI4cOH8+KLL/LTTz9Rv359fvvttxJ5b7744gu2bt3KgAEDmDJlCi1btiQhIYH58+czf/58YmNjmThxItu2bct3bkpKCtdddx0nT54E4M4772TixInUr1+fU6dOMX36dDZu3MiWLVu47bbb2Lx5M25ubiVS96VmzJjBCy+8AECtWrV49tln6du3L7m5uaxdu5Z3332X1NRUxo8fT82aNbnllltKvIbMzExGjhxJUlISVatWZerUqQwcOJDatWuTnZ1NaGgo27Zt44cffijW9efMmUNqaio33XQTZ86c4Y477uA///mPXR8/P79iXXvy5Mns3r2bhx56iKFDh1KtWjX27t3LSy+9RFRUFE8//TSDBg1i/PjxnDx5kueee46bb74ZPz8//vjjD1555RUSExN56KGHGDRoELVr1843xldffcWkSZMAaN++PVOmTKFz5874+vpy6tQpZs+ezS+//MLs2bMJCAjg/fffL9a9XPTSSy/x559/Mnr0aO69917q1q3L0aNHefXVVzly5Agff/wxQ4YM4ZNPPmHr1q1MnTqVoUOHUqNGDdu9nzlzhpdffpk77riDdu3a5Rvjueee49NPPwWgadOmPPvss3Tp0oXU1FSWL1/O9OnTSUxM5LbbbmPHjh106tQp3zVGjx7NH3/8AUCPHj144oknaNGiBdHR0cydO5fFixczZcqUAu81NzeXIUOGsH79ekwmEyNHjmTYsGE0bdqU7OxsduzYwfvvv09YWBh33XUXW7dupWvXrv/o/RUREZHSkZaVQ3RSJjFJGUQnW/8bk5xJQkI8JIThnRyGX3oktXOiaGiKpbEphmtMsfiaivb0qU3Ij3DHp5VnkdYSiVhET45UEB9++KHt72no0KFGRkaGw365ublGZGSkXdvPP/9sO/f66683MjMz8503a9YsW58RI0bkO573N7KAw9+uZ2RkGO3btzcAo0aNGg5/cz5u3DgDMJo0aXLZey7skyOA8cADDxgWiyVfv0mTJtn67NmzJ9/xp556ynb8xRdfzHfcYrEYo0ePtvWZMWNGkerMq6AnR2JiYgxfX18DrE/whIWF5euzZ88ew8/PzwCMBg0aGFlZWXbHS+LJkXXr1hXqyZDs7GwjMTGxwDEK0qRJEwMwxo0bd9m+zmo1DPuPS5PJZCxbtixfn/379xtubm4GWJ8i8vLyMrZv356v38qVK23X+uCDD/IdDwsLs/0djRs3zumTIS+88IIBGGaz2Thy5Mhl7+9Sef8eAePDDz/M1ycqKsr2dE+tWrWc3vu+fftsTyJdfMokr/3799uOt2/f3oiPj8/XZ9WqVbY+PXr0yHd8+fLltlpvueUWh+/La6+9ZndPjp4cee+99wzA8PDwMH755ReH701cXJztqZ9+/frlO64nR0RERErXxSc9dpw6b6zYF2l8semE8cbKEOPR7/YY93y+1bj+3bXGoJfnGyOff8d45oVpxif/N8b46cWbjD0vdTFiX25YuKdAivsnM+XyN1AG9ORIJWaxGMSnZZV1GaWmmq8nZnPBa0oUlcVi4d133wWgQYMGzJ8/Hy8vL4d9zWYz9evXt2u7+FthDw8P5syZg6enZ77zHnjgARYtWsTatWtZunQpUVFR1KtXz+EYw4YN47777svX7uXlxSOPPMKDDz7I+fPnCQkJoWPHjkW61+KoV68en3zyicO1PJ566im+/PJLADZv3kznzp1txzIzM23H2rZt63BNC5PJxIwZM/j11185f/4806dPZ+rUqSV+D3PmzLGt1fL+++/TqFGjfH06d+7M888/z4svvkhkZCQ//vgjd999d4nWcfbsWdvra665xmk/d3d3/P39S3Tsf2rEiBHceeed+do7dOhAv3792LhxI7GxsTz33HP07NkzX79bbrmFJk2aEBoayubNm3niiSfsjn/00UekpaVRv359PvvsM9zdHX8beu2115g3bx6RkZHMnz8/35MxRdGzZ08ee+yxfO1169Zl6NChzJs3j9jYWEaOHOnw3jt27Ei/fv3YtGkTmzdvznd85syZtvV0vvjiCwIDA/P1ufnmm5k4cSJffvklO3bsYOfOnXTv3t3uGmD9/P/iiy8cvi8vvvgiixcv5sCBAw7vMzs72/aUzSOPPMLgwYMd9qtWrRrvvvsut9xyC1u2bOH48eM0b97cYV8REREpPsMwiE/L5mxiBmeT0jmbmMnZpAzOJqZz9uITIEkZxKdlUZ1kGptiaHThT1NTLAMuvK5vOo+7yQL5f/xwLQ9f6/a+lYTCkQoiPi2Lrv9ZW9ZllJrdL95AjSqOg4vi2rt3L5GRkYA1xKhSpUqhz83JyWHjxo0A3HjjjQ5/6L7ogQceYO3ateTk5LBhwwZGjRrlsN/o0aOdXiPvY+4nT54slXBk+PDhTsOiVq1aUaVKFVJSUmxTZy7avXs3CQkJAIwfP97pdBl/f39GjBjBzJkzCQkJKTA4Kq61a62fI4GBgdx1111O+02aNIkXX3zRdk5JhyN572vOnDkOfzAvr0aOHOn0WMeOHW2fB/fcc0+B/UJDQ/N9rAD89NNPAAwZMgRvb2+n13B3d6d3794sWbLE4VSuorjcPV1U0D116tSJTZs2Obynix93bdu2pVevXk6v8cADD9iCxLVr19rCkbxfXwYNGpQvmL3IbDYzbtw4nn76aYfHd+zYYVtodcSIEU7rAPvQbtu2bQpHREREishiMTiXmklUQgZRidbAIyopg6iEjAthiPVPVo71Fyg+ZNDQdI7GpmgamWK51hRDI1OsNQzxisGvuFNfCikXN+I965Hq24BqWWfxTwu9/Elt76w8U2pQOCKVyF9//WV7XdBv8x05efKk7YkER78tzyvvcWe/4QVo3bq102PVq1e3vU5OTi5smf9IQfWA9bfNKSkp+erJe4+FeW8u/ob8wIEDJR6OXKylc+fOeHh4OO1Xp04dgoKCOH36dIF/R8XVr18/mjVrxsmTJ3n88cf59ttvGTp0KAMGDKBbt24OnzoC62/+jxw54vS6rVq1KvC+SkLLli2dHsv7RERh+l36sZKYmMjx48cB+Pzzz/n8888LVVPeJ3GKw5X3lJmZybFjx4DLf/xf/LjMzs62+7g7ceKE7etL3qdJHOnRo4fTY7t27bK97t27d4HXyeufvr8iIiJXGsMwiEvNIioxgzMJ6ZxJSLe+vhCCnEmwPvGRYzFs57iRSz1THI1MMQSZYuh/Ifho7GkNQWqZEl1ed4ZXTbL8G2MKbIJHzWZ41WqKqXpTCGyCm399aprdqAnWXWhmXet8txoAszv0fsjlNZcnCkek0jh37pztdVF/KI+Li7O9rlOnToF969at6/C8S/n6+jo9Zs6T0Obm5hamxH+soHrg75ourccV701xXbzm5eq4WMvp06ddUoeHh4dtu+dDhw6xc+dOdu7cCYCPjw8DBgxgzJgx3HPPPXZP2kRGRtKhQwen1z116hRBQUElXm9ehf24LEy/Sz9WYmJiilWTo22ti6Ik7+nS7ajj4+Ntry/3cefh4UGNGjU4e/as3cdd3ms4WsA2r4LGKKv3V0REpKLJyM7lTEI6kReCj8iES0KQhHQycyyXnGVQ7cLUl86mWOtTH+7Wp0AaX5j64mFy7b/bLR5VMKo1we1C4EG1IKh24b+BjfH28MH5c7l51O0AQz93vp2v2d16vK7zf5deiRSOSKXkaF2N0jj3Sne598YwjAKPl1Yd4Ppa2rZtS3BwMCtWrGDFihVs3LiREydOkJ6ezq+//sqvv/7KBx98wC+//HLZH4ivFHnDkscff5z777+/UOc5e9KmvCnux13etn/yOZT3/d2wYQM1atS4bD1w+UBGRESkIjEMg8T0bCLi04mItwYgkfHpdmHI+VTHazl6k0lDUyx9TLE0drOu99E4z/SXKqYM19ZudscU0ChP4JEnAAkMwuxbHUrqZ5EOw6FWK9g2w7orTXaadY2RtndanxipZMEIKBypMKr5erL7xRvKuoxSU8235H8Yqlmzpu31mTNnaNWqVaHPzTvN5XKPoOc9nve8K9Wl701BUxOio6MdngfOfzN/qdTU1AJriYqKKtQ0gYu1OKvjcrUUVMdFbm5u3HnnnbZFPqOioli1ahUzZsxg9+7d7N69mylTpti2hw4KCiq1AKks5P1hPS0tjfbt25dhNSWjWrVqtteX+7jLycmxPTGS9+Mu7+u8nyOOFPR0SN7319PT84p4f0VERC51cZHTiPg0wuPSiYhPIzLhQhASb/3/1CzHT3CYsVCP8/Qyx9oWPr345EcjUyy1TQmuvwG/2pc88dHE9tpUtT64leKP6HU7wNCZ1u16c9Kti69WojVGLqVwpIIwm00lvkBpZdOlSxfb602bNjFw4MBCn9usWTN8fX1JS0vjzz//LLDvjh07bK9d9cNJeXp6Je89/vnnnwWu51LQe1O1alXAfoqBIwWtydG+fXuioqL466+/yM7Odro+R0xMDKGhoQXWcblaCqrDmXr16jFx4kTGjBlDr1692LNnDz///DPp6en4+BR9JfDy9HFQGLVq1aJBgwZERkaydu1aDMOocPdwKS8vL1q0aMGxY8cu+7Xh4scl2H/cXXXVVbavLxenXzlT0PG8u0itXr26SOuOiIiIlCeJ6dmEx6UREZ9GRHz6hdfpF/44Dz/AIJAUOtgCD+uTHw1tU1/O4eniqS94VnEw5eVCABLYGDz9XDt+cZjN5bOuUqZwRCqNTp060ahRI8LDw/nyyy+ZNm1aoXescXd3Z8CAAaxatYo1a9YQHh7udMeai7tRuLm5ce2115ZU+XYu7vKRmenaVa0Lo2vXrgQGBpKQkMC8efN48sknHe5Yk5yczKJFiwDrlJNL131p2rQpAEePHiU5OdkupLgoNjbWtjOIIzfccANr1qwhISGBH374wekuJbNnz7Y9oXHDDfZPZF2sA6wLXDrb9WbBggVO67gcDw8PBgwYwJ49e8jJySEhIaFY4Uh5+jgorNtvv52ZM2dy8uRJlixZUuI7BZWFG264gWPHjhESEsL27dud7lhz8WvDxXMuyvv1ZfXq1U53crJYLMybN89pHf369aN69erExcXx2Wef8cQTT5S7raJFREQAsnIsRCakExaXRvjFP/FpF/4/ncT0bKfnepHFVRcXO73kyY+Gphj8TemuLd7kBoGNLpny0gSqNbW+9q1RclNfpFRV3mdmpNIxm822LTAjIiIYO3YsWVmO5xtaLBbOnDlj1/bwww8D1h1FJk6c6PDcr776itWrVwNw1113lfhuLBddvG5MTEyp7WbjjJeXF5MmTQLg4MGDvPbaa/n6GIbBI488YlsU95FHHsnXZ8CAAQBkZWXxySef5DuenZ3N/fffT3q68294EyZMsC2qOW3aNMLDw/P12bdvH2+++SYADRo0sE15uSgwMNC2veucOXMcLti6adMmPv74Y6d1bN682bYriyNZWVm2rVurVKlCrVq1nPYtyMWPgxMnThTr/LLw9NNP27aMfvDBB+12WHHkl19+Yf/+/aVRWrFNnTrVNh1r8uTJJCbmX41+9erVzJ49G7DuOHPprjRTp04FrEHXlClTHC7E/NZbbxEcHOy0Dm9vb5566inAOsVn5MiRBU7/Sk5OZvr06Ze5OxERkeJJTMtmf0QCP+8/w6frj/Pskv2MmrWdvm//TquXVjHwvQ2M+2oHL/54gM83neSX4LMciEwiOT2Tepynp+kQw9028oT7Yj7wmMESz1f50+shjniPZ53X08z1fJd/e8zjAfdfuMltF23NoSUXjPjVgobdof1w6P8U3P4JjF0Oj+2HF2PgsX0wbjnc/jH0n2Zdv6NhV/CrqWCkAtOTI1KpPPzww6xYsYI1a9awbNkyOnTowEMPPUS3bt3w9fXl7NmzbN++ne+++457772XV1991Xburbfeyt13383ixYtZu3YtPXv2ZNq0abRp04b4+HgWLlzIV199BVjXEPjggw9cdh99+vQBrCHOgw8+yL/+9S9q1Khhm6LQvHlzl43tyMsvv8zSpUs5efIkr7/+OgcOHGDixInUr1+fU6dOMX36dDZs2ABYtxidPHlyvmvceuutNGnShNDQUF566SXOnTvHsGHD8Pb25sCBA3z88cfs3buXnj17Op2+UKtWLd59910efvhhzpw5Q7du3Xjuuefo06cPubm5rF27lnfffZeUlBRMJhOzZs1yOPXmoYce4sEHHyQ6Opr+/fvz0ksv0apVK+Li4vj555+ZOXMm3bp1Y9u2bQ7rWLduHa+//jr9+/fn1ltvpWPHjtSqVYv09HSOHj3KZ599xp49ewCYNGkS7u7F+1Lcp08f1q9fz86dO3n77bcZPHgwfn7WRyJ9fHxo0KBBsa7rSk2bNuWzzz5jwoQJxMXF0bdvX8aMGcNtt91G48aNycnJISIigh07drBkyRJOnDjBihUrbIFVedShQwemTZvGu+++S3BwMF26dOHZZ5+lc+fOpKWlsWLFCj7++GNyc3Px9PR0uIXxkCFDGDJkiG0B3759+/LEE0/QokULYmJimDt3Lt9//z3du3cvcGrNM888w7p161i3bh2rVq2ibdu2PPjgg/Tu3ZvAwECSk5M5cuQIGzZs4Mcff8Tb29thWCkiInI5hmEQm5JJ2Pk0Tp9PI/R8qu2/oefTCnj6wyCAVAdPflinvzQ0xbp+6ouHn8M1P2yvNcWkUlI4IpWK2Wzmxx9/ZNy4cSxZsoSjR4/y+OOPF/r8+fPnk5OTw7Jly9i7dy9jxozJ16d+/fqsXLnSpT+YXnfddfTq1Yvt27ezYMGCfFM8SntRz6pVq7Ju3ToGDx7M4cOHWbZsmW2R0bz69u3L8uXLHU678fT05JtvvuHmm28mNTWV//3vf/zvf/+zHXdzc+ODDz4gISGhwLUdHnroIRISEnjppZeIiYnhySefzNfHy8uLWbNmccsttzi8xgMPPMCvv/7Kjz/+SEhICKNGjbI73r59e3744Qfq16/vtA6LxcLGjRttT4g4MmzYMN566y2nxy9n6tSpzJw5k7i4OJ5//nmef/5527EBAwbYAqnyZvz48fj4+DB58mSSkpKYPXu27amKS5nNZlvgU569/fbbpKamMmPGDE6ePMmUKVPy9QkICGDRokVcffXVDq/x7bffMnjwYP744w/+/PPPfNPCunTpwueff263ftKl3NzcWLFiBQ8++CDz588nLCyMF154wWl/7VQjIiIFMQyD2ORMTp1L5fT5VE6dsw9B0pys/fH31JdY26KnecMQf5OLt5E3uUFAQwe7vlx4rSc8xAGFI1Lp+Pr6snjxYtavX8+cOXPYsmULZ8+exd3dnQYNGtC2bVuGDx/O7bffnu9cb29vli5dyooVK5g7dy7bt2/n3Llz+Pn50bJlS+68804eeeSRQq9lUlxms5nVq1fz3//+lxUrVnDixAlSU1PLdKeToKAg9u3bxxdffMHixYs5cOAASUlJVK9enc6dOzN69Gjuvfdeu91gLtWvXz92797NG2+8wbp164iNjaVmzZr06dOHJ598kj59+tg9zePMCy+8wG233cb06dP5/fffOXPmDGazmcaNGzNo0CAef/xxgoKCnJ5vNptZsmQJn3/+OXPnziUkJASwLpx5zz338Pjjj9um7zjyzDPP0LNnT9asWcO2bds4c+aMbZeRunXr0rNnT8aOHes0nCmsBg0asGPHDt566y02btxIREQEGRmu3WKupNxzzz0MGjSIWbNm8euvvxISEkJ8fDweHh7UrVuXdu3aMXDgQIYPH+50fZ/yxGw28+mnnzJy5Eg+//xzNm/eTHR0NF5eXjRr1oxbbrmFxx9/vMApVFWrVmXDhg189tlnzJ8/n0OHDmEymew+7gqzE5OPjw/z5s3j0UcfZfbs2WzatImIiAhSU1OpUqUKQUFBdO3alcGDB3PbbbeV5NsgIiIVVFxqFqfOpXAy1hqCnD6XxqlzqYSeT3W4+KkJC3WIp/3F4MNsv/NLXVPBC+yXCN+al6z5EfR3GOLfsHR3fZErgsm4kveNLEURERG2f8CHh4fTsGHDQp137NgxcnJycHd3p0WLFq4sUURExOX0fU1EpHzKyM7l1LlU258TsSm21wlp+afA+JNy4YmPWBqbom3Bx8WpL16mHNcW7OHrYNHTPK+9XPvLSCnfivvzd0EUp4mIiIiIiFwBDMMgOimTk7EpnIhN4USsNQQ5GZtKZIL9YqWeZNPQFEsnUyyN3Oyf/GhkiiHA5VNfzNapL3ZrfgT9HYD41dLUFylVCkdEREREREQqkKwcC6fPp3I8JoUTMX8HISdjU2zTYExYqE0CjUwx9DTF0MgtlsZm65MfjU0x1CEes8nFkwh8a+Sf8nLx/wMaglv+hfFFyorCERERERERkXIoJTOHEzEpHI9J4Xhsii0MCY1LI9diUJW0C1NdYuhliuFuUyyNPS7u/HIOL5OzHWNKiLuP4zU/Lj4N4lXVteOLlCCFIyIiIiIiIkVhsUBOujUcKGCx+cJKzsjmWEwKx6NTOBqdzLGYFI5FJxObmEID21SXWLqaYrjTFENjd+v/B5pSS+BmCmAyg3+DS3Z8yROAVKmtqS9yxVA4IiIiIiIiUhhng2HbpxDyE2SnWRcNbXsH9H4Y6na47OkpmTkci07mWHQKR6KTOR6dRFx0OJ7J4bYApLU5hhsvLHxazyvO9VNffKo72PI2z64v7p6uHV+knFA4IiIiIiIicjnBS2DZFLDk2aUlOw32fQfBi2Ho59BhOGDdGeZEbArHolM4FRlFYuQxss6fwjc1wrbwaZcLAYi3KRu8XFi3u/cli55esuuLt78LBxepOBSOiIiIiIiIFORscP5gJC9LDpYfHuC339eTkJqGf3okDU2xDDDFcKcp5e9+Lll/1PT31BdHAYhf7RKZ+iNypVM4IiIiIiIiUpBtnzoPRi4wY2Fw/DfW/3Er4fF9qhWw60sjTX0RKQEKR0RERERERC6wWAxC49I4FJXEqbAwTKe3MDl2kUt/cLK4eUFgY8zVghzv+uId4MLRRQQUjoiIiIiISCWVnpXL4bNJHDyTREhUEqcjogiI2UlXI5g+5hBuNoWVyIKoBibSvetgVGuCd61muFVvaheAmKvU0dQXkTKmcERERERERK54calZhJxJ4uCZREKirIFIdGwsXU1H6GUO4R5zCO1Np3BzK34YYsFERJ3r8ap9FQH1W+BdqykEBmEKbISvuytXXRWRf0rhiIiIiIiIXDEMwyAmOZMDkYkciEziwJlEDkQmEpWYgTeZdDUfpbc5hLHmEDp5nsDdZCmxsc2dRtF46MwSu56IlB6FIyIiIiIiUiEZhkFkQjoHIq1PhByITCQ4MolzKZkAeJFFZ/NxRppD6OUZQmfTMTxNuUUaI9vsRVJAa6onBGMyCghSzO7Q+6F/cjsiUoYUjoiIiIiISLlnGAZnkzIIjkgkODKR/Rf+G5eaZevjQQ4dTScY6RZCb3MIXc1H8TZlF2kci9mTnAbd8Gw+EIL649GgKzXcPSF4ifPtfM3uMPRzqNvhn96miJQRhSMiIiIiIlLuxCZnsj8iwRaC7I9ItD0RcpEbuVxtOkVvcwi9zQfpZj6KrynTyRUdM8wemBp2g6D+0LQ/5oY98PTwzt+xw3Co1Qq2zYCQHyE7DTx8oe2d1idGFIyIVGgKR0REREREpEylZOYQHJHIvogE9kcksC88kciE9Hz9zFhoYwq9EIaE0MN8mKqm/P0KZHKD+p2haX9oeg2mRj3B069w59btAENnwh2fQk46uPtolxmRK4TCERERERERKTXZuRaOnE3mr/AE9ocnsC8igWMxKRgONokxYaGVKYLe5oP0NofQ03yIAFNaEUc0Qb1O1jAk6Bpo3Au8/f/ZTZjNhQ9URKRCUDgiIiIiIiIuE5WYzl9hCewNT+CvsHiCIxPJyHa2sKnBVaYztmkyvcyHqGFKLvqgddpD02usU2Wa9AGfwH9yCyJSCSgcERERERGREpGRncv+iET2hMXzV1g8e8MTiE4qaA0QgyDTWds0mV7mQ9Q2JRR94FqtbWuG0KQf+NUo7i2ISCWlcETEgblz5zJhwgQATp06RVBQkN3xa6+9lo0bNzJgwAA2bNhQ+gVKibjc37NUHK+++iqvvfYaYN3NwBX0eS8iYs8wDM4kZrA7NJ49odYw5OCZJHIsBX8dbmiKvfBUiDUQqW+KK/rg1a+yrRlCUH+oUruYdyEiYqVwRERERERELisrx8LBM4nWMCQsnt2h8Zd5KsSqLudtT4b0NofQyBxb9MEDm/y9ZkjT/uBfvxh3ICLinMIRESmWDRs2MHDgQADWr1/PtddeW7YFXVBe6xIREaloEtOz2RMaz67QOHaejmdfeAKZOc7WCvlbLRJsT4X0Nh+kqTm66IP7N/h7mkxQf6jWpBh3ICJSeApHRIpBj9RfGcaPH8/48ePLugwREZEyZxgGEfHp7AqNY9fpeHadjudoTLLDHWQuVY0kepkP2Z4MaWGOLHoBVerYhyHVm4HJVPTriIgUk8IREREREZFKxjAMjsek8OepOHaejmPnqTjOJGYU6lx/UuhpPmwLQ9qYw4pegG8NCOp3IRAZADVbKAwRkTKlcERERERE5AqXk2vh4Jkkdp6O489Tcew6HUd8Wnahzq1CGt3NR2zTZNqZQzFTxMWvvQPzhCH9oVYbMJuLfiMiIi6ir0jinMUCWanW/15h4uPjee6552jdujU+Pj7Url2bG264gcWLFxfq/GuvvRaTyeR0PYvc3Fzmzp3LTTfdRN26dfH09CQwMJAWLVpw/fXX8+abbxISElLgGL/88gv33XcfzZo1w8/Pj4CAANq1a8fIkSP54YcfSE9Pt+s/d+5cTCYTJpOJ06dPk5mZyYcffkivXr2oWbMmJpOJV199Nd84O3bs4IEHHqBly5ZUqVIFPz8/WrduzcMPP8yxY8fy9T99+jQmk8m2rgfAwIEDbWNf/DN37lyH91XU8QqrOHVd+p5d6tK/5+PHj/Pggw/SrFkzfHx8CAoK4v777yc0NNTuvAMHDjBhwgSaNWuGt7c3jRo1YurUqcTExBTqXtasWcN9991H06ZN8fHxwd/fn06dOvHMM88QFRVV5Pcmr/Hjx2MymWw785w9e5annnqKli1b4uvrS4MGDRgxYgQHDx60O+/06dM8+uijtGzZEh8fH+rUqcPo0aM5ceLEZcfMyspixowZDBw4kFq1auHp6UndunW55ZZb+Oabb7AU4mtMREQEDz/8sO09rV+/Prfffjtr164t0v2npaXx4YcfMnDgQOrUqYOnpye1a9dm0KBBzJkzh9zc3CJdT0SkvMrOtbAnLJ4ZG44z7qsddHptNXd8+gf/WXmINSHRBQYjPmTQ37yfZ9wX8qPXy+zznswcz3eZ7L6SDubThQtGPKtCi5tg0H9g8kZ45iSM/BZ6PQh12ikYEZFyR0+OSH5ng2HbpxDyE2SngYcvtL0Dej8MdTuUdXX/WEhICDfccIPdD5kZGRmsW7eOdevWMXHiRPr371/s66ekpHDLLbewefNmu/bExEQSExM5fvw4v//+O3v27GHJkiX5zj9//jz33HMP69atc1h7SEgI33//PXPmzHG6Xsa5c+cYOnQoe/fudVpnTk4Ojz76KDNnzsx37MiRIxw5coQvvviCTz/9lAceeKDgmy6E0h6vpK1du5Zhw4aRnJxsawsNDeWrr77i559/ZuPGjbRu3ZrvvvuOCRMmkJn59+r9ERERfPbZZ6xatYqtW7dSv77jFfZTU1MZM2YMy5Yts2vPyMhg//797N+/n5kzZ/Ldd99x2223/eN72rdvHzfffDNnz561taWnp7N48WJWrlzJb7/9Rr9+/fj9998ZNmwYiYmJdjUtWLCAVatWsXnzZtq1a+dwjNDQUAYPHsyhQ4fs2qOjo1m1ahWrVq3i888/56effqJ69eoOr7Fx40Zuv/12kpKSbG1RUVGsWLGCFStW2LbwvZydO3cydOhQIiPt58LHxsayZs0a1qxZw2effcby5cupU6dOoa4pIlJeZOVYCI5MYPvJOLafPM/u0HjSsgoX+HqRRRfzMXqbD9Lf/RAdOIE7OUUrwMMXGvf+e0eZep3ATT9qiEjFoa9YYi94CSybApY83xCz02DfdxC8GIZ+Dh2Gl119/1BiYiI33XSTLRi55557GDduHLVr1+bo0aN88MEHfPXVVwQHBxd7jFdffdUWjNx2222MHj2axo0b4+3tTWxsLPv27ePnn3/G5GBebVpaGgMHDrSN37VrVyZPnkz79u3x8vIiPDycTZs28f333xdYw/33309wcDBjx47lnnvuoW7duoSFheHl5WXXZ/78+QAMHjyY0aNH07JlS0wmE3v37uXDDz/k4MGDTJ48mbp16zJkyBAAGjRoQHBwMDt37mTixIkAfPXVV3Tv3t2uhoYNG+arqTjjFVZx6yqMM2fOMGLECAIDA3nzzTfp0aMHWVlZ/PDDD3z00UfExMQwadIk/ve//zF27FhatGjBtGnT6NixI6mpqXz11Vd8/fXXhIaG8uSTT7Jw4cJ8Y+Tm5jJkyBDWr1+PyWRi5MiRDBs2jKZNm5Kdnc2OHTt4//33CQsL46677mLr1q107dq1yPdyUVpaGkOHDiUrK4s333yTAQMG4Obmxq+//sqbb75JWloaY8aMYc2aNQwdOhR/f3/+/e9/07NnT3Jycvjhhx/48MMPiY+P5/7772f79u35xkhJSeG6667j5MmTANx5551MnDiR+vXrc+rUKaZPn87GjRvZsmULt912G5s3b8bNzc3uGqdPn2bIkCEkJydjNpuZPHkyw4cPJyAggP379/P222/zyiuv0K1btwLvNzg4mIEDB5Kamkrt2rWZOnUq/fv3p0aNGsTExLB8+XI+//xzduzYwR133MHmzZvx8PAo9vsrIuJqObkWgiMT2XriPNtPnmfX6XjSswsXhniQw9Wm4/Q2hzDA8zAdOYKHUbgpNjbu3tCox99b69bvAu6exbgTEZFywpASER4ebgAGYISHhxf6vKNHjxohISHG0aNHC+6Ym2sYKbGu/XNyk2G8Vt0wXvF3/ue16tZ+rq4lN/cf/o049uSTT9r+nt588818x7OysoxBgwbZ+gDGqVOn8vUbMGCAARgDBgzId6xRo0YGYAwfPrzAWs6fP5+v7fHHH7eN+/DDDxsWi8XhuZmZmcbZs2ft2ubMmWNX9+zZs52OvWTJElu/L774wmGf9PR047rrrjMAIygoyMjOzrY7vn79ets11q9fX+C9lsR4hVWUuvK+ZwX9PQNGixYtjJiYmHx9nn76aVufWrVqGX379jVSU1Pz9bv77rsNwHB3d3d4nffee88ADA8PD+OXX35xWG9cXJzRrl07AzD69etX4L05M27cOFu9NWvWNI4fP56vz6effmp3T4W59z179uQ7/tRTT9mOv/jii/mOWywWY/To0bY+M2bMyNdn2LBhtuMLFizIdzwpKcno1KmT3ce+o3E6duxoAEanTp2M2NhYh+/NqlWrDLPZbADGl19+me94QZ/38rdCf18TkSLJzbUYByITjC82nTAmzNlhtHv5V6PJsz8X6s9Vz/5oDH3uA+OdFyYZO//d38h8tVbB/95z+G/AGobx1WDD+P1Nwzi12TCy0sv6LRGRSqy4P38XRE+OVBTpcfDuVWVdhfWJknn//HH+y3r6BPjVLNFLZmZmMmfOHAA6duzIs88+m6+Ph4cHs2fPplmzZmRnF/E3KBdcnKJwuak5l04hiI+PZ9asWQB06dKFjz76yOHTJQCenp4FPvZ/3XXX2Z6ecOStt94CYOjQoUyaNMlhH29vb6ZPn07btm05ffo0GzZs4IYbbijwnsrLeK7w8ccfU6tWrXztDz30EO+++y5gnc60ceNGfH198/WbOnUqixcvJicnh23btnH77bfbjmVnZ/P+++8D8MgjjzB48GCHNVSrVo13332XW265hS1btnD8+HGaN29e7Ht6/fXXueqq/F9XJkyYwLRp08jIyCA2Npavv/7a4b1PnTrVdu+bN2+mc+fOtmOZmZl8+eWXALRt29bhejcmk4kZM2bw66+/cv78eaZPn87UqVNtx6Oiovjpp58A61NYo0aNyneNqlWrMmvWLHr27On0PleuXMn+/fsBmD9/PjVrOv7acvPNNzN8+HAWLVrEnDlzuP/++51eU0TE1QzD4OS5VP44fo6tx8+z/dR5Egq5gKoZC+1Mp+ltPsgNPkfpZAnBy3JhrbLCLq1kdrc+DXJxa91GPcEz//c3EZErhcIRqTR2795NfHw8AOPGjcPsZCGwhg0bMmjQIFauXFmscerVq0dYWBjff/89kyZNcviDsiPr168nLS0NgEcffTTf9IKiGD16tNNjkZGR7N69G4ARI0YUeJ02bdpQs2ZNzp07x7Zt24oVVpT2eK4QGBjITTfd5PBYUFAQ/v7+JCUl0bFjR9q0aeOwX6dOnWyvL04zuWjHjh22qV6Xe4+uueYa2+tt27YVOxwxmUxOx/Lx8aFFixYEBwdTrVo1Bg0a5LBf06ZNqVq1KsnJyfnuaffu3SQkJADWRWCdfTz7+/szYsQIZs6cSUhICFFRUdSrVw+wfk5cXCB1woQJTu+lR48etGvXLt8ishddDFhatWpFx44dnV4HrO/vokWL2LlzJ7m5uf/o81BEpKhikjPYevw8W46f44/j54gq5Na6Jiy0NoXTx3yQG32O0skIwSc3xXqwsEuHmMxQ7+q/1wxp3Au8qhTrPkREKiKFI1Jp5F1H5NJ1KC7Vo0ePYocj48aN4/XXX2fr1q00bdqUu+++m+uvv55+/fo5/O37RX/99Zftdd4fgIujoB8Ad+3aZXs9atQoh7+NdyTvop1FURLjxcTEON3pxc/Pj6ZNmxartsJq0aKF06d4AAICAkhKSqJly5ZO+wQGBtpe513UFezfo969exe6ruL+nQDUrFnT6QKo8He9zZs3L/DeAwMDSU5OzndPBw4csL0u6KmOi8cvLtR74MABWzhS1M9ZZ+HIxff3yJEjBd5LXllZWcTFxRX4OSsi8k+lZOaw49R5thw7zx/Hz3EkOvnyJwFg0MIUSe8LYUgXIwS/3AuLZhd6HVUT1G3/95ohTfqAd0Ax7kJE5MqgcEQqjYtPjQDUrl27wL7/ZKeKl156icjISObMmUNMTAyffvopn376KSaTiXbt2jFs2DAeeuihfGOcO3fO9vriD4fFVa1aNafHCrud7KUuPtVSVCUx3owZM5zuSDJgwAA2bNhQrDEK63JP/1x8CqmgfnmfVLp0u9jS/juBkrmnvP0uvae4uDjb68t9PtWtW9fheSX1OVsW76+IiCO5FoODZxLZdDSWTcfOsSc0nhxLIbbFxaCZKYre5hCu9z5Cd1MIVXMufI0syqYytdpYg5Cm10CTvuDrPCQXEalsFI5UFD7VretwuNIvT8HBZZfv124Y3PKua2vxKflv1obx9z8+Lvfb47x9i+riuiXTpk3ju+++4/fff2fXrl1kZWVx4MABDhw4wAcffMA333zDHXfcUexxClLQVIC8P8R+++23l51mcFFBgUtBSnu8iijve7RhwwZq1KhRqPMuFxiUF8X9fCupz9mL72/fvn357LPPCrxOXs62XBYRKYqoxHQ2Hz3HpmOx/HH8HPGFWjfEoJEpht7mEAZ6HaGPOYSAnAu/RCnsmiEANVr8vWZIUH+ooqfhREScUThSUZjNJb5AaT79p8GhFfbb+Oarwx36P+n6Wlwg7xSC6OjoAqdAFPc3zXm1bduW119/nddff5309HT++OMPFixYwPz580lJSWHUqFGcOHHC9pRI3kUio6KiXDZVJO8P3iaTifbt27tknJIc79VXX3W4oOeVIu975Onp6fK/k9KQ9/Pt7NmzBX6+RUdHOzzv0s/ZRo0aOb1GQZ+zNWrUIDo6mtjY2CvivRWR8i0jO5c/T8Wx8Ugsm4/FciwmpVDn1eccvc0h9Pc4RH/3Q9TIvfB1zXLhT2FUC7KGIE0HQFA/8P9nT6KKiFQmCkfkb3U7wNDPYdkUxwGJ2d16vG6H0q+tBHTo8HfdO3fuLHA3mZ07d5bo2D4+Ptxwww3ccMMNdOjQgSeffJL09HR+/vlnHnjgAcC6Q81FmzZtclk4kndHkdWrVxd6DZBLFXbthpIar7AKW1d5cul7VJR1R8qrvCHEn3/+WeA6Ojt27HB43qWfswWFIwV9znbu3JmQkBCOHj1KaGgoTZo0uWz9IiJFcepcKhuPxLDhaCzbT54nI/vyaUYt4ultDqGvewgDPA5TNzfq74OFfTokoNGFMOTCkyGBzr9OiohIwRxv1yGVV4fhMHkDdLoXPC6sNeDha/3/yRusxyuorl272qZqfP31104fw4+MjGT16tUuq+P666+3vc67zsjAgQPx8/MD4JNPPsm3hkNJad68OW3btgVg4cKFhIWFFes63t7etteZmZkuH6+k6ypP+vXrZ3tK4rPPPiMpKamMK/rnunbtalvUdd68eU4/npOTk1m0aBFgfdoq73o7AwcOtE0RmzdvntOxdu3aZbcA7KXybpv83//+t9D3ICLiTHpWLr8fjuaVnw4w4N31DHxvA6+uCGHDkVinwUgNErnVvJ3/uM9mk+/T7PR+mI89P+Ue83r7YKQgVepCh7vh9k/g0b3weDAMnQlX36tgRETkH1I4IvnV7WD9Rvt8JLxwxvrfoTMr7BMjF3l5edm2A927dy/vvpt/3ZScnBweeOABsrKyijVGXFwcy5cvL3D9g7zBS96nQwIDA5kyZQpg3Qb18ccfd3qd7OzsfzT158UXXwQgIyODYcOGERsb67RvZmYmM2bMICPDfjvBvD/EnjhR8Ho4JTFeYRWlrvLC29ubp556CrBOQRk5ciSpqalO+ycnJzN9+vTSKq9YvLy8mDRpEgAHDx50uKCuYRg88sgjtpDwkUcesTter14927o8y5cvt4UoeaWkpDB58uQCa7nrrrtsWyzPnDmT2bNnF9j/wIEDrFixosA+IlL5hMelMW/racZ+tYNO/17NxLm7mLctlNDzjhdvDiCFm8w7ecV9Hmu8n2W391Q+9fyY+9zX0dgSWbhBfWtCu6Fw6wfwyC6Ydhju+hK6jIXqTaECPi0pIlJeaVqNOGc2g6dfWVdRol5++WUWLVpEREQEzz77LHv37mXs2LHUrl2bo0eP8sEHH7Bz5066d+9erKk1SUlJ3HHHHQQFBTFs2DB69uxJkyZNcHd3JyoqihUrVvDll18C0LBhQ4YMGWJ3/uuvv86aNWsIDg5m+vTpbNu2jSlTptChQwc8PT2JiIhgy5YtLFiwgP/85z+MHz++WO/DqFGj+O2335g3bx67d++mbdu2TJkyhQEDBlCrVi1SU1M5ceIEmzdvZunSpcTFxTF27Fi7azRu3JiGDRsSERHBe++9R4MGDWjVqhXu7tYvK3Xq1KFq1aolNl5hFaWu8uSZZ55h3bp1rFu3jlWrVtG2bVsefPBBevfubdsu98iRI2zYsIEff/wRb2/vfGFCefPyyy+zdOlSTp48yeuvv86BAweYOHEi9evX59SpU0yfPt2201Dv3r0dhhzvv/8+a9asITk5mXvvvZeNGzcyfPhw/P392b9/P2+//TZHjx6lW7dudlsi5+Xm5sb3339Pnz59SElJYdKkSSxevJh7772XVq1a4eHhQUxMDH/99Rc///wzW7duZdq0afk+P0WkcsnOtbDrdDzrj8Tw++EYjl9m7ZCqpNHDfIje5hB6m0NoYw7DTBEXePepZt1Fpuk11j+1WisAEREpJQpHpFIJCAjg119/5YYbbuDs2bN89913fPfdd3Z9JkyYwDXXXGN7yqQ4Tp8+zQcffOD0eIMGDVi+fLltGs1Fvr6+/P7779x1111s2rSJ3bt3X/a34sU1e/Zs6tSpw/vvv8+5c+d44403eOONNxz29fPzc7gDzgsvvMBDDz3EqVOnuPPOO+2OzZkzxy68KYnxCqsodZUXbm5urFixggcffJD58+cTFhbGCy+84LR/RdippmrVqqxbt47Bgwdz+PBhli1bxrJl+XfE6tu3L8uXL3f4dx4UFMTy5cu5/fbbSU5OZsaMGcyYMcOuzyuvvALgNBwB6/olf/zxB8OHD+fYsWP89ttv/Pbbb077+/v7F/Y2ReQKcj4lkw1HYvn9SAybjsaSnOF8kXpfMuhuPkJvcwi9zAfpYD6NW6FXTr3Ay/9CGHJhzZA67a2/nBIRkVKncEQqnXbt2nHw4EHeeecdli1bRlhYGFWrVqVDhw488MADjBo1irlz5xbr2k2aNGHv3r2sWbOG33//nZMnTxIdHU1KSgqBgYG0a9eOIUOGMHnyZKdPL9SsWZONGzeybNkyFixYwPbt24mNjcXX15cGDRrQqVMnRowYwc033/wP3gXrD+PvvPMO999/P7NmzeL333/n9OnTJCUl4evrS+PGjbn66qsZNGgQQ4cOxcfHJ981pk6dSp06dfj888/Zu3cvcXFx5OQ4/odkSYxXWEWpqzzx8fFh3rx5PProo8yePZtNmzYRERFBamoqVapUISgoiK5duzJ48GBuu+22si63UIKCgti3bx9ffPEFixcv5sCBAyQlJVG9enU6d+7M6NGjuffeezEX8MPAtddey8GDB3nrrbf45ZdfiIqKolq1anTr1o1//etf3HTTTYXazahjx46EhISwYMECli1bxu7du4mNjcVisVCjRg1atWpFv379GDp0qN0CySJy5TIMgxOxqaw9FM3akGj2hMVjcfKwhxdZdDUfpbc5hD7mg3Q0ncTDVMT1wTz8oEnvvxdRrdsJ3PTPcRGR8sBkFLQ4ghRaRESEbSeF8PBwGjZsWKjzjh07Rk5ODu7u7rRo0cKVJYqIiLicvq9JeZeTa2FXaDzrDkWz9lAMp845XuPJk2w6m47T2+0gvc0hXG06jpepiEG7uw807nkhDLkG6ncGN48SuAsRkcqtuD9/F0RRtYiIiIhc0VIzc9h4NJY1IdH8fjiGxPTsfH3cyaGj6SR9zNYwpKv5KN6m/P0K5OYJDXv8PU2mYTdw9yqhuxAREVdSOCIiIiIiV5xzKZmsOxTN6oPRbD5+jqwc+/VA3MilvemUbQHVbuYj+JmKuAW82R0adPs7DGnUAzyKPy1URETKjsIREREREbkihJ1PY3XIWVYfjGZXaJzd+iEmLLQ1hdHLfJA+5hC6mw/jb0ov2gAms3VqzMU1Qxr1Aq8qJXsTIiJSJhSOiIiIiEiFZBgGR6KTWRV8lt8OnuXw2WTbMRMWWpkibE+G9DQfItDkeH0R50xQt8PfW+s27g3e2s1KRORKpHBERERERCoMwzAIjkxk1YGz/HrgbJ4FVQ2uMp25EIYcpJf5EDVMyQVey6Ha7f6eJtOkD/hWL9H6RUSkfFI4IiIiIiLlmsVi8Fd4PKuCz7LqwFkiE9IBgyamaEa6hdieDqltSij6xWu2tD4VEtQfgvqBX82SLl9ERCoAhSMiIiIiUu5YLAa7QuNZuf8Mvx48S3RSJg2IpbdbCL09rE+H1DfFFf3C1Zv9vbVuUD+oWrfkixcRkQpH4YiIiIiIuJ7FAjnp4O4DZrOTLgZ7wuL5eX8Uqw5EQVIUvc0hPGkOobfnQRqbY4s+bkDjC2uGXHgyJKDhP7wRERG5EikcERERERHXORsM2z6FkJ8gOw08fKHtHdD7Yajb4cKUmQRW7o9i+/5DNEv9iz7mg4w1h9DM+2zRx6ta/+81Q5r2h2pBJX5LIiJy5VE4IiIiIiKuEbwElk0BS87fbdlpsO87jP2L+aXxNP6ItNAqYy8jzSG8bI4EzyKO4Vfr72kyTa+xTpsxmUr0NkRE5MqncERERERESt7Z4PzBSB4mI4dbQ9/hVijav0h9qlunx1xcRLVWK4UhIiLyjykcEREREZGSt+1Tp8FIkXgFQFDfv58Oqd3W6ZolIiIixaVwpIy5ubmRk5NDTk4Oubm5uLm5lXVJIiIixWKxWMjNzQXQ97NK7lxyOoHBy4r1D02Lhx9mWxjSH+p2BLM+nkRExLUUjpQxX19fMjMzAUhISKBGjRplXJGIiEjxpKSkYBgGAD4+PmVcjZS29KxcVoecZeXukzQ79S3PuWcU+tzU+n3xbX09pmYDMNe7Gtz0T1QRESld+s5TxgIDA4mPjwcgJiaG3Nxc/P398fLywqT5syIiUgFYLBZSUlI4e/bvnUWqVq1ahhVJacm1GGw9cY5lf0Wy8UAod+au5j/uP1PbPaHwF/HwxW/Sz5oqIyIiZUrhSBnz9vYmICCAxMREAM6fP8/58+cxmUx6JFlERCqE3Nxc2xMjYH1qxM/PrwwrElcyDIODZ5L48a9Ilu87Q3JyIve5reVX95+p5ZFU9Au2vVPBiIiIlDmFI+VAvXr18PT0JDY21tZmGAY5OSWwiJmIiEgp8vHxoXHjxnr68QoUk5TBj3sj+WF3JEeik/ElgzFua3jAayU1TcUIRQDM7tD7oZItVEREpBgUjpQDJpOJmjVr4u/vT0pKCqmpqWRlZWGxWMq6NBERkctyc3PDx8eHqlWr4ufnp2DkCpKRncvaQ9Es2R3BpqOxWAzwI52pbmuY5L6SGqZkp+fmBF2Le5NesPk9x7vWmN1h6OdQt4ML70BERKRwFI6UI56enlSvXp3q1auXdSkiIiJSSRmGwZ6wBH7YE8HP+86QlGENNqqQxji31Uxy/4VqphTnF2h+Awx4FvdGPaz/3+Y22DYDQn6E7DTw8LVOpen9kIIREREpNxSOiIiIiAjRSRks2R3BD7sjOHku1dZelTTGu/3K/e6rCDSlOr9Ai0Ew4Flo2M2+vW4HGDoT7vgUctLB3UdrjIiISLmjcERERESkksrKsfD74RgW7Qpnw5EYLH+vq4s/qUxw+5WJ7qsIMKU5v0jLm2HAM9Cga8GDmc3gqYV6RUSkfFI4IiIiIlLJHItO5vud4Sz7K5LzqVl2x/xJ4X73X5ng9iv+BYUirW6xhiL1O7u4WhEREddTOCIiIiJSCSRnZPPz/ii+3xnO3vCEfMcDSeZ+91WMd/uNqqZ05xdqfZs1FKnXyXXFioiIlDKFIyIiIiJXKMMw2B+RyHc7wli+7wxpWbn5+lQjiUnuvzDObTVVTBnOL9bmdmsookVURUTkCqRwREREROQKk5SRzU9/RbJgRziHopIc9qlOEg+4r2Ss22r8TJlOrmSCtndYQ5E67VxXsIiISBlTOCIiIiJyBbi4Be/CHWGs2H+GjGyLw341SOQB95WMc1+DDwWEIu2HwTVPQ+02ritaRESknFA4IiIiIlKBJWVks2xPJAv+DONIdLLTfrVIYIrHz4xxX4eX4SQUMZmh/V3WUKRWKxdVLCIiUv4oHBERERGpgA6eSeSb7aH8tNfxWiIX1SKep/x+5S5jNe6WTDAcdDKZocPd1lCkZgvXFS0iIlJOKRwRERERqSAysnNZuT+Kb/4M5a+whAL71jfH859a6xiQshK3XGdPirhBx3ug/zSo2bzkCxYREakgFI6IiIiIlHOnz6WyYEcYi3aFk5CWXWDfroFpvFJjDR3O/ogpsYBQpNMo6P8k1LjKBRWLiIhULApHRERERMohi8Vgw9EY5m4NZdPR2AL7uplNjGhh4l+ey6l3cgmmyCzHHc3uF0KRaVC9qQuqFhERqZgUjoiIiIiUI4np2SzeFc7X20MJPZ9WYN86/l5M7ujBqMwl+B78DixOnioxu8PVo62hSLUmLqhaRESkYlM4IiIiIlIOHI1OZt7W0yzdE0l6tvMFVgH6Na/JAx3M9D/7NeY9CwoIRTygyxjo9wQENnZB1SIiIlcGhSMiIiIiZSTXYrD2UDTztp5m64nzBfYN8PHg7q4NGdvaoPHBmfDbd2DJcdzZzRO6jLWGIgENXVC5iIjIlUXhiIiIiEgpS8rIZtHOcOZuPU1EfHqBfdvU82d8nybc0SgT7+3/g28XguHkyRI3L+g6Dvo+DgENSr5wERGRK5TCEREREZFSEno+lTl/nGbxrnBSs5xPnXEzm7i5XV3G9Qmie9U4TJvfhF8WOQ9F3L2h6wTo+xj413NR9SIiIlcuhSMiIiIiLmQYBttPxvHVH6dYeygaw3Det4afJ6N6NGZ0r8bUywqHzc9B8GIwLI5PcPeBbhOh76NQta5rbkBERKQSUDgiIiIi4gKZObn8vC+K2VtOERKVVGDfjg0DGNc7iFs71sM74TiseQQO/AA4SVLcfaD7/dDnUahap+SLFxERqWQUjoiIiIiUoMS0bL75M5S5W08Tm5zptJ/ZBIPb12NivyC6NK6GKfYw/PgSHFyG01DEwxe6T7KGIlVqueYGREREKiGFIyIiIiIlIDwujdlbTrFoVzhpBawnUtXbnVE9GjO2dxMaVvOF6IOw+AkI+QnnoYgf9HgA+vwL/Gq65gZEREQqMYUjIiIiIv/A/ogEZm06yS/BUVgKWE8kqIYvE/o25a6uDani5Q5ng+H7d+DQCucneVaFnpOh18PgV6PkixcRERFA4YiIiIhIkVksBhuOxjBr00m2n4wrsG+vZtW5v18zrmtdGzezCaL2wcb/wuGfnZ/k5Q89p0Cvh8C3eglXLyIiIpdSOCIiIiJSSNm5FpbvPcNnG09wLCbFaT83s4lbO9Rj8jXNaN8gwNp45i9rKHLkF+cDeAVArweh11TwqVbC1YuIiIgzCkdERERELiM9K5fvd4bxxeZTRCakO+3n5+nGyB6NmdA3yLqeCEDkbmsocvRX5wN4B1ifEun5IPgElmzxIiIiclkKR0REREScSEzLZv6208zZepq41Cyn/WpX9WJ83yBG92hCgK+HtTFiF2x4G46vcT6AdyD0fsS6roh3QMkWLyIiIoWmcERERETkEtFJGXy5+SQL/gwjtYCdZ1rUrsID1zTjjqvr4+XuZm0M32ENRU6scz6ATzVrKNJjMnj7l3D1IiIiUlQKR0REREQuCD2fyswNJ1i6J5KsXIvTfl2bVOOha69iYKvamM0ma2PYdmsocnK98wF8qlu34+3xAHhVLeHqRUREpLgUjoiIiEildzwmmU/Xn+CnvZEFbsc7sFUtpl7bnB5N8+wgc/oP2Pg2nNrk/ETfmtD3Ueh2P3hVKbnCRUREpESUWjgSFhbGxx9/zMqVKwkLC8PLy4vmzZszYsQIHnroIXx9ff/xGCEhIcycOZMNGzYQGhpKRkYGAQEBtG/fnttvv51JkyZRtap+SyMiIiJWh6KSmP77cX45EIXhJBQxm+C2jvV5cMBVtK2fZwrMqc2w8R04vdn5AH61oO9j0G0iePqVbPEiIiJSYkyG4eyfAiVn5cqVjB49msTERIfHW7VqxS+//EKzZs2KPcb777/Pc889R05OjtM+TZo0Yfny5XTs2LHY4zgTERFBo0aNAAgPD6dhw4YlPoaIiIiUjH3hCXzy+3HWHop22sfT3czdXRsy5ZqraFzjwi9xDMP6hMjGdyD0D+cDVKljDUW6TgDPf/4LIBEREfmbK37+dvmTI/v27WPEiBGkpaVRpUoVnn/+eQYOHEh6ejoLFy7kiy++4MiRI9x6663s3LmTKlWK/qjpokWLeOqppwDw9PTk4Ycf5oYbbqBmzZqcOHGCGTNmsGXLFkJDQ7n55ps5dOgQAQFaEV5ERKSy2XU6jo9/P86mo7FO+/h6ujGmVxPu79+U2lW9rY2GASc3WEORsG3OB6hSF/o9Dl3Hg4dPSZYuIiIiLuTycOTxxx8nLS0Nd3d3Vq9eTe/evW3HrrvuOlq0aMEzzzzD4cOH+eCDD3j55ZeLPMbrr79ue7106VJuvfVW2//36NGDUaNGcdddd7F06VKioqKYPXs2Tz755D+7MREREakwdp2O439rj/LH8fNO+1T1cmd83yAm9m1KNT9Pa6NhWHed2fhfCP/T+QBV60O/J6DLWPDwLuHqRURExNVcOq1m586d9OjRA4ApU6bw2Wef5etjsVho3749hw4dolq1akRHR+Ph4VHoMZKSkmxPgXTp0oXdu3c77Ld//346deoEwF133cWSJUuKejsF0rQaERGR8md3aBwfrj3G5mPnnPYJ9PXg/r5NGdsniACfC/8GMQw4vta6+0zkLucD+DewhiKdxygUERERKSUVblrNjz/+aHs9YcIEh33MZjNjx47l+eefJz4+ng0bNnDjjTcWeoysrCzb64LWLLnqqqtsrzMzMwt9fREREal49oTF8781RwsMRWpW8eSB/s24r1cT/Lwu/JPIMODYauv0mUjHv3ABIKDRhVDkPnD3KuHqRUREpLS5NBzZvNm6erufnx9du3Z12m/AgAG211u2bClSOFKzZk2qV69OXFwcJ0+edNrvxIkTttctW7Ys9PVFRESk4vgrLJ4P1x5jYwFritSu6sWDA65iVI/G+Hi6WRsNA47+ag1FzvzlfIDAxtB/GnS6F9w9S7h6ERERKSsuDUcOHToEQPPmzXF3dz5U69at851TFJMnT+btt99mz549rFq1isGDB+frc3FdEjc3NyZNmlTkMURERKT82h+RwAdrjrLhiPNQpFZVLx661hqKeHvkCUUOr7SGImf3Ox8gsAlc8xR0GgVuhZ/+KyIiIhWDy8KRjIwMzp2zPsp6ufk/1apVw8/Pj9TUVMLDw4s81v/93/+xa9cu1q5dy9ChQ3nkkUe4/vrrqVmzJidPnmTmzJls3LgRNzc3Pv74Y9q0aVPkMSIiIgo8HhUVVeRrioiIyD9zNDqZ91cf4beDzrfkrVnFi6nXXsXonnlCEYsFDv9sXWg1Otj5ANWaWkORjvcoFBEREbmCuSwcSU5Otr0uzPa8F8ORlJSUIo9VpUoVVq1axdy5c3n77bd5//33ef/99+36DBs2jGeeeYaePXsW+fqAbbEXERERKXunz6Xy4dqj/LTvDM6Wlq9ZxYsHBzRjdM8mf0+fsVjg0HJrKBJz0PkA1a+Ca56GDneDm8s39xMREZEy5tInRy7y9Lz8nFwvL+tiZunp6cUab9euXXz33XdO1x1Zu3YtderUoU2bNvj7+xdrDBERESlbUYnpfLzuOIt2hZNrcZyK1PDz5MEBV3Ffr7yhSC6E/Agb34XYAqbw1mgO1zwD7e9SKCIiIlKJuOy7vrf339vZ5d1RxpmLO8j4+PgUeawlS5Zw3333kZmZSceOHXnttde45pprqFq1KuHh4Xz//fe8/vrrzJw5k02bNrF27Vrq1q1bpDEuN90nKirKtm2xiIiIlKxzKZnMWH+Cb/4MJSvH4rBPoK8HDw64irG9m+DreeGfOJZcOLjM+qTIuSPOB6jZ8kIoMgzMbi64AxERESnPXBaOVK1a1fa6MFNlUlNTgcJNwckrOjqa8ePHk5mZSbt27di6dSt+fn62482aNeP555+nR48e3HjjjRw8eJB//etfLF68uEjjlMS+ySIiIlI0yRnZzNp0ktlbTpGWleuwj5+nG5P6N+P+/k3x976wLoglFw78AJvehXNHnQ9Qq7V1+ky7oQpFREREKjGXPjlSs2ZNzp07d9nFTOPj423hSFHX9li4cKHt3BdeeMEuGMnr+uuv5/rrr2ft2rUsXbqU+Ph4qlWrVqSxREREpHRk5uTy7fYwpq8/Tlyq4ydQvdzNjOsTxIMDrqK634UpvLk5cGCJNRQ5f9z5ALXbWkORtneC2VzyNyAiIiIViksn07Zp04bNmzdz/PhxcnJynG7ne/jwYbtziiLv1r9dunQpsG/Xrl1Zu3YtFouFo0ePFntxVhEREXENi8Vg+b4zvLf6CBHxjtch83AzMbJ7Yx65rjl1/C9M483NgeBF1lAkzvH6YwDUaQ8DnoHWQxSKiIiIiI1Lw5F+/fqxefNmUlNT2b17t9MwYuPGjbbXffv2LdIYeQOXnJycAvtmZ2c7PE9ERETKlmEYbDwayzu/HuFQVJLDPmYTDOvSkMeub0Gj6r7Wxtxs2LcQNr8H8aedD1C3Awx4FlrdqlBERERE8nFpQnDnnXfy1ltvATBnzhyH4YjFYmH+/PkABAYGMnDgwCKN0bRpU9vrzZs30759e6d9N23aBIDJZCIoKKhI44iIiIhr7AtP4O1Vh9l28rzTPoPa1uHpm1rRos6FNc1ysmDfd7D5fUgIdX7xep0uhCK3gMlUwpWLiIjIlcKlvzrp0aMH/fv3B2D27Nls27YtX5/333/fNjXmsccew8PDw+743LlzMZlMmEwmXn311Xzn33rrrZgu/GPnjTfeIDIy0mEts2bNYteuXQD06tWLGjVqFPu+RERE5J8LO5/Gwwv2cMenfzgNRro1qcYPU3sza2w3azCSkwW75sAnXWHFo86DkfqdYdT3MHkjtL5VwYiIiIgUyOVzSz766CP69u1Leno6gwYN4oUXXmDgwIGkp6ezcOFCZs2aBUDLli2ZNm1aka/funVrJkyYwFdffUVkZCSdO3fm8ccfp3///ratfBcuXMiCBQsAcHNz48033yzRexQREZHCS0zLZvr6Y8zbGkpWruNteVvUrsKzN7fm+ja1rb8EycmEv76Gzf+DpAIWem/QFQY8By1uVCAiIiIihebycKRz5858//333HfffSQlJfHCCy/k69OyZUtWrlxpt/1vUcyYMYPU1FS+//57YmNj+b//+z+H/fz8/Jg1axbXXnttscYRERGR4svKsfDN9lA+/v0YCWnZDvvUC/DmiRtbcleXhriZTZCdYQ1FtvwPkhw/HQpAw+7WUKT59QpFREREpMhKZVXSIUOGsH//fj766CNWrlxJREQEnp6eNG/enLvvvptHHnkEX1/fYl/fy8uLhQsXMmXKFObOncv27duJjIwkMzMTf39/WrVqxQ033MDkyZNp2LBhCd6ZiIiIXI5hGPx28CxvrzrM6fNpDvv4e7vzyHXNGds7CG8PN8hOh53zraFIcpTzizfqaV1T5KrrFIqIiIhIsZkMwzDKuogrQUREBI0aNQIgPDxcIYyIiAiwNzyBN1aGsPN0vMPjHm4mxvYO4l/XNSfQ19MaiuyaA398BClnnV+4cR+49lloOkChiIiISCXjip+/tZ+tiIiIlLgzCem8veowy/edcdrnlg51efbm1jSp4QdZabB1ljUUSY1xfuEm/ayhSFB/hSIiIiJSYhSOiIiISIlJz8rls40n+HzTCTKyHS+22rlxIC/e2oauTapDVir88TFs/RhSY51fOKg/XPscBPVzUeUiIiJSmSkcERERkX/MMAyW7zvD26sOE5WY4bBPo+o+PHtza27tUA9TVips+RC2fgJp55xfuOkAayjSpI9rChcRERFB4YiIiIj8Q/vCE/j3zyHsDnW8rkhVb3ceva4FY/s0wSs3DbZ8AFunQ3qc84tedZ11odXGvVxUtYiIiMjfFI6IiIhIscQkZfDOr0f4YU+Ew+NmE4zu2YQnbmxJdbcM2PoBbPsU0h2HKAA0v8EaijTq4aKqRURERPJTOCIiIiJFkpmTy+wtp/j09+OkZuU67NPnqhq8PKQtrQMN+PNDayiSkeD8oi0GwYDnoGFXl9QsIiIiUhCFIyIiIlJoG47E8NqKEE6dS3V4vHF1X/7v1jYMauaFafunsH0mZCY6v2DLwTDgGWjQxUUVi4iIiFyewhERERG5rPC4NP79cwhrQqIdHvfzdONf17dgQpcAvHZ+Dss/g8wk5xdsdas1FKl/tWsKFhERESkChSMiIiLiVEZ2Lp9vPMmMDcfJzMm/Na/JBHd3bcjT19SiVvBs+ORzyEp2fsHWt1nXFKnX0YVVi4iIiBSNwhERERHJxzAM1h6K4d8/HyQ8Lt1hn6sbBfLGTfVod/pr+HIWZKU4v2DbO+CaZ6BuexdVLCIiIlJ8CkdERETEzulzqby24iDrj8Q6PF7Dz5OXr6vN7ak/YPr+S8h2vP4ImKDdndZQpE5bl9UrIiIi8k8pHBERERHAOoVm5oYTzNxwgqzc/FNozCaY2s2fR71X4bVhDmSnObmSCdoPg2uehtptXFu0iIiISAlQOCIiIiJsPhbLSz8e4PR5x4HHjY0M3q67gRqHvoEcx9NsMJmh/V3WUKRWKxdWKyIiIlKyFI6IiIhUYjFJGby+8hAr9p1xeLx1lTSmN97EVWGLMMVmOL6IyQwdRsA1T0HNFi6sVkRERMQ1FI6IiIhUQrkWg2+2h/Leb0dIzszJd7y+OZ4PG26ke9xyTCedhSJu0PEeayhS4yoXVywiIiLiOgpHREREKpn9EQn837IDBEcm5jtWl/O8XO03bs5agzkm0/EFTG7QaRT0f1KhiIiIiFwRFI6IiIhUEskZ2bz32xHmbw/FMOyP1eccj3n/zHDzetzSsx1fwOwOV98L/Z6E6k1dX7CIiIhIKVE4IiIiUgmsPniWl386yNkk+ykyDYjlIffl3OO+EXdyIP8mNWD2gM6jraFItSalU7CIiIhIKVI4IiIicgWLScrgleUHWXXgrF17Q1MMD7v9xN3um3An1/HJZg/oMgb6PQGBjUuhWhEREZGyoXBERETkCmSxGCzcGc5bqw6RnPH3gquNTNE84vYTw9w242FyEoq4eUKXsdZQJKBhKVUsIiIiUnYUjoiIiFxhTsSm8PzSYHacirO1NTGd5RG3HxnqtgV3k6O5M4CbF3QdD30fg4AGpVOsiIiISDmgcEREROQKkZVj4bONJ5j++3Gycq0BSFNTFI+4L+NO8x+4mQzHJ7p7Q9cJ1lDEv14pViwiIiJSPigcERERuQL8FRbPcz8EcyQ6GYCrTJE84v4jt5u3FhCK+EC3idD3UahatxSrFRERESlfFI6IiIhUYBnZuXyw5ihfbj6JxbCGIo+6L2OIeRtmZ6GIh++FUOQxqFK7dAsWERERKYcUjoiIiFRQu07H8cyS/Zw8l0oLUwSPeizlVvOfBYQiftBjEvT+F1SpVbrFioiIiJRjCkdEREQqmLSsHP776xHmbTtNS8L41GMpt7rtcH6CZxXo8QD0fgT8apZeoSIiIiIVhMIRERGRCmTriXM8+8N+qsQfZob7Uga77XTe2bMq9JxsDUV8q5dekSIiIiIVjMIRERGR8shigZx066KpZjMpmTm89csh9u7YxIvuS7nJa5fzc738oeeD0GuqQhERERGRQlA4IiIiUp6cDYZtn0LIT5CdBh6+RDe8iRnhTbk2cwNveO1xfq5XgDUQ6fUg+FQrvZpFREREKjiFIyIiIuVF8BJYNgUsOX+3ZadR59QyXgNwc3KedwD0ehh6TgGfQNfXKSIiInKFUTgiIiJSHpwNzh+MXIbhHYip9yPWdUW8A1xYnIiIiMiVTeGIiIhIebDt00IHI7ne1XDr8wimHpPB29/FhYmIiIhc+RSOiIiIlDWLxbrGSCEYZg/cHt+nJ0VERERESpC5rAsQERGp7LIzU62LrxaCyZINZv1uQ0RERKQkKRwREREpQ8eik7lr1h6yDWerrV7Cw9e6va+IiIiIlBj96klERKQMGIbBvK2neWvVIZ7kGzzccwt3Yts7wazfbYiIiIiUJIUjIiIipSwmKYOnl+xn09FoXnGfz3j31YU70ewOvR9ybXEiIiIilZDCERERkVL028GzPL80mITUDN50n80o9/V2xw3A5OhEszsM/RzqdiiNMkVEREQqFYUjIiIipSA1M4fXfw5h4c5w3MjlPY/PGea2xa6PYTJjGvgCnD8JIT9aF2n18LVOpen9kIIRERERERdROCIiIuJif4XF88T3ezl9Pg0PcvjQYzq3uu2w72R2xzTsC2g/zPr/d3wKOenWxVe1xoiIiIiISykcERERcZGcXAufrj/Bx78fI9di4EUW0z0+5ka3PfYd3Tzh7rnQ+ta/28xm8PQr1XpFREREKiuFIyIiIi4QEZ/GYwv3sjs0HgBvMpnl8QHXuAXbd3T3hnu+hRY3lEGVIiIiIgIKR0RERErcL8FRPPvDfpIzcgDwI50vPd6nt1uIfUcPP7h3ITS9pgyqFBEREZGLFI6IiIiUkPSsXP79cwjf7QiztVUljbme79DVfMy+s2dVuG8JNO5VylWKiIiIyKUUjoiIiJSAw2eT+NeCvzgWk2JrCySZ+Z5v09F8yr6zdyCMWQoNupZukSIiIiLikMIRERGRf8AwDL75M4z//BxCZo7F1l6DRL7xfJM25nD7E3xrwNiftC2viIiISDmicERERKSYEtKyePaH/fx2MNquvTbxfOf1BleZztifUKWuNRip3boUqxQRERGRy1E4IiIiUgw7TsXx2MK/iErMsGtvQCyLfd+mviXK/gT/hjBuOdS4qhSrFBEREZHCUDgiIiJSBBaLwcyNJ3h/9REshv2xxqZolld9m8As+ydJCGwC41ZAtSalV6iIiIiIFJrCERERkUKKS83iyUV72XAkNt+xLr6xLPB6C+/0GPsDNZrD2OUQ0KCUqhQRERGRolI4IiIiUgi7Tsfxr+/yT6MBuKdxEm+mvI5b2jn7A7XaWNcYqVqnlKoUERERkeJQOCIiIlIAi8Xgi80n+e9vR8i9ZB6N2QRv9LIw8vDzmNLj7U+s2xHG/Ah+NUqvWBEREREpFoUjIiIiTiSkZTFt0T7WHY7Jd6xmFS++usFCx/WTIDPR/mCDbnDfEvCpVkqVioiIiMg/oXBERETEgT1h8fxrwV9EJqTnO9a7WQ1m9E+n2rJxkJVif7Bxb7h3EXj7l1KlIiIiIvJPKRwRERHJwzAMZm85xdurDpNzyTQakwn+dV0LHguKwO37eyHnkuCk6QAY9R14+pVixSIiIiLyTykcERERuSAlM4dnluzjl+Cz+Y7V8PPkw5FX09+yGxaOhdxM+w4tBsGIr8HDu5SqFREREZGSonBEREQEOB6TzJSvd3MiNjXfsR5Nq/PJqM7UifgNlkwES459h9a3wfA54O5ZStWKiIiISElSOCIiIpXeyv1RPLNkH6lZufmOPTzwKp64oSXuB3+AZVPAuKRP+7tg6Ofg5lFK1YqIiIhISVM4IiIilVZ2roV3Vh3myy2n8h3z93bno5GdGdi6Nuz5Gpb/C7Bfg4SrR8Ptn4DZrXQKFhERERGXUDgiIiKVUkxyBo8s+Isdp+LyHWtbz5/P7utK4xq+sOML+OWp/Bfodj/c8h6YzaVQrYiIiIi4ksIRERGpdHaejuPhb/cQk5yZ79jwrg35z53t8fZwg63TYfX/5b9Ar4fhpjes29eIiIiISIWncERERCoNwzCYu/U0b6w8lG+bXk83M6/e3o5RPRphMplg47uw/j/5L9J/Glz3koIRERERkSuIwhEREakUMrJzeWFpMEv/isx3rEGgDzNGd6FTo0AwDFj3Omx+L/9FBr4IA552fbEiIiIiUqoUjoiIyBXvTEI6U77eTXBkYr5j/VvU5KORnanu52kNRla/CNum57/Ija9D30dLoVoRERERKW0KR0RE5Iq241QcD327m3MpWfmO/eu65jx+Q0vczCawWGDV07Dzy/wXueU96PFAKVQrIiIiImVB4YiIiFyRDMPg2z/DeHX5wXzri/h5uvG/e65mULu61gZLLix/FPZ+c8lVTHD7x9BlbOkULSIiIiJlQuGIiIhccTJzcnl1+UG+2xGe71jTmn7MGtOVFnWqWhtyc+DHByF4sX1Hkxnu/Aw63VMKFYuIiIhIWVI4IiIiV5SYpAymfruH3aHx+Y5d26oWH43sTICPh7UhJwt+mAiHVth3NLvDXbOh3Z2uL1hEREREypzCERERuWL8FRbPg9/sJjopM9+xqddexVODWlnXFwHIzoBFY+HYb/Yd3TxhxHxoNbgUKhYRERGR8kDhiIiIXBGW7onguR+Cycq12LX7eLjx7t0dua1j/b8bs1Jh4b1wcoP9Rdx9YOS30Px61xcsIiIiIuWGwhEREanQLBaDd1cfYeaGE/mONazmw6wx3Whb3//vxsxk+HYEhG217+zhB6MXQVA/F1csIiIiIuWNwhEREamwUjNzePz7vawJic53rM9VNZh+bxeq+3n+3ZieAN8Oh4id9p29/GH0Emjc07UFi4iIiEi5pHBEREQqpIj4NCbN28Xhs8n5jo3vE8SLt7bB3c38d2NaHHx9J0Tts+/sUw3GLIP6nV1bsIiIiIiUWwpHRESkwtkdGs+Ur3dxLiXLrt3dbOLfd7Tn3p6N7U9IiYH5d0BMiH27b00Y+xPUbe/iikVERESkPFM4IiIiFYqzhVcDfT2YMboLfa6qaX9C0hmYdzucP2bfXqUujFsOtVq5uGIRERERKe8UjoiISIVQ0MKrV9XyY/a47gTV9LM/kBAG84ZA/Gn79oBG1idGalzluoJFREREpMJQOCIiIuVeamYOT3y/l9UOFl69pmUtPhnVmQAfD/sD509YnxhJirBvrxYE41ZA4CVTb0RERESk0lI4IiIi5Vp0UgYT5+7k4JmkfMccLrwKEHvEGoyknLVvr9nS+sSIf30XViwiIiIiFY3CERERKbcOn01iwpydRCVm2LW7m028dkc7Rvdskv+ks8Ew/05IO2ffXrsdjP0RqtR2Wb0iIiIiUjEpHBERkXJp49FYHv52DymZOXbtAT4ezBzdhT7Na+Y/KXIPfD0UMhLs2+t1gjE/gm91l9UrIiIiIhWXwhERESl3FvwZxks/HSDXYti1N6nhy5zx3WlWq0r+k8L+hG+HQ+Yl028adofRS8An0HUFi4iIiEiFpnBERETKDYvF4J3fDvP5xpP5jnVtUo0vxnajup9n/hNPbYYF90B2qn17k75w7/fgVdVFFYuIiIjIlUDhiIiIlAsZ2blMW7SPlcFR+Y7d1rEe793dCW8Pt/wnHl8LC0dDjv26JDQbCCMXgKeviyoWERERkSuFwhERESlz51MyeWD+LvaEJeQ79vDAq5h2YyvMZlP+Ew//AovHQW6WfXvLm+HueeDh7ZqCRUREROSKonBERETK1InYFCbM2UlYXJpdu7vZxBtD23NP98aOTzy4DH6YBBb7BVtpczvcNRvcHUy/ERERERFxQOGIiIiUmd2h8dw/bycJadl27VW93Jl5X1f6tXCwIw3Avu/hxwfBsNi3d7gb7vwM3PTtTUREREQKT/96FBGRMrEmJJpHFuwhM8c+4GgQ6MNX47vTqq6TRVR3z4MVjwH2O9nQeQwM+QjMDtYlEREREREpgMIREREpdd/+GcpLPx7gkp166dAggNnjulHb38laIX/OglVP52/vPgkGvwtmc8kXKyIiIiJXPIUjIiJSagzD4H9rjvLx78fzHbu2VS0+vbcLfl5OvjX98RGseTl/e+9HYNB/wORgwVYRERERkUJQOCIiIqUiO9fC/y0LZtGuiHzH7u7akDeHdcDDzcGTH4YBm96F9W/kP3bN0zDw/xSMiIiIiMg/onBERERcLi0rh4e/3cP6I7H5jv3ruuY8eWNLTI4CDsOAdf+GLR/kP3bdi9ZwRERERETkH1I4IiIiLnUuJZP75+5kX0SiXbvZBP++oz339Wri+ETDgN9egO0z8h+76U3o/bALqhURERGRykjhiIiIuEzo+VTGfbWD0+fT7Nq93M18Mqozg9rVdXyixQIrn4Tdc/Ifu/V96wKsIiIiIiIlROGIiIi4RMiZJMZ+tYNzKZl27YG+Hswe142uTao7PtGSC8v/BXu/veSACW7/BLqMcU3BIiIiIlJpKRwREZESt+NUHPfP20lyRo5de4NAH+ZN7EHz2lUcn5ibDcumwIEf7NtNbjBsFnQY7qKKRURERKQyUzgiIiIl6vfD0Uz9Zg+ZORa79jb1/Jk7oTt1/L0dn5iTCUsmwuGf7dvNHjD8K2h7u4sqFhEREZHKTuGIiIiUmKV7Inh6yX5yLYZde4+m1flyXDf8vT0cn5idDt+PgeNr7NvdvOCer6HlTS6qWERERERE4YiIiJSQr7ac4t8/h+Rrv6FNHabf2xlvDzfHJ2alwncj4dQm+3Z3Hxj1HVw10AXVioiIiIj8TeGIiIj8I4Zh8L81R/n49+P5jt3VpSHv3NUBdzez45MzkmDBCAjbZt/uWQXuXQRBfV1QsYiIiIiIPYUjIiJSbLkWg1eWH+Cb7WH5jk3q15QXbmmD2WxyfHJ6PHxzF0Tutm/3CoD7foBG3V1QsYiIiIhIfgpHRESkWLJyLDy5aC8/74/Kd+zpm1rx0LVXYTI5CUZSz8HXd8LZYPt2n+owZhnUv7rE6xURERERcUbhiIiIFFl6Vi4PfrObjUdj7dpNJnjjzg7c27Ox85OTo2H+7RB72L7drxaMXQ512rqgYhERERER5xSOiIhIkaRk5jBx7k52nIqza/d0M/PhyKu5pUM95ycnRlqDkfOXrE9StZ41GKnV0gUVi4iIiIgUTOGIiIgUWmJaNmPn7GBfeIJdu6+nG7PGdKNfi5rOT44PhXlDICHUvj2gMYz7Cao3K/mCRUREREQKQeGIiIgUyrmUTMbM3sGhqCS7dn9vd+ZN7EHnxtWcn3z+hDUYSYq0b6/ezPrESGAjF1QsIiIiIlI4CkdEROSyziZmcO+X2zkZm2rXXsPPk6/v70nb+v7OT445bJ1KkxJt316zpTUY8S9gGo6IiIiISClQOCIiIgUKj0vj3i+3Ex6Xbtde19+bbyb1pHntKs5Pjtpv3ZUm7bx9e532MOZHqFKrxOsVERERESkqhSMiIuLUidgURn/xJ2eTMuzaG1X3YcGkXjSq7uv85Mjd8PVQyEi0b6/fGe5bCr7VXVCxiIiIiEjRKRwRERGHDkUlMWb2n5xLybJrb1bLj28n9aRegI/zk8O2wzfDISvZvr1RTxi9GLwDXFCxiIiIiEjxKBwREZF89oYnMO6rHSSmZ9u1t65blW8m9aRmFS/nJ5/cCN+NhOw0+/ag/jBqIXgVMA1HRERERKQMKBwRERE7u0PjGPfVTlIyc+zaOzUKZN6E7gT6ejo/+dha+H405NhPw+Gq6+Ceb8GzgGk4IiIiIiJlROGIiIjY7Dwdx/ivdpCalWvX3qNpdb4a350qXgV82zi8EhaNA4v90ya0HAwj5oF7AU+biIiIiIiUIYUjIiICwJ8nzzNh7k7SLglGrmlZi8/v64qPp5vzkw8shaUPgMX+aRPa3gnDvgD3Ap42EREREREpYwpHRESEbSfOM3HuTtKz7YOR61vXZsZ9XfByLyAY2fsd/PQQGBb79o4j4Y5PwU3fakRERESkfNO/WEVEKrk/jp/j/nk7yci2DzdubFuH6fd2LjgY2TUHfn48f3uXsXDbR2A2l2yxIiIiIiIuoH+1iohUYpuOxjJxbv5g5KZ2dfj03ss8MbL9M8fBSI/JCkZEREREpELRv1xFRCqpDUdimDR/F5k59sHILR3qMv3eLni6F/AtYsv/4Ndn87f3eRQG/1fBiIiIiIhUKJpWIyJSCf1+OJoHv95DVq59MHJbx3r8756r8XBzEm4YBmx8Bza8lf/YgOfg2ufAZHJBxSIiIiIirlNqv9oLCwvjqaeeok2bNvj5+VG9enV69OjBe++9R1paWomOtXbtWsaPH0/z5s3x8/MjICCAli1bMnz4cGbOnElKSkqJjiciUpGsDYlmyte78wUjd1xdnw8vF4ysfdVxMHL9KzDweQUjIiIiIlIhmQzDMFw9yMqVKxk9ejSJiYkOj7dq1YpffvmFZs2a/aNx4uPjmTBhAj/99FOB/f766y+uvvrqfzTWpSIiImjUqBEA4eHhNGzYsESvLyJSEtYdiubBb3aTnWv/pX9Y5wa8e3cn3MxOwg3DgF+fgz8/y3/spreg90MuqFZEREREJD9X/Pzt8mk1+/btY8SIEaSlpVGlShWef/55Bg4cSHp6OgsXLuSLL77gyJEj3HrrrezcuZMqVaoUa5zExERuvPFGdu/eDcCtt97KyJEjad68Obm5uYSGhrJz506WLFlSkrcnIlJhbDgSw9Rv9uQLRoZ3bcg7d3V0HoxYLLDyCdg9N/+xWz+A7veXfLEiIiIiIqXI5U+ODBw4kA0bNuDu7s6mTZvo3bu33fF3332XZ555BoDXXnuNl19+uVjjjB07lq+//hp3d3e++eYb7rnnHof9DMMgNzcXd/eSzYX05IiIlGdbjp1j4rydZF2y+OqIbg15e1hHzM6CkdwcWP4I7PvOvt1khjs+havvdVHFIiIiIiKOueLnb5euObJz5042bNgAwP33358vGAGYNm0abdq0AeDDDz8kOzu7yONs2bKFr7/+GoAXX3zRaTACYDKZSjwYEREpz7adOM+k+fmDkbu7Xi4YyYalkxwEI25w15cKRkRERETkiuHScOTHH3+0vZ4wYYLjAsxmxo4dC1jXDLkYphTF9OnTAahSpQrTpk0r8vkiIleqHafimDh3JxnZ9sHIsM4NePuuAoKRnExYNA4OLrNvN3vAiHnQ/i4XVSwiIiIiUvpcGo5s3rwZAD8/P7p27eq034ABA2yvt2zZUqQxsrKybAuwDh482LZmSU5ODqGhoYSFhZGVlVXU0kVEKrzdoXFMmLOD9Oxcu/YhneoXvPhqdjosvBeOrLRvd/OCkQugzRAXVSwiIiIiUjZcGo4cOnQIgObNmxc4laV169b5zimsffv2kZGRAUDv3r05e/YsEyZMIDAwkKCgIJo0aUJAQAC33HILW7duLcZdiIhUPHvDExj31U5Ss+yDkVs61OV/IwoIRjJT4Nu74fha+3YPXxi9CFoOclHFIiIiIiJlx2WLb2RkZHDu3DmAyy6OUq1aNfz8/EhNTSU8PLxI44SEhNiN2aFDB9u4edtXrVrFb7/9xvvvv8/jjz9epDHAuuBLQaKioop8TRERVwiOSGTM7D9Jycyxax/Utg4fjeyMu5uTXDwjEb4dAeHb7ds9q8LoxdAk/7pRIiIiIiJXApeFI8nJybbXhdme92I4kpKSUqRx4uLibK9fe+01MjMzue2223j11Vdp3749iYmJ/PDDDzz33HMkJSXx5JNP0qpVKwYPHlykcS6uhCsiUp4dPJPIfbP/JDnDPhi5vnVtpt/bBQ9nwUhaHHxzF5zZY9/uHQD3LYOGzqdGioiIiIhUdC6bVnNxqguAp6fnZft7eXkBkJ6eXqRxUlNTba8zMzMZMmQIP/30E127dsXLy4vatWszdepUVq5cidlsxjAMnnnmGVy8g7GISKk7Gp3MfV/+SWK6/a5fA1rWYsZ9XfB0d/IlP/UczLs9fzDiUx3GrVAwIiIiIiJXPJc9OeLt7W17XZgFUTMzMwHw8fEp9jgA7777LmZz/h8A+vXrx7Bhw1iyZAkHDhzgwIEDdOjQodDjXG66T1RUFD169Cj09URESlLo+VTu+/JP4tPsg5F+zWvy+ZiueLm7OT4x+aw1GDl3xL7drzaMWw6127ioYhERERGR8sNl4UjVqlVtrwszVebiEyCFmYLjbJymTZvSqlUrp31vuukmlixZAsDOnTuLFI5cbt0UEZGyEpWYzr1f/ElMcqZde69m1flibDe8PZwEI4kRMG8IxJ20b/dvAGOXQ83mLqpYRERERKR8cdm0Gm9vb2rWrAlcfjHT+Ph4WzhS1LU98va/XICRt29MTEyRxhERKY/OpWQy+ss/iUywn5LYtUk1Zo/rjo+nk2Ak7hTMGZw/GAlsDBN+UTAiIiIiIpWKS7fybdPG+jj28ePHycnJcdrv8OHD+c4prHbt2tle5+bmFtDT/nhBWwuLiFQEiWnZjJm9g5OxqXbt7er789X47vh5Ofk6d+4YzLkFEsLs26tfBRNWQbUg1xQsIiIiIlJOuTQc6devH2CdMrN7926n/TZu3Gh73bdv3yKN0aRJExo3bgzAiRMnCuyb93iDBg2KNI6ISHmSkpnD+Lk7OBSVZNd+VS0/5k/sQYCPh+MTo0OswUjyGfv2Wq2tT4wEaAqhiIiIiFQ+Lg1H7rzzTtvrOXPmOOxjsViYP38+AIGBgQwcOLDI49x1110AREdHs3XrVqf9li5danvdv3//Io8jIlIeZGTn8sC8XfwVlmDX3qi6D99O6kWNKl6OT4zaB3NvhdRLphXW6QDjV0LVuq4pWERERESknHNpONKjRw9bCDF79my2bduWr8/777/PoUOHAHjsscfw8LD/befcuXMxmUyYTCZeffVVh+M8/vjjtl1rHn30UbvtfS/65ptv2LBhAwC33nqrFlgVkQopO9fCw9/uYdvJ83btdfy9+Pb+XtQN8HZ8YsQu6+Kr6XH27fW7wPgV4FfTRRWLiIiIiJR/Lg1HAD766CN8fHzIyclh0KBBvPXWW2zfvp3169czZcoUnnnmGQBatmzJtGnTijVG48aN+fe//w3A7t276dGjB/PmzWP37t38/vvvPPLII4wfPx4Af39//ve//5XIvYmIlKZci8ET3+9l3WH7Jz+q+3ny7aSeNK7h6/jE0K0w/w7ISLRvb9QLxv4EPtVcVLGIiIiISMXg8lVJO3fuzPfff899991HUlISL7zwQr4+LVu2ZOXKlXbb8hbV008/TVxcHO+88w4hISG2MCSv2rVr8+OPP9KiRYtijyMiUhYMw+CFpcH8vD/Krr2qtzvzJ/ageW0nXz9PboDvRkF2mn17UH8YtRC8irZ9uoiIiIjIlcjlT44ADBkyhP379/PEE0/QsmVLfH19CQwMpFu3brzzzjv89ddfNG/+z7eNfOutt/jjjz8YM2YMQUFBeHl5ERAQQPfu3Xn99dc5evQovXv3LoE7EhEpXW+tOsz3u8Lt2nw83Jg7oTvtGwQ4Punoavh2RP5gpPkNMHqxghERERERkQtMhmEYZV3ElSAiIoJGjRoBEB4erjVNRKTEfL7xBG+tOmzX5ulm5qvx3enXwslaIYdWwOIJYMm2b291K9w9B9ydLNoqIiIiIlLOueLn71J5ckRERIpn0a7wfMGIm9nE9Hs7Ow9GgpfAonH5g5F2w2DEPAUjIiIiIiKXUDgiIlJOrQmJ5rkf9udr/+9dHRnUzsm2u399Cz9MAiPXvr3TKLjrS3DzcHyeiIiIiEglpnBERKQc+vPkeR5esAfLJRMf/++WNtzV1cljgztnw08PAZec1HU83DEDzG6uKFVEREREpMJTOCIiUs6EnEli0rxdZOVY7NofHHAVD1zTzPFJ22bAyifzt/d8EG77EMz6ci8iIiIi4oz+tSwiUo6Enk9l7Fc7SM7MsWsf0a0hz97cyvFJm9+H357P397vCbj5bTCZXFCpiIiIiMiVw72sCxAREauY5AzGzN7BuZRMu/Yb29bhzaEdMF0achgGrH8TNv03/8WufQEGPKNgRERERESkEBSOiIiUA4np2Yz7aidhcWl27T2aVueTUZ1xd7vkQT/DgDUvwdZP8l/shteg3+OuK1ZERERE5AqjcEREpIxlZOfywPxdHIpKsmtvU8+fL8d1w9vjkoVULRb49VnYMSv/xQb/F3pOcWG1IiIiIiJXHoUjIiJlKNdi8NjCv9hxKs6uvUkNX+ZN7I6/9yVb71py4efHYc/8S65kgiEfWnemERERERGRIlE4IiJSRgzD4N8rDvLbwWi79lpVvfh6Yk9qV/W2PyE3x7pV7/7v7dtNZrhzJnQa6eKKRURERESuTApHRETKyKxNJ5m3LdSuraqXO/Mm9KBxDV/7zjlZsHQShPxk3252h2FfQPthLq5WREREROTKpXBERKQM/LQ3krdWHbZr83Az8fnYrrSt72/fOTsDFo+Ho6vs29084e650PpWl9YqIiIiInKlUzgiIlLKth4/x1OL9+Vrf+/uTvS5qqZ9Y1YafD8aTvxu3+7uDSO/heY3uLBSEREREZHKQeGIiEgpOhSVxJSvd5Oda9i1Pz+4NXdc3cC+c2YyfDcKTm+2b/fwg3sXQtNrXFytiIiIiEjloHBERKSUnElIZ8KcnSRn5ti1j+8TxORrmtl3zkiEb4ZDxA77ds+qcN8SaNzLxdWKiIiIiFQeCkdEREpBYno24+fs4GxShl37ze3q8tJtbTGZTH83psXB10Mhaq/9RbwDYcxSaNDV5fWKiIiIiFQmCkdE/r+9+w6PqszfP37PZNJDCB0kQGihCCIdBIRQZMUFdVFRURELuqKuAqLyE0Gxouj6de0odkBdBBRUJBQpYhBpSgeBUCXUkF7O748skzykh5lJJvN+XRfXzvmc5znnE64Hlrk9BXCztMwsjfr4V+04etaod2pUTf++8VL52fMEI2ePSR9fLf31h3mQkBrSbfOkum090DEAAADgWwhHAMCNsrMtjf1io37584RRb1IrVO/d1klB/n65xTOHpY+HSAk7zIOE1c0JRmq39EDHAAAAgO8hHAEAN3rxh236dtNho1arSqA+GtlF1UIDcoun9ksfDZFO/mkeIDxSGjFfqtHUA90CAAAAvolwBADcZGbcfr2zfI9RCw3w04zbO6tB9ZDc4ok9OcHI6XjzABGNpBHfSNUaeaBbAAAAwHcRjgCAG6zYeUxPzP3dqDnsNr15S0e1qV81t3hsR86tNInm1SWq0Uy6bb5U9bzX+wIAAABwOcIRAHCxHUcTdd+nvykr2zLqz17bRr2ja+UWjv6R8/DVpGPmAWq1ynnGSJU6HugWAAAAAOEIALjQscQ0jZyxVolpmUb93t5NNaxzw9zCoQ3SJ9dIKSfNA9S9RLp1rhRaw92tAgAAAPgfwhEAcJHUjCzd/fGvOngqxagPaltX4we2yC3Ex0mfXielnTYPUL+TdMtXUnA1D3QLAAAA4BzCEQBwgexsS2O+2KAN8aeM+qUNIvTKDZfKbrflFPaukj6/QUo/ax6gYXfp5i+koHDPNAwAAADAiXAEAFzgpUXbtXDzEaMWWS1Y793WSUH+fjmF3UukmTdLmeaVJWrcW7ppphQQ6qFuAQAAAORFOAIAF2hW3H69tWy3UasS5NCM2zurVpXAnML276UvbpOy0szJza+QbvhE8g/yULcAAAAAzmcv7wYAwJut2pVQ4Ct73xreUc3rVMkpbJknzb4lfzDS8u/SsM8IRgAAAIByRjgCAGW0669E3fvpOmWe98reZ65po57Na+ZsbPpS+nKklJ1hTm4zVLr+Q8kR4JlmAQAAABSKcAQAyuBkUrru+PBXJabmf2XvjV3+98re3z6R5twtWVnm5EuHS/94T/Lz91C3AAAAAIpCOAIApZSRla1/frZO+08kG3Xjlb1x70nz75dkXlWiTndKQ/4j2f080ywAAACAYhGOAEApWJalSfP/0Jo9J4x6u8iqua/sXf0faeG4/JO7jZaumibZ+asXAAAAqEh4Ww0AlMIna/bp81/2G7W64UG5r+xd/pK09Jn8E3uNlfpOlGw2D3UKAAAAoKQIRwCghFbuTNBT32wxakH+dr13WyfVrhIoxU6RVrycf2LME1LvRzzUJQAAAIDSIhwBgBL4MyFJ9322TlnnvZnm5evbqW39cGnRE9LP/8k/ccAUqceDHuoSAAAAQFkQjgBAMU6nZOjOj9bqzHlvpnmwX3P9vU3dnOeLrJ2ef+Kgl6Uud3uoSwAAAABlRTgCAEXIzMrWAzPXa8+xJKN+ZZu6eiimiTT/AWnDp+fNsklD/k/qcJvnGgUAAABQZoQjAFCE5xZu0087jhm11vXCNe26i2Wfd6+0+Utzgs0uXfO21G6YB7sEAAAAcCEIRwCgELPi9uuDVX8atZphgXrvlksUMu8uaes35gS7Qxr6vnTxNZ5rEgAAAMAFIxwBgAL8sue4Js773agF+Nn17k0Xq/73d0s7fzAn+AVIN3wstbjSg10CAAAAcAXCEQA4z8FTKfrnZ78pI8t8M83UIU3VYdW90p5l5gRHsHTjZ1Kzfp5rEgAAAIDLEI4AQB6pGVm655NfdSIp3ag/0LOOrvnjX9L+1eYE/1Bp+BdSVE8PdgkAAADAlQhHAOB/LMvShDmb9fvBM0b9quYhGnP4MengWnNCYLh0y3+lBl082CUAAAAAVyMcAYD/mbFqr+asP2jULq2Rpf9Lf1K2o5vMwcHVpFu/li5q78EOAQAAALgD4QgASFq9O0HPLtxq1BoFntXswGnyO7rdHBxSU7ptnlS3jQc7BAAAAOAuhCMAfN6Bk8m6//P1ysrOfQBrHZ3QgvBpCjxhvspXYXWlEfOlWi083CUAAAAAdyEcAeDTUjOydO+n64wHsNbXMS2oOlVhieYtNqraIOeKkRpNPdwlAAAAAHciHAHgsyzL0uPnPYC1ke2I5oQ8r4i0Y+bgalHSiG+kiIaebRIAAACA2xGOAPBZH6zaq6/zPIC1qe2gZgc9pxpZJ82BNaNzrhgJv8jDHQIAAADwBMIRAD5p9e4EPZfnAaytbPv0acDzqmGZr/FV7Yul2+ZKYbU92yAAAAAAjyEcAeBzzn8Aa1vbHn0S8LwibEnmwHrtpFvnSiHVPd8kAAAAAI8hHAHgU85/AGsH2w59GPCiwm0p5sDIztLwr6TgCM83CQAAAMCjCEcA+JRJ8/5wPoC1m32L3vd/SaG2NHNQox7SzbOlwCrl0CEAAAAATyMcAeAzZq/dr9m/xkuSLrdv1Lv+ryjIlmEOahIj3fi5FBBSDh0CAAAAKA/28m4AADzh94OnNXHeH5Kk/vZ1es9/Wv5gJPpv0k2zCEYAAAAAH8OVIwAqvdPJGfrnZ+uUnpmtQfY1es3/DfnbssxBrYZIQ9+XHAHl0yQAAACAckM4AqBSy862NOaLDYo/kaJr7Cs1zf8t+dksc1Db66Vr3pb8+CsRAAAA8EXcVgOgUntz2S7FbvtLw/yW6pWCgpH2t0rXvkMwAgAAAPgwvg0AqLRW7DymaT/u0G1+P+hp/4/yD+h8l3TlS5KdnBgAAADwZYQjACqlQ6dS9K9ZG3S3/RtN8J+Zf0D3+6UrnpFsNs83BwAAAKBCIRwBUOmkZ2brvk/XaXjqLI31/yr/gMsfkWL+H8EIAAAAAEmEIwAqk+xsKTNFzy3YpQFH3tFo//n5x/SdKF0+zvO9AQAAAKiwCEcAeL8jm6Wf35C2zJMykvX/LD/5O7Lyjxv4nNR9tOf7AwAAAFChEY4A8G6bv5K+vkfKznSW/G0FBCNXTct5ACsAAAAAnIdXNADwXkc25wtGzmdJUu/HCEYAAAAAFIpwBID3+vmNIoMRSbJJ0qn9HmkHAAAAgHciHAHgnbKzc54xUhJb5uaMBwAAAIACEI4A8E6ZKVJGcsnGZiTnjAcAAACAAhCOAPBOjmBZ/iElG+sfIjmC3dsPAAAAAK9FOALAO9nt+i20V8nGtr5GsvPXHQAAAICC8W0BgFeau/6gvjtWo/iBdofU/T73NwQAAADAaznKuwEAKK3dx85q4tcbNNdvadED7Q7p2nekum090xgAAAAAr0Q4AsCrpGZkafRnv2lQ1lI19T9s7vQLkLLSc54x0vqanCtGCEYAAAAAFINwBIBXeeqbLfrzyHHNCPyvuaPepdLdS6TM1JyHr/KMEQAAAAAlxLcHAF5j3oaDmhm3X7f5LVI92wlzZ//Jkt1PCgglGAEAAABQKnyDAOAV/kxI0oQ5mxWuJI12zDN3Nu4tNY0pn8YAAAAAeD3CEQAVXnpmth6cuV5J6Vka5fhWEbYkc0D/SeXTGAAAAIBKgXAEQIU3bdF2bT54WrV0Unf4fW/ubDVEqt+xfBoDAAAAUCkQjgCo0H7acUzv/LRHkvSAY65CbGm5O212qe/EcuoMAAAAQGVBOAKgwko4m6YxX2yUJDW0HdVNfkvMAe1vkWpFl0NnAAAAACoTwhEAFZJlWXrky41KOJtzpcgYx5fyt2XlDvALlHo/Vk7dAQAAAKhMCEcAVEgzVu3V0u3HJEmtbXt1jd9qc0DXUVLV+uXQGQAAAIDKhnAEQIXzx6HTeuG7bc7tRxyzzQGB4VLPMR7uCgAAAEBlRTgCoEJJTs/UAzPXKz0rW5LU1bZVMX4bzUE9HpRCqpdDdwAAAAAqI8IRABXK099s0Z5jSf/bsjTef5Y5ILS21O0+j/cFAAAAoPIiHAFQYSzYdFiz1sY7t/vbf1NH+05zUO/xUkCohzsDAAAAUJkRjgCoEA6cTNZjczY5t+3K1qP+5z1rpFqU1GGEZxsDAAAAUOkRjgAod5lZ2Xpo1gYlpmY6a9fYV6q57YA5MOYJyRHg4e4AAAAAVHaEIwDK3ZvLduvXfSed2wHK0P8L+docVKeN1GaohzsDAAAA4AsIRwCUq43xp/RarPlckdFVlqtG5lFzYL9Jkp2/sgAAAAC4Ht80AJSb5PRMPTx7g7KyLWct3J6q++xzzYENL5OaD/BscwAAAAB8BuEIgHLz3MKt2pOQZNTebrpG/mknzIH9J0s2m+caAwAAAOBTCEcAlIul2/7Sp2v2G7VeF0ndj35uDmwxSGrY1YOdAQAAAPA1hCMAPO742TQ98tUmoxbs76f/NFgiW/rZPFWb1HeiZ5sDAAAA4HMIRwB4lGVZemzOZiWcTTPqz/erqqq/f2wObnejVKe1B7sDAAAA4IsIRwB41Be/xuvHLeabaPq1rK2rT34kZaXnFv0CpD6Pe7g7AAAAAL6IcASAx+w7nqSnvtli1GqEBuil3v6ybZxlDu50p1StkQe7AwAAAOCrHOXdAADfkJmVrYdnb1ByepZRf2HoJaq+5mFJua/zVUCY1GusZxsEAAAA4LO4cgSAR7y1bLd+23/KqN3YuYEGVNknbV9gDu5+vxRWy3PNAQAAAPBpXDkCwO02xp/Sv2N3GrVGNUI08apW0syrzcEhNaTuoz3YHQAAAABfx5UjANwqJT1LD8/eoKzs3Ntm7DbplRsuVWj8MmnfKnNCr3FSULhHewQAAADg2whHALjVC99t1Z6EJKN2f9/m6tigqrT4KXNw1QZSpzs82B0AAAAAEI4AcKPVuxL00c/7jFq7yKp6oG8z6Y850tHN5oSYCZJ/kAc7BAAAAADCEQBukpiaoUe+2mTUgvztemXYpfK3MqUlU8wJtVpKlwzzYIcAAAAAkINwBIBbPLdwqw6eSjFq4we2VNNaYdL6j6WTe80J/Z6U7H6eaxAAAAAA/odwBIDLLdv+l2bGxRu1ro2r6/bLoqT0JGn5VHNCZGepxSDPNQgAAAAAeRCOAHCp0ykZeuy/5rNEQgL89NJ17WS326Q1b0lnj5qT+k+WbDbPNQkAAAAAeRCOAHCpp775Q0fOpBq1/3dVKzWsESIln5BWvWZOaNZfiurpwQ4BAAAAwEQ4AsBlFv1xRHN+O2jUejWvqZu7NMzZWPmqlHbGnNRvkoe6AwAAAICCEY4AcIkTSema8LV5O02VQIdeHHqJbDabdPqgFPeuOanNdVK9SzzYJQAAAADkRzgCwCUmzvtdCWfTjdqTg1vroojgnI3lL0qZeW63sTukmAke7BAAAAAACkY4AuCCfbvpkBZsOmzU+rWsres6RuZsJOyU1n9qTuowQqrR1EMdAgAAAEDhCEcAXJBjiWmaOPd3o1Y12F/P/6Ntzu00krRkimRl5Q5wBEu9x3uwSwAAAAAoHOEIgDKzLEsTvt6sk8kZRn3KNW1UOzwoZ+PgOmnLPHNit39KVep6qEsAAAAAKBrhCIAym7vhoH7cctSoDWpbV4MvqZdbiH3anBQUIfX4l/ubAwAAAIASIhwBUCZ/JaZq8vwtRq1GaICmXN0m93aa3UulPcvMib3GSMERHukRAAAAAEqCcARAmUya94dOp5i30zx7bVvVCAvM2bAsKfYpc1KVelKXUR7qEAAAAABKxmPhyP79+zVu3Di1atVKoaGhql69urp06aKXX35ZycnJbjnn4cOHFRERIZvNJpvNpj59+rjlPICvWbj5sL77/YhR+/sl9fS3NnmeI7JlnnRovTmxz2OSf7AHOgQAAACAknN44iQLFizQ8OHDdfr0aWctOTlZa9eu1dq1azV9+nQtXLhQTZo0cel5H3jgAeOcAC7cyaR0PTnPfDtN9dAAPTXk4txCVmbOG2ryqtFMuvQWD3QIAAAAAKXj9itHNm7cqBtuuEGnT59WWFiYnn32Wa1evVqxsbG6++67JUnbt2/XVVddpbNnz7rsvN98843++9//qnbt2i47JgDp6W+3KOFsulGbNLh17u00krThM+n4LnNi3yckP4/ksQAAAABQKm4PRx566CElJyfL4XBo0aJFmjBhgrp3766+ffvq3Xff1dSpUyVJ27Zt0yuvvOKSc549e1ajR4+WJL388ssuOSYAacm2o/p6/UGj1r9VHQ1pd1FuISNFWvaCObHepVLra9zeHwAAAACUhVvDkbVr12rZsmWSpDvvvFPdu3fPN2bs2LFq1aqVJOnf//63MjIy8o0prQkTJig+Pl4xMTG69dZbL/h4AKQzqRmaMMe8naZKkEPPXpvn7TSSFPeelHjInNx/spR3DAAAAABUIG4NR+bOnev8PHLkyIIbsNt12223SZJOnjzpDFPKKi4uTm+88YYCAgL01ltvXdCxAOR6fuE2HTmTatQmXtVadcKDcgspp6QV08yJjXtLTWPc3yAAAAAAlJFbw5EVK1ZIkkJDQ9WxY8dCx/Xu3dv5eeXKlWU+X2ZmpkaNGqXs7Gw9+uijatGiRZmPBSDX6l0Jmhm336j1al5T13eKPG/g/0mpp8xa/0nubQ4AAAAALpBbw5GtW7dKkpo1ayaHo/AHMbZs2TLfnLJ4+eWXtXHjRjVt2lQTJkwo83EA5EpOz9SjczYZtZAAPz13bVvzdprEI9Ka867WajVEql94MAoAAAAAFYHbXh2RmpqqhIQESVJkZGSRY6tVq6bQ0FAlJSUpPj6+TOfbs2ePnn76aUnSm2++qaCgoGJmlM6BAweK3H/48GGXng+oKF76YbviT6QYtceubKkG1UPMgT+9JGUk527b7FLfiR7oEAAAAAAujNvCkcTEROfnsLCwYsefC0fK+jrfe+65RykpKRo2bJiuuOKKMh2jKA0aNHD5MYGKbt2+E/pw9V6j1iWqum7p2sgceGKPtO5Ds9b+FqlWtFv7AwAAAABXcNttNampuQ9uDAgIKHZ8YGCgJCklJaWYkfl9/PHHWrx4scLDw/Xqq6+Wej6A/FIzsvTIV5tkWbm1QIddLwxtK7v9vDfPLH1Oys7M3fYLlHo/5plGAQAAAOACue3Kkby3taSnpxc7Pi0tTZIUHBxcqvMkJCRo7NixkqRnn31W9erVK9X8kirudp/Dhw+rS5cubjk3UB5eX7JTe44lGbUxA6LVpNZ5V4Id3iRt/tKsdR0lVa3v5g4BAAAAwDXcFo5UqVLF+bkkt8okJeV8CSvJLTh5jRkzRgkJCerUqZPuu+++0jVZCsU9NwWoTLYdOaN3lu8xau0iq+rOno3zD4592twODJd6jnFjdwAAAADgWm69cqRmzZpKSEgo9mGmJ0+edIYjpXm2x6FDh/TJJ59Ikvr27asvvviiyPF//fWXZs2aJUlq3LixunbtWuJzAb4iK9vSY//drMzs3Ptp/P1smnpdOzn8zrsTb+9KadePZq3Hg1JIdQ90CgAAAACu4bZwRJJatWqlFStWaNeuXcrMzCz0db7btm0z5pRU3tt1pk6dWuz4rVu36qabbpIkjRgxgnAEKMBnv+zThvhTRu3e3k3Vom4Vc6BlSYufMmuhtaVu7ruCCwAAAADcwW0PZJWknj17Ssq5ZWbdunWFjlu+fLnzc48ePdzZEoAiHD6doqnfbzdqjWuGanRMs/yDt38nHYgza73HSwGhbuwQAAAAAFzPreHINddc4/w8Y8aMAsdkZ2fr448/liRFREQoJiamxMePioqSZVnF/jqnd+/eztqHH35Ypp8JqMwmzftDZ9Myjdpz17ZVkL+fOTA7K/+zRqpFSR1GuLdBAAAAAHADt4YjXbp0Ua9evSRJ77//vn7++ed8Y6ZNm6atW7dKkv71r3/J39/f2P/hhx/KZrPJZrNp8uTJ7mwX8Gnf/35Ei7YcNWo3dIpU96Y18g/e9IV0bKtZi3lCchT/2m4AAAAAqGjc+swRSXrttdfUo0cPpaSk6IorrtCECRMUExOjlJQUzZo1S++++64kKTo62vlKXgCedSY1Q5Pm/27UaoQGaMKgAp4BlJkmLX3OrNVpI7UZ6sYOAQAAAMB93B6OtG/fXrNnz9Ytt9yiM2fOaMKECfnGREdHa8GCBcbrfwF4zkvfb9fRM2lG7cnBrRURUsCVIL9+IJ3eb9b6TZLsbr0QDQAAAADcxiPfZgYPHqxNmzbp4YcfVnR0tEJCQhQREaFOnTrpxRdf1Pr169WsWQEPfATgduv2ndCnv+wzar2ja2lIu4vyD05LlH56yaw16iE1H+DGDgEAAADAvWxW3ieWoswOHDigBg0aSJLi4+MVGRlZzh0BxUvPzNbfX1+hHUfPOmtB/nb9+HBvNagekn/CshekZc+btTsWSQ15LTYAAAAAz3DH92+ugwd82Hsr9hjBiCSNGRBdcDCSlCCtft2stRhEMAIAAADA6xGOAD7qz4QkvRa706i1rheuO3o0LnjCimlSet4gxSb1nei+BgEAAADAQwhHAB9kWZYmzNms9MxsZ81uk14Y2lYOvwL+Wji1X1o73ay1u1Gq09rNnQIAAACA+xGOAD7oq3UH9POe40ZtZI/GuiQyouAJS5+XstJzt/0CpD6Pu69BAAAAAPAgwhHAx5xMStdzC7catfoRwRozILrgCUe3SBtnmrVOd0rVGrmpQwAAAADwLMIRwMe8+P02nUzOMGrPXNNGoYGOgicseUZSnpdaBYRJvca6r0EAAAAA8DDCEcCHrNt3QrPWxhu1K9vUVUzL2gVPiI+Tti8wa93vl8JqualDAAAAAPA8whHAR2RmZev/ff27UQsN8NOTgwt5qKplSYsnm7WQGlL30e5pEAAAAADKCeEI4CM+XL1X244kGrWHB0SrXtXggifsWiztW2XWeo2TgsLd1CEAAAAAlA/CEcAHHD6dold/3GHUWtatotsviyp4Qna2tPgps1a1gdTpDvc0CAAAAADliHAE8AHPfLtVSelZZu2aNnL4FfJXwB9zpKObzVrMBMk/yE0dAgAAAED5IRwBKrnlO45pwebDRm1YpwbqFFW94AmZ6dKSKWatVkvpkmFu6hAAAAAAyhfhCFCJpWZk6cl55kNYI0L89eiVLQuftP5j6eRes9bvScnu5/oGAQAAAKACIBwBKrG3lu3WvuPJRu3xK1uqemhAwRPSk6TlU81aZGepxSA3dQgAAAAA5Y9wBKik/kxI0lvLdhu1jo2q6fqODQqftOYt6exRs9Z/smSzub5BAAAAAKggCEeASsiyLD0573elZ2U7a352m565po3s9kKCjuQT0qrXzFqz/lJUTzd2CgAAAADlj3AEqIQWbD6sFTsTjNrIy6LUql544ZNWviqlnTFr/Sa5oTsAAAAAqFgIR4BKJjE1Q09/s8Wo1Q0P0kMDogufdPqgFPeuWWtznVTvEjd0CAAAAAAVC+EIUMm8+uNO/ZWYZtSeHNxaYYGOwictf1HKTM3dtjukmAlu6hAAAAAAKhbCEaAS2X4kUR/9vNeoXR5dS1e2qVv4pISd0vpPzVqHEVKNpq5vEAAAAAAqIMIRoJKwLEuT5v+urGzLWQtw2PX0kItlK+ptM0umSFZW7rZ/iNR7vBs7BQAAAICKhXAEqCQWbD6sNXtOGLV7L2+iqJqhhU86uE7aMs+sdfunVKWIK00AAAAAoJIhHAEqgeT0TD27YKtRqx8RrH/2aVb0xNinze2gCOmyB13bHAAAAABUcIQjQCXwxtJdOnw61ag9cVUrBQf4FT5p91JpzzKz1muMFBzh8v4AAAAAoCIjHAG83N6EJL33059GrWezmvpbUQ9htSwp9imzVqWe1GWUGzoEAAAAgIqNcATwck9/u0XpWdnObYfdpslDWhf9ENat86VD681an8ck/2A3dQkAAAAAFRfhCODFYrce1ZJtfxm1kT2i1Kx2lcInZWVKsVPMWo1m0qW3uKFDAAAAAKj4CEcAL5WakaWnv91i1GpVCdSD/ZoXPXHDZ9LxnWat70TJz+HiDgEAAADAOxCOAF7q/ZV/at/xZKP22N9aqkqQf+GTMlKkZS+YtXqXSq2vdn2DAAAAAOAlCEcAL3ToVIr+s2SXUevYqJqubV+/6Ilx70mJh8xa/8lSUc8nAQAAAIBKjnAE8ELPLtyqlIws57bNJj015GLZ7UWEHCmnpBXTzFrj3lLTGPc0CQAAAABegnAE8DKrdydowabDRu3mLg3Vpn7VYib+n5R6yqz1n+Ta5gAAAADACxGOAF4kIytbk+f/YdQiQvw17ooWRU9MPCKtecustRoi1e/o4g4BAAAAwPsQjgBe5JOf92nH0bNGbewVLVQtNKDoiT+9JGXkeXirzU/q96QbOgQAAAAA70M4AniJ42fT9OriHUatdb1w3dylYdETT+yR1n1o1toPl2oW88pfAAAAAPARhCOAl3jlxx1KTM00ak9ffbH8inoIqyQtfU7KzjPPL1Dq/ZgbOgQAAAAA70Q4AniBrYfPaGbcfqN2zaUXqVNU9aInHt4kbf7SrHUdJVUt5pW/AAAAAOBDCEeACs6yLD2zYIuyrdxakL9dj17ZsvjJsU+b24HhUs8xrm0QAAAAALwc4QhQwS3e+pdW7Tpu1O7t3VT1qgYXPXHvSmnXj2atx4NSSDFXmwAAAACAjyEcASqwtMwsPbtgi1GrVzVI91zetOiJliUtfsqshdaWut3n4g4BAAAAwPsRjgAV2Mer92nv8WSj9tiVLRUc4Ff0xO3fSQfizFrv8VJAqIs7BAAAAADvRzgCVFDHz6bp/2J3GrX2DSM0pN1FRU/Mzsr/rJFqUVKHEa5tEAAAAAAqCcIRoIKa9uMOJaaZr+598u+tZbMV8+reTV9Ix7aatZgnJEeAizsEAAAAgMqBcASogLYePqNZ572699r29dW+YbWiJ2amSUufM2t12khthrq4QwAAAACoPAhHgArGsixN+dZ8dW+wv5/G/61F8ZN//UA6bYYq6jdJsvNHHQAAAAAKwzcmoIL5cctRrd5dhlf3piVKP71k1hr1kJoPcHGHAAAAAFC5EI4AFUhaZpaeXWg+L+SiqkEadXmT4if//IaUbIYq6jdJKu4ZJQAAAADg4whHgArko9V7te+8V/c+WpJX9yYlSKtfN2stBkkNu7q4QwAAAACofAhHgAoi4WyaXo/dZdRK9OpeSVoxTUo/m6dgk/pOdG2DAAAAAFBJEY4AFcS0Rflf3Ttp8MXFv7r31H5p7XSz1u5GqU5rF3cIAAAAAJUT4QhQAWw7ckaz15pvmflH+/q6tEFE8ZOXPi9lpedu+wVIfR53bYMAAAAAUIkRjgAVwPMLt+V7de8jJXl179Et0saZZq3TnVK1Rq5tEAAAAAAqMcIRoJyt2HlMy3ccM2qjLm9S/Kt7JWnJM5LypCoBYVKvsa5tEAAAAAAqOcIRoBxlZVt6buE2o1arSmDJXt0bHydtX2DWut8vhdVyYYcAAAAAUPkRjgDl6Ov1B7X18BmjNnZAtEIDHUVPtCxp8WSzFlJD6j7atQ0CAAAAgA8gHAHKSUp6ll7+YbtRi64Tpus7NSh+8q7F0r5VZq3XOCko3IUdAgAAAIBvIBwBysn7K/foyJlUo/b4oFbysxfz6t7sbGnxU2atagOp850u7hAAAAAAfAPhCFAOjiWm6a1lu41aj2Y11Ce6BM8L+WOOdHSzWYuZIDkCXdghAAAAAPgOwhGgHLwWu0NJ6VnObZtNmjColWy2Yq4ayUyXlkwxa7VaSpcMc0OXAAAAAOAbCEcAD9v111nNjIs3av9oH6mLL6pa/OT1H0sn95q1fk9Kdj/XNQgAAAAAPoZwBPCwF77bpqxsy7kd6LBr3MDo4iemJ0nLp5q1yM5Si0Eu7hAAAAAAfAvhCOBBa/Yc1+KtR43aXb0aq17V4BJMfks6a85V/8k59+QAAAAAAMqMcATwkOxsS88t3GrUaoQG6N7eTYufnHxCWvWaWWs2QIrq6cIOAQAAAMA3EY4AHvLNpkPadOC0UXuof3NVCfIvfvLKV6W0M2at35Mu7A4AAAAAfBfhCOABqRlZmvr9dqPWpGaobuzSsPjJpw9Kce+atTbXSfUucWGHAAAAAOC7CEcAD/j45706eCrFqD12ZUv5+5Xgj+DyF6XM1Nxtu0OKmeDiDgEAAADAdxGOAG52Mildry/ZZdS6RFXXgNZ1ip+csFNa/6lZ6zBCqlGC55QAAAAAAEqEcARwszeX7VJiaqZRm3BVK9lK8paZJVMkKyt32z9E6j3exR0CAAAAgG8jHAHc6NCpFH308z6jNrjdRbq0QUTxkw+uk7bMM2vd/ilVqeu6BgEAAAAAhCOAO/178Q6lZ2Y7tx12m8ZdEV2yybFPm9tBEdJlD7quOQAAAACAJMIRwG12Hk3UV+sOGLWbuzZUoxqhxU/evVTas8ys9RojBUe4rD8AAAAAQA7CEcBNXvphu7Kt3O2QAD890Ld58RMtS4p9yqxVqSd1GeXaBgEAAAAAkghHALdYt++kFm05atTu7NlYtaoEFj9563zp0Hqz1ucxyT/YhR0CAAAAAM4hHAFczLIsvfj9NqNWLcRfoy5vUvzkrEwpdopZq9FMuvQWF3YIAAAAAMiLcARwsWU7jinuzxNGbXRMM1UJ8i9+8obPpOM7zVrfiZKfw4UdAgAAAADyIhwBXCg729LU77cbtfoRwbqlW6PiJ2ekSMteMGv1LpVaX+26BgEAAAAA+RCOAC40f+MhbT18xqg9PCBaQf5+xU+Oe09KPGTW+k+WbDbXNQgAAAAAyIdwBHCR9MxsTfvRvGokuk6Yrm1fv/jJKaekFdPMWuPeUtMY1zUIAAAAACgQ4QjgIp//sk/xJ1KM2iMDW8rPXoIrP1a/LqWeMmv9J7muOQAAAABAoQhHABc4m5ap15fsMmqdGlVT/1a1i5+ceERa86ZZazVEqt/RhR0CAAAAAApDOAK4wPsr/tTxpHSj9uiVLWUryfNCfnpJykjO3bb5Sf2edHGHAAAAAIDCEI4AF+j42TS9+9Nuo9avZW11jqpe/OQTe6R1H5q19sOlms1d1yAAAAAAoEiEI8AF+s/SXUpKz3Ju22zSI39rUbLJS5+TsjNzt/0Cpd6PubhDAAAAAEBRCEeACxB/Ilmfrdlv1K5tX18t64YXP/nwJmnzl2at6yipagnebgMAAAAAcBnCEeAC/F/sTqVnZTu3A/zserh/dMkmL5libgeGSz3HuLA7AAAAAEBJEI4AZbTn2Fn997cDRm14t4ZqUD2k+Ml7V0k7F5m1Hg9KISV4TgkAAAAAwKUIR4Ay+vfincq2creD/f00OqZZ8RMtS1o82ayF1pa63efS/gAAAAAAJUM4ApTBtiNn9M2mQ0ZtZI8o1QwLLH7y9u+kA3Fmrfd4KSDUhR0CAAAAAEqKcAQog1cW7ZCV56qRKoEOjbq8SfETs7Ok2KfNWrUoqcMIl/YHAAAAACg5whGglDYdOKVFW44atbsvb6KIkIASTP5COrbVrMU8ITlKMBcAAAAA4BaEI0Apvbxoh7FdLcRfI3tEFT8xM01a+pxZq9NWajPUdc0BAAAAAEqNcAQohbg/T+inHceM2r29m6pKkH/xk3/9QDq936z1nyTZ+WMIAAAAAOWJb2VACVmWpZcXbTdqtaoE6rbuUcVPTkuUfnrJrDXqITXr77oGAQAAAABlQjgClNDKXQmK+/OEUbs/ppmCA/yKn/zzG1LycbPWb5Jks7mwQwAAAABAWRCOACWQc9WI+ayRi6oG6cYuDYqfnJQgrX7drLUYJDXs6sIOAQAAAABlRTgClMDirX9pY/wpo/Zgv+YKdJTgqpEV06T0s3kKNqnvRJf2BwAAAAAoO8IRoBjZ2ZamnfeskagaIRraMbL4yaf2S2unm7V2N0p1WruwQwAAAADAhSAcAYqx8PfD2nYk0ag91D9a/n4l+OOz9HkpKz132y9A6vO4izsEAAAAAFwIwhGgCJlZ2XrlR/NZI81rh2lwu4uKn3x0i7RxplnrdKdUrZELOwQAAAAAXCjCEaAIczcc0p5jSUZt7BXR8rOX4C0zS56RZOVuB4RJvca6tkEAAAAAwAUjHAEKkZ6ZrddizatGLr4oXAMvrlv85Pg4afsCs9b9fimslgs7BAAAAAC4AuEIUIgv18Ur/kSKURt3RQvZbMVcNWJZ0uLJZi2khtR9tGsbBAAAAAC4BOEIUID0zGy9sWSXUevYqJr6tCjBlR+7Fkv7Vpm1XuOkoHAXdggAAAAAcBXCEaAAX66L16HTqUZtzIDo4q8ayc6WFj9l1qo2kDrf6eIOAQAAAACuQjgCnKegq0a6RFXXZU1rFD/5jznS0c1mLWaC5Ah0YYcAAAAAAFciHAHOU9BVIw/1b178VSOZ6dKSKWatVkvpkmEu7hAAAAAA4EqEI0AehV010r0kV42s/1g6udes9XtSsvu5rkEAAAAAgMsRjgB5FHTVyL9KctVIepK0fKpZi+wstRjk4g4BAAAAAK5GOAL8T3pmtt5cutuodY6qVrJnjax5Szp71Kz1nywVF6oAAAAAAMod4QjwP1+tO6CDp1KM2kP9S/CGmuQT0qrXzFqzAVJUTxd3CAAAAABwB8IRQP971shS81kjJb5qZOWrUtoZs9bvSRd2BwAAAABwJ8IRQBdw1cjpg1Lcu2atzXVSvUtc3CEAAAAAwF0IR+DzLuiqkeUvSpl5HuBqd0gxE1zcIQAAAADAnQhH4PPKfNVIwk5p/admrcMIqUZTF3cIAAAAAHAnwhH4tAu6amTJFMnKyt32D5F6j3dxhwAAAAAAdyMcgU8r81UjB9dJW+aZtW7/lKrUdXGHAAAAAAB3IxyBzyroqpFOjUp41Ujs0+Z2UIR02YOuaw4AAAAA4DEeC0f279+vcePGqVWrVgoNDVX16tXVpUsXvfzyy0pOTr6gY585c0azZs3S3XffrQ4dOigiIkIBAQGqVauW+vTpo5dfflmnTp1yzQ+CSqPMV43sXirtWWbWeo2RgiNc2h8AAAAAwDNslmVZ7j7JggULNHz4cJ0+fbrA/S1atNDChQvVpEmTUh/7u+++07XXXqu0tLQix9WpU0czZ85UTExMqc9REgcOHFCDBg0kSfHx8YqMjHTLeeAa6ZnZinl5mRGOdGpUTV/e273ocMSypPdipEPrc2tV6kkPrpf8g93YMQAAAABAcs/3b7dfObJx40bdcMMNOn36tMLCwvTss89q9erVio2N1d133y1J2r59u6666iqdPXu21Mc/fvy40tLSZLfbNXDgQL366qtasmSJfvvtN82fP1/Dhg2TJB09elR///vftWHDBlf+ePBSZb5qZOt8MxiRpD6PEYwAAAAAgBdzuPsEDz30kJKTk+VwOLRo0SJ1797dua9v375q3ry5xo8fr23btumVV17Rk08+Warj+/v765577tGECRPUsGFDY1/79u01ePBg9ejRQw8++KCSk5M1duxYxcbGuuRng3fKzMrWW8vzP2ukR7NinjWSlSnFTjFrNZpJl97i4g4BAAAAAJ7k1itH1q5dq2XLlkmS7rzzTiMYOWfs2LFq1aqVJOnf//63MjIySnWOYcOG6e23384XjOT1wAMPqFOnTpKkZcuW6fjx46U6ByqX+RsPKf6EedXIv/o3L/6qkQ2fScd3mrW+EyU/t2eMAAAAAAA3cms4MnfuXOfnkSNHFtyA3a7bbrtNknTy5ElnmOJqffr0kSRlZ2frzz//dMs5UPFlZVv53lDTrkGEejarWfTEjBRp2Qtmrd6lUuurXdsgAAAAAMDj3BqOrFixQpIUGhqqjh07Fjqud+/ezs8rV650Sy95H9hqt/MGY1/1/e9HtPtYklF7IKZZ8VeNxL0nJR4ya/0nS8XNAwAAAABUeG5NCbZu3SpJatasmRyOwm89aNmyZb45rrZ8+XJJksPhULNmzdxyDlRslmXpP+ddNdKqXrj6tapd9MSUU9KKaWatcW+pqXvefAQAAAAA8Cy3PSwhNTVVCQkJklTsa3WqVaum0NBQJSUlKT4+3uW9LFiwQJs2bZIkDRw4UOHh4aU+xoEDB4rcf/jw4TL1Bs9Zsu0vbT18xqiNjmla/FUjq1+XUk+Ztf6TXNscAAAAAKDcuC0cSUxMdH4OCwsrdvy5cKQsr/MtyokTJzR69GhJkp+fn6ZMmVLMjIKde4cyvJNlWXp9iXnVSJNaobqyTb2iJyYekda8adZaXy3VL/w2MQAAAACAd3HbbTWpqanOzwEBAcWODwwMlCSlpKQUM7LksrKyNHz4cO3bt0+S9MQTT6h9+/YuOz68x6pdx7Uh/pRRG92nmfzsxVw18tNLUkZy7rbNL+cNNQAAAACASsNtV44EBQU5P6enpxc7/twDU4ODg13Ww3333afvv/9eknTVVVdp4sSyf6kt7nafw4cPq0uXLmU+PtzrP0vNV/BGVgvWkEsvKnrSiT3Sug/NWvvhUs3mrm0OAAAAAFCu3BaOVKlSxfm5JLfKJCXlvEGkJLfglMTjjz+ud999V5LUs2dPffnll/Lz8yvz8Yp7bgoqrrV7T2jNnhNG7Z99msrfr5gLp5Y+J2Vn5m77BUq9H3NDhwAAAACA8uS222qCgoJUs2ZNScU/zPTkyZPOcMQVz/Z48cUX9cILL0iSOnTooG+//dalV6TAu/znvGeN1AkP1HUdiwm7Dm+SNn9p1rqOkqrWd3F3AAAAAIDy5tZX+bZq1UqStGvXLmVmZhY6btu2bfnmlNWbb76pxx57zHmsH374QVWrVr2gY8J7bT5wWst3HDNq91zeVIGOYq4iWnLeg3sDw6WeY1zcHQAAAACgInBrONKzZ09JObfMrFu3rtBxy5cvd37u0aNHmc/3ySef6P7775ckNWnSRIsXL3ZevQLfdP6zRmqEBuimLg2LnrR3lbRzkVnr8S8ppLqLuwMAAAAAVARuDUeuueYa5+cZM2YUOCY7O1sff/yxJCkiIkIxMTFlOtecOXM0cuRIWZalyMhIxcbG6qKLinngJiq17UcS9cMfR43anb0aKzigiKtGLEtaPNmshdaWuv3T9Q0CAAAAACoEt4YjXbp0Ua9evSRJ77//vn7++ed8Y6ZNm6atW7dKkv71r3/J39/f2P/hhx/KZrPJZrNp8uTJBZ5n0aJFuummm5SVlaXatWtr8eLFioqKcunPAu/z5jLzWSPhQQ7d2q1R0ZO2fycdiDNrvcdLAaEu7g4AAAAAUFG47W0157z22mvq0aOHUlJSdMUVV2jChAmKiYlRSkqKZs2a5XyjTHR0tMaOHVvq469Zs0bXXnut0tPT5e/vr1dffVUZGRn6/fffC50TGRmpiIiIsv5I8AJ/JiTpm42HjNrtPRqrSpB/ITMkZWdJsU+btWpRUocRrm8QAAAAAFBhuD0cad++vWbPnq1bbrlFZ86c0YQJE/KNiY6O1oIFC4zX/5bU999/r+TkZElSRkaGhg8fXuycGTNm6Pbbby/1ueA93lq2S9lW7nZogJ9GXhZV9KRNX0jHtpq1mCckR4DL+wMAAAAAVBxuva3mnMGDB2vTpk16+OGHFR0drZCQEEVERKhTp0568cUXtX79ejVr1swTrcAHHDyVojm/HTRqt3RvpGqhRYQcmWnS0ufMWp22UpuhbugQAAAAAFCR2CzLsoofhuIcOHBADRo0kCTFx8crMjKynDvyXU/O+10f/7zPuR3osGvlo31Vq0pg4ZPWvCV9/5hZG/6V1HyAm7oEAAAAAJSFO75/e+TKEcBTEs6mafbaeKN2U5eGRQcjaYnSTy+ZtUY9pGb93dAhAAAAAKCiIRxBpfLR6r1Ky8x2bjvsNo26vEnRk35+Q0o+btb6TZJsNjd0CAAAAACoaAhHUGmcTcvUR6v3GrWrL62viyKCC5+UlCCtft2stRgkNezq+gYBAAAAABUS4QgqjZm/7NeZ1Eyjdm/vYq4aWTFNSj+bp2CT+k50fXMAAAAAgAqLcASVQlpmlqav3GPUBrSuo+Z1ing99Kn90trpZq3djVKd1m7oEAAAAABQURGOoFKYt/6Qjp5JM2r39m5a9KSlz0tZ6bnbfgFSn8fd0B0AAAAAoCIjHIHXy8629PZPu41al8bV1bFRtcInHd0ibZxp1jrdKVVr5IYOAQAAAAAVGeEIvN6iLUe151iSUftncVeNLHlGkpW7HRAm9Rrr+uYAAAAAABUe4Qi8mmVZemu5edVIy7pV1KdFrcInxcdJ2xeYte73S2FFzAEAAAAAVFqEI/Bqa/ac0Mb4U0btn32aymazFTzBsqTFk81aSA2p+2i39AcAAAAAqPgIR+DVzr9qJLJasK5qW6/wCbtipX2rzFqvcVJQuBu6AwAAAAB4A8IReK3fD57WTzuOGbVRlzeRw6+QZZ2dnf+qkaoNpM53uqdBAAAAAIBXIByB13rnpz3Gdo3QAF3fsUHhE/6YIx3dbNZiJkiOQDd0BwAAAADwFoQj8Er7jidpwaZDRu32y6IUHOBX8ITMdGnJFLNWq6V0yTA3dQgAAAAA8BaEI/BK763Yo+w8b+INDfDTbd2jCp+w/mPp5F6z1u9JyV5ImAIAAAAA8BmEI/A6xxLT9MWvB4zaTV0aqmqIf8ET0pOk5VPNWmQXqcUgN3UIAAAAAPAmhCPwOjNW/an0zGzntr+fTXf2alz4hF/els4eNWv9J0uFve4XAAAAAOBTCEfgVRJTM/TJmn1G7dr29VWvanDBE5JPSCtfM2vNBkhRPdzUIQAAAADA2xCOwKt8/st+JaZmOrdtNmnU5U0Ln7DyVSnttFnr96SbugMAAAAAeCPCEXiN9MxsfbDqT6N2Res6alY7rOAJpw9Kce+atTbXSfUucVOHAAAAAABvRDgCr/HNxkM6eibNqN3bu4irRpa/KGWm5m7bHVLMBDd1BwAAAADwVoQj8AqWZem9FXuMWpeo6mrfsFrBExJ2Sus/NWsdRkg1ighTAAAAAAA+iXAEXmHlrgRtO5Jo1O6+vEnhE5Y8I1lZudv+IVLv8W7qDgAAAADgzQhH4BXe/cm8aqRJzVD1a1m74MEHf5O2zDVr3f4pVanrnuYAAAAAAF6NcAQV3tbDZ7RiZ4JRu7NXY9nttoInxD5lbgdFSJc96J7mAAAAAABej3AEFd70FeYbaqqHBmhoh8iCB+9eKu1ZZtZ6jZGCI9zSGwAAAADA+xGOoEI7eiZV8zceNGq3dmukIH+//IMtK/9VI1XqSV1GubFDAAAAAIC3IxxBhfbh6r3KyLKc24EOu27t3qjgwVvnS4fWm7U+j0n+wW7sEAAAAADg7QhHUGElpWXqszX7jNrQjpGqGRaYf3BWphQ7xazVaCZdeosbOwQAAAAAVAaEI6iwvvg1XmdSM53bNpt0Z8/GBQ/e8Jl0fKdZ6ztR8nO4sUMAAAAAQGVAOIIKKTMrW++vNB/E2q9lHTWtFZZ/cEaKtOwFs1bvUqn11e5rEAAAAABQaRCOoEL6/o8jOnAyxaiNurxJwYPj3pMSD5m1/pNzLjUBAAAAAKAYhCOocCzL0ns/7TFq7RpEqHNUtfyDU05JK6aZtca9paYx7msQAAAAAFCpEI6gwlm796Q2Hjht1O7u1Vi2gq4EWf26lHrKrPWf5L7mAAAAAACVDuEIKpz3VphXjURWC9bfLq6bf2DiEWnNm2at9dVS/Y5u7A4AAAAAUNkQjqBC2X3srBZvPWrU7uzZWA6/ApbqTy9JGcm52za/nDfUAAAAAABQCoQjqFDeX/mnLCt3OzzIoRs6Ncg/8MQead2HZq39cKlmc7f2BwAAAACofAhHUGEcP5um/647YNSGd2uk0EBH/sFLn5OyM3O3/QKl3o+5uUMAAAAAQGVEOIIK45M1+5SWme3c9vez6fbLovIPPLxJ2vylWes6Sqpa370NAgAAAAAqJcIRVAipGVn65Od9Rm1Iu/qqEx6Uf/CSKeZ2YLjUc4wbuwMAAAAAVGaEI6gQ5m88pONJ6Ubtrl6N8w/cu0raucis9fiXFFLdjd0BAAAAACozwhGUO8uy9MHKP41az2Y11ape+PkDpcWTzVpobanbP93bIAAAAACgUiMcQbn7ec9xbTuSaNTu6BmVf+D276QDcWat93gpINR9zQEAAAAAKj3CEZS7Gav2GtuNa4aqT3Rtc1B2lhT7tFmrFiV1GOHW3gAAAAAAlR/hCMrVvuNJWrz1qFEb2SNKdrvNHLjpC+nYVrMW84TkCHBzhwAAAACAyo5wBOXqw9V7ZVm521WCHBraIdIclJkmLX3OrNVpK7UZ6v4GAQAAAACVHuEIyk1iaoa+/PWAUbuxcwOFBjrMgb9+IJ3eb9b6T5LsLF8AAAAAwIXj2yXKzRe/HtDZtEzntt0m3dY9yhyUlij99JJZa9RDatbf/Q0CAAAAAHwC4QjKRVa2pQ9Xm6/vHXhxXTWoHmIO/PkNKfm4Wes3SbKd90wSAAAAAADKiHAE5SJ261HFn0gxanf0bGwOSkqQVr9u1loMkhp2dXN3AAAAAABfQjiCcvHBKvOqkbb1q6pTo2rmoBXTpPSzeQo2qe9E9zcHAAAAAPAphCPwuD8OndaaPSeM2sgeUbLlvVXm1H5p7XRzYrubpDqtPdAhAAAAAMCXEI7A42as2mts16oSqKsuqWcOWvq8lJWeu+0XIPV5zP3NAQAAAAB8DuEIPOpYYprmbzhk1G7t1kiBDr/cwtEt0saZ5sROd0rVGnmgQwAAAACAryEcgUd99ss+pWdlO7cDHHbd3LWhOWjJM5Ks3O2AMKnXWM80CAAAAADwOYQj8Ji0zCx9uma/Ubvm0otUMywwtxAfJ21fYE7sfr8UVssDHQIAAAAAfBHhCDzm242HlXA2zaiN7JHn9b2WJS2ebE4KqSF1H+3+5gAAAAAAPotwBB5hWVa+1/d2b1JDreqF5xZ2xUr7VpkTL39ECgoXAAAAAADuQjgCj4j784T+OHTGqN3RM89VI9nZ+a8aqdpA6nSH+5sDAAAAAPg0whF4xPlXjTSqEaK+LWvnFv6YIx3dbE6KmSA5AgUAAAAAgDsRjsDt4k8k68ctR43a7ZdFyc9uy9nITJeWTDEn1WopXTLMQx0CAAAAAHwZ4Qjc7rNf9is7z5t5wwIduq5jZG5h/cfSyb3mpH5PSnY/j/QHAAAAAPBthCNwq9SMLM1ea76+97qOkaoS5J+zkZ4kLZ9qTorsIrUY5KEOAQAAAAC+jnAEbvXNxkM6mZxh1G7t3ih345e3pbPmLTfqP1my2dzfHAAAAAAAIhyBG1mWpY9+3mvUejWvqaa1wnI2kk9IK18zJzUbIEX18EyDAAAAAACIcARu9Nv+U/r9oPn63hHdo3I3Vr4qpZ02J/V70v2NAQAAAACQB+EI3Obj864aiawWrJhzr+89fVCKe9ec0OY6qd4lnmkOAAAAAID/IRyBW/yVmKqFmw8btVu7Ncp9fe/yF6XM1NyddocUM8GDHQIAAAAAkINwBG4xKy5eGVm57+8NdNh1Q6cGORsJO6X1n5oTOoyQajT1YIcAAAAAAOQgHIHLZWRl67Nf9hm1qy+9SNVCA3I2ljwjWVm5O/1DpN7jPdghAAAAAAC5CEfgcov+OKqjZ9KM2m3nHsR68Ddpy1xzQrd/SlXqeqQ3AAAAAADORzgClzv/9b0dG1VTm/pVczZinzIHB0VIlz3okb4AAAAAACgI4QhcauvhM4r784RRu617o5wPu5dKe5aZE3qNkYIjPNIbAAAAAAAFIRyBS53/+t6aYYG6sk09ybLyXzVSpZ7UZZTnmgMAAAAAoACEI3CZ08kZ+nr9QaN2c9eGCnDYpa3zpUPrzQl9HpP8gz3YIQAAAAAA+RGOwGW+XBev1Ixs57bDbtPwrg2lrEwpdoo5uEYz6dJbPNwhAAAAAAD5EY7AJbKzLX38s/n63r+1qas64UHShs+k4zvNCX0nSn4OD3YIAAAAAEDBCEfgEst3HNP+E8lGbcRlUVJGirTsBXNwvUul1ld7rDcAAAAAAIpCOAKXOP/1va3qhatTo2pS3HtS4iFzcP/Jks3msd4AAAAAACgK4Qgu2J8JSVq2/ZhRG9G9kWypp6UV08zBjXtLTWM82B0AAAAAAEUjHMEF++S8Z42EBzl09aX1pdWvS6mnzMH9J3muMQAAAAAASoBwBBckOT1TX66LN2rDOjdQcFqCtOZNc3Drq6X6HT3YHQAAAAAAxSMcwQWZv+GQElMznds2m3RLt0bST1OljDwPaLX55byhBgAAAACACoZwBGVmWZY+/cW8paZPdC01sh2V1n1oDm4/XKrZ3HPNAQAAAABQQoQjKLNNB07r94NnjNot3RpJS5+TsnOvJpFfoNT7MQ93BwAAAABAyRCOoMw+XWNeNVI/Ilh9qh6RNn9pDuw6Sqpa34OdAQAAAABQco7ybgDe6XRyhr7ZdMio3dSlgfyWTjAHBlaVeo7xYGcAAAAAAJQOV46gTP772wGlZmQ7tx12m4bXOyDtXGQO7PGgFFLdw90BAAAAAFByXDmCUrMsS5+d9yDWga3rqNqq854rElpb6vZPD3YGAAAAAEDpceUISm3NnhPafSzJqN1ff6d0IM4c2Hu8FBDqwc4AAAAAACg9whGU2vlXjTSrGaSWW/5tDqoWJXUY4bGeAAAAAAAoK8IRlMqxxDT98McRozax4R+yHdtqDox5QnIEeLAzAAAAAADKhnAEpfLFr/HKyLKc22GOLPU68K45qE5bqc1QD3cGAAAAAEDZEI6gxLKyLX3+y36j9kzkWtnPxJsD+0+S7CwtAAAAAIB34BssSuynHcd08FSKcztUKbrq1GfmoEY9pGb9PdwZAAAAAABlRziCEvt0jfkg1serxco/9bg5qN8kyWbzYFcAAAAAAFwYwhGUyIGTyVqy/S/ndnWd0bD0ueagFoOkhl092xgAAAAAABeIcAQlMisuXlbuc1j1UOB8+Wcl5xlhk/pO9HhfAAAAAABcKMIRFCsjK1uz1uY+dLW+julm+4/moHY3SXVae7gzAAAAAAAuHOEIirXoj6NKOJvm3H7I8V85rIzcAX4BUp/HyqEzAAAAAAAuHOEIivXZL7kPYm1uO6ChjpXmgE53StUaebgrAAAAAABcg3AERdp97KxW7859I80jjtmyKzt3QECY1GtsOXQGAAAAAIBrEI6gSJ//st/5uYNth67wW2cO6H6/FFbLw10BAAAAAOA6hCMoVGpGlr5ad+B/W5Ye9Z9lDgipIXUf7fG+AAAAAABwJcIRFGrBpsM6nZLz4NXe9k3qat9mDrj8ESkovBw6AwAAAADAdQhHUKhZa3NuqbEpW486zrtqpGoDqdMd5dAVAAAAAACuRTiCAu36K1Fr956UJA22r1Fr+z5zQMwEyRFYDp0BAAAAAOBahCMo0Ky4eEmSvzI11vGFubNWS+mSYeXQFQAAAAAArkc4gnzSMrP0399yHsQ6zG+pGtn/Mgf0e1Ky+5VDZwAAAAAAuB7hCPJZ9MdRnUzOULBS9aDja3NnZBepxaDyaQwAAAAAADcgHEE+5x7EOtLvB9W2nTJ39p8s2Wwe7wkAAAAAAHchHIFh3/Ekrdp1XFV1Vvc6vjF3NhsgRfUon8YAAAAAAHATwhEYZq3NeRDrPx3zFW5LNnf2e7IcOgIAAAAAwL0IR+CUkZWtL389oLo6rtv9fjB3trlOqndJ+TQGAAAAAIAbEY7AKXbrX0o4m6YHHXMUZMvI3WF3SDETyq8xAAAAAADciHAETrPW7lcT2yHd4Lfc3NFhhFSjafk0BQAAAACAmznKuwFUDAdPpWj5jmN63fGlHLbs3B3+IVLv8eXXGAAAAAAAbsaVI5AkfbE2Xm20R3/3+8Xc0e2fUpW65dMUAAAAAAAe4LFwZP/+/Ro3bpxatWql0NBQVa9eXV26dNHLL7+s5OTk4g9QQrNmzdLAgQNVr149BQUFKSoqSrfeeqvWrFnjsnNUNlnZlr78NV7jHbPMHUER0mUPlktPAAAAAAB4ikduq1mwYIGGDx+u06dPO2vJyclau3at1q5dq+nTp2vhwoVq0qRJmc+Rmpqq66+/Xt9++61R37dvn/bt26fPP/9ckydP1sSJE8t8jsrqpx3H1DhxrXoF/G7u6DVGCo4ol54AAAAAAPAUt185snHjRt1www06ffq0wsLC9Oyzz2r16tWKjY3V3XffLUnavn27rrrqKp09e7bM57nzzjudwUhMTIzmzp2ruLg4vf/++2ratKmys7P15JNPavr06S75uSqTmb/s03jHbLNY5SKpy6jyaQgAAAAAAA9y+5UjDz30kJKTk+VwOLRo0SJ1797dua9v375q3ry5xo8fr23btumVV17Rk08+WepzLF++XJ9//rkkafDgwfr666/l5+cnSercubOGDBmijh07av/+/Ro/fryuu+46RUREuOTn83Z/nUmVY8e3aue/x9zR5zHJP7h8mgIAAAAAwIPceuXI2rVrtWzZMkk5V3bkDUbOGTt2rFq1aiVJ+ve//62MjIxSn2fq1KmSJD8/P7355pvOYOScmjVr6sUXX5QknTx5Uu+//36pz1FZfbV2j8b5zTRq2dWbSpcOL6eOAAAAAADwLLeGI3PnznV+HjlyZMEN2O267bbbJOUEF+fClJI6e/asYmNjJUkDBgxQZGRkgeP+8Y9/KDw8XJI0Z86cUp2jUjqyWdace3TXil5qYj9q7LL3e1Ly4y3PAAAAAADf4NZwZMWKFZKk0NBQdezYsdBxvXv3dn5euXJlqc4RFxentLS0fMc5X0BAgLp16+acU5YrVCqNzV9J7/aRbdMsBSjT2GVJUpYP/94AAAAAAHyOW8ORrVu3SpKaNWsmh6PwKxFatmyZb05pz3H+cYo6T2Zmpnbu3Fmq81QaRzZLX98jZWcWuNsmSXPvzRkHAAAAAIAPcNu9E6mpqUpISJCkQm91OadatWoKDQ1VUlKS4uPjS3WevOOLO0+DBg2Mea1bty7xeQ4cOFDk/sOHD5f4WOXq5zcKDUacsjOln9+Urn3LMz0BAAAAAFCO3BaOJCYmOj+HhYUVO/5cOFLa1/mW5jyhoaHOz6U9T95gxWtlZ0tb5pVs7Ja50tVvSHa3v+0ZAAAAAIBy5bZvvqmpqc7PAQEBxY4PDAyUJKWkpLjtPOfOUZbzVAqZKVJGcsnGZiTnjAcAAAAAoJJz25UjQUFBzs/p6enFjj/3UNXg4GC3nefcOcpynuJu9zl8+LC6dOlSqmN6nCNY8g8pWUDiH5IzHgAAAACASs5t4UiVKlWcn0tyC0tSUpKkkt2CU9bznDtHWc5T3PNMvILdLrW+Wto4s/ixra/hlhoAAAAAgE9w27ffoKAg1axZU1LxDzM9efKkM7go7bM98oYWxZ0n79UfleIZImXRfbRkLyYTszuk7vd5ph8AAAAAAMqZWy8NaNWqlSRp165dysws/A0p27ZtyzenpPK+cSbvcYo6j8PhULNmzUp1nkqjblvp2ncKD0jsjpz9ddt6ti8AAAAAAMqJW8ORnj17Ssq5nWXdunWFjlu+fLnzc48ePUp1js6dOzsfxJr3OOdLT0/XmjVr8s3xSW2vk0Ytk9rdnPNsESnnf9vdnFNve115dgcAAAAAgEe5NRy55pprnJ9nzJhR4Jjs7Gx9/PHHkqSIiAjFxMSU6hxVqlRRv379JEmLFy8u9NaaOXPm6MyZM5Kka6+9tlTnqJTqtpWufUt6/KA04VDO/177FleMAAAAAAB8jlvDkS5duqhXr16SpPfff18///xzvjHTpk3T1q1bJUn/+te/5O/vb+z/8MMPZbPZZLPZNHny5ALPM27cOElSZmamRo8eraysLGN/QkKCHn30UUk5Acxdd911QT9XpWK3SwGhPHwVAAAAAOCz3P6N+LXXXlNwcLAyMzN1xRVX6Pnnn9eaNWu0dOlS3XPPPRo/frwkKTo6WmPHji3TOfr27asbb7xRkjR//nwNGDBA8+fP16+//qoZM2aoW7du2r9/vyTphRdeULVq1VzzwwEAAAAAAK/ntlf5ntO+fXvNnj1bt9xyi86cOaMJEybkGxMdHa0FCxYYr+UtrQ8++EBnzpzRwoULtXTpUi1dutTYb7fbNXHiRN1zzz1lPgcAAAAAAKh8PHIvxeDBg7Vp0yY9/PDDio6OVkhIiCIiItSpUye9+OKLWr9+/QW/PSY4OFgLFizQZ599pgEDBqh27doKCAhQgwYNdPPNN2vlypWF3pYDAAAAAAB8l82yLKu8m6gMDhw4oAYNGkiS4uPjFRkZWc4dAQAAAABQ+bjj+zdP4QQAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0xzl3UBlkZmZ6fx8+PDhcuwEAAAAAIDKK+937rzfxS8E4YiLHDt2zPm5S5cu5dgJAAAAAAC+4dixY4qKirrg43BbDQAAAAAA8Gk2y7Ks8m6iMkhNTdXmzZslSbVq1ZLDUfEvyjl8+LDzKpe4uDjVq1evnDsCyo71jMqE9YzKhjWNyoT1jMrEW9dzZmam8+6Ntm3bKigo6IKPWfG/wXuJoKAgde7cubzbKLN69eopMjKyvNsAXIL1jMqE9YzKhjWNyoT1jMrE29azK26lyYvbagAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NJtlWVZ5NwEAAAAAAFBeuHIEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcquP3792vcuHFq1aqVQkNDVb16dXXp0kUvv/yykpOTXXaeWbNmaeDAgapXr56CgoIUFRWlW2+9VWvWrCnxMY4fP65JkyapXbt2qlq1qsLDw9WuXTtNmjRJx48fd1mv8F7esJ63b9+uV199Vddcc40aN26s4OBghYSEqHHjxho2bJgWLFggy7Jc1iu8lzes58K8+eabstlszl8ffvihy/qF9/K2NZ2UlKQ33nhD/fr1U/369RUYGKg6deqoQ4cOeuCBB7Ro0SKX9Qzv4y3r2bIsffnll7rmmmvUoEEDBQUFKSQkRE2aNNGNN96oH374wWW9wnu5cz1nZmZq/fr1euedd3TXXXfpkksukcPhcP4bYe/evaU6nld/J7RQYX377bdW1apVLUkF/mrRooW1e/fuCzpHSkqK9fe//73Qc9jtduvpp58u9jhxcXFWvXr1Cj3ORRddZK1du/aCeoV384b1fNtttxU6N++vgQMHWidPnrygXuHdvGE9F+bgwYNWeHi4cawZM2ZcUK/wft62ppcsWWI1atSoyL+r27Vrd0H9wnt5y3o+deqU1adPn2L/3TFs2DArLS3tgvqF93L3ep48eXKR6+/PP/8s8bG8/Tsh4UgFtWHDBiskJMSSZIWFhVnPPvustXr1ais2Nta6++67nQusZcuWVmJiYpnPc/PNNzuPFRMTY82dO9eKi4uz3n//fatp06bOfe+9916hxzhw4IBVp04dS5LlcDis8ePHWz/99JP1008/WePHj7ccDoclyapTp4514MCBMvcK7+Ut67lfv36WJKt69erWqFGjrM8//9xavXq1FRcXZ73zzjtWixYtnMfo2bOnlZWVVeZe4b28ZT0X5tprr7UkWbVr1yYcgWVZ3remf/zxRysoKMiSZFWpUsUaO3astXDhQmvdunXW999/b7399tvW1VdfbXXr1q3MvcJ7edN6vvLKK53jGjdubL355pvWihUrrCVLllgvvfSSVbNmTef+++67r8y9wnt5Yj1PmjTJeZygoCCrW7duxhouaThSGb4TEo5UUOdSZIfDYa1evTrf/qlTpzoX7FNPPVWmcyxbtsx5jMGDB1uZmZnG/mPHjlkNGza0JFnVqlUr9L+UjxgxwnmcL774It/+L774wrl/5MiRZeoV3s1b1vOIESOsd955x0pNTS3wHElJSVbPnj2d5/n444/L1Cu8m7es54LMnTvXkmTVqlXLmjZtGuEILMvyrjX9119/WTVq1LAkWa1atbLi4+MLPSf/pd03ect6/vXXX53HaNKkiXXmzJl8Y/bt22dFREQ4r0T566+/ytQvvJcn1vO5UHndunVWRkaGZVnm97uShiOV4Tsh4UgFFBcX51w499xzT4FjsrKyrFatWjn/0k1PTy/1eQYNGmRJsvz8/Ar9x8XMmTOdvbz88sv59h85csTy8/OzpJxbDQozcOBA57mOHDlS6l7hvbxpPZfE5s2bnccYMmRImY4B7+XN6/nMmTNWZGSkJcn66KOPrBkzZhCOwOvW9J133mlJsgIDA61t27aVug9Ubt60nl977TXn/v/7v/8r9FwPP/ywc9w333xT6l7hvTy1ngtS2nCksnwn5IGsFdDcuXOdn0eOHFngGLvdrttuu02SdPLkSS1btqxU5zh79qxiY2MlSQMGDFBkZGSB4/7xj38oPDxckjRnzpx8++fPn6+srKwie5Wk22+/XZKUlZWl+fPnl6pXeDdvWs8l0aZNG9WsWVOStHv37jIdA97Lm9fz448/rgMHDqhPnz7O/gBvWtOnTp3S559/Lkm66aab1KJFi1L1gcrPm9Zzenq683OTJk0KPV/Tpk2dn9PS0krVK7ybJ9azq1SW74SEIxXQihUrJEmhoaHq2LFjoeN69+7t/Lxy5cpSnSMuLs75F2ze45wvICBA3bp1c87JyMgosNfijnMhvcK7edN6Lqlz/6Cx2/kr1Nd463r+5Zdf9NZbbykgIEBvvfVWqfpB5eZNa/qbb75RSkqKJOn666931hMTE7Vz50799ddfpeoLlY83refo6Gjn5z179hR6nLz/ISbvHFR+nljPrlJZvhPyL/sKaOvWrZKkZs2ayeFwFDquZcuW+eaU9hznH6eo82RmZmrnzp0FHqdq1aqqW7duoceoV6+eMz0vba/wbt60nkti/fr1OnPmTInOhcrHG9dzRkaG7r77bmVnZ+uRRx5h3cLgTWs676tRu3fvru+//149evRQeHi4oqOjVadOHV100UUaM2aMEhISStUjKgdvWs8DBw5UVFSUJOm1115TUlJSvvkHDhxwvmq9e/fuatu2bal6hXfzxHp2lcrynZBwpIJJTU11/h96YZfpnVOtWjWFhoZKkuLj40t1nrzjiztPgwYNCpyXd7u4Y+Q9Tml7hffytvVcEs8995zz8w033FDq+fBe3rqeX3rpJW3evFlNmjTR//t//69UvaBy87Y1vWXLFkk5//iePn26rrzySq1evdoYc/jwYb366qtq3769czx8g7et58DAQH322WeqXr26du/erXbt2umdd97RqlWrtGzZMk2bNk0dO3bUyZMnFRUVpRkzZpSqT3g3T61nV6ks3wkJRyqYxMRE5+ewsLBix5/7g3D27Fm3nefcOQo6z7njuLNXeC9vW8/F+e9//6uvvvpKktSxY0cNHTq0VPPh3bxxPe/atUtTpkyRJL3xxhsKDg4uVS+o3LxtTZ84cUKSlJKSokcffVSBgYF64YUXdODAAaWlpen333933nt/4MABXX311fybw4d423qWpMsuu0zr16/X2LFjtX//ft17773q2bOnYmJiNG7cOCUnJ+upp57S2rVrecaOj/HUenaVyvKdkHCkgklNTXV+DggIKHZ8YGCgJDnvwXXHec6do6DznDuOO3uF9/K29VyUbdu2OR8wFRwcrI8//lg2m61UfcK7eeN6vvfee5Wamqrrr79ef/vb30rVByo/b1vT5247SE9Pl2VZ+uSTT/Too4+qfv36CggI0MUXX6yPPvpIo0aNkpQTDr799tul6hXey9vWsyRZlqWvvvpKX331VYHPjTp79qxmzZqlBQsWlKpHeD9PrWdXqSzfCQlHKpigoCDn57xPsS7MuQdClfa/BpbmPHmfjH3+ec4dx529wnt523ouzKFDh3TllVcqMTFRNptN77//vlq3bl2qHuH9vG09f/jhh4qNjVV4eLj+/e9/l6oH+AZvW9N5j9OtWzfjoax5Pffcc85/fM+cObNUvcJ7edt6zs7O1rBhwzR27Fjt27dPd955p3777TelpKTo7NmzWrlypYYMGaKtW7fq9ttv19ixY0vVJ7ybp9azq1SW74SEIxVMlSpVnJ9LcqnRuf+KUpJLmMp6nrwPiDr/POeO485e4b28bT0X5MSJE7riiiu0d+9eSTkPTbvppptK1R8qB29az8eOHdO4ceMkSVOmTNFFF11Uqh7gG7xpTZ9/nCuvvLLQY9SoUUOdOnWSJG3cuLHMbyaDd/G29fzmm2/qyy+/lCRNnjxZ06dPV/v27RUUFKTQ0FD16NFD8+bN06233ipJeuWVV7iCxId4aj27SmX5Tkg4UsEEBQWpZs2aknLuly3KyZMnnYsr7wOfSiLvw3KKO0/eh+Wcf55zxynuGHmPU9pe4b28bT2fLzExUX/729/0xx9/SMr5kvnAAw+UqjdUHt60nqdPn67jx48rIiJCNWrU0KxZs/L9+uWXX5zjf/nlF2ed16H6Dm9a0+dvl/RBmFlZWTp+/HiJe4X38rb1/P7770vK+VL52GOPFXqMvA+Cnz59eql6hffy1Hp2lcrynZBwpAJq1aqVpJx7ZTMzMwsdt23btnxzSirvLQF5j1PUeRwOh5o1a1bgcU6fPq0jR44UeozDhw87X39a2l7h3bxpPeeVkpKiwYMHa+3atZKkRx55RE888USp+kLl4y3r+dwlq6dOndItt9yim266Kd+vvM9iePvtt5113vDhW7xlTUvSxRdf7PyclZVV5HHy7i/qFZioXLxpPZ97jWnr1q2NZ5OcLzIyUnXq1CnR+VC5eGI9u0pl+U5IOFIB9ezZU1LOJUfr1q0rdNzy5cudn3v06FGqc3Tu3Nn5wJy8xzlfenq61qxZk2/O+b0Wd5wL6RXezZvW8zkZGRkaOnSo81j33nuvpk6dWqqeUDl543oGiuJNa/ryyy93ft69e3eR5zy3Pzg4WNWrVy9Vv/Be3rSez4V2RX3pPefcrWEEfb7FE+vZVSrNd0ILFc4vv/xiSbIkWffcc0+BY7KysqxWrVpZkqyIiAgrPT291Oe58sorLUmWw+Gw4uPjCxwzc+ZMZy9Tp07Nt//w4cOW3W63JFkDBw4s9FwDBw60JFl2u906fPhwqXuF9/Km9WxZlpWZmWldd911znG33nqrlZ2dXep+UDl523ouyowZM5zzZ8yYUer5qBy8aU1nZmZatWrVsiRZLVq0KPTv5j179jj/bdKvX79S9wrv5U3ruU2bNpYkKzAw0Dp58mSh59q8ebPzOIMHDy51r/BenlrPBRkxYoTz3H/++Wex4yvLd0LCkQqqV69ezr90V69enW//1KlTnQt20qRJ+fbn/UdvQfsty7JiY2OdY4YMGWJlZmYa+48dO2Y1bNjQ+YftxIkTBR7n1ltvdR7nyy+/zLf/iy++cO4fMWJEsT87Kh9vWc/Z2dnWyJEjnccZOnRovuMA3rKei0M4gnO8aU2/+OKLzuM8//zz+fanp6dbf/vb34r8dwkqN29Zz48//rjzGCNHjiww7EtJSbFiYmKc4955552S/Sag0vDEei5IacMRy6oc3wkJRyqo3377zQoODrYkWWFhYdZzzz1n/fzzz9aSJUusUaNGORdWdHS0debMmXzzS/oH4cYbb3SOi4mJsebNm2etXbvW+uCDD6ymTZs697399tuFHmP//v3O/5LjcDisRx991FqxYoW1YsUK69FHH7UcDoclyapVq1ah6ToqN29Zz2PGjHGOadOmjbVu3Tpr8+bNRf6C7/GW9VwcwhGc401rOiUlxerQoYNz7C233GJ9//331rp166zZs2dbXbt2de4bNGgQV/75IG9Zz8eOHbNq167tHNezZ0/r008/tX799Vfrl19+sd5++22rdevWzv2tWrWy0tLSXPXbBC/hifWcmJhozZgxw/jVo0cP57yXXnrJ2Ld+/foCj1MZvhMSjlRg8+fPt8LDw50L8/xf0dHR1s6dOwucW9K/2JOTk61BgwYVeg673V6ilHHNmjVW3bp1Cz1O3bp1rTVr1pTxdwKVgTes50aNGhU6t7Bf8E3esJ6LQziCvLxpTR86dMjq2LFjkX83Dxo0qMAvCvAN3rKe169fbzVu3LjYf2tceuml1t69ey/gdwTezN3r+c8//yzVv32LWtfe/p2QB7JWYIMHD9amTZv08MMPKzo6WiEhIYqIiFCnTp304osvav369UW+baMkgoODtWDBAn322WcaMGCAateurYCAADVo0EA333yz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7tW6KSkpRY7r16+f/vOf/yg4OFipqamaPXu27rjjDjVv3lyRkZG69957tXHjxmLPl/c8wcHBpe4XAABfxwNZAQCATzgXlgQEBJTqVpnIyMhSn6tWrVqSVOyDVCVp9OjRuv766/X555/rxx9/1KpVq3T69GkdPHhQ77zzjt59911NmDCh0DfwnH+ec+cGAAAlRzgCAAB8Qo0aNSRJ6enpqlGjhvN5H+5wLqA4efJkicbXrl1bDz30kB566CFlZ2drw4YNmjNnjt544w2dOnVKzz77rDp37qyrr766wPl5z0M4AgBA6XFbDQAAKDWbzVbeLZRa+/btnZ8XLVrk1nO1bdtWknT69OlS385jt9vVoUMHPfPMM4qNjXXWz732tyA7duzId24AAFByhCMAAKDUzj1TQ5LS0tLKsZOSu/LKK+Xv7y9JevXVV5WZmem2c/Xq1cv5ee3atWU+TocOHZwPW01ISCh03LlzNG3a1K1XxAAAUFkRjgAAgFLL+wX8Ql5B60n169fXyJEjJUkbN27UPffcU2RA8tdff2n69OllOleXLl0UGBgoSYqLiyt03OzZs4t8aOuvv/7qvGWmcePGhY47d468oQwAACg5njkCAABKrX379goKClJqaqomTpwoh8OhqKgo59ti6tevXyHfmjJt2jStXr1av//+uz744AOtWbNGo0aNUseOHRUWFqZTp07pjz/+0OLFi7Vw4UK1bdtWd911V6nPExgYqH79+mnhwoWKjY3VU089VeC4Rx99VPfee6+uvvpqXX755YqOjlZoaKiOHz+ulStX6vXXX5ck+fn56e677y7wGDt37lR8fLwk6aqrrip1rwAAgHAEAACUQZUqVfTggw9q6tSp+u233zRw4EBj/9KlS9WnT5/yaa4IYWFhWr58uYYPH67vv/9eW7Zs0UMPPVTo+PDw8DKf69Zbb9XChQu1evVq7d27V1FRUQWOO3XqlD766CN99NFHBe4PCgrSO++8o44dOxa4//PPP5ckVa1aVX//+9/L3C8AAL6M22oAAECZvPDCC3rvvffUq1cvVa9eXX5+fuXdUolUr15d3333nWJjYzVy5Eg1b95cYWFhcjgcql69ujp37qzRo0dr4cKF+vHHH8t8nn/84x+qW7euLMvSzJkzCxzz008/afr06Ro2bJjatm2rWrVqyeFwKDw8XB06dNAjjzyiLVu26Lbbbiv0POeOfccddxjPggEAACVnsyzLKu8mAAAAKqMXXnhBjz/+uJo3b65t27Y5bztylZUrV6pXr17y9/fXjh07Cr06BQAAFI0rRwAAANzk/vvvV61atbRz507Nnj3b5cefMmWKJGnkyJEEIwAAXACuHAEAAHCjt956S/fdd59atWql33//3WVXj8TFxalr164KCwvTjh07eIUvAAAXgAeyAgAAuNGoUaN06tQppaWl6dChQ4qMjHTJcRMSEjRp0iR16NCBYAQAgAvElSMAAAAAAMCn8cwRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPi0/w9qb27anB7j9wAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAANkCAYAAABVuUSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AADsoUlEQVR4nOzdd3RU1d7G8e9MegJJ6B0C0qv0LmJBUVFBRBCpIoh6bdhf6/XaruVaEBRFiooICAoiSpEqIE0gEHpJIySB9F7mvH8MjBkyE5KYSSHPZy2W4z77nP07Qwp5cvbeJsMwDEREREREREREKilzWRcgIiIiIiIiIlKWFI6IiIiIiIiISKWmcEREREREREREKjWFIyIiIiIiIiJSqSkcEREREREREZFKTeGIiIiIiIiIiFRqCkdEREREREREpFJTOCIiIiIiIiIilZrCERERERERERGp1BSOiIiIiIiIiEilpnBERERERERERCo1hSMiIiIiIiIiUqkpHBERERERERGRSk3hiIiIiIiIiIhUagpHRERERERERKRSUzgiIiIiIiIiIpWawhERERERERERqdQUjoiIiIiIiIhIpaZwREREREREREQqNfeyLuBKkZGRQXBwMAC1atXC3V1vrYiIiIiIiEhJy8nJITY2FoAOHTrg7e39j6/p0p/gY2Ji2LFjBzt27GDnzp3s3LmT8+fPAzBu3Djmzp1b4mMuXLiQOXPmsH//fuLj46lbty79+/fn4YcfplevXiU+3kXBwcH06NHDZdcXEREREREREXs7duyge/fu//g6Lg1H6tSp48rL28nIyODuu+/m559/tmsPDQ0lNDSUBQsW8Oqrr/LSSy+VWk0iIiIiIiIiUv6V2tyPRo0a0aZNG1avXu2S699///22YGTgwIE89thj1K9fn+DgYN58801OnDjByy+/TL169Zg0aVKJj1+rVi3b6x07dlCvXr0SH0NERERERESksouKirLN3Mj7s/g/4dJw5OWXX6Z79+50796dOnXqcPr0aZo2bVri42zcuJEFCxYAMGTIEJYtW4abmxsA3bt35/bbb6dr166EhYXxzDPPMHz4cAIDA0u0hrxrjNSrV4+GDRuW6PVFRERERERExF5Jrffp0t1qXnvtNW677TaXT6/573//C4CbmxszZsywBSMX1axZk3feeQeA+Ph4Zs+e7dJ6RERE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ZmYW6T1Ys2YN9913H02bNsXHxwd/f386derEM888Q1RUVJGuJSIiIleQs8GwbApYchwft+RYj58NLt26ypohJSI8PNwADMAIDw8v9HlHjx41QkJCjKNHj7qwOskrLS3NGDVqlO3vy9mfV155Jd+56enpxtChQws8r379+sZff/3lcOw5c+bY+h04cMC47rrrnF6nR48eRkpKit35r7zyymXrvvTTesCAAQZgDBgwIF89p06dsp0zZ84c49lnn3V6zVq1ahkhISFO39fTp08bbdq0KbCufv36GefPn3d4fkF1OnsPnHnzzTcNs9nstA4vLy9j3rx5Ds9dv369rd/69esLrKWgj5VNmzYZ/v7+l/27WrFiRYFjOHLxvSroz6XvY0G15v243Ldvn9GzZ0+n133//fcNwzCM0NBQo127dg77mEwm4+uvvy7wHr788kvDx8enwHu4//77jezs7CK/P4Zh//e4evVqY8iQIU7HefTRRw3DMIy4uDjjmmuucdrvjTfecDpebm6u8fDDDxd4PwEBAcbq1audXiMpKcno27ev0/O7du1q7Nmzx+5z1pGUlJTLfp2qUqWK04+9vB8Pp06dKvR7fpG+r4mIiJSt9KwcI+x8qrE7NM5Ytf+MsWjDbmPBD0uM775831j64eNG5GutDOMV/8v/WfpgWd+KU8X9+bsgWnNEKhWLxcIdd9zBmjVrAGjRogUPPfQQ3bp1w9fXl6ioKLZu3er0t8Tjxo1j2bJlAHTq1Ilp06bRpk0b4uLiWLhwIXPnzuXMmTNcf/317N+/nwYNGjitZfLkyWzfvp1x48YxYsQI6tatS1hYGP/973/Ztm0bO3bs4D//+Q9vvfWW7ZyHHnqI4cOH8+KLL/LTTz9Rv359fvvttxJ5b7744gu2bt3KgAEDmDJlCi1btiQhIYH58+czf/58YmNjmThxItu2bct3bkpKCtdddx0nT54E4M4772TixInUr1+fU6dOMX36dDZu3MiWLVu47bbb2Lx5M25ubiVS96VmzJjBCy+8AECtWrV49tln6du3L7m5uaxdu5Z3332X1NRUxo8fT82aNbnllltKvIbMzExGjhxJUlISVatWZerUqQwcOJDatWuTnZ1NaGgo27Zt44cffijW9efMmUNqaio33XQTZ86c4Y477uA///mPXR8/P79iXXvy5Mns3r2bhx56iKFD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3n//fatp06bOfe+9916hxzhw4IBVp04dS5LlcDis8ePHWz/99JP1008/WePHj7ccDoclyapTp4514MCBMvcK7+Ut67lfv36WJKt69erWqFGjrM8//9xavXq1FRcXZ73zzjtWixYtnMfo2bOnlZWVVeZe4b28ZT0X5tprr7UkWbVr1yYcgWVZ3remf/zxRysoKMiSZFWpUsUaO3astXDhQmvdunXW999/b7399tvW1VdfbXXr1q3MvcJ7edN6vvLKK53jGjdubL355pvWihUrrCVLllgvvfSSVbNmTef+++67r8y9wnt5Yj1PmjTJeZygoCCrW7duxhouaThSGb4TEo5UUOdSZIfDYa1evTrf/qlTpzoX7FNPPVWmcyxbtsx5jMGDB1uZmZnG/mPHjlkNGza0JFnVqlUr9L+UjxgxwnmcL774It/+L774wrl/5MiRZeoV3s1b1vOIESOsd955x0pNTS3wHElJSVbPnj2d5/n444/L1Cu8m7es54LMnTvXkmTVqlXLmjZtGuEILMvyrjX9119/WTVq1LAkWa1atbLi4+MLPSf/pd03ect6/vXXX53HaNKkiXXmzJl8Y/bt22dFREQ4r0T566+/ytQvvJcn1vO5UHndunVWRkaGZVnm97uShiOV4Tsh4UgFFBcX51w499xzT4FjsrKyrFatWjn/0k1PTy/1eQYNGmRJsvz8/Ar9x8XMmTOdvbz88sv59h85csTy8/OzpJxbDQozcOBA57mOHDlS6l7hvbxpPZfE5s2bnccYMmRImY4B7+XN6/nMmTNWZGSkJcn66KOPrBkzZhCOwOvW9J133mlJsgIDA61t27aVug9Ubt60nl977TXn/v/7v/8r9FwPP/ywc9w333xT6l7hvTy1ngtS2nCksnwn5IGsFdDcuXOdn0eOHFngGLvdrttuu02SdPLkSS1btqxU5zh79qxiY2MlSQMGDFBkZGSB4/7xj38oPDxckjRnzpx8++fPn6+srKwie5Wk22+/XZKUlZWl+fPnl6pXeDdvWs8l0aZNG9WsWVOStHv37jIdA97Lm9fz448/rgMHDqhPnz7O/gBvWtOnTp3S559/Lkm66aab1KJFi1L1gcrPm9Zzenq683OTJk0KPV/Tpk2dn9PS0krVK7ybJ9azq1SW74SEIxXQihUrJEmhoaHq2LFjoeN69+7t/Lxy5cpSnSMuLs75F2ze45wvICBA3bp1c87JyMgosNfijnMhvcK7edN6Lqlz/6Cx2/kr1Nd463r+5Zdf9NZbbykgIEBvvfVWqfpB5eZNa/qbb75RSkqKJOn666931hMTE7Vz50799ddfpeoLlY83refo6Gjn5z179hR6nLz/ISbvHFR+nljPrlJZvhPyL/sKaOvWrZKkZs2ayeFwFDquZcuW+eaU9hznH6eo82RmZmrnzp0FHqdq1aqqW7duoceoV6+eMz0vba/wbt60nkti/fr1OnPmTInOhcrHG9dzRkaG7r77bmVnZ+uRRx5h3cLgTWs676tRu3fvru+//149evRQeHi4oqOjVadOHV100UUaM2aMEhISStUjKgdvWs8DBw5UVFSUJOm1115TUlJSvvkHDhxwvmq9e/fuatu2bal6hXfzxHp2lcrynZBwpIJJTU11/h96YZfpnVOtWjWFhoZKkuLj40t1nrzjiztPgwYNCpyXd7u4Y+Q9Tml7hffytvVcEs8995zz8w033FDq+fBe3rqeX3rpJW3evFlNmjTR//t//69UvaBy87Y1vWXLFkk5//iePn26rrzySq1evdoYc/jwYb366qtq3769czx8g7et58DAQH322WeqXr26du/erXbt2umdd97RqlWrtGzZMk2bNk0dO3bUyZMnFRUVpRkzZpSqT3g3T61nV6ks3wkJRyqYxMRE5+ewsLBix5/7g3D27Fm3nefcOQo6z7njuLNXeC9vW8/F+e9//6uvvvpKktSxY0cNHTq0VPPh3bxxPe/atUtTpkyRJL3xxhsKDg4uVS+o3LxtTZ84cUKSlJKSokcffVSBgYF64YUXdODAAaWlpen333933nt/4MABXX311fybw4d423qWpMsuu0zr16/X2LFjtX//ft17773q2bOnYmJiNG7cOCUnJ+upp57S2rVrecaOj/HUenaVyvKdkHCkgklNTXV+DggIKHZ8YGCgJDnvwXXHec6do6DznDuOO3uF9/K29VyUbdu2OR8wFRwcrI8//lg2m61UfcK7eeN6vvfee5Wamqrrr79ef/vb30rVByo/b1vT5247SE9Pl2VZ+uSTT/Too4+qfv36CggI0MUXX6yPPvpIo0aNkpQTDr799tul6hXey9vWsyRZlqWvvvpKX331VYHPjTp79qxmzZqlBQsWlKpHeD9PrWdXqSzfCQlHKpigoCDn57xPsS7MuQdClfa/BpbmPHmfjH3+ec4dx529wnt523ouzKFDh3TllVcqMTFRNptN77//vlq3bl2qHuH9vG09f/jhh4qNjVV4eLj+/e9/l6oH+AZvW9N5j9OtWzfjoax5Pffcc85/fM+cObNUvcJ7edt6zs7O1rBhwzR27Fjt27dPd955p3777TelpKTo7NmzWrlypYYMGaKtW7fq9ttv19ixY0vVJ7ybp9azq1SW74SEIxVMlSpVnJ9LcqnRuf+KUpJLmMp6nrwPiDr/POeO485e4b28bT0X5MSJE7riiiu0d+9eSTkPTbvppptK1R8qB29az8eOHdO4ceMkSVOmTNFFF11Uqh7gG7xpTZ9/nCuvvLLQY9SoUUOdOnWSJG3cuLHMbyaDd/G29fzmm2/qyy+/lCRNnjxZ06dPV/v27RUUFKTQ0FD16NFD8+bN06233ipJeuWVV7iCxId4aj27SmX5Tkg4UsEEBQWpZs2aknLuly3KyZMnnYsr7wOfSiLvw3KKO0/eh+Wcf55zxynuGHmPU9pe4b28bT2fLzExUX/729/0xx9/SMr5kvnAAw+UqjdUHt60nqdPn67jx48rIiJCNWrU0KxZs/L9+uWXX5zjf/nlF2ed16H6Dm9a0+dvl/RBmFlZWTp+/HiJe4X38rb1/P7770vK+VL52GOPFXqMvA+Cnz59eql6hffy1Hp2lcrynZBwpAJq1aqVpJx7ZTMzMwsdt23btnxzSirvLQF5j1PUeRwOh5o1a1bgcU6fPq0jR44UeozDhw87X39a2l7h3bxpPeeVkpKiwYMHa+3atZKkRx55RE888USp+kLl4y3r+dwlq6dOndItt9yim266Kd+vvM9iePvtt5113vDhW7xlTUvSxRdf7PyclZVV5HHy7i/qFZioXLxpPZ97jWnr1q2NZ5OcLzIyUnXq1CnR+VC5eGI9u0pl+U5IOFIB9ezZU1LOJUfr1q0rdNzy5cudn3v06FGqc3Tu3Nn5wJy8xzlfenq61qxZk2/O+b0Wd5wL6RXezZvW8zkZGRkaOnSo81j33nuvpk6dWqqeUDl543oGiuJNa/ryyy93ft69e3eR5zy3Pzg4WNWrVy9Vv/Be3rSez4V2RX3pPefcrWEEfb7FE+vZVSrNd0ILFc4vv/xiSbIkWffcc0+BY7KysqxWrVpZkqyIiAgrPT291Oe58sorLUmWw+Gw4uPjCxwzc+ZMZy9Tp07Nt//w4cOW3W63JFkDBw4s9FwDBw60JFl2u906fPhwqXuF9/Km9WxZlpWZmWldd911znG33nqrlZ2dXep+UDl523ouyowZM5zzZ8yYUer5qBy8aU1nZmZatWrVsiRZLVq0KPTv5j179jj/bdKvX79S9wrv5U3ruU2bNpYkKzAw0Dp58mSh59q8ebPzOIMHDy51r/BenlrPBRkxYoTz3H/++Wex4yvLd0LCkQqqV69ezr90V69enW//1KlTnQt20qRJ+fbn/UdvQfsty7JiY2OdY4YMGWJlZmYa+48dO2Y1bNjQ+YftxIkTBR7n1ltvdR7nyy+/zLf/iy++cO4fMWJEsT87Kh9vWc/Z2dnWyJEjnccZOnRovuMA3rKei0M4gnO8aU2/+OKLzuM8//zz+fanp6dbf/vb34r8dwkqN29Zz48//rjzGCNHjiww7EtJSbFiYmKc4955552S/Sag0vDEei5IacMRy6oc3wkJRyqo3377zQoODrYkWWFhYdZzzz1n/fzzz9aSJUusUaNGORdWdHS0debMmXzzS/oH4cYbb3SOi4mJsebNm2etXbvW+uCDD6ymTZs697399tuFHmP//v3O/5LjcDisRx991FqxYoW1YsUK69FHH7UcDoclyapVq1ah6ToqN29Zz2PGjHGOadOmjbVu3Tpr8+bNRf6C7/GW9VwcwhGc401rOiUlxerQoYNz7C233GJ9//331rp166zZs2dbXbt2de4bNGgQV/75IG9Zz8eOHbNq167tHNezZ0/r008/tX799Vfrl19+sd5++22rdevWzv2tWrWy0tLSXPXbBC/hifWcmJhozZgxw/jVo0cP57yXXnrJ2Ld+/foCj1MZvhMSjlRg8+fPt8LDw50L8/xf0dHR1s6dOwucW9K/2JOTk61BgwYVeg673V6ilHHNmjVW3bp1Cz1O3bp1rTVr1pTxdwKVgTes50aNGhU6t7Bf8E3esJ6LQziCvLxpTR86dMjq2LFjkX83Dxo0qMAvCvAN3rKe169fbzVu3LjYf2tceuml1t69ey/gdwTezN3r+c8//yzVv32LWtfe/p2QB7JWYIMHD9amTZv08MMPKzo6WiEhIYqIiFCnTp304osvav369UW+baMkgoODtWDBAn322WcaMGCAateurYCAADVo0EA333yz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7tW6KSkpRY7r16+f/vOf/yg4OFipqamaPXu27rjjDjVv3lyRkZG69957tXHjxmLPl/c8wcHBpe4XAABfxwNZAQCATzgXlgQEBJTqVpnIyMhSn6tWrVqSVOyDVCVp9OjRuv766/X555/rxx9/1KpVq3T69GkdPHhQ77zzjt59911NmDCh0DfwnH+ec+cGAAAlRzgCAAB8Qo0aNSRJ6enpqlGjhvN5H+5wLqA4efJkicbXrl1bDz30kB566CFlZ2drw4YNmjNnjt544w2dOnVKzz77rDp37qyrr766wPl5z0M4AgBA6XFbDQAAKDWbzVbeLZRa+/btnZ8XLVrk1nO1bdtWknT69OlS385jt9vVoUMHPfPMM4qNjXXWz732tyA7duzId24AAFByhCMAAKDUzj1TQ5LS0tLKsZOSu/LKK+Xv7y9JevXVV5WZmem2c/Xq1cv5ee3atWU+TocOHZwPW01ISCh03LlzNG3a1K1XxAAAUFkRjgAAgFLL+wX8Ql5B60n169fXyJEjJUkbN27UPffcU2RA8tdff2n69OllOleXLl0UGBgoSYqLiyt03OzZs4t8aOuvv/7qvGWmcePGhY47d468oQwAACg5njkCAABKrX379goKClJqaqomTpwoh8OhqKgo59ti6tevXyHfmjJt2jStXr1av//+uz744AOtWbNGo0aNUseOHRUWFqZTp07pjz/+0OLFi7Vw4UK1bdtWd911V6nPExgYqH79+mnhwoWKjY3VU089VeC4Rx99VPfee6+uvvpqXX755YqOjlZoaKiOHz+ulStX6vXXX5ck+fn56e677y7wGDt37lR8fLwk6aqrrip1rwAAgHAEAACUQZUqVfTggw9q6tSp+u233zRw4EBj/9KlS9WnT5/yaa4IYWFhWr58uYYPH67vv/9eW7Zs0UMPPVTo+PDw8DKf69Zbb9XChQu1evVq7d27V1FRUQWOO3XqlD766CN99NFHBe4PCgrSO++8o44dOxa4//PPP5ckVa1aVX//+9/L3C8AAL6M22oAAECZvPDCC3rvvffUq1cvVa9eXX5+fuXdUolUr15d3333nWJjYzVy5Eg1b95cYWFhcjgcql69ujp37qzRo0dr4cKF+vHHH8t8nn/84x+qW7euLMvSzJkzCxzz008/afr06Ro2bJjatm2rWrVqyeFwKDw8XB06dNAjjzyiLVu26Lbbbiv0POeOfccddxjPggEAACVnsyzLKu8mAAAAKqMXXnhBjz/+uJo3b65t27Y5bztylZUrV6pXr17y9/fXjh07Cr06BQAAFI0rRwAAANzk/vvvV61atbRz507Nnj3b5cefMmWKJGnkyJEEIwAAXACuHAEAAHCjt956S/fdd59atWql33//3WVXj8TFxalr164KCwvTjh07eIUvAAAXgAeyAgAAuNGoUaN06tQppaWl6dChQ4qMjHTJcRMSEjRp0iR16NCBYAQAgAvElSMAAAAAAMCn8cwRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPi0/w9qb27anB7j9wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -211,7 +211,7 @@ "outputs": [ { "data": { - "image/png": "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D/7YN18GAICBa23vjLseey6v7X+dOKVM1QDAnyU2PWT37t0REbF3796oqqqK5cuXx/ve976YNGlSjBgxIk455ZS49dZbY/HixRER8cADD8RNN92UVDkAAPTivie3xu62zq7nqVTEuSeYGgJA+SU20qK2trYruHjLW94Sr3zlKw/ok06n42tf+1osX748IiJ+8pOfxJvf/OaCz9HY2Njn683NzbFw4cJ+VA0AMPws/2P+lNpTj5oQk8fUlqkaAPizxEKLMWPGdIUW+0ZT9OSEE06I6dOnx4YNG+Khhx7q1zlsYQoAcGjaOrJxxxpTQwCoTIlND9l/vYmDhQv7+m7evDmpcgAA6MFv1j4fO1o78tqEFgBUisRCixNOOKHrcWdnZx89//x6JmMfbQCAUvr3blNDFjSMj2nj68pUDQDkSyy0+Iu/+Iuux08//XSffdeuXRsREdOnT0+qHAAAuunozMZ/PJo/NWSxURYAVJDEQovzzz8/qqurIyL63BXk3nvvjeeffz4iIs4444ykygEAoJsHn9kW23a35bUtPnFqmaoBgAMlFlocfvjhccUVV0RExH/913/FjTfeeECfnTt3xoc//OGu5+973/uSKgcAgG7+/Y+b8p7PnTo2jjx8ZJmqAYADJRZaRER87nOfiyOPPDIiIi655JK48sor4+67747f//73cf3118fChQtj5cqVERHx/ve/P0499dQkywEA4H9ks7kDQovz5pkaAkBlSXTly0mTJsW///u/x/nnnx9PPfVUfPvb345vf/vbB/T7q7/6q/j7v//7JEsBAGA/jzRuj8079+a1/S9TQwCoMImOtIiIOP7442PlypXxta99LV7xilfEhAkToqamJurr6+Otb31r3HXXXXHdddd1rX8BAEDylq/OH2Vx7OTRcczk0WWqBgB6VpI9RkeNGhUf+9jH4mMf+1gpTgcAQB9yuVws7zY1xK4hAFSixEdaAABQWVZveDE2vNCS12ZqCACVSGgBADDMdB9lcdThI+P4qWPKVA0A9E5oAQAwjORyB+4asvjEqZFKpcpUEQD0TmgBADCM/Om5nbFu6+68NutZAFCphBYAAMNI911Dpo+vi5fVjytTNQDQN6EFAMAwsvyPzXnPX3fCFFNDAKhYQgsAgGHi6S274onnduW1LZ5naggAlUtoAQAwTHRfgHPSmBFx8pGHlaka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73hH13udffbZuV/+8pe5Bx98MHfdddfljj766K7Xvve97xXx07FP0tf5hhtu6Pri87rXvS53zTXX5O66667cww8/nPvVr36Ve+tb39p1jpEjR7rBSUipfp67+9WvfpWLiNzkyZP9g1kCpbrOL7zwQu7kk0/uer/Xv/71uRtuuCH3m9/8JrdixYrcj370o9yHP/zhXH19vZ/pIivFNf7pT3/a9T41NTW5j3zkI7nbbrst99///d+5H//4x7lFixZ1vT516tTcCy+8UORPObztf4PR0NCQO/fccxO7yfEdrHxKcZ19Byu/Uv48d+c7WGUSWhTZWWedlYuIXCaTyT3wwAMHvP7Vr3616wfgc5/73IDOcc8993S9xxvf+MZcR0dH3utbtmzJHXnkkbmIyB122GG57du3D+g89C7p63zjjTfm3ve+9+XWr1/fa59vfetbXed49atf3e9zcHCl+HnubufOnbmGhoZcROR++MMf+gezBEp1nS+55JKu89x444299stms7n29vYBn4cDleIan3jiiV3vceutt/bY501velNXn6VLlw7oPPTsM5/5TO6WW27Jbdq0KZfL5XLr1q1L5CbHd7DyKsV19h2s/Er189yd72CVS2hRRA8++GDX/9zve9/7euzT2dmZO/7447v+MWtra+v3ec4777xcROSqqqpyjY2NPfb5yU9+0lXL17/+9X6fg96V6joX4pRTTun6bcDWrVsTOcdwVa7rfOWVV3b99i6Xy/kHM2Glus733Xdf13muvvrqQy2bfijFNX7xxRe7znHSSSf12m/VqlVd/S6++OJ+nYP+Seomx3ewylKqm9me+A5WOqW6zr6DVS4LcRbRL3/5y67H7373u3vsk06n413veldERGzfvj3uueeefp1j165dceedd0ZExDnnnBP19fU99nvTm94UY8eOjYiIm266qV/noG+luM6F2rcwUDabjXXr1iVyjuGqHNf5wQcfjH/8x3+Mmpqa+M53vnNI70VhSnWdv/3tb0dExOjRo+Oqq67q9/EMXCmucVtbW9fjWbNm9drv6KOP7nq8d+/efp2D8vMdjP35Dja0+A5W2YQWRXTfffdFRMSoUaPi5JNP7rXfmWee2fV4xYoV/TrHgw8+2PVFZ//36a6mpiZe+cpXdh3T3t7er/PQu1Jc50Lt/6U3nfbjXEylvs4dHR3x3ve+N7LZbHziE5+I4447bsDvReFKcZ3b2tri5ptvjoiIxYsXx+jRoyPipWu+fv36ePbZZ/NueimuUlzjiRMnxoQJEyIiYu3atb32e/rpp7sez549u1/noPx8B2N/voMNHb6DVT4/YUX02GOPRUTEMcccE5lMptd+c+bMOeCY/p6j+/v0dZ6Ojo548skn+3UeeleK61yoe++9NyIiMplMHHPMMYmcY7gq9XX++te/HqtWrYqjjz46PvWpTw34feifUlznVatWRWtra0REnHbaabFp06Z497vfHePHj48ZM2bEUUcdFePGjYvzzjsvHnjggQF8CvpSqp/l9773vRER8fDDD8fy5ct77POFL3whIiKqqqriiiuu6Pc5KC/fwdif72BDh+9glU9oUSStra2xdevWiIhehwvuc9hhh8WoUaMiIqKxsbFf59m//8HO09DQ0ONxDFyprnMhbrvttvjDH/4QERGve93ruoaicuhKfZ3Xrl0bn//85yMi4p/+6Z+itrZ2QO9D/5TqOq9ZsybvnPPmzYvrr78+du/ende+fPnyOOOMM+Kb3/xmv96f3pXyZ/lv//Zv47WvfW1ERFx00UXxsY99LJYvXx4PPfRQ/PSnP42zzjorfv7zn0dVVVV861vfiuOPP77f56C8fAdjH9/Bhg7fwQYHoUWR7Ny5s+vxvqG/fdn3xWjXrl2JnWffOQZyHnpWqut8MNu2bYsPfvCDEfHSb+z2/faO4ij1dX7f+94XLS0t8da3vjXOPffcAb0H/Veq67xt27aux5/73Odi69at8YY3vCF+97vfRWtrazz33HPxT//0TzF27NjIZrPx0Y9+tNff1NM/pfxZHj16dCxfvjy+973vRX19fSxdujTOO++8WLhwYbztbW+Le++9N970pjfF/fffHx/4wAf6/f6Un+9gRPgONtT4DjY4CC2KZN/Q34iX5jIezIgRIyIioqWlJbHz7DvHQM5Dz0p1nfvS2dkZ73znO2P9+vUREfF//+//jZe//OVFe39Ke51/+MMfxh133BFjx46Na665pt/HM3Clus77j6jYu3dvvPGNb4ybb745Tj755BgxYkRMnjw53v/+98dtt90W6XQ6crlcfPzjH49cLtev83CgUv+d/bvf/S5+8pOf9LquxR133BE/+MEPYseOHQN6f8rLdzB8BxtafAcbPIQWRbL/UKJCFlTb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\n", + "image/png": "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D/7YN18GAICBa23vjLseey6v7X+dOKVM1QDAnyU2PWT37t0REbF3796oqqqK5cuXx/ve976YNGlSjBgxIk455ZS49dZbY/HixRER8cADD8RNN92UVDkAAPTivie3xu62zq7nqVTEuSeYGgJA+SU20qK2trYruHjLW94Sr3zlKw/ok06n42tf+1osX748IiJ+8pOfxJvf/OaCz9HY2Njn683NzbFw4cJ+VA0AMPws/2P+lNpTj5oQk8fUlqkaAPizxEKLMWPGdIUW+0ZT9OSEE06I6dOnx4YNG+Khhx7q1zlsYQoAcGjaOrJxxxpTQwCoTIlND9l/vYmDhQv7+m7evDmpcgAA6MFv1j4fO1o78tqEFgBUisRCixNOOKHrcWdnZx89//x6JmMfbQCAUvr3blNDFjSMj2nj68pUDQDkSyy0+Iu/+Iuux08//XSffdeuXRsREdOnT0+qHAAAuunozMZ/PJo/NWSxURYAVJDEQovzzz8/qqurIyL63BXk3nvvjeeffz4iIs4444ykygEAoJsHn9kW23a35bUtPnFqmaoBgAMlFlocfvjhccUVV0RExH/913/FjTfeeECfnTt3xoc//OGu5+973/uSKgcAgG7+/Y+b8p7PnTo2jjx8ZJmqAYADJRZaRER87nOfiyOPPDIiIi655JK48sor4+67747f//73cf3118fChQtj5cqVERHx/ve/P0499dQkywEA4H9ks7kDQovz5pkaAkBlSXTly0mTJsW///u/x/nnnx9PPfVUfPvb345vf/vbB/T7q7/6q/j7v//7JEsBAGA/jzRuj8079+a1/S9TQwCoMImOtIiIOP7442PlypXxta99LV7xilfEhAkToqamJurr6+Otb31r3HXXXXHdddd1rX8BAEDylq/OH2Vx7OTRcczk0WWqBgB6VpI9RkeNGhUf+9jH4mMf+1gpTgcAQB9yuVws7zY1xK4hAFSixEdaAABQWVZveDE2vNCS12ZqCACVSGgBADDMdB9lcdThI+P4qWPKVA0A9E5oAQAwjORyB+4asvjEqZFKpcpUEQD0TmgBADCM/Om5nbFu6+68NutZAFCphBYAAMNI911Dpo+vi5fVjytTNQDQN6EFAMAwsvyPzXnPX3fCFFNDAKhYQgsAgGHi6S274onnduW1LZ5naggAlUtoAQAwTHRfgHPSmBFx8pGHlaka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73hH13udffbZuV/+8pe5Bx98MHfdddfljj766K7Xvve97xXx07FP0tf5hhtu6Pri87rXvS53zTXX5O66667cww8/nPvVr36Ve+tb39p1jpEjR7rBSUipfp67+9WvfpWLiNzkyZP9g1kCpbrOL7zwQu7kk0/uer/Xv/71uRtuuCH3m9/8JrdixYrcj370o9yHP/zhXH19vZ/pIivFNf7pT3/a9T41NTW5j3zkI7nbbrst99///d+5H//4x7lFixZ1vT516tTcCy+8UORPObztf4PR0NCQO/fccxO7yfEdrHxKcZ19Byu/Uv48d+c7WGUSWhTZWWedlYuIXCaTyT3wwAMHvP7Vr3616wfgc5/73IDOcc8993S9xxvf+MZcR0dH3utbtmzJHXnkkbmIyB122GG57du3D+g89C7p63zjjTfm3ve+9+XWr1/fa59vfetbXed49atf3e9zcHCl+HnubufOnbmGhoZcROR++MMf+gezBEp1nS+55JKu89x444299stms7n29vYBn4cDleIan3jiiV3vceutt/bY501velNXn6VLlw7oPPTsM5/5TO6WW27Jbdq0KZfL5XLr1q1L5CbHd7DyKsV19h2s/Er189yd72CVS2hRRA8++GDX/9zve9/7euzT2dmZO/7447v+MWtra+v3ec4777xcROSqqqpyjY2NPfb5yU9+0lXL17/+9X6fg96V6joX4pRTTun6bcDWrVsTOcdwVa7rfOWVV3b99i6Xy/kHM2Glus733Xdf13muvvrqQy2bfijFNX7xxRe7znHSSSf12m/VqlVd/S6++OJ+nYP+Seomx3ewylKqm9me+A5WOqW6zr6DVS4LcRbRL3/5y67H7373u3vsk06n413veldERGzfvj3uueeefp1j165dceedd0ZExDnnnBP19fU99nvTm94UY8eOjYiIm266qV/noG+luM6F2rcwUDabjXXr1iVyjuGqHNf5wQcfjH/8x3+Mmpqa+M53vnNI70VhSnWdv/3tb0dExOjRo+Oqq67q9/EMXCmucVtbW9fjWbNm9drv6KOP7nq8d+/efp2D8vMdjP35Dja0+A5W2YQWRXTfffdFRMSoUaPi5JNP7rXfmWee2fV4xYoV/TrHgw8+2PVFZ//36a6mpiZe+cpXdh3T3t7er/PQu1Jc50Lt/6U3nfbjXEylvs4dHR3x3ve+N7LZbHziE5+I4447bsDvReFKcZ3b2tri5ptvjoiIxYsXx+jRoyPipWu+fv36ePbZZ/NueimuUlzjiRMnxoQJEyIiYu3atb32e/rpp7sez549u1/noPx8B2N/voMNHb6DVT4/YUX02GOPRUTEMcccE5lMptd+c+bMOeCY/p6j+/v0dZ6Ojo548skn+3UeeleK61yoe++9NyIiMplMHHPMMYmcY7gq9XX++te/HqtWrYqjjz46PvWpTw34feifUlznVatWRWtra0REnHbaabFp06Z497vfHePHj48ZM2bEUUcdFePGjYvzzjsvHnjggQF8CvpSqp/l9773vRER8fDDD8fy5ct77POFL3whIiKqqqriiiuu6Pc5KC/fwdif72BDh+9glU9oUSStra2xdevWiIhehwvuc9hhh8WoUaMiIqKxsbFf59m//8HO09DQ0ONxDFyprnMhbrvttvjDH/4QERGve93ruoaicuhKfZ3Xrl0bn//85yMi4p/+6Z+itrZ2QO9D/5TqOq9ZsybvnPPmzYvrr78+du/ende+fPnyOOOMM+Kb3/xmv96f3pXyZ/lv//Zv47WvfW1ERFx00UXxsY99LJYvXx4PPfRQ/PSnP42zzjorfv7zn0dVVVV861vfiuOPP77f56C8fAdjH9/Bhg7fwQYHoUWR7Ny5s+vxvqG/fdn3xWjXrl2JnWffOQZyHnpWqut8MNu2bYsPfvCDEfHSb+z2/faO4ij1dX7f+94XLS0t8da3vjXOPffcAb0H/Veq67xt27aux5/73Odi69at8YY3vCF+97vfRWtrazz33HPxT//0TzF27NjIZrPx0Y9+tNff1NM/pfxZHj16dCxfvjy+973vRX19fSxdujTOO++8WLhwYbztbW+Le++9N970pjfF/fffHx/4wAf6/f6Un+9gRPgONtT4DjY4CC2KZN/Q34iX5jIezIgRIyIioqWlJbHz7DvHQM5Dz0p1nfvS2dkZ73znO2P9+vUREfF//+//jZe//OVFe39Ke51/+MMfxh133BFjx46Na665pt/HM3Clus77j6jYu3dvvPGNb4ybb745Tj755BgxYkRMnjw53v/+98dtt90W6XQ6crlcfPzjH49cLtev83CgUv+d/bvf/S5+8pOf9LquxR133BE/+MEPYseOHQN6f8rLdzB8BxtafAcbPIQWRbL/UKJCFlTb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", "text/plain": [ "
" ] @@ -250,7 +250,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -265,7 +265,7 @@ }, { "data": { - "image/png": "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Ma655po+f7bff//9/n9RCJGI5/mRRx4x3G53r8/vaaedZmzdujVGXxU69fZ3ftttt8V0Ll6HJU8inmdehyVfIn+eu8PrsNTCyhGL2rp1q+bMmaPjx48rLy9PDzzwgN566y298sor+ud//mdJ0kcffaQrr7yyX78ZnDdvnlavXi1JmjZtmp5//nlt3LhRy5Yt0+jRo+X3+3X//fdr6dKlMfm6ECzez/Phw4fV1tYmp9Opyy+/XI8++qheffVVbd68WS+++KK+/OUvS5IOHDigL33pS9qyZUssvzz8XaJ+ns1eeukl/e///q+Kiopidk30LFHP8/HjxzVjxgy98MILkqQrr7xSTz31lN5++21VVFTo6aef1l133aXS0tKYfF0IlojneeXKlbr77rvl9Xrl8Xj0rW99S2vWrNFf//pXPfPMM5oyZYokae/evbriiit0/PjxmH19CFZWVqbLLrssbtfndVhqiNfzzOuw1BLvn2czXoeloGSnM4jOJZdcYkgy3G638dZbb4V8/qc//WkggfzBD34Q1Ryvv/564BpXXXWV4fV6gz5/6NAh49RTTzUkGQMHDjSOHj0a1TzoWbyf5xUrVhgLFiww9u7d2+OY//zP/wzMMX369IjnQN8S8fNs1tjYaJSVlRmSjN/97nf8xiIBEvU833LLLYF5VqxY0eM4v99vdHR0RD0PupeI5/nMM88MXGP16tXdjrnuuusCYxYvXhzVPOje/fffb7z00kvG/v37DcMwjD179sTlN828DkuuRDzPvA5LvkT9PJvxOiw1EY5Y0MaNGwM/QAsWLOh2jM/nM84444zAf5jt7e0RzzNr1ixDkuFyuYyqqqpuxzz77LOBe3nkkUcingM9S9TzHI7zzz8/sHy3vr4+LnOkq2Q9z9/85jcNSca0adMMwzD4TznOEvU8v/HGG4F5Fi1a1N/bRoQS8TwfP348MMe5557b47itW7cGxl1//fURzYHIxOvNFK/DUkui3jR3h9dhiZOo55nXYamJshoLev755wOPb7/99m7HOJ1O3XrrrZKko0eP6vXXX49ojhMnTuiVV16RJM2YMaPH5dfXXXedCgoKJEmrVq2KaA70LhHPc7g6m0P5/X7t2bMnLnOkq2Q8zxs3btR//dd/yePx6Ne//nW/roXwJOp5/tWvfiVJysvL08KFCyM+H/2TiOe5vb098HjU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\n", + "image/png": "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Ma655po+f7bff//9/n9RCJGI5/mRRx4x3G53r8/vaaedZmzdujVGXxU69fZ3ftttt8V0Ll6HJU8inmdehyVfIn+eu8PrsNTCyhGL2rp1q+bMmaPjx48rLy9PDzzwgN566y298sor+ud//mdJ0kcffaQrr7yyX78ZnDdvnlavXi1JmjZtmp5//nlt3LhRy5Yt0+jRo+X3+3X//fdr6dKlMfm6ECzez/Phw4fV1tYmp9Opyy+/XI8++qheffVVbd68WS+++KK+/OUvS5IOHDigL33pS9qyZUssvzz8XaJ+ns1eeukl/e///q+Kiopidk30LFHP8/HjxzVjxgy98MILkqQrr7xSTz31lN5++21VVFTo6aef1l133aXS0tKYfF0IlojneeXKlbr77rvl9Xrl8Xj0rW99S2vWrNFf//pXPfPMM5oyZYokae/evbriiit0/PjxmH19CFZWVqbLLrssbtfndVhqiNfzzOuw1BLvn2czXoeloGSnM4jOJZdcYkgy3G638dZbb4V8/qc//WkggfzBD34Q1Ryvv/564BpXXXWV4fV6gz5/6NAh49RTTzUkGQMHDjSOHj0a1TzoWbyf5xUrVhgLFiww9u7d2+OY//zP/wzMMX369IjnQN8S8fNs1tjYaJSVlRmSjN/97nf8xiIBEvU833LLLYF5VqxY0eM4v99vdHR0RD0PupeI5/nMM88MXGP16tXdjrnuuusCYxYvXhzVPOje/fffb7z00kvG/v37DcMwjD179sTlN828DkuuRDzPvA5LvkT9PJvxOiw1EY5Y0MaNGwM/QAsWLOh2jM/nM84444zAf5jt7e0RzzNr1ixDkuFyuYyqqqpuxzz77LOBe3nkkUcingM9S9TzHI7zzz8/sHy3vr4+LnOkq2Q9z9/85jcNSca0adMMwzD4TznOEvU8v/HGG4F5Fi1a1N/bRoQS8TwfP348MMe5557b47itW7cGxl1//fURzYHIxOvNFK/DUkui3jR3h9dhiZOo55nXYamJshoLev755wOPb7/99m7HOJ1O3XrrrZKko0eP6vXXX49ojhMnTuiVV16RJM2YMaPH5dfXXXedCgoKJEmrVq2KaA70LhHPc7g6m0P5/X7t2bMnLnOkq2Q8zxs3btR//dd/yePx6Ne//nW/roXwJOp5/tWvfiVJysvL08KFCyM+H/2TiOe5vb098HjU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", "text/plain": [ "
" ] @@ -285,7 +285,8 @@ "\n", "plant_simulator = ct.c2d(plantcont, simulation_dt, 'zoh')\n", "# system from r to y\n", - "Gyr_simulator = ct.interconnect((controller_simulator, plant_simulator, u_summer), inputs='r', outputs=['y', 'u'])\n", + "Gyr_simulator = ct.interconnect([controller_simulator, plant_simulator, u_summer], \n", + " inputs='r', outputs=['y', 'u'])\n", "\n", "# simulate\n", "t, y = ct.input_output_response(Gyr_simulator, time, step_input)\n", @@ -390,7 +391,7 @@ }, { "data": { - "image/png": "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xm41AAAAdGCUSOE1ly/IauYIAAAAHQhHKLzKrXy97QEAAPgro0QKr8VWvgAAAHRDOELhWZAVAACA7ghHKLySBVkBAADohlEihVcqmznSpKwGAACADgYtHHn++edz9tlnZ8qUKRkzZkw233zzTJ06NZdddlmWL1/eL3088cQT+cQnPpFdd901m2yySUaMGJGtttoq06dPzxVXXJHXXnutX/qhupTK1hxpUFYDAABAB42D0cmcOXPy/ve/P6+++mr715YvX5558+Zl3rx5ufrqq3Prrbdmxx13XO8+Lr/88px77rkplUrrfH3RokW5++67c/fdd+dLX/pSbr755vzN3/zNevdD9SkPR5rsVgMAAEAHAz5KfOSRR3L00Ufn1VdfzdixY3PxxRfnvvvuy5133pkPf/jDSZKnn346hx9+eJYuXbpefVx//fU5++yzUyqVMmLEiJxxxhmZM2dO/u///i/XXXdd9tlnnyTJc889l3e84x3rhDQUX8VWvspqAAAA6GDAZ46cfvrpWb58eRobG3P77bdn2rRp7c8dcMAB2WmnnXLOOefkqaeeyhe+8IVccMEFfe7joosuan98ww035PDDD2//+9SpU3PcccflPe95T2644YYsXLgw11xzTc4888wNuzCqRvmaI8pqAAAA6GhAZ47Mmzcvd999d5Lk5JNPXicYWeuss87KlClTkiRf/OIX09zc3Kc+lixZkscffzxJsvvuu68TjHT0b//2b+2P77vvvj71QXUr362myW41AAAAdDCgo8Qbb7yx/fFJJ53U+QnU1+f4449PkixevLg9TOmt1atXtz/ubs2SN77xje2PV61a1ac+qG7la440mjkCAABABwMajtxzzz1JkjFjxmSPPfbost1+++3X/vjee+/tUx9bbrllNt988yTJs88+22W73/72t+2PJ0+e3Kc+qG7lZTXWHAEAAKCjAV1z5Mknn0ySTJo0KY2NXXe1yy67VLymLz7ykY/kkksuycMPP5zbbrsthx56aEWbteuSNDQ05EMf+lCf+1iwYEG3zy9cuLDPx2RwlJfVNNqtBgAAgA4GLBxZuXJlFi1alCQZP358t20322yzjBkzJsuWLcv8+fP73NcnP/nJPPjgg7njjjty1FFH5eMf/3gOPPDAbLnllnn22Wfz1a9+NXPnzk1DQ0O+/OUvt69x0hcTJkzo82sYHipmjiirAQAAoIMBC0dee+219sdjx47tsf3acGR9tvMdO3ZsbrvttsyaNSuXXHJJLr/88lx++eXrtHn3u9+dc845J29729v6fHyqW3PFVr5mjgAAAPBXAzpzZK0RI0b02H7kyJFJkhUrVqxXfw8++GC+853vdLnuyB133JHXve51mTJlSjbZZJM+H7+nGS0LFy7M1KlT+3xcBl5L+YKs1hwBAACggwELR0aNGtX+uOOOMl1Zu4PM6NGj+9zX97///XzgAx/IqlWr8jd/8zf59Kc/nb//+7/PxhtvnPnz5+e73/1uLrroonz1q1/NT3/609xxxx15/etf36c+eioNYvhqtlsNAAAA3Riw+oKNN964/XFvSmWWLVuWpHclOB29+OKLOfHEE7Nq1aq8+c1vzn333Zcjjzwym2++eZqamrLjjjvmvPPOy49+9KPU1dXlV7/6VT7xiU/07WKoahUzRyzICgAAQAcDNkocNWpUttxyyyQ97/SyePHi9nCkrwufzp49u/21M2bMyJgxYzptd+CBB+bAAw9Mktxwww1ZvHhxn/qhOrW1tVWEI03KagAAAOhgQH+FvnZXmGeeeSalUqnLdk899VTFa3qr49a/u+++e7dt99hjjyRJa2trfv3rX/epH6pTc9lONUnSoKwGAACADgY0HNlnn32SrCmZeeihh7psN3fu3PbHe++9d5/6aGz867Ip3QUwSdLc3Nzp6yiu8lkjSdJktxoAAAA6GNBR4pFHHtn+eObMmZ22aW1tzbXXXpskGTduXKZPn96nPnbYYYf2x/fcc0+3bX/6058mSerq6jJx4sQ+9UN1am5trfia3WoAAADoaEDDkalTp2bfffdNklxzzTX5+c9/XtHm8ssvby+NOe2009LU1LTO87NmzUpdXV3q6upy4YUXVrz+8MMPT13dmsHuxRdfnD/84Q+dnstVV12VBx98MEny9re/PVtsscV6XxfVo6SsBgAAgB4MeG3Jl770pey9995ZsWJFDj744MyYMSPTp0/PihUrMnv27Fx11VVJksmTJ+ess87q8/F32WWXnHTSSfn617+eP/zhD9ltt91y+umnZ999923fynf27Nm57rrrkiQNDQ35j//4j369RoavUiczR5rsVgMAAEAHAx6O7Lbbbvnud7+bD3zgA1myZElmzJhR0Wby5MmZM2fOOtv/9sWVV16ZZcuW5bvf/W5efvnlfPKTn+y03ZgxY3LVVVdl//33X69+qD6dzhxRVgMAAEAHg/Ir9COOOCKPPvpozjjjjEyePDkbbbRRxo0blz333DOXXnppfvGLX2TSpEnrffyRI0dm9uzZueuuu3L88cdn8uTJGTNmTBobG7P55ptn2rRpOf/88/PUU0/lfe97Xz9eGcNdZ+GImSMAAAB0VNfW1lY5eqTPFixYkAkTJiRJ5s+fn/Hjxw/xGZEkz768NAdcPnedr/3m4kPtWAMAAFClBmL8bYRIoZU62cq30YKsAAAAdCAcodCaW9ZdkLWhvq59dyMAAABIhCMUXEvZzBGzRgAAACgnHKHQmluEIwAAAHRPOEKhVcwcsRArAAAAZYwUKbRS2ZojTQ1mjgAAALAu4QiF1lw2c6RBWQ0AAABlhCMUWkvrujNHGuu95QEAAFiXkSKFVr4gq7IaAAAAyglHKLRSi7IaAAAAuiccodBKreULsnrLAwAAsC4jRQrNzBEAAAB6Ihyh0MpnjjSaOQIAAEAZI0UKrVS2lW+TmSMAAACUEY5QaMpqAAAA6IlwhEJrbrEgKwAAAN0zUqTQWsrKahobzBwBAABgXcIRCq18zZFGZTUAAACUEY5QaOVrjjTWe8sDAACwLiNFCq1yK18zRwAAAFiXcIRCa66YOSIcAQAAYF3CEQqtpWLmiLc8AAAA6zJSpNDKZ440KasBAACgjHCEQitfc6RBWQ0AAABlhCMUWkvFVr7e8gAAAKzLSJFCsyArAAAAPRGOUGilFguyAgAA0D0jRQqt1GpBVgAAALonHKHQSmVlNRZkBQAAoJxwhEIr362mSVkNAAAAZYwUKbTyshoLsgIAAFBOOEKhKasBAACgJ8IRCk1ZDQAAAD0xUqTQymeONNqtBgAAgDLCEQqt2ZojAAAA9EA4QqG1lJXVNNZ7ywMAALAuI0UKTVkNAAAAPRGOUGjNLWaOAAAA0D0jRQqtpXzNETNHAAAAKCMcodCay8tqLMgKAABAGeEIhVYqX5C1wVseAACAdRkpUmjlZTVNZo4AAABQRjhCoZWX1TQIRwAAACgjHKHQSuW71SirAQAAoIyRIoVWKi+rsVsNAAAAZYQjFFp5OKKsBgAAgHLCEQqrra2tckFWZTUAAACUMVKksMpnjSRJo5kjAAAAlBGOUFills7CEW95AAAA1mWkSGGVWlsrvtZoQVYAAADKCEcorE5njghHAAAAKCMcobCaO5s5oqwGAACAMkaKFFb5TjWJmSMAAABUEo5QWJ0vyCocAQAAYF3CEQqruUVZDQAAAD0zUqSwOi2rMXMEAACAMsIRCqu5rKymvi6pF44AAABQRjhCYZXKdqtpbPB2BwAAoJLRIoVVKiuraTJrBAAAgE4IRyis8t1qGoQjAAAAdEI4QmGVl9U0KasBAACgE0aLFFb5zJHGBjNHAAAAqCQcobAqFmSt93YHAACgktEihWXmCAAAAL0hHKGwynerabQgKwAAAJ0QjlBYzS3KagAAAOiZ0SKF1VI+c0RZDQAAAJ0QjlBYFWuOKKsBAACgE8IRCqu5fLeaBm93AAAAKhktUlgVZTVmjgAAANAJ4QiF1WwrXwAAAHpBOEJhlexWAwAAQC8YLVJYpbKymiYzRwAAAOiEcITCKt+tpsGaIwAAAHRCOEJhtditBgAAgF4wWqSwmsvLaswcAQAAoBPCEQqrfEHWBguyAgAA0AmjRQrLgqwAAAD0hnCEwipfkLVROAIAAEAnhCMUVql8QVZlNQAAAHTCaJHCqpg5YkFWAAAAOiEcobDK1xxpUFYDAABAJ4QjFFZz2W41TcpqAAAA6ITRIoXV0mpBVgAAAHomHKGwmq05AgAAQC8IRyislvLdahq83QEAAKhktEhhlS/IauYIAAAAnRGOUFjlC7IKRwAAAOiMcITCqlyQ1dsdAACASkaLFFb5gqxNdqsBAACgE8IRCqtUtiBrQ723OwAAAJWMFimskpkjAAAA9IJwhMKq3K3G2x0AAIBKRosUVqmlvKzGzBEAAAAqCUcorPKZI8pqAAAA6IxwhMIqX3PEzBEAAAA6IxyhsMp3q2lq8HYHAACgktEihVW5IKuZIwAAAFQSjlBY5WU1jdYcAQAAoBPCEQqrvKzGVr4AAAB0xmiRwjJzBAAAgN4QjlBIbW1tnaw54u0OAABAJaNFCqmlLBhJzBwBAACgc8IRCql81kiSNJk5AgAAQCeMFimk5pbWiq81mDkCAABAJ4QjFFJnZTVN9cIRAAAAKglHKKTmlspwpEE4AgAAQCeEIxRSqbWyrKaxwdsdAACASkaLFFKpk5kjTdYcAQAAoBPCEQqps91qlNUAAADQGeEIhVTqZLcaW/kCAADQGaNFCql85kh9XVJv5ggAAACdGLRw5Pnnn8/ZZ5+dKVOmZMyYMdl8880zderUXHbZZVm+fHm/9nXHHXfkxBNPzKRJkzJmzJhsuummmTx5ct773vfmq1/9apYuXdqv/TH8lK850mjWCAAAAF1oHIxO5syZk/e///159dVX27+2fPnyzJs3L/PmzcvVV1+dW2+9NTvuuOMG9bN48eKcdNJJuemmmyqeW7JkSX7zm9/kBz/4QaZNm5a//du/3aC+GN7Kd6tptBgrAAAAXRjwcOSRRx7J0UcfneXLl2fs2LE577zzMn369KxYsSKzZ8/O1772tTz99NM5/PDDM2/evIwdO3a9+nn11Vdz0EEH5aGHHkqSHH744Tn22GMzadKktLS05Lnnnsu8efPy/e9/vz8vj2GqvKymUUkNAAAAXRjwcOT000/P8uXL09jYmNtvvz3Tpk1rf+6AAw7ITjvtlHPOOSdPPfVUvvCFL+SCCy5Yr34+8YlP5KGHHkpjY2O+9a1v5Zhjjlnn+b333jvve9/78oUvfCEtLS0bdE0Mf80t5TNHlNUAAADQuQEdMc6bNy933313kuTkk09eJxhZ66yzzsqUKVOSJF/84hfT3Nzc537uvffefPOb30ySfOpTn6oIRjqqq6tLY+OgVBMxhFrMHAEAAKCXBjQcufHGG9sfn3TSSZ2fQH19jj/++CRr1gxZG6b0xVe+8pUkydixY3PWWWf1+fUUT/mCrE1mjgAAANCFAR0x3nPPPUmSMWPGZI899uiy3X777df++N577+1TH6tXr25fgPXQQw9tX7OkVCrlueeey/PPP5/Vq1f39dSpcuVlNQ1mjgAAANCFAQ1HnnzyySTJpEmTui1l2WWXXSpe01uPPPJIVq5cmSSZNm1aXnjhhZx00kkZN25cJk6cmO233z6bbrppDjvssNx3333rcRVUo4qyGrvVAAAA0IUBW3xj5cqVWbRoUZJk/Pjx3bbdbLPNMmbMmCxbtizz58/vUz9PPPHEOn3uuuuu7f12/Pptt92WH//4x7n88stz+umn96mPJFmwYEG3zy9cuLDPx2TgNFtzBAAAgF4asHDktddea3/cm+1514YjS5cu7VM/r7zySvvjT3/601m1alXe+c535sILL8xb3vKWvPrqq/nBD36Qc889N0uWLMmZZ56ZnXfeOYceemif+pkwYUKf2jO0SuW71dRbcwQAAIDODdiIcW2pS5KMGDGix/YjR45MkqxYsaJP/Sxbtqz98apVq3LEEUfkpptuyh577JGRI0dm6623zkc/+tHMmTMn9fX1aWtryznnnJO2trZujkq1K7WWL8hq5ggAAACdG7CZI6NGjWp/3JsFUVetWpUkGT169Hr3kySf//znU9/JLIF99tkn7373u/P9738/jz/+eB5//PHsuuuuve6np3KfhQsXZurUqb0+HgOrfLcaC7ICAADQlQELRzbeeOP2x70plVk7A6Q3JThd9bPDDjtk55137rLtIYccku9///tJknnz5vUpHOlp3RSGl1JrWVmNrXwBAADowoCNGEeNGpUtt9wySc+LmS5evLg9HOnr2h4d2/cUYHRs+9JLL/WpH6pL+cwRZTUAAAB0ZUB/nT5lypQkyTPPPJNSqdRlu6eeeqriNb315je/uf1xS0tLt207Pt/d1sJUv/KZIw0WZAUAAKALAzpi3GeffZKsKZl56KGHumw3d+7c9sd77713n/rYfvvt84Y3vCFJ8tvf/rbbth2f32677frUD9WlYkFWa44AAADQhQENR4488sj2xzNnzuy0TWtra6699tokybhx4zJ9+vQ+9/Oe97wnSfLiiy/mvvvu67LdDTfc0P5433337XM/VI/ysppGZTUAAAB0YUDDkalTp7aHENdcc01+/vOfV7S5/PLL8+STTyZJTjvttDQ1Na3z/KxZs1JXV5e6urpceOGFnfZz+umnt+9a8//+3/9bZ3vftb71rW/l7rvvTpIcfvjhFlgtuFJL2YKsymoAAADowoCPGL/0pS9l9OjRKZVKOfjgg/PZz342999/f37yk5/klFNOyTnnnJMkmTx5cs4666z16uMNb3hDPvOZzyRJHnrooUydOjXf+MY38tBDD+Wuu+7Kxz/+8Zx44olJkk022SRXXHFFv1wbw1d5WY2ZIwAAAHRlwFcl3W233fLd7343H/jAB7JkyZLMmDGjos3kyZMzZ86cdbbl7at/+Zd/ySuvvJJLL700TzzxRHsY0tHWW2+dG2+8MTvttNN690N1qAhHzBwBAACgC4MyYjziiCPy6KOP5owzzsjkyZOz0UYbZdy4cdlzzz1z6aWX5he/+EUmTZq0wf189rOfzc9+9rN88IMfzMSJEzNy5Mhsuumm2WuvvXLRRRfl17/+daZNm9YPV8Rw11xRVmPmCAAAAJ2ra2tra+u5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akyOAgAAoHsDPnJ85JFHcvTRR+fVV1/N2LFjc/HFF+e+++7LnXfemQ9/+MNJkqeffjqHH354li5d2m/9/uhHP8oPfvCDbL311v12TIa/5rLdaswcAQAAoCcDHo6cfvrpWb58eRobG3P77bdnxowZmTZtWg444IBcddVV+dznPpckeeqpp/KFL3yhX/pcunRpTj311CTJZZdd1i/HpDpUzhwRjgAAANC9AQ1H5s2bl7vvvjtJcvLJJ2fatGkVbc4666xMmTIlSfLFL34xzc3NG9zvjBkzMn/+/EyfPj0f/OAHN/h4VI+KrXztVgMAAEAPBnTkeOONN7Y/Pumkkzo/gfr6HH/88UmSxYsXt4cp6+uBBx7If/3Xf2XEiBH56le/ukHHovqUyspqGpTVAAAA0IMBDUfuueeeJMmYMWOyxx57dNluv/32a3987733rnd/pVIpH/nIR9La2pp//dd/zc4777zex6I6lcpnjiirAQAAoAcDulvNk08+mSSZNGlSGhu77mqXXXapeM36uOyyy/LII4/kjW98Y2bMmLHex+nMggULun1+4cKF/dof66d85ojdagAAAOjJgIUjK1euzKJFi5Ik48eP77btZpttljFjxmTZsmWZP3/+evX37LPP5jOf+UyS5Morr8yoUaPW6zhdmTBhQr8ej4FRPnNEWQ0AAAA9GbBfq7/22mvtj8eOHdtj+zFjxiTJem/ne8opp2TFihU55phjcvDBB6/XMah+pRZlNQAAAPTNgM4cWWvEiBE9th85cmSSZMWKFX3u69prr80dd9yRTTbZJFdccUWfX98bPc1oWbhwYaZOnTogfdN7pdbyBVmV1QAAANC9AQtHOpa1rF69usf2q1atSpKMHj26T/0sWrQoZ511VpLk4osvzjbbbNOn1/dWT6VBDA8VM0eU1QAAANCDAfu1+sYbb9z+uDelMsuWLUvSuxKcjs4888wsWrQoe+65Zz72sY/17SQpnPI1RyzICgAAQE8GdObIlltumUWLFvW408vixYvbw5G+LHz6xz/+Md/85jeTJAcccECuv/76btu/9NJLmT17dpJkhx12yNve9rZe90V1qNitxswRAAAAejCgW/lOmTIl99xzT5555pmUSqUut/N96qmn1nlNb3Us1/nc5z7XY/snn3wyxx13XJLkhBNOEI4UUHPFzBHhCAAAAN0b0JqD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2cyRBmU1AAAA9JJwhEIoD0ea7FYDAABALxlBUgilsrIaM0cAAADoLeEIhVAq363GmiMAAAD0knCEQii1li/I6q0NAABA7xhBUggWZAUAAGB9CUcohPKyGlv5AgAA0FvCEQqhvKym0W41AAAA9JIRJIVQsSCrshoAAAB6SThCIZSvOdJoQVYAAAB6yQiSQii1lJXVWHMEAACAXhKOUAjN5TNHlNUAAADQS8IRCqGlIhzx1gYAAKB3jCCpem1tbRXhiK18AQAA6C3hCFWvuWynmiRpUFYDAABALwlHqHrls0aSpMluNQAAAPSSESRVr7m1teJrZo4AAADQW4MWjjz//PM5++yzM2XKlIwZMyabb755pk6dmssuuyzLly/foGMvWbIks2fPzoc//OHsvvvuGTduXEaMGJGtttoq+++/fy677LL8+c9/7p8LYdgpdVJWYytfAAAAequura2tcmTZz+bMmZP3v//9efXVVzt9fuedd86tt96aHXfcsc/Hvu2223LUUUdl1apV3bZ73etel+985zuZPn16n/vojQULFmTChAlJkvnz52f8+PED0g+VXnptZaZefOc6X/vF+QdlszEjhuiMAAAAGCgDMf4e8JkjjzzySI4++ui8+uqrGTt2bC6++OLcd999ufPOO/PhD384SfL000/n8MMPz9KlS/t8/D/96U9ZtWpV6uvrc8ghh+SKK67IXXfdlYcffjg333xzjjnmmCTJiy++mHe+85355S9/2Z+XxzDQ2cyRBjNHAAAA6KXGge7g9NNPz/Lly9PY2Jjbb78906ZNa3/ugAMOyE477ZRzzjknTz31VL7whS/kggsu6NPxm5qacsopp2TGjBl5wxvesM5zu+22W4444ojsvffe+X//7/9l+fLlOeuss3LnnXd2cTSqUacLstZbTgcAAIDeGdCymnnz5mXq1KlJklNOOSX//d//XdGmtbU1b3nLW/Lkk09ms802y4svvpimpqZ+P5e99torDz74YOrr6/PSSy9liy226NfjK6sZOs++vDQHXD53na/95uJD7VgDAABQQFVXVnPjjTe2Pz7ppJM6P4H6+hx//PFJksWLF+fuu+8ekHPZf//9k6wJY373u98NSB8MjVInM0ca7VYDAABALw1oOHLPPfckScaMGZM99tijy3b77bdf++N77713QM6l44Kt9UouCqV8zZGG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MmbMmIwdOzYjRowY6lNKIhyhylWsOaKsBgCAKtTW1pZFixZl0aJFQ30qMODWhoAvvvhittpqq2yxxRapqxvasZxwhKpWvuZIo91qAACoQgsXLsyrr766ztfq6urS0NAwRGcEA6OlpSVtbX8dx7388stZvXp1tt122yE8K+EIVa58K18zRwAAqDYrV65cJxjZYostsskmm2TkyJFD/tt06G9tbW1ZtWpVlixZkj/96U9JkldffTVbbLFFRo4cOWTn5dfsVLVmW/kCAFDl/vznP7c/3nrrrbP11ltn1KhRghEKqa6uLqNGjWp/r6+1ePHiITwr4QhVrqVi5oi3NAAA1WX58uXtj8eNGzd0JwKDrOP7vePPwVAwkqSqlc8caTJzBACAKtPS0pIkaWxstMYINaWhoaH9Pb/252CoCEeoauW71TRYcwQAAKBqDJfyMeEIVa2irMZuNQAAAPSRkSRVrbl8K18zRwAAAOgj4QhVrdRiQVYAAAA2jJEkVa3UakFWAAAANoxwhKpmQVYAAKCvZs2albq6utTV1eX3v//9UJ8Ow4BwhKpWOXPEWxoAAIC+MZKkqlWuOWLmCAAAQEf7779/6urqsv/++w/1qQxbwhGqWvnMkQZrjgAAAD048cQT09bWlra2tkycOHGoT4dhQDhCVasoq7FbDQAAAH1kJElVqyirMXMEAACAPhKOUNWay3arseYIAAD0o9bWZNmyNf8tkO52qylfn+MPf/hDzjzzzEyaNCmjR4/OFltskUMOOSS33XZbl8f//e9/3378WbNmJUm+973v5R/+4R+y9dZbZ/To0dlll11y7rnnZvHixV0e58QTT0xdXV2PpT9dXc/a18+dOzdJMnfu3PZ2a/8oK1pDOEJVa2ktnzniLQ0AABvskUeSE05INt44GTt2zX9POGHN12vIvffem7e+9a254oor8tvf/jYrV67MK6+8kttvvz2HHXZYLrvssl4d5+STT87RRx+dO++8My+//HJWrlyZp59+Opdeemne/OY354knnhjgK6EnRpJUtfI1R8wcAQCADfSd7yR77plce22yfPmary1fvubve+655vkasHDhwhx11FFpaGjIJZdcknvvvTcPPPBAvvCFL2TcuHFJkvPOOy+/+tWvuj3OlVdema9//euZOnVqvvOd7+TBBx/MrbfemmOOOaa9n0MOOSRLlizp92u4+OKL89hjj2XPPfdMkuy555557LHH1vlz++2393u/1ahxqE8ANkSzrXwBAKgFra3Jn/408P08/nhy/PFJqdT586XSmudf//rkLW8Z2HPZYotkCDdc+PWvf53tt98+P/vZz7Lddtu1f32vvfbKXnvtlb//+79PqVTKVVddlS996UtdHmfevHk57LDDctNNN6Wx8a9D8EMPPTRvfvObc8EFF2TBggW56KKL8vnPf75fr2G77bbLdtttlzFjxiRJxowZk7cM9H2rUsIRqlpL+cwRZTUAABTRn/6UbL31UJ/FGqVScsABA9/PSy8lW2018P104z//8z/XCUbW2mefffK2t70t999/f+65555ujzFy5Mh87WtfWycYWeuTn/xkrr/++jz++OO55ppr8u///u8ZOXJkv50/vWckSVWzICsAADAQxo0bl8MPP7zL5/fYY48kybPPPtvtcQ4++OBsu+22nT5XX1+fE044IUmyePHiPPzww+t5tmwo4QhVrWRBVgAAYADstNNOqe+mrGfzzTdPkrz22mvdHmevvfbq9vmpU6e2P3788cf7cIb0JyNJqlqpbOZIU4OZIwAAwIbbaKONun1+bXDS2sM2x1v3UA71ute9rv3xK6+80suzo79Zc4SqVr5bTYOyGgAAimiLLdaswTHQPv7x5Prre253zDHJf/7nwJ7LFlsM7PEHSV1d92OUtra2bp9ncAhHqGoVC7IO4WrWAAAwYOrrB2dx0hkzkhtu6Hq3miRpbEzOO2/IF0utFi+++GK3z7/UIfRaW6qzVm9npyxbtmw9z461jCSpauVb+SqrAQCADfDWtybXXrsmAOlMY+Oa59/61sE9ryo2b968Xj9fvs3uxhtvnCT585//3O0xnn766W6f72n2CsIRqlz5miPKagAAYAMdd1zy4IPJCScka9fd2GijNX9/8ME1z9Nrt99+exYuXNjpc62trfnGN76RJNlss82y++67r/P8DjvskGTNoq9dBSCrV6/OD37wg27PYdSoUUmSVatW9enca4lwhKpWvuZIk91qAABgw731rcmsWclrryVLl67576xZZoysh1WrVuWUU05JS0tLxXOXXHJJHnvssSTJP//zP2fkyJHrPL/ffvu1P7788ssrXt/W1pbTTjstf/zjH7s9h2222SbJmm2HrXHSOWuOUNUqtvI1cwQAAPpPfX0yZsxQn0VV23PPPfOjH/0oe++9d84444zstNNOeemll/KNb3wjs2fPTpKMHz8+559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95l+fwd3/3d5k5c2ZeeumlnHnmmfnABz6QTTfdNEnS1NSU7bfffmAuvooIR6hq5WU1jdYcAQAAhpFTTz01c+fOzaxZs3LsscdWPL/NNtvkxz/+cXtYUW7mzJnZb7/92gOVtWU4a5155pnZdddduw1Hjj322Hz2s5/Ns88+my9+8Yv54he/2P7c9ttvn9///vfrdW1FogaBqlY5c8RbGgAAGF5mzpyZ6667Lvvvv3+22GKLjBw5MpMnT84555yTX/3qV3nTm97U5Wt32WWXPPzww/noRz+a7bffPiNGjMhWW22Vd7zjHZkzZ06n5Tblxo4dm/vuuy+nnXZapkyZko3WriVDu7o2BUf9YsGCBZkwYUKSZP78+Rk/fvwQn1FtmDTj1nXWHbnlE/vkLdt1nrgCAMBw9Jvf/CalUimNjY3Zaaedhvp06Ae///3v2xdTnTlzZk488cShPaFhbH3e/wMx/vZrdqpWW1ubBVkBAADYYEaSVK2W1spJT9YcAQAAoK+EI1St8lkjid1qAAAA6DvhCFWruaW14muNymoAAADoIyNJqlZnZTVNZo4AAADQR41DfQKwvppbKsORBuEIAAAwxCZOnBgbw1YXM0eoWp0vyOotDQAAQN8YSVK1OltzpMluNQAAAPSRcISq1dluNcpqAAAA6CvhCFWrpbWTmSP13tIAAAD0jZEkVat8Qdb6uqTezBEAAAD6SDhC1SqVhSONZo0AAACwHowmqVqlsrKaRouxAgAAsB6EI1St8gVZLcYKAADA+hCOULXKt/JtavB2BgAAoO+MJqlaLa3la46YOQIAAEDfCUeoWpULsgpHAAAA6DvhCFWrvKymUVkNAAAA68FokqpVUVZjtxoAAADWg3CEqtVszREAAAD6gXCEqtXSWlZWU+/tDAAAQN8ZTVK1mssWZG1SVgMAAFSRiRMnpq6uLieeeOJQn0qf7L///qmrq8v+++8/1KfSb4QjVK3y3WoalNUAAACwHoQjVK2Kshq71QAAALAejCapWspqAAAA6A/CEapWqWzmSIMFWQEAoF+1trZl+epSWst2iiyK1atX58orr8z06dOz1VZbZcSIEXn961+fww47LN/61rfSWjbmWKu3a25ceOGFqaurS13dur/IXfv65557LknyjW98o73d2j8dj/373/++/euzZs1Kknzve9/LP/zDP2TrrbfO6NGjs8suu+Tcc8/N4sWLuzyfE088MXV1dZk4cWK35z1r1qz2/n7/+99XvH7u3LlJkrlz51acd0/HHq4ah/oEYH2Vyv6BbrLmCAAA9Isn/rgkV9/7bG577IWsaG7J6KaGHLrr6/OhfXbMm7bdZKhPr18899xzOfTQQ/Pkk0+u8/UXX3wxt912W2677bb8z//8T2666aZsvvnmQ3SWnTv55JPz9a9/fZ2vPf3007n00ktz7bXX5o477sib3vSmITq76uRX7VQtC7ICAED/u+mXf8g/fuXe3PDwH7KiuSVJsqK5JTc8vObrN/3yD0N8hhtu6dKlOeCAA9qDkSOPPDI333xzHnzwwXzve9/LfvvtlyS599578853vjMtLS392v/MmTPz2GOPZdttt02SvOtd78pjjz22zp+ZM2d2+torr7wyX//61zN16tR85zvfyYMPPphbb701xxxzTJJk4cKFOeSQQ7JkyZJ+Peckufjii/PYY49lzz33TJLsueeeFed9++2393u/g8HMEapWqWXdKW5NFmQFAKCgWlvbsnj56gHv59cvvpYzr38kLV2U0ZRa23Lm9Y9k641HZvLrNh7Qc9lsoxGpH6BfgH7605/Os88+myT51Kc+lYsuuqj9uT322CPvec978sEPfjDf/va38/Of/zxXXXVVPvrRj/Zb/zvssEOSpKmpKUkybty4vOUtb+nVa+fNm5fDDjssN910Uxob/zqkP/TQQ/PmN785F1xwQRYsWJCLLroon//85/vtnJNku+22y3bbbZcxY8YkScaMGdPr8x7uBi0cef755/PlL385c+bMyfPPP5+RI0dm0qRJOfroo/Oxj30sG220Ub/0M3v27MycOTOPPvpoFi9enNe//vXZd999c+qpp+btb397v/TB8FBeVtNoQVYAAApq8fLV2ePf7xjq00iStLS25biv/d+A9/PQp/4hW4wd2e/HXbVqVa6++uokyZve9KZceOGFFW3q6upy5ZVX5n//93/zpz/9KV/5ylf6NRzZECNHjszXvva1dYKRtT75yU/m+uuvz+OPP55rrrkm//7v/56RI/v/e1hEg/Kr9jlz5uRv/uZvcvnll+epp57K8uXLs3jx4sybNy//8i//kt133709tVtfK1euzBFHHJHjjjsut99+e1544YWsWrUqzz33XL71rW9l7733XicNpPqVhyPKagAAgJ489NBD+fOf/5xkzQKjDQ0NnbbbZJNNcvTRRydJnnjiiSxcuHCwTrFbBx98cHs5Trn6+vqccMIJSZLFixfn4YcfHsxTq2oDHo488sgjOfroo/Pqq69m7Nixufjii3PfffflzjvvzIc//OEkaxaOOfzww7N06dL17ufkk0/OLbfckiSZPn16brzxxjzwwAO55ppr8sY3vjGtra254IIL2hNCql9zeVmN3WoAAIAePP744+2P3/a2t3XbtuPzHV83lPbaa69un586dWr74+FyztVgwMtqTj/99CxfvjyNjY25/fbbM23atPbnDjjggOy0004555xz8tRTT+ULX/hCLrjggj73MXfu3Fx33XVJkiOOOCI//OEP29O/vfbaK//4j/+YPfbYI88//3zOOeecvPe97824ceP65fqqXWtrW1aWWjKqsaFX9XzDqX15HaSyGgAAoCevvPJK++PXve513bZ9/etf3+nrhtLWW2/d7fMdr2m4nHM1GNBwZN68ebn77ruTrJnZ0TEYWeuss87KzJkz8+STT+aLX/xizjvvvPZFaXrrc5/7XJKkoaEhV155ZcW0qC233DKXXnppjjvuuCxevDjXXHNNzjrrrPW7qILo69Zcw7H9T3+9aJ2v3f/sn/LEH5cUZmsxAABYa7ONRuShT/3DgPdzwU2/ypzHei4feeffbJNP/+ObB/RcNttoxIAeP1mztkh32to6X5h2KFXjOVeDAQ1HbrzxxvbHJ510Uqdt6uvrc/zxx+e8887L4sWLc/fdd+eggw7qdR9Lly7NnXfemSQ56KCDMn78+E7bvfvd784mm2ySJUuW5IYbbqjpcOSmX/4hZ13/yDprdqzdmuvmX/4xlx/91rzrb7erqvZJ8tuXl+Ufv3JvRXsAAKh29fV1A7I4ablTp0/Kj3/1QsVn7Y4a6+vysf0nDcr5DITNN9+8/fELL7yQyZMnd9n2xRdf7PR19X8p6W9tba14TUfLli1b39Ps1Tl15qWXXmp/3PGck6E97+FuQBdpuOeee5Ks2d5njz326LLd2j2kkzX7SPfFAw88kFWrVlUcp9yIESPad6t54IEH0tzc3Kd+iuKJPy7pNFhYa+3WXD956qXMf2V5fvLUSzmzytqfdf0jeeKP/b+nNwAAFN2btt0klx/91jR2UeLeWF+Xy49+a1XP1u649ez//V/3u+488MADnb5u443XbGO8ePHibl//9NNPd/t8T7NAOjNv3rxeP1++ze7a8167IG1XBuK8h7sBnTny5JNPJkkmTZrU6TZDa+2yyy4Vr+lrH+XH6aqf22+/PaVSKb/5zW/ypje9qdf9LFiwoNvnh8vKxT25+t5nu02BkzVreZw0q/sfuOHcvtTalmvu/V0uP/qtvX4NAACwxrv+drvstPXGuebe3+XWxxa2l70ftus2OXmfHao6GEmSPfbYI+PGjcuf//znfOMb38iZZ57Z6Y41r732Wq6//voka7b83Wabbdqf22GHHZIkv/71r/Paa6+1hw4dvfzyy7njju63Xx41alSStP/Cvzduv/32LFy4cJ3zWau1tTXf+MY3kiSbbbZZdt9993WeX3ver732Wp5++unsvPPOFcdYvXp1fvCDH/T7eQ93AzZzZOXKlVm0aM2aEF2Vuqy12WabZcyYMUmS+fPn96mfju176mfChAmdvq43JkyY0O2fjisCD1etrW257bEXhvo0BsWtjy1Maw8hEAAA0Lm1M0h+9elD8sRnDsmvPn1I1c8YWWvkyJH50Ic+lCT51a9+lU9/+tMVbdra2vLxj3+8fUz78Y9/fJ3n11YtrF69Ov/5n/9Z8frm5uacfPLJWbFiRbfnsjbg+O1vf9vr81+1alVOOeWUtLS0VDx3ySWX5LHHHkuS/PM//3NGjly39KljtcXll19e8fq2tracdtpp+eMf/9ir83722WcLs8bJgM0cee2119ofjx07tsf2Y8aMybJly/q8nW9f+lkbwCTZoG2Dq9XKUktWNFf+ABXRiuaWrCy1ZKMRA74hEwAAFFZ9fV0hP1NfcMEFueGGG/Lss8/moosuyuOPP55//ud/zrbbbpvf/e53+cpXvtK+uci0adPykY98ZJ3XH3744dl+++3z3HPP5fzzz8+iRYvy7ne/O6NGjcrjjz+eL3/5y/nlL3+Zt73tbd2W7vzd3/1dfvKTn2TevHm55JJLcuihh7aPW0ePHp3ttqtcS3HPPffMj370o+y9994544wzstNOO+Wll17KN77xjcyePTvJmokD559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95t+c9c+bMvPTSSznzzDPzgQ98IJtuummSpKmpKdtvv333N2AYGrB3+cqVK9sfjxjR8yrDaxOtnpK1DemnY2rW1356mmmycOHCYT97ZFRjQ0Y3NdREQDK6qSGjGiunxgEAAGy88ca58847c+ihh+app57KD3/4w/zwhz+saLf33nvn5ptvrii7GTFiRL71rW/lHe94R5YtW5YrrrgiV1xxRfvzDQ0N+cIXvpA///nP3YYjH/3oR/PVr341r7zySs4777ycd9557c/tt99+7QFNR6eeemrmzp2bWbNm5dhjj614fptttsmPf/zj9rCi3MyZM7Pffvu1Bypry3DWOvPMM7Prrrt2G44ce+yx+exnP5tnn302X/ziF/PFL36x/bntt98+v//977t87XA1YGU1a2uQkjVTjXqytlZp9OjRA9ZPx3qovvYzfvz4bv90Vu813NTX1+XQXV/fc8MkR/7ttnnyM+/Iu/5226psf9iu26S+i0WkAAAAJk6cmEceeSRf+cpXst9++2WLLbZIU1NTXve61+Ud73hHvvnNb+anP/1pxY4va+2zzz556KGH8sEPfjDbbrttmpqass022+Q973lPfvrTn+b000/v8Ry22267PPDAAzn55JMzadKkdca33Zk5c2auu+667L///tliiy0ycuTITJ48Oeecc05+9atfdbu+5i677JKHH344H/3oR7P99ttnxIgR2WqrrfKOd7wjc+bM6bTcptzYsWNz33335bTTTsuUKVOy0UYb9eq8h7MBmznScUGa3pSwrN0qqDclOOvbT8ftiPraT1F8aJ8dc/Mv/9jj1lwf+fs3ZvSIhpzy92/MnEcXVl37k/fZocvnAQAAkjUzQE499dSceuqp6/X6nXfeOddee22Xz1944YW58MILuz3GG9/4xlx99dV97vu4447Lcccd1+fXJWtCmSuvvLLL50888cSceOKJ3R7jda973TozRqrdgM4c2XLLLZP0vNPL4sWL24OLjoum9kbHRVh76qdjaUxf+ymKvm7NVe3tAQAAoCcDurLOlClTcs899+SZZ55JqVTqcjvfp556ap3X9EXH6UIdj9NdP42NjZk0aVKf+imSvm7NVe3tAQAAoDsD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jl22e+Mb39j+eNWqVX3qg6Hncxgd+RxWLD6HDV/CkSp0zz33JEnGjBmTPfbYo8t2++23X/vje++9t099PPDAA+0fpjoep9yIESPy9re/vf01zc3NfeqHrg3Gfe6tjh+s6+v9s9GfBvs+l0qlfOQjH0lra2v+9V//NTvvvPN6H4veG4z7vHr16vZ1Rg499NCMHTs2yZp7/txzz+X5559fZ2BN/xuM+7zllltm8803T5I8++yzXbb77W9/2/548uTJfeqDoedzGB35HFYcPocNb366qtCTTz6ZJJk0aVIaGxu7bLfLLrtUvKavfZQfp7t+SqVSfvOb3/SpH7o2GPe5t+bOnZskaWxszKRJkwakj1o12Pf5sssuyyOPPJI3vvGNmTFjxnofh74ZjPv8yCOPZOXKlUmSadOm5YUXXshJJ52UcePGZeLEidl+++2z6aab5rDDDst99923HldBTwbr5/kjH/lIkuThhx/Obbfd1mmbiy66KEnS0NCQD33oQ33ug6Hlcxgd+RxWHD6HDW/CkSqzcuXKLFq0KEl63Glgs802y5gxY5Ik8+fP71M/Hdv31M+ECRM6fR3rb7Duc2/MmTMnjz76aJLkkEMOaZ++y4Yb7Pv87LPP5jOf+UyS5Morr8yoUaPW6zj0zWDd5yeeeGKdPnfdddfMmjUry5YtW+frt912W/bdd9988Ytf7NPx6d5g/jx/8pOfzD/8wz8kSY466qicffbZue222zJv3rx897vfzf7775/vf//7aWhoyJe//OVMmTKlz30wtHwOYy2fw4rD57DhTzhSZV577bX2x2unTHdn7Yevvm4X2Jd+1vaxPv3QucG6zz155ZVXcuqppyZZ89vHtb+JpH8M9n0+5ZRTsmLFihxzzDGDulVdrRus+/zKK6+0P/70pz+dRYsW5Z3vfGcefPDBrFy5Mi+++GKuvPLKbLLJJmltbc2ZZ57Z5awD+m4wf57Hjh2b2267LV/72tcyfvz4XH755TnssMMyderUHHvssZk7d27e/e5352c/+1k+9rGP9fn4DD2fw0h8Disan8OGP+FIlVk7ZTpZU2fak5EjRyZJVqxYMWD9rO1jffqhc4N1n7vT0tKS97///XnuueeSJJ/61Key22679dvxGdz7fO211+aOO+7IJptskiuuuKLPr2f9DdZ97jhDZNWqVTniiCNy0003ZY899sjIkSOz9dZb56Mf/WjmzJmT+vr6tLW15ZxzzklbW1uf+qFzg/3v9oMPPpjvfOc7Xa47cscdd+Qb3/hGlixZsl7HZ2j5HIbPYcXic1h1EI5UmY7Tr3qzsN7aBZxGjx49YP10XCSqr/3QucG6z9352Mc+lv/93/9Nkhx++OE5//zz++3YrDFY93nRokXtO5dcfPHF2Wabbfr0ejbMUPy7nSSf//znO124b5999sm73/3uJMnjjz+exx9/vE/90LnB/Hf7+9//fvbff//cdddd2XXXXfPDH/4wf/rTn7J69er89re/zX/8x3+kubk5X/3qV/N3f/d3eeGFF/rcB0PL5zB8DisOn8Oqh3Ckymy88cbtj3szdXLtbxJ7M8V3ffvp+NvKvvZD5wbrPnflvPPOy1VXXZVkzUDqe9/7XhoaGvrl2PzVYN3nM888M4sWLcqee+5piv0QGIp/t3fYYYduV8A/5JBD2h/PmzevT/3QucG6zy+++GJOPPHErFq1Km9+85tz33335cgjj8zmm2+epqam7LjjjjnvvPPyox/9KHV1dfnVr36VT3ziE327GIacz2G1zeewYvE5rHp0vZQ6w9KoUaOy5ZZbZtGiRVmwYEG3bRcvXtz+P8yOi3X1RsfFvxYsWJA999yzy7YdF//qaz90brDuc2cuvfTSXHLJJUmS3XffPbfccovfRA2QwbjPf/zjH/PNb34zSXLAAQfk+uuv77b9Sy+9lNmzZydZM8B+29ve1uu+6Nxg/Tx3bN+XBRxfeumlPvVD5wbrPs+ePbv9tTNmzFhnvYmODjzwwBx44IG54447csMNN2Tx4sXZbLPN+tQXQ8fnsNrlc1ix+BxWXYQjVWjKlCm555578swzz6RUKnW5XeBTTz21zmv64k1velOnx+muH9uL9a/BuM/lrrzyypx77rntx/rxj3+cTTfddIOOSfcG+j53nI79uc99rsf2Tz75ZI477rgkyQknnOB/yv1kMH6e3/zmN7c/bmlp6bZtx+e723KWvhmM+9xxi9fdd9+927Z77LFH7rjjjrS2tubXv/61n+cq4nNYbfI5rHh8Dqsuymqq0D777JNkzTTKhx56qMt2a/dET5K99967T33stdde7QuAdTxOudWrV+f++++veA0bbjDuc0ff/OY38/GPfzxJsuOOO+aOO+7Illtuud7Ho3cG+z4zNAbjPm+//fZ5wxvekCT57W9/223bjs9vt912feqHrg3Gfe4YuJRKpW7bNjc3d/o6hj+fw2qPz2Ew9IQjVejII49sfzxz5sxO27S2tubaa69NkowbNy7Tp0/vUx8bb7xxDjzwwCRrVrzvaorwDTfc0L4S/lFHHdWnPujeYNzntW644YacdNJJaWtry/jx43PnnXdm2223Xa9j0TcDfZ8nTpyYtra2Hv+std9++7V/bdasWet1TVQarJ/n97znPUnWrEtx3333ddnuhhtuaH+877779rkfOjcY93mHHXZof3zPPfd02/anP/1pkqSuri4TJ07sUz8MLZ/DaovPYcXlc1iVaaMq7bvvvm1J2hobG9vuu+++iuc/97nPtSVpS9L2b//2bxXPz5w5s9vn29ra2u688872Nv/4j//YViqV1nn+5ZdfbnvDG97QlqRt3Lhxba+88kp/XBodDMZ9/vGPf9w2YsSItiRtW2+9ddtTTz3Vz1dBTwbjPvdk7ev322+/9Xo9PRuM+/zcc8+1jRo1qi1J2x577NG2dOnSijbf/OY3249z+OGHb+hlUWag7/OTTz7ZVldX15akbbvttmtbsGBBp+fxP//zP+3HmTZt2oZeFt343e9+1/69PuGEE3r1Gp/Dqs9A3Wefw4aXgbrPPfE5bHgwx7JKfelLX8ree++dFStW5OCDD86MGTMyffr0rFixIrNnz25f4Xry5MntW0f11QEHHJBjjz02s2fPzs0335yDDjoop59+erbddts89thjufjii/P8888nSS655BILvQ2Agb7P999/f4466qisXr06TU1NueKKK9Lc3Nzt1p7jx4/PuHHj1veS6MRg/Dwz9AbjPr/hDW/IZz7zmZxzzjl56KGHMnXq1Jxzzjl5y1vekldffTU33HBD/vu//ztJsskmm+SKK67ot+tjjYG+z7vssktOOumkfP3rX88f/vCH7Lbbbjn99NOz7777ZuONN878+fMze/bsXHfddUmShoaG/Md//Ee/XmOtu/fee/PMM8+0/33RokXtj5955pmK3/aeeOKJ69WPz2FDazDus89hQ2+wfp6pEkOdzrD+br755rZNNtmkPWks/zN58uS23/zmN52+trcJ5/Lly9sOO+ywLvuor69f74SU3hnI+/xv//ZvXR63qz8zZ84c2AuuUYPx89ydta/3G4uBNVj3+dxzz22fXdDZn6233rrTWQ30j4G+zytXrmw75phjevz3esyYMW3f/va3B/BKa9MJJ5zQp/9vdsbnsOFvMO6zz2FDbzB/nrvjc9jwYM2RKnbEEUfk0UcfzRlnnJHJkydno402yrhx47Lnnnvm0ksvzS9+8YsNXrV89OjRmTNnTr797W/noIMOytZbb50RI0ZkwoQJed/73pd77703F154Yf9cEJ0ajPvM0HOfa8Ng3efPfvaz+dnPfpYPfvCDmThxYkaOHJlNN900e+21Vy666KL8+te/zrRp0/rhiujMQN/nkSNHZvbs2bnrrrty/PHHZ/LkyRkzZkwaGxuz+eabZ9q0aTn//PPz1FNP5X3ve18/XhmDzecwgMFT19bWYQUYAAAAgBpj5ggAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANQ04QgAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANS0/x9IX8EnCxQPPAAAAABJRU5ErkJggg==\n", + "image/png": "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xm41AAAAdGCUSOE1ly/IauYIAAAAHQhHKLzKrXy97QEAAPgro0QKr8VWvgAAAHRDOELhWZAVAACA7ghHKLySBVkBAADohlEihVcqmznSpKwGAACADgYtHHn++edz9tlnZ8qUKRkzZkw233zzTJ06NZdddlmWL1/eL3088cQT+cQnPpFdd901m2yySUaMGJGtttoq06dPzxVXXJHXXnutX/qhupTK1hxpUFYDAABAB42D0cmcOXPy/ve/P6+++mr715YvX5558+Zl3rx5ufrqq3Prrbdmxx13XO8+Lr/88px77rkplUrrfH3RokW5++67c/fdd+dLX/pSbr755vzN3/zNevdD9SkPR5rsVgMAAEAHAz5KfOSRR3L00Ufn1VdfzdixY3PxxRfnvvvuy5133pkPf/jDSZKnn346hx9+eJYuXbpefVx//fU5++yzUyqVMmLEiJxxxhmZM2dO/u///i/XXXdd9tlnnyTJc889l3e84x3rhDQUX8VWvspqAAAA6GDAZ46cfvrpWb58eRobG3P77bdn2rRp7c8dcMAB2WmnnXLOOefkqaeeyhe+8IVccMEFfe7joosuan98ww035PDDD2//+9SpU3PcccflPe95T2644YYsXLgw11xzTc4888wNuzCqRvmaI8pqAAAA6GhAZ47Mmzcvd999d5Lk5JNPXicYWeuss87KlClTkiRf/OIX09zc3Kc+lixZkscffzxJsvvuu68TjHT0b//2b+2P77vvvj71QXUr362myW41AAAAdDCgo8Qbb7yx/fFJJ53U+QnU1+f4449PkixevLg9TOmt1atXtz/ubs2SN77xje2PV61a1ac+qG7la440mjkCAABABwMajtxzzz1JkjFjxmSPPfbost1+++3X/vjee+/tUx9bbrllNt988yTJs88+22W73/72t+2PJ0+e3Kc+qG7lZTXWHAEAAKCjAV1z5Mknn0ySTJo0KY2NXXe1yy67VLymLz7ykY/kkksuycMPP5zbbrsthx56aEWbteuSNDQ05EMf+lCf+1iwYEG3zy9cuLDPx2RwlJfVNNqtBgAAgA4GLBxZuXJlFi1alCQZP358t20322yzjBkzJsuWLcv8+fP73NcnP/nJPPjgg7njjjty1FFH5eMf/3gOPPDAbLnllnn22Wfz1a9+NXPnzk1DQ0O+/OUvt69x0hcTJkzo82sYHipmjiirAQAAoIMBC0dee+219sdjx47tsf3acGR9tvMdO3ZsbrvttsyaNSuXXHJJLr/88lx++eXrtHn3u9+dc845J29729v6fHyqW3PFVr5mjgAAAPBXAzpzZK0RI0b02H7kyJFJkhUrVqxXfw8++GC+853vdLnuyB133JHXve51mTJlSjbZZJM+H7+nGS0LFy7M1KlT+3xcBl5L+YKs1hwBAACggwELR0aNGtX+uOOOMl1Zu4PM6NGj+9zX97///XzgAx/IqlWr8jd/8zf59Kc/nb//+7/PxhtvnPnz5+e73/1uLrroonz1q1/NT3/609xxxx15/etf36c+eioNYvhqtlsNAAAA3Riw+oKNN964/XFvSmWWLVuWpHclOB29+OKLOfHEE7Nq1aq8+c1vzn333Zcjjzwym2++eZqamrLjjjvmvPPOy49+9KPU1dXlV7/6VT7xiU/07WKoahUzRyzICgAAQAcDNkocNWpUttxyyyQ97/SyePHi9nCkrwufzp49u/21M2bMyJgxYzptd+CBB+bAAw9Mktxwww1ZvHhxn/qhOrW1tVWEI03KagAAAOhgQH+FvnZXmGeeeSalUqnLdk899VTFa3qr49a/u+++e7dt99hjjyRJa2trfv3rX/epH6pTc9lONUnSoKwGAACADgY0HNlnn32SrCmZeeihh7psN3fu3PbHe++9d5/6aGz867Ip3QUwSdLc3Nzp6yiu8lkjSdJktxoAAAA6GNBR4pFHHtn+eObMmZ22aW1tzbXXXpskGTduXKZPn96nPnbYYYf2x/fcc0+3bX/6058mSerq6jJx4sQ+9UN1am5trfia3WoAAADoaEDDkalTp2bfffdNklxzzTX5+c9/XtHm8ssvby+NOe2009LU1LTO87NmzUpdXV3q6upy4YUXVrz+8MMPT13dmsHuxRdfnD/84Q+dnstVV12VBx98MEny9re/PVtsscV6XxfVo6SsBgAAgB4MeG3Jl770pey9995ZsWJFDj744MyYMSPTp0/PihUrMnv27Fx11VVJksmTJ+ess87q8/F32WWXnHTSSfn617+eP/zhD9ltt91y+umnZ999923fynf27Nm57rrrkiQNDQ35j//4j369RoavUiczR5rsVgMAAEAHAx6O7Lbbbvnud7+bD3zgA1myZElmzJhR0Wby5MmZM2fOOtv/9sWVV16Z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GDGix/YjR45MkqxYsaJP/Sxbtqz98apVq3LEEUfkpptuyh577JGRI0dm6623zkc/+tHMmTMn9fX1aWtryznnnJO2trZujkq1K7WWL8hq5ggAAACdG7CZI6NGjWp/3JsFUVetWpUkGT169Hr3kySf//znU9/JLIF99tkn7373u/P9738/jz/+eB5//PHsuuuuve6np3KfhQsXZurUqb0+HgOrfLcaC7ICAADQlQELRzbeeOP2x70plVk7A6Q3JThd9bPDDjtk55137rLtIYccku9///tJknnz5vUpHOlp3RSGl1JrWVmNrXwBAADowoCNGEeNGpUtt9wySc+LmS5evLg9HOnr2h4d2/cUYHRs+9JLL/WpH6pL+cwRZTUAAAB0ZUB/nT5lypQkyTPPPJNSqdRlu6eeeqriNb315je/uf1xS0tLt207Pt/d1sJUv/KZIw0WZAUAAKALAzpi3GeffZKsKZl56KGHumw3d+7c9sd77713n/rYfvvt84Y3vCFJ8tvf/rbbth2f32677frUD9WlYkFWa44AAADQhQENR4488sj2xzNnzuy0TWtra6699tokybhx4zJ9+vQ+9/Oe97wnSfLiiy/mvvvu67LdDTfc0P5433337XM/VI/ysppGZTUAAAB0YUDDkalTp7aHENdcc01+/vOfV7S5/PLL8+STTyZJTjvttDQ1Na3z/KxZs1JXV5e6urpceOGFnfZz+umnt+9a8//+3/9bZ3vftb71rW/l7rvvTpIcfvjhFlgtuFJL2YKsymoAAADowoCPGL/0pS9l9OjRKZVKOfjgg/PZz342999/f37yk5/klFNOyTnnnJMkmTx5cs4666z16uMNb3hDPvOZzyRJHnrooUydOjXf+MY38tBDD+Wuu+7Kxz/+8Zx44olJkk022SRXXHFFv1wbw1d5WY2ZIwAAAHRlwFcl3W233fLd7343H/jAB7JkyZLMmDGjos3kyZMzZ86cdbbl7at/+Zd/ySuvvJJLL700TzzxRHsY0tHWW2+dG2+8MTvttNN690N1qAhHzBwBAACgC4MyYjziiCPy6KOP5owzzsjkyZOz0UYbZdy4cdlzzz1z6aWX5he/+EUmTZq0wf189rOfzc9+9rN88IMfzMSJEzNy5Mhsuumm2WuvvXLRRRfl17/+daZNm9YPV8Rw11xRVmPmCAAAAJ2ra2tra+u5GT1ZsGBBJkyYkCSZP3++NU2G2AU3PZ5rf/5c+9/f/7Y35OKjdh3CMwIAAKA/DMT4W60BhdRcvluNmSMAAAB0QThCIVXsVtPgrQ4AAEDnjBgppBa71QAAANBLwhEKqblitxrhCAAAAJ0TjlBIFWU1tvIFAACgC0aMFFKpbOZIk7IaAAAAuiAcoZDKZ440mDkCAABAF4wYKSQzRwAAAOgt4QiFVGqxICsAAAC9IxyhkEqtZWU1Dd7qAAAAdM6IkUKqKKsxcwQAAIAuCEcopIqyGjNHAAAA6IIRI4XUXLZbjTVHAAAA6IpwhEJqaS2fOSIcAQAAoHPCEQqpfM0RM0cAAADoinCEQqosq/FWBwAAoHNGjBSSshoAAAB6SzhCITWX71Zj5ggAAABdMGKkkEqtZWU1Zo4AAADQBeEIhdRSNnOkSTgCAABAF4QjFFJz2cyRBmU1AAAAdMGIkUKqWJDVVr4AAAB0QThC4bS1tVUsyNrU4K0OAABA54wYKZzyWSNJ0mDmCAAAAF0QjlA4pU7CEQuyAgAA0BXhCIXTWTjSqKwGAACALhgxUjilltaKr1mQFQAAgK4IRyicTmeOCEcAAADognCEwim1dBaOeKsDAADQOSNGCqe5s7IaC7ICAADQBeEIhdPZVr7CEQAAALoiHKFwSq2dLcjqrQ4AAEDnjBgpnOayNUfq6pIGC7ICAADQBeEIhVNeVtNk1ggAAADdMGqkcMoXZDVrBAAAgO4IRyic8pkjFmMFAACgO8IRCqd8zZGmBm9zAAAAumbUSOGU71ajrAYAAIDuCEconFLFgqzCEQAAALomHKFwSi3la454mwMAANA1o0YKp1S2W02jmSMAAAB0QzhC4ZSX1ditBgAAgO4IRyicygVZvc0BAADomlEjhVO5la+ZIwAAAHRNOELhtJSX1VhzBAAAgG4IRyicygVZvc0BAADomlEjhWNBVgAAAPpCOELhlFrKwxFvcwAAALpm1EjhNLeWl9WYOQIAAEDXhCMUTkv5zBHhCAAAAN0QjlA4za3lW/l6mwMAANA1o0YKp3y3mgYzRwAAAOiGcITCabFbDQAAAH0gHKFwmsvWHGmq9zYHAACga0aNFE6pbLeaBjNHAAAA6IZwhMIplS/Ias0RAAAAuiEcoXAqF2T1NgcAAKBrRo0UTql8zRFlNQAAAHRDOELhlJfV2K0GAACA7ghHKJyKBVmV1QAAANANo0YKp6KsxoKsAAAAdEM4QuFUltV4mwMAANA1o0YKp7lst5pGM0cAAADohnCEwmmxICsAAAB9IByhcMrXHFFWAwAAQHeMGimc5lZlNQAAAPSecITCqSirEY4AAADQDeEIhdNcUVYjHAEAAKBrwhEKp1SxW423OQAAAF0zaqRwystqmswcAQAAoBvCEQqnfEHWBjNHAAAA6IZRI4VTuZWvmSMAAAB0TThC4ZTKy2rMHAEAAKAbRo0UTvmCrA228gUAAKAbwhEKp2LmiLIaAAAAuiEcoXAq1xzxNgcAAKBrRo0UTqlst5pGZTUAAAB0QzhC4ZSX1ditBgAAgO4IRyiUlta2tK2bjaTRbjUAAAB0w6iRQmku26kmUVYDAABA94QjFEpLWUlNoqwGAACA7glHKJTynWoSZTUAAAB0z6iRQmlu7aSsxswRAAAAuiEcoVA6K6tpMnMEAACAbhg1UiidLcjaYOYIAAAA3RCOUCidrzkiHAEAAKBrwhEKpdRZWU2DtzkAAABdM2qkUEqdLMhq4ggAAADdEY5QKOVlNU0Ndamrk44AAADQNeEIhVJeVtNopxoAAAB6YORIoZTKdquxGCsAAAA9EY5QKBUzR2zjCwAAQA+EIxRK+ZojjXaqAQAAoAdGjhRKc6uyGgAAAPpGOEKhtFTMHBGOAAAA0D3hCIVSqpg54i0OAABA94wcKZTm8pkjymoAAADogXCEQmmp2K3GWxwAAIDuGTlSKM0tFmQFAACgb4QjFEqpYuaIcAQAAIDuCUcolPJwpMmCrAAAAPTAyJFCKZWV1TQoqwEAAKAHwhEKpXJBVuEIAAAA3ROOUCjlW/k22a0GAACAHhg5UijKagAAAOgr4QiFUrEgq7IaAAAAeiAcoVBKrevOHGm0Ww0AAAA9MHKkUEpla440KqsBAACgB8IRCqW8rMZuNQAAAPREOEKhVC7I6i0OAABA94wcKZRmC7ICAADQR8IRCqWlYs0Rb3EAAAC6Z+RIoTSX71Zj5ggAAAA9GLRw5Pnnn8/ZZ5+dKVOmZMyYMdl8880zderUXHbZZVm+fPmA9Llw4cKMGzcudXV1qaury/777z8g/TB82K0GAACAvmocjE7mzJmT97///Xn11Vfbv7Z8+fLMmzcv8+bNy9VXX51bb701O+64Y7/2+4lPfGKdPim+lordakyOAgAAoHsDPnJ85JFHcvTRR+fVV1/N2LFjc/HFF+e+++7LnXfemQ9/+MNJkqeffjqHH354li5d2m/9/uhHP8oPfvCDbL311v12TIa/5rLdaswcAQAAoCcDHo6cfvrpWb58eRobG3P77bdnxowZmTZtWg444IBcddVV+dznPpckeeqpp/KFL3yhX/pcunRpTj311CTJZZdd1i/HpDpUzhwRjgAAANC9AQ1H5s2bl7vvvjtJcvLJJ2fatGkVbc4666xMmTIlSfLFL34xzc3NG9zvjBkzMn/+/EyfPj0f/OAHN/h4VI+KrXztVgMAAEAPBnTkeOONN7Y/Pumkkzo/gfr6HH/88UmSxYsXt4cp6+uBBx7If/3Xf2XEiBH56le/ukHHovqUyspqGpTVAAAA0IMBDUfuueeeJMmYMWOyxx57dNluv/32a3987733rnd/pVIpH/nIR9La2pp//dd/zc4777zex6I6lcpnjiirAQAAoAcDulvNk08+mSSZNGlSGhu77mqXXXapeM36uOyyy/LII4/kjW98Y2bMmLHex+nMggULun1+4cKF/dof66d85ojdagAAAOjJgIUjK1euzKJFi5Ik48eP77btZpttljFjxmTZsmWZP3/+evX37LPP5jOf+UyS5Morr8yoUaPW6zhdmTBhQr8ej4FRPnNEWQ0AAAA9GbBfq7/22mvtj8eOHdtj+zFjxiTJem/ne8opp2TFihU55phjcvDBB6/XMah+pRZlNQAAAPTNgM4cWWvEiBE9th85cmSSZMWKFX3u69prr80dd9yRTTbZJFdccUWfX98bPc1oWbhwYaZOnTogfdN7pdbyBVmV1QAAANC9AQtHOpa1rF69usf2q1atSpKMHj26T/0sWrQoZ511VpLk4osvzjbbbNOn1/dWT6VBDA8VM0eU1QAAANCDAfu1+sYbb9z+uDelMsuWLUvSuxKcjs4888wsWrQoe+65Zz72sY/17SQpnPI1RyzICgAAQE8GdObIlltumUWLFvW408vixYvbw5G+LHz6xz/+Md/85jeTJAcccECuv/76btu/9NJLmT17dpJkhx12yNve9rZe90V1qNitxswRAAAAejCgW/lOmTIl99xzT5555pmUSqUut/N96qmn1nlNb3Us1/nc5z7XY/snn3wyxx13XJLkhBNOEI4UUHPFzBHhCAAAAN0b0JqD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2cyRBmU1AAAA9JJwhEIoD0ea7FYDAABALxlBUgilsrIaM0cAAADoLeEIhVAq363GmiMAAAD0knCEQii1li/I6q0NAABA7xhBUggWZAUAAGB9CUcohPKyGlv5AgAA0FvCEQqhvKym0W41AAAA9JIRJIVQsSCrshoAAAB6SThCIZSvOdJoQVYAAAB6yQiSQii1lJXVWHMEAACAXhKOUAjN5TNHlNUAAADQS8IRCqGlIhzx1gYAAKB3jCCpem1tbRXhiK18AQAA6C3hCFWvuWynmiRpUFYDAABALwlHqHrls0aSpMluNQAAAPSSESRVr7m1teJrZo4AAADQW4MWjjz//PM5++yzM2XKlIwZMyabb755pk6dmssuuyzLly/foGMvWbIks2fPzoc//OHsvvvuGTduXEaMGJGtttoq+++/fy677LL8+c9/7p8LYdgpdVJWYytfAAAAequura2tcmTZz+bMmZP3v//9efXVVzt9fuedd86tt96aHXfcsc/Hvu2223LUUUdl1apV3bZ73etel+985zuZPn16n/vojQULFmTChAlJkvnz52f8+PED0g+VXnptZaZefOc6X/vF+QdlszEjhuiMAAAAGCgDMf4e8JkjjzzySI4++ui8+uqrGTt2bC6++OLcd999ufPOO/PhD384SfL000/n8MMPz9KlS/t8/D/96U9ZtWpV6uvrc8ghh+SKK67IXXfdlYcffjg333xzjjnmmCTJiy++mHe+85355S9/2Z+XxzDQ2cyRBjNHAAAA6KXGge7g9NNPz/Lly9PY2Jjbb78906ZNa3/ugAMOyE477ZRzzjknTz31VL7whS/kggsu6NPxm5qacsopp2TGjBl5wxvesM5zu+22W4444ojsvffe+X//7/9l+fLlOeuss3LnnXd2cTSqUacLstZbTgcAAIDeGdCymnnz5mXq1KlJklNOOSX//d//XdGmtbU1b3nLW/Lkk09ms802y4svvpimpqZ+P5e99torDz74YOrr6/PSSy9liy226NfjK6sZOs++vDQHXD53na/95uJD7VgDAABQQFVXVnPjjTe2Pz7ppJM6P4H6+hx//PFJksWLF+fuu+8ekHPZf//9k6wJY373u98NSB8MjVInM0ca7VYDAABALw1oOHLPPfckScaMGZM99tijy3b77bdf++N77713QM6l44Kt9UouCqV8zZGG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MmbMmIwdOzYjRowY6lNKIhyhylWsOaKsBgCAKtTW1pZFixZl0aJFQ30qMODWhoAvvvhittpqq2yxxRapqxvasZxwhKpWvuZIo91qAACoQgsXLsyrr766ztfq6urS0NAwRGcEA6OlpSVtbX8dx7388stZvXp1tt122yE8K+EIVa58K18zRwAAqDYrV65cJxjZYostsskmm2TkyJFD/tt06G9tbW1ZtWpVlixZkj/96U9JkldffTVbbLFFRo4cOWTn5dfsVLVmW/kCAFDl/vznP7c/3nrrrbP11ltn1KhRghEKqa6uLqNGjWp/r6+1ePHiITwr4QhVrqVi5oi3NAAA1WX58uXtj8eNGzd0JwKDrOP7vePPwVAwkqSqlc8caTJzBACAKtPS0pIkaWxstMYINaWhoaH9Pb/252CoCEeoauW71TRYcwQAAKBqDJfyMeEIVa2irMZuNQAAAPSRkSRVrbl8K18zRwAAAOgj4QhVrdRiQVYAAAA2jJEkVa3UakFWAAAANoxwhKpmQVYAAKCvZs2albq6utTV1eX3v//9UJ8Ow4BwhKpWOXPEWxoAAIC+MZKkqlWuOWLmCAAAQEf7779/6urqsv/++w/1qQxbwhGqWvnMkQZrjgAAAD048cQT09bWlra2tkycOHGoT4dhQDhCVasoq7FbDQAAAH1kJElVqyirMXMEAACAPhKOUNWay3arseYIAAD0o9bWZNmyNf8tkO52qylfn+MPf/hDzjzzzEyaNCmjR4/OFltskUMOOSS33XZbl8f//e9/3378WbNmJUm+973v5R/+4R+y9dZbZ/To0dlll11y7rnnZvHixV0e58QTT0xdXV2PpT9dXc/a18+dOzdJMnfu3PZ2a/8oK1pDOEJVa2ktnzniLQ0AABvskUeSE05INt44GTt2zX9POGHN12vIvffem7e+9a254oor8tvf/jYrV67MK6+8kttvvz2HHXZYLrvssl4d5+STT87RRx+dO++8My+//HJWrlyZp59+Opdeemne/OY354knnhjgK6EnRpJUtfI1R8wcAQCADfSd7yR77plce22yfPmary1fvubve+655vkasHDhwhx11FFpaGjIJZdcknvvvTcPPPBAvvCFL2TcuHFJkvPOOy+/+tWvuj3OlVdema9//euZOnVqvvOd7+TBBx/MrbfemmOOOaa9n0MOOSRLlizp92u4+OKL89hjj2XPPfdMkuy555557LHH1vlz++2393u/1ahxqE8ANkSzrXwBAKgFra3Jn/408P08/nhy/PFJqdT586XSmudf//rkLW8Z2HPZYotkCDdc+PWvf53tt98+P/vZz7Lddtu1f32vvfbKXnvtlb//+79PqVTKVVddlS996UtdHmfevHk57LDDctNNN6Wx8a9D8EMPPTRvfvObc8EFF2TBggW56KKL8vnPf75fr2G77bbLdtttlzFjxiRJxowZk7cM9H2rUsIRqlpL+cwRZTUAABTRn/6UbL31UJ/FGqVScsABA9/PSy8lW2018P104z//8z/XCUbW2mefffK2t70t999/f+65555ujzFy5Mh87WtfWycYWeuTn/xkrr/++jz++OO55ppr8u///u8ZOXJkv50/vWckSVWzICsAADAQxo0bl8MPP7zL5/fYY48kybPPPtvtcQ4++OBsu+22nT5XX1+fE044IUmyePHiPPzww+t5tmwo4QhVrWRBVgAAYADstNNOqe+mrGfzzTdPkrz22mvdHmevvfbq9vmpU6e2P3788cf7cIb0JyNJqlqpbOZIU4OZIwAAwIbbaKONun1+bXDS2sM2x1v3UA71ute9rv3xK6+80suzo79Zc4SqVr5bTYOyGgAAimiLLdaswTHQPv7x5Prre253zDHJf/7nwJ7LFlsM7PEHSV1d92OUtra2bp9ncAhHqGoVC7IO4WrWAAAwYOrrB2dx0hkzkhtu6Hq3miRpbEzOO2/IF0utFi+++GK3z7/UIfRaW6qzVm9npyxbtmw9z461jCSpauVb+SqrAQCADfDWtybXXrsmAOlMY+Oa59/61sE9ryo2b968Xj9fvs3uxhtvnCT585//3O0xnn766W6f72n2CsIRqlz5miPKagAAYAMdd1zy4IPJCScka9fd2GijNX9/8ME1z9Nrt99+exYuXNjpc62trfnGN76RJNlss82y++67r/P8DjvskGTNoq9dBSCrV6/OD37wg27PYdSoUUmSVatW9enca4lwhKpWvuZIk91qAABgw731rcmsWclrryVLl67576xZZoysh1WrVuWUU05JS0tLxXOXXHJJHnvssSTJP//zP2fkyJHrPL/ffvu1P7788ssrXt/W1pbTTjstf/zjH7s9h2222SbJmm2HrXHSOWuOUNUqtvI1cwQAAPpPfX0yZsxQn0VV23PPPfOjH/0oe++9d84444zstNNOeemll/KNb3wjs2fPTpKMHz8+559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95l+fwd3/3d5k5c2ZeeumlnHnmmfnABz6QTTfdNEnS1NSU7bfffmAuvooIR6hq5WU1jdYcAQAAhpFTTz01c+fOzaxZs3LsscdWPL/NNtvkxz/+cXtYUW7mzJnZb7/92gOVtWU4a5155pnZdddduw1Hjj322Hz2s5/Ns88+my9+8Yv54he/2P7c9ttvn9///vfrdW1FogaBqlY5c8RbGgAAGF5mzpyZ6667Lvvvv3+22GKLjBw5MpMnT84555yTX/3qV3nTm97U5Wt32WWXPPzww/noRz+a7bffPiNGjMhWW22Vd7zjHZkzZ06n5Tblxo4dm/vuuy+nnXZapkyZko3WriVDu7o2BUf9YsGCBZkwYUKSZP78+Rk/fvwQn1FtmDTj1nXWHbnlE/vkLdt1nrgCAMBw9Jvf/CalUimNjY3Zaaedhvp06Ae///3v2xdTnTlzZk488cShPaFhbH3e/wMx/vZrdqpWW1ubBVkBAADYYEaSVK2W1spJT9YcAQAAoK+EI1St8lkjid1qAAAA6DvhCFWruaW14muNymoAAADoIyNJqlZnZTVNZo4AAADQR41DfQKwvppbKsORBuEIAAAwxCZOnBgbw1YXM0eoWp0vyOotDQAAQN8YSVK1OltzpMluNQAAAPSRcISq1dluNcpqAAAA6CvhCFWrpbWTmSP13tIAAAD0jZEkVat8Qdb6uqTezBEAAAD6SDhC1SqVhSONZo0AAACwHowmqVqlsrKaRouxAgAAsB6EI1St8gVZLcYKAADA+hCOULXKt/JtavB2BgAAoO+MJqlaLa3la46YOQIAAEDfCUeoWpULsgpHAAAA6DvhCFWrvKymUVkNAAAA68FokqpVUVZjtxoAAADWg3CEqtVszREAAAD6gXCEqtXSWlZWU+/tDAAAQN8ZTVK1mssWZG1SVgMAAFSRiRMnpq6uLieeeOJQn0qf7L///qmrq8v+++8/1KfSb4QjVK3y3WoalNUAAACwHoQjVK2Kshq71QAAALAejCapWspqAAAA6A/CEapWqWzmSIMFWQEAoF+1trZl+epSWst2iiyK1atX58orr8z06dOz1VZbZcSIEXn961+fww47LN/61rfSWjbmWKu3a25ceOGFqaurS13dur/IXfv65557LknyjW98o73d2j8dj/373/++/euzZs1Kknzve9/LP/zDP2TrrbfO6NGjs8suu+Tcc8/N4sWLuzyfE088MXV1dZk4cWK35z1r1qz2/n7/+99XvH7u3LlJkrlz51acd0/HHq4ah/oEYH2Vyv6BbrLmCAAA9Isn/rgkV9/7bG577IWsaG7J6KaGHLrr6/OhfXbMm7bdZKhPr18899xzOfTQQ/Pkk0+u8/UXX3wxt912W2677bb8z//8T2666aZsvvnmQ3SWnTv55JPz9a9/fZ2vPf3007n00ktz7bXX5o477sib3vSmITq76uRX7VQtC7ICAED/u+mXf8g/fuXe3PDwH7KiuSVJsqK5JTc8vObrN/3yD0N8hhtu6dKlOeCAA9qDkSOPPDI333xzHnzwwXzve9/LfvvtlyS599578853vjMtLS392v/MmTPz2GOPZdttt02SvOtd78pjjz22zp+ZM2d2+torr7wyX//61zN16tR85zvfyYMPPphbb701xxxzTJJk4cKFOeSQQ7JkyZJ+Peckufjii/PYY49lzz33TJLsueeeFed9++2393u/g8HMEapWqWXdKW5NFmQFAKCgWlvbsnj56gHv59cvvpYzr38kLV2U0ZRa23Lm9Y9k641HZvLrNh7Qc9lsoxGpH6BfgH7605/Os88+myT51Kc+lYsuuqj9uT322CPvec978sEPfjDf/va38/Of/zxXXXVVPvrRj/Zb/zvssEOSpKmpKUkybty4vOUtb+nVa+fNm5fDDjssN910Uxob/zqkP/TQQ/PmN785F1xwQRYsWJCLLroon//85/vtnJNku+22y3bbbZcxY8YkScaMGdPr8x7uBi0cef755/PlL385c+bMyfPPP5+RI0dm0qRJOfroo/Oxj30sG220Ub/0M3v27MycOTOPPvpoFi9enNe//vXZd999c+qpp+btb397v/TB8FBeVtNoQVYAAApq8fLV2ePf7xjq00iStLS25biv/d+A9/PQp/4hW4wd2e/HXbVqVa6++uokyZve9KZceOGFFW3q6upy5ZVX5n//93/zpz/9KV/5ylf6NRzZECNHjszXvva1dYKRtT75yU/m+uuvz+OPP55rrrkm//7v/56RI/v/e1hEg/Kr9jlz5uRv/uZvcvnll+epp57K8uXLs3jx4sybNy//8i//kt133709tVtfK1euzBFHHJHjjjsut99+e1544YWsWrUqzz33XL71rW9l7733XicNpPqVhyPKagAAgJ489NBD+fOf/5xkzQKjDQ0NnbbbZJNNcvTRRydJnnjiiSxcuHCwTrFbBx98cHs5Trn6+vqccMIJSZLFixfn4YcfHsxTq2oDHo488sgjOfroo/Pqq69m7Nixufjii3PfffflzjvvzIc//OEkaxaOOfzww7N06dL17ufkk0/OLbfckiSZPn16brzxxjzwwAO55ppr8sY3vjGtra254IIL2hNCql9zeVmN3WoAAIAePP744+2P3/a2t3XbtuPzHV83lPbaa69un586dWr74+FyztVgwMtqTj/99CxfvjyNjY25/fbbM23atPbnDjjggOy0004555xz8tRTT+ULX/hCLrjggj73MXfu3Fx33XVJkiOOOCI//OEP29O/vfbaK//4j/+YPfbYI88//3zOOeecvPe97824ceP65fqqXWtrW1aWWjKqsaFX9XzDqX15HaSyGgAAoCevvPJK++PXve513bZ9/etf3+nrhtLWW2/d7fMdr2m4nHM1GNBwZN68ebn77ruTrJnZ0TEYWeuss87KzJkz8+STT+aLX/xizjvvvPZFaXrrc5/7XJKkoaEhV155ZcW0qC233DKXXnppjjvuuCxevDjXXHNNzjrrrPW7qILo69Zcw7H9T3+9aJ2v3f/sn/LEH5cUZmsxAABYa7ONRuShT/3DgPdzwU2/ypzHei4feeffbJNP/+ObB/RcNttoxIAeP1mztkh32to6X5h2KFXjOVeDAQ1HbrzxxvbHJ510Uqdt6uvrc/zxx+e8887L4sWLc/fdd+eggw7qdR9Lly7NnXfemSQ56KCDMn78+E7bvfvd784mm2ySJUuW5IYbbqjpcOSmX/4hZ13/yDprdqzdmuvmX/4xlx/91rzrb7erqvZJ8tuXl+Ufv3JvRXsAAKh29fV1A7I4ablTp0/Kj3/1QsVn7Y4a6+vysf0nDcr5DITNN9+8/fELL7yQyZMnd9n2xRdf7PR19X8p6W9tba14TUfLli1b39Ps1Tl15qWXXmp/3PGck6E97+FuQBdpuOeee5Ks2d5njz326LLd2j2kkzX7SPfFAw88kFWrVlUcp9yIESPad6t54IEH0tzc3Kd+iuKJPy7pNFhYa+3WXD956qXMf2V5fvLUSzmzytqfdf0jeeKP/b+nNwAAFN2btt0klx/91jR2UeLeWF+Xy49+a1XP1u649ez//V/3u+488MADnb5u443XbGO8ePHibl//9NNPd/t8T7NAOjNv3rxeP1++ze7a8167IG1XBuK8h7sBnTny5JNPJkkmTZrU6TZDa+2yyy4Vr+lrH+XH6aqf22+/PaVSKb/5zW/ypje9qdf9LFiwoNvnh8vKxT25+t5nu02BkzVreZw0q/sfuOHcvtTalmvu/V0uP/qtvX4NAACwxrv+drvstPXGuebe3+XWxxa2l70ftus2OXmfHao6GEmSPfbYI+PGjcuf//znfOMb38iZZ57Z6Y41r732Wq6//voka7b83Wabbdqf22GHHZIkv/71r/Paa6+1hw4dvfzyy7njju63Xx41alSStP/Cvzduv/32LFy4cJ3zWau1tTXf+MY3kiSbbbZZdt9993WeX3ver732Wp5++unsvPPOFcdYvXp1fvCDH/T7eQ93AzZzZOXKlVm0aM2aEF2Vuqy12WabZcyYMUmS+fPn96mfju176mfChAmdvq43JkyY0O2fjisCD1etrW257bEXhvo0BsWtjy1Maw8hEAAA0Lm1M0h+9elD8sRnDsmvPn1I1c8YWWvkyJH50Ic+lCT51a9+lU9/+tMVbdra2vLxj3+8fUz78Y9/fJ3n11YtrF69Ov/5n/9Z8frm5uacfPLJWbFiRbfnsjbg+O1vf9vr81+1alVOOeWUtLS0VDx3ySWX5LHHHkuS/PM//3NGjly39KljtcXll19e8fq2tracdtpp+eMf/9ir83722WcLs8bJgM0cee2119ofjx07tsf2Y8aMybJly/q8nW9f+lkbwCTZoG2Dq9XKUktWNFf+ABXRiuaWrCy1ZKMRA74hEwAAFFZ9fV0hP1NfcMEFueGGG/Lss8/moosuyuOPP55//ud/zrbbbpvf/e53+cpXvtK+uci0adPykY98ZJ3XH3744dl+++3z3HPP5fzzz8+iRYvy7ne/O6NGjcrjjz+eL3/5y/nlL3+Zt73tbd2W7vzd3/1dfvKTn2TevHm55JJLcuihh7aPW0ePHp3ttqtcS3HPPffMj370o+y9994544wzstNOO+Wll17KN77xjcyePTvJmokD559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95t+c9c+bMvPTSSznzzDPzgQ98IJtuummSpKmpKdtvv333N2AYGrB3+cqVK9sfjxjR8yrDaxOtnpK1DemnY2rW1356mmmycOHCYT97ZFRjQ0Y3NdREQDK6qSGjGiunxgEAAGy88ca58847c+ihh+app57KD3/4w/zwhz+saLf33nvn5ptvrii7GTFiRL71rW/lHe94R5YtW5YrrrgiV1xxRfvzDQ0N+cIXvpA///nP3YYjH/3oR/PVr341r7zySs4777ycd9557c/tt99+7QFNR6eeemrmzp2bWbNm5dhjj614fptttsmPf/zj9rCi3MyZM7Pffvu1Bypry3DWOvPMM7Prrrt2G44ce+yx+exnP5tnn302X/ziF/PFL36x/bntt98+v//977t87XA1YGU1a2uQkjVTjXqytlZp9OjRA9ZPx3qovvYzfvz4bv90Vu813NTX1+XQXV/fc8MkR/7ttnnyM+/Iu/5226psf9iu26S+i0WkAAAAJk6cmEceeSRf+cpXst9++2WLLbZIU1NTXve61+Ud73hHvvnNb+anP/1pxY4va+2zzz556KGH8sEPfjDbbrttmpqass022+Q973lPfvrTn+b000/v8Ry22267PPDAAzn55JMzadKkdca33Zk5c2auu+667L///tliiy0ycuTITJ48Oeecc05+9atfdbu+5i677JKHH344H/3oR7P99ttnxIgR2WqrrfKOd7wjc+bM6bTcptzYsWNz33335bTTTsuUKVOy0UYb9eq8h7MBmznScUGa3pSwrN0qqDclOOvbT8ftiPraT1F8aJ8dc/Mv/9jj1lwf+fs3ZvSIhpzy92/MnEcXVl37k/fZocvnAQAAkjUzQE499dSceuqp6/X6nXfeOddee22Xz1944YW58MILuz3GG9/4xlx99dV97vu4447Lcccd1+fXJWtCmSuvvLLL50888cSceOKJ3R7jda973TozRqrdgM4c2XLLLZP0vNPL4sWL24OLjoum9kbHRVh76qdjaUxf+ymKvm7NVe3tAQAAoCcDurLOlClTcs899+SZZ55JqVTqcjvfp556ap3X9EXH6UIdj9NdP42NjZk0aVKf+imSvm7NVe3tAQAAoDsD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jl22e+Mb39j+eNWqVX3qg6Hncxgd+RxWLD6HDV/CkSp0zz33JEnGjBmTPfbYo8t2++23X/vje++9t099PPDAA+0fpjoep9yIESPy9re/vf01zc3NfeqHrg3Gfe6tjh+s6+v9s9GfBvs+l0qlfOQjH0lra2v+9V//NTvvvPN6H4veG4z7vHr16vZ1Rg499NCMHTs2yZp7/txzz+X5559fZ2BN/xuM+7zllltm8803T5I8++yzXbb77W9/2/548uTJfeqDoedzGB35HFYcPocNb366qtCTTz6ZJJk0aVIaGxu7bLfLLrtUvKavfZQfp7t+SqVSfvOb3/SpH7o2GPe5t+bOnZskaWxszKRJkwakj1o12Pf5sssuyyOPPJI3vvGNmTFjxnofh74ZjPv8yCOPZOXKlUmSadOm5YUXXshJJ52UcePGZeLEidl+++2z6aab5rDDDst99923HldBTwbr5/kjH/lIkuThhx/Obbfd1mmbiy66KEnS0NCQD33oQ33ug6Hlcxgd+RxWHD6HDW/CkSqzcuXKLFq0KEl63Glgs802y5gxY5Ik8+fP71M/Hdv31M+ECRM6fR3rb7Duc2/MmTMnjz76aJLkkEMOaZ++y4Yb7Pv87LPP5jOf+UyS5Morr8yoUaPW6zj0zWDd5yeeeGKdPnfdddfMmjUry5YtW+frt912W/bdd9988Ytf7NPx6d5g/jx/8pOfzD/8wz8kSY466qicffbZue222zJv3rx897vfzf7775/vf//7aWhoyJe//OVMmTKlz30wtHwOYy2fw4rD57DhTzhSZV577bX2x2unTHdn7Yevvm4X2Jd+1vaxPv3QucG6zz155ZVXcuqppyZZ89vHtb+JpH8M9n0+5ZRTsmLFihxzzDGDulVdrRus+/zKK6+0P/70pz+dRYsW5Z3vfGcefPDBrFy5Mi+++GKuvPLKbLLJJmltbc2ZZ57Z5awD+m4wf57Hjh2b2267LV/72tcyfvz4XH755TnssMMyderUHHvssZk7d27e/e5352c/+1k+9rGP9fn4DD2fw0h8Disan8OGP+FIlVk7ZTpZU2fak5EjRyZJVqxYMWD9rO1jffqhc4N1n7vT0tKS97///XnuueeSJJ/61Key22679dvxGdz7fO211+aOO+7IJptskiuuuKLPr2f9DdZ97jhDZNWqVTniiCNy0003ZY899sjIkSOz9dZb56Mf/WjmzJmT+vr6tLW15ZxzzklbW1uf+qFzg/3v9oMPPpjvfOc7Xa47cscdd+Qb3/hGlixZsl7HZ2j5HIbPYcXic1h1EI5UmY7Tr3qzsN7aBZxGjx49YP10XCSqr/3QucG6z9352Mc+lv/93/9Nkhx++OE5//zz++3YrDFY93nRokXtO5dcfPHF2Wabbfr0ejbMUPy7nSSf//znO124b5999sm73/3uJMnjjz+exx9/vE/90LnB/Hf7+9//fvbff//cdddd2XXXXfPDH/4wf/rTn7J69er89re/zX/8x3+kubk5X/3qV/N3f/d3eeGFF/rcB0PL5zB8DisOn8Oqh3Ckymy88cbtj3szdXLtbxJ7M8V3ffvp+NvKvvZD5wbrPnflvPPOy1VXXZVkzUDqe9/7XhoaGvrl2PzVYN3nM888M4sWLcqee+5piv0QGIp/t3fYYYduV8A/5JBD2h/PmzevT/3QucG6zy+++GJOPPHErFq1Km9+85tz33335cgjj8zmm2+epqam7LjjjjnvvPPyox/9KHV1dfnVr36VT3ziE327GIacz2G1zeewYvE5rHp0vZQ6w9KoUaOy5ZZbZtGiRVmwYEG3bRcvXtz+P8yOi3X1RsfFvxYsWJA999yzy7YdF//qaz90brDuc2cuvfTSXHLJJUmS3XffPbfccovfRA2QwbjPf/zjH/PNb34zSXLAAQfk+uuv77b9Sy+9lNmzZydZM8B+29ve1uu+6Nxg/Tx3bN+XBRxfeumlPvVD5wbrPs+ePbv9tTNmzFhnvYmODjzwwBx44IG54447csMNN2Tx4sXZbLPN+tQXQ8fnsNrlc1ix+BxWXYQjVWjKlCm555578swzz6RUKnW5XeBTTz21zmv64k1velOnx+muH9uL9a/BuM/lrrzyypx77rntx/rxj3+cTTfddIOOSfcG+j53nI79uc99rsf2Tz75ZI477rgkyQknnOB/yv1kMH6e3/zmN7c/bmlp6bZtx+e723KWvhmM+9xxi9fdd9+927Z77LFH7rjjjrS2tubXv/61n+cq4nNYbfI5rHh8Dqsuymqq0D777JNkzTTKhx56qMt2a/dET5K99967T33stdde7QuAdTxOudWrV+f++++veA0bbjDuc0ff/OY38/GPfzxJsuOOO+aOO+7Illtuud7Ho3cG+z4zNAbjPm+//fZ5wxvekCT57W9/223bjs9vt912feqHrg3Gfe4YuJRKpW7bNjc3d/o6hj+fw2qPz2Ew9IQjVejII49sfzxz5sxO27S2tubaa69NkowbNy7Tp0/vUx8bb7xxDjzwwCRrVrzvaorwDTfc0L4S/lFHHdWnPujeYNzntW644YacdNJJaWtry/jx43PnnXdm2223Xa9j0TcDfZ8nTpyYtra2Hv+std9++7V/bdasWet1TVQarJ/n97znPUnWrEtx3333ddnuhhtuaH+877779rkfOjcY93mHHXZof3zPPfd02/anP/1pkqSuri4TJ07sUz8MLZ/DaovPYcXlc1iVaaMq7bvvvm1J2hobG9vuu+++iuc/97nPtSVpS9L2b//2bxXPz5w5s9vn29ra2u688872Nv/4j//YViqV1nn+5ZdfbnvDG97QlqRt3Lhxba+88kp/XBodDMZ9/vGPf9w2YsSItiRtW2+9ddtTTz3Vz1dBTwbjPvdk7ev322+/9Xo9PRuM+/zcc8+1jRo1qi1J2x577NG2dOnSijbf/OY3249z+OGHb+hlUWag7/OTTz7ZVldX15akbbvttmtbsGBBp+fxP//zP+3HmTZt2oZeFt343e9+1/69PuGEE3r1Gp/Dqs9A3Wefw4aXgbrPPfE5bHgwx7JKfelLX8ree++dFStW5OCDD86MGTMyffr0rFixIrNnz25f4Xry5MntW0f11QEHHJBjjz02s2fPzs0335yDDjoop59+erbddts89thjufjii/P8888nSS655BILvQ2Agb7P999/f4466qisXr06TU1NueKKK9Lc3Nzt1p7jx4/PuHHj1veS6MRg/Dwz9AbjPr/hDW/IZz7zmZxzzjl56KGHMnXq1Jxzzjl5y1vekldffTU33HBD/vu//ztJsskmm+SKK67ot+tjjYG+z7vssktOOumkfP3rX88f/vCH7Lbbbjn99NOz7777ZuONN878+fMze/bsXHfddUmShoaG/Md//Ee/XmOtu/fee/PMM8+0/33RokXtj5955pmK3/aeeOKJ69WPz2FDazDus89hQ2+wfp6pEkOdzrD+br755rZNNtmkPWks/zN58uS23/zmN52+trcJ5/Lly9sOO+ywLvuor69f74SU3hnI+/xv//ZvXR63qz8zZ84c2AuuUYPx89ydta/3G4uBNVj3+dxzz22fXdDZn6233rrTWQ30j4G+zytXrmw75phjevz3esyYMW3f/va3B/BKa9MJJ5zQp/9vdsbnsOFvMO6zz2FDbzB/nrvjc9jwYM2RKnbEEUfk0UcfzRlnnJHJkydno402yrhx47Lnnnvm0ksvzS9+8YsNXrV89OjRmTNnTr797W/noIMOytZbb50RI0ZkwoQJed/73pd77703F154Yf9cEJ0ajPvM0HOfa8Ng3efPfvaz+dnPfpYPfvCDmThxYkaOHJlNN900e+21Vy666KL8+te/zrRp0/rhiujMQN/nkSNHZvbs2bnrrrty/PHHZ/LkyRkzZkwaGxuz+eabZ9q0aTn//PPz1FNP5X3ve18/XhmDzecwgMFT19bWYQUYAAAAgBpj5ggAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANQ04QgAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANS0/x9IX8EnCxQPPAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -429,7 +430,7 @@ "outputs": [ { "data": { - "image/png": "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9t5vO+02zcsZFpqAACCGzM/JkLOdX8L8DgYA65AcAYAYkZmarEuG9231cafdpkVzxykzNTmEUQFAbMhMTdaiuePaTJDwOxgArBOy5MiBAwf0ve99T2PGjFFSUpJ69+6tKVOm6NFHH1V1dXWXXKOwsFD33HOPsrKylJycrLi4OPXr10/Tp0/X448/rhMnTnTJdQAgUlWcrG+25nY5NGdCmlYuyNHs7EEWRAUAsWF29iCtXJCjORPSFO9s/jZ8TAqJEQCwis3v9wd9VtiqVat02223qbKyssXHR40apdWrVysjI6PT11i0aJF++MMfyuv1trpnyJAhWrlypcaOHdvp67SmuLhY6enpkqSioiKlpaV1+TUA4FxU1XqU/fAbOntC5F/mTdHF5/XlfDsAhJjXa+jiX7+jQyfqGte+c8UI3XfVSAujAoDIEIzP30GvHMnPz9fcuXNVWVmpbt266ec//7k+/PBDvf322/r6178uSfrss8903XXX6eTJk526xrJly/S9731PXq9XcXFx+u53v6tVq1bp448/1t/+9jfl5ORIkvbv369rr7221SQNAESzTw4cNyVG4hx2TRram8QIAFjA6bTr+rGpprVXt5YqBN9bAgBaEPTkyL333qvq6mo5nU698cYbeuCBBzR16lRdfvnlevrpp/Wb3/xGkrRjxw499thjnbrGz372s8bby5cv12OPPaaZM2dqypQpuvXWW7Vu3TrddNNNkqSysjItWbLk3P9gABBhNu07aro/Nq2HEgIcLQkA6HrXjU0x3d9z+JR2lHMMHACsENTkyMaNG/Xee+9JkubNm6epU6c227Nw4UKNGTNGkvTb3/5WHo+nQ9eoqqrSp59+KkmaMGGCrrvuuhb3/eQnP2m8/eGHH3boGgAQDTY2SY5MGtrbokgAAJI0YXBPDerpNq29urXUomgAILYFNTny8ssvN96+6667Wg7Abtftt98uSTp27FhjMiVQ9fVnmgu21bPkvPPOa7xdV1fX6j4AiEb1XkN5RcdNa5OH9rImGACAJMlmszWrHnl1axlHawDAAkFNjqxbt06SlJSUpIkTJ7a6b9q0aY23c3NzO3SNvn37qnfv099+7tmzp9V9n3/+eePtkSNpdAUgtmwrrVStxzCtTRxCcgQArHZdljk5sv9ItbaVVlkUDQDErqAmR7Zv3y5JGj58uJxOZ6v7Ro8e3exnOuIb3/iGJGnLli1as2ZNi3sa+pI4HA7Nnz+/w9cAgEi2ad8x0/2RA7qpZ2KcRdEAABqMTeuhwb0TTWuvcLQGAEKu9YzFOaqtrVVFRYUktTtWp1evXkpKStKpU6dUVFTU4Wv993//tzZt2qS33npLN954oxYsWKArrrhCffv21Z49e/TUU09p7dq1cjgc+t3vftfY46QjiouL23y8rKysw88JAKFCvxEACE8NR2ueeu9MlfOqrWX64bWjZbMxTQwAQiVoyZETJ8502u7WrVu7+xuSI50Z59utWzetWbNGS5cu1a9+9SstWrRIixYtMu256aabdP/99+vCCy/s8PNLapyhDACRxu/3a9N+c+UI/UYAIHxcl2VOjhQfq1F+caWy03taFxQAxJigHaupra1tvB0X137pdnx8vCSppqamU9fbtGmT/v73v7fad+Stt97Ss88+q6oqznACiC17Kk7p6Kl609qkIVSOAEC4OD81WcP6JpnWXs3naA0AhFLQkiMJCQmNt8+eKNOahgkybre7nZ3Nvfjii7rsssv0zjvvKCsrS//617905MgR1dfX6/PPP9cvfvELeTwePfXUU7r44otVXl7e4WsUFRW1+c+GDRs6/JwAEAqbmhypGZicoLReHf9dCwAIDpvN1qwx66qCMhkGU2sAIFSCdqyme/fujbcDOSpz6tQpSYEdwTnbwYMHdeedd6qurk7nn3++PvzwQyUlncm8Z2Rk6Ec/+pGmTJmiq666Stu2bdM999yjf/7znx26Tnt9UwAgXDVtxjpxaC/OsQNAmLl+XIqefHd34/2yylp9UnRME6n0A4CQCGrlSN++fSW138z02LFjjcmRjvb2eOGFFxp/9oEHHjAlRs52xRVX6IorrpAkLV++XMeOHWtxHwBEm2b9RhjhCwBhZ9SA7hre3/wl4Sv5NPwHgFAJ6ijfhqkwu3fvltfrbXXfjh07mv1MoM4e/TthwoQ2906cOFGSZBiGdu7c2aHrAEAkOnyiTnsrTpnWmFQDAOGnpaM1qzlaAwAhE9TkSE5OjqTTR2Y2b97c6r61a9c23r7kkks6dA2n88zJoLYSMJLk8Xha/DkAiFab95v7jXSLd2r0wO6t7AYAWOmGcebkyKETdc1GsQMAgiOoyZEvfvGLjbefeeaZFvcYhqHnnntOktSzZ09Nnz69Q9cYNmxY4+1169a1uff999+XdDozP3To0A5dBwAi0cYm/UbGD+4ppyOov/oBAJ00vH/3ZgnsV7dytAYAQiGo75CnTJmiSy+9VJK0ZMkSffTRR832LFq0qPFozH/913/J5XKZHl+6dKlsNptsNpseeuihZj9/3XXXNTYW/PnPf66SkpIWY3n66ae1adMmSdJFF12kPn36dPrPBQCRoumkmskcqQGAsNb0aM2aT8vk42gNAARd0L8+fOKJJ+R2u+X1enX11Vfrl7/8pdavX693331Xd999t+6//35J0siRI7Vw4cIOP//o0aN11113SZJKSko0fvx4/eIXv9C6deuUl5enV155RbfddpvuvvtuSZLD4dAvfvGLrvsDAkCYqq736tPSKtPapKE0YwWAcHbdWHNypOJkvT7ec8SiaAAgdgS98cb48eP1j3/8Q1/96ldVVVWlBx54oNmekSNHatWqVabxvx3xhz/8QadOndI//vEPHT58WP/93//d4r6kpCQ9/fTTuuyyyzp1HQCIJHkHjpu+bXTabcpO72ldQACAdmX066bMlGQVlp1Jbr+ytUwXD+9rYVQAEP1CcvD8hhtu0NatW/Xd735XI0eOVGJionr27KlJkybp17/+tT755BMNHz68088fHx+vF154Qe+8845uv/12jRw5UklJSXI6nerdu7emTp2qH//4x9qxY4e+8pWvdOGfDADCV9N+I+cP6qHEOJpRA0C4u75JY9bXPi2T12dYFA0AxAab3+/nEGMXKC4uVnp6uiSpqKhIaWlpFkcEINZ9bcnHWrerovH+vJxh+vH1mRZGBAAIxIEj1frCI++a1p77jyn6wsh+FkUEAOElGJ+/GVkAAFHI6zO0Zb+5cmQy/UYAICIM7pOosWk9TGuvbi21KBoAiA0kRwAgCu0oP6FT9T7T2sQhTKoBgEhxfZPGrK9vO6h6L0drACBYSI4AQBRqOsJ3WN8k9eseb1E0AICOmtlkpG9ljUcf7K5oZTcA4FyRHAGAKLSxyZGaSUM4UgMAkSStV6LGD+5pWvvXJ8UyDNoFAkAwkBwBgCjj9/ubVY5MHsqRGgCINNePTTXdX5lfpvN/8rruW5anwtKqVn4KANAZJEcAIMoUH6vRwao609okmrECQMRxtvBOvcbj0/ItJZr1ZK5W5JWEPigAiFIkRwAgymxsUjXSJylOw/omWRQNAKAzCkur9LNXt7f6uNfwa+GyfCpIAKCLkBwBgCizcV+TfiNDe8lms1kUDQCgMxbn7pG3nf4iXsOvJbl7QxQRAEQ3kiMAEGXoNwIAkc0w/FpTUB7Q3tUFZTRpBYAuQHIEAKLIsVP12nXopGltIpNqACCi1Hp9qvH4Atpb4/Gp1hvYXgBA60iOAEAU2dxkhG+Cy67zU3tYFA0AoDMSnA65XY6A9rpdDiU4A9sLAGgdyREAiCKbmiRHstN7Kq6lcQcAgLBlt9s0I2tgQHtnZqXIbqevFACcK94xA0AUod8IAESH+TkZcraT9HDabZqXMyxEEQFAdCM5AgBRotbj09biStPaJJIjABCRMlOTtWjuuDYTJLOzU5WZmhzCqAAgepEcAYAoUVBSqXqf0XjfbpMmDO5pXUAAgHMyO3uQVi7I0ZwJaS32IMkrOi6/n0k1ANAVSI4AQJTY2ORIzeiByeqe4LIoGgBAV2ioINn28DX68x2TTI99fviUPtpzxKLIACC6kBwBgCixaZ+5GevkoYzwBYBoYbfbNH10f2X0SzKt/3X9AYsiAoDoQnIEAKKAYfibNWOl3wgARBebzaavXjjEtPb6tnIdrKq1KCIAiB4kRwAgCuw6dFJVtV7T2iQqRwAg6syZmKYE15m38F7Drxc2FFkYEQBEB5IjABAFPt5rPnM+qKdbKT3cFkUDAAiWHm6Xvpg9yLT29w0H5D2rITcAoONIjgBABCssrdJ9y/L08CuFpvWRA7pZFBEAINi+epH5aE15Va3e2n7IomgAIDqQHAGACLUir0SznszV8i0l8hnmUY5rdx7WirwSiyIDAATTBYN6aHyTUe1/Wb/fmmAAIEqQHAGACFRYWqWFy/LlbZIUaWD4pYXL8lVYWhXiyAAAodC0MWvu7gp9fvikRdEAQOQjOQIAEWhx7p5WEyMNvIZfS3L3higiAEAoXTc2RT0TXaY1xvoCQOeRHAGACGMYfq0pKA9o7+qCMhntJFEAAJEnweXQLZPSTWsvbi5STb3PoogAILKRHAGACFPr9anGE9ib3xqPT7Ve3igDQDT6yoWDZbOduV9V69Ur+aXWBQQAEYzkCABEmASnQ26XI6C9bpdDCc7A9gIAIsuQPkmaNrKfae259fvk91MxCAAdRXIEACKM3W7TjKyBAe2dmZUiu93W/kYAQERq2pj105Iq5RdXWhQNAEQukiMAEIHm52SovZSH027TvJxhIYkHAGCN6aP7a1BPt2nt+Y8Y6wsAHUVyBAAikNcw1FbRtNNu06K545SZmhyymAAAoeew2/SVCweb1l7ZWqpjp+otiggAIhPJEQCIQI++sbPFdbfLoTkT0rRyQY5mZw8KcVQAACvcMjldLseZesJ6r6EXNxdbGBEARB6n1QEAADpm/Z4jen/nYdPaD64dpTsuHqoEp4MeIwAQY/p2i9fMrBStyDszqeYvH+/XvJxhvCYAQICoHAGACOL3+/XI65+Z1vp3j9edFw9TYpyTN8EAEKO+dpG5Mev+I9V6a/tBGQaTawAgEFSOAEAEefezQ9q8/5hp7Z4rRsgdx7heAIhlE4f00uiB3bWj/ETj2jee3yy3y6EZWQM1PyeDPlQA0AYqRwAgQhiGX4+8bu41kt7brVsmpVsUEQAgXNhsNmWl9Wi2XuPxafmWEs16Mlcr8kosiAwAIgPJEQCIEKsKyrS9rMq09t0rRyrOya9yAIh1haVV+teW1pMfXsOvhcvyVVha1eoeAIhlvKMGgAjg8Rl67E1z1ciI/t2YSAMAkCQtzt0jbzv9RbyGX0ty94YoIgCILCRHACACvLS5WHsrTpnWFl49Sg4asAJAzDMMv9YUlAe0d3VBGU1aAaAFJEcAIMzVenx64u1dprVxaT10zfkDLIoIABBOar0+1Xh8Ae2t8fhU6w1sLwDEEpIjABDm/vrxAZVV1prWvn/NaNlsVI0AAKQEp0NuV2BTy9wuhxKcTDgDgKZIjgBAGDtZ59Xv391tWpua0UeXDO9jUUQAgHBjt9s0I2tgQHtnZqXIzpFMAGiG5AgAhLE/5+7V0VP1prXvXTOKqhEAgMn8nAw520l62G3SvJxhIYoIACILyREACEOG4VfpsRo9vfZz0/qVY/pr4pBeFkUFAAhXmanJWjR3XJsJkp6JLo0Y0C2EUQFA5HBaHQAA4IzC0iotzt2jNQXlzZrr2WynJ9QAANCS2dmDNKJ/dy3J3avVBWXNXkeOnvLopc3F+vKUwRZFCADhi8oRAAgTK/JKNOvJXC3fUtLi1IEJg3tqTEqyBZEBACJFQwXJtoev0baHr9b49B6mx//3nd2q9xoWRQcA4YvkCACEgcLSKi1cli+v4W91T15RpQpLq0IYFQAgUtntNiXFu3Rfk4rDkuM1+ufmIouiAoDwRXIEAMLA4tw9bSZGJMln+LUkd2+IIgIARIOc4X01qUmvqt+/s1t13uYVigAQy0iOAIDFDMOvNQXlAe1dXVAmo50kCgAADWw2m+67aqRprbSyVss2FVsUEQCEJ5IjAGCxWq+vxR4jLanx+FTLt30AgA6Yel4fTRnW27T2h3d3qzbA1x4AiAUkRwDAYglOh9wuR0B73S6HEpyB7QUAQDpdPfLdK83VI2WVtfrHRnqPAEADkiMAYDG73aYZWQMD2jszK0V2uy3IEQEAos3U8/rooowm1SPvUT0CAA1IjgBAGJifk6H2ch5Ou03zcoaFJiAAQNRpWj1ysKpOf99wwKJoACC8kBwBgDCQmZqstF6JrT7utNu0aO44ZaYmhzAqAEA0uTCjjy4Z3se09of3Pqd6BABEcgQAwsInB47pwNHqZutul0NzJqRp5YIczc4eZEFkAIBo0rR65PCJOv1l/X6LogGA8OG0OgAAgLT0w32m+6k9EvTavZeqW7yLHiMAgC4zaWhvXTqir9btqmhc+7+1e3TbhUPkjqPhN4DYReUIAFjsYFWtVm0tM63dfvFQJbvjSIwAALrcvU2qRypOUj0CxDLD8Ku63ivD8FsdiqWoHAEAi/314wPynvVilOCy68uT0y2MCAAQzSYO6aVpI/tp7c7DjWv/t/Zz3TolXXa7TQlOB8l5IAYUllZpce4erSkoV43HJ7fLoRlZAzU/JyMm+9yRHAEAC9V5ffrbx+Zv624cP0g9E+MsiggAEAu+e9VIU3LkyKl6jf/Zm/L4/DH/AQmIBSvySrRwWb7pC7oaj0/Lt5RoZV6pFs0dF3P97jhWAwAWWrW1TBUn601rd1w81JpgAAAxIzu9p6aP6mda8/hOf0hq+IA068lcrcgrsSI8AEFUWFrVLDFyNq/h18Jl+SosrQpxZNYiOQIAFvH7/c0asV6U0VujB/ItHQAg+Nr7VjhWPyAB0W5x7p5WEyMNvIZfS3L3hiii8EByBAAs8knRcW0trjSt3XnxMIuiAQDEmvd3HW53Tyx+QAKimWH4taagPKC9qwvKYqpJK8kRALDI0g/2me4P6unWlWP6WxMMACCm8AEJiE21Xp9qPL6A9tZ4fKr1BrY3GpAcAQALHKyq1eqCJuN7pw6R08GvZQBA8PEBCYhNCU6H3K7A3m+6XQ4lOB1Bjih88C4cACzw1/X7m43vvYXxvQCAEDn9ASmwDz2x9gEJiGaG369ktyugvTOzUmJqrDfJEQAIsTqvT3/9+IBp7cbxaYzvBQCEjN1u04ysgQHtjbUPSEC08vv9eviVQh2sqmt3r9Nu07yc2OqFR3IEAELs1fwyHTllHt97J+N7AQAhNj8nQ852kh6x+AEJiFZLP9yn59fvb3ef027TornjlJkaWxMUSY4AQAi1NL53akYfjRrY3ZqAAAAxKzM1WYvmjmszQXJRRp+Y+4AERKN3dhzUz14tNK05HTZdNqpf4xE7t8uhORPStHJBTrujvqOR0+oAACCWbDlwXAUlTcb3XjLUmmAAADFvdvYgjejfXUty92p1QVmzJq0ffF6hvKLjyk7vaU2AAM5ZYWmV7vnbJ2o6dGrRl8ZpdvYgGYZftV6fEpyOmD5CF7LKkQMHDuh73/uexowZo6SkJPXu3VtTpkzRo48+qurq6i691ltvvaU777xTw4cPV1JSknr06KGRI0fq5ptv1lNPPaWTJ0926fUAIFBNq0ZOj+8dYE0wAADoTAXJtoev0Rv3fkHxzjMfjvx+6b//VSCvz7AwQgCddaiqVvOe3ahT9ebE53evHNlYHWK325QY54zpxIgUosqRVatW6bbbblNl5ZlvS6urq7Vx40Zt3LhRixcv1urVq5WRkXFO1zl27JjuuusurVixotljVVVV2rVrl1566SVNnTpV2dnZ53QtAOio8sparWkyvveOi4fIEeMvRACA8GC32zRyYHfde+Uo/fq1HY3r20qr9NxH+/Uf9B4BIkJDJYjfkOY/t0lllbWmx28cP0jfuWK4RdGFr6AnR/Lz8zV37lxVV1erW7du+tGPfqTp06erpqZGL7zwgv70pz/ps88+03XXXaeNGzeqW7dunbpOZWWlrrrqKm3evFmSdN111+nLX/6yhg8fLp/Pp/3792vjxo168cUXu/KPBwAB++vH5vG9bpdDt0wabGFEAAA0N//SYfrXJ8XaefBMtfVjb+7UzKwUDeyRYGFkANpSWFqlxbl7tKagXDUenxw2m3x+81maSUN66VdzsmSz8eVcU0FPjtx7772qrq6W0+nUG2+8oalTpzY+dvnll2vEiBG6//77tWPHDj322GN68MEHO3Wde+65R5s3b5bT6dRf/vIX3XLLLabHL7nkEn3lK1/RY489Jp/P18qzAEBwVNd59dcm3cFvnDBIPRIDmzMPAECouBx2/b8vZmnuHz9qXDtZ59XPXi3U72+bYGFkAFqzIq9EC5flm76Ia5oYGdw7UX/82kTFOx2hDi8iBLXnyMaNG/Xee+9JkubNm2dKjDRYuHChxowZI0n67W9/K4/H0+Hr5Obm6vnnn5ck/c///E+zxMjZbDabnE760AIIjcLSKt23LE/jfvqmjlabf78xvhcAEK6mDOutuZPSTGurCsr07meHLIoIQGsKS6uaJUZa8t/XjVGfbvEhiiryBDU58vLLLzfevuuuu1oOwG7X7bffLul0z5CGZEpHPPnkk5Kkbt26aeHChR3+eQAIhhV5JZr1ZK6WbymRp0kjO5uk7WVV1gQGAEAAfjhjjHo2qXB8cMWnqvVQhQ2Ek8W5e9pNjEjSG9sOhiCayBXU5Mi6deskSUlJSZo4cWKr+6ZNm9Z4Ozc3t0PXqK+vb2zAOmPGjMaeJV6vV/v379eBAwdUX1/f0dAB4Jy0l8H3S1q4LF+FpSRIAADhqXdSnB6YMca0VnS0Rk++s9uiiAA0ZRh+rSkoD2jv6oIyGQEkUWJVUJMj27dvlyQNHz68zaMso0ePbvYzgcrPz1dt7enuu1OnTlV5ebnuuusu9ezZU0OHDtWQIUPUo0cPzZw5Ux9++GEn/hQA0HGBZPC9hl9LcveGKCIAADru5olpmjy0l2ntj+9/rt2HTrbyEwBCqdbrU02A1Vw1Hp9qvVR+tSZoyZHa2lpVVFRIktLS0trc26tXLyUlJUmSioqKOnSdwsJC0zWzsrK0dOlSnTp1yrS+Zs0aXXrppfrtb3/boedvUFxc3OY/ZWVl7T8JgJhABh8AEC3sdpv+3xez5Dxr7LzH59f/vFwgn89Qdb2X1zHAQglOh9yuwBqsul0OJdCMtVVB60x64sSJxtuBjOdNSkrSqVOndPJkx7LQR48ebbz98MMPq66uTtdff70eeughXXDBBaqsrNRLL72kH/7wh6qqqtJ9992nUaNGacaMGR26Tnp6eof2A4hdncngJ8bRKBoAEJ5GDeyu+Zdm6P/Wft64tn7PUY158HXV+wy5XQ7NyBqo+TkZykxNtjBSIPbY7TZdNqqf1nza/hdzM7NSZLczwrc1Qa0caRAXF9fu/vj4011za2pqOnSdsytE6urqdMMNN2jFihWaOHGi4uPj1b9/f33zm9/UqlWrZLfb5ff7df/998vvJ8MNIDjI4AMAos13rhiuQT3dprX6fzcbr/H4tHzL6SbkK/JKrAgPiFmG4VdZZfufoZ12m+blDAtBRJEraMmRhISExtuBNEStq6uTJLnd7nZ2tn4dSXrkkUdktzf/Y+Xk5Oimm26SJH366af69NNPO3SdoqKiNv/ZsGFDh54PQPSy222akTUwoL1k8AEAkSAxzqn57Xyw8hp+mo0DIbb0w33KK6psc4/TbtOiueOo7GpH0Oq4u3fv3ng7kKMyDRUggRzBae06w4YN06hRo1rde8011+jFF1+UJG3cuFFZWVkBX6e9vikAcLb5ORl6+ZMStXUMmww+ACCSFJS2/QFMOtNsfNHccSGICIhtuw6e0K9e22Fac7vs8kuq9Zw+8jYzK0XzcoaRGAlA0JIjCQkJ6tu3ryoqKlRcXNzm3mPHjjUmRzra2+Ps/e0lMM7ee+jQoQ5dBwA6IjM1WQN7uFV6vOUyRzL4AIBI0tFm44/cPJbKSCCI6r2G7v1Hnuq9hml98R2TNTWjj2q9PiU4Hfx/2AFBHeU7Zszpuei7d++W1+ttdd+OHWeyXQ0/E6jzzz+/8bbP13YDxLMfb2u0MACcq50HT7SYGHG7HJozIU0rF+RodvYgCyIDAKDjGBcKhJcn3t6pbU2OsP3HJcN0yfC+stttSoxzkhjpoKBmCHJycrRu3TqdOnVKmzdv1oUXXtjivrVr1zbevuSSSzp0jSFDhmjw4ME6cOCAPv/88zb3nv34oEF8KAEQPCvzSk33+3eP09sLL1MSL1QAgAjU0Gw8kAQJzcaB4Nq076iees/82XdE/266/9rWW0ygfUGtHPniF7/YePuZZ55pcY9hGHruueckST179tT06dM7fJ05c+ZIkg4ePKgPP/yw1X3Lly9vvH3ppZd2+DoAEAi/368V+eZu/bPGDVL3BBeJEQBARKLZOBAeTtZ59d1leaa+di6HTY/fkq2EAKclomVBTY5MmTKlMQmxZMkSffTRR832LFq0SNu3b5ck/dd//ZdcLpfp8aVLl8pms8lms+mhhx5q8Tr33ntv49Sa73znO6bxvg3+8pe/6L333pMkXXfddTRYBRA0nxQdV9FR85EajtAAACLd/JwMOQNIetwyuWM9BAEE7mevFDZ7n/ndq0bqgkE9LIooegQ1OSJJTzzxhNxut7xer66++mr98pe/1Pr16/Xuu+/q7rvv1v333y9JGjlypBYuXNipawwePFg//elPJUmbN2/WlClT9Oyzz2rz5s165513tGDBAt15552SpOTkZD3++ONd8mcDgJY0PVKT0TdJFwyi8SoAILJlpiZr0dxx7SZI/py7V35/G+PaAHSIYfhVXe/Va5+W6R+bikyPTRrSS3d/4TyLIosuQe9KOn78eP3jH//QV7/6VVVVVemBBx5otmfkyJFatWqVaSxvR33/+9/X0aNH9etf/1qFhYWNyZCz9e/fXy+//LJGjBjR6esAQFu8PkOvbjUnR2Zlp8pmo7wYABD5ZmcP0oj+3bUkd69WF5SpxuOT3SZTif9r28q19MN9uusSxtUD56KwtEqLc/doTUF5i/1+kuIcevyWbDk4xtYlQjKy5YYbbtDWrVv1xBNPaNWqVSouLlZcXJyGDx+uL33pS1qwYIESExPP+Tq//OUvNWvWLD311FNat26dysrKlJCQoJEjR2rWrFm655571KMH5UYAgufDz4+o4mS9aW3WuFSLogEAoOs1VJA8cvNY1Xp9OnqqXjf8b66OVXsa9/xi9XaNH9xL2ek9rQsUiGAr8kq0cFm+vEbrVVg/mXW+0nuf++donGbzU/PWJYqLi5Wefvp8ZVFRET1NgBi1cFm+XtpS3Hh/bFoPrVyQY2FEAAAE37s7DumupRtNa4N6urX6O5eqR6KrlZ8C0JLC0irNejK3zcSITdKr38nR+amx+eV/MD5/B73nCADEilqPT69vKzetUTUCAIgF00f3139OM/c9KDleo++9mE//EaCDFufuaTMxIkl+SX/O3ReSeGIFyREA6CLv7Dikk3Xexvs2m3QDyREAQIz43tUjNXloL9Pam4UHtSR3r0URAZHHMPxaU1De/kZJqwvKZLSTREHgSI4AQBdZkVdiuj81o48GJCdYFA0AAKHldNj1v7dOUO+kONP6r9bs0JYDxxonbvBhDmhdrdfXYvPVltR4fKr1BrYX7QtJQ1YAiHaVNR69u+OwaW12NlUjAIDYMrBHgh6/JVt3PrNBDadpvIZft/3pY/nlV63HkNvl0IysgZqfk6HMVEbdA2dLcDrkdjkCSpC4XQ4lOB0hiCo2UDkCAF3g9U/LVe8zGu/HOey69vwUCyMCAMAa00b207cvG25aq/H4VOsxGm8v31KiWU/mNqu6BGKd3W7TjKyBAe2dmZUiO2N8uwzJEQDoAivyzW/uLhvVj+78AICYde+VI3RBO1UhXsOvhcvyVVhaFaKogMhw0/hB7e5x2m2alzMsBNHEDpIjAHCODlXV6sPPj5jWZme3/6IGAEC0cjrsGtwnsd19XsNPw1agiZX5pW0+7rTbtGjuOI6ldTGSIwBwjl7ZWqazpxQmxTl0xZj+1gUEAIDFDMPfrBdXa5i4AZzxaUml/rm52LTm+PfRGbfLoTkT0rRyQQ5fxAUBDVkB4BytbHJe+poLBirBRXMsAEDs6szEjcQ4Ppogtvn9fv3s1cJmX7q9vXCakt0uJTgd9BgJIn4DAcA52FtxSvnFlaY1MvkAgFjHxA2g417fVq6P9x41rX1r+nAN7OG2KKLYwrEaADgHK/PMZ0L7JMXpkvP6WBQNAADhgYkbQMfUeX36+ertprVBPd00XQ0hkiMA0El+v7/ZlJrrx6bI6eBXKwAA83My5Gwn6eFg4gYgSXrmg30qOlpjWntg5hiOaocQ7+ABoJO2lVZpz+FTprVZHKkBAECSlJmarEVzx7WZIJk0pBcTNxDzDp+o05Pv7DatTR7aSzMDrL5C1yA5AgCdtKJJI9a0Xm5NGNzTmmAAAAhDs7MHaeWCHM2ZkCZ3C9+Ab9h3VDvKqyyIDAgfj735mU7WeRvv22zSg9efL5uN42ahRHIEADrBZ/ibzaCfnZ3KixgAAE00VJBse/gavf/96XK7znwE8fulX6/ZYWF0gLW2lVbqhY1FprU5E9KUldbDoohiF8kRAOiEDXuP6mBVnWmNKTUAALTObrdpcJ9E/ee04ab1dz87rA93V1gUFWCdlkb3JsY59P1rRlkXVAwjOQIAnbAir9h0f/TA7ho5oLtF0QAAEDnmXzpM/brHm9Z+uWaHDMPfyk8A0emNwoNav6fJ6N7LztOA5ASLIoptJEcAoAMKS6t07wuf6IWN5uTIRRm9LYoIAIDIkhTv1HevHGlaKyip1CtbS1v5CSD61Hl9+kULo3vnX5phUUQgOQIAAVqRV6JZT+bq5bzmb96eX3+gWYNWAADQsrmT0nRevyTT2iOvf6Y6r8+iiIDQMQy//vT+Hu0/Um1a/+GM0YzutRDJEQAIQGFplRYuy5e3lZJfn+HXwmX5Kiyl4z4AAO1xOuz6wbWjTWvFx2r0/Ef7LYoICL7C0irdtyxPmT95TY++sdP02MQhvXT92BSLIoNEcgQAArI4d0+riZEGXsOvJbl7QxQRAACR7arMAZo8tJdp7X/f2a3Kao9FEQHB01CBvHxLiWo9RrPHp43sx9RDi5EcAYB2GIZfawrKA9q7uqCMhnIAAATAZrPpRzPHmNYqazz6w9rdFkUEBEd7FciS9Lu3d1GBbDGSIwDQjlqvTzWewM5A13h8quW8NAAAAZkwuJdmZg00rT3zwT6VHK+xKCKg61GBHBlIjgBAOxKcDrkDbI7ldjmU4KSRFgAAgfr+NaPltJ85TlDvNfRYk34MQKSiAjlykBwBgHbY7TbNaPKtVmtmZqXIbue8KAAAgRrWN0m3XTjYtLb8k2KOGCAqUIEcOUiOAEAA5udkqL2ch9Nu07ycYaEJCACAKHLPFSOUFHem8tLvl365Zruq6718k46IRgVy5CA5AgAByExN1rA+Sa0+7rTbtGjuOGWmJocwKgAAokPfbvH6z2nnmdbW7apQ5oOv6/yfvK77luVRSYKIRAVy5CA5AgABqKz2aN/R6mbrbpdDcyakaeWCHM3OHmRBZAAARId5lw5TcoKz2XqNx6flW06PQV2RV2JBZMC5uWFsart7qEC2XvPfPgCAZtbtPizfWWW9LodN6390hXolxpHhBwCgC+yrqNbJOm+rj3sNvxYuy9eI/t2p1EREWbvzcJuPU4EcHqgcAYAAvPeZ+UXt4vP6qk+3eBIjAAB0kcW5e9ReexHGnSLSHDlZpxc2HjCtNUxnogI5vFA5AgDtMAx/s+TIZaP6WRQNAADRp6PjTh+5eSxfUCAiPPvRftV6jMb7TrtN737/MvVJilOC08Hf4zBCcgQA2rGttEoVJ+tMa9NH9bcoGgAAok9nxp0mxvFRBuHtVJ1Xz320z7Q2KztV6b0SrQkIbeJYDQC0473PDpnuD+ubpKF9W59cAwAAOoZxp4hGL2ws0vFqj2mt6VQmhA+SIwDQjnebJEemjeRIDQAAXYlxp4g29V5DS9btMa1dOaa/Rg7oblFEaA/JEQBow7FT9corOm5amz6aIzUAAHS1+TkZjY0q2zJ5aK8QRAOcm5X5pSqtrDWtffMyqkbCGckRAGjD+7sOmzrnJ7jsunBYb+sCAgAgSmWmJmvR3HHtJkh+/95unWpj5C9gNcPw649rPzetTR7aSxOH8B4ynJEcAYA2tDTCNyHAM9EAAKBjZmcP0soFOZozIa2xB4nLYU6WFB2t0a9f22FFeEBA3t5xSLsOnTSt0Wsk/NHiGQBaYRh+rd1pTo5MZ4QvAABB1VBB8sjNY1Xr9SnObteti9dr475jjXue+2i/rr1goC4+r6+FkQLN+f1+PfXebtPaqAHdmXQYAagcAYBWbC2p1NFT9aa1y3hhAwAgJOx2mxLjnHI67Xrk5nFKcJk/utz/4laO1yDsbNx3TFsOHDet3T0tgybCEYDkCAC04t0d5ik15/VLUnpv5tIDABBqQ/sm6f5rRpvWio9xvAbh5/+a9BoZ1NOtG8alWhQNOoLkCAC04r1mR2qoGgEAwCp3XjxUU4aaG1o+99F+ffh5hUURAWY7yqv0TpMv1+ZfOkwuBx+7IwH/lQCgBUdO1mlr8XHTGkdqAACwjt1u029uHsvxGoStP67dY7rfK9GlWyanWxQNOorkCAC04P1dh+U/a4RvYpxDk4f1si4gAACgoX2T9INrmx+v+dUajtfAWkVHq7Uyv9S0dsfFQ5UYxwyUSEFyBABa8O4O85GaS4b3VbyTEb4AAFjtjqnNj9c8v36/cncdVnW9V4bhb+UngeBZkrtXvrP+7rldDt0xdah1AaHDSGMBQBM+w6/3d5mTI5cxwhcAgLDQcLzm2ifeV63HaFz/2pIN8uv0h9IZWQM1PydDmanJ1gWKmHH4RK3+vmG/ae3LU9LVKynOoojQGVSOAEATeUXHdbzaY1qj3wgAAOGjpeM1Dd/Z13h8Wr6lRLOezNWKvJLQB4eYUVhapfuW5WnqL99RnfdM1YjDJs2/NMPCyNAZJEcAoIn3PjN3GR81oLsG9XRbFA0AAGjJlKG9ZWvjca/h18Jl+SosrQpZTIgdK/JOJ+CWbymRt8lRLsMvbdp31KLI0FkkRwCgiXebJEc4UgMAQPhZ8sFetdddxGv4tSR3b0jiQewoLK3SwmX5zZIiDfwSibkIRHIEAM5y6EStPi0xv5BxpAYAgPBiGH6tKSgPaO/qgjKatKJLLc7d02pipAGJuchDcgQAzrL2M3Mj1m7xTk0ayghfAADCSa3XpxqPL6C9NR6far2B7QXaYxh+rdpaFtBeEnORheQIAJzlvSbJkZzhfeVy8KsSAIBwkuB0yO1yBLTX7XIowRnYXkA6nQBpaSx0QXGl7nhmg+q8Ris/aUZiLrIwyhcA/s3rM5qN8J0+mn4jAACEG7vdphlZA7V8S/vTaKae10d2e1utW4HTCkurtDh3j9YUlKvG42scC31V5gCt+KRUr20L7ChXAxJzkYXkCAD825YDx3Wi1mtao98IAADhaX5Ohlbmlbbb+yG/6LgOnahV/+4JIYoMkWhFXkmzJqsNY6EDScK1ZGZWCom5CEKtOAD8W9MRvmNSkjUgmTdSAACEo8zUZC2aO07Odj58HjlVr2/+ZYvqON6AVrQ3faYznHab5uUM67LnQ/CRHAGAf3u3Sb+R6YzwBQAgrM3OHqSVC3I0Z0JaYw8St8uhvt3iTPs27z+mB1/eJr+f5phoLpDpMw16uF36wbWj9cjNY1tNzDntNi2aO06ZqcldGSaCjGM1ACCpvLJW28vMI3ynj+ZIDQAA4a6hguSRm8eq1utTgtOhY9X1mvXkByo5XtO47x+bijQmpbvuvIRv83FGR8ZCO+02rf3+ZeqZeDr5dn5qDy3J3avVBWWNPUpmZqVoXs4wEiMRiOQIAEhau9N8pCY5wanx6T2tCQYAAHSY3W5TYtzpjzd9usXrT7dP0pynPjSN/P3Zqu0aOaC7Lh7e16owEWaKjlUHPBbaa/gV5zxz+KKlxBw9RiIXx2oAQNK7O8xHai4d2U9ORvgCABCxGj64ns1n+PWtv23RgSPVFkWFcGEYfv19wwFd97t1Af9Ma9NnGhJzJEYiG+/8AcS8eq+hdU1G+F42kn4jAABEuplZKfrO5cNNa8erPfr6c5tUVeNRdb1XRhc24UT4MQx/s//Ouw+d1JefXq8fLS/QybrAG/UyfSa6cawGQEwrLK3SL9ds16l68wtjSk+m1AAAEA3uvXKktpef0JuFBxvXPjt4QuN/+oZ8/tPVADOyBmp+TgZ9IqJIYWmVFufu0ZqC8sZ+INecP0BJ8U79c1Ox6n1Gh56P6TPRj8oRADFrRV6JZj2Zq3W7Kpo9duefN2pFXudm2gMAgPBht9v0+C3ZGjmgm2nd9+9CghqPT8u3nH5PwGt/dGh4j7d8S0ljP5Eaj08v55Xqrx8faDExMnlILzmYPhPTSI4AiEntzbP3Gn4tXJavwtKqFh8HAACRo1u8Uz+4dnSbe3jtjw7tvcdrKr23W8/9xxT985sX65UWxkLPmZCmlQtyNDt7UDDDRhjgWA2AmBTIPHuv4deS3L3NmrkBAIDIs6qgrN09vPZHvkDe40mSTdI3pmXo3itGyh13OhnC9JnYRuUIgJjTkXn2qwvKaNQGAECE47U/NnTkv3Oc064fXDO6MTFyNqbPxCaSIwBiTq3XF/A8+xqPT7XewLuYAwCA8MNrf2zoyH/nOq/Bf2eYkBwBEHMSnI7Gs6TtaW2ePQAAiBwdee2Pd9p57Y9QeytOKdBaD97joSmSIwBijt1u04ysgQHtZZ49AACRryOv/T7Dr09LK4McEbraS5uLNeepDxXogSje46EpkiMAYtL8nAy193rIPHsAAKLH/JwMOQP4MOw1/Prq4o9VUEyCJBwZhl/V9d7GvjB1Xp8e+FeBFv4zX7We5iN6W8J7PLSEaTUAYlJmarIuGd5X63ZVtPg48+wBAIguDZNIAhnzWlXr1VeXfKy/zr9QFwzqEaII0ZbC0iotzt2jNQXlqvH45HY5NG1UP31+6KR2HToZ8PPwHg+tCVnlyIEDB/S9731PY8aMUVJSknr37q0pU6bo0UcfVXV1dVCuWVZWpp49e8pms8lms+myyy4LynUARKYjJ+ubrTHPHgCA6DU7e5BWLsjRnAlpjT1I3C6Hvjg+VeMH9zTtrazx6LbFH+vTEipIrLYir0SznszV8i0ljQ1Xazw+vfZpeYuJkdunDtGKb1/c7L8z7/HQFpvf7w/6nKpVq1bptttuU2Vly79YRo0apdWrVysjI6NLr3vzzTfrpZdearw/bdo0vffee116jQbFxcVKT0+XJBUVFSktLS0o1wHQNapqPcp++A2d/cXRc/8xRTnD+3L+FACAGGAYftV6fUpwOmS321Tr8Wn+s5uUu9tcVdrD7WqsIGn6Mwi+wtIqzXoyt91qH+l0AuSXN2Xpi+PPJD/4bxadgvH5O+jHavLz8zV37lxVV1erW7du+tGPfqTp06erpqZGL7zwgv70pz/ps88+03XXXaeNGzeqW7duXXLdV155RS+99JL69++vQ4cOdclzAogeW/YfMyVG4hx2TRnWmxdNAABihN1uU2LcmY9DCS6H/nT7JM17dqM+/PxI43pljUe3/mm9pgztrQ8/P9J4pGNG1kDNz8ngeEaQLc7dE1BipFu8Uy9982KNGtjdtN70vzPQmqAfq7n33ntVXV0tp9OpN954Qw888ICmTp2qyy+/XE8//bR+85vfSJJ27Nihxx57rEuuefLkSX3729+WJD366KNd8pwAosumfcdM98em9VBCgCP+AABAdHLHObTkjsm6+Lw+pvUTtV69veOQ6UjH8i2nj3qsyCuxItSYYBh+rSkoD2ivzzA0on/XfNGO2BTU5MjGjRsbj7HMmzdPU6dObbZn4cKFGjNmjCTpt7/9rTwezzlf94EHHlBRUZGmT5+ur33ta+f8fACiz8Z9R033Jw3tbVEkAAAgnDQkSKZm9Gl3r9fwa+GyfBWWVoUgsthT6/U1JqTaU+MxVOsNbC/QkqAmR15++eXG23fddVfLAdjtuv322yVJx44dO+eeIBs2bNDvf/97xcXF6amnnjqn5wIQneq8PuUVHTetTRnWy5pgAABA2HHHObTkzknq2y2u3b1ew68luXtDEFXsSXA6lOAM7COr2+VQgpMqYHReUJMj69atkyQlJSVp4sSJre6bNm1a4+3c3NxOX8/r9eob3/iGDMPQD37wA40aNarTzwUgen1aUqU6r2FamziYyhEAAHBGgtOhU3WBVSKsLiiTEUBfDHTMjvITCvTf6sysFHrH4ZwEtTPN9u3bJUnDhw+X09n6pUaPHt3sZzrj0UcfVX5+vs477zw98MADnX6elhQXF7f5eFlZWZdeD0DwbGpypGbUgO7qkeiyKBoAABCOOnakw6dar4/Gn11o8/5juuuZDc2+0GqJ027TvJxhIYgK0Sxo//fW1taqouL0GKz2xur06tVLSUlJOnXqlIqKijp1vT179uinP/2pJOkPf/iDEhISOvU8rWkYEwQg8jXtNzKZIzUAAKCJBKdDbpcjoASJ22XnSEcX+mB3hb7+3CZV17f/795pt2nR3HFMDcI5C9qxmhMnTjTeDmQ8b1JSkqTTk2Y64+6771ZNTY1uueUWXX311Z16DgDRzzD82rTfPKlmMs1YAQBAE3a7TTOyBga01+mw68DR6iBHFBveKjyou5ZubJYYuSA1WbOzU+X+93RBt8uhORPStHJBjmZnD7IiVESZoFaONIiLa7+RUXx8vCSppqamw9d67rnn9NZbbyk5OVmPP/54h38+EO1VtJSVlWnKlClBuTaArvP54ZM6Xm2eisWkGgAA0JL5ORlamVcqbzv9RE7UejX79x/oqdsm6OLhfUMUXXQwDL9qvT4lOB16ZWup7luWL1+Tf9/TR/XTU1+dqASXw7SfHiPoSkFLjpx9rKW+vr7d/XV1dZIkt9vdoetUVFRo4cKFkqSf//znSklJ6dDPB6q9o0EAIsPGfeaqkUE93RrUs2O/dwAAQGzITE3WornjtHBZfrsJksoaj7725w36yQ2Z+tpFQ2Sz2fgg34bC0iotzt2jNQXlqvH45HLY5PE1/3d8XVaKHr8lW3H/nlpjt9vo7YKgCNrfqu7duzfeDuSozKlTpyQFdgTnbPfdd58qKio0adIkfetb3+pYkABiTtN+I5OG0m8EAAC0bnb2II3o311LcvdqdUGZajw+uV0OTRvVTzvKqrTvyJnjND7DrwdXbNNHnx9RvNOh17eVN+6fkTVQ83My6I0haUVeSbOEU0uJkbmT0vTLm8bKQWIJIRDUypG+ffuqoqKi3Ukvx44da0yOdKTxaWlpqZ5//nlJ0uWXX65ly5a1uf/QoUN64YUXJEnDhg3ThRdeGPC1AESH5skRjtQAAIC2NVSQPHLzWFMlyMk6r+77R57eKDxo2r/m03LT/RqPT8u3lGhlXqkWzR0X0z0yCkurAqrEmZ2dql/dNJaKG4RMUOuRxowZo3Xr1mn37t3yer2tjvPdsWOH6WcCdfZxnd/85jft7t++fbtuvfVWSdIdd9xBcgSIMWWVNSo+Zu5rNJnKEQAAEKCmRzq6xTv1f1+dqMff2qn/fWd3uz/vNfxauCxfI/p3j9kKksW5e9pNjEinp9CQGEEoBW1ajSTl5ORIOn1kZvPmza3uW7t2bePtSy65JJghAYhhTfuNJCc4NbJ/91Z2AwAAtM9ut2nh1aP0v7eOVyCf5b2GX0ty97b4mGH4VV3vlRFA8iASGYZfawrK298oaXVBedT+e0B4Cmpy5Itf/GLj7WeeeabFPYZh6LnnnpMk9ezZU9OnTw/4+YcOHSq/39/uPw2mTZvWuLZ06dJO/ZkARK5NLRyp4RsJAADQFa7LSpHLEdjHq5X5JSo6dqZXSWFple5blqfzf/K6Mh98Xef/5HXdtyxPhaVVwQrXErVen2o8vvY36vRRpFpvYHuBrhDU5MiUKVN06aWXSpKWLFmijz76qNmeRYsWafv27ZKk//qv/5LL5TI9vnTpUtlsNtlsNj300EPBDBdAlGtaOUIzVgAA0FVqvT7VeY2A9np8fl3663c184l1uvv5zbrhyVwt31LSmDho6FEy68lcrcgrCWbYIZXgdCjeGdhHULfLoQSnI8gRAWcEfQbSE088oUsuuUQ1NTW6+uqr9cADD2j69OmqqanRCy+8oKefflqSNHLkyMaRvADQ1SprPNpRbv72ZQrNWAEAQBdJcDrkdjkCroyQpMKyKhWWtV4d0l6PkkgbFVxWVRvw3plZKRHxZ0L0CHpyZPz48frHP/6hr371q6qqqtIDDzzQbM/IkSO1atUq0/hfAOhKWw4c01mn7BTntCsrrYd1AQEAgKhit9s0I2uglm/p2koPr+HX/639XL+7dXzjWmFplRbn7tGagsgZFVxV69Fdz2wIqLrGabdpXs6wEEQFnBH05Igk3XDDDdq6daueeOIJrVq1SsXFxYqLi9Pw4cP1pS99SQsWLFBiYmIoQgEQo5r2GxmX1kPxlGoCAIAuND8nQyvzStucxmKT1C3BqRO13oCfd2V+qfZVnNTU8/pKkpbk7jVdI9BRwVZVmtR7DX3zL5u18+DJdvc67TYtmjsubJM8iF42/9kdS9FpxcXFSk9PlyQVFRUpLS3N4ogAnG3uHz/Shr1nEiTfuuw83X/taAsjAgAA0WhFXokWLstvMUHS8MH/uqwUfbC7Qnc8s7HLr++027RyQY4puWBlpYnf79f9L27VPzcXm9YH93Ire3AvvVl4sDGmmVkpmpczjMQI2hWMz98hqRwBACvVeX3KKzpuWptMvxEAABAEs7MHaUT/7lqSu1erC8pa/eB/6Yh+He5REgiv4dcv12zXk7dOUI9EV4vJmkArTaRzrzZ58p3dzRIjfbvF669fv0jpvRMjrm8KohfJEQBR79OSStWfdb7VZpMmDGZSDQAACI7M1GQtmjtOj9w8ttUP/sHqUSJJ63ZVaNxP31BqjwSVVdaqtaMCbTV87Ypqk5c/KdGiN3ea1hJcdi25Y5LSe59uq2C325QYx8dSWC+oo3wBIBw0HeE7akB39Uh0tbIbAACgazR88G+tImJ+Toac7VRLOO02/eLGC/TNaRkdvn5pG4mRBl7Drz+t22NaW5F3eoxwZ8YLG4Zf1fVeffh5he5/cavpMZtN+t2Xx2tces8O/1mAYCNFByDqbdxrbsbKkRoAABAOGipM2utRMjt7kAzDr6Uf7u/yYziS9K9PSrStpFIjBnZXL3ec/rZhv1rrKdtatUnTSpOWPHh9pq4+f2CXxw90BZIjAKKaYfi1ab+5cmTSUI7UAACA8BBoj5KOHMOx29RqcqM1Ow+d1M5D7U+TkU4nSBbn7tFjc7Mltd2EtsFdlwzVXZcwnhfhi+QIgKi2+/BJVdZ4TGtUjgAAgHASSI8SKbBRwU67TS9982LZbNKcpz6Uxxec4aTLt5Roy/5j6tMtXlsOHFNbM1BtkuZMYJonwhs9RwBEtQ1NjtQM6ulWak+3RdEAAAC0rr0eJQ1JlNb6lDQcwxmX3lNj03rqhnGpwQxX+45Ua/P+thMjkuSX9MwH+4IaC3CuSI4AiGqb9jXtN8KRGgAAELlmZw/SygU5mjMhTW6XQ5Lkdjk0Z0KaVi7IMY3lDbTh6yM3j9XPb7xAd0wdomBN011dUCajo2d9gBDiWA2AqNZ0Us0kjtQAAIAIF+gxnI40fG1wos4blPHCNR6far0+xvYibFE5AiBqlR6vUcnxGtPalGEkRwAAQHRo7xiO1LFKEymwahPHv5Mqj7VxxKcpt8uhBKcjoL2AFUjbAYhaG5scqenhdml4v24WRQMAAGCNQCtNzt4baLVJ7u6KgCpNZmaltJnEAaxG5QiAqLWp6ZGaIb14UQYAADErkEoTKTh9TeblMMYX4Y3KEQBRq2nlyGSO1AAAAASkq/uaZKYmhyJsoNNIjgCISpU1Hn128IRpjUk1AAAAHdNQbdKW2dmDNKJ/dy3J3avVBWWq8fjkdjk0MytF83KGkRhBRCA5AiAqbdl/TP6zvryIc9p1waAe1gUEAAAQxTrS1wQIRyRHAESlpkdqstN6Kp4O6QAAAEEVSKUJEI5oyAogKjXvN8KRGgAAAAAtIzkCIOrUenzKL6o0rU0aSjNWAAAAAC0jOQIg6nxaUql6n9F432aTJgymcgQAAABAy0iOAIg6H+89Yro/emCyerhdFkUDAAAAINzRKQdA1CgsrdLi3D16+ZMS0/p5/ZIsiggAgP/f3r2HR1Udeh//zSUhIRAChmggIDcjUaJyi1LCgUABBVFBixe8cZDyHi+nKrxUaKVUHxQtlNqnVU8PiIVXjbRFRUKUE1BKRApeCFgCykUgEC4BTIBcJ7PfPziZZmCSzIS5Zn8/z5Pn2dmz9l5ru5xhzS97rwUAiATcOQKgRfhg22Hd9od8rfzqsJyG+2trdhTrg22HPR8IAAAAwPQIRwBEvJ1HyjR9RYEcF6Yi/8tpSNNXFGjnkbIgtwwAAABAJCAcARDxFufvazAYqeNwGlqSvz9ILQIAAAAQSQhHAEQ0p9NQ7o6jXpVds6NYziZCFAAAAADmQzgCIKJVOmpVUVPrVdmKmlpVOrwrCwAAAMA8CEcARLQYu02xUTavysZG2RRj964sAAAAAPMgHAEQ0axWi0Zek+RV2THpybJaLQFuEQAAAIBIQzgCIOJV1zY9j4jdatGUzO5BaA0AAACASEM4AiCi5X9Xoo++aXxCVrvVooUTr9c1neKD1CoAAAAAkcQe6gYAQHOdrXLo53/b7rbPZrUoymZRZY1TsVE2jUlP1pTM7gQjAAAAABpEOAIgYr2wplCHf6hw2zf3tms1KaOrKh21irHbmGMEAAAAQJMIRwBEpPzvSvT2Pw667RvU4zJNyugqq9Wi1tF8vAEAAADwDnOOAIg4nh6naR1t08t3XcedIgAAAAB8RjgCIOLMz734cZpnbumtLh1ah6hFAAAAACIZ4QiAiLJpT4n+32b3x2lu7N5B9994ZYhaBAAAACDSEY4AiBjnqhyaecHjNLFRPE4DAAAA4NIwYyGAsOd0Gqp01OrFNYUqOu3+OM3Pb75aV14WF6KWAQAAAGgJCEcAhK2dR8q0OH+fcnccVUVN7UWvZ3TvoAcHdQt+wwAAAAC0KIQjAMLSB9sOa/qKAjmchsfXo2wW/YbHaQAAAAD4AXOOAAg7O4+UNRqMSFKt09C5qovvJgEAAAAAXxGOAAg7i/P3NRqMSJLTkJbk7w9SiwAAAAC0ZIQjAMKK02kod8dRr8qu2VEsZxMhCgAAAAA0hXAEQFipdNR6nHzVk4qaWlU6eLQGAAAAwKUhHAEQVmLsNsVG2bwqGxtlU4zdu7IAAAAA0BDCEQBhxWq16Jb0K7wqOyY9mdVqAAAAAFwywhEAYWdi/y5NlrFbLZqS2T0IrQEAAADQ0hGOAAg7/1N4rNHX7VaLFk68Xtd0ig9SiwAAAAC0ZPZQNwAA6jt0qlzLPz/gts9mtajWaSg2yqYx6cmaktmdYAQAAACA3xCOAAgrC9buVnWt0/V7lM2ivKeHqmPbVoqx25hjBAAAAIDfEY4ACBvfHC7VB9uOuO174KZuuvKyuBC1CAAAAIAZMOcIgLBgGIZezC1029e2lV2PD+8VohYBAAAAMAvCEQBh4e/fleizPSfd9v2fYT3VIS46RC0CAAAAYBaEIwBCzuk0ND93l9u+K+Jj9O+DWaoXAAAAQOARjgAIufe3HVZhcZnbvqdHpio22haiFgEAAAAwE8IRACFVWVOrhWu/dduXenkb3dk/JUQtAgAAAGA2hCMAQmrZ59/r8A8VbvueuaW3bCzZCwAAACBICEcAhExpeY3++Mlet303du+grKuTQtQiAAAAAGZEOAIgZF79dI9KK2rc9s0akyaLhbtGAAAAAASPPdQNAGA+TqehfSXn9MZn+932j70uWTd0SQhNowAAAACYFuEIgKDZeaRMi/P3KXfHUVXU1Lq9Zrda9H9HXR2ilgEAAAAwM8IRAEHxwbbDmr6iQA6n4fH1QT0vU7fEuCC3CgAAAACYcwRAEOw8UtZoMCJJm/ae1M4jZUFsFQAAAACcRzgCIOAW5+9rNBiRpFqnoSX5+xstAwAAAACBQDgCIKCcTkO5O456VXbNjmI5mwhRAAAAAMDfCEcABFSlo/aiyVcbUlFTq0qHd2UBAAAAwF8IRwAEVIzdptgom1dlY6NsirF7VxYAAAAA/IVwBEBAWa0W3ZJ+hVdlx6Qny2q1BLhFAAAAAOAuaOHIwYMHNWPGDKWlpSkuLk4dOnRQRkaGFixYoPLy8ks6d1lZmbKzszV16lT169dPCQkJio6OVseOHTVs2DAtWLBAP/zwg38uBIDPHsnsIUsTmYfdatGUzO7BaRAAAAAA1GMxDCPgsx/m5ORo0qRJKi0t9fj61VdfrTVr1qhHjx4+nzs3N1fjx49XVVVVo+Uuv/xyvfPOO8rKyvK5Dm8UFRWpS5cukqRDhw4pJSUlIPUAkeiH8moNnJenmlrPHzd2q0ULJ16v22/oHOSWAQAAAIg0gfj+HfA7RwoKCjRx4kSVlpaqTZs2mjdvnjZt2qR169Zp6tSpkqTdu3dr7NixOnv2rM/nP3nypKqqqmS1WjV69GgtWrRI69ev11dffaVVq1bp7rvvliQdO3ZMt956q7Zt2+bPywPghbf+cdBjMBIbZdOd/VK06vFMghEAAAAAIWMPdAVPPvmkysvLZbfbtXbtWg0aNMj12vDhw3XVVVdp5syZ2rVrl377299qzpw5Pp0/KipK06ZN0+zZs9W1a1e31/r27atx48Zp8ODB+s///E+Vl5dr+vTpWrdunV+uDUDTqh1O/XnT9277br8+WS/eeZ1i7DbmGAEAAAAQcgF9rGbr1q3KyMiQJE2bNk2vv/76RWWcTqf69OmjwsJCtW/fXseOHVNUVJTf2zJw4EB98cUXslqtOn78uC677DK/np/HagDPVn5VpKdXFLjt+/DxTKWntAtRiwAAAABEsoh7rOb99993bU+ePNlzA6xWPfjgg5Kk06dP69NPPw1IW4YNGybpfBizf//+gNQBwJ1hGFq80f39dmP3DgQjAAAAAMJKQMORjRs3SpLi4uLUv3//BssNHTrUtZ2fnx+QttSfsNVqZQVjIBg+33tSO4vL3PY9MsT3iZcBAAAAIJACOudIYWGhJKlXr16y2xuuqnfv3hcd428bNmyQJNntdvXq1cvn44uKihp9vbi4uFntAlqyxfnud410u6y1RvROClFrAAAAAMCzgIUjlZWVKikpkaQmn/9p37694uLidO7cOR06dMjvbcnJydH27dslSaNHj1Z8fLzP56h7ngmAd/YcP6v1u4677ZuS2Z0JWAEAAACEnYA9X3LmzBnXdps2bZosHxcXJ0nNWs63MadOndJjjz0mSbLZbHr++ef9en4Anr3xmftdI+1io3RnfyYqBgAAABB+AnrnSJ3o6Ogmy7dq1UqSVFFR4bc21NbWatKkSTpw4IAk6Ze//KX69u3brHM1dUdLcXGxa2UewOxOnavW3750fxRt0o1d1To64KuHAwAAAIDPAvZNJSYmxrVdXV3dZPm6CVNjY2P91oZHH31UH330kSRp7NixevbZZ5t9LpbmBbz31uYDqnI4Xb9H2Sx66EfdQtcgAAAAAGhEwB6radu2rWvbm0dlzp07J8m7R3C8MWvWLP3pT3+SJGVmZuovf/mLbDabX84NoGFVjlr9+fMDbvvGXddJl8fHNHAEAAAAAIRWwMKRmJgYJSYmSmp6pZfTp0+7whF/THz60ksvaf78+ZKkfv36afXq1X69IwVAw1ZtO6KSs1Vu+/49s3uIWgMAAAAATQtYOCJJaWlpkqQ9e/bI4XA0WG7Xrl0XHdNcr776qp555hnXuT7++GO1a9fuks4JwDuGYWjJBcv3Dupxmfp05j0IAAAAIHwFNBzJzMyUdP6RmS+//LLBchs2bHBtDx48uNn1LV++XI8//rgkqUePHsrLy3PdvQIg8D7bc1K7jp5x2zf137hrBAAAAEB4C2g4cscdd7i2ly5d6rGM0+nUsmXLJEkJCQnKyspqVl0rV67U5MmTZRiGUlJStG7dOnXq1KlZ5wLQPIvz97n93qNjnIalJoWoNQAAAADgnYCGIxkZGRoyZIgkacmSJfr8888vKrNw4UIVFhZKkn72s58pKirK7fU333xTFotFFotFc+fO9VjP2rVrde+996q2tlZJSUnKy8tTt27d/HotABr33bEz+nT3Cbd9UzK7y2q1hKhFAAAAAOCdgC3lW+eVV17R4MGDVVFRoVGjRmn27NnKyspSRUWFsrOzXSvKpKamavr06T6ff/PmzRo/fryqq6sVFRWlRYsWqaamRt98802Dx6SkpCghIaG5lwTAgzc+c59rpH3rKE3oyxLYAAAAAMJfwMORvn376t1339X999+vsrIyzZ49+6IyqampysnJcVv+11sfffSRysvLJUk1NTWaNGlSk8csXbpUDz/8sM91AfDsxJlK/fVL91Wp7r/pSsVGs3w2AAAAgPAX8HBEksaNG6ft27frlVdeUU5OjoqKihQdHa1evXrpJz/5iR5//HG1bt06GE0B4Ec7j5Rpcf4+rdp2RA6n4dpvt1r0wKArQ9gyAAAAAPCexTAMo+liaEpRUZG6dOkiSTp06JBSUnicAC3bB9sOa/qKArdQpI5F0u/uuUG339A5+A0DAAAA0KIF4vt3QCdkBdAy7TxS1mAwIkmGpOkrCrTzSFlwGwYAAAAAzUA4AsBni/P3NRiM1HE4DS3J399oGQAAAAAIB4QjAHzidBrK3XHUq7JrdhTL2USIAgAAAAChRjgCwCeVjlpV1NR6VbaiplaVDu/KAgAAAECoEI4A8EmM3abYKO+W6I2NsinGznK+AAAAAMIb4QgAn1itFt2SfoVXZcekJ8tqtQS4RQAAAABwaQhHAPjskcweairysFstmpLZPSjtAQAAAIBLQTgCwGdXtIuRpZF0xG61aOHE63VNp/jgNQoAAAAAmske6gYAiDwfFhyRp0VoYqNsGpOerCmZ3QlGAAAAAEQMwhEAPlv59WG338ddl6yX7rpOMXYbc4wAAAAAiDiEIwB8svfEWRUc+sFt34T+KWodzccJAAAAgMjEnCMAfPLeV+53jSS2aaUhvRJD1BoAAAAAuHSEIwC85nQaeu+CR2puv6GT7DY+SgAAAABELr7RAPDalu9P6fAPFW77xvftHKLWAAAAAIB/EI4A8NqFj9SkXt5G17IqDQAAAIAIRzgCwCuVNbVas6PYbd+EfimyWFidBgAAAEBkIxwB4JX/2XlMZ6ocrt8tlvPzjQAAAABApCMcAeCVCydiHdwzUcntYkPUGgAAAADwH8IRAE06caZKG7494baPiVgBAAAAtBSEIwCa9GHBEdU6DdfvsVE23dznihC2CAAAAAD8h3AEQJNWfl3k9vvNfa5QXCt7iFoDAAAAAP5FOAKgUd8dO6NvDpe57eORGgAAAAAtCeEIgEatvGAi1qS2rTS4V2KIWgMAAAAA/kc4AqBBTqeh9y8IR+7o21k2qyVELQIAAAAA/yMcAdCgzftOqri00m0fj9QAAAAAaGkIRwA06G9fud81kpYcr7Tk+BC1BgAAAAACg3AEgEcV1bX66Jtit30TuGsEAAAAQAtEOALAo7U7j+pcda3rd6tFuv2GTiFsEQAAAAAEBuEIAI8ufKQm86qOSoqPCVFrAAAAACBwCEcAXOR4WaXyvzvhto9HagAAAAC0VIQjAC7y/teH5TT+9XvraJtGXXt56BoEAAAAAAFkD3UDAISPnUfKtDh/n9772v2RmkE9LlPraD4uAAAAALRM3DkCQJL0wbbDuu0P+Vr51WEZhvtrn+4+oQ+2HfZ8IAAAAABEOMIRANp5pEzTVxTI4TQ8vl5rGJq+okA7j5QFuWUAAAAAEHiEIwC0OH9fg8FIHYfT0JL8/UFqEQAAAAAED+EIYHJOp6HcHUe9KrtmR7GcTYQoAAAAABBpCEcAk6t01KqiptarshU1tap0eFcWAAAAACIF4QhgcjF2m2KjbF6VjY2yKcbuXVkAAAAAiBSEI4DJWa0W3ZJ+hVdlx6Qny2q1BLhFAAAAABBchCMA9EhmDzWVeditFk3J7B6cBgEAAABAEBGOANA1neLV7bK4Bl+3Wy1aOPF6XdMpPoitAgAAAIDgsIe6AQBC7/S5an1/8txF+2OjbBqTnqwpmd0JRgAAAAC0WIQjAPTpt8dVf4XeGLtVm2YNV0JsNHOMAAAAAGjxCEcAKK/wuNvvmVd1VIe4ViFqDQAAAAAEF3OOACZXU+vU33efcNv347SkELUGAAAAAIKPcAQwua37T+lMlcNtX1ZvwhEAAAAA5kE4Apjcul3uj9Skd26ny+NjQtQaAAAAAAg+whHAxAzD0LrCY277RvBIDQAAAACTIRwBTGxfyTl9f7Lcbd+I3peHqDUAAAAAEBqEI4CJrb9glZrL41upT+f4ELUGAAAAAEKDcAQwsbwLHqkZ3jtJFoslRK0BAAAAgNAgHAFMqrS8Rl8cOO22j0dqAAAAAJgR4QhgUp9+e1y1TsP1eyu7VYN7JYawRQAAAAAQGoQjgEmtv2AJ38G9EhUbbQtRawAAAAAgdAhHABNy1Dr16e4TbvuG92YJXwAAAADmRDgCmNCXB06rtKLGbd+INMIRAAAAAOZEOAKY0IWP1FyTHK/kdrEhag0AAAAAhBbhCGBCFy7hy10jAAAAAMyMcAQwme9LzmnviXNu+0aksYQvAAAAAPMiHAFMZt0Fj9Qktmml6zq3C1FrAAAAACD0CEcAk1m/y/2RmuG9O8pqtYSoNQAAAAAQeoQjgImUVdboH/tOue0b3ptHagAAAACYG+EIYCIbvy2Rw2m4fo+2WTXkqsQQtggAAAAAQo9wBDCRdResUnNTz8sU18oeotYAAAAAQHggHAFMotZp6JPd7pOx/pglfAEAAACAcAQwi22HTut0eY3bvqyrCUcAAAAAgHAEMIm8Qve7Rq6+vK26dGgdotYAAAAAQPggHAFMYv0F4cgIHqkBAAAAAElBDEcOHjyoGTNmKC0tTXFxcerQoYMyMjK0YMEClZeX+62e7OxsjR49WsnJyYqJiVG3bt30wAMPaPPmzX6rA4g0h06Va/exM277CEcAAAAA4LygLFORk5OjSZMmqbS01LWvvLxcW7du1datW7V48WKtWbNGPXr0aHYdlZWV+slPfqLVq1e77T9w4IAOHDigt99+W3PnztWzzz7b7DqASLV+l/tdIx3ionVDl/Yhag0AAAAAhJeA3zlSUFCgiRMnqrS0VG3atNG8efO0adMmrVu3TlOnTpUk7d69W2PHjtXZs2ebXc+UKVNcwUhWVpbef/99bdmyRUuWLFHPnj3ldDo1Z84cLV682C/XBUSSvAuW8B12dUfZrJYQtQYAAAAAwkvA7xx58sknVV5eLrvdrrVr12rQoEGu14YPH66rrrpKM2fO1K5du/Tb3/5Wc+bM8bmODRs26O2335YkjRs3Tu+9955sNpskaeDAgbrtttvUv39/HTx4UDNnztRdd92lhIQEv1xfpHM6DVU6ahVjt8nqxZflSC8fjm0KdPmzVQ5t3nvSbd+P0y5v8jgAAAAAMAuLYRhGoE6+detWZWRkSJKmTZum119//aIyTqdTffr0UWFhodq3b69jx44pKirKp3rGjh2rNWvWyGaz6fvvv1dKSspFZbKzs3XvvfdKkhYsWKDp06c344oaVlRUpC5dukiSDh065LEN4WTnkTItzt+n3B1HVVFTq9gom25Jv0KPZPbQNZ3iW1z5cGxTsK75udX/1OZ9p1z7LBbpL9MGaUC3Dh6PAQAAAIBwFojv3wENR37xi1/ohRdekCRt3rxZN954o8dy8+fP16xZsyRJa9eu1ciRI72u4+zZs0pMTFRVVZVuvvlm5ebmeixXXV2tjh07qqysTD/60Y/02Wef+Xg1jYukcOSDbYc1fUWBHM6Lu95utWjhxOt1+w2dW0z5cGxTOF4zAAAAAESCQHz/DuhjNRs3bpQkxcXFqX///g2WGzp0qGs7Pz/fp3Bky5Ytqqqquug8F4qOjtZNN92ktWvXasuWLaqpqfH5DpWWYOeRsga/MEuSw2no6RUFio+JUq+kNtpz/KyeXlGg2ggtLyns2hQu1zx9RYGuSmrb4F0nAAAAAGAWAQ1HCgsLJUm9evWS3d5wVb17977oGF/ruPA8DdWzdu1aORwOfffdd7rmmmu8rqeoqKjR14uLi70+Vygtzt/XYDBSp9ZpaPKbW70+Z6SXD8c2BeOaHU5DS/L3a+HE6306DgAAAABamoCFI5WVlSopKZGkJm9xad++veLi4nTu3DkdOnTIp3rql2+qnrrbbuqO8yUcqX9spHI6DeXuOBrqZiCMrNlRrN/cdZ3Xk9kCAAAAQEsUsKV8z5w549pu06ZNk+Xj4uIkyeflfH2pp66O5tTTElQ6alVRUxvqZiCMVNTUqtLB/xMAAAAAzC2gd47UiY6ObrJ8q1atJEkVFRUBq6eujubU09QdLcXFxa6VecJVjN2m2CgbAQlcYqNsirHbQt0MAAAAAAipgN05EhMT49qurq5usnzdpKqxsbEBq6eujubUk5KS0uhPcnKyT+cLBavVolvSr/Cq7B03dFLhczfr9hs6RXT5cGxTOF3zmPRkHqkBAAAAYHoBC0fatm3r2vbmEZZz585J8u4RnObWU1dHc+ppKR7J7CF7E1+G7VaLfvpvPRUbbdO0f+sZ0eXDsU3hdM1TMrs3WgYAAAAAzCCgd44kJiZKanqll9OnT7uCC18nPq0/CWtT9dR/NKYlTLDaHNd0itfCidc3+MXZbrVo4cTrXcu7Rnr5cGxTOF4zAAAAAJhZQJfyTUtL08aNG7Vnzx45HI4Gl/PdtWuX2zG+qL/iTP3zNFaP3W5Xr169fKqnJbn9hs66KqmtluTv15odxaqoqVVslE1j0pM1JbP7RV+YI718OLYpHK8ZAAAAAMzKYhiGEaiTz549Wy+++KIkafPmzbrxxhs9lps/f75mzZolSfr44481atQor+s4c+aMEhMTVV1drZtvvlm5ubkey1VXV6tjx44qKyvToEGDtGnTJh+vpnFFRUWuu1EOHTrU5LLC4cLpNFTpqFWM3ebV3BORXj4c2xSO1wwAAAAA4SoQ378D9liNJN1xxx2u7aVLl3os43Q6tWzZMklSQkKCsrKyfKqjbdu2GjFihCQpLy+vwUdrVq5cqbKyMknS+PHjfaqjJbNaLWodbff6C3Oklw/HNoXjNQMAAACAmQQ0HMnIyNCQIUMkSUuWLNHnn39+UZmFCxeqsLBQkvSzn/1MUVFRbq+/+eabslgsslgsmjt3rsd6ZsyYIUlyOBx67LHHVFvrvlRtSUmJfv7zn0s6H8A88sgjl3RdAAAAAACg5QhoOCJJr7zyimJjY+VwODRq1Ci9+OKL2rx5sz755BNNmzZNM2fOlCSlpqZq+vTpzapj+PDhuueeeyRJq1at0siRI7Vq1Sp98cUXWrp0qW666SYdPHhQ0vlHeNq3b++fiwMAAAAAABEvoBOySlLfvn317rvv6v7771dZWZlmz559UZnU1FTl5OS4LcvrqzfeeENlZWVas2aNPvnkE33yySdur1utVj377LOaNm1as+sAAAAAAAAtT8DvHJGkcePGafv27XrqqaeUmpqq1q1bKyEhQQMGDNBLL72kr7/++pJXj4mNjVVOTo7eeustjRw5UklJSYqOjlaXLl103333KT8/v8HHcgAAAAAAgHkFdLUaM4nU1WoAAAAAAIgkEbdaDQAAAAAAQLgjHAEAAAAAAKZGOAIAAAAAAEyNcAQAAAAAAJga4QgAAAAAADA1whEAAAAAAGBqhCMAAAAAAMDUCEcAAAAAAICpEY4AAAAAAABTIxwBAAAAAACmRjgCAAAAAABMjXAEAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATM0e6ga0FA6Hw7VdXFwcwpYAAAAAANBy1f/OXf+7+KUgHPGTEydOuLYzMjJC2BIAAAAAAMzhxIkT6tat2yWfh8dqAAAAAACAqVkMwzBC3YiWoLKyUjt27JAkdezYUXZ7+N+UU1xc7LrLZcuWLUpOTg5xixAI9HPLRx+bA/1sDvSzOdDP5kA/mwP9HBoOh8P19EZ6erpiYmIu+Zzh/w0+QsTExGjgwIGhbkazJScnKyUlJdTNQIDRzy0ffWwO9LM50M/mQD+bA/1sDvRzcPnjUZr6eKwGAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApmYxDMMIdSMAAAAAAABChTtHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATI1wBAAAAAAAmBrhCAAAAAAAMDXCEQAAAAAAYGqEIwAAAAAAwNQIRwAAAAAAgKkRjgAAAAAAAFMjHIlwBw8e1IwZM5SWlqa4uDh16NBBGRkZWrBggcrLy/1WT3Z2tkaPHq3k5GTFxMSoW7dueuCBB7R582a/1YGGBbKfy8rKlJ2dralTp6pfv35KSEhQdHS0OnbsqGHDhmnBggX64Ycf/HMhaFSw3s/1FRcXKyEhQRaLRRaLRcOGDQtIPfiXYPZzXl6eHn74YfXq1UtxcXFq166dUlNTddddd+m1117T2bNn/Vof/iUY/bxz50498cQTSk9PV3x8vOuzOysrS4sWLdKZM2f8Ug/cHT9+XKtXr9acOXN0yy23KDEx0fUZ+vDDDwekTsZhwResfmYcFlqheD/XxzgszBiIWKtXrzbatWtnSPL4c/XVVxt79+69pDoqKiqMW2+9tcE6rFar8dxzz/npiuBJIPt5zZo1RqtWrRo8d93P5Zdfbqxfv97PV4b6gvF+9uTOO+90q2fo0KF+rwP/Eqx+PnXqlHH77bc3+d7++uuvL/2icJFg9POCBQsMu93eaP9eeeWVRkFBgZ+uCnUa+2/+0EMP+bUuxmGhE4x+ZhwWesF8P3vCOCy8cOdIhCooKNDEiRNVWlqqNm3aaN68edq0aZPWrVunqVOnSpJ2796tsWPHXtJfBqdMmaLVq1dLkrKysvT+++9ry5YtWrJkiXr27Cmn06k5c+Zo8eLFfrkuuAt0P588eVJVVVWyWq0aPXq0Fi1apPXr1+urr77SqlWrdPfdd0uSjh07pltvvVXbtm3z5+XhfwXr/XyhDz/8UH/729+UlJTkt3OiYcHq59LSUo0cOVIffPCBJGns2LFavny5Pv/8c+Xn5+utt97Sk08+qZSUFL9cF9wFo59XrFihGTNmyOFwKDo6Wk899ZRycnL0j3/8Q2+//bYyMzMlSQcOHNDNN9+s0tJSv10f3HXp0kWjRo0K2PkZh4WHQPUz47DwEuj384UYh4WhUKczaJ5hw4YZkgy73W5s2rTpotdffvllVwL561//ull1fPrpp65zjBs3znA4HG6vnzhxwujatashyWjfvr1x+vTpZtWDhgW6n7Ozs41p06YZBw4caLDM73//e1cdw4cP97kONC0Y7+cLnTlzxujSpYshyVi2bBl/sQiCYPXzAw884KonOzu7wXJOp9Ooqalpdj3wLBj93KdPH9c5Vq9e7bHMhAkTXGUWLlzYrHrg2Zw5c4wPP/zQOHr0qGEYhrF///6A/KWZcVhoBaOfGYeFXrDezxdiHBaeCEci0JYtW1xvoGnTpnksU1tba6Slpbn+wayurva5njFjxhiSDJvNZhw6dMhjmXfeecfVlgULFvhcBxoWrH72xoABA1y375aUlASkDrMKVT8/8cQThiQjKyvLMAyDf5QDLFj9vHHjRlc9c+fOvdRmw0fB6OfS0lJXHf369WuwXEFBgavcnXfe6VMd8E2gvkwxDgsvwfrS7AnjsOAJVj8zDgtPPFYTgd5//33X9uTJkz2WsVqtevDBByVJp0+f1qeffupTHWfPntW6deskSSNHjmzw9usJEyYoPj5ekrRy5Uqf6kDjgtHP3qqbHMrpdGr//v0BqcOsQtHPW7Zs0R//+EdFR0frtddeu6RzwTvB6uc//OEPkqQ2bdpo+vTpPh+PSxOMfq6urnZt9+jRo8FyPXv2dG1XVVX5VAdCj3EY6mMc1rIwDgtfhCMRaOPGjZKkuLg49e/fv8FyQ4cOdW3n5+f7VMeWLVtcg6n657lQdHS0brrpJtcxNTU1PtWDhgWjn71Vf2BttfKx4U/B7meHw6Gf/vSncjqd+vnPf66rr7662eeC94LRz9XV1a55Rm655Ra1adNG0vk+P3DggA4ePOj2xRr+F4x+TkxMVIcOHSRJ+/bta7Dc3r17Xdupqak+1YHQYxyG+hiHtRyMw8Ib764IVFhYKEnq1auX7HZ7g+V69+590TG+1nHheRqrx+Fw6LvvvvOpHjQsGP3srQ0bNkiS7Ha7evXqFZA6zCrY/bxgwQIVFBSoZ8+emj17drPPA98Eo58LCgpUWVkpSRo0aJCOHj2qyZMnKyEhQd26ddOVV16pdu3aacyYMdq0aVMzrgJNCdb7+ac//akk6auvvlJubq7HMs8//7wkyWaz6ZFHHvG5DoQW4zDUxzis5WAcFt4IRyJMZWWlSkpKJKnJlQbat2+vuLg4SdKhQ4d8qqd++abq6dKli8fj0HzB6mdv5OTkaPv27ZKk0aNHu27fxaULdj/v27dPzz33nCTp1VdfVUxMTLPOA98Eq5937tzpVmd6errefPNNnTt3zm1/bm6uhgwZot/97nc+nR+NC+b7+Re/+IV+/OMfS5LGjx+vGTNmKDc3V1u3btW7776rYcOG6a9//atsNpt+//vfKy0tzec6EFqMw1CHcVjLwTgs/BGORJgzZ864tutumW5M3eDL1+UCfamnro7m1APPgtXPTTl16pQee+wxSef/+lj3l0j4R7D7edq0aaqoqNDdd98d1KXqzC5Y/Xzq1CnX9q9//WuVlJTo1ltv1RdffKHKykodO3ZMr776quLj4+V0OvX00083eNcBfBfM93ObNm2Um5ur//7v/1ZKSooWLlyoMWPGKCMjQ/fcc482bNigCRMm6LPPPtOjjz7q8/kReozDIDEOa2kYh4U/wpEIU3fLtHT+OdOmtGrVSpJUUVERsHrq6mhOPfAsWP3cmNraWk2aNEkHDhyQJP3yl79U3759/XZ+BLefly1bpry8PMXHx2vRokU+H4/mC1Y/179DpKqqSuPGjdMHH3yg/v37q1WrVkpKStJ//Md/KCcnR1arVYZhaObMmTIMw6d64FmwP7e/+OILvfPOOw3OO5KXl6c///nPKisra9b5EVqMw8A4rGVhHBYZCEciTP3br7yZWK9uAqfY2NiA1VN/kihf64Fnwernxjz66KP66KOPJEljx47Vs88+67dz47xg9XNJSYlr5ZJ58+YpOTnZp+NxaULxuS1Jv/nNbzxO3JeZmakJEyZIkr755ht98803PtUDz4L5uf3Xv/5Vw4YN0/r165Wenq733ntPJ0+eVHV1tfbu3asXXnhBNTU1eu211/SjH/1IR48e9bkOhBbjMDAOazkYh0UOwpEI07ZtW9e2N7dO1v0l0ZtbfJtbT/2/VvpaDzwLVj83ZNasWfrTn/4k6fwXqb/85S+y2Wx+OTf+JVj9/PTTT6ukpEQDBgzgFvsQCMXndvfu3RudAX/06NGu7a1bt/pUDzwLVj8fO3ZMDz/8sKqqqnTttddq06ZNuuOOO9ShQwdFRUWpR48emjVrlj788ENZLBb985//1BNPPOHbxSDkGIeZG+OwloVxWORoeCp1hKWYmBglJiaqpKRERUVFjZY9ffq06x/M+pN1eaP+5F9FRUUaMGBAg2XrT/7laz3wLFj97MlLL72k+fPnS5L69eun1atX85eoAAlGPx85ckTLly+XJA0fPlwrVqxotPzx48eVnZ0t6fwX7BtvvNHruuBZsN7P9cv7MoHj8ePHfaoHngWrn7Ozs13Hzp49222+ifpGjBihESNGKC8vTytXrtTp06fVvn17n+pC6DAOMy/GYS0L47DIQjgSgdLS0rRx40bt2bNHDoejweUCd+3a5XaML6655hqP52msHpYX869g9POFXn31VT3zzDOuc3388cdq167dJZ0TjQt0P9e/Hfvll19usnxhYaHuvfdeSdJDDz3EP8p+Eoz387XXXuvarq2tbbRs/dcbW3IWvglGP9df4rVfv36Nlu3fv7/y8vLkdDr17bff8n6OIIzDzIlxWMvDOCyy8FhNBMrMzJR0/jbKL7/8ssFydWuiS9LgwYN9qmPgwIGuCcDqn+dC1dXV2rx580XH4NIFo5/rW758uR5//HFJUo8ePZSXl6fExMRmnw/eCXY/IzSC0c9XXnmlunbtKknau3dvo2Xrv965c2ef6kHDgtHP9QMXh8PRaNmamhqPxyH8MQ4zH8ZhQOgRjkSgO+64w7W9dOlSj2WcTqeWLVsmSUpISFBWVpZPdbRt21YjRoyQdH7G+4ZuEV65cqVrJvzx48f7VAcaF4x+rrNy5UpNnjxZhmEoJSVF69atU6dOnZp1Lvgm0P3crVs3GYbR5E+doUOHuva9+eabzbomXCxY7+c777xT0vl5KTZt2tRguZUrV7q2hwwZ4nM98CwY/dy9e3fX9saNGxst+/e//12SZLFY1K1bN5/qQWgxDjMXxmEtF+OwCGMgIg0ZMsSQZNjtdmPTpk0Xvf7yyy8bkgxJxq9+9auLXl+6dGmjrxuGYaxbt85V5rbbbjMcDofb6ydOnDC6du1qSDISEhKMU6dO+ePSUE8w+vnjjz82oqOjDUlGUlKSsWvXLj9fBZoSjH5uSt3xQ4cObdbxaFow+vnAgQNGTEyMIcno37+/cfbs2YvKLF++3HWesWPHXupl4QKB7ufCwkLDYrEYkozOnTsbRUVFHtvxX//1X67zDBo06FIvC43Yv3+/67/1Qw895NUxjMMiT6D6mXFYeAlUPzeFcVh44B7LCPXKK69o8ODBqqio0KhRozR79mxlZWWpoqJC2dnZrhmuU1NTXUtH+Wr48OG65557lJ2drVWrVmnkyJF68skn1alTJ+3YsUPz5s3TwYMHJUnz589norcACHQ/b968WePHj1d1dbWioqK0aNEi1dTUNLq0Z0pKihISEpp7SfAgGO9nhF4w+rlr16567rnnNHPmTH355ZfKyMjQzJkz1adPH5WWlmrlypV6/fXXJUnx8fFatGiR364P5wW6n3v37q3JkyfrjTfe0OHDh9W3b189+eSTGjJkiNq2batDhw4pOztbb7/9tiTJZrPphRde8Os1ml1+fr727Nnj+r2kpMS1vWfPnov+2vvwww83qx7GYaEVjH5mHBZ6wXo/I0KEOp1B861atcqIj493JY0X/qSmphrfffedx2O9TTjLy8uNMWPGNFiH1WptdkIK7wSyn3/1q181eN6GfpYuXRrYCzapYLyfG1N3PH+xCKxg9fMzzzzjurvA009SUpLHuxrgH4Hu58rKSuPuu+9u8vM6Li7OeOuttwJ4peb00EMP+fTvpieMw8JfMPqZcVjoBfP93BjGYeGBOUci2Lhx47R9+3Y99dRTSk1NVevWrZWQkKABAwbopZde0tdff33Js5bHxsYqJydHb731lkaOHKmkpCRFR0erS5cuuu+++5Sfn6+5c+f654LgUTD6GaFHP5tDsPr5xRdf1GeffaYHHnhA3bp1U6tWrdSuXTsNHDhQzz//vL799lsNGjTID1cETwLdz61atVJ2drbWr1+vBx98UKmpqYqLi5PdbleHDh00aNAgPfvss9q1a5fuu+8+P14Zgo1xGAAEj8Uw6s0AAwAAAAAAYDLcOQIAAAAAAEyNcAQAAAAAAJga4QgAAAAAADA1whEAAAAAAGBqhCMAAAAAAMDUCEcAAAAAAICpEY4AAAAAAABTIxwBAAAAAACmRjgCAAAAAABMjXAEAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATI1wBAAAAAAAmBrhCAAAAAAAMDXCEQAAAAAAYGqEIwAAAAAAwNQIRwAAAAAAgKkRjgAAAAAAAFMjHAEAAAAAAKb2/wHdR98Gv8BgxAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAAM6CAYAAABjPS0fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AACzBUlEQVR4nOzdeXiU9bn/8c9sSSaBsC8JCUtkjQbCqmgs4g4qVLFYa+tyoPW0xR4rrW09p1bbX1dFa4+tpxYqahdLlQoKuCsSFdlMiAQEZMsKhCUBss3MM78/aAJP1knIzDPL+3VdXtfMd76Z50YxM3PP/b1vm9/v9wsAAAAAACBG2a0OAAAAAAAAwEokRwAAAAAAQEwjOQIAAAAAAGIayREAAAAAABDTSI4AAAAAAICYRnIEAAAAAADENJIjAAAAAAAgppEcAQAAAAAAMY3kCAAAAAAAiGkkRwAAAAAAQEwjOQIAAAAAAGIayREAAAAAABDTSI4AAAAAAICYRnIEAAAAAADENJIjAAAAAAAgppEcAQAAAAAAMc1pdQDRora2VgUFBZKkfv36yenkXy0AAAAAAF3N6/Xq8OHDkqSsrCwlJCSc83PyCb6LFBQUaMqUKVaHAQAAAABAzNiwYYMmT558zs/DsRoAAAAAABDTqBzpIv369Wu8vWHDBqWkpFgYDQAAAAAA0amsrKzx5MbZn8XPBcmRLnJ2j5GUlBSlpaVZGA0AAAAAANGvq/p9cqwGAAAAAADENJIjAAAAAAAgppEcAQAAAAAAMY3kCAAAAAAAiGkkRwAAAAAAQEwjOQIAAAAAAGIayREAAAAAABDTSI4AAAAAAICYRnIEAAAAAADENJIjAAAAAAAgppEcAQAAAAAAMY3kCAAAAAAAiGkkRwAAAAAAQEwjOQIAAAAAAGIayREAAAAAABDTSI4AAAAAAICYRnIEAAAAAADENJIjAAAAAAAgppEcAQAAAAAAMY3kCAAAAAAAiGkkRwAAAAAAQEwjOQIAAAAAAGIayREAAAAAABDTSI4AAAAAAICYRnIEAAAAAADENJIjAAAgbBmGX9X1XhmG3+pQAABAFHNaHQAAAEBThaVVWpy7R2sKylXj8cntcmhG1kDNz8lQZmqy1eEBAIAoQ3IEAACElRV5JVq4LF/es6pFajw+Ld9SopV5pVo0d5xmZw+yMEIAABBtOFYDAADCRmFpVbPEyNm8hl8Ll+WrsLQqxJEBAIBoRnIEAACEjcW5e1pNjDTwGn4tyd0boogAAEAsIDkCAABCpq0Gqz6foVVbywJ6ntUFZTRpBQAAXYaeIwAAIOjaarA6YkA3rS4o09Nr96jOawT0fDUen2q9PiXG8VYGAACcO95RAACAoGqrwerLn5Soe4JLlTWeDj2n2+VQgtPR1aECAIAYxbEaAAAQNO01WDX86nBiRJJGD+wuu912ruEBAABIIjkCAACCKJAGq53xSdFxrcgr6fLnBQAAsYljNQAAICgMw681BeUB758wuKe+fmmGar2Gvv/P1qtNGixclq/uCU5dPnrAuYYKAABiHJUjAAAgKMora1Xj8QW8/y/zL9SMrBTdOH6QVi7I0ZwJaXK7TvcVcbscykxJNu33Gn598y9btGHv0S6NGwAAxB4qRwAAQKcZhl+1Xp8SnI7GHiC1Hp+e+WCffv/uroCfp2mD1czUZC2aO06P3Dy28fltNumnrxbqmQ/2Ne6r8xqat3Sj/v6Ni3TBoB5d9ucCAACxheQIAADosJZG8157wUAN6ZOof2wsUlllbYeeb2ZWSosNVu12m2lc74+vy1RVjVcvbSluXDtR59Udf96gZf85VcP6JDVL1gAAALSH5AgAAOiQ1kbz/uuTzjVIddptmpczLKC9drtNv56Tpapaj94sPNi4fuRUva7/3Tr5JdV6DLldDs3IGqj5ORnKTE1u/QkBAABEzxEAANAB7Y3mbcmEwT3laKWKw2m3adHccR1KYDgddv3vreM1NaOPab3GY6jWY/z7tk/Lt5Ro1pO5TLUBAADtIjkCAAAC1pHRvBef10crF1yi5d+6RK+00GB1zoQ0rVyQo9nZgzocR4LLoT/dMUkj+3drc5/X8GvhsnwVllZ1+BoAACB2cKwGAAAEpCOjeeOcdj3/H1PkcJz+HqalBqvn2hOkW7xTIwd2185DJ9vc5zX8WpK7V4vmjjun6wEAgOhF5QgAAAhIR0bz1nsN1fmMZusNDVa7olmqYfj19vZDAe1dXVAmowNHgQAAQGwhOQIAANr12qfluuHJ3ID3Nx3NGwy1Xl/AyZoaj0+13sD2AgCA2MOxGgAA0Mgw/KZjL0dP1esnK7fplfzSDj1Pa6N5u1KC0yG3yxFQgiTeaQ96sgYAAEQukiMAAECFpVVanLtHawrKVePxye1yaGxaD+0oq1JlrbdDz9WR0bznwm63aUbWQC3f0v40mnqfoVe2lnaq+SsAAIh+HKsBACDGrcg7PfJ2+ZaSxiqMGo9PH+892mJi5PzU5C4dzXsu5udkyBlAhYrfL/3XC3n6w3u75ffTewQAAJiRHAEAIIYVllZp4bL8gMbz9nC79Pgt4/TqPTldPpq3sxqm4ASSIJGk37z2mX684lN5W2gWCwAAYhfHagAAiGGLc/cElBhJ6ZGgFd++RP2TEyQFZzRvZ83OHqQR/btrSe5erS4oazwWNCNroLw+v1Y26Zfyl/UHVF5Zq9/dOl6Jcc5mfVYAAEDsITkCAECMMgy/1hSUB7T3eLVHfbvFN1tvGM1rtdaSNX6/X2PTeuj/rdpu2v/W9kP64pMfaMSA7npnxyFTQmV+TkbIjgUBAIDwwLEaAABiVDSOwm1I1jRUgNhsNs2/NEO//8oExTnNb3t2HjqpVf+uNJFO/xmXbzndf2VFXvtNXgEAQPQgOQIAQAzy+/366/r9Ae93uxwRPQr3urEp+uv8C9XD7Wp3r9fwa+GyfBWWVoUgMgAAEA5IjgAAEGNqPT7dtyxfP1+9I+CfmZmVEvH9OCYP7a2XvnmxEuPaT/J4Db+W5O4NQVQAACAckBwBACCGlFXWaO4fP9K/Pgn82IjTbtO8nGFBjCp0MvomyQhwlO/qgjIZATSrBQAAkc/6DmoAACAomk5h2bTvqP7zL1tUcbKu2V67TWopD+C027Ro7rioaVBa6/Wp1hPYGN+GPivh0HAWAAAEF6/2AABEmcLSKi3O3aM1BeWNU1hGp3RXQfFxeZvkBZLiHHr8lmyl9UpsNgp3ZlaK5uUMi5rEiCQlOB1yuxwBNaJ12m1y2CL7KBEAAAgMyREAAKLIirwSLVyWL+9ZZSA1Hp8+OXC82d6hfRL19O2TNHJAd0lqcRRutLHbbZqRNVDLt7R/rMhr+DX3jx/piS+P19C+SSGIDgAAWIWeIwAARInC0qpmiZHWXDqir1Z8O6cxMdKg6SjcaDQ/J0POAP98+cWVuu536/TS5mL5/92rxDD8qq730o8EAIAoQuUIAABRYnHunoASIyMHdNPSu6bIEcUJkLZkpiZr0dxxASeSTtX7tPCf+Xpla6m6Jzj1VuGhxqNHM7IGan5ORlQdPQIAIBZROQIAQBQwDL/WFJQHtLfoaI1iMy1yxuzsQVq5IEdzJqTJ7To92tftcmjOhDT97svZymjhGM17nx3WK/lljf1Kajw+Ld9SollP5mpFXuDTfwAAQPihcgQAgChQ6/UF1GRUYgpLg4YKkpb6rFyZOUAPryzUPzYVtfs8XsOvhcvyNaJ/dypIAACIUFSOAAAQBRKcDsU7A3tZd7scSnA6ghxR5Gipz0pinFO/vnmsfv+VCXIFcPzIa/i1JHdvMMMEAABBFNTkyKFDh/Tqq6/qwQcf1IwZM9S3b1/ZbDbZbDbdeeedwby0JKmsrEw9e/ZsvOZll10W9GsCAGCFnYdOKND2oDOzUqK64WpXmnHBQDkcgf27Wl1QRpNWAAAiVFDraQcMGBDMp2/XPffco8rKSktjAAAg2ApLq3Tb4vWq9xrt7nXabZqXMywEUUWHWq9PtZ72/71Kp48rHa+pV++k+CBHBQAAulrIjtWkp6fr6quvDtXl9Morr+ill15S//79Q3ZNAABCbVtppb6yeL2OVXva3eu027Ro7jj6YnRAgtPR2LA1ELOezNUb28obx/5KjP4FACASBLVy5MEHH9TkyZM1efJkDRgwQPv27dOwYcH/turkyZP69re/LUl69NFHdfvttwf9mgAAhNqnJZW6bfHHqqwxJ0YuSE3Wef276Y1tBxtHzs7MStG8nGEkRjrIbrdpRtZALd8S2DSa4mO1+sbzm/WFkf301QsH67Vt5VpTUM7oXwAAwlxQkyMPP/xwMJ++VQ888ICKioo0ffp0fe1rXyM5AgCICobhb5yqsu3fR2mqar2mPVOG9dYzd05WUrzTtJ8eI503PydDK/NK5e1A5cf7Ow/r/Z2HTWsNo39X5pVq0dxxmp09qKtDBQAAnRR1M/w2bNig3//+94qLi9NTTz1ldTgAAJyzwtIqLc7d01iBEO+0y2f4m31Yvyijt/585+TGEb0NU1hwbhpG/i5clt9igsRht2lo70R9XnEqoOdj9C8AAOEnqt4xeb1efeMb35BhGPrBD36gUaNGWR0SAADnZEVeSbMP5XUtNF69+Lw+WnLHZLnjGNEbDLOzB2lE/+5akrtXqwvKmh1XGpPSXSvzS/WL1dt1sKqu3edrGP27aO64EEQPAADaE1XJkUcffVT5+fk677zz9MADD1gdDgAA56SwtKrVaoWzZaf3JDESAg0VJI/cPLbF40qzswfp8lH9Nf5nbwZ0BGd1QZkeuXksR54AAAgDUZMc2bNnj376059Kkv7whz8oISGhS5+/uLi4zcfLysq69HoAACzO3RPQh+yhfRNJjIRQW8eVHA5bwL1Jajw+/fmDvfrqRUOUcNZEHHrFAAAQelGTHLn77rtVU1OjW265JSgjg9PT07v8OQEAaI1h+LWmoDygva9/elDGl/x8kA4DDaN/azy+gPb/v1Xb9cf39+jrlw7TxCG99NePDzDdBgAAC0RFcuS5557TW2+9peTkZD3++ONWhwMAwDmr9foC/oBd4/Gp1uuj+WoY6OjoX0k6fKJOv1i9o9k6020AAAidiH8XVVFRoYULF0qSfv7znyslJSUo1ykqKmrz8bKyMk2ZMiUo1wYAxJ6OVCC4XQ4lODlWEy46M/q3LUy3AQAg+OxWB3Cu7rvvPlVUVGjSpEn61re+FbTrpKWltflPsJIyAIDYZLfbNHlY74D2zsxK4UhNGGlo3Ops5b+J027Tdy4frktH9A34ORum2wAAgOCI6MqR0tJSPf/885Kkyy+/XMuWLWtz/6FDh/TCCy9IkoYNG6YLL7ww6DECANAZR07W6dOS4+3uc9ptmpczLPgBoUPaG/3bUAGy5cAx3fzUhwqkyITpNgAABE9EJ0fq6+sbb//mN79pd//27dt16623SpLuuOMOkiMAgLBkGH59d1m+jp7ytLnPabdp0dxxHLUIU+2N/pWk0QO7B5QYkegtAwBAMPHqCgBAmPnDe7v1/s7DprX+3eN1otbbagUCwldbo3/pLQMAQHiI6OTI0KFD5fe3/3WLzXb6W5pp06bpvffeC3JUAAB03kefH9Fjb+40rfXrHq9V37lUfZLiWq1AQGTqyHQbessAABA8Yd+QdenSpbLZbLLZbHrooYesDgcAgKA5fKJO33nhE9MxC7tN+t9bx6tf9/jGCgQ+IEeX+TkZrTZvbUBvGQAAgiuolSO5ubnavXt34/2KiorG27t379bSpUtN+++8885ghgMAQNjyGX599x95OnyizrR+31UjdVFGH4uiQig09CZZuCy/1fG/Cy4fzhEqAACCKKjJkcWLF+vZZ59t8bEPPvhAH3zwgWmN5AgAIFY9+c5u5e6uMK19YWQ/feuy4RZFhFBqabrN2Q5W1VoUGQAAsSHsj9UAABCtDMOv6nqvcncd1m/fNvcZGZAcr8fnjuMITQxpqCDZ9vA1+s7l5qTYK/llqq73WhQZAADRz+YPpKMp2lVcXKz09HRJUlFRkdLS0iyOCAAQrgpLq7Q4d4/WFJS3OKXEYbfp71+/SFOG9bYgOoSDssoaXfyrd3T2u7RFXxqnORN5fwEAQDA+f1M5AgBACK3IK9GsJ3O1fEtJq+NbF149ksRIjEvp4dalI/qZ1v65uciiaAAAiH4kRwAACJHC0qo2m25Kkk3StCYfihGb5k4yfwu2fs9RHThSbVE0AABEN5IjAACEyOLcPW0mRiTJL+nPH+wLSTwIb1dlDlDPRJdp7UWqRwAACAqSIwAAhIBh+LWmoDygvasLymS0k0RB9It3OjR7XKpp7cXNxfLxdwMAgC5HcgQAgBCo9fpa7THSVI3Hp1pvYHsR3b40Kd10v7SyVh9+XtHKbgAA0FkkRwAACIEEp0NulyOgvW6XQwnOwPYiul0wqIfGpCSb1pZtKrYoGgAAohfJEQAAQsBut+naCwYGtHdmVorsdluQI0KkaNqY9fVt5aqs9lgUDQAA0YnkCAAAIZLSM6HdPU67TfNyhoUgGkSK2dmD5HKcSZbVew2tzC+xMCIAAKIPyREAAELg0IlaPf/R/jb3OO02LZo7TpmpyW3uQ2zpnRSnqzIHmNY4WgMAQNciOQIAQAj8fNV2naj1mtbinadfht0uh+ZMSNPKBTmanT3IivAQ5r400dyYtaCkUtvLqiyKBgCA6OO0OgAAAKJd7q4KrcgrNa3dOH6QFn1pnGq9PiU4HfQYQZsuHdFXA5LjdbCqrnHtn5uK9eANmRZGBQBA9KByBACAIKr1+PTjFZ+a1pITnHpg5hjZ7TYlxjlJjKBdToddcyaYG7O+nFeieq9hUUQAAEQXkiMAAATRH9fu0d6KU6a1H8wYrX7d4y2KCJHq5onm5MjRU/V6Z8dBi6IBACC6kBwBACBI9lac0u/f221aGz+4p26dPNiiiBDJMvp10+ShvUxr/6QxKwAAXYLkCAAAQeD3+/Xgik9Nxx4cdpt+/sUsjtGg05o2Zn33s0M6VFVrUTQAAEQPkiMAAATBK1vLtG5XhWntrouHMqYX52Tm2BQlxjka7xt+afknJRZGBABAdCA5AgBAF6uq9ehnrxaa1lJ6JOjeq0ZaFBGiRbd4p2ZmpZjWlm0qkt/vtygiAACiA8kRAAC62KLXP9PhE3WmtZ/ccL66xTstigjRZO4k89GaPYdPacuBYxZFAwBAdCA5AgBAFzEMvzbsPaJnP9pvWr98dH9dc/4Ai6JCtJk8tJeG9kk0rf394wMyDKpHAADoLL7CAgDgHBWWVmlx7h6tKShXjcdneizBZdfDs86XzUYTVnQNm82mL01K1yOvf9a49uKWEq0qKNeMrIGan5NBbxsAADqI5AgAAOdgRV6JFi7Ll7eVb+2vHDNA6b0TW3wM6Kxu8Y5mazUen5ZvKdHKvFItmjtOs7MHWRAZAACRiWM1AAB0UmFpVZuJEUl67dNyFZZWhTAqRLvC0ir97NXtrT7uNfxauCyfv3cAAHQAyREAADppce6eNhMj0ukPqkty94YoIsQC/t4BAND1SI4AANAJhuHXmoLygPauLiijWSa6BH/vAAAIDpIjAAB0Qq3X16z5amtqPD7VegPbC7SFv3cAAAQHyREAADohwemQ29W8KWZL3C6HEpyB7QXawt87AACCg+QIAACdYLfbNCNrYEB7Z2alyG5nlC/OHX/vAAAIDpIjAAB00tSMPu3ucdptmpczLATRIFbMz8mQs52kh90m/t4BANABJEcAAOikf31S0ubjTrtNi+aOU2ZqcogiQizITE3Wornj2kyQ9HC7NGJAtxBGBQBAZCM5AgBAJ3y854g+/PyIac3lOP1h1e1yaM6ENK1ckKPZ2YOsCA9Rbnb2IK1ckKM5E9Ja7EFyrNqjV/JLLYgMAIDI5LQ6AAAAItHjb+003R+YnKB3Fk6TbKebZtLrAcHWUEHyyM1jVev16auLP9aWA8cbH/+/tZ/ri9mD+LsIAEAAqBwBAKCDPvy8Quv3HDWtfXv6eUqMdyoxzsmHUYSU3W5TYpxT37xsuGl958GTevezQxZFBQBAZCE5AgBAB/j9fv32zV2mtdQeCZo7Od2iiIDTrhjdXyP6m/uM/N/azy2KBgCAyEJyBACADvjw8yPasM9cNfKt6cMV72ze9wEIJbvdpm98IcO0tnHfMW3ef7SVnwAAAA1IjgAAECC/36/H3zT3GhnU0625k6gaQXiYnT1IKT0STGtPvbfHomgAAIgcJEcAAAhQ7u4Kbdp/zLS24PLhinPycorwEOe0a17OMNPaW9sPatfBExZFBABAZODdHAAAAfD7/XqsSdVIWi+3bp6YZlFEQMtunTJYPdwu09of36d6BACAtpAcAQAgAGt3HtYnZ41JlaR7Lh8ul4OXUoSXpHinbp86xLT28iclKj1eY1FEAACEP97RAQDQDr/fr8ffMk+oGdw7UTdNoGoE4emOi4cq/qzjXl7DryW5ey2MCACA8EZyBACAdrz32WHlFx03rS2gagRhrG+3+GaNgv++4YCOV9dbFBEAAOGNd3UAALThdNWIudfIkD6Jumn8IIsiAgLz9UszZLeduV9d79PzH+23LiAAAMIYyREAANrw9vZD2lpcaVr7zuUj5KRqBGFucJ9EXT821bS29MN9qvX4LIoIAIDwxTs7AABa4fMZeuzNz0xrw/omaXZ2ais/AYSXu6dlmO4fOVWvf24qsigaAADCF8kRAACaKCyt0n3L8jTmwddVWHbC9Nh3rhhO1QgixvmpPfSFkf1Ma0+v2yOvz7AoIgAAwhPv7gAAOMuKvBLNejJXy7eUqL7FD5C2FtaA8PWfTapHio7W6JWtpaqu98ow/BZFBQBAeHFaHQAAAOGisLRKC5fly9vGB8bv/zNfowZ0V2ZqcggjAzpvakYfjUvrofyzeufctyxffn++3C6HZmQN1PycDP5OAwBiGpUjAAD82+LcPW0mRiTJa/i1JHdviCICzp3NZtN/TjvPtOb/91/zGo9Py7ecrpZakVdiQXQAAIQHkiMAAEgyDL/WFJQHtHd1QRnHERBR0nsntvm41/Br4bJ8FZZWhSgiAADCC8kRAAAk1Xp9qglwxGmNx6daL+NQETn+/EH71U5URQEAYhnJEQAAJCU4HXK7HAHtdbscSnAGthewGlVRAAC0j+QIAACS7HabZmQNDGjvzKwU2e1MrUFkoCoKAID2kRwBAODfbr9oSLt7nHab5uUMC0E0QNegKgoAgPaRHAEA4N92Hz7V5uNOu02L5o5j5CkiClVRAAC0j+QIAAD/9vz6/ab7DZ8R3S6H5kxI08oFOZqdPciCyIBzMz8nQ852kh4OqqIAADHMaXUAAACEg4LiSuUXHTet/eG2CfrCyH5KcDr4Nh0RLTM1WYvmjtPCZfnyttJw9aKM3lRFAQBiFpUjAABI+kuTqpGUHgm6cswAJcY5SYwgKszOHqSVC3I0Z0Jaiz1IPvr8iD4rP2FBZAAAWI/kCAAg5lVWe7Qiv8S09pUpg+V08DKJ6NJQQbLt4Wv09n3TFO88k/gz/NL/W1Uov59RvgCA2MO7PgBAzHtxS7FqPUbjfafdplumpFsYERBcdrtN5/XvprunDTetr9tVoXc/O2RRVAAAWIfkCAAgphmGv9mRmmsvGKj+3RMsiggInf+clqEByfGmtf+3ars8PqOVnwAAIDqRHAEAxLQPPz+ivRXmEb5fvWiIRdEAoZUY59T914w2re05fKpZwhAAgGhHcgQAENOeX7/PdH9E/266cFhva4IBLHDj+EEam9bDtPbbt3bpeHW9RREBABB6JEcAADGrrLJGbxYeNK19beoQ2WxMp0HssNttevD6TNNaZY1Hv31rl0URAQAQeiRHAAAx6+8bimScNZgjMc6hG8cPsi4gwCKThvbWdWNTTGt/Wb9fuw+dtCgiAABCi+QIACAmeXyG/r7hgGntxvGD1D3BZVFEgLV+eO1oxTnPvDX0Gn79YvV2CyMCACB0SI4AAGLSG9sO6vCJOtMajVgRy9J7J2p+zjDT2js7Dun9nYctiggAgNAhOQIAiElNG7FOGtJLY1KSrQkGCBPfmj5cfbs1He1bqHqPT9X1Xhlnn0MDACCKOK0OAACAUNt18ITW7zlqWvvaVKpGgG7xTt1/zSjd/9LWxrWdB0/q/Idel8fnl9vl0IysgZqfk6HMVJKJAIDoQeUIACDm/GX9ftP9PklxuvaCgRZFA4SXORPTlNmkisrjO10xUuPxafmWEs16Mlcr8kqsCA8AgKAIanLk0KFDevXVV/Xggw9qxowZ6tu3r2w2m2w2m+68884uu05VVZVeeOEFff3rX9eECRPUs2dPxcXFqV+/frrsssv06KOP6vjx4112PQBA5DpV59VLW8wf6m6ZnK54p8OiiIDw4rDbdHs7lVRew6+Fy/JVWFoVoqgAAAiuoB6rGTBgQDCfXpK0Zs0a3Xjjjaqrq2v2WEVFhdauXau1a9fq0Ucf1d///ndNnz496DEBAMLXirxSnazzNt632aRbpwy2MCIg/GzYd7TdPV7DryW5e7Vo7rgQRAQAQHCF7FhNenq6rr766i5/3iNHjqiurk52u13XXHONHn/8cb3zzjvasmWLVq5cqVtuuUWSdPDgQV1//fXKy8vr8hgAAJHB7/fruY/2mdYuH9Vf6b0TrQkICEOG4deagvKA9q4uKKNJKwAgKgS1cuTBBx/U5MmTNXnyZA0YMED79u3TsGHD2v/BDnC5XLr77rv1wAMPaPBg8zd/48eP1w033KBLLrlE3/nOd1RdXa2FCxfq7bff7tIYAACRYcuBY9pRfsK09lUasQImtV6fajy+gPbWeHyq9fqUGEePfwBAZAvqK9nDDz8czKeXJN1yyy2N1SGtueeee/Tcc89p06ZNeu+993TkyBH16dMn6LEBAMLLcx/uM91P7+3WtBH9rAkGCFMJTofcLkdACRK3y6EE+vUAAKJAzEyrueyyyyRJhmFo79691gYDAAipwtIqffuvW7Qiv8y0fuWYAbLbbRZFBYQnu92mGVmBTW+amZXC/0MAgKgQM8mRsxu22u0x88cGgJi3Iu/02NFVBWXNHnv+o/2MIwVaMD8nQ852kh52mzQvp2uPSwMAYJWYyRKsXbtWkuR0OjV8+HCLowEAhEJhaZUWLsuXt5WGkYwjBVqWmZqsRXPHtZkg8fsVcG8SAADCXUx0z1q1apW2bt0qSbrmmmuUnJzc4ecoLi5u8/GysubfSAIArLU4d0+riZEGjCMFWjY7e5BG9O+uJbl7tbqgrFkixC/pvmV5Wv2dS5UUHxNvKQEAUSzqX8mOHj2qb3/725Ikh8Ohn/3sZ516nvT09K4MCwAQZB0dR/rIzWPpnQA00VBB8sjNY1Xr9enPuXv16Bs7Gx/ff6RaP1+9Xb+4McvCKAEAOHdRfazG5/Pptttu0/79+yVJ//M//6Px48dbHBUAIBQ6M44UQMvsdpsS45z6z2nnaeKQXqbH/vbxAb2z46BFkQEA0DWiunLkW9/6ll577TVJ0nXXXacf//jHnX6uoqKiNh8vKyvTlClTOv38AICuxThSoOs5HXY9NnecZjyxTtX1Z/7fuv/FAr1+b0/16RZvYXQAAHRe1CZHfvSjH+npp5+WJOXk5Oif//ynHI7Ov/FNS0vrqtAAACHQMI50+Zb2p9EwjhQI3JA+Sfrx9Zn60fKCxrWKk3X60fIC/fFrE2Wz8f8SACDyROWxml//+tf61a9+JUmaMGGCXn31VbndboujAgCE2lcuHNzuHqfdxjhSoIO+PDldV4zub1p7o/CgXtzcdgN7AADCVdQlR/7whz/ohz/8oSRpzJgxev3119WjRw+LowIAWKHkWE2bjzvtNi2aO06ZqR2fYgbEMpvNpl/NGaveSXGm9YdfKVTR0WqLogIAoPOiKjny/PPPa8GCBZKkjIwMvfXWW+rbt6/FUQEArPJKvnnMesPJGbfLoTkT0rRyQY5mZw+yIDIg8vXrHq9f3mSeUnOyzquFy/Ll8RqqrvfKaGeUNgAA4SJqeo4sX75cd911l/x+v9LS0vT2228rNTXV6rAAABapqvXo/Z2HTWu/vClLN4xLVYLTQY8RoAtcc/5AfWlimv551nGaDfuOKvMnr8nj88vtcmhG1kDNz8mgQgsAENbCvnJk6dKlstlsstlseuihh1rc88Ybb+jWW2+Vz+dT//799dZbb2no0KEhjRMAEF7e3HZQ9T6j8b7LYdO156coMc5JYgToQg/ekKm0Xubebh7f6YqRGo9Py7eUaNaTuVqR135zZAAArBLUypHc3Fzt3r278X5FRUXj7d27d2vp0qWm/XfeeWeHr7F+/XrdeOONqq+vl8vl0uOPPy6Px6NPP/201Z9JS0tTz549O3wtAEDkeHVrqen+F0b0U49El0XRANGre4JL37lihO5/cWure7yGXwuX5WtE/+5UkAAAwlJQkyOLFy/Ws88+2+JjH3zwgT744APTWmeSI6+99pqqq083/vJ4PLrtttva/ZlnnnmmU9cCAESGymqP1u2qMK1dPy7FomiA6Ld+z5F293gNv5bk7tWiueNCEBEAAB0T9sdqAADoqNe3lct7ViPIOKddV44ZYGFEQPQyDL/WFJQHtHd1QRlNWgEAYcnm9/t5heoCxcXFSk9PlyQVFRUpLS3N4ogAIHbd/ucNpmasV2cO0NO3T7IwIiB6Vdd7lfng6wHvL/zpNUqMi5qZAAAACwTj8zeVIwCAqHL0VL0+2N30SA3Ty4BgSXA65HY5AtrrdjmU4AxsLwAAoURyBAAQVV77tFy+s8r2E1x2XTG6v4URAdHNbrdpRtbAgPZeOaY/06IAAGGJ5AgAIKqsKjBPqbl8dH8lxVPCDwTT/JwMOQNIeuypOKk6ry8EEQEA0DEkRwAAUePwiTp99Ll5asb1YzlSAwRbZmqyFs0d126CZFvpCf3opQLR8g4AEG5IjgAAosZrn5bp7EEYiXEOTR/FkRogFGZnD9LKBTmaMyGtsQdJgssut8v8dnP5JyX6/bu7rQgRAIBWUWcMAIgar24tM92/YswAueNo/giESkMFySM3j1Wt16cEp0M7yk/o5v/7UNX1Z47TPPrGTg3tm0RlFwAgbFA5AgCICgerarVh31HT2vVjUyyKBohtdrtNiXFO2e02ZaYm63dfHi9bkxM3C5fl65MDx6wJEACAJkiOAACiwpqCMp3dxqBbvFPTRvazLiAAja7MHKD/njnGtFbnNfT15zap+Fi1DMOv6nqvDINeJAAAa3CsBgAQFZoeqbkqc4ASXBypAcLFvJxh2lNxSn/7+EDjWsXJes18Yp08PkM1HkNul0MzsgZqfk6GMlOTLYwWABBrqBwBAES80uM12rTfXJ7PkRogvNhsNj0863xdOqKvab2q1qsajyFJqvH4tHxLiWY9masVeSVWhAkAiFEkRwAAEW91gblqpHuCUzlNPoABsJ7LYdeTX5mg9F7uNvd5Db8WLstXYWlViCIDAMQ6kiMAgIjX9EjNNecPVLyTIzVAOOrhdikztUe7+7yGX0ty94YgIgAASI4AACJc0dFq5RUdN61xpAYIX4bh1/s7Dwe0d3VBGU1aAQAhQXIEABDRmh6p6Zno0iXDOVIDhKtar081Hl9Ae2s8PtV6A9sLAMC5IDkCAIhoTY/UXHv+QLkcvLwB4SrB6ZA7wElSbpdDCRyRAwCEAO8eAQARa/+RUyooqTStXT821aJoAATCbrdpRtbAgPbOzEqR3W4LckQAAJAcAQBEsKZVI32S4nRRRm+LogEQqPk5GXK2k/Rw2m2alzMsRBEBAGIdyREAQMRqdqTmgoFycqQGCHuZqclaNHdcqwkSm01aNHecMlOTQxwZACBW8Q4SABCRdh06oe1lVaY1jtQAkWN29iCtXJCjORPSmiVJ+nWL16xx/P8MAAgdkiMAgIhSWFql+5blacZv15nWeyW6NGUYR2qASNJQQbLynktM64dO1GlH+QmLogIAxCKSIwCAiLEir0SznszV8i0l8hp+02PHazx6dWupRZEBOBdjBiYrrZfbtPZW4UGLogEAxCKSIwCAiFBYWqWFy/KbJUUa+P3SwmX5KiytavFxAOHLZrPpyjEDTGtvbSc5AgAIHZIjAICIsDh3T6uJkQZew68luXtDFBGArnRVpjk5kl9cqYNVtRZFAwCINSRHAABhzzD8WlNQHtDe1QVlMtpJogAIP1OG9Vb3BKdp7e3thyyKBgAQa0iOAADCXq3XpxqPL6C9NR6far2B7QUQPlwOuy4b1d+0xtEaAECokBwBAIS9BKdDbpcjoL1ul0MJzsD2AggvV44xJ0dyd1eout5rUTQAgFhCcgQAEPbsdptmZA0MaO/MrBTZ7bYgRwQgGC4b2V/Os/7/rfcaWrerwsKIAACxguQIACAi3DR+ULt7nHab5uUMC0E0AIKhR6JLU4b1Nq0x0hcAEAokRwAAEeGNdj4gOe02LZo7TpmpySGKCEAwNB3p+86OQ/LRZBkAEGQkRwAAYa/oaLX+vuGAac3x79J7t8uhORPStHJBjmZnt19dAiC8NU2OHDlVr7yiYxZFAwCIFc72twAAYK3fvb1LHt+Zb47jHHa9871p6p0UpwSngx4jQBQZ3CdRowZ012cHTzSuvVl4SBOH9G7jpwAAODdUjgAAwtrnh0/qpS3FprXbLhqstF6JSoxzkhgBotCVmYz0BQCEFskRAEBYe+zNnTq73YDb5dC3LhtuXUAAgq7p0Zrdh05qb8Upi6IBAMQCkiMAgLC1rbRSq7aWmdb+I2eo+nWPtygiAKEwLq2n+nYz/3/+NtUjAIAgIjkCAAhbj72x03S/e4JT37j0PIuiARAqdrtNV44xH615k5G+AIAgIjkCAAhLm/cf09s7DpnW7v5ChnokuiyKCEAoNT1as2n/MR07VW9RNACAaEdyBAAQlh59/TPT/T5JcbrrkmEWRQMg1C4Z3lcJrjNvVX2GX+/tPNTGTwAA0HkkRwAAYeeD3RX6aM8R09q3pg9XUjwT6IFY4Y5zKGd4P9PaW4UkRwAAwUFyBAAQVvx+vx5pUjWS0iNBt1042KKIAFjlqiYjfdfuPKw6r8+iaAAA0YzkCAAgrLy1/ZDyio6b1u65fIQSXA5rAgJgmctHD5DNdub+yTqvPt5z1LqAAABRi+QIACBsGIZfi94wV40M6ZOoL01KsygiAFbq1z1e2ek9TWtvMdIXABAEJEcAAGHBMPx66ZNi7Sg/YVr/7pUj5XLwcgXEqqZTa94qPCi/329RNACAaEVnOwCApQpLq7Q4d4/WFJSrxmPuJTByQDfdMC7VosgAhIOrMgeY+hCVVtaqsKxK56f2sDAqAEC0ITkCALDMirwSLVyWL6/R8rfAlw7vJ4fd1uJjAGLDiP7dNLh3og4crW5ce6vwEMkRAECXok4ZAGCJwtKqNhMjkvTsR/tUWFoVwqgAhBubzdb8aA19RwAAXYzkCADAEotz97SZGJEkr+HXkty9IYoIQLi6sslI34KSSpVV1lgUDQAgGpEcAQCEnGH4taagPKC9qwvKZLSTRAEQ3SYP7a3kBPNp8Le3H7IoGgBANCI5AgAIuVqvr1nz1dbUeHyq9Qa2F0B0cjnsmj7aXD3y+rZyEqcAgC5DcgQAEHIJTofcLkdAe90uhxKcge0FEL2a9h1Zt6tC5//kdd23LI/eRACAc0ZyBAAQcna7TTOyBga0d2ZWiuxMrAFi3ql6b7O1Go9Py7eUaNaTuVqRV2JBVACAaEFyBABgifk5GWov5eG02zQvZ1hI4gEQvgpLq/Q///q01ce9hl8Ll+VTQQIA6DSSIwAASwzskdBmRYjTbtOiueOUmZocwqgAhCOmWwEAgo3kCADAEi9sPCBfCx923C6H5kxI08oFOZqdPciCyACEE6ZbAQBCwdn+FgAAupbXZ+gvH+03rX0xO1W/uClLCU4HPUYANOrMdKvEON7iAgA6hsoRAEDIvbX9oEora01rd14yTIlxThIjAEyYbgUACAWSIwCAkFv64T7T/XHpPZWd3tOSWACEN6ZbAQBCgeQIACCktpdVaf2eo6a1Oy8eYlE0ACLB/JwMOdtJejDdCgBwLkiOAABC6rmP9pnu9+0Wr5lZKdYEAyAiZKYma9HccW0mSB68PpPpVgCATiM5AgAImePV9frXJyWmta9cOFjx9AgA0I7Z2YO0ckGO5kxIa7EHycl6rwVRAQCiBckRAEDILNtUpFqP0XjfabfptgsHWxgRgEjSUEGy7eFrNGe8edT3S5uL5fczxhcA0DkkRwAAIeEz/HquyfjeGVkpGpCcYFFEACKV3W7TLVPMidXPD59SfnGlRREBACIdyREAQEi8s+OQio/VmNZoxAqgsyYP7aXBvRNNay9tLrYoGgBApCM5AgAIiWebjO+9YFCyJgzuZU0wACKezWbTTRPMR2tW5peqzuuzKCIAQCQjOQIACLpdB08od3eFae3Oi4fJZmt7NCcAtGXOhDTT/coaj97efsiiaAAAkYzkCAAg6J5tMr63d1Kcrh/L+F4A5ya9d6IuHNbbtMbRGgBAZ5AcAQAEVVWtR8u3mMf33jolXQktjOIEgI6aM9FcPfLezsM6fKLOomgAAJGK5AgAIKj+ualY1fVnegA47DZ99SIasQLoGjOzUuQ+K9nqM/xakVfSxk8AANAcyREAQNAYhl/PNzlSc835A5TSw21NQACiTrd4p669YKBp7aUtJEcAAB0T1OTIoUOH9Oqrr+rBBx/UjBkz1LdvX9lsNtlsNt15551BueYLL7yga665RikpKUpISNDQoUP1ta99TevXrw/K9QAArVu787D2Hak2rd0xdag1wQCIWk0bs24vq9K20kqLogEARCJnMJ98wIABwXx6k9raWn3pS1/Sq6++alrfv3+/9u/fr7/97W966KGH9OMf/zhkMQFArHumyfje0QO7a0qT5okAcK6mntdHqT0SVFpZ27j20uYSnZ/aw8KoAACRJGTHatLT03X11VcH7fnnzZvXmBiZPn26Xn75ZW3YsEFLlizReeedJ8Mw9OCDD2rx4sVBiwEAcMauQyf0/s7DprW7LhnK+F4AXc5ht+nGCYNMayvySuTxGRZFBACINEFNjjz44IN65ZVXVF5ergMHDuiPf/xjUK6zdu1a/e1vf5Mk3XDDDXrzzTc1e/ZsTZ48Wf/xH/+h9evXa/DgwZKk+++/X8ePHw9KHAAAqbC0Svcty9OM364zrXdPcGp29qBWfgoAzs1NTY7WHDlVr7WfHW5lNwAAZkFNjjz88MO6/vrrg3685je/+Y0kyeFw6A9/+IMcDvN4yL59++rXv/61JOnYsWNasmRJUOMBgFi1Iq9Es57M1fItJfIaftNjp+q8en1buUWRAYh25/XrpvGDe5rWXtpSbE0wAICIE/HTak6ePKm3335bknTVVVcpLS2txX033XSTkpOTJUnLly8PWXwAECsKS6u0cFl+s6RIA8MvLVyWr8LSqhBHBiBWNG3M+vb2Qzp2qt6iaAAAkSTikyMbNmxQXV2dJGnatGmt7ouLi9NFF13U+DMejyck8QFArFicu6fVxEgDr+HXkty9IYoIQKy5YWyq4pxn3t7W+wy9srXUwogAAJEi4pMj27dvb7w9evToNvc2PO71erVr166gxgUAscQw/FpTENiRmdUFZTLaSaIAQGf0SHTpqkzzce6XNnO0BgDQvqCO8g2FoqKixtutHalpkJ6ebvq5zMzMgK9TXNz2C2tZWVnAzwUA0abW61ONxxfQ3hqPT7VenxLjIv4lCEAYunlCmlZtPfO+LL+4UrsPndDw/t0tjAoAEO4i/p3piRMnGm9369atzb1JSUmNt0+ePNmh65ydWAEAmCU4HXK7HAElSNwuhxKcjnb3AUBnXDqir/p1j9fhE3WNay9uLtEPZ7RdYQwAiG0Rf6ymtra28XZcXFybe+Pj4xtv19TUBC0mAIg1drtNM7IGBrR3ZlaK7HZbkCMCEKucDru+mJ1qWvvXJ8XycZwPANCGiK8cSUhIaLxdX992N/KGxq2S5Ha7O3Sds4/vtKSsrExTpkzp0HMCQDSZn5Ohf20pUVsfP5x2m+blDAtZTABi05yJafrTujPNnw9W1Sl3d4WmjexnYVQAgHAW8cmR7t3PnB9t76jMqVOnGm+3dwSnqfb6mQBArMvol6R4p121XqPFx512mxbNHafM1OQQRwYg1owemKwLBiXr05Izo8P/seGALh3el8o1AECLIv5YzdlJi/aapp5d/UEPEQDoWu99drjFxIjb5dCcCWlauSBHs7MHWRAZgFg0Z4L5i63Vn5Yr8yev6b5leSosrWrlpwAAsSriK0fOnjizY8eONvc2PO50OjV8+PCgxgUAsWZlfonp/oXDeumZu6Yowengm1oAIRfnaP4dYK3H0PItJVqZV6pFc8eRsAUANIr4ypHJkyc3NmJdu3Ztq/vq6+u1fv36Zj8DADh3J2o9env7IdPa7Ow0JcY5SYwACLnC0ir9ZOW2Vh/3Gn4tXJZPBQkAoFHEJ0e6d++uK664QpL01ltvtXq0Zvny5aqqOv0CeOONN4YsPgCIBW8WHlTdWUdqnHabZlwQ2PQaAOhqi3P3yNvOdBqv4deS3L1t7gEAxI6wT44sXbpUNptNNptNDz30UIt7vve970mSvF6vvv3tb8vn85ker6io0A9+8ANJUs+ePTV//vygxgwAsWZFXqnp/rSR/dQriQo9AKFnGH6tKSgPaO/qgjIZjPgFACjIPUdyc3O1e/fuxvsVFRWNt3fv3q2lS5ea9t95552dus7ll1+uL3/5y3rhhRe0cuVKXXXVVbr33nuVmpqqgoIC/fznP9eBAwckSb/61a/Uq1evTl0HANDckZOnR2SebVZ2qkXRAIh1tV6fajy+9jdKqvH4VOv1KTEu4tvwAQDOUVBfCRYvXqxnn322xcc++OADffDBB6a1ziZHJOnPf/6zqqqqtHr1ar377rt69913TY/b7Xb9+Mc/1t13393pawAAmltdUCbfWd+8JrjsunLMAAsjAhDLEpwOuV2OgBIkbpdDCU5HCKICAIS7sD9WEyi3261Vq1bpr3/9q6666ir1799fcXFxSk9P11e+8hXl5ua2eiwHANB5K/PNR2quyhyopHi+hQVgDbvdphlZgfU8mpmVQtNoAIAkyeb3+zlo2QWKi4uVnp4uSSoqKlJaWprFEQFA8JUcr9Elv3rHtPan2yfpqkwqRwBYp7C0SrOezG2zKavdJr16z6XKTE0OYWQAgK4QjM/fUVM5AgAIvVeaVI0kJzj1hZF9LYoGAE7LTE3Wornj5GyjKiSlh1tjUrqHMCoAQDgjOQIA6LSVTabUzMxKUTzn9wGEgdnZg7RyQY7mTEiT29X891LJ8Rp9+PkRCyIDAIQjkiMAgE7ZfeiECsuqTGuzxjGlBkD4aKgg2fbwNSp46GoN7ZNoevyP7++xKDIAQLghOQIA6JSmVSP9u8frwow+FkUDAK2z223qnuDS/EszTOvv7zys7U2SvACA2ERyBADQYX6/v9mUmuvHpsrB1AcAYezmiWnqnRRnWlu8bq9F0QAAwgnJEQBAh20trtS+I9WmtVnZHKkBEN4SXA7dPnWIaW1lfonKK2stiggAEC5IjgAAOqxp1ciQPokal9bDomgAIHBfu2iI4p1n3gJ7fH498yHVIwAQ60iOAAA6xGf49epWc3Jk1rhU2WwcqQEQ/vp0i9fNE9NMa39bf0Anaj0WRQQACAckRwAAHfLx3iM6WFVnWmNKDYBIMv/SDJ2dzz1R59U/NhZZFxAAwHIkRwAAHfJKkyM1Y1KSNWJAd4uiAYCOG9Y3SVdnDjCt/Tl3rzw+w6KIAABWIzkCAAhYvdfQ6oJy0xpVIwAi0Te+YB7rW1pZq9UFZRZFAwCwGskRAEDA3t95WJU15nP5N4xLsSgaAOi8iUN6a+KQXqa1P67dI7/fb1FEAAArkRwBAASs6ZSaSUN6Ka1XokXRAMC5+fql5uqRwrIqffj5EYuiAQBYieQIACAg1fVevVl40LQ2K5sjNQAi11WZAzS0jznB+/T7eyyKBgBgJZIjAICAvFl4UDUeX+N9h92mmVkcqQEQuRx2m+Y1qR5Zu/OwPis/YVFEAACrkBwBAARkZV6J6f4lw/uqb7d4i6IBgK5x84Q09U6KM61RPQIAsYfkCACgTYWlVVrwty16e8dh0/qkJo0MASASueMc+tpFQ0xrK/NLVF5Za1FEAAArkBwBALRqRV6JZj2Zq1e3Nh9v+bu3d2lFk2oSAIhEt08donjnmbfFHp9fz3ywV9X1XhkG02sAIBaQHAEAtKiwtEoLl+XL28oHA6/h18Jl+SosrQpxZADQtfp0i9fNE9NMa398f48yH3xd5//kdd23LI/fdQAQ5UiOAABatDh3T6uJkQZew68luXtDFBEABM+8nGEtrtd4fFq+5XQVHdVyABC9SI4AAJoxDL/WFJQHtHd1QRll5wAiXq3HkK2Nx6mWA4DoRnIEANBMrddnGtvblhqPT7XewPYCQLhanLtH7aV5qZYDgOhFcgQA0EyC0yG3yxHQXrfLoQRnYHsBIBxRLQcAIDkCAGjGbrdpRtbAgPbOzEqR3d5WMToAhDeq5QAAJEcAAC2an5MhWzs5D6fd1moTQwCIFFTLAQBIjgAAWpSZmqwB3eNbfdxpt2nR3HHKTE0OYVQA0PWolgMAkBwBALSo5HiNyqvqmq27XQ7NmZCmlQtyNDt7kAWRAUDXm5+TIWc7SQ8H1XIAELWcVgcAAAhP7312yHS/p9updT+4XElxTr41BRB1MlOTtWjuOC1cli9vKw1Xx6X1oFoOAKIUlSMAgBa999lh0/0vjOyv7gkuEiMAotbs7EFauSBHcyaktdiDZMuB48orOh76wAAAQUdyBADQTL3X0Ie7K0xrl43qZ1E0ABA6DRUk2x6+Rh/+4HJ1izcnSX6xarv8fkb5AkC0ITkCAGhm076jOlVvHlX5hZEkRwDEDrvdptRebn3nihGm9Q37juqNwoMWRQUACBaSIwCAZt7baT5SMy6th/p2a31yDQBEq9unDlVaL7dp7VdrdsjjMyyKCAAQDCRHAADNvLvD3Ix12qj+FkUCANZKcDl0/7WjTWt7K07pr+v3WxQRACAYSI4AAExKjtdo16GTpjX6jQCIZTeMTVF2ek/T2hNv71JljceagAAAXY7kCADApOkI316JLo1L62lNMAAQBmw2m/77ujGmtWPVHv3hvd0WRQQA6GokRwAAJk1H+F46op8cjO8FEOMmD+2ta88faFp75oN9KjpabVFEAICuRHIEANCIEb4A0LofzBgt51nJ4nqvoUff+MzCiAAAXYXkCACgESN8AaB1w/om6asXDTGtrcgrVX7RcWsCAgB0GZIjAIBGjPAFgLZ954oR6p7gNK39fPV2+f1+iyICAHQFkiMAgEaM8AWAtvVOitOC6cNNaxv2HtXr28pVXe+VYZAkAYBI5Gx/CwAgFjDCFwACc8fFQ/XcR/tVcrymce2bf9kivyS3y6EZWQM1PydDmanJ1gUJAOgQKkcAAJIY4QsAgUpwOXT/taNMaw31IjUen5ZvKdGsJ3O1Iq8k9MEBADqF5AgAQBIjfAGgI4b369bm417Dr4XL8lVYWhWiiAAA54LkCACAEb4A0EFLPtjb7h6v4deS3Pb3AQCsR3IEANBshK/NxghfAGiNYfi1pqA8oL2rC8po0goAEYDkCACg2QjfsYMY4QsAran1+lTj8bW/Uad7kNR6A9sLALAOyREAACN8AaADEpwOuV2OgPa6XQ4lOAPbCwCwDskRAIhxjPAFgI6x222akTUwoL0zs1Jkp7k1AIQ9kiMAEOMY4QsAHTc/J0POAJIeX7kwPQTRAADOFckRAIhxjPAFgI7LTE3Wornj2k2QvPxJaYgiAgCcC5IjABDDGOELAJ03O3uQVi7I0ZwJaY09SJrmSp5fv1+5uypa+GkAQDghOQIAMYwRvgBwbhoqSLY9fI0Kf3qN3rpvWrNmrfe/mK+qWo9FEQIAAkFyBABiGCN8AaBr2O02JcY5ldGvm344Y7TpsdLKWv3slUKLIgMABILkCADEMEb4AkDX+9pFQ3TxeX1Ma//cXKy3tx+0KCIAQHtIjgBAjGKELwAEh91u029uHqtu8U7T+g+XF+jYqXqLogIAtIXkCADEKEb4AkDwpPVK1I+vH2NaO3yiTj9Zuc2iiAAAbSE5AgAxihG+ABBccyela3qTiryV+aVaXVBmUUQAgNaQHAGAGFTvNfTBLnNyZPpojtQAQFey2Wz61Zyx6uF2mdb/5+VPdbCqVtX1XhmG36LoAABnc7a/BQAQTQpLq/TLNdtV7TFM6wOTEyyKCACi14DkBD0863zd+4+8xrWjp+o19Zdvy/BLbpdDM7IGan5OhjJTk60LFABiHJUjABBDVuSVaNaTuVq3q6LZY19bskEr8kosiAoAotvs7FRde/5A01pDwUiNx6flW07/buZ3MABYh+QIAMSIwtIqLVyWL28rJdxew6+Fy/JVWFoV4sgAILrZbDbdfvGQNvfwOxgArEVyBABixOLcPa0mRhp4Db+W5O4NUUQAEDte3Fzc7h5+BwOAdUiOAEAMMAy/1hSUB7R3dUEZDQIBoAvxOxgAwh/JEQCIAbVen2o8voD21nh8qvUGthcA0D5+BwNA+CM5AgAxIMHpkNvlCGiv2+VQgjOwvQCA9vE7GADCH8kRAIgBdrtNM7IGtr9R0sysFNnttiBHBACxg9/BABD+SI4AQIyYn5Oh9t5vO+02zcsZFpqAACCGzM/JkLOdX8L8DgYA65AcAYAYkZmarEuG9231cafdpkVzxykzNTmEUQFAbMhMTdaiuePaTJDwOxgArBOy5MiBAwf0ve99T2PGjFFSUpJ69+6tKVOm6NFHH1V1dXWXXKOwsFD33HOPsrKylJycrLi4OPXr10/Tp0/X448/rhMnTnTJdQAgUlWcrG+25nY5NGdCmlYuyNHs7EEWRAUAsWF29iCtXJCjORPSFO9s/jZ8TAqJEQCwis3v9wd9VtiqVat02223qbKyssXHR40apdWrVysjI6PT11i0aJF++MMfyuv1trpnyJAhWrlypcaOHdvp67SmuLhY6enpkqSioiKlpaV1+TUA4FxU1XqU/fAbOntC5F/mTdHF5/XlfDsAhJjXa+jiX7+jQyfqGte+c8UI3XfVSAujAoDIEIzP30GvHMnPz9fcuXNVWVmpbt266ec//7k+/PBDvf322/r6178uSfrss8903XXX6eTJk526xrJly/S9731PXq9XcXFx+u53v6tVq1bp448/1t/+9jfl5ORIkvbv369rr7221SQNAESzTw4cNyVG4hx2TRram8QIAFjA6bTr+rGpprVXt5YqBN9bAgBaEPTkyL333qvq6mo5nU698cYbeuCBBzR16lRdfvnlevrpp/Wb3/xGkrRjxw499thjnbrGz372s8bby5cv12OPPaaZM2dqypQpuvXWW7Vu3TrddNNNkqSysjItWbLk3P9gABBhNu07aro/Nq2HEgIcLQkA6HrXjU0x3d9z+JR2lHMMHACsENTkyMaNG/Xee+9JkubNm6epU6c227Nw4UKNGTNGkvTb3/5WHo+nQ9eoqqrSp59+KkmaMGGCrrvuuhb3/eQnP2m8/eGHH3boGgAQDTY2SY5MGtrbokgAAJI0YXBPDerpNq29urXUomgAILYFNTny8ssvN96+6667Wg7Abtftt98uSTp27FhjMiVQ9fVnmgu21bPkvPPOa7xdV1fX6j4AiEb1XkN5RcdNa5OH9rImGACAJMlmszWrHnl1axlHawDAAkFNjqxbt06SlJSUpIkTJ7a6b9q0aY23c3NzO3SNvn37qnfv099+7tmzp9V9n3/+eePtkSNpdAUgtmwrrVStxzCtTRxCcgQArHZdljk5sv9ItbaVVlkUDQDErqAmR7Zv3y5JGj58uJxOZ6v7Ro8e3exnOuIb3/iGJGnLli1as2ZNi3sa+pI4HA7Nnz+/w9cAgEi2ad8x0/2RA7qpZ2KcRdEAABqMTeuhwb0TTWuvcLQGAEKu9YzFOaqtrVVFRYUktTtWp1evXkpKStKpU6dUVFTU4Wv993//tzZt2qS33npLN954oxYsWKArrrhCffv21Z49e/TUU09p7dq1cjgc+t3vftfY46QjiouL23y8rKysw88JAKFCvxEACE8NR2ueeu9MlfOqrWX64bWjZbMxTQwAQiVoyZETJ8502u7WrVu7+xuSI50Z59utWzetWbNGS5cu1a9+9SstWrRIixYtMu256aabdP/99+vCCy/s8PNLapyhDACRxu/3a9N+c+UI/UYAIHxcl2VOjhQfq1F+caWy03taFxQAxJigHaupra1tvB0X137pdnx8vCSppqamU9fbtGmT/v73v7fad+Stt97Ss88+q6oqznACiC17Kk7p6Kl609qkIVSOAEC4OD81WcP6JpnWXs3naA0AhFLQkiMJCQmNt8+eKNOahgkybre7nZ3Nvfjii7rsssv0zjvvKCsrS//617905MgR1dfX6/PPP9cvfvELeTwePfXUU7r44otVXl7e4WsUFRW1+c+GDRs6/JwAEAqbmhypGZicoLReHf9dCwAIDpvN1qwx66qCMhkGU2sAIFSCdqyme/fujbcDOSpz6tQpSYEdwTnbwYMHdeedd6qurk7nn3++PvzwQyUlncm8Z2Rk6Ec/+pGmTJmiq666Stu2bdM999yjf/7znx26Tnt9UwAgXDVtxjpxaC/OsQNAmLl+XIqefHd34/2yylp9UnRME6n0A4CQCGrlSN++fSW138z02LFjjcmRjvb2eOGFFxp/9oEHHjAlRs52xRVX6IorrpAkLV++XMeOHWtxHwBEm2b9RhjhCwBhZ9SA7hre3/wl4Sv5NPwHgFAJ6ijfhqkwu3fvltfrbXXfjh07mv1MoM4e/TthwoQ2906cOFGSZBiGdu7c2aHrAEAkOnyiTnsrTpnWmFQDAOGnpaM1qzlaAwAhE9TkSE5OjqTTR2Y2b97c6r61a9c23r7kkks6dA2n88zJoLYSMJLk8Xha/DkAiFab95v7jXSLd2r0wO6t7AYAWOmGcebkyKETdc1GsQMAgiOoyZEvfvGLjbefeeaZFvcYhqHnnntOktSzZ09Nnz69Q9cYNmxY4+1169a1uff999+XdDozP3To0A5dBwAi0cYm/UbGD+4ppyOov/oBAJ00vH/3ZgnsV7dytAYAQiGo75CnTJmiSy+9VJK0ZMkSffTRR832LFq0qPFozH/913/J5XKZHl+6dKlsNptsNpseeuihZj9/3XXXNTYW/PnPf66SkpIWY3n66ae1adMmSdJFF12kPn36dPrPBQCRoumkmskcqQGAsNb0aM2aT8vk42gNAARd0L8+fOKJJ+R2u+X1enX11Vfrl7/8pdavX693331Xd999t+6//35J0siRI7Vw4cIOP//o0aN11113SZJKSko0fvx4/eIXv9C6deuUl5enV155RbfddpvuvvtuSZLD4dAvfvGLrvsDAkCYqq736tPSKtPapKE0YwWAcHbdWHNypOJkvT7ec8SiaAAgdgS98cb48eP1j3/8Q1/96ldVVVWlBx54oNmekSNHatWqVabxvx3xhz/8QadOndI//vEPHT58WP/93//d4r6kpCQ9/fTTuuyyyzp1HQCIJHkHjpu+bXTabcpO72ldQACAdmX066bMlGQVlp1Jbr+ytUwXD+9rYVQAEP1CcvD8hhtu0NatW/Xd735XI0eOVGJionr27KlJkybp17/+tT755BMNHz68088fHx+vF154Qe+8845uv/12jRw5UklJSXI6nerdu7emTp2qH//4x9qxY4e+8pWvdOGfDADCV9N+I+cP6qHEOJpRA0C4u75JY9bXPi2T12dYFA0AxAab3+/nEGMXKC4uVnp6uiSpqKhIaWlpFkcEINZ9bcnHWrerovH+vJxh+vH1mRZGBAAIxIEj1frCI++a1p77jyn6wsh+FkUEAOElGJ+/GVkAAFHI6zO0Zb+5cmQy/UYAICIM7pOosWk9TGuvbi21KBoAiA0kRwAgCu0oP6FT9T7T2sQhTKoBgEhxfZPGrK9vO6h6L0drACBYSI4AQBRqOsJ3WN8k9eseb1E0AICOmtlkpG9ljUcf7K5oZTcA4FyRHAGAKLSxyZGaSUM4UgMAkSStV6LGD+5pWvvXJ8UyDNoFAkAwkBwBgCjj9/ubVY5MHsqRGgCINNePTTXdX5lfpvN/8rruW5anwtKqVn4KANAZJEcAIMoUH6vRwao609okmrECQMRxtvBOvcbj0/ItJZr1ZK5W5JWEPigAiFIkRwAgymxsUjXSJylOw/omWRQNAKAzCkur9LNXt7f6uNfwa+GyfCpIAKCLkBwBgCizcV+TfiNDe8lms1kUDQCgMxbn7pG3nf4iXsOvJbl7QxQRAEQ3kiMAEGXoNwIAkc0w/FpTUB7Q3tUFZTRpBYAuQHIEAKLIsVP12nXopGltIpNqACCi1Hp9qvH4Atpb4/Gp1hvYXgBA60iOAEAU2dxkhG+Cy67zU3tYFA0AoDMSnA65XY6A9rpdDiU4A9sLAGgdyREAiCKbmiRHstN7Kq6lcQcAgLBlt9s0I2tgQHtnZqXIbqevFACcK94xA0AUod8IAESH+TkZcraT9HDabZqXMyxEEQFAdCM5AgBRotbj09biStPaJJIjABCRMlOTtWjuuDYTJLOzU5WZmhzCqAAgepEcAYAoUVBSqXqf0XjfbpMmDO5pXUAAgHMyO3uQVi7I0ZwJaS32IMkrOi6/n0k1ANAVSI4AQJTY2ORIzeiByeqe4LIoGgBAV2ioINn28DX68x2TTI99fviUPtpzxKLIACC6kBwBgCixaZ+5GevkoYzwBYBoYbfbNH10f2X0SzKt/3X9AYsiAoDoQnIEAKKAYfibNWOl3wgARBebzaavXjjEtPb6tnIdrKq1KCIAiB4kRwAgCuw6dFJVtV7T2iQqRwAg6syZmKYE15m38F7Drxc2FFkYEQBEB5IjABAFPt5rPnM+qKdbKT3cFkUDAAiWHm6Xvpg9yLT29w0H5D2rITcAoONIjgBABCssrdJ9y/L08CuFpvWRA7pZFBEAINi+epH5aE15Va3e2n7IomgAIDqQHAGACLUir0SznszV8i0l8hnmUY5rdx7WirwSiyIDAATTBYN6aHyTUe1/Wb/fmmAAIEqQHAGACFRYWqWFy/LlbZIUaWD4pYXL8lVYWhXiyAAAodC0MWvu7gp9fvikRdEAQOQjOQIAEWhx7p5WEyMNvIZfS3L3higiAEAoXTc2RT0TXaY1xvoCQOeRHAGACGMYfq0pKA9o7+qCMhntJFEAAJEnweXQLZPSTWsvbi5STb3PoogAILKRHAGACFPr9anGE9ib3xqPT7Ve3igDQDT6yoWDZbOduV9V69Ur+aXWBQQAEYzkCABEmASnQ26XI6C9bpdDCc7A9gIAIsuQPkmaNrKfae259fvk91MxCAAdRXIEACKM3W7TjKyBAe2dmZUiu93W/kYAQERq2pj105Iq5RdXWhQNAEQukiMAEIHm52SovZSH027TvJxhIYkHAGCN6aP7a1BPt2nt+Y8Y6wsAHUVyBAAikNcw1FbRtNNu06K545SZmhyymAAAoeew2/SVCweb1l7ZWqpjp+otiggAIhPJEQCIQI++sbPFdbfLoTkT0rRyQY5mZw8KcVQAACvcMjldLseZesJ6r6EXNxdbGBEARB6n1QEAADpm/Z4jen/nYdPaD64dpTsuHqoEp4MeIwAQY/p2i9fMrBStyDszqeYvH+/XvJxhvCYAQICoHAGACOL3+/XI65+Z1vp3j9edFw9TYpyTN8EAEKO+dpG5Mev+I9V6a/tBGQaTawAgEFSOAEAEefezQ9q8/5hp7Z4rRsgdx7heAIhlE4f00uiB3bWj/ETj2jee3yy3y6EZWQM1PyeDPlQA0AYqRwAgQhiGX4+8bu41kt7brVsmpVsUEQAgXNhsNmWl9Wi2XuPxafmWEs16Mlcr8kosiAwAIgPJEQCIEKsKyrS9rMq09t0rRyrOya9yAIh1haVV+teW1pMfXsOvhcvyVVha1eoeAIhlvKMGgAjg8Rl67E1z1ciI/t2YSAMAkCQtzt0jbzv9RbyGX0ty94YoIgCILCRHACACvLS5WHsrTpnWFl49Sg4asAJAzDMMv9YUlAe0d3VBGU1aAaAFJEcAIMzVenx64u1dprVxaT10zfkDLIoIABBOar0+1Xh8Ae2t8fhU6w1sLwDEEpIjABDm/vrxAZVV1prWvn/NaNlsVI0AAKQEp0NuV2BTy9wuhxKcTDgDgKZIjgBAGDtZ59Xv391tWpua0UeXDO9jUUQAgHBjt9s0I2tgQHtnZqXIzpFMAGiG5AgAhLE/5+7V0VP1prXvXTOKqhEAgMn8nAw520l62G3SvJxhIYoIACILyREACEOG4VfpsRo9vfZz0/qVY/pr4pBeFkUFAAhXmanJWjR3XJsJkp6JLo0Y0C2EUQFA5HBaHQAA4IzC0iotzt2jNQXlzZrr2WynJ9QAANCS2dmDNKJ/dy3J3avVBWXNXkeOnvLopc3F+vKUwRZFCADhi8oRAAgTK/JKNOvJXC3fUtLi1IEJg3tqTEqyBZEBACJFQwXJtoev0baHr9b49B6mx//3nd2q9xoWRQcA4YvkCACEgcLSKi1cli+v4W91T15RpQpLq0IYFQAgUtntNiXFu3Rfk4rDkuM1+ufmIouiAoDwRXIEAMLA4tw9bSZGJMln+LUkd2+IIgIARIOc4X01qUmvqt+/s1t13uYVigAQy0iOAIDFDMOvNQXlAe1dXVAmo50kCgAADWw2m+67aqRprbSyVss2FVsUEQCEJ5IjAGCxWq+vxR4jLanx+FTLt30AgA6Yel4fTRnW27T2h3d3qzbA1x4AiAUkRwDAYglOh9wuR0B73S6HEpyB7QUAQDpdPfLdK83VI2WVtfrHRnqPAEADkiMAYDG73aYZWQMD2jszK0V2uy3IEQEAos3U8/rooowm1SPvUT0CAA1IjgBAGJifk6H2ch5Ou03zcoaFJiAAQNRpWj1ysKpOf99wwKJoACC8kBwBgDCQmZqstF6JrT7utNu0aO44ZaYmhzAqAEA0uTCjjy4Z3se09of3Pqd6BABEcgQAwsInB47pwNHqZutul0NzJqRp5YIczc4eZEFkAIBo0rR65PCJOv1l/X6LogGA8OG0OgAAgLT0w32m+6k9EvTavZeqW7yLHiMAgC4zaWhvXTqir9btqmhc+7+1e3TbhUPkjqPhN4DYReUIAFjsYFWtVm0tM63dfvFQJbvjSIwAALrcvU2qRypOUj0CxDLD8Ku63ivD8FsdiqWoHAEAi/314wPynvVilOCy68uT0y2MCAAQzSYO6aVpI/tp7c7DjWv/t/Zz3TolXXa7TQlOB8l5IAYUllZpce4erSkoV43HJ7fLoRlZAzU/JyMm+9yRHAEAC9V5ffrbx+Zv624cP0g9E+MsiggAEAu+e9VIU3LkyKl6jf/Zm/L4/DH/AQmIBSvySrRwWb7pC7oaj0/Lt5RoZV6pFs0dF3P97jhWAwAWWrW1TBUn601rd1w81JpgAAAxIzu9p6aP6mda8/hOf0hq+IA068lcrcgrsSI8AEFUWFrVLDFyNq/h18Jl+SosrQpxZNYiOQIAFvH7/c0asV6U0VujB/ItHQAg+Nr7VjhWPyAB0W5x7p5WEyMNvIZfS3L3hiii8EByBAAs8knRcW0trjSt3XnxMIuiAQDEmvd3HW53Tyx+QAKimWH4taagPKC9qwvKYqpJK8kRALDI0g/2me4P6unWlWP6WxMMACCm8AEJiE21Xp9qPL6A9tZ4fKr1BrY3GpAcAQALHKyq1eqCJuN7pw6R08GvZQBA8PEBCYhNCU6H3K7A3m+6XQ4lOB1Bjih88C4cACzw1/X7m43vvYXxvQCAEDn9ASmwDz2x9gEJiGaG369ktyugvTOzUmJqrDfJEQAIsTqvT3/9+IBp7cbxaYzvBQCEjN1u04ysgQHtjbUPSEC08vv9eviVQh2sqmt3r9Nu07yc2OqFR3IEAELs1fwyHTllHt97J+N7AQAhNj8nQ852kh6x+AEJiFZLP9yn59fvb3ef027TornjlJkaWxMUSY4AQAi1NL53akYfjRrY3ZqAAAAxKzM1WYvmjmszQXJRRp+Y+4AERKN3dhzUz14tNK05HTZdNqpf4xE7t8uhORPStHJBTrujvqOR0+oAACCWbDlwXAUlTcb3XjLUmmAAADFvdvYgjejfXUty92p1QVmzJq0ffF6hvKLjyk7vaU2AAM5ZYWmV7vnbJ2o6dGrRl8ZpdvYgGYZftV6fEpyOmD5CF7LKkQMHDuh73/uexowZo6SkJPXu3VtTpkzRo48+qurq6i691ltvvaU777xTw4cPV1JSknr06KGRI0fq5ptv1lNPPaWTJ0926fUAIFBNq0ZOj+8dYE0wAADoTAXJtoev0Rv3fkHxzjMfjvx+6b//VSCvz7AwQgCddaiqVvOe3ahT9ebE53evHNlYHWK325QY54zpxIgUosqRVatW6bbbblNl5ZlvS6urq7Vx40Zt3LhRixcv1urVq5WRkXFO1zl27JjuuusurVixotljVVVV2rVrl1566SVNnTpV2dnZ53QtAOio8sparWkyvveOi4fIEeMvRACA8GC32zRyYHfde+Uo/fq1HY3r20qr9NxH+/Uf9B4BIkJDJYjfkOY/t0lllbWmx28cP0jfuWK4RdGFr6AnR/Lz8zV37lxVV1erW7du+tGPfqTp06erpqZGL7zwgv70pz/ps88+03XXXaeNGzeqW7dunbpOZWWlrrrqKm3evFmSdN111+nLX/6yhg8fLp/Pp/3792vjxo168cUXu/KPBwAB++vH5vG9bpdDt0wabGFEAAA0N//SYfrXJ8XaefBMtfVjb+7UzKwUDeyRYGFkANpSWFqlxbl7tKagXDUenxw2m3x+81maSUN66VdzsmSz8eVcU0FPjtx7772qrq6W0+nUG2+8oalTpzY+dvnll2vEiBG6//77tWPHDj322GN68MEHO3Wde+65R5s3b5bT6dRf/vIX3XLLLabHL7nkEn3lK1/RY489Jp/P18qzAEBwVNd59dcm3cFvnDBIPRIDmzMPAECouBx2/b8vZmnuHz9qXDtZ59XPXi3U72+bYGFkAFqzIq9EC5flm76Ia5oYGdw7UX/82kTFOx2hDi8iBLXnyMaNG/Xee+9JkubNm2dKjDRYuHChxowZI0n67W9/K4/H0+Hr5Obm6vnnn5ck/c///E+zxMjZbDabnE760AIIjcLSKt23LE/jfvqmjlabf78xvhcAEK6mDOutuZPSTGurCsr07meHLIoIQGsKS6uaJUZa8t/XjVGfbvEhiiryBDU58vLLLzfevuuuu1oOwG7X7bffLul0z5CGZEpHPPnkk5Kkbt26aeHChR3+eQAIhhV5JZr1ZK6WbymRp0kjO5uk7WVV1gQGAEAAfjhjjHo2qXB8cMWnqvVQhQ2Ek8W5e9pNjEjSG9sOhiCayBXU5Mi6deskSUlJSZo4cWKr+6ZNm9Z4Ozc3t0PXqK+vb2zAOmPGjMaeJV6vV/v379eBAwdUX1/f0dAB4Jy0l8H3S1q4LF+FpSRIAADhqXdSnB6YMca0VnS0Rk++s9uiiAA0ZRh+rSkoD2jv6oIyGQEkUWJVUJMj27dvlyQNHz68zaMso0ePbvYzgcrPz1dt7enuu1OnTlV5ebnuuusu9ezZU0OHDtWQIUPUo0cPzZw5Ux9++GEn/hQA0HGBZPC9hl9LcveGKCIAADru5olpmjy0l2ntj+9/rt2HTrbyEwBCqdbrU02A1Vw1Hp9qvVR+tSZoyZHa2lpVVFRIktLS0trc26tXLyUlJUmSioqKOnSdwsJC0zWzsrK0dOlSnTp1yrS+Zs0aXXrppfrtb3/boedvUFxc3OY/ZWVl7T8JgJhABh8AEC3sdpv+3xez5Dxr7LzH59f/vFwgn89Qdb2X1zHAQglOh9yuwBqsul0OJdCMtVVB60x64sSJxtuBjOdNSkrSqVOndPJkx7LQR48ebbz98MMPq66uTtdff70eeughXXDBBaqsrNRLL72kH/7wh6qqqtJ9992nUaNGacaMGR26Tnp6eof2A4hdncngJ8bRKBoAEJ5GDeyu+Zdm6P/Wft64tn7PUY158HXV+wy5XQ7NyBqo+TkZykxNtjBSIPbY7TZdNqqf1nza/hdzM7NSZLczwrc1Qa0caRAXF9fu/vj4011za2pqOnSdsytE6urqdMMNN2jFihWaOHGi4uPj1b9/f33zm9/UqlWrZLfb5ff7df/998vvJ8MNIDjI4AMAos13rhiuQT3dprX6fzcbr/H4tHzL6SbkK/JKrAgPiFmG4VdZZfufoZ12m+blDAtBRJEraMmRhISExtuBNEStq6uTJLnd7nZ2tn4dSXrkkUdktzf/Y+Xk5Oimm26SJH366af69NNPO3SdoqKiNv/ZsGFDh54PQPSy222akTUwoL1k8AEAkSAxzqn57Xyw8hp+mo0DIbb0w33KK6psc4/TbtOiueOo7GpH0Oq4u3fv3ng7kKMyDRUggRzBae06w4YN06hRo1rde8011+jFF1+UJG3cuFFZWVkBX6e9vikAcLb5ORl6+ZMStXUMmww+ACCSFJS2/QFMOtNsfNHccSGICIhtuw6e0K9e22Fac7vs8kuq9Zw+8jYzK0XzcoaRGAlA0JIjCQkJ6tu3ryoqKlRcXNzm3mPHjjUmRzra2+Ps/e0lMM7ee+jQoQ5dBwA6IjM1WQN7uFV6vOUyRzL4AIBI0tFm44/cPJbKSCCI6r2G7v1Hnuq9hml98R2TNTWjj2q9PiU4Hfx/2AFBHeU7Zszpuei7d++W1+ttdd+OHWeyXQ0/E6jzzz+/8bbP13YDxLMfb2u0MACcq50HT7SYGHG7HJozIU0rF+RodvYgCyIDAKDjGBcKhJcn3t6pbU2OsP3HJcN0yfC+stttSoxzkhjpoKBmCHJycrRu3TqdOnVKmzdv1oUXXtjivrVr1zbevuSSSzp0jSFDhmjw4ME6cOCAPv/88zb3nv34oEF8KAEQPCvzSk33+3eP09sLL1MSL1QAgAjU0Gw8kAQJzcaB4Nq076iees/82XdE/266/9rWW0ygfUGtHPniF7/YePuZZ55pcY9hGHruueckST179tT06dM7fJ05c+ZIkg4ePKgPP/yw1X3Lly9vvH3ppZd2+DoAEAi/368V+eZu/bPGDVL3BBeJEQBARKLZOBAeTtZ59d1leaa+di6HTY/fkq2EAKclomVBTY5MmTKlMQmxZMkSffTRR832LFq0SNu3b5ck/dd//ZdcLpfp8aVLl8pms8lms+mhhx5q8Tr33ntv49Sa73znO6bxvg3+8pe/6L333pMkXXfddTRYBRA0nxQdV9FR85EajtAAACLd/JwMOQNIetwyuWM9BAEE7mevFDZ7n/ndq0bqgkE9LIooegQ1OSJJTzzxhNxut7xer66++mr98pe/1Pr16/Xuu+/q7rvv1v333y9JGjlypBYuXNipawwePFg//elPJUmbN2/WlClT9Oyzz2rz5s165513tGDBAt15552SpOTkZD3++ONd8mcDgJY0PVKT0TdJFwyi8SoAILJlpiZr0dxx7SZI/py7V35/G+PaAHSIYfhVXe/Va5+W6R+bikyPTRrSS3d/4TyLIosuQe9KOn78eP3jH//QV7/6VVVVVemBBx5otmfkyJFatWqVaSxvR33/+9/X0aNH9etf/1qFhYWNyZCz9e/fXy+//LJGjBjR6esAQFu8PkOvbjUnR2Zlp8pmo7wYABD5ZmcP0oj+3bUkd69WF5SpxuOT3SZTif9r28q19MN9uusSxtUD56KwtEqLc/doTUF5i/1+kuIcevyWbDk4xtYlQjKy5YYbbtDWrVv1xBNPaNWqVSouLlZcXJyGDx+uL33pS1qwYIESExPP+Tq//OUvNWvWLD311FNat26dysrKlJCQoJEjR2rWrFm655571KMH5UYAgufDz4+o4mS9aW3WuFSLogEAoOs1VJA8cvNY1Xp9OnqqXjf8b66OVXsa9/xi9XaNH9xL2ek9rQsUiGAr8kq0cFm+vEbrVVg/mXW+0nuf++donGbzU/PWJYqLi5Wefvp8ZVFRET1NgBi1cFm+XtpS3Hh/bFoPrVyQY2FEAAAE37s7DumupRtNa4N6urX6O5eqR6KrlZ8C0JLC0irNejK3zcSITdKr38nR+amx+eV/MD5/B73nCADEilqPT69vKzetUTUCAIgF00f3139OM/c9KDleo++9mE//EaCDFufuaTMxIkl+SX/O3ReSeGIFyREA6CLv7Dikk3Xexvs2m3QDyREAQIz43tUjNXloL9Pam4UHtSR3r0URAZHHMPxaU1De/kZJqwvKZLSTREHgSI4AQBdZkVdiuj81o48GJCdYFA0AAKHldNj1v7dOUO+kONP6r9bs0JYDxxonbvBhDmhdrdfXYvPVltR4fKr1BrYX7QtJQ1YAiHaVNR69u+OwaW12NlUjAIDYMrBHgh6/JVt3PrNBDadpvIZft/3pY/nlV63HkNvl0IysgZqfk6HMVEbdA2dLcDrkdjkCSpC4XQ4lOB0hiCo2UDkCAF3g9U/LVe8zGu/HOey69vwUCyMCAMAa00b207cvG25aq/H4VOsxGm8v31KiWU/mNqu6BGKd3W7TjKyBAe2dmZUiO2N8uwzJEQDoAivyzW/uLhvVj+78AICYde+VI3RBO1UhXsOvhcvyVVhaFaKogMhw0/hB7e5x2m2alzMsBNHEDpIjAHCODlXV6sPPj5jWZme3/6IGAEC0cjrsGtwnsd19XsNPw1agiZX5pW0+7rTbtGjuOI6ldTGSIwBwjl7ZWqazpxQmxTl0xZj+1gUEAIDFDMPfrBdXa5i4AZzxaUml/rm52LTm+PfRGbfLoTkT0rRyQQ5fxAUBDVkB4BytbHJe+poLBirBRXMsAEDs6szEjcQ4Ppogtvn9fv3s1cJmX7q9vXCakt0uJTgd9BgJIn4DAcA52FtxSvnFlaY1MvkAgFjHxA2g417fVq6P9x41rX1r+nAN7OG2KKLYwrEaADgHK/PMZ0L7JMXpkvP6WBQNAADhgYkbQMfUeX36+ertprVBPd00XQ0hkiMA0El+v7/ZlJrrx6bI6eBXKwAA83My5Gwn6eFg4gYgSXrmg30qOlpjWntg5hiOaocQ7+ABoJO2lVZpz+FTprVZHKkBAECSlJmarEVzx7WZIJk0pBcTNxDzDp+o05Pv7DatTR7aSzMDrL5C1yA5AgCdtKJJI9a0Xm5NGNzTmmAAAAhDs7MHaeWCHM2ZkCZ3C9+Ab9h3VDvKqyyIDAgfj735mU7WeRvv22zSg9efL5uN42ahRHIEADrBZ/ibzaCfnZ3KixgAAE00VJBse/gavf/96XK7znwE8fulX6/ZYWF0gLW2lVbqhY1FprU5E9KUldbDoohiF8kRAOiEDXuP6mBVnWmNKTUAALTObrdpcJ9E/ee04ab1dz87rA93V1gUFWCdlkb3JsY59P1rRlkXVAwjOQIAnbAir9h0f/TA7ho5oLtF0QAAEDnmXzpM/brHm9Z+uWaHDMPfyk8A0emNwoNav6fJ6N7LztOA5ASLIoptJEcAoAMKS6t07wuf6IWN5uTIRRm9LYoIAIDIkhTv1HevHGlaKyip1CtbS1v5CSD61Hl9+kULo3vnX5phUUQgOQIAAVqRV6JZT+bq5bzmb96eX3+gWYNWAADQsrmT0nRevyTT2iOvf6Y6r8+iiIDQMQy//vT+Hu0/Um1a/+GM0YzutRDJEQAIQGFplRYuy5e3lZJfn+HXwmX5Kiyl4z4AAO1xOuz6wbWjTWvFx2r0/Ef7LYoICL7C0irdtyxPmT95TY++sdP02MQhvXT92BSLIoNEcgQAArI4d0+riZEGXsOvJbl7QxQRAACR7arMAZo8tJdp7X/f2a3Kao9FEQHB01CBvHxLiWo9RrPHp43sx9RDi5EcAYB2GIZfawrKA9q7uqCMhnIAAATAZrPpRzPHmNYqazz6w9rdFkUEBEd7FciS9Lu3d1GBbDGSIwDQjlqvTzWewM5A13h8quW8NAAAAZkwuJdmZg00rT3zwT6VHK+xKCKg61GBHBlIjgBAOxKcDrkDbI7ldjmU4KSRFgAAgfr+NaPltJ85TlDvNfRYk34MQKSiAjlykBwBgHbY7TbNaPKtVmtmZqXIbue8KAAAgRrWN0m3XTjYtLb8k2KOGCAqUIEcOUiOAEAA5udkqL2ch9Nu07ycYaEJCACAKHLPFSOUFHem8tLvl365Zruq6718k46IRgVy5CA5AgAByExN1rA+Sa0+7rTbtGjuOGWmJocwKgAAokPfbvH6z2nnmdbW7apQ5oOv6/yfvK77luVRSYKIRAVy5CA5AgABqKz2aN/R6mbrbpdDcyakaeWCHM3OHmRBZAAARId5lw5TcoKz2XqNx6flW06PQV2RV2JBZMC5uWFsart7qEC2XvPfPgCAZtbtPizfWWW9LodN6390hXolxpHhBwCgC+yrqNbJOm+rj3sNvxYuy9eI/t2p1EREWbvzcJuPU4EcHqgcAYAAvPeZ+UXt4vP6qk+3eBIjAAB0kcW5e9ReexHGnSLSHDlZpxc2HjCtNUxnogI5vFA5AgDtMAx/s+TIZaP6WRQNAADRp6PjTh+5eSxfUCAiPPvRftV6jMb7TrtN737/MvVJilOC08Hf4zBCcgQA2rGttEoVJ+tMa9NH9bcoGgAAok9nxp0mxvFRBuHtVJ1Xz320z7Q2KztV6b0SrQkIbeJYDQC0473PDpnuD+ubpKF9W59cAwAAOoZxp4hGL2ws0vFqj2mt6VQmhA+SIwDQjnebJEemjeRIDQAAXYlxp4g29V5DS9btMa1dOaa/Rg7oblFEaA/JEQBow7FT9corOm5amz6aIzUAAHS1+TkZjY0q2zJ5aK8QRAOcm5X5pSqtrDWtffMyqkbCGckRAGjD+7sOmzrnJ7jsunBYb+sCAgAgSmWmJmvR3HHtJkh+/95unWpj5C9gNcPw649rPzetTR7aSxOH8B4ynJEcAYA2tDTCNyHAM9EAAKBjZmcP0soFOZozIa2xB4nLYU6WFB2t0a9f22FFeEBA3t5xSLsOnTSt0Wsk/NHiGQBaYRh+rd1pTo5MZ4QvAABB1VBB8sjNY1Xr9SnObteti9dr475jjXue+2i/rr1goC4+r6+FkQLN+f1+PfXebtPaqAHdmXQYAagcAYBWbC2p1NFT9aa1y3hhAwAgJOx2mxLjnHI67Xrk5nFKcJk/utz/4laO1yDsbNx3TFsOHDet3T0tgybCEYDkCAC04t0d5ik15/VLUnpv5tIDABBqQ/sm6f5rRpvWio9xvAbh5/+a9BoZ1NOtG8alWhQNOoLkCAC04r1mR2qoGgEAwCp3XjxUU4aaG1o+99F+ffh5hUURAWY7yqv0TpMv1+ZfOkwuBx+7IwH/lQCgBUdO1mlr8XHTGkdqAACwjt1u029uHsvxGoStP67dY7rfK9GlWyanWxQNOorkCAC04P1dh+U/a4RvYpxDk4f1si4gAACgoX2T9INrmx+v+dUajtfAWkVHq7Uyv9S0dsfFQ5UYxwyUSEFyBABa8O4O85GaS4b3VbyTEb4AAFjtjqnNj9c8v36/cncdVnW9V4bhb+UngeBZkrtXvrP+7rldDt0xdah1AaHDSGMBQBM+w6/3d5mTI5cxwhcAgLDQcLzm2ifeV63HaFz/2pIN8uv0h9IZWQM1PydDmanJ1gWKmHH4RK3+vmG/ae3LU9LVKynOoojQGVSOAEATeUXHdbzaY1qj3wgAAOGjpeM1Dd/Z13h8Wr6lRLOezNWKvJLQB4eYUVhapfuW5WnqL99RnfdM1YjDJs2/NMPCyNAZJEcAoIn3PjN3GR81oLsG9XRbFA0AAGjJlKG9ZWvjca/h18Jl+SosrQpZTIgdK/JOJ+CWbymRt8lRLsMvbdp31KLI0FkkRwCgiXebJEc4UgMAQPhZ8sFetdddxGv4tSR3b0jiQewoLK3SwmX5zZIiDfwSibkIRHIEAM5y6EStPi0xv5BxpAYAgPBiGH6tKSgPaO/qgjKatKJLLc7d02pipAGJuchDcgQAzrL2M3Mj1m7xTk0ayghfAADCSa3XpxqPL6C9NR6far2B7QXaYxh+rdpaFtBeEnORheQIAJzlvSbJkZzhfeVy8KsSAIBwkuB0yO1yBLTX7XIowRnYXkA6nQBpaSx0QXGl7nhmg+q8Ris/aUZiLrIwyhcA/s3rM5qN8J0+mn4jAACEG7vdphlZA7V8S/vTaKae10d2e1utW4HTCkurtDh3j9YUlKvG42scC31V5gCt+KRUr20L7ChXAxJzkYXkCAD825YDx3Wi1mtao98IAADhaX5Ohlbmlbbb+yG/6LgOnahV/+4JIYoMkWhFXkmzJqsNY6EDScK1ZGZWCom5CEKtOAD8W9MRvmNSkjUgmTdSAACEo8zUZC2aO07Odj58HjlVr2/+ZYvqON6AVrQ3faYznHab5uUM67LnQ/CRHAGAf3u3Sb+R6YzwBQAgrM3OHqSVC3I0Z0JaYw8St8uhvt3iTPs27z+mB1/eJr+f5phoLpDpMw16uF36wbWj9cjNY1tNzDntNi2aO06ZqcldGSaCjGM1ACCpvLJW28vMI3ynj+ZIDQAA4a6hguSRm8eq1utTgtOhY9X1mvXkByo5XtO47x+bijQmpbvuvIRv83FGR8ZCO+02rf3+ZeqZeDr5dn5qDy3J3avVBWWNPUpmZqVoXs4wEiMRiOQIAEhau9N8pCY5wanx6T2tCQYAAHSY3W5TYtzpjzd9usXrT7dP0pynPjSN/P3Zqu0aOaC7Lh7e16owEWaKjlUHPBbaa/gV5zxz+KKlxBw9RiIXx2oAQNK7O8xHai4d2U9ORvgCABCxGj64ns1n+PWtv23RgSPVFkWFcGEYfv19wwFd97t1Af9Ma9NnGhJzJEYiG+/8AcS8eq+hdU1G+F42kn4jAABEuplZKfrO5cNNa8erPfr6c5tUVeNRdb1XRhc24UT4MQx/s//Ouw+d1JefXq8fLS/QybrAG/UyfSa6cawGQEwrLK3SL9ds16l68wtjSk+m1AAAEA3uvXKktpef0JuFBxvXPjt4QuN/+oZ8/tPVADOyBmp+TgZ9IqJIYWmVFufu0ZqC8sZ+INecP0BJ8U79c1Ox6n1Gh56P6TPRj8oRADFrRV6JZj2Zq3W7Kpo9duefN2pFXudm2gMAgPBht9v0+C3ZGjmgm2nd9+9CghqPT8u3nH5PwGt/dGh4j7d8S0ljP5Eaj08v55Xqrx8faDExMnlILzmYPhPTSI4AiEntzbP3Gn4tXJavwtKqFh8HAACRo1u8Uz+4dnSbe3jtjw7tvcdrKr23W8/9xxT985sX65UWxkLPmZCmlQtyNDt7UDDDRhjgWA2AmBTIPHuv4deS3L3NmrkBAIDIs6qgrN09vPZHvkDe40mSTdI3pmXo3itGyh13OhnC9JnYRuUIgJjTkXn2qwvKaNQGAECE47U/NnTkv3Oc064fXDO6MTFyNqbPxCaSIwBiTq3XF/A8+xqPT7XewLuYAwCA8MNrf2zoyH/nOq/Bf2eYkBwBEHMSnI7Gs6TtaW2ePQAAiBwdee2Pd9p57Y9QeytOKdBaD97joSmSIwBijt1u04ysgQHtZZ49AACRryOv/T7Dr09LK4McEbraS5uLNeepDxXogSje46EpkiMAYtL8nAy193rIPHsAAKLH/JwMOQP4MOw1/Prq4o9VUEyCJBwZhl/V9d7GvjB1Xp8e+FeBFv4zX7We5iN6W8J7PLSEaTUAYlJmarIuGd5X63ZVtPg48+wBAIguDZNIAhnzWlXr1VeXfKy/zr9QFwzqEaII0ZbC0iotzt2jNQXlqvH45HY5NG1UP31+6KR2HToZ8PPwHg+tCVnlyIEDB/S9731PY8aMUVJSknr37q0pU6bo0UcfVXV1dVCuWVZWpp49e8pms8lms+myyy4LynUARKYjJ+ubrTHPHgCA6DU7e5BWLsjRnAlpjT1I3C6Hvjg+VeMH9zTtrazx6LbFH+vTEipIrLYir0SznszV8i0ljQ1Xazw+vfZpeYuJkdunDtGKb1/c7L8z7/HQFpvf7w/6nKpVq1bptttuU2Vly79YRo0apdWrVysjI6NLr3vzzTfrpZdearw/bdo0vffee116jQbFxcVKT0+XJBUVFSktLS0o1wHQNapqPcp++A2d/cXRc/8xRTnD+3L+FACAGGAYftV6fUpwOmS321Tr8Wn+s5uUu9tcVdrD7WqsIGn6Mwi+wtIqzXoyt91qH+l0AuSXN2Xpi+PPJD/4bxadgvH5O+jHavLz8zV37lxVV1erW7du+tGPfqTp06erpqZGL7zwgv70pz/ps88+03XXXaeNGzeqW7duXXLdV155RS+99JL69++vQ4cOdclzAogeW/YfMyVG4hx2TRnWmxdNAABihN1uU2LcmY9DCS6H/nT7JM17dqM+/PxI43pljUe3/mm9pgztrQ8/P9J4pGNG1kDNz8ngeEaQLc7dE1BipFu8Uy9982KNGtjdtN70vzPQmqAfq7n33ntVXV0tp9OpN954Qw888ICmTp2qyy+/XE8//bR+85vfSJJ27Nihxx57rEuuefLkSX3729+WJD366KNd8pwAosumfcdM98em9VBCgCP+AABAdHLHObTkjsm6+Lw+pvUTtV69veOQ6UjH8i2nj3qsyCuxItSYYBh+rSkoD2ivzzA0on/XfNGO2BTU5MjGjRsbj7HMmzdPU6dObbZn4cKFGjNmjCTpt7/9rTwezzlf94EHHlBRUZGmT5+ur33ta+f8fACiz8Z9R033Jw3tbVEkAAAgnDQkSKZm9Gl3r9fwa+GyfBWWVoUgsthT6/U1JqTaU+MxVOsNbC/QkqAmR15++eXG23fddVfLAdjtuv322yVJx44dO+eeIBs2bNDvf/97xcXF6amnnjqn5wIQneq8PuUVHTetTRnWy5pgAABA2HHHObTkzknq2y2u3b1ew68luXtDEFXsSXA6lOAM7COr2+VQgpMqYHReUJMj69atkyQlJSVp4sSJre6bNm1a4+3c3NxOX8/r9eob3/iGDMPQD37wA40aNarTzwUgen1aUqU6r2FamziYyhEAAHBGgtOhU3WBVSKsLiiTEUBfDHTMjvITCvTf6sysFHrH4ZwEtTPN9u3bJUnDhw+X09n6pUaPHt3sZzrj0UcfVX5+vs477zw98MADnX6elhQXF7f5eFlZWZdeD0DwbGpypGbUgO7qkeiyKBoAABCOOnakw6dar4/Gn11o8/5juuuZDc2+0GqJ027TvJxhIYgK0Sxo//fW1taqouL0GKz2xur06tVLSUlJOnXqlIqKijp1vT179uinP/2pJOkPf/iDEhISOvU8rWkYEwQg8jXtNzKZIzUAAKCJBKdDbpcjoASJ22XnSEcX+mB3hb7+3CZV17f/795pt2nR3HFMDcI5C9qxmhMnTjTeDmQ8b1JSkqTTk2Y64+6771ZNTY1uueUWXX311Z16DgDRzzD82rTfPKlmMs1YAQBAE3a7TTOyBga01+mw68DR6iBHFBveKjyou5ZubJYYuSA1WbOzU+X+93RBt8uhORPStHJBjmZnD7IiVESZoFaONIiLa7+RUXx8vCSppqamw9d67rnn9NZbbyk5OVmPP/54h38+EO1VtJSVlWnKlClBuTaArvP54ZM6Xm2eisWkGgAA0JL5ORlamVcqbzv9RE7UejX79x/oqdsm6OLhfUMUXXQwDL9qvT4lOB16ZWup7luWL1+Tf9/TR/XTU1+dqASXw7SfHiPoSkFLjpx9rKW+vr7d/XV1dZIkt9vdoetUVFRo4cKFkqSf//znSklJ6dDPB6q9o0EAIsPGfeaqkUE93RrUs2O/dwAAQGzITE3WornjtHBZfrsJksoaj7725w36yQ2Z+tpFQ2Sz2fgg34bC0iotzt2jNQXlqvH45HLY5PE1/3d8XVaKHr8lW3H/nlpjt9vo7YKgCNrfqu7duzfeDuSozKlTpyQFdgTnbPfdd58qKio0adIkfetb3+pYkABiTtN+I5OG0m8EAAC0bnb2II3o311LcvdqdUGZajw+uV0OTRvVTzvKqrTvyJnjND7DrwdXbNNHnx9RvNOh17eVN+6fkTVQ83My6I0haUVeSbOEU0uJkbmT0vTLm8bKQWIJIRDUypG+ffuqoqKi3Ukvx44da0yOdKTxaWlpqZ5//nlJ0uWXX65ly5a1uf/QoUN64YUXJEnDhg3ThRdeGPC1AESH5skRjtQAAIC2NVSQPHLzWFMlyMk6r+77R57eKDxo2r/m03LT/RqPT8u3lGhlXqkWzR0X0z0yCkurAqrEmZ2dql/dNJaKG4RMUOuRxowZo3Xr1mn37t3yer2tjvPdsWOH6WcCdfZxnd/85jft7t++fbtuvfVWSdIdd9xBcgSIMWWVNSo+Zu5rNJnKEQAAEKCmRzq6xTv1f1+dqMff2qn/fWd3uz/vNfxauCxfI/p3j9kKksW5e9pNjEinp9CQGEEoBW1ajSTl5ORIOn1kZvPmza3uW7t2bePtSy65JJghAYhhTfuNJCc4NbJ/91Z2AwAAtM9ut2nh1aP0v7eOVyCf5b2GX0ty97b4mGH4VV3vlRFA8iASGYZfawrK298oaXVBedT+e0B4Cmpy5Itf/GLj7WeeeabFPYZh6LnnnpMk9ezZU9OnTw/4+YcOHSq/39/uPw2mTZvWuLZ06dJO/ZkARK5NLRyp4RsJAADQFa7LSpHLEdjHq5X5JSo6dqZXSWFple5blqfzf/K6Mh98Xef/5HXdtyxPhaVVwQrXErVen2o8vvY36vRRpFpvYHuBrhDU5MiUKVN06aWXSpKWLFmijz76qNmeRYsWafv27ZKk//qv/5LL5TI9vnTpUtlsNtlsNj300EPBDBdAlGtaOUIzVgAA0FVqvT7VeY2A9np8fl3663c184l1uvv5zbrhyVwt31LSmDho6FEy68lcrcgrCWbYIZXgdCjeGdhHULfLoQSnI8gRAWcEfQbSE088oUsuuUQ1NTW6+uqr9cADD2j69OmqqanRCy+8oKefflqSNHLkyMaRvADQ1SprPNpRbv72ZQrNWAEAQBdJcDrkdjkCroyQpMKyKhWWtV4d0l6PkkgbFVxWVRvw3plZKRHxZ0L0CHpyZPz48frHP/6hr371q6qqqtIDDzzQbM/IkSO1atUq0/hfAOhKWw4c01mn7BTntCsrrYd1AQEAgKhit9s0I2uglm/p2koPr+HX/639XL+7dXzjWmFplRbn7tGagsgZFVxV69Fdz2wIqLrGabdpXs6wEEQFnBH05Igk3XDDDdq6daueeOIJrVq1SsXFxYqLi9Pw4cP1pS99SQsWLFBiYmIoQgEQo5r2GxmX1kPxlGoCAIAuND8nQyvzStucxmKT1C3BqRO13oCfd2V+qfZVnNTU8/pKkpbk7jVdI9BRwVZVmtR7DX3zL5u18+DJdvc67TYtmjsubJM8iF42/9kdS9FpxcXFSk9PlyQVFRUpLS3N4ogAnG3uHz/Shr1nEiTfuuw83X/taAsjAgAA0WhFXokWLstvMUHS8MH/uqwUfbC7Qnc8s7HLr++027RyQY4puWBlpYnf79f9L27VPzcXm9YH93Ire3AvvVl4sDGmmVkpmpczjMQI2hWMz98hqRwBACvVeX3KKzpuWptMvxEAABAEs7MHaUT/7lqSu1erC8pa/eB/6Yh+He5REgiv4dcv12zXk7dOUI9EV4vJmkArTaRzrzZ58p3dzRIjfbvF669fv0jpvRMjrm8KohfJEQBR79OSStWfdb7VZpMmDGZSDQAACI7M1GQtmjtOj9w8ttUP/sHqUSJJ63ZVaNxP31BqjwSVVdaqtaMCbTV87Ypqk5c/KdGiN3ea1hJcdi25Y5LSe59uq2C325QYx8dSWC+oo3wBIBw0HeE7akB39Uh0tbIbAACgazR88G+tImJ+Toac7VRLOO02/eLGC/TNaRkdvn5pG4mRBl7Drz+t22NaW5F3eoxwZ8YLG4Zf1fVeffh5he5/cavpMZtN+t2Xx2tces8O/1mAYCNFByDqbdxrbsbKkRoAABAOGipM2utRMjt7kAzDr6Uf7u/yYziS9K9PSrStpFIjBnZXL3ec/rZhv1rrKdtatUnTSpOWPHh9pq4+f2CXxw90BZIjAKKaYfi1ab+5cmTSUI7UAACA8BBoj5KOHMOx29RqcqM1Ow+d1M5D7U+TkU4nSBbn7tFjc7Mltd2EtsFdlwzVXZcwnhfhi+QIgKi2+/BJVdZ4TGtUjgAAgHASSI8SKbBRwU67TS9982LZbNKcpz6Uxxec4aTLt5Roy/5j6tMtXlsOHFNbM1BtkuZMYJonwhs9RwBEtQ1NjtQM6ulWak+3RdEAAAC0rr0eJQ1JlNb6lDQcwxmX3lNj03rqhnGpwQxX+45Ua/P+thMjkuSX9MwH+4IaC3CuSI4AiGqb9jXtN8KRGgAAELlmZw/SygU5mjMhTW6XQ5Lkdjk0Z0KaVi7IMY3lDbTh6yM3j9XPb7xAd0wdomBN011dUCajo2d9gBDiWA2AqNZ0Us0kjtQAAIAIF+gxnI40fG1wos4blPHCNR6far0+xvYibFE5AiBqlR6vUcnxGtPalGEkRwAAQHRo7xiO1LFKEymwahPHv5Mqj7VxxKcpt8uhBKcjoL2AFUjbAYhaG5scqenhdml4v24WRQMAAGCNQCtNzt4baLVJ7u6KgCpNZmaltJnEAaxG5QiAqLWp6ZGaIb14UQYAADErkEoTKTh9TeblMMYX4Y3KEQBRq2nlyGSO1AAAAASkq/uaZKYmhyJsoNNIjgCISpU1Hn128IRpjUk1AAAAHdNQbdKW2dmDNKJ/dy3J3avVBWWq8fjkdjk0MytF83KGkRhBRCA5AiAqbdl/TP6zvryIc9p1waAe1gUEAAAQxTrS1wQIRyRHAESlpkdqstN6Kp4O6QAAAEEVSKUJEI5oyAogKjXvN8KRGgAAAAAtIzkCIOrUenzKL6o0rU0aSjNWAAAAAC0jOQIg6nxaUql6n9F432aTJgymcgQAAABAy0iOAIg6H+89Yro/emCyerhdFkUDAAAAINzRKQdA1CgsrdLi3D16+ZMS0/p5/ZIsiggAgP/f3r2HR1Udeh//zSUhIRAChmggIDcjUaJyi1LCgUABBVFBixe8cZDyHi+nKrxUaKVUHxQtlNqnVU8PiIVXjbRFRUKUE1BKRApeCFgCykUgEC4BTIBcJ7PfPziZZmCSzIS5Zn8/z5Pn2dmz9l5ru5xhzS97rwUAiATcOQKgRfhg22Hd9od8rfzqsJyG+2trdhTrg22HPR8IAAAAwPQIRwBEvJ1HyjR9RYEcF6Yi/8tpSNNXFGjnkbIgtwwAAABAJCAcARDxFufvazAYqeNwGlqSvz9ILQIAAAAQSQhHAEQ0p9NQ7o6jXpVds6NYziZCFAAAAADmQzgCIKJVOmpVUVPrVdmKmlpVOrwrCwAAAMA8CEcARLQYu02xUTavysZG2RRj964sAAAAAPMgHAEQ0axWi0Zek+RV2THpybJaLQFuEQAAAIBIQzgCIOJV1zY9j4jdatGUzO5BaA0AAACASEM4AiCi5X9Xoo++aXxCVrvVooUTr9c1neKD1CoAAAAAkcQe6gYAQHOdrXLo53/b7rbPZrUoymZRZY1TsVE2jUlP1pTM7gQjAAAAABpEOAIgYr2wplCHf6hw2zf3tms1KaOrKh21irHbmGMEAAAAQJMIRwBEpPzvSvT2Pw667RvU4zJNyugqq9Wi1tF8vAEAAADwDnOOAIg4nh6naR1t08t3XcedIgAAAAB8RjgCIOLMz734cZpnbumtLh1ah6hFAAAAACIZ4QiAiLJpT4n+32b3x2lu7N5B9994ZYhaBAAAACDSEY4AiBjnqhyaecHjNLFRPE4DAAAA4NIwYyGAsOd0Gqp01OrFNYUqOu3+OM3Pb75aV14WF6KWAQAAAGgJCEcAhK2dR8q0OH+fcnccVUVN7UWvZ3TvoAcHdQt+wwAAAAC0KIQjAMLSB9sOa/qKAjmchsfXo2wW/YbHaQAAAAD4AXOOAAg7O4+UNRqMSFKt09C5qovvJgEAAAAAXxGOAAg7i/P3NRqMSJLTkJbk7w9SiwAAAAC0ZIQjAMKK02kod8dRr8qu2VEsZxMhCgAAAAA0hXAEQFipdNR6nHzVk4qaWlU6eLQGAAAAwKUhHAEQVmLsNsVG2bwqGxtlU4zdu7IAAAAA0BDCEQBhxWq16Jb0K7wqOyY9mdVqAAAAAFwywhEAYWdi/y5NlrFbLZqS2T0IrQEAAADQ0hGOAAg7/1N4rNHX7VaLFk68Xtd0ig9SiwAAAAC0ZPZQNwAA6jt0qlzLPz/gts9mtajWaSg2yqYx6cmaktmdYAQAAACA3xCOAAgrC9buVnWt0/V7lM2ivKeHqmPbVoqx25hjBAAAAIDfEY4ACBvfHC7VB9uOuO174KZuuvKyuBC1CAAAAIAZMOcIgLBgGIZezC1029e2lV2PD+8VohYBAAAAMAvCEQBh4e/fleizPSfd9v2fYT3VIS46RC0CAAAAYBaEIwBCzuk0ND93l9u+K+Jj9O+DWaoXAAAAQOARjgAIufe3HVZhcZnbvqdHpio22haiFgEAAAAwE8IRACFVWVOrhWu/dduXenkb3dk/JUQtAgAAAGA2hCMAQmrZ59/r8A8VbvueuaW3bCzZCwAAACBICEcAhExpeY3++Mlet303du+grKuTQtQiAAAAAGZEOAIgZF79dI9KK2rc9s0akyaLhbtGAAAAAASPPdQNAGA+TqehfSXn9MZn+932j70uWTd0SQhNowAAAACYFuEIgKDZeaRMi/P3KXfHUVXU1Lq9Zrda9H9HXR2ilgEAAAAwM8IRAEHxwbbDmr6iQA6n4fH1QT0vU7fEuCC3CgAAAACYcwRAEOw8UtZoMCJJm/ae1M4jZUFsFQAAAACcRzgCIOAW5+9rNBiRpFqnoSX5+xstAwAAAACBQDgCIKCcTkO5O456VXbNjmI5mwhRAAAAAMDfCEcABFSlo/aiyVcbUlFTq0qHd2UBAAAAwF8IRwAEVIzdptgom1dlY6NsirF7VxYAAAAA/IVwBEBAWa0W3ZJ+hVdlx6Qny2q1BLhFAAAAAOAuaOHIwYMHNWPGDKWlpSkuLk4dOnRQRkaGFixYoPLy8ks6d1lZmbKzszV16lT169dPCQkJio6OVseOHTVs2DAtWLBAP/zwg38uBIDPHsnsIUsTmYfdatGUzO7BaRAAAAAA1GMxDCPgsx/m5ORo0qRJKi0t9fj61VdfrTVr1qhHjx4+nzs3N1fjx49XVVVVo+Uuv/xyvfPOO8rKyvK5Dm8UFRWpS5cukqRDhw4pJSUlIPUAkeiH8moNnJenmlrPHzd2q0ULJ16v22/oHOSWAQAAAIg0gfj+HfA7RwoKCjRx4kSVlpaqTZs2mjdvnjZt2qR169Zp6tSpkqTdu3dr7NixOnv2rM/nP3nypKqqqmS1WjV69GgtWrRI69ev11dffaVVq1bp7rvvliQdO3ZMt956q7Zt2+bPywPghbf+cdBjMBIbZdOd/VK06vFMghEAAAAAIWMPdAVPPvmkysvLZbfbtXbtWg0aNMj12vDhw3XVVVdp5syZ2rVrl377299qzpw5Pp0/KipK06ZN0+zZs9W1a1e31/r27atx48Zp8ODB+s///E+Vl5dr+vTpWrdunV+uDUDTqh1O/XnT9277br8+WS/eeZ1i7DbmGAEAAAAQcgF9rGbr1q3KyMiQJE2bNk2vv/76RWWcTqf69OmjwsJCtW/fXseOHVNUVJTf2zJw4EB98cUXslqtOn78uC677DK/np/HagDPVn5VpKdXFLjt+/DxTKWntAtRiwAAAABEsoh7rOb99993bU+ePNlzA6xWPfjgg5Kk06dP69NPPw1IW4YNGybpfBizf//+gNQBwJ1hGFq80f39dmP3DgQjAAAAAMJKQMORjRs3SpLi4uLUv3//BssNHTrUtZ2fnx+QttSfsNVqZQVjIBg+33tSO4vL3PY9MsT3iZcBAAAAIJACOudIYWGhJKlXr16y2xuuqnfv3hcd428bNmyQJNntdvXq1cvn44uKihp9vbi4uFntAlqyxfnud410u6y1RvROClFrAAAAAMCzgIUjlZWVKikpkaQmn/9p37694uLidO7cOR06dMjvbcnJydH27dslSaNHj1Z8fLzP56h7ngmAd/YcP6v1u4677ZuS2Z0JWAEAAACEnYA9X3LmzBnXdps2bZosHxcXJ0nNWs63MadOndJjjz0mSbLZbHr++ef9en4Anr3xmftdI+1io3RnfyYqBgAAABB+AnrnSJ3o6Ogmy7dq1UqSVFFR4bc21NbWatKkSTpw4IAk6Ze//KX69u3brHM1dUdLcXGxa2UewOxOnavW3750fxRt0o1d1To64KuHAwAAAIDPAvZNJSYmxrVdXV3dZPm6CVNjY2P91oZHH31UH330kSRp7NixevbZZ5t9LpbmBbz31uYDqnI4Xb9H2Sx66EfdQtcgAAAAAGhEwB6radu2rWvbm0dlzp07J8m7R3C8MWvWLP3pT3+SJGVmZuovf/mLbDabX84NoGFVjlr9+fMDbvvGXddJl8fHNHAEAAAAAIRWwMKRmJgYJSYmSmp6pZfTp0+7whF/THz60ksvaf78+ZKkfv36afXq1X69IwVAw1ZtO6KSs1Vu+/49s3uIWgMAAAAATQtYOCJJaWlpkqQ9e/bI4XA0WG7Xrl0XHdNcr776qp555hnXuT7++GO1a9fuks4JwDuGYWjJBcv3Dupxmfp05j0IAAAAIHwFNBzJzMyUdP6RmS+//LLBchs2bHBtDx48uNn1LV++XI8//rgkqUePHsrLy3PdvQIg8D7bc1K7jp5x2zf137hrBAAAAEB4C2g4cscdd7i2ly5d6rGM0+nUsmXLJEkJCQnKyspqVl0rV67U5MmTZRiGUlJStG7dOnXq1KlZ5wLQPIvz97n93qNjnIalJoWoNQAAAADgnYCGIxkZGRoyZIgkacmSJfr8888vKrNw4UIVFhZKkn72s58pKirK7fU333xTFotFFotFc+fO9VjP2rVrde+996q2tlZJSUnKy8tTt27d/HotABr33bEz+nT3Cbd9UzK7y2q1hKhFAAAAAOCdgC3lW+eVV17R4MGDVVFRoVGjRmn27NnKyspSRUWFsrOzXSvKpKamavr06T6ff/PmzRo/fryqq6sVFRWlRYsWqaamRt98802Dx6SkpCghIaG5lwTAgzc+c59rpH3rKE3oyxLYAAAAAMJfwMORvn376t1339X999+vsrIyzZ49+6IyqampysnJcVv+11sfffSRysvLJUk1NTWaNGlSk8csXbpUDz/8sM91AfDsxJlK/fVL91Wp7r/pSsVGs3w2AAAAgPAX8HBEksaNG6ft27frlVdeUU5OjoqKihQdHa1evXrpJz/5iR5//HG1bt06GE0B4Ec7j5Rpcf4+rdp2RA6n4dpvt1r0wKArQ9gyAAAAAPCexTAMo+liaEpRUZG6dOkiSTp06JBSUnicAC3bB9sOa/qKArdQpI5F0u/uuUG339A5+A0DAAAA0KIF4vt3QCdkBdAy7TxS1mAwIkmGpOkrCrTzSFlwGwYAAAAAzUA4AsBni/P3NRiM1HE4DS3J399oGQAAAAAIB4QjAHzidBrK3XHUq7JrdhTL2USIAgAAAAChRjgCwCeVjlpV1NR6VbaiplaVDu/KAgAAAECoEI4A8EmM3abYKO+W6I2NsinGznK+AAAAAMIb4QgAn1itFt2SfoVXZcekJ8tqtQS4RQAAAABwaQhHAPjskcweairysFstmpLZPSjtAQAAAIBLQTgCwGdXtIuRpZF0xG61aOHE63VNp/jgNQoAAAAAmske6gYAiDwfFhyRp0VoYqNsGpOerCmZ3QlGAAAAAEQMwhEAPlv59WG338ddl6yX7rpOMXYbc4wAAAAAiDiEIwB8svfEWRUc+sFt34T+KWodzccJAAAAgMjEnCMAfPLeV+53jSS2aaUhvRJD1BoAAAAAuHSEIwC85nQaeu+CR2puv6GT7DY+SgAAAABELr7RAPDalu9P6fAPFW77xvftHKLWAAAAAIB/EI4A8NqFj9SkXt5G17IqDQAAAIAIRzgCwCuVNbVas6PYbd+EfimyWFidBgAAAEBkIxwB4JX/2XlMZ6ocrt8tlvPzjQAAAABApCMcAeCVCydiHdwzUcntYkPUGgAAAADwH8IRAE06caZKG7494baPiVgBAAAAtBSEIwCa9GHBEdU6DdfvsVE23dznihC2CAAAAAD8h3AEQJNWfl3k9vvNfa5QXCt7iFoDAAAAAP5FOAKgUd8dO6NvDpe57eORGgAAAAAtCeEIgEatvGAi1qS2rTS4V2KIWgMAAAAA/kc4AqBBTqeh9y8IR+7o21k2qyVELQIAAAAA/yMcAdCgzftOqri00m0fj9QAAAAAaGkIRwA06G9fud81kpYcr7Tk+BC1BgAAAAACg3AEgEcV1bX66Jtit30TuGsEAAAAQAtEOALAo7U7j+pcda3rd6tFuv2GTiFsEQAAAAAEBuEIAI8ufKQm86qOSoqPCVFrAAAAACBwCEcAXOR4WaXyvzvhto9HagAAAAC0VIQjAC7y/teH5TT+9XvraJtGXXt56BoEAAAAAAFkD3UDAISPnUfKtDh/n9772v2RmkE9LlPraD4uAAAAALRM3DkCQJL0wbbDuu0P+Vr51WEZhvtrn+4+oQ+2HfZ8IAAAAABEOMIRANp5pEzTVxTI4TQ8vl5rGJq+okA7j5QFuWUAAAAAEHiEIwC0OH9fg8FIHYfT0JL8/UFqEQAAAAAED+EIYHJOp6HcHUe9KrtmR7GcTYQoAAAAABBpCEcAk6t01KqiptarshU1tap0eFcWAAAAACIF4QhgcjF2m2KjbF6VjY2yKcbuXVkAAAAAiBSEI4DJWa0W3ZJ+hVdlx6Qny2q1BLhFAAAAABBchCMA9EhmDzWVeditFk3J7B6cBgEAAABAEBGOANA1neLV7bK4Bl+3Wy1aOPF6XdMpPoitAgAAAIDgsIe6AQBC7/S5an1/8txF+2OjbBqTnqwpmd0JRgAAAAC0WIQjAPTpt8dVf4XeGLtVm2YNV0JsNHOMAAAAAGjxCEcAKK/wuNvvmVd1VIe4ViFqDQAAAAAEF3OOACZXU+vU33efcNv347SkELUGAAAAAIKPcAQwua37T+lMlcNtX1ZvwhEAAAAA5kE4Apjcul3uj9Skd26ny+NjQtQaAAAAAAg+whHAxAzD0LrCY277RvBIDQAAAACTIRwBTGxfyTl9f7Lcbd+I3peHqDUAAAAAEBqEI4CJrb9glZrL41upT+f4ELUGAAAAAEKDcAQwsbwLHqkZ3jtJFoslRK0BAAAAgNAgHAFMqrS8Rl8cOO22j0dqAAAAAJgR4QhgUp9+e1y1TsP1eyu7VYN7JYawRQAAAAAQGoQjgEmtv2AJ38G9EhUbbQtRawAAAAAgdAhHABNy1Dr16e4TbvuG92YJXwAAAADmRDgCmNCXB06rtKLGbd+INMIRAAAAAOZEOAKY0IWP1FyTHK/kdrEhag0AAAAAhBbhCGBCFy7hy10jAAAAAMyMcAQwme9LzmnviXNu+0aksYQvAAAAAPMiHAFMZt0Fj9Qktmml6zq3C1FrAAAAACD0CEcAk1m/y/2RmuG9O8pqtYSoNQAAAAAQeoQjgImUVdboH/tOue0b3ptHagAAAACYG+EIYCIbvy2Rw2m4fo+2WTXkqsQQtggAAAAAQo9wBDCRdResUnNTz8sU18oeotYAAAAAQHggHAFMotZp6JPd7pOx/pglfAEAAACAcAQwi22HTut0eY3bvqyrCUcAAAAAgHAEMIm8Qve7Rq6+vK26dGgdotYAAAAAQPggHAFMYv0F4cgIHqkBAAAAAElBDEcOHjyoGTNmKC0tTXFxcerQoYMyMjK0YMEClZeX+62e7OxsjR49WsnJyYqJiVG3bt30wAMPaPPmzX6rA4g0h06Va/exM277CEcAAAAA4LygLFORk5OjSZMmqbS01LWvvLxcW7du1datW7V48WKtWbNGPXr0aHYdlZWV+slPfqLVq1e77T9w4IAOHDigt99+W3PnztWzzz7b7DqASLV+l/tdIx3ionVDl/Yhag0AAAAAhJeA3zlSUFCgiRMnqrS0VG3atNG8efO0adMmrVu3TlOnTpUk7d69W2PHjtXZs2ebXc+UKVNcwUhWVpbef/99bdmyRUuWLFHPnj3ldDo1Z84cLV682C/XBUSSvAuW8B12dUfZrJYQtQYAAAAAwkvA7xx58sknVV5eLrvdrrVr12rQoEGu14YPH66rrrpKM2fO1K5du/Tb3/5Wc+bM8bmODRs26O2335YkjRs3Tu+9955sNpskaeDAgbrtttvUv39/HTx4UDNnztRdd92lhIQEv1xfpHM6DVU6ahVjt8nqxZflSC8fjm0KdPmzVQ5t3nvSbd+P0y5v8jgAAAAAMAuLYRhGoE6+detWZWRkSJKmTZum119//aIyTqdTffr0UWFhodq3b69jx44pKirKp3rGjh2rNWvWyGaz6fvvv1dKSspFZbKzs3XvvfdKkhYsWKDp06c344oaVlRUpC5dukiSDh065LEN4WTnkTItzt+n3B1HVVFTq9gom25Jv0KPZPbQNZ3iW1z5cGxTsK75udX/1OZ9p1z7LBbpL9MGaUC3Dh6PAQAAAIBwFojv3wENR37xi1/ohRdekCRt3rxZN954o8dy8+fP16xZsyRJa9eu1ciRI72u4+zZs0pMTFRVVZVuvvlm5ebmeixXXV2tjh07qqysTD/60Y/02Wef+Xg1jYukcOSDbYc1fUWBHM6Lu95utWjhxOt1+w2dW0z5cGxTOF4zAAAAAESCQHz/DuhjNRs3bpQkxcXFqX///g2WGzp0qGs7Pz/fp3Bky5Ytqqqquug8F4qOjtZNN92ktWvXasuWLaqpqfH5DpWWYOeRsga/MEuSw2no6RUFio+JUq+kNtpz/KyeXlGg2ggtLyns2hQu1zx9RYGuSmrb4F0nAAAAAGAWAQ1HCgsLJUm9evWS3d5wVb17977oGF/ruPA8DdWzdu1aORwOfffdd7rmmmu8rqeoqKjR14uLi70+Vygtzt/XYDBSp9ZpaPKbW70+Z6SXD8c2BeOaHU5DS/L3a+HE6306DgAAAABamoCFI5WVlSopKZGkJm9xad++veLi4nTu3DkdOnTIp3rql2+qnrrbbuqO8yUcqX9spHI6DeXuOBrqZiCMrNlRrN/cdZ3Xk9kCAAAAQEsUsKV8z5w549pu06ZNk+Xj4uIkyeflfH2pp66O5tTTElQ6alVRUxvqZiCMVNTUqtLB/xMAAAAAzC2gd47UiY6ObrJ8q1atJEkVFRUBq6eujubU09QdLcXFxa6VecJVjN2m2CgbAQlcYqNsirHbQt0MAAAAAAipgN05EhMT49qurq5usnzdpKqxsbEBq6eujubUk5KS0uhPcnKyT+cLBavVolvSr/Cq7B03dFLhczfr9hs6RXT5cGxTOF3zmPRkHqkBAAAAYHoBC0fatm3r2vbmEZZz585J8u4RnObWU1dHc+ppKR7J7CF7E1+G7VaLfvpvPRUbbdO0f+sZ0eXDsU3hdM1TMrs3WgYAAAAAzCCgd44kJiZKanqll9OnT7uCC18nPq0/CWtT9dR/NKYlTLDaHNd0itfCidc3+MXZbrVo4cTrXcu7Rnr5cGxTOF4zAAAAAJhZQJfyTUtL08aNG7Vnzx45HI4Gl/PdtWuX2zG+qL/iTP3zNFaP3W5Xr169fKqnJbn9hs66KqmtluTv15odxaqoqVVslE1j0pM1JbP7RV+YI718OLYpHK8ZAAAAAMzKYhiGEaiTz549Wy+++KIkafPmzbrxxhs9lps/f75mzZolSfr44481atQor+s4c+aMEhMTVV1drZtvvlm5ubkey1VXV6tjx44qKyvToEGDtGnTJh+vpnFFRUWuu1EOHTrU5LLC4cLpNFTpqFWM3ebV3BORXj4c2xSO1wwAAAAA4SoQ378D9liNJN1xxx2u7aVLl3os43Q6tWzZMklSQkKCsrKyfKqjbdu2GjFihCQpLy+vwUdrVq5cqbKyMknS+PHjfaqjJbNaLWodbff6C3Oklw/HNoXjNQMAAACAmQQ0HMnIyNCQIUMkSUuWLNHnn39+UZmFCxeqsLBQkvSzn/1MUVFRbq+/+eabslgsslgsmjt3rsd6ZsyYIUlyOBx67LHHVFvrvlRtSUmJfv7zn0s6H8A88sgjl3RdAAAAAACg5QhoOCJJr7zyimJjY+VwODRq1Ci9+OKL2rx5sz755BNNmzZNM2fOlCSlpqZq+vTpzapj+PDhuueeeyRJq1at0siRI7Vq1Sp98cUXWrp0qW666SYdPHhQ0vlHeNq3b++fiwMAAAAAABEvoBOySlLfvn317rvv6v7771dZWZlmz559UZnU1FTl5OS4LcvrqzfeeENlZWVas2aNPvnkE33yySdur1utVj377LOaNm1as+sAAAAAAAAtT8DvHJGkcePGafv27XrqqaeUmpqq1q1bKyEhQQMGDNBLL72kr7/++pJXj4mNjVVOTo7eeustjRw5UklJSYqOjlaXLl103333KT8/v8HHcgAAAAAAgHkFdLUaM4nU1WoAAAAAAIgkEbdaDQAAAAAAQLgjHAEAAAAAAKZGOAIAAAAAAEyNcAQAAAAAAJga4QgAAAAAADA1whEAAAAAAGBqhCMAAAAAAMDUCEcAAAAAAICpEY4AAAAAAABTIxwBAAAAAACmRjgCAAAAAABMjXAEAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATM0e6ga0FA6Hw7VdXFwcwpYAAAAAANBy1f/OXf+7+KUgHPGTEydOuLYzMjJC2BIAAAAAAMzhxIkT6tat2yWfh8dqAAAAAACAqVkMwzBC3YiWoLKyUjt27JAkdezYUXZ7+N+UU1xc7LrLZcuWLUpOTg5xixAI9HPLRx+bA/1sDvSzOdDP5kA/mwP9HBoOh8P19EZ6erpiYmIu+Zzh/w0+QsTExGjgwIGhbkazJScnKyUlJdTNQIDRzy0ffWwO9LM50M/mQD+bA/1sDvRzcPnjUZr6eKwGAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApmYxDMMIdSMAAAAAAABChTtHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATI1wBAAAAAAAmBrhCAAAAAAAMDXCEQAAAAAAYGqEIwAAAAAAwNQIRwAAAAAAgKkRjgAAAAAAAFMjHIlwBw8e1IwZM5SWlqa4uDh16NBBGRkZWrBggcrLy/1WT3Z2tkaPHq3k5GTFxMSoW7dueuCBB7R582a/1YGGBbKfy8rKlJ2dralTp6pfv35KSEhQdHS0OnbsqGHDhmnBggX64Ycf/HMhaFSw3s/1FRcXKyEhQRaLRRaLRcOGDQtIPfiXYPZzXl6eHn74YfXq1UtxcXFq166dUlNTddddd+m1117T2bNn/Vof/iUY/bxz50498cQTSk9PV3x8vOuzOysrS4sWLdKZM2f8Ug/cHT9+XKtXr9acOXN0yy23KDEx0fUZ+vDDDwekTsZhwResfmYcFlqheD/XxzgszBiIWKtXrzbatWtnSPL4c/XVVxt79+69pDoqKiqMW2+9tcE6rFar8dxzz/npiuBJIPt5zZo1RqtWrRo8d93P5Zdfbqxfv97PV4b6gvF+9uTOO+90q2fo0KF+rwP/Eqx+PnXqlHH77bc3+d7++uuvL/2icJFg9POCBQsMu93eaP9eeeWVRkFBgZ+uCnUa+2/+0EMP+bUuxmGhE4x+ZhwWesF8P3vCOCy8cOdIhCooKNDEiRNVWlqqNm3aaN68edq0aZPWrVunqVOnSpJ2796tsWPHXtJfBqdMmaLVq1dLkrKysvT+++9ry5YtWrJkiXr27Cmn06k5c+Zo8eLFfrkuuAt0P588eVJVVVWyWq0aPXq0Fi1apPXr1+urr77SqlWrdPfdd0uSjh07pltvvVXbtm3z5+XhfwXr/XyhDz/8UH/729+UlJTkt3OiYcHq59LSUo0cOVIffPCBJGns2LFavny5Pv/8c+Xn5+utt97Sk08+qZSUFL9cF9wFo59XrFihGTNmyOFwKDo6Wk899ZRycnL0j3/8Q2+//bYyMzMlSQcOHNDNN9+s0tJSv10f3HXp0kWjRo0K2PkZh4WHQPUz47DwEuj384UYh4WhUKczaJ5hw4YZkgy73W5s2rTpotdffvllVwL561//ull1fPrpp65zjBs3znA4HG6vnzhxwujatashyWjfvr1x+vTpZtWDhgW6n7Ozs41p06YZBw4caLDM73//e1cdw4cP97kONC0Y7+cLnTlzxujSpYshyVi2bBl/sQiCYPXzAw884KonOzu7wXJOp9Ooqalpdj3wLBj93KdPH9c5Vq9e7bHMhAkTXGUWLlzYrHrg2Zw5c4wPP/zQOHr0qGEYhrF///6A/KWZcVhoBaOfGYeFXrDezxdiHBaeCEci0JYtW1xvoGnTpnksU1tba6Slpbn+wayurva5njFjxhiSDJvNZhw6dMhjmXfeecfVlgULFvhcBxoWrH72xoABA1y375aUlASkDrMKVT8/8cQThiQjKyvLMAyDf5QDLFj9vHHjRlc9c+fOvdRmw0fB6OfS0lJXHf369WuwXEFBgavcnXfe6VMd8E2gvkwxDgsvwfrS7AnjsOAJVj8zDgtPPFYTgd5//33X9uTJkz2WsVqtevDBByVJp0+f1qeffupTHWfPntW6deskSSNHjmzw9usJEyYoPj5ekrRy5Uqf6kDjgtHP3qqbHMrpdGr//v0BqcOsQtHPW7Zs0R//+EdFR0frtddeu6RzwTvB6uc//OEPkqQ2bdpo+vTpPh+PSxOMfq6urnZt9+jRo8FyPXv2dG1XVVX5VAdCj3EY6mMc1rIwDgtfhCMRaOPGjZKkuLg49e/fv8FyQ4cOdW3n5+f7VMeWLVtcg6n657lQdHS0brrpJtcxNTU1PtWDhgWjn71Vf2BttfKx4U/B7meHw6Gf/vSncjqd+vnPf66rr7662eeC94LRz9XV1a55Rm655Ra1adNG0vk+P3DggA4ePOj2xRr+F4x+TkxMVIcOHSRJ+/bta7Dc3r17Xdupqak+1YHQYxyG+hiHtRyMw8Ib764IVFhYKEnq1auX7HZ7g+V69+590TG+1nHheRqrx+Fw6LvvvvOpHjQsGP3srQ0bNkiS7Ha7evXqFZA6zCrY/bxgwQIVFBSoZ8+emj17drPPA98Eo58LCgpUWVkpSRo0aJCOHj2qyZMnKyEhQd26ddOVV16pdu3aacyYMdq0aVMzrgJNCdb7+ac//akk6auvvlJubq7HMs8//7wkyWaz6ZFHHvG5DoQW4zDUxzis5WAcFt4IRyJMZWWlSkpKJKnJlQbat2+vuLg4SdKhQ4d8qqd++abq6dKli8fj0HzB6mdv5OTkaPv27ZKk0aNHu27fxaULdj/v27dPzz33nCTp1VdfVUxMTLPOA98Eq5937tzpVmd6errefPNNnTt3zm1/bm6uhgwZot/97nc+nR+NC+b7+Re/+IV+/OMfS5LGjx+vGTNmKDc3V1u3btW7776rYcOG6a9//atsNpt+//vfKy0tzec6EFqMw1CHcVjLwTgs/BGORJgzZ864tutumW5M3eDL1+UCfamnro7m1APPgtXPTTl16pQee+wxSef/+lj3l0j4R7D7edq0aaqoqNDdd98d1KXqzC5Y/Xzq1CnX9q9//WuVlJTo1ltv1RdffKHKykodO3ZMr776quLj4+V0OvX00083eNcBfBfM93ObNm2Um5ur//7v/1ZKSooWLlyoMWPGKCMjQ/fcc482bNigCRMm6LPPPtOjjz7q8/kReozDIDEOa2kYh4U/wpEIU3fLtHT+OdOmtGrVSpJUUVERsHrq6mhOPfAsWP3cmNraWk2aNEkHDhyQJP3yl79U3759/XZ+BLefly1bpry8PMXHx2vRokU+H4/mC1Y/179DpKqqSuPGjdMHH3yg/v37q1WrVkpKStJ//Md/KCcnR1arVYZhaObMmTIMw6d64FmwP7e/+OILvfPOOw3OO5KXl6c///nPKisra9b5EVqMw8A4rGVhHBYZCEciTP3br7yZWK9uAqfY2NiA1VN/kihf64Fnwernxjz66KP66KOPJEljx47Vs88+67dz47xg9XNJSYlr5ZJ58+YpOTnZp+NxaULxuS1Jv/nNbzxO3JeZmakJEyZIkr755ht98803PtUDz4L5uf3Xv/5Vw4YN0/r165Wenq733ntPJ0+eVHV1tfbu3asXXnhBNTU1eu211/SjH/1IR48e9bkOhBbjMDAOazkYh0UOwpEI07ZtW9e2N7dO1v0l0ZtbfJtbT/2/VvpaDzwLVj83ZNasWfrTn/4k6fwXqb/85S+y2Wx+OTf+JVj9/PTTT6ukpEQDBgzgFvsQCMXndvfu3RudAX/06NGu7a1bt/pUDzwLVj8fO3ZMDz/8sKqqqnTttddq06ZNuuOOO9ShQwdFRUWpR48emjVrlj788ENZLBb985//1BNPPOHbxSDkGIeZG+OwloVxWORoeCp1hKWYmBglJiaqpKRERUVFjZY9ffq06x/M+pN1eaP+5F9FRUUaMGBAg2XrT/7laz3wLFj97MlLL72k+fPnS5L69eun1atX85eoAAlGPx85ckTLly+XJA0fPlwrVqxotPzx48eVnZ0t6fwX7BtvvNHruuBZsN7P9cv7MoHj8ePHfaoHngWrn7Ozs13Hzp49222+ifpGjBihESNGKC8vTytXrtTp06fVvn17n+pC6DAOMy/GYS0L47DIQjgSgdLS0rRx40bt2bNHDoejweUCd+3a5XaML6655hqP52msHpYX869g9POFXn31VT3zzDOuc3388cdq167dJZ0TjQt0P9e/Hfvll19usnxhYaHuvfdeSdJDDz3EP8p+Eoz387XXXuvarq2tbbRs/dcbW3IWvglGP9df4rVfv36Nlu3fv7/y8vLkdDr17bff8n6OIIzDzIlxWMvDOCyy8FhNBMrMzJR0/jbKL7/8ssFydWuiS9LgwYN9qmPgwIGuCcDqn+dC1dXV2rx580XH4NIFo5/rW758uR5//HFJUo8ePZSXl6fExMRmnw/eCXY/IzSC0c9XXnmlunbtKknau3dvo2Xrv965c2ef6kHDgtHP9QMXh8PRaNmamhqPxyH8MQ4zH8ZhQOgRjkSgO+64w7W9dOlSj2WcTqeWLVsmSUpISFBWVpZPdbRt21YjRoyQdH7G+4ZuEV65cqVrJvzx48f7VAcaF4x+rrNy5UpNnjxZhmEoJSVF69atU6dOnZp1Lvgm0P3crVs3GYbR5E+doUOHuva9+eabzbomXCxY7+c777xT0vl5KTZt2tRguZUrV7q2hwwZ4nM98CwY/dy9e3fX9saNGxst+/e//12SZLFY1K1bN5/qQWgxDjMXxmEtF+OwCGMgIg0ZMsSQZNjtdmPTpk0Xvf7yyy8bkgxJxq9+9auLXl+6dGmjrxuGYaxbt85V5rbbbjMcDofb6ydOnDC6du1qSDISEhKMU6dO+ePSUE8w+vnjjz82oqOjDUlGUlKSsWvXLj9fBZoSjH5uSt3xQ4cObdbxaFow+vnAgQNGTEyMIcno37+/cfbs2YvKLF++3HWesWPHXupl4QKB7ufCwkLDYrEYkozOnTsbRUVFHtvxX//1X67zDBo06FIvC43Yv3+/67/1Qw895NUxjMMiT6D6mXFYeAlUPzeFcVh44B7LCPXKK69o8ODBqqio0KhRozR79mxlZWWpoqJC2dnZrhmuU1NTXUtH+Wr48OG65557lJ2drVWrVmnkyJF68skn1alTJ+3YsUPz5s3TwYMHJUnz589norcACHQ/b968WePHj1d1dbWioqK0aNEi1dTUNLq0Z0pKihISEpp7SfAgGO9nhF4w+rlr16567rnnNHPmTH355ZfKyMjQzJkz1adPH5WWlmrlypV6/fXXJUnx8fFatGiR364P5wW6n3v37q3JkyfrjTfe0OHDh9W3b189+eSTGjJkiNq2batDhw4pOztbb7/9tiTJZrPphRde8Os1ml1+fr727Nnj+r2kpMS1vWfPnov+2vvwww83qx7GYaEVjH5mHBZ6wXo/I0KEOp1B861atcqIj493JY0X/qSmphrfffedx2O9TTjLy8uNMWPGNFiH1WptdkIK7wSyn3/1q181eN6GfpYuXRrYCzapYLyfG1N3PH+xCKxg9fMzzzzjurvA009SUpLHuxrgH4Hu58rKSuPuu+9u8vM6Li7OeOuttwJ4peb00EMP+fTvpieMw8JfMPqZcVjoBfP93BjGYeGBOUci2Lhx47R9+3Y99dRTSk1NVevWrZWQkKABAwbopZde0tdff33Js5bHxsYqJydHb731lkaOHKmkpCRFR0erS5cuuu+++5Sfn6+5c+f654LgUTD6GaFHP5tDsPr5xRdf1GeffaYHHnhA3bp1U6tWrdSuXTsNHDhQzz//vL799lsNGjTID1cETwLdz61atVJ2drbWr1+vBx98UKmpqYqLi5PdbleHDh00aNAgPfvss9q1a5fuu+8+P14Zgo1xGAAEj8Uw6s0AAwAAAAAAYDLcOQIAAAAAAEyNcAQAAAAAAJga4QgAAAAAADA1whEAAAAAAGBqhCMAAAAAAMDUCEcAAAAAAICpEY4AAAAAAABTIxwBAAAAAACmRjgCAAAAAABMjXAEAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATI1wBAAAAAAAmBrhCAAAAAAAMDXCEQAAAAAAYGqEIwAAAAAAwNQIRwAAAAAAgKkRjgAAAAAAAFMjHAEAAAAAAKb2/wHdR98Gv8BgxAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -448,7 +449,7 @@ "plant_simulator = ct.ss(plant_simulator, inputs='ud', outputs='y')\n", "\n", "# system from r to y\n", - "Gyr_simulator = ct.interconnect((controller_simulator, plant_simulator, u_summer, delayer), \n", + "Gyr_simulator = ct.interconnect([controller_simulator, plant_simulator, u_summer, delayer], \n", " inputs='r', outputs='y')\n", "\n", "# simulate\n", @@ -472,7 +473,7 @@ "outputs": [ { "data": { - "image/png": "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1PP8inOrvFQ77qpyvOrnqf5Z3a+xESFqFh1W/QRU4/fhiCRdeeWVeumll3To0CGtWLFC55xzTo3nzZ4927N97rnnNlV78DFTp07V448/Lsn9H5SSkhL94x//0Icffqht27ZJknr06KGbb75Zv//97086ymj37t165ZVXtGDBAu3du1cOh0MpKSkaMWKE/vSnP510XZuKJ8g89thjmjp1qlavXq0XX3xRS5cu1eHDh5WUlKQRI0Zo8uTJ6tGjR6N81qrat2+vPXv26JZbbtH06dO1ZcsWvfDCC/r666+VmZmphIQEnXPOOfrzn/+ss88++5T327dvn/75z39q/vz52rVrl4qLi9WyZUsNHjxYv//97zV8+PBa35uTk6M5c+Zo0aJFWrt2rfbu3auysjIlJibqzDPP1JVXXqkJEyYoLKzm/7jv3r1bHTp0kCS98847mjBhgmbPnq233npLP/30k7KysjR06NAan+oDAABOn8vlktMl2Z1OOZwu2Z0uOY+/Vt93eupOp+RwuWsOp9w1l/uY58flfq/jeN3lkqHudOnEOcff7zzej9N14vyKmstVcV5F38ZzK7/fVcM58pzj/rJauVbx/oovxMb94+fqxJdul6vKtuT5gl35S/yJL/DujYp99+knrnP87Ybf/aqeV3GOKp3nOfskx2v9wm4IE2oPHFyGcyt93qqfsXJPVf4Mqv3ZGXqu/mdWtb9gc8ewjnp4TMO+SwQbnw9Hpk+frokTJ0o68SWyqnvvvVevv/66SkpKdPfdd2vJkiWKjo42nDNjxgzPl6KxY8eywCokSYcOHdLo0aO1fv16Q3316tVavXq1FixYoDlz5tT4BKT33ntPt99+u0pLSw317du3a/v27Zo2bZqefPJJPfzww6fs49VXX9V9990nu93uqR04cEAzZszQ7NmzNW/ePJ133nkN/JR1M3v2bI0fP15FRUWeWlZWlubMmaMvvvhC//nPf3TttdfW+v5p06bprrvuUnFxsaGekZGhjIwMffzxx7rtttv0r3/9q8bAqV+/ftqzZ0+1+qFDh7RgwQItWLBA//rXv/Tll1+qVatWJ/0sLpdLN998s95///1TfWwAAExR8eW83OFSudOpcrs7LCg7/mp3OFXmcMrucMnudKrM7n61O1yGernDfW758ffUdtzudKnc4fTc0+48cR/3uSeu76lXCjUcld7vqVdcr1KIAcDH8Neyzrwajixbtkzbt2/37GdnZ3u2t2/frunTpxvOnzBhQoPu07ZtWz3xxBN66KGHtGbNGqWnp+uhhx5Sr169lJubq9mzZ+tf//qXJCkuLk4vvfRSg+6DwHPFFVdo8+bNuvvuuzVu3DglJiZq69atevLJJ7V582Z98cUXevPNN3XHHXcY3jd37lxNmDBBLpdLMTExmjRpki688EKFhIRoxYoVevrpp5Wdna3JkycrISFBf/jDH2rtYf78+frhhx/Up08f3XPPPerdu7eKi4v16aef6pVXXlFRUZHGjx+vbdu21Tpq4nRt2LBBH330kVq3bq1JkyZp4MCBcrlcmj9/vp555hmVlJTo9ttv14gRI9SiRYtq73/77bf129/+VpLUq1cv3XHHHerXr5+ioqK0a9cuTZs2TV9++aWmTZum+Ph4vfDCC9Wu4XA4dNZZZ+niiy9Wv379lJycrLKyMu3atUszZszQV199pXXr1um666475eiPl19+WRs2bNC5556rP/zhD+ratauOHTum3bt3N8YfFwDAjzicLpXaHSotd6rU7nRv253H9x0qsztV6nCqzF7px2HcLj2+Xe448VNmd4cQ5cfrZZ5jruPHjfsVr/aKbaczqP81GwB8jVfDkbfeekvvvvtujceWL1+u5cuXG2oNDUck6cEHH9TRo0f17LPPatOmTTVeq2XLlpozZ466dOnS4PuYxel0KaeozOw2mkyzqDBZrRav36didMj555/vqfXv31+jR4/WGWecoUOHDum1114zhCPl5eW64447PMHI0qVL1bdvX8/xs88+W1deeaUGDx6szMxMPfDAA7r66quVlJRUYw/ff/+9fvOb3+jTTz81hB/nnnuumjdvrkcffVR79+7V3Llzdfnllzf6n4EkrVu3TgMGDNCiRYsUHx9v+CydO3fWTTfdpLy8PM2YMUP33Xef4b0ZGRm66667JEm33HKL3nrrLcPIkH79+umKK67QI488or/97W96+eWXdccdd6hr166G63zzzTc1/t0855xzdOONN+qdd97RrbfeqiVLlmjRokW64IILav08GzZs0M0336zp06d7pi8BAHxLmd2p4jKHisrtKix1uLfL7Coqd6io1L1dYneqpMyhknKHissdKil3qrjcoVLP/ol6SXlF6HH89XgQUu4ggQAAnJrPT6upj6efflqXXHKJXn/9dS1dulSZmZmKiIhQ165ddckll+iuu+4yfPHzJzlFZRrwfwvNbqPJrHn0QjWPCff6fe666y5DMFIhMTFREydO1DPPPKMNGzYoNzfX87+dTz/9VPv375ckPfLII4ZgpEK7du303HPP6aabblJRUZHeeecdPfjggzX2EBERoXfeeafGUSF33323nnjiCZWVlWnp0qVeC0ck9+iPmv5+3HDDDXrooYd04MABLV26tFo4UjG6pU2bNrVOmZGkxx9/XO+++67279+v9957T//3f/9nOH6q0HLixIn6xz/+oXXr1mnOnDknDUcSEhL06quvEowAQCNyOF0qKLUrv6Rc+SV25ZfYVVhqV0Fp5VeHCstO1Az1UruKytzHi8scsjMFA5JsVotsFousVinEapXVcrxW8WOxyFp1+/hrxblWi+X4qzzbNqtFFotFtuM1i8Uim9W9ba30fs++RbIcv56lYl8V9RPnWK0WWeSuWSzyXMMiSdXed+I8i06cX7GtiutInvu4z3Vfy32fE+dX7Evumjy14/evOL/SOZV/Far4vajqdU5sn7iG52i1Y5Zq51Xt6WTnV+xZTpx6/HMY65X/LNzXN/ZiqeHPR7Xdp8pnNfZf83Vruo4M76vlz6KWz1f5/lX/fIz7xut4Xmp530nfqxP/m0bdeDUcmT59erWpM/U1YcKEeo0oGTx4sAYPHnxa90TwuPHGG2s9NmDAAM/2rl27PCHIwoXukMpisejWW2+t9f1XX3217rzzTuXm5mrhwoW1hiMjR45Uy5YtazwWGxurLl266JdfftHOnTtP9XEarHfv3urTp0+NxywWi/r166cDBw7U2MNnn30mSRo3bpwiIiJqvUdISIgGDx6sWbNmaeXKlSftx+Vy6dChQ8rLy1NZ2YkRU23atNG6deuqrRFT1bhx4xQbG3vScwAg2DidLuWX2JVbXG74OVZcptzicuUV25XnCT6qvrpDDjQtm9WiEKtFYTarQmwWhdisJ7atFoXarAo9vh9qPXFOqNVi2HafY1WozR0ahNqs7lerRbbj73Mfq3SO1X2O+15WTy+G/eN9VOxX1GyWGratVk8AUnFuRSAAAL4goEaOAPXVvXv3Wo8lJiZ6tvPz8z3bGzdulOR+0kttoYYkhYWFqV+/flq8eLHnPfXtoXIflXtobA3tITc317Ou0L//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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAAM6CAYAAABjPS0fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AACpFklEQVR4nOzdeXhU5f3+8Xtmsu+EQIAk7KssskYRFEEBKeK+KwraalvritqKFlG/Vq37r1ZbFUWlihYRtYggKMimICCILLITIBACIfs2y++PIUNOFkhCJmeW9+u6cs05n3PmnM9wFZu5eZ7nWFwul0sAAAAAAABBymp2AwAAAAAAAGYiHAEAAAAAAEGNcAQAAAAAAAQ1whEAAAAAABDUCEcAAAAAAEBQIxwBAAAAAABBjXAEAAAAAAAENcIRAAAAAAAQ1AhHAAAAAABAUCMcAQAAAAAAQY1wBAAAAAAABDXCEQAAAAAAENQIRwAAAAAAQFAjHAEAAAAAAEGNcAQAAAAAAAQ1whEAAAAAABDUQsxuIFCUlJTo559/liS1aNFCISH80QIAAAAA0NjsdrsOHz4sSerdu7ciIiJO+5p8g28kP//8s9LT081uAwAAAACAoLFq1SoNGjTotK/DtBoAAAAAABDUGDnSSFq0aOHZXrVqlVq3bm1iNwAAAAAABKbMzEzPzI3K38VPB+FII6m8xkjr1q2VmppqYjcAAAAAAAS+xlrvk2k1AAAAAAAgqBGOAAAAAACAoEY4AgAAAAAAghrhCAAAAAAACGqEIwAAAAAAIKgRjgAAAAAAgKBGOAIAAAAAAIIa4QgAAAAAAAhqhCMAAAAAACCoEY4AAAAAAICgFmJ2AzjB6XSqoKBAeXl5Kisrk8PhMLslIKjYbDZFRUUpISFBERERZrcDAAAAoIkQjviI/Px87d+/Xy6Xy+xWgKBlt9tVWlqqnJwcxcfHq3Xr1rJYLGa3BQAAAMDLCEd8QE3BiMVikc1mM7ErIPjY7XbPdm5ursLCwpSUlGRiRwAAAACaglfDkaysLK1atUqrVq3S6tWrtXr1ah05ckSSdMstt2j69Oleue/ChQs1Y8YMLVu2TJmZmQoJCVFycrL69OmjCy64QOPHj1dMTIxX7l1fTqfTEIzExMQoMTFRUVFR/Is10MQcDoeOHTumrKwsSdLhw4cVFxensLAwkzsDAAAA4E1eDUeSk5O9eflqcnJyNHHiRH322WfVjuXl5Wnbtm365JNPNHjwYPXt27dJe6tNQUGBIRhJTU0lFAFMYrPZ1Lx5czkcDk+QW1BQoMTERJM7AwAAAOBNTTatJi0tTT169NCCBQu8cv3c3FyNHDlSa9askSSNHTtW1113nTp37iyHw6E9e/Zo9erVmjVrllfu31B5eXme7cTERIIRwAfExcV5wpHCwkLCEQAAACDAeTUcmTJligYNGqRBgwYpOTlZu3fvVocOHbxyr7vuuktr1qxRSEiIZsyYoWuvvdZwfMiQIbrhhhv04osv+tRTYMrKyiS51xiJiooyuRsAkhQeHi6LxSKXy+X5OwoAAAAgcHk1HHn88ce9eXmPZcuW6f3335ckPfroo9WCkcosFotCQnxnHdqKoMZmszFqBPARFQsi2+12OZ1Os9sBAAAA4GVWsxtoDK+++qok95odkyZNMrkbAAAAAADgT3xnCEUDlZWVeRZgHTNmjOcpNHa7Xfv375fFYlGrVq142gQAAAAAAKiR348cWb9+vUpKSiRJgwcP1sGDBzVx4kQlJCSoffv2ateuneLj4/Wb3/xGK1asMLlbAAAAAADga/x+5MimTZs82yUlJerdu7eys7MN55SUlGjevHmaP3++XnjhBd177731vs++fftOejwzM7Pe1wQAAAAAAObz+3Dk6NGjnu3HH39cpaWluvjiizV16lT16tVLubm5+uSTT/SXv/xFeXl5uv/++9WtWzeNGTOmXvdJS0tr7NYBAAAAAIAP8PtpNYWFhZ7t0tJSjRs3Tp999pkGDBig8PBwtWzZUn/4wx80d+5cWa1WuVwuPfTQQ3K5XCZ2DTSOxYsXy2KxyGKxaPHixdWOT5061XMcAAAAAFAzvx85EhERYdh/7rnnZLVWz3yGDh2qK664QrNmzdLGjRu1ceNG9e7du873ycjIOOnxzMxMpaen1/l6AAAAAADAN/h9OBIbG+vZ7tChg7p161bruaNHj9asWbMkSatXr65XOJKamtrwJgEAAAAAgM/y+2k1ldcCOVWAUfncrKwsr/UE+IqpU6fK5XIxjQwAAAAATsLvw5GePXt6th0Ox0nPrXw8JMTvB80AAAAAAIBG4PcJQbt27dS2bVvt3btXO3bsOOm5lY+npKR4uzUAAAAAgI+oGE3tckmuyvue2onjJ95TvV71vYb31PP8inOrvFQ77qpyvOrnqf5Z3a+xESFqFh1W/QRU4/fhiCRdeeWVeumll3To0CGtWLFC55xzTo3nzZ4927N97rnnNlV78DFTp07V448/Lsn9H5SSkhL94x//0Icffqht27ZJknr06KGbb75Zv//97086ymj37t165ZVXtGDBAu3du1cOh0MpKSkaMWKE/vSnP510XZuKJ8g89thjmjp1qlavXq0XX3xRS5cu1eHDh5WUlKQRI0Zo8uTJ6tGjR6N81qrat2+vPXv26JZbbtH06dO1ZcsWvfDCC/r666+VmZmphIQEnXPOOfrzn/+ss88++5T327dvn/75z39q/vz52rVrl4qLi9WyZUsNHjxYv//97zV8+PBa35uTk6M5c+Zo0aJFWrt2rfbu3auysjIlJibqzDPP1JVXXqkJEyYoLKzm/7jv3r1bHTp0kCS98847mjBhgmbPnq233npLP/30k7KysjR06NAan+oDAABOn8vlktMl2Z1OOZwu2Z0uOY+/Vt93eupOp+RwuWsOp9w1l/uY58flfq/jeN3lkqHudOnEOcff7zzej9N14vyKmstVcV5F38ZzK7/fVcM58pzj/rJauVbx/oovxMb94+fqxJdul6vKtuT5gl35S/yJL/DujYp99+knrnP87Ybf/aqeV3GOKp3nOfskx2v9wm4IE2oPHFyGcyt93qqfsXJPVf4Mqv3ZGXqu/mdWtb9gc8ewjnp4TMO+SwQbnw9Hpk+frokTJ0o68SWyqnvvvVevv/66SkpKdPfdd2vJkiWKjo42nDNjxgzPl6KxY8eywCokSYcOHdLo0aO1fv16Q3316tVavXq1FixYoDlz5tT4BKT33ntPt99+u0pLSw317du3a/v27Zo2bZqefPJJPfzww6fs49VXX9V9990nu93uqR04cEAzZszQ7NmzNW/ePJ133nkN/JR1M3v2bI0fP15FRUWeWlZWlubMmaMvvvhC//nPf3TttdfW+v5p06bprrvuUnFxsaGekZGhjIwMffzxx7rtttv0r3/9q8bAqV+/ftqzZ0+1+qFDh7RgwQItWLBA//rXv/Tll1+qVatWJ/0sLpdLN998s95///1TfWwAAExR8eW83OFSudOpcrs7LCg7/mp3OFXmcMrucMnudKrM7n61O1yGernDfW758ffUdtzudKnc4fTc0+48cR/3uSeu76lXCjUcld7vqVdcr1KIAcDH8Neyzrwajixbtkzbt2/37GdnZ3u2t2/frunTpxvOnzBhQoPu07ZtWz3xxBN66KGHtGbNGqWnp+uhhx5Sr169lJubq9mzZ+tf//qXJCkuLk4vvfRSg+6DwHPFFVdo8+bNuvvuuzVu3DglJiZq69atevLJJ7V582Z98cUXevPNN3XHHXcY3jd37lxNmDBBLpdLMTExmjRpki688EKFhIRoxYoVevrpp5Wdna3JkycrISFBf/jDH2rtYf78+frhhx/Up08f3XPPPerdu7eKi4v16aef6pVXXlFRUZHGjx+vbdu21Tpq4nRt2LBBH330kVq3bq1JkyZp4MCBcrlcmj9/vp555hmVlJTo9ttv14gRI9SiRYtq73/77bf129/+VpLUq1cv3XHHHerXr5+ioqK0a9cuTZs2TV9++aWmTZum+Ph4vfDCC9Wu4XA4dNZZZ+niiy9Wv379lJycrLKyMu3atUszZszQV199pXXr1um666475eiPl19+WRs2bNC5556rP/zhD+ratauOHTum3bt3N8YfFwDAjzicLpXaHSotd6rU7nRv253H9x0qsztV6nCqzF7px2HcLj2+Xe448VNmd4cQ5cfrZZ5jruPHjfsVr/aKbaczqP81GwB8jVfDkbfeekvvvvtujceWL1+u5cuXG2oNDUck6cEHH9TRo0f17LPPatOmTTVeq2XLlpozZ466dOnS4PuYxel0KaeozOw2mkyzqDBZrRav36didMj555/vqfXv31+jR4/WGWecoUOHDum1114zhCPl5eW64447PMHI0qVL1bdvX8/xs88+W1deeaUGDx6szMxMPfDAA7r66quVlJRUYw/ff/+9fvOb3+jTTz81hB/nnnuumjdvrkcffVR79+7V3Llzdfnllzf6n4EkrVu3TgMGDNCiRYsUHx9v+CydO3fWTTfdpLy8PM2YMUP33Xef4b0ZGRm66667JEm33HKL3nrrLcPIkH79+umKK67QI488or/97W96+eWXdccdd6hr166G63zzzTc1/t0855xzdOONN+qdd97RrbfeqiVLlmjRokW64IILav08GzZs0M0336zp06d7pi8BAHxLmd2p4jKHisrtKix1uLfL7Coqd6io1L1dYneqpMyhknKHissdKil3qrjcoVLP/ol6SXlF6HH89XgQUu4ggQAAnJrPT6upj6efflqXXHKJXn/9dS1dulSZmZmKiIhQ165ddckll+iuu+4yfPHzJzlFZRrwfwvNbqPJrHn0QjWPCff6fe666y5DMFIhMTFREydO1DPPPKMNGzYoNzfX87+dTz/9VPv375ckPfLII4ZgpEK7du303HPP6aabblJRUZHeeecdPfjggzX2EBERoXfeeafGUSF33323nnjiCZWVlWnp0qVeC0ck9+iPmv5+3HDDDXrooYd04MABLV26tFo4UjG6pU2bNrVOmZGkxx9/XO+++67279+v9957T//3f/9nOH6q0HLixIn6xz/+oXXr1mnOnDknDUcSEhL06quvEowAQCNyOF0qKLUrv6Rc+SV25ZfYVVhqV0Fp5VeHCstO1Az1UruKytzHi8scsjMFA5JsVotsFousVinEapXVcrxW8WOxyFp1+/hrxblWi+X4qzzbNqtFFotFtuM1i8Uim9W9ba30fs++RbIcv56lYl8V9RPnWK0WWeSuWSzyXMMiSdXed+I8i06cX7GtiutInvu4z3Vfy32fE+dX7Evumjy14/evOL/SOZV/Far4vajqdU5sn7iG52i1Y5Zq51Xt6WTnV+xZTpx6/HMY65X/LNzXN/ZiqeHPR7Xdp8pnNfZf83Vruo4M76vlz6KWz1f5/lX/fIz7xut4Xmp530nfqxP/m0bdeDUcmT59erWpM/U1YcKEeo0oGTx4sAYPHnxa90TwuPHGG2s9NmDAAM/2rl27PCHIwoXukMpisejWW2+t9f1XX3217rzzTuXm5mrhwoW1hiMjR45Uy5YtazwWGxurLl266JdfftHOnTtP9XEarHfv3urTp0+NxywWi/r166cDBw7U2MNnn30mSRo3bpwiIiJqvUdISIgGDx6sWbNmaeXKlSftx+Vy6dChQ8rLy1NZ2YkRU23atNG6deuqrRFT1bhx4xQbG3vScwAg2DidLuWX2JVbXG74OVZcptzicuUV25XnCT6qvrpDDjQtm9WiEKtFYTarQmwWhdisJ7atFoXarAo9vh9qPXFOqNVi2HafY1WozR0ahNqs7lerRbbj73Mfq3SO1X2O+15WTy+G/eN9VOxX1GyWGratVk8AUnFuRSAAAL4goEaOAPXVvXv3Wo8lJiZ6tvPz8z3bGzdulOR+0kttoYYkhYWFqV+/flq8eLHnPfXtoXIflXtobA3tITc317Ou0L//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", "text/plain": [ "
" ] @@ -520,7 +521,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -538,12 +539,12 @@ "# create zero-order hold approximation of plant2 dynamics\n", "def discrete_nonlinear_plant_dynamics(t, x, u, params):\n", " return x + simulation_dt * nonlinear_plant_dynamics(t, x, u, params)\n", - "nonlinear_plant_simulator = ct.NonlinearIOSystem(discrete_nonlinear_plant_dynamics, nonlinear_plant_output, \n", + "nonlinear_plant_simulator = ct.ss(discrete_nonlinear_plant_dynamics, nonlinear_plant_output, \n", " dt=simulation_dt,\n", " inputs='ud', outputs='y', states=1)\n", "\n", "# system from r to y\n", - "nonlinear_Gyr_simulator = ct.interconnect((controller_simulator, nonlinear_plant_simulator, u_summer, delayer), \n", + "nonlinear_Gyr_simulator = ct.interconnect([controller_simulator, nonlinear_plant_simulator, u_summer, delayer], \n", " inputs='r', outputs=['y', 'u'])\n", "\n", "# simulate\n", From f55ec01df4405f87339bbb4e65bdbe36404b810a Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Sun, 9 Apr 2023 16:30:04 -0700 Subject: [PATCH 0234/1025] fix link in examples.rst --- doc/examples.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/examples.rst b/doc/examples.rst index 1410407db..ef05d6d25 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -53,6 +53,6 @@ online sources. mpc_aircraft pvtol-lqr-nested pvtol-outputfbk - simulating_sampled_data_systems + interconnected_nonlinear_and_sampled_data_systems steering stochresp From 81197fdac80274e12bee7801826d09fd96850929 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 10 Apr 2023 21:18:10 -0700 Subject: [PATCH 0235/1025] shorten long filename --- examples/simulating_discrete_nonlinear.ipynb | 585 +++++++++++++++++++ 1 file changed, 585 insertions(+) create mode 100644 examples/simulating_discrete_nonlinear.ipynb diff --git a/examples/simulating_discrete_nonlinear.ipynb b/examples/simulating_discrete_nonlinear.ipynb new file mode 100644 index 000000000..5c5306029 --- /dev/null +++ b/examples/simulating_discrete_nonlinear.ipynb @@ -0,0 +1,585 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e2b51597", + "metadata": {}, + "source": [ + "# simulating Simulink-like interconnections of systems including nonlinear and sampled-data systems \n", + "Sawyer B. Fuller 2023.03" + ] + }, + { + "attachments": { + "image-4.png": { + "image/png": "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ffii3azTNYF169a5/sHHSylwfQyY1ZOAXQk4XwT9ccHiPtw70oKBU6AuiO4RtN9azuOB89r5uy9o+GMfvmg367QWAQpca40HW0MCIUPA+SLojwsW9+HeoRMqnNzrLdciARKwKwH64Np15NlvEiABEiABEiABEghRAhS4ITqw7BYJWImAszXXV+3iPtwjGyqc3Ost1zKbAI8fs4myPl8RoIuCr8iyXhIgARIgARIIIQJ79+6VH374QVJTU6V9+/bSunXrEOoduxJqBChwQ21E2R8SsBgBf14UR48eLb1795YGDRqYTmHRokUyf/58OXTokFxyySVy2223SUJCgmn7ycnJkWnTpsnSpUulfPny0r17d6ldu7Zp9TtXdODAAQGrYcOGSePGjZ1/8uozrHvLli0rVEffvn0lMTGx0HIuCB4C06dPl27duuljPjY2VkaNGiWvvfaajBgxwqtOnPv4dcn8Y63E3TJQoltfmVeXY9Nayfh9toTFxIpERkpYeISIOkdysrJEsjIlx5EhcTfdIeFly+dtww8k4EyAAteZBj+TAAmYSsBXF0VXjfz555/lmWeekTp16pgucN988015+OGHpXTp0hITEyNHjhyRV155RYvRcuXKuWqOx8sGDRok48aNk0qVKmkL2YMPPii9evWSKVOmSFhYmMf1FbUBhPRdd90lM2fOlM6dO5sqcMeOHStjxowptOurrrqKArcQleBZcPr0acHx2apVK5kzZ45A4Pbv319Gjhypb8Rww1eSkn3imKROHiuS6VCb5+QXuGuWSuba5RJ9xVUiUdFy7r/PS1SzNvp7TmaGpH39qcT1ubsku+U2NiFAH1ybDDS7SQL+JuB8UTx8+LDgBWGFi+LmzZtNaw5EYZcuXeTGG280rU7nitLT0+Xxxx/X1qujR48KrJ8Qtwi39frrrzuvWuLPW7Zs0eL2iSee0BZiCGhYor/55htZv359iet1tSGsbhC3vihgcssttwjG3vlVs2ZNX+yOdfqJwJIlS2Tfvn3y5JNPSlxcnL7huvfee/XecQNW0pI2TW2rxG1UiyvEsXKRZO7ZkVdV9pGDEj94pMT1HSAxV3XXy6M7dZO4m/tL/B33SeQljSW8VJm89fmBBAoSoMAtSITfSYAETCHgq4tiwcadPXtWLrjgAunUqVPBn0z5vmLFCoHIve+++yQqKkoiIiL0o328r1mzxpR9wP0BxRANsBJDKKJAKJpV0BeIFNxk+KJs3bpVGjVqJKVKlcr3MtMC7Yt2s87zE8ANGMoVV1yRt2K9evX05+3bt+ct8+RDTna2pE2dLJFNWkrC/U/pTdN++Dyvivjb75XIBpfq71l/7tLvkRf/bSku9dRreevyAwm4IkCB64oKl5EACXhNwBcXRVeNeuCBB2TSpEny3HPPufrZ62UXX3yxTJ06VU+qMSqbN2+eZClfwKSkJGORV+933nmnFtHVqlWTgwcPyu+//679Gy+88EK57LLLvKrb2PjcuXNy6623yk033aQt6cZys97BY9euXdo6DCEEP2j4KZdUAJnVLtbjPQGcy7hJgW+4UcqWLSsVK1aUY8eOGYs8encsXyDZB/+U2O43S2StuhLZOFnSp38jOWmpuh741oaF50qUrL25lt2IWrmiGiuEl6/o0f64sv0IUODab8zZYxLwCwFfXBT90vACO6lcubL06NEjz4cUj2Rvv/12KVOmjGmWUIiH6Ohovefk5GRp27atwAL+0EMPaYtxgSaV6Ovw4cMlJSVF3n///RJtX9xGe/bskYyMDNmwYYM0a9ZMYOH76quvpGXLloLfWIKXQLaytsJ3Oy0tLV8nsKxq1ar5lrn7BdbasIRSEtPxOr1J7PX9JOfcGUmf/VOhKrJ2bpPwC6tKeAInKhaCwwVFEqDALRINfyABEvCGgC8uit60x9ttd+/erSfU3HzzzVq8LV68WHzhW4qJeR999JEWufDJ/e6777xtukyePFkmTJggn376qZg1Ka5goxBR4q233hJweffdd+X777+XTz75RE6ePKmXF1yf34OHAJ4koOzY8bePbGZmppw4cUKaNm3qcUeylH9txqLfJOaa63OjJKgaYjpcJ2Gly0ra95MK1Ze5c7NEXvy39bbQClxAAi4IUOC6gMJFJEAC3hMw+6LofYtKXsPq1au1qwB8WCES4UJQv379kldYYMtff/1VC0IsRipdzFhHRAJYdhF31NuCNsPaNnToUB3iDCHIUBAmrGvXrt5Wr7dH9If7779f6tatm1cfJsrBMo3JZyzBS8CId4sQdkaZNWuW4CYOX4qsAAAWHklEQVS2JAI37acvRW2s3BP6GtVJmDpOYq/tJZlbNghChDmXrB1bJCKpjvMifiaBYglQ4BaLiCuQAAmUhIDZF8WStMGMbWCl6tChgw7fhcfvd9xxh6lhu9DGiRMnCizDmDBnFMNlAZPZvC0DBgyQl156SQYOHKhfxgQ2iNt+/fp5W73eHuHB4JqwcePGvPoQLQNuC7Vq1cpbxg/BRwDh5DCGTz31lOAJw4IFCwS+77iZad68uUcdylExbNN/+kpFQWgikXXyx6uO7ZE7sTLtu8/y6sw+eVyyjx2WiBoX5y2z8wf8DXr++eftjMDtvjMOrtuouCIJkIAnBJwvivDTQ6D/kl4UPdmv2esiuQMiGbRp00bHpHWuHxd9hCjztsDHF4/zEanhkUceEbhDIAQZrK6IhettgSXVuUB4vvrqqzq0mhn1o25MKkNUCYSCQ18gdCGqIdARM5UleAlgDJGE5Oqrr5brrsv1ma1evboWuwgb5kmBa0L20UNKsNaWVKeoCUYdYeUqSPpvP0nCvY9LuHJZyPwjN1JJxEU1jFVs/f7000+rvBeUbu4cBKTkDiWuQwIk4DEBMy+KHu/cxA3gjoACv1i8nEufPn1MEbgQoBC2iFELdwKU+Ph4/d0QFM77teJnCH2I5nfeeScveQQm4sE6DbcLluAmgGQOmCyIuMzhKroBwsGVpKRP+1pv5lj5u4p9m3tuuaon/dcfJfvQfi12RWUzO/fOCxJzXR+Ju/E2V6vbZhncfXjD6N5whykLQY57q3ItEiABfxEw4oaGwumJPnh7UfQX90DvB4kkNm3apIPpQ1AUl94W7hMQ3Yiji3Bijz32WKC7oPeP8cYNDrLKIXaw2cU4P5599lntLgKLFiyJENTwBUbkC7wjlBVuFHzRBnf7ZLQ1FM5ld/vM9cwngAgomCiKDIfXXnutINoKjv9gL8b5gb7gbway5CFjJELQ4TzGXA5MjMXfQrhtGeu7029acN2hxHVIgARKTAB/kGjBcw8f/qi3a9fOvZXVWohc0LNnTy1s4RpgldK4cWOrNIXtIIGQIJCamqpdlhwOhwwePFiLv5DomA87QYHrQ7ismgRIgAR8ScCYiIZ9wEeYhQRIIDQJVKhQQWdsxJMd3NSyFE+AURSKZ8Q1SIAESMCyBDCrGpP4qlSpotuIdLmrVq2ybHvZMBIggZIRQJhCT6NWlGxPobEVBW5ojCN7QQIkYFMCK1eulFatWunHlyNHjpRLL71UPvjgA5vSYLdJIHQJILsh3b3cH18KXPdZcU0SIAESsByB5cuXC2IOI8QYLLkIaeardLyW6zwbRAI2IgALLiZbYaIZJpiynJ8AfXDPz4e/kgAJkIClCeCih7BNNWrUkBEjRli6rWwcCZBAyQhgchkmmn377bc6moKvUm6XrHXW3IoC15rjwlaRAAmQQLEEduzYIcePH5dDhw7pxApInQqxy0ICJBBaBBDqDuc7EmywuEeAfwnd48S1SIAESMByBJYuXapjzc6ePVsOHz4ss2bNslwb2SASIAFzCFDcesaRAtczXlybBEiABCxDAGmEO3XqpAOhIxva6NGjdbYppOJlIQESIAE7E6DAtfPos+8kQAJBTWDu3Ll6ghk6Af/bhQsXyjPPPMMg8EE9qmw8CZCAGQTog2sGRdZBAiRAAgEgsGDBAp2OFrtG6k744iIbGgsJkAAJ2J0ALbh2PwLYfxIggaAlULZs2Xxtp7jNh4NfSIAEbEyAAtfGg8+ukwAJkAAJkAAJkEAoEqCLQiiOKvsUMgTCwsJCpi/sCAnYmQDPZTuPPvseCAK04AaCOvdJAiRAAiRAAiRAAiTgMwK04PoMLSsmgZITyMnJ0RtnZWVJWlqaTr965MgROXjwoH4hTWNKSopkZGSIsW7J98YtSYAEfEXAOD+RhAPn8pkzZ8Q4lzEpEIk6zp07p89lrMNCAnYkgCccZj/loMC145HEPgclAeMPADJVGa+IiAgK3KAcTTbaTALG+YB34zwx3s3cj1l1oW1Gm3EOGy8sZyEBuxIwzgPj3DDO4ZKeFxS4dj2S2O+gIeB8MYyMjBSkbIyOjhZYd/GHwLAQBU2H2FASMJkAzgucE3jh/MCF0tuLo8lN1NUZ5zLa53wuZ2Zm6vbyXPYFddYZLARwXsTExOSdxzhHjJvWkvSBArck1LgNCfiJgHGRxkmOCzdO/vj4eHE4HPoijgsjL4p+GgzuxrIEcCHEuREXF5d3gcQynD9WKobAdT6XcQ7j/MY7XRSsNFpsiz8JGOcGblITEhIkNjZWC11vRC4Frj9HkPsigRIQwMXPuIDjxMeFEHe66enp2opLgVsCqNwkpAjgfMCFETd/iYmJ+uLozYXRV3BwEXd1LqPdvFn1FXXWGywEDEMOblRLlSqlz2ec1zi/8ZunhQLXU2JcnwT8TMD5pIeFByc7/gDAiovvFLh+HhDuzlIEDMuPIRwhFvEyLoz43QoF7cC5i3bCOoULOM5t41yGyxELCdiZgHGOGE9jYNDBeYxzpiTnMQWunY8m9t3yBHBSOwtcfMcJDysVLoh8pGn5IWQD/UDAuDAaItfw44OgLMmF0VdNRlvgnoCbUuNcxo0qz2VfEWe9wUQA5wSudziPDTce5xtVT8/lMHWi5cYjCiYKbCsJ2ISAcXpCyOIRJi6Ehq8efjN+twkOdpMEiiSACyNehpUU78ayIjfy4w/GuYpzGeex84vnsh8HgruyNAFD5OL8dX5hOQWupYeOjSMBzwk4XxiNC6Hx7nlt3IIEQo+AceEzLoIF363SY+NcNs5f53ertJHtIIFAEyh4/hrfPW0XLbieEuP6JBAgAsbFMUC7525JIKgI4KJo5cLz2cqjw7ZZhYA35zEFrlVGke0gARIgARIgARIgARIwhYDncRdM2S0rIQESCHUCY8eODfUusn8kQAIkQAIWJUCBa9GBYbNIIJgJzJgxQwYNGiQ//vhjMHeDbScBEiABEghSAnRRCNKBY7NJwKoEMjIypGnTprJ582apXbu2bNiwQWeXsmp72S4SIAESIIHQI0ALbuiNKXtEAgEl8Oabb8rOnTtl0qRJsmPHDnnllVcC2h7unARIgARIwH4EaMG135izxyTgMwL79u2T+vXry/333y8vvviiDBgwQCZPnix//PGH1KhRw2f7ZcUkQAIkQAIk4EyAAteZBj+TgI0IzJ8/X2699VbZtm2brF27Vn7++WeB7+y3334rF154oSaBdQYOHCirVq0SpE0srqC+adOmybp163Qq0kOHDkmzZs2kW7duMmXKlOI2L/b3u+++W6pUqaLF85kzZ+T999+X1NRU6dOnjzRs2LDY7R9++GE5ffq0/Pe//83Xn7lz52prM7LmIIMOAowbyTVSUlLkscce03xat25d7D4KrrB9+3bd97S0NBk+fLiUL1++4Cpefz948KCUK1euRK4g4IHMX3i5W8Bm//79eozLlCnj7mZcjwRIgAT8RoAuCn5DzR2RgHUIIBvafffdJ/fcc48WNlWrVpVz585pkWeIW7T2yiuvlEqVKslzzz1XbOMhEj///HM5efKkVK9eXcqWLSuXXHKJFqBff/21zJo1q9g6zrcC6v/iiy90u7FebGysnD17Vp599lm3MrpBrMN9Yty4cfLZZ5/l29V7770nc+bMkT179sjixYu1YP7ll1+0+F+9erXExcXJkCFDdPapfBu68QX8Vq5cKf/5z3+kdOnSbmzh/iq4OWncuLHccMMN+qZkxIgRbrHAHiBS3333XUlKSpJff/3VrZ3CQn/77bdrkX7TTTfpbbt3766PHbcq4EokQAIk4CcCkX7aD3dDAiRgIQL/+9//ZOvWrdqVAM266KKLJD09Xdq0aVOolY888oj07dtXr3s+NwOI2tmzZxfa3lhwvm2Ndc73Ditqv379pFq1ano1WFohPCGk3bHewtpbq1YtbXWEoB08eHDe7iDu4TMMy+3MmTPljTfekKeeekoLOFiIjx49Kt9//718+umn0r9//7zt3PlQqlQpnWKyVatWOse6O9u4u06vXr3k8ssvl48++khb36+99lrBfv7xj3+ct4qlS5fqGwX068SJE9pqfd4N/voREwdxc7BgwQK54oorZN68edKhQwd94wFLPwsJkAAJWIUALbhWGQm2gwRMJgD3AOeCR+QQNCgffvih9OzZUz/WNtZBtAOII5SsrCxZtmyZnDp1Sq+Hx9fYpqiyZcsWbcWrWLGiFPXCo3744hZV0D48LncuBw4c0G1Zs2aNLFmyRO68807nn2XRokValCPbDay5sB4XrAMboN+wIkOEDRs2TLtcwFJrlI8//liLW3xHX2BpTVKWTRSI6DFjxkjXrl3lnXfe0cs8/Q/thBBFAVO0Ezy8KagTriCGmO3SpYsW/xMnTiy2WhwbEPy40UGBsHen4PjAPiFuUdq1ayfh4eEC6zgLCZAACViJAAWulUaDbSEBEwgcO3ZMi1JYOh0Oh64RobvgevDdd9/pR9PwuW3UqFG+vcHPFgJm9+7dWoxddtll+hE9xE+9evW0D2q+DZy+oC6EBivuBWufqwJ3AAjKUaNG5f38ySef6AlrsCzDTQClYJsh8gyx9cADD2jBjkfmBcv48eMFbhmwvt52222SmJgosOIaxdktA1ZKPPZ3LnAzgJUYrgYFbxyc13P1GY/14fpgtLNTp066nbBIOxdYUuFL6+p15MgR51X1Z4whCib1oUDkw0INy3xxBTc3ycnJbgtboz5Yo53HAJZguDpA6LKQAAmQgJUI0EXBSqPBtpCACQTgp3rNNdfoJAtGvnsIQQhFuBogdBesh3Xq1MnbG5ZBYFWuXFk/un/99de1yDUsexBR8K+FUMZErIIF/rHGvgr+5vwdfrMFCwQ5BGzz5s3zBDnWwYQ3PIKPj4/Pm7TmLEThfwrhB8so+gNhjv5BzDoXtAvWZwhfuGKgQOROmDBB0M8KFSo4r67j9jZp0iTfMnwBA9QFUQeB6G4BexS0E2IXluann35ann/++XxVoM6FCxfmW2Z8gRW5oMUXk7xQINaNAuu5IXyNZb56x7GASXPt27f32G3DV21ivSRAAiRgEKDANUjwnQRChAAmj8GPFFEPDDGKCAadO3fWj96NCUXOAnf58uV6YhhcAGA5hdh0LpgsBnEHMYooBgWLYZ0suNyd7xCYjz76qHZBMCIMwCd2+vTp2ucVdeCxOJJGOBdDOMKiCt9hhCRDlISCBZPbIIbhV2sUTBj74IMPtBiGj7FzWb9+vRbWzsvwGQxQDDcP/cWN/9BO9PGnn36S0aNH63a4Esgvv/z/7Z2/SiRNFMX9YF/BWBCMTcxMREwEEUGNNRRTMwMxEWXRyNgnMPMhzEzFTEEjA1+h9vwu3Kambd0ZZ2cY/c6Fsbuqq+vPmWH39O1zb/2Oh4yuLpEBtA2CiSEnSeNhAG3yOIyd6iDdfE/5IDSOcT2GETACRqAfBExw+0HJbYzAN0MAjSfePAwCSOaAi4uLKCdBq0kTBPf5+TlecyMXaBPcJE1dHlg6xSOJhvZvhrfx+Pi4s1k9Z6L78TivrKxEW+Zcz5fK29vbIOVsB4x+eGNjo7NftKZkiVhdXW2usz5SfnHt4OAg1s1FsHp9fe15DZ83JQZ4Uwcx5jk7OxtkGn0wgWBdNuhDArIJjD5JEZbneOFHbWdnZ/EQhU677QEf9dju3wgYASPQDwLv3QL93OU2RsAITDQCyA3SG4qHEk9balOTAKE1TYOoQFr29/fDg5v1eSSXK5reJFJZn8fr6+vQ96Lx/ewDef7Ics5oUA8PD6eWl5cjwIv2zJngr9rwjEKAr66uQsZAoFjbeI1/c3MT3t22l3Fvb2+KddVzIpgNS11r3R9tsS75Qt2uPoeko9sltRaBakgqwKfLlpaWwvsKkW5/unLNzs3NRTeQ+zQwmp+fz+JIjkhHSBvHWwF+E3iQxyWLGMmC3KkRMAI/EgF7cH/k1+pF/d8RwONJequTk5PQfEJ6SOOF4SkkICkJLq+6yVCAhxf5Ad5YMg5AKhcXF+MeyN1nxC77isZf/MOc0QIjM4Bgrq2tNT0xDzaiQMOKN5ZNHpAtkBEBKQZ5YNHeHh0d9WxYAPkluAztLhKB2vAm4xXGW0yGBAyiT3/5EFC3BwMkHylVYJ5vb2+h5a3b1ed3d3ehW0ZCwYYXBKoR3La9vV03i3N2f9vc3HxXT0WbnFNH1gS8p6Q3YyMNdMx8D6wHw3PMAwsPH0mG40L1JwPmWEdtpFCDZGdfeY3fFJkowAuPO95zMijw+yGP8P39fWwegua5vSkGnmb0upB9HrrAAZkIG4PwuwMjrntr50TbRyNgBIZCQLo6mxEwAj8MAQVQFf3DULRjV1Hu2KKApp4VKttBEZmKOuUyLUoDViQxiPLOzk6Rp7bIIxplRckXEb6iqP+ePv51QUFYRSS8iCwVSSGKUoQ1Q4isxXqkLY466YijLO9olEVeoyzSV0TCoo550x84fPYReSySZ5Td3d0iIlxEYotIWJFXshmfE3ARSW3qJIkoCwsLTbnrRA8N0V9iqweOmIsyPnQ1H7hOwX0xZ5HJMjMzU87Pz5s+pI2NsSQ/aeryRDrjokDEonRo0YajSGsRSY4m8p4XPm0TKe3Ecn19PZoyFlgzdtvkoY9ruXblGY6yggOjqfTDzW+yfa/LRsAIGIFBESBwxGYEjMAPQ0DpwYrSRRVF7BdthFD0qr5nhZeXl0Upn4q8avGhXZq8o0UevSwWyKQ8vgVSNEp7eXmJuUCiknzX4yl1V5GsIKr0WrwoEK25DJmlXNdxUdKMpj6vdx25X57swhHjnDHSuEcygaKsC1Elr3BRkF6RnjibdB75HphDWs47SXjWD3uUZ7swVm3aOS1Ib5Lr+hrzYF7tD/WsXR7VZq31fbme9n2SYkQzecyLtN8FMttl3Ef/GMf6+wKT7KfrXtcZASNgBAZB4D8a64nbZgSMwA9EgJ230Ji2k/8TEEauV15hs73rZ4Z2l1fh9DUOQ46AHphtgmvjdTg7mT0+Pk5NT0/Xl0Z+rgeCkHCwUQVBZsgCkDyQaiyDz0Y+iQEGQPuLRICNHMhNPIghHSAnMscuacRHffFfCWOiNR40YO6jPl1vBIyAEfgqAia4X0XO9xmBCUWAwCvICVpVyCnBQF2R7qQSIy3Y09NTj261XhZEh2Cvh4eH0LHW1/7VOcFikCLy9xKAhaYzMz60x9ja2go96enpafvSyMryWkYWBEhuZmqAzKFjnmSTN/pd5ol+5jvM2r46Zj/zchsjYASMwCAImOAOgpbbGoFvgADeM6L12amKlFxdGQFyGQQKScKQxXdHyB3ewHozgXeNhqwgRRneWnbDYic1NkD49as7/lWvtSNojHyv4zQyPHyUQWKc8/BYRsAIGAEj0B8CJrj94eRWRuDbIIAXDYJb7/o16ZMnwp7X4WQwsBkBI2AEjIARGBYBE9xhEfT9RsAIGAEjYASMgBEwAhOFgDd6mKivw5MxAkbACBgBI2AEjIARGBYBE9xhEfT9RsAIGAEjYASMgBEwAhOFwB85xUOtqmyYiAAAAABJRU5ErkJggg==" + } + }, + "cell_type": "markdown", + "id": "6934e483", + "metadata": {}, + "source": [ + "This example creates a precise simulation of a sampled-data control system consisting of discrete-time controller(s) and continuous-time plant dynamics like the following.\n", + "![image-4.png](attachment:image-4.png)" + ] + }, + { + "cell_type": "markdown", + "id": "02dab3bc", + "metadata": {}, + "source": [ + "In many cases, it is sufficient to use a discretized model of your plant using a zero-order-hold for control design because it is exact at the sampling instants. However, a more complete simulation of your sampled-data feedback control system may be desired if you want to additionally \n", + "\n", + "* observe behavior that occurs between sampling instants,\n", + "* model the effect of time delays,\n", + "* simulate your controller operating with a nonlinear plant, which may not have an exact zero-order-hold discretization\n", + "\n", + "Here, we include helper functions that can be used in conjunction with the Python Control Systems Library to create a simulation of such a closed-loop system, providing a Simulink-like interconnection system. \n", + "\n", + "Our approach is to discretize all of the constituent systems, including the plant and controller(s) with a much shorter time step `simulation_dt` that we specify. With this, behavior that occurs between the sampling instants of our discrete-time controller can be observed. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "5ffaa0e8", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np # arrays\n", + "import matplotlib.pyplot as plt # plots \n", + "%config InlineBackend.figure_format='retina' # high-res plots\n", + "\n", + "import control as ct # control systems library" + ] + }, + { + "cell_type": "markdown", + "id": "39555216", + "metadata": {}, + "source": [ + "We will assume the controller is a discrete-time system of the form\n", + "\n", + "$x[k+1] = f(x[k], u[k])$
$~~~~~~~y[k]=g(x[k],u[k])$ \n", + "\n", + "For this course we will primarily work with linear systems of the form \n", + "\n", + "$x[k+1] = Ax[k]+Bu[k]$
$~~~~~~~y[k]=Cx[k]+Du[k]$ \n", + "\n", + "The plant is assumed to be continuous-time, of the form \n", + "\n", + "$\\dot x = f(x(t), u(t))$,
$y = g(x(t), u(t))$\n", + "\n", + "For this course, we will design our controller using a linearized model of the plant given by \n", + "\n", + "$\\dot x = Ax + Bu$,
$y = Cx + Du$ " + ] + }, + { + "cell_type": "markdown", + "id": "36d410a9", + "metadata": {}, + "source": [ + "The first step to create our interconnected system is to create a discrete-time model of the plant, which uses the short time interval `simulation_dt`. Each subsystem gets signal names according to the diagram above, and we use `interconnect` to automatically connect signals of the same name. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "852cb7dd", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAANkCAYAAABVuUSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AADsoUlEQVR4nOzdd3RU1d7G8e9MegJJ6B0C0qv0LmJBUVFBRBCpIoh6bdhf6/XaruVaEBRFiooICAoiSpEqIE0gEHpJIySB9F7mvH8MjBkyE5KYSSHPZy2W4z77nP07Qwp5cvbeJsMwDEREREREREREKilzWRcgIiIiIiIiIlKWFI6IiIiIiIiISKWmcEREREREREREKjWFIyIiIiIiIiJSqSkcEREREREREZFKTeGIiIiIiIiIiFRqCkdEREREREREpFJTOCIiIiIiIiIilZrCERERERERERGp1BSOiIiIiIiIiEilpnBERERERERERCo1hSMiIiIiIiIiUqkpHBERERERERGRSk3hiIiIiIiIiIhUagpHRERERERERKRSUzgiIiIiIiIiIpWawhERERERERERqdQUjoiIiIiIiIhIpaZwREREREREREQqNfeyLuBKkZGRQXBwMAC1atXC3V1vrYiIiIiIiEhJy8nJITY2FoAOHTrg7e39j6/p0p/gY2Ji2LFjBzt27GDnzp3s3LmT8+fPAzBu3Djmzp1b4mMuXLiQOXPmsH//fuLj46lbty79+/fn4YcfplevXiU+3kXBwcH06NHDZdcXEREREREREXs7duyge/fu//g6Lg1H6tSp48rL28nIyODuu+/m559/tmsPDQ0lNDSUBQsW8Oqrr/LSSy+VWk0iIiIiIiIiUv6V2tyPRo0a0aZNG1avXu2S699///22YGTgwIE89thj1K9fn+DgYN58801OnDjByy+/TL169Zg0aVKJj1+rVi3b6x07dlCvXr0SH0NERERERESksouKirLN3Mj7s/g/4dJw5OWXX6Z79+50796dOnXqcPr0aZo2bVri42zcuJEFCxYAMGTIEJYtW4abmxsA3bt35/bbb6dr166EhYXxzDPPMHz4cAIDA0u0hrxrjNSrV4+GDRuW6PVFRERERERExF5Jrffp0t1qXnvtNW677TaXT6/573//C4CbmxszZsywBSMX1axZk3feeQeA+Ph4Zs+e7dJ6RERE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ZmYW6T1Ys2YN9913H02bNsXHxwd/f386derEM888Q1RUVJGuJSIiIleQs8GwbApYchwft+RYj58NLt26ypohJSI8PNwADMAIDw8v9HlHjx41QkJCjKNHj7qwOskrLS3NGDVqlO3vy9mfV155Jd+56enpxtChQws8r379+sZff/3lcOw5c+bY+h04cMC47rrrnF6nR48eRkpKit35r7zyymXrvvTTesCAAQZgDBgwIF89p06dsp0zZ84c49lnn3V6zVq1ahkhISFO39fTp08bbdq0KbCufv36GefPn3d4fkF1OnsPnHnzzTcNs9nstA4vLy9j3rx5Ds9dv369rd/69esLrKWgj5VNmzYZ/v7+l/27WrFiRYFjOHLxvSroz6XvY0G15v243Ldvn9GzZ0+n133//fcNwzCM0NBQo127dg77mEwm4+uvvy7wHr788kvDx8enwHu4//77jezs7CK/P4Zh//e4evVqY8iQIU7HefTRRw3DMIy4uDjjmmuucdrvjTfecDpebm6u8fDDDxd4PwEBAcbq1audXiMpKcno27ev0/O7du1q7Nmzx+5z1pGUlJTLfp2qUqWK04+9vB8Pp06dKvR7fpG+r4mIiJSt9KwcI+x8qrE7NM5Ytf+MsWjDbmPBD0uM775831j64eNG5GutDOMV/8v/WfpgWd+KU8X9+bsgWnNEKhWLxcIdd9zBmjVrAGjRogUPPfQQ3bp1w9fXl6ioKLZu3er0t8Tjxo1j2bJlAHTq1Ilp06bRpk0b4uLiWLhwIXPnzuXMmTNcf/317N+/nwYNGjitZfLkyWzfvp1x48YxYsQI6tatS1hYGP/973/Ztm0bO3bs4D//+Q9vvfWW7ZyHHnqI4cOH8+KLL/LTTz9Rv359fvvttxJ5b7744gu2bt3KgAEDmDJlCi1btiQhIYH58+czf/58YmNjmThxItu2bct3bkpKCtdddx0nT54E4M4772TixInUr1+fU6dOMX36dDZu3MiWLVu47bbb2Lx5M25ubiVS96VmzJjBCy+8AECtWrV49tln6du3L7m5uaxdu5Z3332X1NRUxo8fT82aNbnllltKvIbMzExGjhxJUlISVatWZerUqQwcOJDatWuTnZ1NaGgo27Zt44cffijW9efMmUNqaio33XQTZ86c4Y477uA///mPXR8/P79iXXvy5Mns3r2bhx56iKFD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3n//fatp06bOfe+9916hxzhw4IBVp04dS5LlcDis8ePHWz/99JP1008/WePHj7ccDoclyapTp4514MCBMvcK7+Ut67lfv36WJKt69erWqFGjrM8//9xavXq1FRcXZ73zzjtWixYtnMfo2bOnlZWVVeZe4b28ZT0X5tprr7UkWbVr1yYcgWVZ3remf/zxRysoKMiSZFWpUsUaO3astXDhQmvdunXW999/b7399tvW1VdfbXXr1q3MvcJ7edN6vvLKK53jGjdubL355pvWihUrrCVLllgvvfSSVbNmTef+++67r8y9wnt5Yj1PmjTJeZygoCCrW7duxhouaThSGb4TEo5UUOdSZIfDYa1evTrf/qlTpzoX7FNPPVWmcyxbtsx5jMGDB1uZmZnG/mPHjlkNGza0JFnVqlUr9L+UjxgxwnmcL774It/+L774wrl/5MiRZeoV3s1b1vOIESOsd955x0pNTS3wHElJSVbPnj2d5/n444/L1Cu8m7es54LMnTvXkmTVqlXLmjZtGuEILMvyrjX9119/WTVq1LAkWa1atbLi4+MLPSf/pd03ect6/vXXX53HaNKkiXXmzJl8Y/bt22dFREQ4r0T566+/ytQvvJcn1vO5UHndunVWRkaGZVnm97uShiOV4Tsh4UgFFBcX51w499xzT4FjsrKyrFatWjn/0k1PTy/1eQYNGmRJsvz8/Ar9x8XMmTOdvbz88sv59h85csTy8/OzpJxbDQozcOBA57mOHDlS6l7hvbxpPZfE5s2bnccYMmRImY4B7+XN6/nMmTNWZGSkJcn66KOPrBkzZhCOwOvW9J133mlJsgIDA61t27aVug9Ubt60nl977TXn/v/7v/8r9FwPP/ywc9w333xT6l7hvTy1ngtS2nCksnwn5IGsFdDcuXOdn0eOHFngGLvdrttuu02SdPLkSS1btqxU5zh79qxiY2MlSQMGDFBkZGSB4/7xj38oPDxckjRnzpx8++fPn6+srKwie5Wk22+/XZKUlZWl+fPnl6pXeDdvWs8l0aZNG9WsWVOStHv37jIdA97Lm9fz448/rgMHDqhPnz7O/gBvWtOnTp3S559/Lkm66aab1KJFi1L1gcrPm9Zzenq683OTJk0KPV/Tpk2dn9PS0krVK7ybJ9azq1SW74SEIxXQihUrJEmhoaHq2LFjoeN69+7t/Lxy5cpSnSMuLs75F2ze45wvICBA3bp1c87JyMgosNfijnMhvcK7edN6Lqlz/6Cx2/kr1Nd463r+5Zdf9NZbbykgIEBvvfVWqfpB5eZNa/qbb75RSkqKJOn666931hMTE7Vz50799ddfpeoLlY83refo6Gjn5z179hR6nLz/ISbvHFR+nljPrlJZvhPyL/sKaOvWrZKkZs2ayeFwFDquZcuW+eaU9hznH6eo82RmZmrnzp0FHqdq1aqqW7duoceoV6+eMz0vba/wbt60nkti/fr1OnPmTInOhcrHG9dzRkaG7r77bmVnZ+uRRx5h3cLgTWs676tRu3fvru+//149evRQeHi4oqOjVadOHV100UUaM2aMEhISStUjKgdvWs8DBw5UVFSUJOm1115TUlJSvvkHDhxwvmq9e/fuatu2bal6hXfzxHp2lcrynZBwpIJJTU11/h96YZfpnVOtWjWFhoZKkuLj40t1nrzjiztPgwYNCpyXd7u4Y+Q9Tml7hffytvVcEs8995zz8w033FDq+fBe3rqeX3rpJW3evFlNmjTR//t//69UvaBy87Y1vWXLFkk5//iePn26rrzySq1evdoYc/jwYb366qtq3769czx8g7et58DAQH322WeqXr26du/erXbt2umdd97RqlWrtGzZMk2bNk0dO3bUyZMnFRUVpRkzZpSqT3g3T61nV6ks3wkJRyqYxMRE5+ewsLBix5/7g3D27Fm3nefcOQo6z7njuLNXeC9vW8/F+e9//6uvvvpKktSxY0cNHTq0VPPh3bxxPe/atUtTpkyRJL3xxhsKDg4uVS+o3LxtTZ84cUKSlJKSokcffVSBgYF64YUXdODAAaWlpen333933nt/4MABXX311fybw4d423qWpMsuu0zr16/X2LFjtX//ft17773q2bOnYmJiNG7cOCUnJ+upp57S2rVrecaOj/HUenaVyvKdkHCkgklNTXV+DggIKHZ8YGCgJDnvwXXHec6do6DznDuOO3uF9/K29VyUbdu2OR8wFRwcrI8//lg2m61UfcK7eeN6vvfee5Wamqrrr79ef/vb30rVByo/b1vT5247SE9Pl2VZ+uSTT/Too4+qfv36CggI0MUXX6yPPvpIo0aNkpQTDr799tul6hXey9vWsyRZlqWvvvpKX331VYHPjTp79qxmzZqlBQsWlKpHeD9PrWdXqSzfCQlHKpigoCDn57xPsS7MuQdClfa/BpbmPHmfjH3+ec4dx529wnt523ouzKFDh3TllVcqMTFRNptN77//vlq3bl2qHuH9vG09f/jhh4qNjVV4eLj+/e9/l6oH+AZvW9N5j9OtWzfjoax5Pffcc85/fM+cObNUvcJ7edt6zs7O1rBhwzR27Fjt27dPd955p3777TelpKTo7NmzWrlypYYMGaKtW7fq9ttv19ixY0vVJ7ybp9azq1SW74SEIxVMlSpVnJ9LcqnRuf+KUpJLmMp6nrwPiDr/POeO485e4b28bT0X5MSJE7riiiu0d+9eSTkPTbvppptK1R8qB29az8eOHdO4ceMkSVOmTNFFF11Uqh7gG7xpTZ9/nCuvvLLQY9SoUUOdOnWSJG3cuLHMbyaDd/G29fzmm2/qyy+/lCRNnjxZ06dPV/v27RUUFKTQ0FD16NFD8+bN06233ipJeuWVV7iCxId4aj27SmX5Tkg4UsEEBQWpZs2aknLuly3KyZMnnYsr7wOfSiLvw3KKO0/eh+Wcf55zxynuGHmPU9pe4b28bT2fLzExUX/729/0xx9/SMr5kvnAAw+UqjdUHt60nqdPn67jx48rIiJCNWrU0KxZs/L9+uWXX5zjf/nlF2ed16H6Dm9a0+dvl/RBmFlZWTp+/HiJe4X38rb1/P7770vK+VL52GOPFXqMvA+Cnz59eql6hffy1Hp2lcrynZBwpAJq1aqVpJx7ZTMzMwsdt23btnxzSirvLQF5j1PUeRwOh5o1a1bgcU6fPq0jR44UeozDhw87X39a2l7h3bxpPeeVkpKiwYMHa+3atZKkRx55RE888USp+kLl4y3r+dwlq6dOndItt9yim266Kd+vvM9iePvtt5113vDhW7xlTUvSxRdf7PyclZVV5HHy7i/qFZioXLxpPZ97jWnr1q2NZ5OcLzIyUnXq1CnR+VC5eGI9u0pl+U5IOFIB9ezZU1LOJUfr1q0rdNzy5cudn3v06FGqc3Tu3Nn5wJy8xzlfenq61qxZk2/O+b0Wd5wL6RXezZvW8zkZGRkaOnSo81j33nuvpk6dWqqeUDl543oGiuJNa/ryyy93ft69e3eR5zy3Pzg4WNWrVy9Vv/Be3rSez4V2RX3pPefcrWEEfb7FE+vZVSrNd0ILFc4vv/xiSbIkWffcc0+BY7KysqxWrVpZkqyIiAgrPT291Oe58sorLUmWw+Gw4uPjCxwzc+ZMZy9Tp07Nt//w4cOW3W63JFkDBw4s9FwDBw60JFl2u906fPhwqXuF9/Km9WxZlpWZmWldd911znG33nqrlZ2dXep+UDl523ouyowZM5zzZ8yYUer5qBy8aU1nZmZatWrVsiRZLVq0KPTv5j179jj/bdKvX79S9wrv5U3ruU2bNpYkKzAw0Dp58mSh59q8ebPzOIMHDy51r/BenlrPBRkxYoTz3H/++Wex4yvLd0LCkQqqV69ezr90V69enW//1KlTnQt20qRJ+fbn/UdvQfsty7JiY2OdY4YMGWJlZmYa+48dO2Y1bNjQ+YftxIkTBR7n1ltvdR7nyy+/zLf/iy++cO4fMWJEsT87Kh9vWc/Z2dnWyJEjnccZOnRovuMA3rKei0M4gnO8aU2/+OKLzuM8//zz+fanp6dbf/vb34r8dwkqN29Zz48//rjzGCNHjiww7EtJSbFiYmKc4955552S/Sag0vDEei5IacMRy6oc3wkJRyqo3377zQoODrYkWWFhYdZzzz1n/fzzz9aSJUusUaNGORdWdHS0debMmXzzS/oH4cYbb3SOi4mJsebNm2etXbvW+uCDD6ymTZs697399tuFHmP//v3O/5LjcDisRx991FqxYoW1YsUK69FHH7UcDoclyapVq1ah6ToqN29Zz2PGjHGOadOmjbVu3Tpr8+bNRf6C7/GW9VwcwhGc401rOiUlxerQoYNz7C233GJ9//331rp166zZs2dbXbt2de4bNGgQV/75IG9Zz8eOHbNq167tHNezZ0/r008/tX799Vfrl19+sd5++22rdevWzv2tWrWy0tLSXPXbBC/hifWcmJhozZgxw/jVo0cP57yXXnrJ2Ld+/foCj1MZvhMSjlRg8+fPt8LDw50L8/xf0dHR1s6dOwucW9K/2JOTk61BgwYVeg673V6ilHHNmjVW3bp1Cz1O3bp1rTVr1pTxdwKVgTes50aNGhU6t7Bf8E3esJ6LQziCvLxpTR86dMjq2LFjkX83Dxo0qMAvCvAN3rKe169fbzVu3LjYf2tceuml1t69ey/gdwTezN3r+c8//yzVv32LWtfe/p2QB7JWYIMHD9amTZv08MMPKzo6WiEhIYqIiFCnTp304osvav369UW+baMkgoODtWDBAn322WcaMGCAateurYCAADVo0EA333yz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7tW6KSkpRY7r16+f/vOf/yg4OFipqamaPXu27rjjDjVv3lyRkZG69957tXHjxmLPl/c8wcHBpe4XAABfxwNZAQCATzgXlgQEBJTqVpnIyMhSn6tWrVqSVOyDVCVp9OjRuv766/X555/rxx9/1KpVq3T69GkdPHhQ77zzjt59911NmDCh0DfwnH+ec+cGAAAlRzgCAAB8Qo0aNSRJ6enpqlGjhvN5H+5wLqA4efJkicbXrl1bDz30kB566CFlZ2drw4YNmjNnjt544w2dOnVKzz77rDp37qyrr766wPl5z0M4AgBA6XFbDQAAKDWbzVbeLZRa+/btnZ8XLVrk1nO1bdtWknT69OlS385jt9vVoUMHPfPMM4qNjXXWz732tyA7duzId24AAFByhCMAAKDUzj1TQ5LS0tLKsZOSu/LKK+Xv7y9JevXVV5WZmem2c/Xq1cv5ee3atWU+TocOHZwPW01ISCh03LlzNG3a1K1XxAAAUFkRjgAAgFLL+wX8Ql5B60n169fXyJEjJUkbN27UPffcU2RA8tdff2n69OllOleXLl0UGBgoSYqLiyt03OzZs4t8aOuvv/7qvGWmcePGhY47d468oQwAACg5njkCAABKrX379goKClJqaqomTpwoh8OhqKgo59ti6tevXyHfmjJt2jStXr1av//+uz744AOtWbNGo0aNUseOHRUWFqZTp07pjz/+0OLFi7Vw4UK1bdtWd911V6nPExgYqH79+mnhwoWKjY3VU089VeC4Rx99VPfee6+uvvpqXX755YqOjlZoaKiOHz+ulStX6vXXX5ck+fn56e677y7wGDt37lR8fLwk6aqrrip1rwAAgHAEAACUQZUqVfTggw9q6tSp+u233zRw4EBj/9KlS9WnT5/yaa4IYWFhWr58uYYPH67vv/9eW7Zs0UMPPVTo+PDw8DKf69Zbb9XChQu1evVq7d27V1FRUQWOO3XqlD766CN99NFHBe4PCgrSO++8o44dOxa4//PPP5ckVa1aVX//+9/L3C8AAL6M22oAAECZvPDCC3rvvffUq1cvVa9eXX5+fuXdUolUr15d3333nWJjYzVy5Eg1b95cYWFhcjgcql69ujp37qzRo0dr4cKF+vHHH8t8nn/84x+qW7euLMvSzJkzCxzz008/afr06Ro2bJjatm2rWrVqyeFwKDw8XB06dNAjjzyiLVu26Lbbbiv0POeOfccddxjPggEAACVnsyzLKu8mAAAAKqMXXnhBjz/+uJo3b65t27Y5bztylZUrV6pXr17y9/fXjh07Cr06BQAAFI0rRwAAANzk/vvvV61atbRz507Nnj3b5cefMmWKJGnkyJEEIwAAXACuHAEAAHCjt956S/fdd59atWql33//3WVXj8TFxalr164KCwvTjh07eIUvAAAXgAeyAgAAuNGoUaN06tQppaWl6dChQ4qMjHTJcRMSEjRp0iR16NCBYAQAgAvElSMAAAAAAMCn8cwRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPi0/w9qb27anB7j9wAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 434, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# continuous-time plant model\n", + "plantcont = ct.tf(1, (0.03, 1), inputs='u', outputs='y')\n", + "t, y = ct.step_response(plantcont, 0.1)\n", + "plt.plot(t, y, label='continouous-time model')\n", + "\n", + "# create discrete-time simulation form assuming a zero-order hold\n", + "simulation_dt = 0.02 # time step for numerical simulation (\"numerical integration\")\n", + "plant_simulator = ct.c2d(plantcont, simulation_dt, 'zoh')\n", + "\n", + "t, y = ct.step_response(plant_simulator, 0.1)\n", + "plt.plot(t, y, '.-', label='discrete-time model')\n", + "plt.legend()\n", + "plt.xlabel('time (s)');" + ] + }, + { + "cell_type": "markdown", + "id": "17955fa7", + "metadata": {}, + "source": [ + "Next we create a model of a sampled-data controller that operates as a nonlinear discrete-time system with a much shorter time step than the controller's sampling time `Ts`. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "654c2948", + "metadata": {}, + "outputs": [], + "source": [ + "def sampled_data_controller(controller, plant_dt): \n", + " \"\"\"\n", + " Create a (discrete-time, non-linear) system that models the behavior \n", + " of a digital controller. \n", + " \n", + " The system that is returned models the behavior of a sampled-data \n", + " controller, consisting of a sampler and a digital-to-analog converter. \n", + " The returned system is discrete-time, and its timebase `plant_dt` is \n", + " much smaller than the sampling interval of the controller, \n", + " `controller.dt`, to insure that continuous-time dynamics of the plant \n", + " are accurately simulated. This system must be interconnected\n", + " to a plant with the same dt. The controller's sampling period must be \n", + " greater than or equal to `plant_dt`, and an integral multiple of it. \n", + " The plant that is connected to it must be converted to a discrete-time \n", + " approximation with a sampling interval that is also `plant_dt`. A \n", + " controller that is a pure gain must have its `dt` specified (not None). \n", + " \"\"\"\n", + " assert ct.isdtime(controller, True), \"controller must be discrete-time\"\n", + " controller = ct.ss(controller) # convert to state-space if not already\n", + " # the following is used to ensure the number before '%' is a bit larger \n", + " one_plus_eps = 1 + np.finfo(float).eps \n", + " assert np.isclose(0, controller.dt*one_plus_eps % plant_dt), \\\n", + " \"plant_dt must be an integral multiple of the controller's dt\"\n", + " nsteps = int(round(controller.dt / plant_dt))\n", + " step = 0\n", + " def updatefunction(t, x, u, params): # update if it is time to sample \n", + " nonlocal step\n", + " if step == 0:\n", + " x = controller._rhs(t, x, u)\n", + " step += 1\n", + " if step == nsteps:\n", + " step = 0\n", + " return x\n", + " y = np.zeros((controller.noutputs, 1))\n", + " def outputfunction(t, x, u, params): # update if it is time to sample\n", + " nonlocal y\n", + " if step == 0: # last time updatefunction was called was a sample time\n", + " y = controller._out(t, x, u) \n", + " return y\n", + " return ct.ss(updatefunction, outputfunction, dt=plant_dt, \n", + " name=controller.name, inputs=controller.input_labels, \n", + " outputs=controller.output_labels, states=controller.state_labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "80836738", + "metadata": {}, + "outputs": [], + "source": [ + "# create discrete-time controller with some dynamics\n", + "controller_Ts = .1 # sampling interval of controller\n", + "controller = ct.tf(1, [1, -.9], controller_Ts, inputs='e', outputs='u')\n", + "\n", + "# create model of controller with a much shorter sampling time for simulation\n", + "controller_simulator = sampled_data_controller(controller, simulation_dt)" + ] + }, + { + "cell_type": "markdown", + "id": "30567aaa", + "metadata": {}, + "source": [ + "If the model is simulated with a short time step, its staircase output behavior can be observed. Because the controller model is nonlinear, we must use `ct.input_output_response`." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "39e9b769", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABC0AAAM9CAYAAAC4/YkeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AAB1DElEQVR4nO39e3ycdZ03/r9nMkmTnilt6SGBtkAphdrKoYqUBVTwLioH0XpaBBfUn3pze8DV1b1V1FvXU8V13dXvCivKqlhdFDl0DxyloAsKrZWCHFpK0qa0pYWekuYw8/uDbeykSTpJ55qZJM/n49HHY+Yzn2uu93CRdq5XPodULpfLBQAAAECFSZe7AAAAAICeCC0AAACAiiS0AAAAACqS0AIAAACoSEILAAAAoCIJLQAAAICKJLQAAAAAKpLQAgAAAKhIQgsAAACgIgktAAAAgIoktAAAAAAqktACAAAAqEhCCwAAAKAiCS0AAACAiiS0AAAAACqS0AIAAACoSEILAAAAoCIJLQAAAICKJLQAAAAAKlKm3AUkqbW1NVavXh0REZMmTYpMZkh/XAAAACiLjo6O2LJlS0REzJs3L2pra4vyviW5i29ra4sbbrghfvazn8WqVati27ZtUV1dHdOnT4/TTz893vve98YrX/nKop939erVsXDhwqK/LwAAANCzBx98ME499dSivFfioUVjY2O8/vWv7xrxsE9bW1s88cQT8cQTT8T3v//9+MhHPhJLly6NVCqVdEkAAADAIJBoaNHR0ZEXWLzsZS+Lj370o3HcccfFzp07Y8WKFbF06dLYvXt3XHPNNTF16tT467/+66Kdf9KkSV2PH3zwwZg6dWrR3hsAAAB4SXNzc9dMh/3vxQ9VKpfL5Yr2bt3827/9W7z5zW+OiIjTTjst7rvvvqiqqsrr8/vf/z5OO+20aG9vj8MOOyw2b95ctLUnmpqaoqGhISJeGvFRX19flPcFAAAA/iyp++9Edw+5//77ux5/8pOfPCCwiIg4+eST4w1veENERGzfvj0ef/zxJEsCAAAABolEQ4u2traux7Nmzeq139FHH931eO/evUmWBAAAAAwSiYYWs2fP7nq8du3aXvs9/fTTERGRSqXi2GOPTbIkAAAAYJBINLR4+9vfHmPHjo2IiK985SvR2dl5QJ9HHnkkbrvttoiIeNvb3tbVHwAAABjeEt09ZNKkSXH99dfHO9/5zrj//vvj1FNPjQ9/+MMxe/bs2LVrV9x///2xdOnSaGtriwULFsQ3vvGNfr1/U1NTn683NzcfSvkAAABAGSW6e8g+a9asiW984xvxL//yL9H9dEcccUR84hOfiPe+970xatSofr1vKpUquK/dQwAAACAZg3L3kIiI9vb2+PGPfxy33HLLAYFFRMRzzz0XP/nJT+Kee+5JuhQAAABgEEl0esju3bvjvPPOi1//+tdRVVUVH//4x+Pd7353zJo1K1pbW+O///u/4/Of/3ysWLEi3vjGN8Y111wTH/rQhwp+/8bGxj5fb25ujoULFx7qxwAAAADKINHpIR/72Mdi6dKlERFx/fXXx6WXXnpAn46Ojjj33HPj7rvvjnQ6HY888ki87GUvK8r5kxqeAgAAAPzZoJseksvl4vvf/35EvLT1aU+BRUREJpOJL3zhCxERkc1mu44BAAAAhrfEQovnnnsutm3bFhERL3/5y/vse/LJJ3c9fvzxx5MqCQAAABhEEgstMpk/L5fR0dHRZ9/29vYejwMAAACGr8RCiwkTJsTYsWMjIuI3v/lNn8HFvffe2/V45syZSZUEAAAADCKJhRbpdDpe//rXR0TExo0b44tf/GKP/bZv3x6f+MQnup6/4Q1vSKokAAAAYBBJdC7GZz7zmbj55ptjz549cfXVV8fvf//7uPTSS7u2PP3tb38b3/zmN+PZZ5+NiIjXvOY1ce655yZZEgAAADBIJBpazJkzJ26++eZ4+9vfHlu3bo1bbrklbrnllh77vvrVr46f/exnSZYDAAAADCKJr3r52te+Nh5//PG47rrrYvny5fHoo4/GCy+8EJlMJqZMmRKnnnpqvOMd74jzzz8/UqlU0uUAAAAAg0Qql8vlyl1EUpqamqKhoSEiIhobG6O+vr7MFQEAAMDQk9T9d2ILcQIAAAAcCqEFAAAAUJGEFgAAAEBFEloAAAAAFUloAQAAAFQkoQUAAABQkYQWAAAAQEUSWgAAADCkZLO52NPWEdlsLpH+pTjHQGoaijLlLgAAAACKYc3GHXHtirWxfPWmaGnvjLrqqlg8b0pcsWhWzJ029pD7l+IcA6lpKEvlcrkhG9s0NTVFQ0NDREQ0NjZGfX19mSsCAAAgCTev3BBXLVsVHT2MTMikU7F0yfy4YMH0AfcvxTkGUlOlSOr+20gLAAAABrU1G3f0erMfEdGRzcVHl62KsbXVcczk0fHU5l3x0WWrorPA/hHR72OS6H/VslVx7OQxw2rEhZEWAAAADGofXbYybnp4Q7nLKImLT6qPpUvml7uMAyR1/20hTgAAAAatbDYXy1dvKncZJXP76uZhtTin0AIAAIBBq7WjM1raO8tdRsm0tHdGa8fw+bxCCwAAAAat2kxV1FVXlbuMkqmrrorazPD5vEILAAAABq10OhWL500pqO+FC6bFY5//X3HBgmn96j+QY5Lqf968qZFOpwrqOxQILQAAABjU3viyg9/wZ9KpeO9fHB11NVXxvr84OjIHufHfv/9Ajkmq/+WLZvbZZ6gRWgAAADCo/eKRvncOyaRTsXTJ/K6tQudOGxtLl8zvNSTo3n8gxyTdf7jIlLsAAAAAGKg/NL0Qv1q1Ma8tk05FRzYXddVVcd68qXH5opkH3OxfsGB6HDt5TFy3Yl3cvro5Wto7++w/kGOS7j8cpHK53JDdKyWpfWIBAAAov1wuF2/759/Gf6/b1tU2pjYT93zsrKireWnBykLWf8hmc9Ha0Vlw/4Eck3T/ckvq/ttICwAAAAalOx/bnBdYRER88Oxj4vDRI/r1Pul0KkbW9O/2uL/HJN1/qLKmBQAAAINOR2c2/m75Y3lt08fXxWWvmlGegkiE0AIAAIBB56e/a4ynt+zOa/vY62ZHbXVVmSoiCUILAAAABpVdezvimv96Mq/txOlj44L508tUEUkRWgAAADCo/POv18bWXXvz2j61+PhBsWAl/SO0AAAAYNB4bkdrfO/Xa/Pazj5uUrzqmIllqogkCS0AAAAYNL55xxPR0t7Z9TydivibxceXsSKSJLQAAABgUHjiuZ3x04ca89recnJDHDdlTJkqImlCCwAAAAaFLy9/PLK5Pz+vq66Kj547u3wFkTihBQAAwBCWzeZiT1tHZPe/2y9i/1KcI5vNxV2PPxd3Pb45r/09Z8yMI8bWFlwng0+m3AUAAABQfGs27ohrV6yN5as3RUt7Z9RVV8XieVPiikWzYu60sYfcvxTn6N5/fxNH18R7zzx6gP91GCxSuVyu8PhskGlqaoqGhoaIiGhsbIz6+voyVwQAAJC8m1duiKuWrYqOHkYyZNKpWLpkflywYPqA+5fiHH31j4h4yyn18bU3z+/xNUovqftv00MAAACGkDUbd/R5s9+RzcVVy1bFmo07BtS/FOc4WP+IiF88vCGvJoYmIy0AAACGkI8uWxk3PbzhoP1SEVGVTkVnNheF3BTu6x8R/T4mqf4Xn1QfS5cYbVEJjLQAAACgT9lsLpav3lRQ31y8NMKh0N9i7+s/kGOS6n/76uZ+LRjK4CO0AAAAGCJaOzoPWLByKGtp74zWjuHzeYcjoQUAAMAQUZupirrqqnKXUTJ11VVRmxk+n3c4EloAAAAMEel0KhbPm1JQ39ccPzlu+z+L4jVzJver/0COSar/efOmRvp/1tlgaBJaAAAADCFXLJoVB7uNz6RTcdU5x8UJ08bFVeceF5mD3Pjv338gxyTV//JFM/vsw+AntAAAABhC2jqzfS5kmUmnYumS+TF32tiIiJg7bWwsXTK/15Cge/+BHJN0f4auTLkLAAAAoHi+deeTPbbXVVfFefOmxuWLZh5ws3/Bgulx7OQxcd2KdXH76uZoae/ss/9Ajkm6P0NTKpfLDdn9YZLaJxYAAKAS/aHphTj/2/fntX1y8XFxyWkzojZTVdD6D9lsLlo7OgvuP5Bjku5P6SV1/22kBQAAwBDRfZTFhFE1cclpM2JkTeG3ful0ql/9B3JM0v0ZOqxpAQAAMAT8ccOLccdjm/Pa3nPGLDf7DGpCCwAAgCGg+yiLw0ZWx7tOO6pM1UBxCC0AAAAGuTUbd8R/rnkur+2KM2bFqBFGWTC4CS0AAAAGue6jLMaPrI5LXzWjPMVAEQktAAAABrHHmnfEvz+6Ka/tikUzY7RRFgwBQgsAAIBB7Nt3PZX3fGxtJt5llAVDhNACAABgkHriuZ1x+x+b89ouXzQrxtZWl6kiKC6hBQAAwCD1rTufjFzuz8/H1GbistNnlK0eKDahBQAAwCD05HM747bV+aMs/ur0mTGuzigLhg6hBQAAwCD0D3c9lT/KYkQm/ur0meUrCBIgtAAAABhkntq8K275w8a8tstOnxHjRhplwdAitAAAAIaNbDYXe9o6IpvNHbzzAI8pRf+/v+OJvFEWo0dk4vJFRlkw9Ni4FwAAGPLWbNwR165YG8tXb4qW9s6oq66KxfOmxBWLZsXcaWOLckyp+t/+h+Zo7cjmvXbpq46K8SNrBvhfBypXKpfLFR4xDjJNTU3R0NAQERGNjY1RX19f5ooAAIBSu3nlhrhq2aro6GEkQyadiqVL5scFC6Yf0jHl7B8R8aWLTox3vOKoHl+DUkjq/ttICwAAYMhas3FHnzf7HdlcfOSnK2P983ti2vi6iIjY+EJLfPOOJ6K32Rrdjyl3/4iIz9z8aCxoOKzXUSMwWBlpAQAADFkfXbYybnp4Q7nLKImLT6qPpUvml7sMhqmk7r8txAkAAAxJ2Wwulq/eVO4ySub21c39WmAUBgOhBQAAMCS1dnRGS3tnucsomZb2zmjtGD6fl+FBaAEAAAxJtZmqqKuuKqhvKhVx4rSxceK0sZFKFfb+qVTECVPHVEz/uuqqqM0U9nlhsBBaAAAAQ1I6nYrF86YU1PdNL6+PW//PGXHr/zkjLnr59IMf8D/H3Pahv6iY/ufNmxrpdIEJBwwSQgsAAGDIumLRrIOOVMikU3H5opl5x2QOcvO//zGV1h+GEqEFAAAwZE0aMyLSfaQWmXQqli6Zn7dV6NxpY2Ppkvm9BgXdj6m0/jCUZJJ647POOivuvffefh1z9913x1lnnZVMQQAAwLDzr79dH5097KhRV10V582bGpcvmtnjzf4FC6bHsZPHxHUr1sXtq5ujpb2zz2MqrT8MFalcLpfInjj9DS3S6XQ8++yzMX16YfO1CpHUPrEAAEDla23vjNO/fFc8v7utq+3NJ02Pz194YtRmqgpe/yGbzUVrR2fBx1RafyiFpO6/Extp8f3vfz92797dZ581a9bEW9/61oiIeM1rXlPUwAIAABjefvnIhrzAIiLiir+YFSNr+ncblE6n+nVMpfWHwSyx/9Nnzjz4IjA33HBD1+N3vetdSZUCAAAMM7lcLq5dsS6v7YxjJ8acKaZRwGBStoU4s9ls/OhHP4qIiNGjR8eb3vSmcpUCAAAMMfc+sSWe2rwrr83uGjD4lC20uPPOO2PDhg0REfHmN785Ro4cWa5SAACAIea6bqMsjp08Os6cPalM1QADVbbQ4oc//GHXY1NDAACAYnl8046478mteW2XL5oZqT62PgUqU1lCi127dsUvfvGLiIg48sgjbXMKAAAUzXX35Y+yOHxUTVz4cov+w2BUliVn/+3f/q1rZ5FLLrlkwIlnU1NTn683NzcP6H0BAIDBafPO1rh55ca8tktOOypqq6vKVBFwKMoSWhRrasi+PWABAAAiIm74zfpo68x2Pa/JpOMvX3lUGSsCDkXJp4c0NTXFPffcExERr3zlK2P27NmlLgEAABiCWto6419/uz6v7U0vnx4TR48oU0XAoSr5SIt//dd/jWz2peTz0ksvPaT3amxs7PP15ubmWLhw4SGdAwAAGBxueqQptu9pz2v7K9ucwqBW8tDihhtuiIiIESNGxFvf+tZDeq/6+vpilAQAAAxy2WzugG1Oz5w9KWYfMaZMFQHFUNLpIb/73e9izZo1ERHxhje8IQ477LBSnh4AABii7nlic6zdsjuv7YozjLKAwa6kocX+C3Ae6tQQAACAfa7tts3pcUeMiUXHTCxTNUCxlCy0aG9vjxtvvDEiIiZNmhSLFy8u1akBAIAh7NGNL8YDTz+f13b5GTMjlUqVqSKgWEoWWixfvjy2bNkSERHveMc7IpMpy26rAADA/8hmc7GnrSOy2Vxix5Si//9379N5bRNHj4gLFkwr6HigspUsOdh/asi73vWuUp0WAADoZs3GHXHtirWxfPWmaGnvjLrqqlg8b0pcsWhWzJ02tijHlKr/7aubo7U9m/fau047KkZkqgb4XweoJKlcLld4rDpA27dvj6lTp8bevXvjxBNPjNWrVyd9yoiIaGpqioaGhoh4aXtUu40AADDc3bxyQ1y1bFV09DCSIZNOxdIl8+OCBdMP6Zhy9o+I+OKFJ8Y7X3lUj68ByUjq/rsk00N++tOfxt69eyPCKAsAACiXNRt39Hmz35HNxVXLVsWqxu2xt6Mz9nZ0xqrG7f06ptz9IyI++6tHY83GHQf5rwEMBiUZaXH66afHAw88EFVVVfHss8/GtGmlmV9mpAUAAPzZR5etjJse3lDuMkri4pPqY+mS+eUuA4aNQT3S4v77749cLhcdHR0lCywAAIA/y2ZzsXz1pnKXUTK3r27u1wKjQGUq2e4hAABA+bR2dEZLe2e5yyiZlvbOaO0YPp8XhiqhBQAADAO1maqoqx4+O2rUVVdFrR1EYNATWgAAwDCQTqdi8bwpBfV93QlHxD0fOyvu+dhZ8bq5R/TrmErpf968qZFOpwrqC1QuoQUAAAwTVyyaFVUHuZHPpFPxodfMjhkTR8WMiaPiQ6+dHZl+HFMp/S9fNLPPPsDgILQAAIBhYu60sbFw5mG9vp5Jp2Lpkvkxd9rYvGOWLpnfa1DQ/ZhK6w8MbplyFwAAAJTGrr0dsarxxQPa66qr4rx5U+PyRTN7vNm/YMH0OHbymLhuxbq4fXVztLR39nlMpfUHBq9ULpcbsvsAJbVPLAAADEY/+u/18be/+GPX83Qq4s6PnhVHHT6y4PUfstlctHZ0Rm2mqqBjKq0/kIyk7r+NtAAAgGEgl8vFj//72by21xx/RMycNKpf75NOp2JkTeG3EZXWHxhcrGkBAADDwOoNL8ajG3fktb1j4ZFlqgagMEILAAAYBrqPspg+vi7+YvakMlUDUBihBQAADHE7W9vjV6s25rW97dSGg25/ClBuQgsAABjibl65Mfa0dXY9r0qnYsmpDWWsCKAwQgsAABjCelyAc87kOGJsbZkqAiic0AIAAIawVU0vxprmbgtwvsICnMDgILQAAIAh7Cc9LMB5xrEW4AQGB6EFAAAMUTt6WIDz7QstwAkMHkILAAAYom5+ZEO0tP95Ac5MOhVLTrEAJzB4CC0AAGAIyuVy8aNuU0Nee/wRMdkCnMAgIrQAAIAhaGXjC/H4pp15bW+3ACcwyAgtAABgCOq+zWnDhLo445iJZaoGYGCEFgAAMMTsaG2PW/6QvwDn2049MtIW4AQGGaEFAAAMMb98ZEO0tme7nmfSqXjLKfVlrAhgYIQWAAAwhORyuQOmhpwz94iYPMYCnMDgI7QAAIAh5JEeFuB8hwU4gUFKaAEAABGRzeZiT1tHZLO5xI4pRf8fPvBMXtuRE0bG6UdbgBMYnDLlLgAAAMppzcYdce2KtbF89aZoae+MuuqqWDxvSlyxaFbMnTa2KMeUqv/tq5vz1rKIiHjbwgYLcAKDViqXyxUeJQ8yTU1N0dDQEBERjY2NUV9v8SEAAP7s5pUb4qplq6Kjh5EMmXQqli6ZHxcsmH5Ix5Szf0TE/7vwxPjLVx7V42sAxZLU/bfpIQAADEtrNu7o82a/I5uLq5atijUbdwz4mHL3j4i4+leP5n0GgMHE9BAAAIala1es7fNmP+KlkOB9N/wuTjrqsIiIeHj99n4dUyn9r1uxLpYumd9nP4BKJLQAAGDYyWZzsXz1poL6Nm5vicbtLf16//4ek3T/21c3x9fe/DJrWwCDjukhAAAMO60dndHS3lnuMkqmpb0zWjuGz+cFhg6hBQAAw05tpirqqqvKXUbJ1FVXRW1m+HxeYOgQWgAAMOyk06lYPG9KQX3nTBkTHzz76Pjg2UfHcVNG9+uYSul/3ryppoYAg5I1LQAAGJauWDQrfrVyY58LWWbSqfjGkgUxd9rYiIh4/bxpcf63VxR8TKX0v3zRzF5fB6hkRloAADAszZ02Nj5yzuxeX8+kU7F0yfyuwGLfMUuXzI9ML6MWuh9Taf0BBhsjLQAAGLZe2NN2QFtddVWcN29qXL5oZo83+xcsmB7HTh4T161YF7evbo6W9s4+j6m0/gCDSSqXy/W9sfMg1tTUFA0NDRER0djYGPX19WWuCACAStGZzcVpf3dnbN65t6vtPWfMjE8uPr7g9R+y2Vy0dnRGbaaqoGMqrT9AsSR1/22kBQAAw9IDT2/NCywiIpac0tCvm/10OhUjawr/Sl1p/QEqnTUtAAAYln7xyIa85ydOHxvHHjGmTNUA0BOhBQAAw86eto749z9uymu7cMH0MlUDQG+EFgAADDv/tea52NPW2fU8nYo4f8G0MlYEQE+EFgAADDs3PZw/NWTRsZNi8pjaMlUDQG+EFgAADCtbdu6N+57cktf2ppebGgJQiYQWAAAMK7es2hjZ3J+fj6ypinNPOKJ8BQHQK6EFAADDSvddQ/7XCVNsEwpQoYQWAAAMG09t3hmrN7yY13ahqSEAFUtoAQDAsNF9lMWkMSPiVUcfXqZqADgYoQUAAMNCNpuLXz6yMa/tgvnTIlPlKzFApfI3NAAAw8Lv1m+PDS+05LWZGgJQ2YQWAAAMC794pCnv+ewjRscJ08aWqRoACiG0AABgyGtt74xb/9Cc13bhy6dHKpUqU0UAFEJoAQDAkHf345tjZ2tHXtuFC0wNAah0QgsAAIa87ruGvHLWhJg2vq5M1QBQKKEFAABD2vbdbXH3nzbntV1kAU6AQUFoAQDAkHbb6uZo78x1Pa/JpGPxvKllrAiAQgktAAAY0n7ZbWrIOccfEWNrq8tUDQD9IbQAAGDIevb5PfG79dvz2kwNARg8hBYAAAxZv1yZP8risJHV8RezJ5WpGgD6S2gBAECPstlc7GnriGw2d/DOFdi/szMb//ZwU17bG+dPi5qMr8AAg0Wm3AUAAFBZ1mzcEdeuWBvLV2+KlvbOqKuuisXzpsQVi2bF3GljB03/2/7QHHs7snmvXWhqCMCgksrlcoVF1YNQU1NTNDQ0REREY2Nj1NfXl7kiAIDKdvPKDXHVslXR0cNohkw6FUuXzI8LFkwflP0jIv7+rQviAsEFQNEldf9tbBwAABHx0giFvm74O7K5uGrZqlizcceg7B8RcdXP/twfgMpnpAUAABER8dFlK+OmhzcctF9ddTrGj6yJF/a0RUt7dtD1v/ik+li6ZP5B+wFQOCMtAABITDabi+WrNxXUt6U9G80vthYUEFRi/9tXNxe8mCcA5SW0AAAgWjs6o6W9s9xllERLe2e0dgyPzwow2JUstNi6dWt89atfjdNPPz2mTJkSI0aMiGnTpsUrXvGK+Ou//uv4zW9+U6pSAADopjZTFXXVVeUuoyTqqquiNjM8PivAYFeS0OJnP/tZzJkzJz7xiU/EAw88EM8991y0tbVFc3NzPPjgg/H1r389vvKVr5SiFAAAepBOp2LxvCkF9V10zMT4wV8tjNOPOXxQ9j9v3tRIp1MF9QWgvDJJn+CHP/xhvPvd745sNhuTJ0+O97///bFo0aKYMGFCbNq0KZ5++um45ZZborq6OulSAADowxWLZsUvHt4Qfa32kEmn4lPnHR9zp42NSaNHxPnfXtHnbh2V2P/yRTP7+IQAVJJEQ4vHHnss3vve90Y2m40zzjgjbrnllhg3btwB/a688spoa2tLshQAAA6ifkJdpFMRnb3c82fSqVi6ZH7MnTY2IiLmThsbS5fM73Wb0UrvD0DlSzS0uPLKK2Pv3r0xceLEuOmmm3oMLPapqalJshQAAA7irsc29xhY1FVXxXnzpsbli2YecMN/wYLpcezkMXHdinVx++rmaGnvHFT9AahsqVwul8h+T48//ngcf/zxERFx9dVXx2c/+9kkTtOnpPaJBQAYit53w+/iPx59ruv5WbMnxj/95clRm6kqaA2IbDYXrR2dg7Y/AAOX1P13YiMtfvazn3U9fstb3tL1ePv27bF169aYMGFCHH54YYslAQCQrD1tHXHvE1vy2s6bNy1G1hT+dTGdTg3q/gBUnsR2D/ntb38bERHjxo2L448/Pn70ox/F/PnzY8KECTF79uyYOHFizJo1Kz73uc/Frl27kioDAIAC3POnLdHanu16XpVOxTlzjyhjRQCQ4EiLNWvWRETEjBkz4sorr4x//Md/PKDPunXr4uqrr46f//zn8R//8R8xbdq0fp2jqampz9ebm5v79X4AAMPV8j9uynt+2qzD47BR1hwDoLwSCy22bdsWES+tbbFq1aoYP358fPnLX443velNMXbs2Fi9enV85jOfieXLl8cf//jHeMtb3hL33XdfpNOFD/7YN18GAICBa23vjLseey6v7X+dOKVM1QDAnyU2PWT37t0REbF3796oqqqK5cuXx/ve976YNGlSjBgxIk455ZS49dZbY/HixRER8cADD8RNN92UVDkAAPTivie3xu62zq7nqVTEuSeYGgJA+SU20qK2trYruHjLW94Sr3zlKw/ok06n42tf+1osX748IiJ+8pOfxJvf/OaCz9HY2Njn683NzbFw4cJ+VA0AMPws/2P+lNpTj5oQk8fUlqkaAPizxEKLMWPGdIUW+0ZT9OSEE06I6dOnx4YNG+Khhx7q1zlsYQoAcGjaOrJxxxpTQwCoTIlND9l/vYmDhQv7+m7evDmpcgAA6MFv1j4fO1o78tqEFgBUisRCixNOOKHrcWdnZx89//x6JmMfbQCAUvr3blNDFjSMj2nj68pUDQDkSyy0+Iu/+Iuux08//XSffdeuXRsREdOnT0+qHAAAuunozMZ/PJo/NWSxURYAVJDEQovzzz8/qqurIyL63BXk3nvvjeeffz4iIs4444ykygEAoJsHn9kW23a35bUtPnFqmaoBgAMlFlocfvjhccUVV0RExH/913/FjTfeeECfnTt3xoc//OGu5+973/uSKgcAgG7+/Y+b8p7PnTo2jjx8ZJmqAYADJRZaRER87nOfiyOPPDIiIi655JK48sor4+67747f//73cf3118fChQtj5cqVERHx/ve/P0499dQkywEA4H9ks7kDQovz5pkaAkBlSXTly0mTJsW///u/x/nnnx9PPfVUfPvb345vf/vbB/T7q7/6q/j7v//7JEsBAGA/jzRuj8079+a1/S9TQwCoMImOtIiIOP7442PlypXxta99LV7xilfEhAkToqamJurr6+Otb31r3HXXXXHdddd1rX8BAEDylq/OH2Vx7OTRcczk0WWqBgB6VpI9RkeNGhUf+9jH4mMf+1gpTgcAQB9yuVws7zY1xK4hAFSixEdaAABQWVZveDE2vNCS12ZqCACVSGgBADDMdB9lcdThI+P4qWPKVA0A9E5oAQAwjORyB+4asvjEqZFKpcpUEQD0TmgBADCM/Om5nbFu6+68NutZAFCphBYAAMNI911Dpo+vi5fVjytTNQDQN6EFAMAwsvyPzXnPX3fCFFNDAKhYQgsAgGHi6S274onnduW1LZ5naggAlUtoAQAwTHRfgHPSmBFx8pGHlaka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73hH13udffbZuV/+8pe5Bx98MHfdddfljj766K7Xvve97xXx07FP0tf5hhtu6Pri87rXvS53zTXX5O66667cww8/nPvVr36Ve+tb39p1jpEjR7rBSUipfp67+9WvfpWLiNzkyZP9g1kCpbrOL7zwQu7kk0/uer/Xv/71uRtuuCH3m9/8JrdixYrcj370o9yHP/zhXH19vZ/pIivFNf7pT3/a9T41NTW5j3zkI7nbbrst99///d+5H//4x7lFixZ1vT516tTcCy+8UORPObztf4PR0NCQO/fccxO7yfEdrHxKcZ19Byu/Uv48d+c7WGUSWhTZWWedlYuIXCaTyT3wwAMHvP7Vr3616wfgc5/73IDOcc8993S9xxvf+MZcR0dH3utbtmzJHXnkkbmIyB122GG57du3D+g89C7p63zjjTfm3ve+9+XWr1/fa59vfetbXed49atf3e9zcHCl+HnubufOnbmGhoZcROR++MMf+gezBEp1nS+55JKu89x444299stms7n29vYBn4cDleIan3jiiV3vceutt/bY501velNXn6VLlw7oPPTsM5/5TO6WW27Jbdq0KZfL5XLr1q1L5CbHd7DyKsV19h2s/Er189yd72CVS2hRRA8++GDX/9zve9/7euzT2dmZO/7447v+MWtra+v3ec4777xcROSqqqpyjY2NPfb5yU9+0lXL17/+9X6fg96V6joX4pRTTun6bcDWrVsTOcdwVa7rfOWVV3b99i6Xy/kHM2Glus733Xdf13muvvrqQy2bfijFNX7xxRe7znHSSSf12m/VqlVd/S6++OJ+nYP+Seomx3ewylKqm9me+A5WOqW6zr6DVS4LcRbRL3/5y67H7373u3vsk06n413veldERGzfvj3uueeefp1j165dceedd0ZExDnnnBP19fU99nvTm94UY8eOjYiIm266qV/noG+luM6F2rcwUDabjXXr1iVyjuGqHNf5wQcfjH/8x3+Mmpqa+M53vnNI70VhSnWdv/3tb0dExOjRo+Oqq67q9/EMXCmucVtbW9fjWbNm9drv6KOP7nq8d+/efp2D8vMdjP35Dja0+A5W2YQWRXTfffdFRMSoUaPi5JNP7rXfmWee2fV4xYoV/TrHgw8+2PVFZ//36a6mpiZe+cpXdh3T3t7er/PQu1Jc50Lt/6U3nfbjXEylvs4dHR3x3ve+N7LZbHziE5+I4447bsDvReFKcZ3b2tri5ptvjoiIxYsXx+jRoyPipWu+fv36ePbZZ/NueimuUlzjiRMnxoQJEyIiYu3atb32e/rpp7sez549u1/noPx8B2N/voMNHb6DVT4/YUX02GOPRUTEMcccE5lMptd+c+bMOeCY/p6j+/v0dZ6Ojo548skn+3UeeleK61yoe++9NyIiMplMHHPMMYmcY7gq9XX++te/HqtWrYqjjz46PvWpTw34feifUlznVatWRWtra0REnHbaabFp06Z497vfHePHj48ZM2bEUUcdFePGjYvzzjsvHnjggQF8CvpSqp/l9773vRER8fDDD8fy5ct77POFL3whIiKqqqriiiuu6Pc5KC/fwdif72BDh+9glU9oUSStra2xdevWiIhehwvuc9hhh8WoUaMiIqKxsbFf59m//8HO09DQ0ONxDFyprnMhbrvttvjDH/4QERGve93ruoaicuhKfZ3Xrl0bn//85yMi4p/+6Z+itrZ2QO9D/5TqOq9ZsybvnPPmzYvrr78+du/ende+fPnyOOOMM+Kb3/xmv96f3pXyZ/lv//Zv47WvfW1ERFx00UXxsY99LJYvXx4PPfRQ/PSnP42zzjorfv7zn0dVVVV861vfiuOPP77f56C8fAdjH9/Bhg7fwQYHoUWR7Ny5s+vxvqG/fdn3xWjXrl2JnWffOQZyHnpWqut8MNu2bYsPfvCDEfHSb+z2/faO4ij1dX7f+94XLS0t8da3vjXOPffcAb0H/Veq67xt27aux5/73Odi69at8YY3vCF+97vfRWtrazz33HPxT//0TzF27NjIZrPx0Y9+tNff1NM/pfxZHj16dCxfvjy+973vRX19fSxdujTOO++8WLhwYbztbW+Le++9N970pjfF/fffHx/4wAf6/f6Un+9gRPgONtT4DjY4CC2KZN/Q34iX5jIezIgRIyIioqWlJbHz7DvHQM5Dz0p1nfvS2dkZ73znO2P9+vUREfF//+//jZe//OVFe39Ke51/+MMfxh133BFjx46Na665pt/HM3Clus77j6jYu3dvvPGNb4ybb745Tj755BgxYkRMnjw53v/+98dtt90W6XQ6crlcfPzjH49cLtev83CgUv+d/bvf/S5+8pOf9LquxR133BE/+MEPYseOHQN6f8rLdzB8BxtafAcbPIQWRbL/UKJCFlTb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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 414, + "width": 534 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "time = np.arange(0, 1.5, simulation_dt)\n", + "step_input = np.ones_like(time)\n", + "t, y = ct.input_output_response(controller_simulator, time, step_input)\n", + "plt.plot(t, y, '.-');" + ] + }, + { + "cell_type": "markdown", + "id": "1020f95a", + "metadata": {}, + "source": [ + "## simulating a closed-loop system\n", + "\n", + "Now we are able to construct a closed-loop simulation of the full sampled-data system. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f8675193", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 417, + "width": 547 + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAAM6CAYAAABjPS0fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AACDBklEQVR4nOzdeXyU5b3///csmewhbJGERNlFasQNqhUPgkUF64ILtfaoeOAc2mP70xa/trVHD1202ko9Pe2x5RQUa1Xk9FAXllOLCzUuBUUwFlAQhGwsYUvIPjP37w+aMXNPlpnJbPc9r+fjweMxuXPd93WHSWDmnevzuRyGYRgCAAAAAABIU85k3wAAAAAAAEAyEY4AAAAAAIC0RjgCAAAAAADSGuEIAAAAAABIa4QjAAAAAAAgrRGOAAAAAACAtEY4AgAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLRGOAIAAAAAANIa4QgAAAAAAEhrhCMAAAAAACCtEY4AAAAAAIC0RjgCAAAAAADSGuEIAAAAAABIa+5k34BdtLa2qrKyUpI0dOhQud381QIAAAAAEGter1eHDh2SJJWXlysrK6vf1+QdfIxUVlZq8uTJyb4NAAAAAADSxsaNGzVp0qR+X4eyGgAAAAAAkNZYORIjQ4cODTzeuHGjiouLk3g3AAAAAADYU11dXaByo+t78f4gHImRrj1GiouLVVpamsS7AQAAAADA/mLV75OyGgAAAAAAkNYIRwAAAAAAQFojHAEAAAAAAGmNcAQAAAAAAKS1uIYjmzdv1oMPPqiZM2eqrKxMmZmZysvL07hx4zR37ly98cYbMZln0aJFcjgcYf15/fXXYzInAAAAAACwh7jtVjN16lT95S9/CTne3t6unTt3aufOnXryySd1yy23aOnSpfJ4PPG6FQAAAAAAgB7FLRypqamRJJWUlOjGG2/UxRdfrFNPPVU+n09vv/22Fi9erJqaGj311FPyer165plnYjJvZWVlr58fOXJkTOYBAAAAAAD2ELdwZPz48XrwwQd1/fXXy+VyBX3uggsu0C233KKLLrpIH3/8sZ599ll9/etf18UXX9zvec8888x+XwMAAAAAAKSPuPUcWb16tebMmRMSjHQaMmSIFi9eHPj4D3/4Q7xuBQAAAAAAoEdJ3a3mkksuCTz+5JNPkncjAAAAAAAgbcWtrCYc7e3tgcdOJ7sKAwAAAAD65vf7deLECTU0NKi9vV0+ny/Zt4QwuVwueTweFRQUKC8vL2WygKSGIxs2bAg8Hj9+fEyuOWPGDG3evFmNjY0qLCzUhAkTdMUVV2jBggUaOHBgTOYAAAAAACRHY2OjampqZBhGsm8FUfB6vWpra1NjY6McDoeGDx+u/Pz8ZN9W8sIRv9+vhx56KPDxnDlzYnLd9evXBx4fOnRIGzZs0IYNG/Twww9r+fLluuaaa6K6bnV1da+fr6uri+q6AAAAAIDwdBeMOByOHntdIvX4fL7A82cYhmpqalIiIElaOPLoo49q48aNkqTZs2fr/PPP79f1ysvLde2112ry5MkqKSlRR0eHPvroIz399NN6+eWXdezYMV1//fV66aWXNHPmzIivX1ZW1q/7AwAAAABEz+/3BwUjeXl5GjRokHJycuRwOJJ8dwiXYRhqbm7WkSNHdOLEiUBAMm7cuKSW2DiMJKxF2rBhg774xS/K6/WqqKhIH3zwgU455ZSor3fs2DEVFhb2+PklS5boa1/7miSppKREu3btUnZ2dkRzRPLDVlVVpdLS0oiuDwAAAADoWUNDg2pqaiSdDEZKS0sJRSzMMAxVV1frxIkTkqThw4eroKAgrHOrq6sDCxhi9f474StH/va3v2n27Nnyer3KzMzUypUr+xWMSOo1GJGkBQsW6N1339XSpUtVW1urVatW6atf/WpEc1RVVfX6+bq6Ok2ePDmiawIAAAAAwtPQ0BB4PGjQIIIRi3M4HBo0aFAgHGloaAg7HImHhIYje/bs0WWXXaajR4/K5XLp2Wef1dSpUxMy94IFC7R06VJJJ1euRBqOsBIEAAAAAJKnc7dTh8OhnJycJN8NYqGzJMowjKDdbJMhYQU9tbW1+uIXv6ja2lo5HA49/vjjmj17dqKm14QJEwKPO5diAQAAAACsoXO7XpfLxaoRm+jaTDfZ2zEnJBypr6/XjBkztHv3bknSL3/5S916662JmDqAbZ4AAAAAAEB34h6OHD9+XJdffrm2bdsmSXrooYd0xx13xHvaEJ3zSyebsgIAAAAAAEhxDkeam5t15ZVXavPmzZKk73//+/rOd74Tzyl7tGTJksDjRPU5AQAAAAAAqS9u4Uh7e7tmz56tN998U5J055136sc//nHE11m+fLkcDoccDocWLVoU8vnKykrt2rWr12ssWbJEy5YtkyQNGzYsob1OAAAAAABAaovbbjVf+cpX9PLLL0uSpk+frnnz5unDDz/scbzH49G4ceMinue9997T/PnzNW3aNM2cOVPl5eUaPHiwvF6vduzYod///vf685//LOlk454lS5YoNzc3ui8KAAAAAADYTtzCkVWrVgUev/rqqzrrrLN6HX/aaafp008/jWoun8+n9evXa/369T2OGTx4sJYtW6arr746qjkAAAAAAIA9xS0cSZRZs2Zp2bJlevvtt/X+++/rwIEDOnz4sAzD0KBBgzRx4kRdccUVmjt3rgoKCpJ9uwAAAAAAIMU4DPa4jYnq6mqVlZVJkqqqqlRaWprkOwKQTvx+Q61en7LcLjmdjrick2rjAQBAetm5c6e8Xq/cbrfGjh2b7NtBjETzvMbj/bflV44AQDrbVtugpRW7ta5yv1o6fMrOcGlm+TDNnzJKE0q6Xy0X6TmpNh4AAACINVaOxAgrRwAk2gtbarRw5VZ5/aH/jLudDi2eM1HXnD28X+ek2ngAAJC+WDliT6wcAQBEbVttQ4+hgiR5/Ya+vXKrCrIyNKYoT5K06+AJfXvlVvnCPCcVxi9cuVVji/JZQQIAAIC4IhwBAAtaWrG7x2Ckk89v6PblmyK6bqTnxHu8129oWcUeLZ4zMexzAAAAEs2OvdPmzp2rJ598ss+dZZcvX67bb79dkrRnzx6NGDEiMTcYY4QjAGAxfr+hdZX7k30bCbO2sk4/u+Es27zQAAAA9kHvNPtwJvsGAACRafX61NLhS/ZtJExLh0+t3vT5egEAgDW8sKVGV/+qQqs21wRem7V0+LRq88njL2ypSfIdIhKsHAEAi8lyu5TpdqrN60/2rSREdoZLWW5Xsm8DAABYgN9v6Ghze9zn+fhAY1i91oryMzXulPy43svAHA8rbGOAcAQALObD2uPy99FvpNO1Z5foJ9edJUn67qoP9MKW2rDPSZXxs8qL+Q8fAACE5Whzu8778fpk34akk73WvvLbv8Z9nvf+7YsanJcZ93nsjrIaALCQrVXH9NWlf1VHGOGI2+nQv/zDaGV7XMr2uLTgH0bL3UfI0PWcVBk/b8rIXscAAAAA/UU4AgAW8f6+o/rHpX9VY6u3z7Fup0OL50wMagQ2oaRAi+dM7DGQMJ+TauMBAACAeKGsBgAs4L29RzX38Y1qbAsORs45tVCnDc7Rnz48EOiQPqu8WPOmjOw2VLjm7OEaW5SvZRV7tLayrs9zEjV+yV8+CSmx+cVNZ+vKs0r689cGAAAAhIVwBIDtRLPPfKTnJHL8+1VHddvjm3TCFIxcPHaIfnvr+crKcMl/Y/jX71yx8bMbzgrrnESM/8VN52jTniOqPd4aOO4Ns68KAABAp4E5Hr33b1+M+zz3v/A3rams63Pcl84q1g+u/lxc72Vgjieu108XhCMAbCOafeYjPSfR4zPdTvn8RkhQMHXcUC255TxlZZzcxcXpdCjHE9k/6ZGeE+/x44blB4UjOw+cCPtcAAAA6eTrj0Q0J71j2hj96W/7e/1ljtvp0L9eMsayzVKdzpNdOPz+3ndIbGpqSsTtxB09RwDYQjT7zEd6TjLGt3n9If/pTjs9OBixC/M2dx8faEzSnQAAAPQuHXqn5eeffG127NixXsd99NFHCbib+GPlCADL21bboIUrt/aY3Hv9hhau3KrSgdkaP+zkf1A79kd2TrLHd5o8YqB+c8t5ynTbKxiRpLFFeUEf7zzIyhEAAJC6Iu21ZjUjR57cMbCxsVEfffSRTj/99JAx7e3t+t///d9E31pcEI4AsLylFbv7DBW8fkPX//rtiK4b6TnxHi9Jwwdm2zIYkUJXjuw93KTWDp/tVsgAAAD7iLTXmpVMnTo18Hjx4sX67//+76DPG4ahO++8U7W1teZTLYmyGgCW5vcbWle5P9m3kTD/9+EB+W3aqHSMaeWI35B2H7JHDSsAALC3zl5rdglGJOmcc87RBRdcIEn67W9/q7lz5+q1117T5s2b9dxzz2n69On6zW9+owsvvDDJdxobrBwBYGmtXl+gP0c6aOnwqdXri7j5qhXkZro1vDBbNcdaAsd2Hmy0/JJUAAAAq3riiSc0depUHTx4UE8++aSefPLJoM9/+9vfVnl5ud5+O7LV0KmIlSMALC3L7VJ2GpVdZGe4lGXTshpJGndK8OoRmrICAAAkz/jx47V582Z9/etf12mnnSaPx6OhQ4fqiiuu0Jo1a7R48eJk32LMEI4AsDSn06GZ5cPCGjvzzGF687vT9eZ3p+uKMyM7J1XGzyovttVyTbPQHWtoygoAAJBMw4cP12OPPaZPP/1UbW1tOnjwoNatW6dZs2ZJkubOnSvDMGQYhkaMGJHcm+0HwhEAljd/yqget1Hr5HY69M3pYzW8MFvDC7P1/00fG9E5qTJ+3pSRvY6xurGmcGQnK0cAAACQAIQjACwvmn3mIz0n1cbblbmsZu+RZrWmUU8ZAAAAJIf9OvoBSEvXnD1cBdkZuv2JTUHHr55Yoq9NHd1tqBDp3vSpNt6OzDvWGIa06+AJnTl8QJLuCAAAAOnAYRiGPfeETLDq6mqVlZVJkqqqqlRaWprkOwLSz5aqY7r2v94MfJzhdOjjB2bK4ei7R4ffb0S0N32qjbeTKQ+/quqjn+1Y8+iXJ2r2OfybCgBAutu5c6e8Xq/cbrfGjh2b7NtBjETzvMbj/TdlNQBso76xLejjIfmZYQUjUuR706faeDsxN2XdSVNWAAAAxBnhCADbqD9hCkfyMpN0J+iPsSHb+RKOAAAAIL4IRwDYRmg44knSnaA/xhWZVo4cZMcaAAAAxBfhCADbqD/RHvQxK0esyVxWs+9Is1ra2bEGAAAA8UM4AsA2DplXjuQTjljRmKI8dW0VYxjSJ4corQEAAED8EI4AsI2QhqysHLGkbI9LZQNzgo59fIDSGgAAAMQP4QgA26DniH2MLaIpKwAAQDowDCPZtyCJcASAjZh7jgxl5YhljTX1HdlFU1YAANKey+WSJHm9Xvl89COzA5/PF3guO5/fZCEcAWAL7V6/jrd0BB2j54h1jWM7XwAAYJKT81nZ7bFjx5J3I4iZrs9j1+c3GQhHANjCkab2kGP0HLEu8441VUfZsQYAgHRXWFgYeHzw4EEdPHhQra2tKVOWgfAYhqHW1tbAc9hp4MCBSbwryZ3U2QEgRsz9RlxOhwqzM5J0N+iv0UNP7ljT+VrHMKRdB0+ovHRAcm8MAAAkTVZWlgYMGKDjx49Lkg4fPqzDhw/L4XAkvSQD4fP5fCGB1oABA5SZmdxfbBKOALAF8za+g3I9cjodPYxGqsv2uHTqoBztPdwcOPbxgUbCEQAA0lxxcbE8Ho8OHToUOGYYhrxebxLvCv0xdOhQDR48ONm3QTgCwB7Yxtd+xhblBYcjNGUFACDtORwODRkyRAUFBTpx4oSamprU3t4uv9+f7FtDmJxOpzwej3Jzc5WXlyePJzV2mCQcAWAL5p1q2MbX+saekq/12z+rQ91JU1YAAPB3Ho9HgwYN0qBBg5J9K7AJGrICsAVzzxG28bW+0B1rWDkCAACA+CAcAWAL5nCEbXytb2xR8I411Udb1NxOPTEAAABij3AEgC2EhCOU1VjemKI8mXvq7jpIaQ0AAABij3AEgC3UN5p7jrByxOqyMk7uWNPVx/QdAQAAQBwQjgCwhdCVI4QjdjD2lODSmp30HQEAAEAcEI4AsDyvz68jzawcsaOxRTRlBQAAQPwRjgCwvKPNHTKM4GND8uk5YgfjTCtHKKsBAABAPBCOALA8c0mNwyENyiEcsYOxpu18a461qKmNHWsAAAAQW4QjACzPHI4MzPHI7eKfNzsYPZQdawAAABB/vHsAYHls42tfWRkunTY4N+gYfUcAAAAQa4QjACyPbXztzdyUdScrRwAAABBjhCMALI9tfO0ttCkrK0cAAAAQW4QjACzvEOGIrZmbsu5kxxoAAADEGOEIAMurP2Eqq2EbX1sZWxS8cqTmWItOsGMNAAAAYohwBIDl1TeycsTORg3NDdmxZielNQAAAIghwhEAlmfuOTKUcMRWsjJcGmHasYbSGgAAAMQS4QgAS/P7DR1uYrcauwvpO3KQlSMAAACIHcIRAJZ2vKVDPr8RdIyeI/YTumMNK0cAAAAQO4QjACzNXFIjSYNyCUfsZkyReccaVo4AAAAgdghHAFiaeRvfgiy3Mt2uJN0N4sW8cqT2eKsaWzuSdDcAAACwG8IRAJYWuo0v/UbsaNTQXLlMW9bsPEhpDQAAAGKDcASApbGNb3rIdLt02uCcoGOU1gAAACBWCEcAWBrb+KaPcUU0ZQUAAEB8EI4AsDRzODIkj2asdjUuZDtfwhEAAADEBuEIAEsL6TnCyhHbGmtqykpZDQAAAGKFcASApYWsHKEhq22NNa0cqTveqgZ2rAEAAEAMEI4AsDQasqaPkUO62bGGviMAAACIAcIRAJZlGEY3ZTX0HLGrTLdLI9ixBgAAAHFAOALAshrbvGr3+YOOsXLE3sadwo41AAAAiD3CEQCWZS6pkQhH7C6kKetBVo4AAACg/whHAFiWuaQm1+NStseVpLtBIpi38/2YshoAAADEAOEIAMtip5r0Yy6rOdDQpuMt7FgDAACA/iEcAWBZIeEIJTW2N2JwrtymHWt2UVoDAACAfiIcAWBZodv4slON3XncTo0Ykht0jKasAAAA6C/CEQCWdShkG19WjqQDc9+Rj/Y3hH2u32+oud0rv9+w5HgAAADEhzvZNwAA0aKsJj0VZgevEPrd23vV0OrV/CmjNKGkoNtzttU2aGnFbq2r3K+WDp+yM1yaWT6sx3NSbTwAAADiy2EYBr+uioHq6mqVlZVJkqqqqlRaWprkOwLsb/Zjb+r9fccCH//o2jN1ywWnJe+GEHcvbKnRt57bou4WWridDi2eM1HXnD085JyFK7fK281J3Z2TauMBAAAQLB7vv1k5AsCyzCtHhtJzxNa21TZo4cqt3QYjkuT1G/rWc1t0oKFVpQNzJEnVR5v10LodYZ+TCuMXrtyqsUX5rCABAABIIMIRAJZV30jPkXSytGJ3t6stuvIb0oNrd0R03UjPifd4r9/Qsoo9WjxnYtjnAAAAoH9oyArAkprbvWrp8AUdIxyxL7/f0LrK/cm+jYRZW1lHk1YAAIAEIhwBYEnmVSOSNJiyGttq9fpCwjA7a+nwqdWbPl8vAABAshGOALCkQ6Z+I5lup/IyqRS0qyy3S9kZrrDGOiSNGpKjUUNy5Ajz+g5JIwdnp8z47AyXstzhfb0AAADoP8IRAJbU3Ta+Dke4bz1hNU6nQzPLh4U19rpzS/Xq3dP06t3TNPvc8HZ9ue7cUr32/6anzPhZ5cVyOvl+BgAASBTCEQCWFBKO5NNvxO7mTxkldx+Bgdvp0LwpI6M+J9XGAwAAIDEIRwBYkrnnCNv42t+EkgItnjOxx3DB7XRo8ZyJQVvgRnpOqo0HAABAYlCgD8CSuiurgf1dc/ZwjS3K17KKPVpbWaeWDp+yM1yaVV6seVNGdhsqRHpOosb/cPXf9M7uI4HjORku/eHrXyAYAQAASAKHYRjsFRgD1dXVKisrkyRVVVWptLQ0yXcE2NvXf/+e1n342dau35g2RndffnoS7wiJ5vcbavX6lOV2hd2fI9Jz4jl+a9UxXfNfbwY+djkd+uhHV8jtYlEnAABAb+Lx/ptXYAAsKXTlCGU16cbpdCjH446ocWmk58Rz/PCB2UEf+/yGDjS29TAaAAAA8UQ4AsCS6k8E9xyhISusZnCuR1kZwf8N1xxtSdLdAAAApDfCEQCWVN9IzxFYm8Ph0PDC4NUjNceak3Q3AAAA6Y1wBIDltHb41NjmDTpGOAIrGj4wJ+jj6iOsHAEAAEgGwhEAlnO4qT3k2FDCEVhQ6MoRwhEAAIBkIBwBYDnmkpoMl0MF2exMDuspHUg4AgAAkAoIRwBYjnmnmsG5mXI4wt+xBEgVIStHaMgKAACQFIQjACwnZBvffLbxhTV1t3LEMIwk3Q0AAED6IhwBYDkh2/jSbwQWNdwUjrR5/SHf3wAAAIg/whEAlnOIbXxhE0X5WXI7g0vCqo+ynS8AAECiEY4AsJyQshrCEViUy+lQcWFW0DGasgIAACQe4QgAywkNR+g5AuuiKSsAAEDyEY4AsBxzT4ah+awcgXUNL8wJ+piVIwAAAIlHOALAciirgZ2E7FjDyhEAAICEIxwBYCkdPr+ONXcEHSMcgZWZd6xh5QgAAEDiEY4AsJQjTaHbnNJzBFZWauo5Un20RYZhJOluAAAA0hPhCABLMW/j63RIhTmEI7Au88qRE21eNbR4k3Q3AAAA6YlwBIClmPuNDMrNlMvpSNLdAP1XPCBbDtO3cPWx5uTcDAAAQJoiHAFgKeadaiipgdV53E4VmXZcoikrAABAYhGOALAU88oRtvGFHZQOZDtfAACAZCIcAWAp9Y1s4wv7GV7Idr4AAADJRDgCwFLMK0coq4EdmJuyVhOOAAAAJBThCABLCe05wsoRWF/IyhHKagAAABKKcASApYSuHCEcgfWZV44QjgAAACQW4QgASwkJR2jIChsoNa0cOdLUruZ2b5LuBgAAIP0QjgCwDJ/f0JEmtvKF/ZhXjkhSLatHAAAAEoZwBIBlHG1ul98IPjaUshrYQI7HrUG5wUEfTVkBAAASh3AEgGWYS2okaWAuK0dgD+amrIQjAAAAiUM4AsAy6huDS2oG5mQow8U/Y7AHdqwBAABIHt5VALAMdqqBnYXsWMPKEQAAgIQhHAFgGYQjsDNWjgAAACRPXMORzZs368EHH9TMmTNVVlamzMxM5eXlady4cZo7d67eeOONmM+5YsUKXX755SouLlZWVpZGjBihW265Re+8807M5wKQWIfYxhc2VsrKEQAAgKRxx+vCU6dO1V/+8peQ4+3t7dq5c6d27typJ598UrfccouWLl0qj6d/TRVbW1t14403avXq1UHH9+7dq7179+qZZ57RokWLdN999/VrHgDJY+45wja+sBNzWc2Bxla1e/3yuFnkCQAAEG9xe8VVU1MjSSopKdGdd96pP/zhD9q4caPefvtt/fznP9fw4cMlSU899ZTmzp3b7/nmzZsXCEamTZum559/Xhs3btSyZcs0evRo+f1+3X///Vq6dGm/5wKQHJTVwM5KC3OCPjYMaf/x1iTdDQAAQHqJ28qR8ePH68EHH9T1118vl8sV9LkLLrhAt9xyiy666CJ9/PHHevbZZ/X1r39dF198cVRzbdiwQc8884wk6aqrrtIf//jHwJyTJk3S1VdfrfPOO0/79u3TPffcoxtuuEGFhYX9+voAJJ45HBlKOAIbKch2Ky/TrRNt3sCx6qPNOnVwTi9nAQAAIBbitnJk9erVmjNnTkgw0mnIkCFavHhx4OM//OEPUc/105/+VJLkcrn02GOPhcw5ZMgQPfzww5Kko0ePatmyZVHPBSB5QlaO5FNWA/twOBwhTVmracoKAACQEEktZL7kkksCjz/55JOornHixAm98sorkqQZM2aotLS023HXXXedCgoKJEmrVq2Kai4AyeP3Gzp8wtxzhJUjsBe28wUAAEiOpIYj7e2fvdFxOqO7lY0bN6qt7eRvk6dOndrjOI/HowsuuCBwTkdHR1TzAUiOhtYOef1G0DHCEdhNyI41rBwBAABIiKSGIxs2bAg8Hj9+fFTX2L59e9jX6Py81+vVzp07o5oPQHKYS2okaVAuZTWwF3NZDStHAAAAEiNuDVn74vf79dBDDwU+njNnTlTXqaqqCjzuqaSmU1lZWdB5EyZMCHue6urqXj9fV1cX9rUARO6QaRvf/Cy3sjK672kEWFVIWQ0rRwAAABIiaeHIo48+qo0bN0qSZs+erfPPPz+q6zQ2NgYe5+Xl9To2Nzc38PjEiRMRzdM1WAGQeOxUg3RgXjlSe6xFPr8hl9ORpDsCAABID0kpq9mwYYO++93vSpKKior061//Ouprtba2Bh57PL0vsc/M/OzNVEsLv40DrCRkpxrCEdiQeeWI12/oYGNrD6MBAAAQKwlfOfK3v/1Ns2fPltfrVWZmplauXKlTTjkl6utlZWUFHndt8NqdzsatkpSdnd3LyFBdy3e6U1dXp8mTJ0d0TQDhYxtfpIMhuZnyuJ1q9/oDx2qOtqh4QGT/ZwEAACAyCQ1H9uzZo8suu0xHjx6Vy+XSs88+2+sOM+HIz88PPO6rVKapqSnwuK8SHLO++pkAiK/6Rrbxhf05nQ4NL8zWnvrP/r+qOdai6ApPAQAAEK6EldXU1tbqi1/8ompra+VwOPT4449r9uzZ/b5u19Cir6apXVd/0EMEsBbKapAuzNv5VrNjDQAAQNwlJBypr6/XjBkztHv3bknSL3/5S916660xuXbXHWd27NjR69jOz7vdbo0ZMyYm8wNIDMIRpIuQ7XzZsQYAACDu4h6OHD9+XJdffrm2bdsmSXrooYd0xx13xOz6kyZNCjRi3bBhQ4/j2tvb9c4774ScA8Aa6k+Yy2r4GYY9mcMRVo4AAADEX1zDkebmZl155ZXavHmzJOn73/++vvOd78R0jvz8fF166aWSpPXr1/dYWrNq1So1NDRIUkzKeQAkjmEYOhTSkJWVI7An8441NUebk3QnAAAA6SNu4Uh7e7tmz56tN998U5J055136sc//nHE11m+fLkcDoccDocWLVrU7Zi7775bkuT1enXHHXfI5/MFfb6+vj4QyhQWFmr+/PkR3weA5DnR5g3avUOShlJWA5vqrqzGMIwk3Q0AAEB6iNtuNV/5ylf08ssvS5KmT5+uefPm6cMPP+xxvMfj0bhx46Kaa/r06brpppu0YsUKvfjii5oxY4buuusulZSUqLKyUg888ID27dsn6WRZz8CBA6OaB0BymEtqJGkwZTWwKfPKkdYOv440tWswgSAAAEDcxC0cWbVqVeDxq6++qrPOOqvX8aeddpo+/fTTqOd7/PHH1dDQoLVr1+q1117Ta6+9FvR5p9Op++67TwsWLIh6DgDJYW7GmuNxKceT0J3IgYQZVpAll9Mhn/+z1SI1x1oIRwAAAOIoYVv5xlt2drbWrFmjp59+WjNmzFBRUZE8Ho/Kysp08803q6KioseyHACprb6RnWqQPtwup4YVZAUdq6EpKwAAQFzF7VevsaqPnjt3rubOnRv2+Jtvvlk333xzTOYGkBpCt/GlpAb2NnxgdtAWvuxYAwAAEF+2WTkCwL4OhWzjy8oR2FtpN01ZAQAAED+EIwBSXsjKEbbxhc2Zm7KycgQAACC+CEcApDx6jiDddLedLwAAAOKHcARAyjOvHBlKzxHYXOnAnKCPa442J+lOAAAA0gPhCICUV0/PEaQZc1lNQ6tXDa0dSbobAAAA+yMcAZDy6DmCdFM8ICvkGNv5AgAAxA/hCICU1tzuVXO7L+gYK0dgd1kZLg01hYCEIwAAAPFDOAIgpR02ldRI0mB6jiAN0JQVAAAgcQhHAKS0Q6aSGo/bqfxMd5LuBkgcc98RwhEAAID4IRwB0oDfb6i53Su/37DcePM2vkPzMuVwOMKaB7CyUnM4QlkNAABA3PDrV8DGttU2aGnFbq2r3K+WDp+yM1yaWT5M86eM0oSSAkuM//XrnwQda273alttQ7fjATspNZXVVLNyBAAAIG4chmGE96te9Kq6ulplZWWSpKqqKpWWlib5jpDuXthSo4Urt8rbzeoMt9OhxXMm6pqzh9tmPGA3r+44oH9a/m7g4yF5Hr37bzOSeEcAAACpIR7vvymrAWxoW21Dj8GCJHn9hhau3KpttQ22GA/Y0fDCnKCP60+0q7XD18NoAAAA9AdlNYANLa3Y3WOw0MnrN3T9r99UYY5Hx5rbLTl+WcUeLZ4zsddxgFWZG7JKJ5uyjh6al4S7AQAAsDdWjgA24/cbWle5P6yxLR1+1R1vVUuH35Lj11bWhd0EFrCavEy3BmRnBB2jKSsAAEB8EI4ANtPq9aklTZbet3T41OpNj68V6SlkxxqasgIAAMQF4QhgM1lul7IzXMm+jYTIznApy50eXyvS0/BCtvMFAABIBMIRwGacTodmlg8La+yUMUP05D9N1kVjBlty/KzyYjmdjrDGAlZk7jtSfbQ5SXcCAABgb4QjgA3NnzJK7j5CA7fToXtnnaGp44bq+7MmWHL8vCkjex0DWF3IyhHKagAAAOKCcASwoQklBb3u4uJ2OrR4zkRNKCkIGt9TIJHq4wG7Cuk5QlkNAABAXLCVL2BT15w9XD9/+WPtPfLZMnyPy6mrJpZo3pSRIcHCNWcP19iifC2r2KO1lXVq6fApO8OlWeXFlhgP2NHwwpygj/c3tKrD51eGi99tAAAAxJLDMAz2wYyB6upqlZWVSZKqqqpUWlqa5DsCpCkPv6rqLr9pXnLLebr8c333I/H7DbV6fcpyu8Lq6ZFq4wG7ONrUrnN+9OegY2/cM01lg3J6OAMAAMD+4vH+m189ATbW1OYN+jg/K7zFYk6nQzked9hBRKqNB+yiMCdDOZ7gHZnoOwIAABB7hCOAjTW1+4I+zvVQSQdYicPhCGnKWk3fEQAAgJgjHAFsqsPnV7vXH3QsN5NwBLAa83a+NGUFAACIPcIRwKbMJTWSlEc4AlhO6Ha+zT2MBAAAQLQIRwCbMpfUSFJOpqubkQBSWcjKEXqOAAAAxBzhCGBT3a0coecIYD2lA4N3pqGsBgAAIPYIRwCbMocjWRlOudjtBbAcc1lN7bFW+f1Gku4GAADAnghHAJtqagsuq6HfCGBNpaaymnafX/Un2pJ0NwAAAPZEOALYVFN78MqRHEpqAEsampcpjyv4v+sqSmsAAABiinAEsClzWQ3b+ALW5HQ6VFyYFXSMpqwAAACxRTgC2JQ5HMljpxrAskK282XlCAAAQEwRjgA2Zd7Kl7IawLrMfUdqjjUn6U4AAADsiXAEsKnQlSOEI4BVDS8M3s63+kh44Yjfb6i53RvR7jaRnhPv8QAAAInAuyXApsy71eR4KKsBrMph2oV7w8f1+vbKLZo/ZZQmlBSEjN9W26ClFbu1rnK/Wjp8ys5waWb5sB7HR3NOvMcDAAAkEitHAJuiIStgDy9sqdEv1u8MOmZIWrW5Rlf/qkIvbKkJGX/1ryq0anONWjpOhqQtHb4ex0dzTrzHAwAAJBrvlgCbMm/lS1kNYD3bahu0cOVW+YzuS1C8fkPfXrlVhiGNHJKrPfVNWvg/W+XroWTFPF5SxOfEY/zClVs1tiifFSQAACBpeLcE2JR55UgOu9UAlrO0Yre8ffTm8PkN3fXclrCvGen4RMzh9RtaVrFHi+dMjOi+AAAAYoWyGsCmzD1HWDkCWIvfb2hd5f5k30bCrK2so0krAABIGsIRwKbMZTVs5QtYS6vXF+jPkQ5aOnxq9abP1wsAAFIL4QhgU6Fb+VJWA1hJltul7Izwf24j3ZAq0+1QptvR98B+zBHJ+OwMl7Lc/DsFAACSg3AEsKmmdvNWvqwcAazE6XRoZvmwsMZef26pPn7gSl137vCwx3/041n66MezIjon0jkiGT+rvFhOZ2RhDQAAQKwQjgA2xVa+gPXNnzJK7j4CA7fToXlTRkY1PhFzRHNPAAAAiUY4AtiQ32+ouZ2GrIDVTSgp0OI5E3sMF9xOhxbPmRjYAjfS8YmYI5p7AgAASDTeLQE21NxNE8ecSJsFAEgJ15w9XGOL8rWsYo/WVtappcOn7AyXZpUXa96UkSGhQqTjEzFH5/iH/m+7/vJxfeC40yE9f8dFOnP4gBj+jQEAksnvN9Tq9SnL7QqrXDLVxkd7DqzPYRgG++bFQHV1tcrKyiRJVVVVKi0tTfIdIZ0daGjV5x98JejY+/fN0MBcT5LuCEAspOILwkjGH2xs1eQHgv9teuOeaSoblBPWvQEAUte22gYtrditdZX7A6H5zPJhmj9lVLfBfKqNj/YcJEc83n8TjsQI4QhSye5DJzR98YagYx/9+AplshMEgCQyDENn/eBlNbZ+1hNp+e2TdMnpRUm8KwBAf72wpUYLV26V1x/61rKzfPKas4en7Phoz0HyxOP9Nz1HABtqagsuq8lwOQhGACSdw+HQqKF5Qcd2H2pK0t0AAGJhW21Dj6GCJHn9hhau3KpttQ0pOT7ac2A/9BwBbKipPXinGrbxBZAqRg/J1daqY4GPd9efSN7NAAD6bWnF7h5DhU5ev6EFT72rc08bqM17j6bUeElhn7OsYo8Wz5nY6zhYF++YABsyb+PLTjUAUsWooblBH7NyBACsy+83tK5yf1hjq462qOpoS9jXTrXxkrS2sk4/u+GskB5bqdZUNhE9yuyId0yADTWZtvHNzaSkBkBqoKwGAOyj1etTSze7JNpVS4dPx1raNSg3U1LqNZVNRNNaOyMcAWzIvHKEshoAqcK8cmR/Q6tOtHlZ4QYAFvTytgPJvoWEm/bI65pzfpmGFWTpJ+t2BJXjtHT4tGpzjV7cUhtWk1grjU8HNGQFbIiyGgCpasTgXDlMK3b3sHoEACzlRJtXC1du1V0rtoR9zvhh+bpj2midPiyv78EJHB/JOZJ0vMWr376xRz9asz1lmsomomltOuAdE2BD5t1qcjyU1QBIDVkZLg0vzFZ1lzrv3fUnVF46IIl3BQDxkWq9IqLpLWE+5/19R3XXc1u093BzWOdLJ7fC/fmcszWhpEBXlpfo6l9V9NoANZHjJYV1TqS8fkNf+/17Ov+0gXp375GwGr6m2vh0a0BLOALYkHm3GlaOAEglo4bmBYUjn7ByBIDNpFqviGh6S3R3zsghudqxv0Hdva92SOru7bbb6dDiORMD80woKdDiORN7XLmQ6PHhnON0SGNPyddH+xu7+6vq0b4jzdp3JPwQKdXG99SA1q54xwTYUEjPERqyAkgho4bk6i8fHwp8vPsQ2/kCsI9U6xURTW+Jns7ZVhdaZpGX6daPrz1T407J17KKPVpbWRcIU2aVF2velJEhAcw1Zw/X2KLUGR/uOXvqm7T8zT168u29IefbUUuHT61eX9r0L3QYhhG7tUNprLq6WmVlZZKkqqoqlZaWJvmOkM7uWvG+nt9SG/h4wdRR+t7MM5J4RwDwmafe/lT3vfC3wMcTigu09s6Lk3hHABAb22obwirpePEbUzShpCDlxof7NXQ699RC/eKmc1Q2KCdwLNVKg2JRSmT+3Of+/U9psUtPdoZLf/vB5Sm5ciQe77/TIwIC0ox5K9+8NEl7AViDeTvfPfVN8vuNlHzxBQCRWFqxO6xeDtf8qkLZHpda2n0pNV5SWOdI0hnF+Vq54EK5XcF7fDidjohWGqTa+L7OcTodmlk+TKs21/R5nXGn5Gv6+CK9uuOAPj7Q9yrJVBs/q7w4rf5vZrcawIZCy2oIRwCkjtGmcKSlw6f9Da1JuhsAiA2/39C6yv1hje3wG2po9aojzAagiRofyTmf1jfLad5+LE3MnzJK7j5CA7fTof/48tn67szx+o8vn2PJ8fOmjOx1jN0QjgA2FLqVLz1HAKSOUwoylWvaRWs3TVkBWFyr15cWpRadOvtRpKPOBq49BQw9NYm16vh0wa+TARsyl9WkSxMlANbgcDg0cmiuPqz5rLHf7voTmjJ2SBLvCgD6J8vtUnaGK20CkuwMl7Lc6fsLuFRrKpuIprV2R0PWGKEhK1LJhT95RXXHP1ui/sTcSZo2viiJdwQAwf6/Z9/Xi1s/axw99wsjtOjqzyXxjgCg/769cktYvSimjhuqb0wfo1+9uksbuuzelezxksI+5/pzS7V4zsQ+x6WDVGsqm4imtckWj/fflNUANhTSc8STvqk+gNQ0amhu0MefsJ0vABu46qySPse4nQ5954rxmjRikL5zxfiwej8kanwk56RbP4redDZwDTdYsPp4uyIcAWzGMIyQsppcGrICSDHmHWvoOQLADv68/UCvn7dCbwn6USBd8Y4JsJk2r18+U5fxPMIRAClm1JDglSO1x1vU2uFTVgYr3QBYU+2xFv3Pu1VBx9xOh7x+w3K9JehHgXREz5EYoecIUsXhE20678frg45t/P6lKsrPStIdAUCo5navJtz/p6Bj6+68WGcU84IbgDXd/8KH+t3bewMfe9xObfh/l2hAdkbK9IqIpreEFftRwP7oOQKgT01toR3SWTkCINXkeNwqHhAc2tJ3BIBVHWho1YpNwatGvjKpTMUDslOqV0Q0vSXoR4F0QTgC2ExTe3AzVofj5FZrAJBqzE1Z6TsCwKqWbNitdq8/8HGGy6EFU0cn8Y4ARIpwBLAZ8041uR63HA6SfgCpZ9QQc1NWVo4AsJ6Dja16+q97g47deH6ZSgqzk3RHAKJBOALYTOhONawaAZCaRptXjtSzcgSA9Sx9Y4/auqwacTsd+jqrRgDLIRwBbKa7lSMAkIq6286XPvEArOTwiTY99XbwqpHrzy1V2aCcJN0RgGgRjgA2ExKO0IwVQIoy9xw50ebVoca2JN0NAERuWcUetXR8tmrX5XToX6exagSwIsIRwGbM4UiOh7IaAKmpZEC2sjKCX4p8QlNWABZxrLldT771adCxa84u0WmDc7s/AUBKIxwBbMbcc4RtfAGkKqfToRGDzX1HaMoKwBoer9gT9LrL6ZDumDYmiXcEoD8IRwCbCVk5QjgCIIWN7qbvCACkuuMtHXrizU+Djl01sSTk3zQA1kE4AtiMORzJY7caACnM3HeE7XwBWMGTb32qxi6vuRwO6RusGgEsjXAEsJmQrXzZrQZACgsJR9jOF0CKa2zt0LKKPUHHZp1ZrLGn5CfpjgDEAuEIYDOU1QCwklFDgpegVx1pVpvX18NoAEi+3729V8dbOoKOfWM6q0YAqyMcAWwmtCErZTUAUpd55YjfkPYdbk7S3QCIJ7/fUHO7V36/YcnxktTY0qHf/uWToGOXf+4UnVFcEPY1AKQmfqUM2EzoVr78mANIXflZGRqan6lDjW2BY58cOsHydMBGttU2aGnFbq2r3K+WDp+yM1yaWT5M86eM0oSS0FAh1cZ3PeelrbXq8AWHKd+cPjbKvxkAqYR3TYDNhDZk5cccQGobNSTXFI7QdwSwixe21Gjhyq3ydlmd0dLh06rNNXpxS60Wz5moa84enrLjezqnk0MnA90zhw+I7i8IQMrgXRNgM03t5pUjlNUASG2ji/L01z1HAh+znS9gD9tqG3oMFSTJ6zf07ZVbVZCdobFFedp58IS+vXKrfCkyXlKf5xiSFq7cqrFF+T2uOgFgDYQjgM00tZl7jvBjDiC1jRpi3rGG7XwBO1hasbvHYKSTz2/o9ic2hX3NVBsvnQxVllXs0eI5EyM6D0BqoSErYDPmsppcwhEAKW700OAda3YfapJhhN8gEUDq8fsNravcn+zbSJi1lXURNXYFkHoIRwAb8fr8avP6g47lslsNgBRn3rHmeEuHjjS1J+luAMRCq9enlo702Za7pcOnVrYhByyNcASwEfM2vhIrRwCkvtKBOfK4gl+S7K6n7whgZVlul7Iz0ucXNNkZLmW50+frBeyIcASwEXNJjcRWvgBSn8vp0GmDc4KO7T5E3xHAypxOh2aWDwtr7DVnl+hvP7hcV08sSanxkZwzq7xYTqcjrLEAUhPhCGAj3YUjuexWA8ACzKU17FgDWN/8KaPUV17gdjq04B9GKzfTra9NHS13Hyckcnwk58ybMrLXMQBSH+EIYCPmsppMt1NuFz/mAFLfKFNT1k8IRwDLO6M4X4PzMnv8vNvp0OI5EwNb4E4oKdDiORN7DCMSPT7acwBYE+vtARsxrxxhG18AVsF2voD9fFjToEONbSHHszNcmlVerHlTRoaECtecPVxji/K1rGKP1lbWqaXDl9Tx0Z4DwHocBnvlxUR1dbXKysokSVVVVSotLU3yHSEdvfy3/fqXp94LfHzqoBz95Z5pSbwjAAjPe3uP6vpfvxX42O10aPuPrlAGq98Ay3pgzTb99o09gY9LB2bpT3f9g7Iz3GH15/D7DbV6fcpyu1JifLTnAIi9eLz/5hUHYCNN7cErR3LoNwLAIkabeo54/YaqjjQn6W4A9Jffb2j1B3VBx66eOFy5mRlhhwpOp0M5nvCClESMj/YcANZAOALYSFNbcM8RymoAWEVhjkeDcz1Bx2jKCljXu3uPqu54a9Cxq88Ob+cXAEgGwhHARsw9R3IIRwBYiHnHmk/YzhewrBe31gR9PO6UPI0fRm8OAKmLcASwkdCGrJTVALCOUUOCd6xh5QhgTR0+v9ZW7g86dvVEVo0ASG2EI4CNmLfyzfGwcgSAdZhXjrBjDWBNb31yWEea2oOOfekswhEAqY1wBLARtvIFYGWjhrJyBLCDF7fUBn08sXSARpi26waAVEM4AtiIeeVILmU1ACzEvHLkcFO7jjd3JOluAESjtcOnl/8WXFJzFSU1ACyAcASwkZCGrJTVALCQUwflyG3aHvMTSmsAS3n9o4Nq7PJ6xOGgpAaANRCOADZCWQ0AK8twOXXqoJygY5TWANby0ta6oI8njxikYQOyknQ3ABA+whHARprazStHKKsBYC0hTVnZzhewjBNtXq3ffiDo2NVns2oEgDUQjgA20tQW3HOElSMArIamrIB1/XnbfrV5/YGP3U6HZp1ZnMQ7AoDwEY4ANhLSc4RwBIDFjBrCdr6AVZl3qbl47BANzPUk6W4AIDKEI4CNhPYcoawGgLWYV458erhZPr+RpLsBEK6jTe16Y2d90DF2qQFgJYQjgE34/YaaO8xb+bJyBIC1jDb1HGn3+lVztCVJdwMgXOs+3C9vlyAz0+3UZZ8blsQ7AoDIEI4ANtHS4ZNh+uVqLlv5ArCYQbkeDcjOCDrGdr5A6ntxa03Qx5eeUUTvMwCWQjgC2IR5pxqJlSMArMfhcHSzYw1NWYFUtv94q/6650jQsaspqQFgMYQjgE2Yd6qR2MoXgDWNGhLcd+QTtvMFUtqayrqg1at5mW5dcnpR8m4IAKJAOALYhLkZq9vpUKabH3EA1hO6coRwBEhlL24N3qXmss+doqwMfkEDwFp45wTYhDkcyc10y+FwJOluACB65qaslNUAqWvv4SZtrToWdIySGgBWRDgC2IS550guJTUALMq8ne/BxjY1tnYk6W4A9OYl06qRQbkeXTRmSJLuBgCiRzgC2IS55wjNWAFY1WmDc+Q0LXzbU8/qESAVvbS1LujjWeXDlOHiLQYA6+FfLsAmzGU1OYQjACwq0+1S6cCcoGOU1gCp56P9jfroQGPQsavOoqQGgDURjgA20dQevHIkL5OyGgDWZW7K+snBxh5GBvP7DTW3e+X3G30PjvKceI9HekjF77tIz3lhS3XQx8UDsjRpxKCw5wOAVMKvlgGbCFk54uHHG4B1DcjOCPr4sdd3q+Z4q+ZPGaUJJQUh47fVNmhpxW6tq9yvlg6fsjNcmlk+rMfx0ZwT7/FID6n4fRfVHG/s1h/frwk6fuGoQXKaa+IAwCIchmHE7dcYBw8e1MaNG7Vx40Zt2rRJmzZt0uHDhyVJt912m5YvXx6TeRYtWqQf/OAHYY197bXXdMkll8Rk3q6qq6tVVlYmSaqqqlJpaWnM5wB685O127XkL7sDH88+Z7ge/fLZybshAIjSC1tq9K3ntqi7X167nQ4tnjNR15w9PGj8wpVb5e3mhO7GR3NOvMcjPaTi910s53A5Hfo539sAEiAe77/j+qvlU045JZ6XB9BFyG41lNUAsKBttQ1auHJrt8GIJHn9hr713BbtqW9SSWG2ao+16D9f2Rn2eEkRnxOP8QtXbtXYonxWkKSRzu/t7kIFKfT7It7j43FPPr63AVhYwtbdl5WV6YwzztDLL78c13kqKyt7/fzIkSPjOj+QLCG71VBWA8CCllbs7vGNVye/If3H+p1hXzPS8YmYw+s3tKxijxbPmRjRfcG6wvne9voNfemXb8jtdMrr9/cYsMVi/MmP4zMH39sArCiu757uv/9+TZo0SZMmTdIpp5yiTz/9NO7hxJlnnhnX6wOpytxzhK18AViN329oXeX+ZN9GwqytrNPPbjiLHg1pIJLvbb8htfv84V87zuOjOYfvbQBWFNd3T+H2AQHQf+aymhwPZTUArKXV61NLh6/vgTbR0uFTq9dHA+00wPc2AKQ+tvIFbMJcVpPHyhEAFpPldik7I7xg1+mQykvyFe4vpp0O6azhBTpreEFE50Q6RyTjszNcynITZKeDSL637YDvbQBWRDgC2ETIVr6EIwAsxul0aGb5sLDGzj6nVC/9f/+ga88Jb1eM2eeU6sVvXqwXv3lxROdEOkck42eVF1N2kCYi+d6+dHyRVn9ziqaPL4rr+HjOwfc2ACuyXTgyY8YMDR48WB6PR0VFRbrkkkv00EMP6ejRo/26bnV1da9/6urqYvQVANExhyN57FYDwILmTxkldx9vqtxOh+ZNGRnV+ETMEc09wf7mTxklRx95gdvp0MLLTteZwwfo7stOD+v7KNrx8ZyD720AVmS7cGT9+vU6cuSIOjo6dOjQIW3YsEHf+973NGrUKL3wwgtRX7esrKzXP5MnT47hVwFErqmd3WoAWN+EkgItnjOxxzdgbqdDi+dMDGwTGun4RMzR13iHFHJPsL9TB+coo5dgId7fd8n4WQAAK7HNu6fy8nJde+21mjx5skpKStTR0aGPPvpITz/9tF5++WUdO3ZM119/vV566SXNnDkz2bcLxJRhGOxWA8A2rjl7uMYW5WtZxR6traxTS4dP2RkuzSov1rwpI0PeeEU6PhFzdB3/0tbakJ0+vjB6SIz+tmAVL26pVbsvdB/ceH3fpcrPAgBYhcMwjD52K4+drlv53nbbbVq+fHlMrnvs2DEVFhb2+PklS5boa1/7miSppKREu3btUnZ2dkRzVFdX9/r5urq6wOqRqqoqlZaWRnR9oD/avD6d/m//F3Tstbsv0cghuUm6IwCIDb/fUKvXpyy3K6weBpGOT8QczW1enffjP6ul47OA5EfXnqlbLjgtrPuDPVz1ywpV1hwPfHzp+CL98uZz4vZ9l4o/CwAQK9XV1SorK5MUu/fftiir6S0YkaQFCxZo/vz5kqTa2lqtWrUq4jlKS0t7/VNcXBzNrQMxYd6pRpJy2coXgA04nQ7leNxhv/GKdHwi5sjJdGvGhOBmnGs+qA37/mB9ldXHg4IRSfrHC06L6/ddKv4sAEAqs0U4Eo4FCxYEHm/YsCGJdwLEnrmkRqKsBgBSyazy4F+i/HXPER1sbE3S3SDRntm4L+jjkgFZ+odxQ5N0NwCA7qRNODJhwoTA45qamiTeCRB7Te2h4Uh2BitHACBVXHL60KAVfYYh/enD/Um8IyTKiTavXtwS/Nrzy5NOlYvVFgCQUtImHElgaxUg4UKasXqo/QWAVJKV4dIXJ5wSdGz1B3VJuhsk0ktba4N2lHM6pDmT6E0HAKkmbcKRbdu2BR6XlJQk8U6A2DP3HKGkBgBSj7m0ZuOnR3SwgdIau3vWVFIzfXyRigdEtjEAACD+0iYcWbJkSeDx1KlTk3gnQOyxjS8ApL6p40JLa/7vb5TW2NmHNcf1QXVwI9abP39qku4GANCblA9Hli9fLofDIYfDoUWLFoV8vrKyUrt27er1GkuWLNGyZcskScOGDdPs2bPjcatA0nRdritJuZn0GwGAVJOV4dIMSmvSirkRa/GALE0dV5SkuwEA9Cauv16uqKgICi7q6+sDj3ft2qXly5cHjZ87d27Ec7z33nuaP3++pk2bppkzZ6q8vFyDBw+W1+vVjh079Pvf/15//vOfJUkul0tLlixRbm5uVF8PkKrMK0dyPKwcAYBUNKu8WM9v+Wwb301/L60pKshK4l0hHpravHrhfXMj1jIasQJAiorrO6ilS5fqySef7PZzb775pt58882gY9GEI5Lk8/m0fv16rV+/vscxgwcP1rJly3T11VdHNQeQysy71eRRVgMAKekfxg1VXqZbJ/4eahuGtO7D/brtCyOSe2OIuW4bsZ5flsQ7AgD0xvLvoGbNmqVly5bp7bff1vvvv68DBw7o8OHDMgxDgwYN0sSJE3XFFVdo7ty5KigoSPbtAnERunKEshoASEWdpTV/7LKiYM0HdYQjNmQuqZl2epFKCmnECgCpKq7hyPLly0NKZyI1d+7cXleUFBUV6Z/+6Z/0T//0T/2aB7Ay8241rBwBgNQ1q7w4KBzZtPeIDjS06hRKa2yDRqwAYD0p35AVQN/YrQYArOPisUOU3+XfacOQ1lXSmNVOzNv3nmzEOjRJdwMACAfhCGAD5p4juZTVAEDK6m7XmjWEI7bR1ObVC12a7kone424XbzsBoBUxr/SgA2Yy2pYOQIAqW1WeXHQx5s+Par9x1uTdDeIpdUf1AYa7kp/b8Q6iUasAJDqCEcAGwhpyEo4AgAp7eJxwaU1krTuQ1aP2MEzfw0uqbnk9CINpxErAKQ8whHABrpuFShJeZmU1QBAKst0uzTjc6bSmg8IR6zuw5rj2mpuxDqZRqwAYAWEI4ANhDRk9bByBABS3ZWm0pp39x5V3fGWJN0NYmHFpuBVI8MKsnTJ6TRiBQArIBwBbIDdagDAeqaMHaL8LFNpTeX+JN0N+qu53avn3zc1Yp1EI1YAsAr+tQZsIGS3GsIRAEh5mW6XLpswLOhYuu5a4/cbam73yu83UmJ8NOe8uCW0EeuXacQKAJbBOyjA4rw+v1o7/EHH2MoXAKzhyrOG6X83Vwc+fm/vUdUea1FJmjTw3FbboKUVu7Wucr9aOnzKznBpZvkwzZ8yShNKChI+vj9zPP9+TdDx804bSCNWALAQVo4AFtfc4Qs5xsoRALCGKWOGhpbWfJgepTUvbKnR1b+q0KrNNWr5+/9lLR0+rdp88vgLW2oSOr6/c5gXmGzee6zbOQAAqYl3UIDFmfuNSDRkBQCr8Liduvxzw/SH9z5bPbLmg1rNmzIyiXcVf9tqG7Rw5VZ5eyhZ8foNfeu5Lfqw5rhOKcjSgYZWLavYExJAxGq8pJjP4TMMLVy5VWOL8ntcpQIASB28gwIsrqmtu5UjlNUAgFVcWV4cFI5s3nfM9qU1Syt29xiMdPIb0m/f2BP2NeM9PppzvH5Dyyr2aPGciRHNAwBIPMpqAIszrxzJdDvpjA8AFnLRmCEqMJXWPP9+TUo1G43l+J0HG/XCltpuzrKntZV1ET03AIDkYOUIYHFs4wsA1tZZWvM/XVaP/PRPH+mXr+5KmWaj/R0/b8pINbZ69du/7NYrOw7242/Lelo6fGr1+pRDySsApDT+lQYsrqk9uKyGkhoAsJ5BeZ6QY52NQF/cUqvFcybqmrOHBz73wpaakJ4dvY2P5pxYjl+1ObrGpE6H9IXRg/XWJ4d77O3R3/EXjRkiSXpzV31c5sjOcCnLzf/NAJDqWHsPWFzIyhF+MwUAlrKttkHLeulj4fWfbOy5rbYhML6vZqZdx0dzTqzHR2v2OaX6/fwLdO05w/seHOX4p+Z9Xk/N+3zc5phVXiyn0xHWWABA8vAuCrC4pnbKagDAysJpTur1G/rSL9+Qx+1Uu9ff54qFruMlRXxOPMZ3lZfpPtmTpJdz3E5HYNee+VNG6cUttb3+PfVnfKLmAACkLlaOABZnXjmS42HpLgBYhd9vaF3l/vDGGlJrR/ghROf4aM6J13iHpH+/aoL+eu+levTLZ8vdw4oKt9OhxXMmBvqaTCgp0OI5E+M2PlFzAABSF79iBizOvJVvHitHAMAyWr0+tXSEbsluV4akL08qU47HrWvOHq6xRflaVrFHayvrAg1cZ5UXa96UkSGhQrzHJ2oOAEBqchiGwd5iMVBdXa2ysjJJUlVVlUpLS5N8R0gXP169TUsrPqtVv+G8Uj1y48Qk3hEAIFx+v6HP/fuf0iYgyc5w6W8/uDykB4ffb6jV61OW2xVWf454j0/UHACA6MTj/TdlNYDFhfQcoawGACzD6XRoZvmwsMZOH1+kF+64SNNOHxrR+GjOidf4npqTOp0O5XjcYYcK8R6fqDkAAKmDcASwOHNZDQ1ZAcBa5k8Z1WPfik5up0N3X3a6JpYV6v9dPj6i8dGcE6/xNCcFAKQqwhHA4kK28iUcAQBLsUOzUZqTAgCsjndRgMVRVgMA1meHZqM0JwUAWBkNWWOEhqxIlqt+WaHKmuOBj396w1mac35ZEu8IANAfdmg2SnNSAEA8xeP9NytHAIszrxxhK18AsLbOxp7xGp+IOaK5JwAAkomeI4DF0XMEAAAAAPqHcASwuJDdaug5AgAAAAARIRwBLMwwjNCGrKwcAQAAAICIEI4AFtbS4ZO5pXIuNd4AAAAAEBHCEcDCzCU1kpSbSVkNAAAAAESCcASwMHMzVomyGgAAAACIFOEIYGHmfiMup0OZbn6sAQAAACASvIsCLKy7nWocDkeS7gYAAAAArIlwBLAwc1kNJTUAAAAAEDnCEcDC2MYXAAAAAPqPcASwsJCVIx52qgEAAACASBGOABYW0nOElSMAAAAAEDHCEcDCzCtHcjyEIwAAAAAQKcIRwMKa2oNXjuRlUlYDAAAAAJEiHAEsjN1qAAAAAKD/CEcACyMcAQAAAID+IxwBLCxkK196jgAAAABAxAhHAAsL3a2GniMAAAAAECnCEcDCQlaOUFYDAAAAABEjHAEsjJ4jAAAAANB/hCOAhYWU1XgoqwEAAACASBGOABZGWQ0AAAAA9B/hCGBhIWU17FYDAAAAABEjHAEsqt3rV4fPCDrGbjUAAAAAEDnCEcCizKtGJMpqAAAAACAahCOARZn7jUiEIwAAAAAQDcIRwKLMO9VIUk4GZTUAAAAAECnCEcCizCtHcjwuOZ2OJN0NAAAAAFgX4QhgUSE71VBSAwAAAABRIRwBLCp0G19KagAAAAAgGoQjgEWZe46wcgQAAAAAokM4AliUuedIrodwBAAAAACiQTgCWFToyhHKagAAAAAgGoQjgEXRkBUAAAAAYoNwBLAoymoAAAAAIDYIRwCLYuUIAAAAAMQG4QhgUfQcAQAAAIDYIBwBLCqkrIaVIwAAAAAQFcIRwKJCymo8rBwBAAAAgGgQjgAWFVpWw8oRAAAAAIgG4QhgUZTVAAAAAEBsEI4AFhWycoStfAEAAAAgKoQjgEWFbuVLzxEAAAAAiAbhCGBBPr+hlg56jgAAAABALBCOABbUbOo3IhGOAAAAAEC0CEcACzL3G5HYyhcAAAAAokU4AliQeacaiZUjAAAAABAtwhHAgszNWD1upzJc/DgDAAAAQDR4NwVYUOg2vpTUAAAAAEC0CEcACwrdxpeSGgAAAACIFuEIYEHmniO5HsIRAAAAAIgW4QhgQSFlNZmU1QAAAABAtAhHAAuirAYAAAAAYodwBLAgymoAAAAAIHYIRwALYuUIAAAAAMQO4QhgQU3t9BwBAAAAgFghHAEsiJUjAAAAABA7hCOABYWEIx5WjgAAAABAtAhHAAsK3cqXlSMAAAAAEC3CEcCCQnarIRwBAAAAgKgRjgAWFFpWQzgCAAAAANEiHAEsKLSshp4jAAAAABAtwhHAgiirAQAAAIDYIRwBLMYwDMpqAAAAACCGCEcAi2nt8MtvBB+jrAYAAAAAokc4AliMuaRGoqwGAAAAAPqDcASwGHNJjSTlEY4AAAAAQNQIRwCLMe9U43RImW5+lAEAAAAgWryjAiymu51qHA5Hku4GAAAAAKyPcASwGHaqAQAAAIDYIhwBLMZcVsNONQAAAADQP4QjgMWErByhGSsAAAAA9AvhCGAxIT1HKKsBAAAAgH4hHAEshpUjAAAAABBbhCOAxTS103MEAAAAAGKJcASwGFaOAAAAAEBsEY4AFhOyW42HlSMAAAAA0B+EI4DFsHIEAAAAAGKLcASwGHarAQAAAIDYIhwBLIaVIwAAAAAQW4QjgMWE9BxhtxoAAAAA6BfCEcBiKKsBAAAAgNgiHAEshrIaAAAAAIgtwhHAYpraKasBAAAAgFgiHAEspMPnV7vXH3SMlSMAAAAA0D+EI4CFmEtqJHqOAAAAAEB/EY4AFmIuqZEoqwEAAACA/iIcASyku5UjOawcAQAAAIB+IRwBLMQcjmRnuORyOpJ0NwAAAABgD4QjgIU0tZl3qmHVCAAAAAD0V1zDkYMHD2r16tW6//77NXPmTA0ZMkQOh0MOh0Nz586Ny5wrVqzQ5ZdfruLiYmVlZWnEiBG65ZZb9M4778RlPiCRmtqDV47QbwQAAAAA+i+uv3Y+5ZRT4nn5IK2trbrxxhu1evXqoON79+7V3r179cwzz2jRokW67777EnZPQKyZy2rYqQYAAAAA+i9hZTVlZWW67LLL4nb9efPmBYKRadOm6fnnn9fGjRu1bNkyjR49Wn6/X/fff7+WLl0at3sA4s0cjuRRVgMAAAAA/RbXd1b333+/Jk2apEmTJumUU07Rp59+qpEjR8Z8ng0bNuiZZ56RJF111VX64x//KJfrZLnBpEmTdPXVV+u8887Tvn37dM899+iGG25QYWFhzO8D1uD3G2r1+pTldskZRjPTVBpv3so3h7IaAAAAAOi3uIYjP/jBD+J5+YCf/vSnkiSXy6XHHnssEIx0GjJkiB5++GF95Stf0dGjR7Vs2TItXLgwIfeG1LGttkFLK3ZrXeV+tXT4lJ3h0szyYZo/ZZQmlBRYYvzz79cEHdt58IS21TZ0Ox4AAAAAEB6HYRhGoibrunLktttu0/Lly/t9zRMnTmjIkCFqa2vTFVdcoXXr1nU7rr29XUOHDlVDQ4O+8IUv6M033+z33F1VV1errKxMklRVVaXS0tKYXh/988KWGi1cuVVef+i3u9vp0OI5E3XN2cNtMx4AAAAA7Coe778tv5Xvxo0b1dbWJkmaOnVqj+M8Ho8uuOCCwDkdHR0JuT8k37bahh6DBUny+g0tXLlV22obbDEeAAAAABAZy3dz3L59e+Dx+PHjex07fvx4vfzyy/J6vdq5c6cmTJgQ9jzV1dW9fr6uri7sayGxllbs7jFY6OT1G/rq0nd06qAc7TvSbMnxyyr2aPGcib2OAwAAAACEsnw4UlVVFXjc11KazmU3nedFEo50PRfW4fcbWle5P6yxR5s7dLT5eNjXTrXxayvr9LMbzgqrCSwAAAAA4DOWL6tpbGwMPM7Ly+t1bG5ubuDxiRMn4nZPSB2tXp9aOnx9D7SBlg6fWr3p8bUCAAAAQCxZfuVIa2tr4LHH4+l1bGZmZuBxS0tLRPN0XaHSnbq6Ok2ePDmiayL+stwuZWe40iIgyc5wKcvN1r4AAAAAECnLhyNZWVmBx+3t7b2O7WzcKknZ2dkRzcPuM9bkdDo0s3yYVm2u6XPseacN1E2TyrRiU5Xe23vUcuNnlRdTUgMAAAAAUbB8WU1+fn7gcV+lMk1NTYHHfZXgwD7mTxkldx+hgdvp0I+uOVM3nl+mH11zpiXHz5systcxAAAAAIDuWT4c6bqio68dZbqWxtBgNX1MKCnQ4jkT1VO84HY6tHjORE0oKQga31MgkerjAQAAAACRsXxZTdcdZ3bs2NHr2M7Pu91ujRkzJq73hdRyzdnDtfytT/X+vmOBYxkuh66eOFzzpowMCRauOXu4xhbla1nFHq2trFNLh0/ZGS7NKi+2xHgAAAAAQPgchmEYiZrs008/1ciRJ5f+33bbbVq+fHm/r9nY2KghQ4aovb1dV1xxhdatW9ftuPb2dg0dOlQNDQ268MIL9dZbb/V77q6qq6sDq1GqqqroUZKCrv/1W0G9O3507ed0ywUj+jzP7zfU6vUpy+0Kq6dHqo0HAAAAADuJx/tvy5fV5Ofn69JLL5UkrV+/vsfSmlWrVqmhoUGSNHv27ITdH1JHc3vwjjV5meEtnHI6HcrxuMMOIlJtPAAAAACgdykfjixfvlwOh0MOh0OLFi3qdszdd98tSfJ6vbrjjjvk8wW/Ca6vr9d3vvMdSVJhYaHmz58f13tGampu9wZ9nJ1h+aoyAAAAAEAMxPXdYUVFhXbt2hX4uL6+PvB4165dIWU1c+fOjWqe6dOn66abbtKKFSv04osvasaMGbrrrrtUUlKiyspKPfDAA9q3b58k6aGHHtLAgQOjmgfWZl45kpvpStKdAAAAAABSSVzDkaVLl+rJJ5/s9nNvvvmm3nzzzaBj0YYjkvT444+roaFBa9eu1WuvvabXXnst6PNOp1P33XefFixYEPUcsLYWUziS4yEcAQAAAABYoKwmXNnZ2VqzZo2efvppzZgxQ0VFRfJ4PCorK9PNN9+sioqKHstyYH+GYaiJshoAAAAAQDcSuluNnbFbTWpr7fBp/H3/F3Rsw/+7RKcNzk3SHQEAAAAAosFuNUCUzP1GJCmbshoAAAAAgAhHkCaa2rwhx3I8lNUAAAAAAAhHkCZaOrpZOZLByhEAAAAAAOEI0oS5rCYrwymX05GkuwEAAAAApBLCEaSFZlNZDSU1AAAAAIBOhCNIC+aVIzk0YwUAAAAA/B3hCNJCcwfhCAAAAACge4QjSAvmsppsymoAAAAAAH9HOIK0YC6ryWXlCAAAAADg7whHkBbMW/lSVgMAAAAA6EQ4grTQRFkNAAAAAKAHhCNIC5TVAAAAAAB6QjiCtNBiCkeyCUcAAAAAAH9HOIK0wFa+AAAAAICeEI4gLZi38s2h5wgAAAAA4O8IR5AWzD1HWDkCAAAAAOhEOIK0QFkNAAAAAKAnhCNIC+ayGrbyBQAAAAB0IhxBWmArXwAAAABATwhHkBZaOtjKFwAAAADQPcIRpIUmdqsBAAAAAPSAcAS25/MbavP6g45RVgMAAAAA6EQ4Atszl9RIlNUAAAAAAD5DOALbM+9UI1FWAwAAAAD4DOEIbM+8U40k5bByBAAAAADwd4QjsD1zOOJ0SJluvvUBAAAAACfxDhG219weulONw+FI0t0AAAAAAFIN4Qhsz7xyhJIaAAAAAEBXhCOwPcIRAAAAAEBvCEdge+aymmx2qgEAAAAAdEE4AtszrxzJZeUIAAAAAKALwhHYXospHMkmHAEAAAAAdEE4Atuj5wgAAAAAoDeEI7C97rbyBQAAAACgE+EIbI+VIwAAAACA3hCOwPYIRwAAAAAAvSEcge2xlS8AAAAAoDeEI7A9tvIFAAAAAPSGcAS2Z97Kl7IaAAAAAEBXhCOwvSbKagAAAAAAvSAcge2ZV45QVgMAAAAA6IpwBLZn7jmSTTgCAAAAAOiCcAS2Zy6ryaGsBgAAAADQBeEIbI+GrAAAAACA3hCOwNbavX55/UbQMcIRAAAAAEBXhCOwtWZTSY1EWQ0AAAAAIBjhCGzN3IxVknIyWTkCAAAAAPgM4QhsrdtwJINwBAAAAADwGcIR2Jq5rMbjcsrt4tseAAAAAPAZ3iXC1swrRyipAQAAAACYEY7A1kK28aWkBgAAAABgQjgCWzOvHMlmG18AAAAAgAnhCGytydRzJDeTbXwBAAAAAMEIR2Br5rKabMpqAAAAAAAmhCOwtZCGrJTVAAAAAABMCEdga+atfHM8lNUAAAAAAIIRjsDWWDkCAAAAAOgL4QhsjXAEAAAAANAXwhHYmrmsJpuyGgAAAACACeEIbM28ciSXlSMAAAAAABPCEdhayFa+hCMAAAAAABPCEdhaE7vVAAAAAAD6QDgCWzOvHMnNZOUIAAAAACAY4QhszdxzJDuDcAQAAAAAEIxwBLZm3q2GshoAAAAAgBnhCGzNvHIkh7IaAAAAAIAJ4Qhsy+831NJhCkfYrQYAAAAAYEI4Attq9fpkGMHHcjIoqwEAAAAABCMcgW2ZS2okymoAAAAAAKEIR2Bb5m18JcpqAAAAAAChCEdgW02mnWokKctNOAIAAAAACEY4AtsK2anG45LT6UjS3QAAAAAAUhXhCGzLXFZDSQ0AAAAAoDuEI7At88qRbMIRAAAAAEA3CEdgW82mniNs4wsAAAAA6A7hCGwrpOcI2/gCAAAAALpBOALb6q4hKwAAAAAAZoQjsK3mtuCymmzKagAAAAAA3SAcgW01dwSvHMmlrAYAAAAA0A3CEdgWW/kCAAAAAMJBOALbaqKsBgAAAAAQBsIR2BZlNQAAAACAcBCOwLbMZTXZlNUAAAAAALpBOALbMpfV5GQQjgAAAAAAQhGOwLZaTGU1OZn0HAEAAAAAhCIcgW01s1sNAAAAACAMhCOwrWZzWQ3hCAAAAACgG4QjsC3zbjU5HspqAAAAAAChCEdgW5TVAAAAAADCQTgCW/L6/Gr3+oOOEY4AAAAAALpDOAJbMpfUSJTVAAAAAAC6RzgCW2pp7y4cYeUIAAAAACAU4QhsydxvRJKyCUcAAAAAAN0gHIEtNZm28XU5HfK4+HYHAAAAAITi3SJsqSVkG1+XHA5Hku4GAAAAAJDKCEdgS2zjCwAAAAAIF+EIbKnZVFbDTjUAAAAAgJ4QjsCWWDkCAAAAAAgX4QhsqbmbniMAAAAAAHSHcAS2ZC6ryaasBgAAAADQA8IR2JK5rCaXlSMAAAAAgB4QjsCWzFv5ZhOOAAAAAAB6QDgCW2oK2a2GcAQAAAAA0D3CEdhSS0hZDT1HAAAAAADdIxyBLZl7jlBWAwAAAADoCeEIbKmpnbIaAAAAAEB4CEdgS+aymhzKagAAAAAAPSAcgS2Zy2pYOQIAAAAA6AnhCGypmbIaAAAAAECYCEdgS6ErRyirAQAAAAB0j3AEthTac4SVIwAAAACA7hGOwHYMw1BzB1v5AgAAAADCQzgC22nz+uXzG0HHKKsBAAAAAPSEcAS2Yy6pkaRcVo4AAAAAAHpAOALbMZfUSJTVAAAAAAB6RjgC22lu84Yco6wGAAAAANCThIUj+/bt0913360zzjhDubm5GjRokCZPnqxHHnlEzc3N/br2okWL5HA4wvrz+uuvx+YLQsoyb+Ob6XbK5XQk6W4AAAAAAKkuIb9OX7Nmjb761a/q+PHjgWPNzc3atGmTNm3apKVLl2rt2rUaNWpUIm4HNmcOR9jGFwAAAADQm7iHI1u3btWcOXPU3NysvLw8fe9739O0adPU0tKiFStW6Le//a0++ugjXXnlldq0aZPy8vL6NV9lZWWvnx85cmS/ro/U19weXFZDSQ0AAAAAoDdxf9d41113qbm5WW63Wy+//LIuvPDCwOemT5+usWPH6p577tGOHTv085//XPfff3+/5jvzzDP7e8uwOFaOAAAAAAAiEdeeI5s2bQr0+Jg3b15QMNJp4cKFOuOMMyRJ//Ef/6GOjo543hLSgHkrX8IRAAAAAEBv4hqOPP/884HHt99+e/c34HTq1ltvlSQdPXqUhqnotyZTWQ3b+AIAAAAAehPXcOSNN96QJOXm5uq8887rcdzUqVMDjysqKuJ5S0gD5rKaXHqOAAAAAAB6Edd3jdu3b5ckjRkzRm53z1ONHz8+5JxozZgxQ5s3b1ZjY6MKCws1YcIEXXHFFVqwYIEGDhwY9XWrq6t7/XxdXV3U10ZsmctqWDkCAAAAAOhN3MKR1tZW1dfXS5JKS0t7HTtw4EDl5uaqqalJVVVV/Zp3/fr1gceHDh3Shg0btGHDBj388MNavny5rrnmmqiuW1ZW1q/7QuKYy2roOQIAAAAA6E3cwpHGxsbA43C25+0MR06cOBHVfOXl5br22ms1efJklZSUqKOjQx999JGefvppvfzyyzp27Jiuv/56vfTSS5o5c2ZUc8AaQhuyUlYDAAAAAOhZXFeOdPJ4PH2Oz8zMlCS1tLREPNddd92lRYsWhRz//Oc/r1tvvVVLlizR1772Nfl8Ps2fP1+7du1SdnZ2RHP0taKlrq5OkydPjuiaiA+28gUAAAAARCJu4UhWVlbgcXt7e5/j29raJCni0EKSCgsLe/38ggUL9O6772rp0qWqra3VqlWr9NWvfjWiOfoqDULqaKasBgAAAAAQgbjtVpOfnx94HE6pTFNTk6TwSnCisWDBgsDjDRs2xGUOpIbQlSOU1QAAAAAAeha3cCQrK0tDhgyR1PdOL0ePHg2EI/FqfDphwoTA45qamrjMgdRAWQ0AAAAAIBJxC0ck6YwzzpAk7dq1S16vt8dxO3bsCDkn1gzDiMt1kXrMZTVs5QsAAAAA6E1cw5EpU6ZIOlky89577/U4rmuZy0UXXRSXe9m2bVvgcUlJSVzmQGowrxzJpawGAAAAANCLuIYj1157beDxE0880e0Yv9+v3/3ud5JONladNm1aXO5lyZIlgcdTp06NyxxIDaFb+bJyBAAAAADQs7iGI5MnT9bFF18sSVq2bJnefvvtkDGLFy/W9u3bJUl33nmnMjIygj6/fPlyORwOORyObrfrrays1K5du3q9jyVLlmjZsmWSpGHDhmn27NnRfDmwCPPKEcpqAAAAAAC9iXu9wS9+8QtddNFFamlp0WWXXaZ7771X06ZNU0tLi1asWKH//u//liSNGzdOCxcujPj67733nubPn69p06Zp5syZKi8v1+DBg+X1erVjxw79/ve/15///GdJksvl0pIlS5SbmxvTrxGpw+831NLBbjUAAAAAgPDF/V3jOeeco+eee07/+I//qIaGBt17770hY8aNG6c1a9YEbf8bCZ/Pp/Xr12v9+vU9jhk8eLCWLVumq6++Oqo5YA3mYESirAYAAAAA0LuE/Er9qquu0gcffKBf/OIXWrNmjaqrq+XxeDRmzBjdeOON+sY3vqGcnJyorj1r1qxAyc7777+vAwcO6PDhwzIMQ4MGDdLEiRN1xRVXaO7cuSooKIjxV4ZUYy6pkQhHAAAAAAC9cxjscRsT1dXVKisrkyRVVVWptLQ0yXeUnvYebtLUn70edGz7D6+g7wgAAAAA2EQ83n/HtSErkGjmlSMOh5SVwbc5AAAAAKBnvGuErZjDkZwMlxwOR5LuBgAAAABgBYQjsJXmdm/Qx9nsVAMAAAAA6APhCGzFvHIkN5NeIwAAAACA3hGOwFZaTOFIdgbhCAAAAACgd4QjsJUmU1kN2/gCAAAAAPpCOAJbMa8cyc2k5wgAAAAAoHeEI7AVc88RymoAAAAAAH0hHIGtUFYDAAAAAIgU4QhsxVxWk0NZDQAAAACgD4QjsBVzWU0OZTUAAAAAgD4QjsBWmimrAQAAAABEiHAEthKycoSyGgAAAABAHwhHYCsh4QgrRwAAAAAAfSAcga2YG7KylS8AAAAAoC+EI7CV0K18KasBAAAAAPSOcAS2ErqVLytHAAAAAAC9IxyBrbCVLwAAAAAgUoQjsJXQrXwpqwEAAAAA9I5wBLbR4fOrw2cEHaOsBgAAAADQF8IR2Ia5pEZiK18AAAAAQN8IR2Ab5pIaScrJoKwGAAAAANA7whHYRncrR7JZOQIAAAAA6APhCGzDvI1vhsshj5tvcQAAAABA73jnCNtoagsuq8lmG18AAAAAQBgIR2AbzR3BK0dyM+k3AgAAAADoG+EIbMNcVkO/EQAAAABAOAhHYBvmshq28QUAAAAAhINwBLbRYiqryfFQVgMAAAAA6BvhCGzDvJUvK0cAAAAAAOEgHIFtNFNWAwAAAACIAuEIbCN05QhlNQAAAACAvhGOwDbMW/mycgQAAAAAEA7CEdgGW/kCAAAAAKJBOALbCNnKN4OyGgAAAABA3whHYBvmrXxzM1k5AgAAAADoG+EIbMPckJWyGgAAAABAOAhHYBshZTWEIwAAAACAMBCOwDbMZTVs5QsAAAAACAfhCGzDXFbDyhEAAAAAQDgIR2AbzZTVAAAAAACiQDgCWzAMQ82U1QAAAAAAokA4Alto8/plGMHHWDkCAAAAAAgH4QhswbxTjcRWvgAAAACA8BCOwBbMzVglKZeyGgAAAABAGAhHYAvmbXwlKTuDlSMAAAAAgL4RjsAWzGU1WRlOOZ2OJN0NAAAAAMBKCEdgCy2mshpKagAAAAAA4SIcgS2Ye47QjBUAAAAAEC7CEdhCU3twWQ3b+AIAAAAAwkU4Alswl9XkUFYDAAAAAAgT4QhswVxWw8oRAAAAAEC4CEdgC+atfAlHAAAAAADhIhyBLZi38qWsBgAAAAAQLsIR2AJlNQAAAACAaBGOwBbMDVnZyhcAAAAAEC7CEdgCW/kCAAAAAKJFOAJbYCtfAAAAAEC0CEdgC/QcAQAAAABEi3AEttBMWQ0AAAAAIEqEI7CF0JUjlNUAAAAAAMJDOAJboKwGAAAAABAtwhHYgrmshq18AQAAAADhIhyBLZhXjuRSVgMAAAAACBPhCCzP5zfU5vUHHaOsBgAAAAAQLsIRWJ65pEairAYAAAAAED7CEVhei6mkRqKsBgAAAAAQPsIRWJ6534jEyhEAAAAAQPgIR2B5TaayGqdDynTzrQ0AAAAACA/vIGF55rKaXI9bDocjSXcDAAAAALAawhFYnrmshpIaAAAAAEAkCEdgeebdatjGFwAAAAAQCcIRWJ555UgOO9UAAAAAACJAOALLCw1HWDkCAAAAAAgf4Qgsz9yQlZ4jAAAAAIBIEI7A8sxb+bJyBAAAAAAQCcIRWF53W/kCAAAAABAuwhFYHlv5AgAAAAD6g3AElkdZDQAAAACgPwhHYHnmshq28gUAAAAARIJwBJbHVr4AAAAAgP4gHIHlNVNWAwAAAADoB8IRWF7oyhHKagAAAAAA4SMcgeWF9hxh5QgAAAAAIHyEI7A88241bOULAAAAAIgE4Qgsz1xWk5tJWQ0AAAAAIHyEI7A0wzBCymqyM1g5AgAAAAAIH+EILK3d55fXbwQdo+cIAAAAACAShCOwNPOqEYmyGgAAAABAZAhHYGnmfiMSDVkBAAAAAJEhHIGlNZt2qpGkHHqOAAAAAAAiQDgCSzOvHPG4nXK7+LYGAAAAAISPd5GwNHM4QjNWAAAAAECkCEdgaeaGrJTUAAAAAAAiRTgCS2sy9RyhGSsAAAAAIFKEI7A0c1kN2/gCAAAAACJFOAJLM5fVZFNWAwAAAACIEOEILM1cVkNDVgAAAABApAhHYGkhDVkpqwEAAAAARIhwBJYWspUvZTUAAAAAgAgRjsDSmimrAQAAAAD0E+EILC1k5QhlNQAAAACACBGOwNIoqwEAAAAA9BfhCCzNXFaTTVkNAAAAACBChCOwNPPKkVzKagAAAAAAESIcgaWFbOXLyhEAAAAAQIQIR2BpTeayGnqOAAAAAAAiRDgCSzOvHKGsBgAAAAAQKcIRWJq55wgNWQEAAAAAkSIcgWX5/UboVr6EIwAAAACACBGOwLJavb6QY7keymoAAAAAAJEhHIFlmVeNSJTVAAAAAAAiRzgCyzI3Y5UoqwEAAAAARI5wBJZl3sZXkrLchCMAAAAAgMgQjsCyumvG6nQ6knQ3AAAAAACrIhyBZZnLaiipAQAAAABEI2HhyL59+3T33XfrjDPOUG5urgYNGqTJkyfrkUceUXNzc8zmWbFihS6//HIVFxcrKytLI0aM0C233KJ33nknZnMgNTS1BZfV0IwVAAAAABCNhOx7umbNGn31q1/V8ePHA8eam5u1adMmbdq0SUuXLtXatWs1atSoqOdobW3VjTfeqNWrVwcd37t3r/bu3atnnnlGixYt0n333Rf1HEgtLR3BK0fYxhcAAAAAEI24rxzZunWr5syZo+PHjysvL08PPPCA3nrrLb3yyiv653/+Z0nSRx99pCuvvFInTpyIep558+YFgpFp06bp+eef18aNG7Vs2TKNHj1afr9f999/v5YuXRqTrwvJZ+45wsoRAAAAAEA04v6r9rvuukvNzc1yu916+eWXdeGFFwY+N336dI0dO1b33HOPduzYoZ///Oe6//77I55jw4YNeuaZZyRJV111lf74xz/K5Tr5RnnSpEm6+uqrdd5552nfvn265557dMMNN6iwsDAmX5/V+f2GWr0+ZbnDa2aaSuPNZTX0HAEAAAAARMNhGIYRr4tv2rRJkydPliQtWLBAv/nNb0LG+P1+nXnmmdq+fbsGDhyoAwcOKCMjI6J5rrzySq1du1Yul0uffvqpSktLQ8asWLFCX/nKVyRJjzzyiBYuXBjFV9Sz6upqlZWVSZKqqqq6vYdUsq22QUsrdmtd5X61dPiUneHSzPJhmj9llCaUFFhi/N3/s1Xb6hoCx4oHZGnZbZO6HQ8AAAAAsId4vP+Oa1nN888/H3h8++23d38DTqduvfVWSdLRo0f1+uuvRzTHiRMn9Morr0iSZsyY0eNfynXXXaeCgpNvmletWhXRHHbzwpYaXf2rCq3aXBPo29HS4dOqzSePv7ClxhLjuwYjklR3vLXb8QAAAAAA9CauZTVvvPGGJCk3N1fnnXdej+OmTp0aeFxRUaEZM2aEPcfGjRvV1tYWch0zj8ejCy64QC+//LI2btyojo6OiFeo2MG22gYtXLlVXn/3C4a8fkPfXrlVBVkZGlOUp10HT+jbK7fKZ6HxC1du1diifFaQAAAAAADCEtdwZPv27ZKkMWPGyO3uearx48eHnBPpHObr9DTPyy+/LK/Xq507d2rChAlhz1NdXd3r5+vq6sK+VjItrdjdYzDSyec3dPvyTWFfM9XGe/2GllXs0eI5E8M+BwAAAACQvuIWjrS2tqq+vl6S+qz/GThwoHJzc9XU1KSqqqqI5uk6vq95OmuSOs+LJBzpeq5V+f2G1lXuT/ZtJMTayjr97IazwmoCCwAAAABIb3HrOdLY2Bh4nJeX1+f43NxcSYp4O99I5umcI5p57KDV6wv09LC7lg6fWr3p8bUCAAAAAPonritHOnk8nj7HZ2ZmSpJaWlriNk/nHNHM09eKlrq6usDOPKkqy+1SdoYrLQKS7AyXstxs7QsAAAAA6FvcVo5kZWUFHre3t/c5vrOpanZ2dtzm6ZwjmnlKS0t7/VNcXBzR9ZLB6XRoZvmwsMZee3aJtv/wCl1zdoklx88qL6akBgAAAAAQlriFI/n5+YHH4ZSwNDU1SQqvBCfaeTrniGYeu5g/ZZTcfYQGbqdD//IPo5XtcWnBP4y25Ph5U0b2OgYAAAAAgE5xXTkyZMgQSX3v9HL06NFAcBFp49OuTVj7mqdraYwdGqxGY0JJgRbPmdhjwOB2OrR4zsTANrhWHw8AAAAAQF/iupXvGWecoTfeeEO7du2S1+vtcTvfHTt2BJ0Tia47znS9Tm/zuN1ujRkzJqJ57OSas4drbFG+llXs0drKOrV0+JSd4dKs8mLNmzIyJFiw+ngAAAAAAHrjMAzDiNfF7733Xv3kJz+RJL3zzjv6/Oc/3+24hx56SN/73vckSX/605902WWXhT1HY2OjhgwZovb2dl1xxRVat25dt+Pa29s1dOhQNTQ06MILL9Rbb70V4VfTu+rq6sBqlKqqqj63FU4Vfr+hVq9PWW5XWD06rD4eAAAAAGBt8Xj/HbeyGkm69tprA4+feOKJbsf4/X797ne/kyQVFhZq2rRpEc2Rn5+vSy+9VJK0fv36HktrVq1apYaGBknS7NmzI5rDzpxOh3I87rCDBauPBwAAAADALK7hyOTJk3XxxRdLkpYtW6a33347ZMzixYu1fft2SdKdd96pjIyMoM8vX75cDodDDodDixYt6naeu+++W5Lk9Xp1xx13yOcL3qq2vr5e3/nOdySdDGDmz5/fr68LAAAAAADYR1zDEUn6xS9+oezsbHm9Xl122WX6yU9+onfeeUevvfaaFixYoHvuuUeSNG7cOC1cuDCqOaZPn66bbrpJkvTiiy9qxowZevHFF/Xuu+/qiSee0AUXXKB9+/ZJOlnCM3DgwNh8cQAAAAAAwPLi2pBVks455xw999xz+sd//Ec1NDTo3nvvDRkzbtw4rVmzJmhb3kg9/vjjamho0Nq1a/Xaa6/ptddeC/q80+nUfffdpwULFkQ9BwAAAAAAsJ+4rxyRpKuuukoffPCBvvWtb2ncuHHKyclRYWGhzj//fD388MN6//33+717THZ2ttasWaOnn35aM2bMUFFRkTwej8rKynTzzTeroqKix7IcAAAAAACQvuK6W006sepuNQAAAAAAWInldqsBAAAAAABIdYQjAAAAAAAgrRGOAAAAAACAtEY4AgAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLRGOAIAAAAAANIa4QgAAAAAAEhrhCMAAAAAACCtEY4AAAAAAIC0RjgCAAAAAADSGuEIAAAAAABIa4QjAAAAAAAgrRGOAAAAAACAtEY4AgAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLTmTvYN2IXX6w08rqurS+KdAAAAAABgX13fc3d9L94fhCMxcujQocDjyZMnJ/FOAAAAAABID4cOHdKIESP6fR3KagAAAAAAQFpzGIZhJPsm7KC1tVWVlZWSpKFDh8rtTv1FOXV1dYFVLhs3blRxcXGS7wjxwPNsfzzH6YHnOT3wPKcHnuf0wPOcHniek8Pr9QaqN8rLy5WVldXva6b+O3iLyMrK0qRJk5J9G1ErLi5WaWlpsm8DccbzbH88x+mB5zk98DynB57n9MDznB54nhMrFqU0XVFWAwAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLRGOAIAAAAAANIa4QgAAAAAAEhrhCMAAAAAACCtOQzDMJJ9EwAAAAAAAMnCyhEAAAAAAJDWCEcAAAAAAEBaIxwBAAAAAABpjXAEAAAAAACkNcIRAAAAAACQ1ghHAAAAAABAWiMcAQAAAAAAaY1wBAAAAAAApDXCEQAAAAAAkNYIRwAAAAAAQFojHLG4ffv26e6779YZZ5yh3NxcDRo0SJMnT9Yjjzyi5ubmmM2zYsUKXX755SouLlZWVpZGjBihW265Re+8807M5kDP4vk8NzQ0aMWKFfrnf/5nnXvuuSosLJTH49HQoUN1ySWX6JFHHtGxY8di84WgV4n6ee6qrq5OhYWFcjgccjgcuuSSS+IyDz6TyOd5/fr1mjt3rsaMGaPc3FwNGDBA48aN0w033KBf//rXOnHiREznw2cS8Txv27ZN3/zmN1VeXq6CgoLAv93Tpk3To48+qsbGxpjMg2AHDx7U6tWrdf/992vmzJkaMmRI4N/QuXPnxmVOXoclXqKeZ16HJVcyfp674nVYijFgWatXrzYGDBhgSOr2z+mnn2588skn/ZqjpaXF+NKXvtTjHE6n0/jhD38Yo68I3Ynn87x27VojMzOzx2t3/jnllFOMV199NcZfGbpKxM9zd66//vqgeaZOnRrzOfCZRD3PR44cMa655po+f7bff//9/n9RCJGI5/mRRx4x3G53r8/vaaedZmzdujVGXxU69fZ3ftttt8V0Ll6HJU8inmdehyVfIn+eu8PrsNTCyhGL2rp1q+bMmaPjx48rLy9PDzzwgN566y298sor+ud//mdJ0kcffaQrr7yyX78ZnDdvnlavXi1JmjZtmp5//nlt3LhRy5Yt0+jRo+X3+3X//fdr6dKlMfm6ECzez/Phw4fV1tYmp9Opyy+/XI8++qheffVVbd68WS+++KK+/OUvS5IOHDigL33pS9qyZUssvzz8XaJ+ns1eeukl/e///q+Kiopidk30LFHP8/HjxzVjxgy98MILkqQrr7xSTz31lN5++21VVFTo6aef1l133aXS0tKYfF0IlojneeXKlbr77rvl9Xrl8Xj0rW99S2vWrNFf//pXPfPMM5oyZYokae/evbriiit0/PjxmH19CFZWVqbLLrssbtfndVhqiNfzzOuw1BLvn2czXoeloGSnM4jOJZdcYkgy3G638dZbb4V8/qc//WkggfzBD34Q1Ryvv/564BpXXXWV4fV6gz5/6NAh49RTTzUkGQMHDjSOHj0a1TzoWbyf5xUrVhgLFiww9u7d2+OY//zP/wzMMX369IjnQN8S8fNs1tjYaJSVlRmSjN/97nf8xiIBEvU833LLLYF5VqxY0eM4v99vdHR0RD0PupeI5/nMM88MXGP16tXdjrnuuusCYxYvXhzVPOje/fffb7z00kvG/v37DcMwjD179sTlN828DkuuRDzPvA5LvkT9PJvxOiw1EY5Y0MaNGwM/QAsWLOh2jM/nM84444zAf5jt7e0RzzNr1ixDkuFyuYyqqqpuxzz77LOBe3nkkUcingM9S9TzHI7zzz8/sHy3vr4+LnOkq2Q9z9/85jcNSca0adMMwzD4TznOEvU8v/HGG4F5Fi1a1N/bRoQS8TwfP348MMe5557b47itW7cGxl1//fURzYHIxOvNFK/DUkui3jR3h9dhiZOo55nXYamJshoLev755wOPb7/99m7HOJ1O3XrrrZKko0eP6vXXX49ojhMnTuiVV16RJM2YMaPH5dfXXXedCgoKJEmrVq2KaA70LhHPc7g6m0P5/X7t2bMnLnOkq2Q8zxs3btR//dd/yePx6Ne//nW/roXwJOp5/tWvfiVJysvL08KFCyM+H/2TiOe5vb098HjU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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plantcont = ct.tf(.5, (0.1, 1), inputs='u', outputs='y')\n", + "u_summer = ct.summing_junction(inputs=['-y', 'r'], outputs='e')\n", + "\n", + "plant_simulator = ct.c2d(plantcont, simulation_dt, 'zoh')\n", + "# system from r to y\n", + "Gyr_simulator = ct.interconnect([controller_simulator, plant_simulator, u_summer], \n", + " inputs='r', outputs=['y', 'u'])\n", + "\n", + "# simulate\n", + "t, y = ct.input_output_response(Gyr_simulator, time, step_input)\n", + "y, u = y # extract respones\n", + "plt.plot(t, y, '.-', label='y')\n", + "plt.legend()\n", + "plt.figure()\n", + "plt.plot(t, u, '.-', label='u')\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "fb9c601d", + "metadata": {}, + "source": [ + "## time delays\n", + "\n", + "Given that all of the interconnected systems are being simulated in discrete-time with the same small time interval `simulation_dt`, we can construct a system that implements time delays by suitable choice of $A, B, C, $ and $D$ matrices. For example, a 3-step delay has the form \n", + "\n", + "$x[k+1] = \\begin{bmatrix}0 & 0 & 0\\\\ 1 & 0 & 0\\\\ 0 & 1 & 0\\end{bmatrix}x[k]+\\begin{bmatrix}1\\\\0\\\\0\\end{bmatrix}u[k]$
\n", + "\n", + "$~~~~~~~y[k]=\\begin{bmatrix}0 & 0 & 1\\end{bmatrix}x[k]$ \n", + "\n", + "The following function creates an arbitrarily-long time delay system, up to the nearest $dt$. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "92767723", + "metadata": {}, + "outputs": [], + "source": [ + "def time_delay_system(delay, dt, inputs=1, outputs=1, **kwargs):\n", + " \"\"\"\n", + " creates a pure time delay discrete-time system. \n", + " time delay is equal to nearest whole number of `dt`s.\"\"\"\n", + " assert delay >= 0, \"delay must be greater than or equal to zero\"\n", + " n = int(round(delay/dt))\n", + " ninputs = inputs if isinstance(inputs, (int, float)) else len(inputs)\n", + " assert ninputs == 1, \"only one input supported\"\n", + " A = np.eye(n, k=-1)\n", + " B = np.eye(n, 1)\n", + " C = np.eye(1, n, k=n-1)\n", + " D = np.zeros((1,1))\n", + " return ct.ss(A, B, C, D, dt, inputs=inputs, outputs=outputs, **kwargs)" + ] + }, + { + "cell_type": "markdown", + "id": "5a5e6f76", + "metadata": {}, + "source": [ + "The step response of the time-delay system is shifted to the right." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "e82445c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$$\n", + "\\begin{array}{ll}\n", + "A = \\left(\\begin{array}{rllrllrllrllrll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "&\n", + "B = \\left(\\begin{array}{rll}\n", + "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "\\\\\n", + "C = \\left(\\begin{array}{rllrllrllrllrll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "&\n", + "D = \\left(\\begin{array}{rll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)\n", + "\\end{array}~,~dt=0.02\n", + "$$" + ], + "text/plain": [ + "['ud']>" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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xm41AAAAdGCUSOE1ly/IauYIAAAAHQhHKLzKrXy97QEAAPgro0QKr8VWvgAAAHRDOELhWZAVAACA7ghHKLySBVkBAADohlEihVcqmznSpKwGAACADgYtHHn++edz9tlnZ8qUKRkzZkw233zzTJ06NZdddlmWL1/eL3088cQT+cQnPpFdd901m2yySUaMGJGtttoq06dPzxVXXJHXXnutX/qhupTK1hxpUFYDAABAB42D0cmcOXPy/ve/P6+++mr715YvX5558+Zl3rx5ufrqq3Prrbdmxx13XO8+Lr/88px77rkplUrrfH3RokW5++67c/fdd+dLX/pSbr755vzN3/zNevdD9SkPR5rsVgMAAEAHAz5KfOSRR3L00Ufn1VdfzdixY3PxxRfnvvvuy5133pkPf/jDSZKnn346hx9+eJYuXbpefVx//fU5++yzUyqVMmLEiJxxxhmZM2dO/u///i/XXXdd9tlnnyTJc889l3e84x3rhDQUX8VWvspqAAAA6GDAZ46cfvrpWb58eRobG3P77bdn2rRp7c8dcMAB2WmnnXLOOefkqaeeyhe+8IVccMEFfe7joosuan98ww035PDDD2//+9SpU3PcccflPe95T2644YYsXLgw11xzTc4888wNuzCqRvmaI8pqAAAA6GhAZ47Mmzcvd999d5Lk5JNPXicYWeuss87KlClTkiRf/OIX09zc3Kc+lixZkscffzxJsvvuu68TjHT0b//2b+2P77vvvj71QXUr362myW41AAAAdDCgo8Qbb7yx/fFJJ53U+QnU1+f4449PkixevLg9TOmt1atXtz/ubs2SN77xje2PV61a1ac+qG7la440mjkCAABABwMajtxzzz1JkjFjxmSPPfbost1+++3X/vjee+/tUx9bbrllNt988yTJs88+22W73/72t+2PJ0+e3Kc+qG7lZTXWHAEAAKCjAV1z5Mknn0ySTJo0KY2NXXe1yy67VLymLz7ykY/kkksuycMPP5zbbrsthx56aEWbteuSNDQ05EMf+lCf+1iwYEG3zy9cuLDPx2RwlJfVNNqtBgAAgA4GLBxZuXJlFi1alCQZP358t20322yzjBkzJsuWLcv8+fP73NcnP/nJPPjgg7njjjty1FFH5eMf/3gOPPDAbLnllnn22Wfz1a9+NXPnzk1DQ0O+/OUvt69x0hcTJkzo82sYHipmjiirAQAAoIMBC0dee+219sdjx47tsf3acGR9tvMdO3ZsbrvttsyaNSuXXHJJLr/88lx++eXrtHn3u9+dc845J29729v6fHyqW3PFVr5mjgAAAPBXAzpzZK0RI0b02H7kyJFJkhUrVqxXfw8++GC+853vdLnuyB133JHXve51mTJlSjbZZJM+H7+nGS0LFy7M1KlT+3xcBl5L+YKs1hwBAACggwELR0aNGtX+uOOOMl1Zu4PM6NGj+9zX97///XzgAx/IqlWr8jd/8zf59Kc/nb//+7/PxhtvnPnz5+e73/1uLrroonz1q1/NT3/609xxxx15/etf36c+eioNYvhqtlsNAAAA3Riw+oKNN964/XFvSmWWLVuWpHclOB29+OKLOfHEE7Nq1aq8+c1vzn333Zcjjzwym2++eZqamrLjjjvmvPPOy49+9KPU1dXlV7/6VT7xiU/07WKoahUzRyzICgAAQAcDNkocNWpUttxyyyQ97/SyePHi9nCkrwufzp49u/21M2bMyJgxYzptd+CBB+bAAw9Mktxwww1ZvHhxn/qhOrW1tVWEI03KagAAAOhgQH+FvnZXmGeeeSalUqnLdk899VTFa3qr49a/u+++e7dt99hjjyRJa2trfv3rX/epH6pTc9lONUnSoKwGAACADgY0HNlnn32SrCmZeeihh7psN3fu3PbHe++9d5/6aGz867Ip3QUwSdLc3Nzp6yiu8lkjSdJktxoAAAA6GNBR4pFHHtn+eObMmZ22aW1tzbXXXpskGTduXKZPn96nPnbYYYf2x/fcc0+3bX/6058mSerq6jJx4sQ+9UN1am5trfia3WoAAADoaEDDkalTp2bfffdNklxzzTX5+c9/XtHm8ssvby+NOe2009LU1LTO87NmzUpdXV3q6upy4YUXVrz+8MMPT13dmsHuxRdfnD/84Q+dnstVV12VBx98MEny9re/PVtsscV6XxfVo6SsBgAAgB4MeG3Jl770pey9995ZsWJFDj744MyYMSPTp0/PihUrMnv27Fx11VVJksmTJ+ess87q8/F32WWXnHTSSfn617+eP/zhD9ltt91y+umnZ999923fynf27Nm57rrrkiQNDQ35j//4j369RoavUiczR5rsVgMAAEAHAx6O7Lbbbvnud7+bD3zgA1myZElmzJhR0Wby5MmZM2fOOtv/9sWVV16Z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GDGix/YjR45MkqxYsaJP/Sxbtqz98apVq3LEEUfkpptuyh577JGRI0dm6623zkc/+tHMmTMn9fX1aWtryznnnJO2trZujkq1K7WWL8hq5ggAAACdG7CZI6NGjWp/3JsFUVetWpUkGT169Hr3kySf//znU9/JLIF99tkn7373u/P9738/jz/+eB5//PHsuuuuve6np3KfhQsXZurUqb0+HgOrfLcaC7ICAADQlQELRzbeeOP2x70plVk7A6Q3JThd9bPDDjtk55137rLtIYccku9///tJknnz5vUpHOlp3RSGl1JrWVmNrXwBAADowoCNGEeNGpUtt9wySc+LmS5evLg9HOnr2h4d2/cUYHRs+9JLL/WpH6pL+cwRZTUAAAB0ZUB/nT5lypQkyTPPPJNSqdRlu6eeeqriNb315je/uf1xS0tLt207Pt/d1sJUv/KZIw0WZAUAAKALAzpi3GeffZKsKZl56KGHumw3d+7c9sd77713n/rYfvvt84Y3vCFJ8tvf/rbbth2f32677frUD9WlYkFWa44AAADQhQENR4488sj2xzNnzuy0TWtra6699tokybhx4zJ9+vQ+9/Oe97wnSfLiiy/mvvvu67LdDTfc0P5433337XM/VI/ysppGZTUAAAB0YUDDkalTp7aHENdcc01+/vOfV7S5/PLL8+STTyZJTjvttDQ1Na3z/KxZs1JXV5e6urpceOGFnfZz+umnt+9a8//+3/9bZ3vftb71rW/l7rvvTpIcfvjhFlgtuFJL2YKsymoAAADowoCPGL/0pS9l9OjRKZVKOfjgg/PZz342999/f37yk5/klFNOyTnnnJMkmTx5cs4666z16uMNb3hDPvOZzyRJHnrooUydOjXf+MY38tBDD+Wuu+7Kxz/+8Zx44olJkk022SRXXHFFv1wbw1d5WY2ZIwAAAHRlwFcl3W233fLd7343H/jAB7JkyZLMmDGjos3kyZMzZ86cdbbl7at/+Zd/ySuvvJJLL700TzzxRHsY0tHWW2+dG2+8MTvttNN690N1qAhHzBwBAACgC4MyYjziiCPy6KOP5owzzsjkyZOz0UYbZdy4cdlzzz1z6aWX5he/+EUmTZq0wf189rOfzc9+9rN88IMfzMSJEzNy5Mhsuumm2WuvvXLRRRfl17/+daZNm9YPV8Rw11xRVmPmCAAAAJ2ra2tra+u5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akyOAgAAoHsDPnJ85JFHcvTRR+fVV1/N2LFjc/HFF+e+++7LnXfemQ9/+MNJkqeffjqHH354li5d2m/9/uhHP8oPfvCDbL311v12TIa/5rLdaswcAQAAoCcDHo6cfvrpWb58eRobG3P77bdnxowZmTZtWg444IBcddVV+dznPpckeeqpp/KFL3yhX/pcunRpTj311CTJZZdd1i/HpDpUzhwRjgAAANC9AQ1H5s2bl7vvvjtJcvLJJ2fatGkVbc4666xMmTIlSfLFL34xzc3NG9zvjBkzMn/+/EyfPj0f/OAHN/h4VI+KrXztVgMAAEAPBnTkeOONN7Y/Pumkkzo/gfr6HH/88UmSxYsXt4cp6+uBBx7If/3Xf2XEiBH56le/ukHHovqUyspqGpTVAAAA0IMBDUfuueeeJMmYMWOyxx57dNluv/32a3987733rnd/pVIpH/nIR9La2pp//dd/zc4777zex6I6lcpnjiirAQAAoAcDulvNk08+mSSZNGlSGhu77mqXXXapeM36uOyyy/LII4/kjW98Y2bMmLHex+nMggULun1+4cKF/dof66d85ojdagAAAOjJgIUjK1euzKJFi5Ik48eP77btZpttljFjxmTZsmWZP3/+evX37LPP5jOf+UyS5Morr8yoUaPW6zhdmTBhQr8ej4FRPnNEWQ0AAAA9GbBfq7/22mvtj8eOHdtj+zFjxiTJem/ne8opp2TFihU55phjcvDBB6/XMah+pRZlNQAAAPTNgM4cWWvEiBE9th85cmSSZMWKFX3u69prr80dd9yRTTbZJFdccUWfX98bPc1oWbhwYaZOnTogfdN7pdbyBVmV1QAAANC9AQtHOpa1rF69usf2q1atSpKMHj26T/0sWrQoZ511VpLk4osvzjbbbNOn1/dWT6VBDA8VM0eU1QAAANCDAfu1+sYbb9z+uDelMsuWLUvSuxKcjs4888wsWrQoe+65Zz72sY/17SQpnPI1RyzICgAAQE8GdObIlltumUWLFvW408vixYvbw5G+LHz6xz/+Md/85jeTJAcccECuv/76btu/9NJLmT17dpJkhx12yNve9rZe90V1qNitxswRAAAAejCgW/lOmTIl99xzT5555pmUSqUut/N96qmn1nlNb3Us1/nc5z7XY/snn3wyxx13XJLkhBNOEI4UUHPFzBHhCAAAAN0b0JqD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2cyRBmU1AAAA9JJwhEIoD0ea7FYDAABALxlBUgilsrIaM0cAAADoLeEIhVAq363GmiMAAAD0knCEQii1li/I6q0NAABA7xhBUggWZAUAAGB9CUcohPKyGlv5AgAA0FvCEQqhvKym0W41AAAA9JIRJIVQsSCrshoAAAB6SThCIZSvOdJoQVYAAAB6yQiSQii1lJXVWHMEAACAXhKOUAjN5TNHlNUAAADQS8IRCqGlIhzx1gYAAKB3jCCpem1tbRXhiK18AQAA6C3hCFWvuWynmiRpUFYDAABALwlHqHrls0aSpMluNQAAAPSSESRVr7m1teJrZo4AAADQW4MWjjz//PM5++yzM2XKlIwZMyabb755pk6dmssuuyzLly/foGMvWbIks2fPzoc//OHsvvvuGTduXEaMGJGtttoq+++/fy677LL8+c9/7p8LYdgpdVJWYytfAAAAequura2tcmTZz+bMmZP3v//9efXVVzt9fuedd86tt96aHXfcsc/Hvu2223LUUUdl1apV3bZ73etel+985zuZPn16n/vojQULFmTChAlJkvnz52f8+PED0g+VXnptZaZefOc6X/vF+QdlszEjhuiMAAAAGCgDMf4e8JkjjzzySI4++ui8+uqrGTt2bC6++OLcd999ufPOO/PhD384SfL000/n8MMPz9KlS/t8/D/96U9ZtWpV6uvrc8ghh+SKK67IXXfdlYcffjg333xzjjnmmCTJiy++mHe+85355S9/2Z+XxzDQ2cyRBjNHAAAA6KXGge7g9NNPz/Lly9PY2Jjbb78906ZNa3/ugAMOyE477ZRzzjknTz31VL7whS/kggsu6NPxm5qacsopp2TGjBl5wxvesM5zu+22W4444ojsvffe+X//7/9l+fLlOeuss3LnnXd2cTSqUacLstZbTgcAAIDeGdCymnnz5mXq1KlJklNOOSX//d//XdGmtbU1b3nLW/Lkk09ms802y4svvpimpqZ+P5e99torDz74YOrr6/PSSy9liy226NfjK6sZOs++vDQHXD53na/95uJD7VgDAABQQFVXVnPjjTe2Pz7ppJM6P4H6+hx//PFJksWLF+fuu+8ekHPZf//9k6wJY373u98NSB8MjVInM0ca7VYDAABALw1oOHLPPfckScaMGZM99tijy3b77bdf++N77713QM6l44Kt9UouCqV8zZGG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MmbMmIwdOzYjRowY6lNKIhyhylWsOaKsBgCAKtTW1pZFixZl0aJFQ30qMODWhoAvvvhittpqq2yxxRapqxvasZxwhKpWvuZIo91qAACoQgsXLsyrr766ztfq6urS0NAwRGcEA6OlpSVtbX8dx7388stZvXp1tt122yE8K+EIVa58K18zRwAAqDYrV65cJxjZYostsskmm2TkyJFD/tt06G9tbW1ZtWpVlixZkj/96U9JkldffTVbbLFFRo4cOWTn5dfsVLVmW/kCAFDl/vznP7c/3nrrrbP11ltn1KhRghEKqa6uLqNGjWp/r6+1ePHiITwr4QhVrqVi5oi3NAAA1WX58uXtj8eNGzd0JwKDrOP7vePPwVAwkqSqlc8caTJzBACAKtPS0pIkaWxstMYINaWhoaH9Pb/252CoCEeoauW71TRYcwQAAKBqDJfyMeEIVa2irMZuNQAAAPSRkSRVrbl8K18zRwAAAOgj4QhVrdRiQVYAAAA2jJEkVa3UakFWAAAANoxwhKpmQVYAAKCvZs2albq6utTV1eX3v//9UJ8Ow4BwhKpWOXPEWxoAAIC+MZKkqlWuOWLmCAAAQEf7779/6urqsv/++w/1qQxbwhGqWvnMkQZrjgAAAD048cQT09bWlra2tkycOHGoT4dhQDhCVasoq7FbDQAAAH1kJElVqyirMXMEAACAPhKOUNWay3arseYIAAD0o9bWZNmyNf8tkO52qylfn+MPf/hDzjzzzEyaNCmjR4/OFltskUMOOSS33XZbl8f//e9/3378WbNmJUm+973v5R/+4R+y9dZbZ/To0dlll11y7rnnZvHixV0e58QTT0xdXV2PpT9dXc/a18+dOzdJMnfu3PZ2a/8oK1pDOEJVa2ktnzniLQ0AABvskUeSE05INt44GTt2zX9POGHN12vIvffem7e+9a254oor8tvf/jYrV67MK6+8kttvvz2HHXZYLrvssl4d5+STT87RRx+dO++8My+//HJWrlyZp59+Opdeemne/OY354knnhjgK6EnRpJUtfI1R8wcAQCADfSd7yR77plce22yfPmary1fvubve+655vkasHDhwhx11FFpaGjIJZdcknvvvTcPPPBAvvCFL2TcuHFJkvPOOy+/+tWvuj3OlVdema9//euZOnVqvvOd7+TBBx/MrbfemmOOOaa9n0MOOSRLlizp92u4+OKL89hjj2XPPfdMkuy555557LHH1vlz++2393u/1ahxqE8ANkSzrXwBAKgFra3Jn/408P08/nhy/PFJqdT586XSmudf//rkLW8Z2HPZYotkCDdc+PWvf53tt98+P/vZz7Lddtu1f32vvfbKXnvtlb//+79PqVTKVVddlS996UtdHmfevHk57LDDctNNN6Wx8a9D8EMPPTRvfvObc8EFF2TBggW56KKL8vnPf75fr2G77bbLdtttlzFjxiRJxowZk7cM9H2rUsIRqlpL+cwRZTUAABTRn/6UbL31UJ/FGqVScsABA9/PSy8lW2018P104z//8z/XCUbW2mefffK2t70t999/f+65555ujzFy5Mh87WtfWycYWeuTn/xkrr/++jz++OO55ppr8u///u8ZOXJkv50/vWckSVWzICsAADAQxo0bl8MPP7zL5/fYY48kybPPPtvtcQ4++OBsu+22nT5XX1+fE044IUmyePHiPPzww+t5tmwo4QhVrWRBVgAAYADstNNOqe+mrGfzzTdPkrz22mvdHmevvfbq9vmpU6e2P3788cf7cIb0JyNJqlqpbOZIU4OZIwAAwIbbaKONun1+bXDS2sM2x1v3UA71ute9rv3xK6+80suzo79Zc4SqVr5bTYOyGgAAimiLLdaswTHQPv7x5Prre253zDHJf/7nwJ7LFlsM7PEHSV1d92OUtra2bp9ncAhHqGoVC7IO4WrWAAAwYOrrB2dx0hkzkhtu6Hq3miRpbEzOO2/IF0utFi+++GK3z7/UIfRaW6qzVm9npyxbtmw9z461jCSpauVb+SqrAQCADfDWtybXXrsmAOlMY+Oa59/61sE9ryo2b968Xj9fvs3uxhtvnCT585//3O0xnn766W6f72n2CsIRqlz5miPKagAAYAMdd1zy4IPJCScka9fd2GijNX9/8ME1z9Nrt99+exYuXNjpc62trfnGN76RJNlss82y++67r/P8DjvskGTNoq9dBSCrV6/OD37wg27PYdSoUUmSVatW9enca4lwhKpWvuZIk91qAABgw731rcmsWclrryVLl67576xZZoysh1WrVuWUU05JS0tLxXOXXHJJHnvssSTJP//zP2fkyJHrPL/ffvu1P7788ssrXt/W1pbTTjstf/zjH7s9h2222SbJmm2HrXHSOWuOUNUqtvI1cwQAAPpPfX0yZsxQn0VV23PPPfOjH/0oe++9d84444zstNNOeemll/KNb3wjs2fPTpKMHz8+559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95l+fwd3/3d5k5c2ZeeumlnHnmmfnABz6QTTfdNEnS1NSU7bfffmAuvooIR6hq5WU1jdYcAQAAhpFTTz01c+fOzaxZs3LsscdWPL/NNtvkxz/+cXtYUW7mzJnZb7/92gOVtWU4a5155pnZdddduw1Hjj322Hz2s5/Ns88+my9+8Yv54he/2P7c9ttvn9///vfrdW1FogaBqlY5c8RbGgAAGF5mzpyZ6667Lvvvv3+22GKLjBw5MpMnT84555yTX/3qV3nTm97U5Wt32WWXPPzww/noRz+a7bffPiNGjMhWW22Vd7zjHZkzZ06n5Tblxo4dm/vuuy+nnXZapkyZko3WriVDu7o2BUf9YsGCBZkwYUKSZP78+Rk/fvwQn1FtmDTj1nXWHbnlE/vkLdt1nrgCAMBw9Jvf/CalUimNjY3Zaaedhvp06Ae///3v2xdTnTlzZk488cShPaFhbH3e/wMx/vZrdqpWW1ubBVkBAADYYEaSVK2W1spJT9YcAQAAoK+EI1St8lkjid1qAAAA6DvhCFWruaW14muNymoAAADoIyNJqlZnZTVNZo4AAADQR41DfQKwvppbKsORBuEIAAAwxCZOnBgbw1YXM0eoWp0vyOotDQAAQN8YSVK1OltzpMluNQAAAPSRcISq1dluNcpqAAAA6CvhCFWrpbWTmSP13tIAAAD0jZEkVat8Qdb6uqTezBEAAAD6SDhC1SqVhSONZo0AAACwHowmqVqlsrKaRouxAgAAsB6EI1St8gVZLcYKAADA+hCOULXKt/JtavB2BgAAoO+MJqlaLa3la46YOQIAAEDfCUeoWpULsgpHAAAA6DvhCFWrvKymUVkNAAAA68FokqpVUVZjtxoAAADWg3CEqtVszREAAAD6gXCEqtXSWlZWU+/tDAAAQN8ZTVK1mssWZG1SVgMAAFSRiRMnpq6uLieeeOJQn0qf7L///qmrq8v+++8/1KfSb4QjVK3y3WoalNUAAACwHoQjVK2Kshq71QAAALAejCapWspqAAAA6A/CEapWqWzmSIMFWQEAoF+1trZl+epSWst2iiyK1atX58orr8z06dOz1VZbZcSIEXn961+fww47LN/61rfSWjbmWKu3a25ceOGFqaurS13dur/IXfv65557LknyjW98o73d2j8dj/373/++/euzZs1Kknzve9/LP/zDP2TrrbfO6NGjs8suu+Tcc8/N4sWLuzyfE088MXV1dZk4cWK35z1r1qz2/n7/+99XvH7u3LlJkrlz51acd0/HHq4ah/oEYH2Vyv6BbrLmCAAA9Isn/rgkV9/7bG577IWsaG7J6KaGHLrr6/OhfXbMm7bdZKhPr18899xzOfTQQ/Pkk0+u8/UXX3wxt912W2677bb8z//8T2666aZsvvnmQ3SWnTv55JPz9a9/fZ2vPf3007n00ktz7bXX5o477sib3vSmITq76uRX7VQtC7ICAED/u+mXf8g/fuXe3PDwH7KiuSVJsqK5JTc8vObrN/3yD0N8hhtu6dKlOeCAA9qDkSOPPDI333xzHnzwwXzve9/LfvvtlyS599578853vjMtLS392v/MmTPz2GOPZdttt02SvOtd78pjjz22zp+ZM2d2+torr7wyX//61zN16tR85zvfyYMPPphbb701xxxzTJJk4cKFOeSQQ7JkyZJ+Peckufjii/PYY49lzz33TJLsueeeFed9++2393u/g8HMEapWqWXdKW5NFmQFAKCgWlvbsnj56gHv59cvvpYzr38kLV2U0ZRa23Lm9Y9k641HZvLrNh7Qc9lsoxGpH6BfgH7605/Os88+myT51Kc+lYsuuqj9uT322CPvec978sEPfjDf/va38/Of/zxXXXVVPvrRj/Zb/zvssEOSpKmpKUkybty4vOUtb+nVa+fNm5fDDjssN910Uxob/zqkP/TQQ/PmN785F1xwQRYsWJCLLroon//85/vtnJNku+22y3bbbZcxY8YkScaMGdPr8x7uBi0cef755/PlL385c+bMyfPPP5+RI0dm0qRJOfroo/Oxj30sG220Ub/0M3v27MycOTOPPvpoFi9enNe//vXZd999c+qpp+btb397v/TB8FBeVtNoQVYAAApq8fLV2ePf7xjq00iStLS25biv/d+A9/PQp/4hW4wd2e/HXbVqVa6++uokyZve9KZceOGFFW3q6upy5ZVX5n//93/zpz/9KV/5ylf6NRzZECNHjszXvva1dYKRtT75yU/m+uuvz+OPP55rrrkm//7v/56RI/v/e1hEg/Kr9jlz5uRv/uZvcvnll+epp57K8uXLs3jx4sybNy//8i//kt133709tVtfK1euzBFHHJHjjjsut99+e1544YWsWrUqzz33XL71rW9l7733XicNpPqVhyPKagAAgJ489NBD+fOf/5xkzQKjDQ0NnbbbZJNNcvTRRydJnnjiiSxcuHCwTrFbBx98cHs5Trn6+vqccMIJSZLFixfn4YcfHsxTq2oDHo488sgjOfroo/Pqq69m7Nixufjii3PfffflzjvvzIc//OEkaxaOOfzww7N06dL17ufkk0/OLbfckiSZPn16brzxxjzwwAO55ppr8sY3vjGtra254IIL2hNCql9zeVmN3WoAAIAePP744+2P3/a2t3XbtuPzHV83lPbaa69un586dWr74+FyztVgwMtqTj/99CxfvjyNjY25/fbbM23atPbnDjjggOy0004555xz8tRTT+ULX/hCLrjggj73MXfu3Fx33XVJkiOOOCI//OEP29O/vfbaK//4j/+YPfbYI88//3zOOeecvPe97824ceP65fqqXWtrW1aWWjKqsaFX9XzDqX15HaSyGgAAoCevvPJK++PXve513bZ9/etf3+nrhtLWW2/d7fMdr2m4nHM1GNBwZN68ebn77ruTrJnZ0TEYWeuss87KzJkz8+STT+aLX/xizjvvvPZFaXrrc5/7XJKkoaEhV155ZcW0qC233DKXXnppjjvuuCxevDjXXHNNzjrrrPW7qILo69Zcw7H9T3+9aJ2v3f/sn/LEH5cUZmsxAABYa7ONRuShT/3DgPdzwU2/ypzHei4feeffbJNP/+ObB/RcNttoxIAeP1mztkh32to6X5h2KFXjOVeDAQ1HbrzxxvbHJ510Uqdt6uvrc/zxx+e8887L4sWLc/fdd+eggw7qdR9Lly7NnXfemSQ56KCDMn78+E7bvfvd784mm2ySJUuW5IYbbqjpcOSmX/4hZ13/yDprdqzdmuvmX/4xlx/91rzrb7erqvZJ8tuXl+Ufv3JvRXsAAKh29fV1A7I4ablTp0/Kj3/1QsVn7Y4a6+vysf0nDcr5DITNN9+8/fELL7yQyZMnd9n2xRdf7PR19X8p6W9tba14TUfLli1b39Ps1Tl15qWXXmp/3PGck6E97+FuQBdpuOeee5Ks2d5njz326LLd2j2kkzX7SPfFAw88kFWrVlUcp9yIESPad6t54IEH0tzc3Kd+iuKJPy7pNFhYa+3WXD956qXMf2V5fvLUSzmzytqfdf0jeeKP/b+nNwAAFN2btt0klx/91jR2UeLeWF+Xy49+a1XP1u649ez//V/3u+488MADnb5u443XbGO8ePHibl//9NNPd/t8T7NAOjNv3rxeP1++ze7a8167IG1XBuK8h7sBnTny5JNPJkkmTZrU6TZDa+2yyy4Vr+lrH+XH6aqf22+/PaVSKb/5zW/ypje9qdf9LFiwoNvnh8vKxT25+t5nu02BkzVreZw0q/sfuOHcvtTalmvu/V0uP/qtvX4NAACwxrv+drvstPXGuebe3+XWxxa2l70ftus2OXmfHao6GEmSPfbYI+PGjcuf//znfOMb38iZZ57Z6Y41r732Wq6//voka7b83Wabbdqf22GHHZIkv/71r/Paa6+1hw4dvfzyy7njju63Xx41alSStP/Cvzduv/32LFy4cJ3zWau1tTXf+MY3kiSbbbZZdt9993WeX3ver732Wp5++unsvPPOFcdYvXp1fvCDH/T7eQ93AzZzZOXKlVm0aM2aEF2Vuqy12WabZcyYMUmS+fPn96mfju176mfChAmdvq43JkyY0O2fjisCD1etrW257bEXhvo0BsWtjy1Maw8hEAAA0Lm1M0h+9elD8sRnDsmvPn1I1c8YWWvkyJH50Ic+lCT51a9+lU9/+tMVbdra2vLxj3+8fUz78Y9/fJ3n11YtrF69Ov/5n/9Z8frm5uacfPLJWbFiRbfnsjbg+O1vf9vr81+1alVOOeWUtLS0VDx3ySWX5LHHHkuS/PM//3NGjly39KljtcXll19e8fq2tracdtpp+eMf/9ir83722WcLs8bJgM0cee2119ofjx07tsf2Y8aMybJly/q8nW9f+lkbwCTZoG2Dq9XKUktWNFf+ABXRiuaWrCy1ZKMRA74hEwAAFFZ9fV0hP1NfcMEFueGGG/Lss8/moosuyuOPP55//ud/zrbbbpvf/e53+cpXvtK+uci0adPykY98ZJ3XH3744dl+++3z3HPP5fzzz8+iRYvy7ne/O6NGjcrjjz+eL3/5y/nlL3+Zt73tbd2W7vzd3/1dfvKTn2TevHm55JJLcuihh7aPW0ePHp3ttqtcS3HPPffMj370o+y9994544wzstNOO+Wll17KN77xjcyePTvJmokD559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95t+c9c+bMvPTSSznzzDPzgQ98IJtuummSpKmpKdtvv333N2AYGrB3+cqVK9sfjxjR8yrDaxOtnpK1DemnY2rW1356mmmycOHCYT97ZFRjQ0Y3NdREQDK6qSGjGiunxgEAAGy88ca58847c+ihh+app57KD3/4w/zwhz+saLf33nvn5ptvrii7GTFiRL71rW/lHe94R5YtW5YrrrgiV1xxRfvzDQ0N+cIXvpA///nP3YYjH/3oR/PVr341r7zySs4777ycd9557c/tt99+7QFNR6eeemrmzp2bWbNm5dhjj614fptttsmPf/zj9rCi3MyZM7Pffvu1Bypry3DWOvPMM7Prrrt2G44ce+yx+exnP5tnn302X/ziF/PFL36x/bntt98+v//977t87XA1YGU1a2uQkjVTjXqytlZp9OjRA9ZPx3qovvYzfvz4bv90Vu813NTX1+XQXV/fc8MkR/7ttnnyM+/Iu/5226psf9iu26S+i0WkAAAAJk6cmEceeSRf+cpXst9++2WLLbZIU1NTXve61+Ud73hHvvnNb+anP/1pxY4va+2zzz556KGH8sEPfjDbbrttmpqass022+Q973lPfvrTn+b000/v8Ry22267PPDAAzn55JMzadKkdca33Zk5c2auu+667L///tliiy0ycuTITJ48Oeecc05+9atfdbu+5i677JKHH344H/3oR7P99ttnxIgR2WqrrfKOd7wjc+bM6bTcptzYsWNz33335bTTTsuUKVOy0UYb9eq8h7MBmznScUGa3pSwrN0qqDclOOvbT8ftiPraT1F8aJ8dc/Mv/9jj1lwf+fs3ZvSIhpzy92/MnEcXVl37k/fZocvnAQAAkjUzQE499dSceuqp6/X6nXfeOddee22Xz1944YW58MILuz3GG9/4xlx99dV97vu4447Lcccd1+fXJWtCmSuvvLLL50888cSceOKJ3R7jda973TozRqrdgM4c2XLLLZP0vNPL4sWL24OLjoum9kbHRVh76qdjaUxf+ymKvm7NVe3tAQAAoCcDurLOlClTcs899+SZZ55JqVTqcjvfp556ap3X9EXH6UIdj9NdP42NjZk0aVKf+imSvm7NVe3tAQAAoDsD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jl22e+Mb39j+eNWqVX3qg6Hncxgd+RxWLD6HDV/CkSp0zz33JEnGjBmTPfbYo8t2++23X/vje++9t099PPDAA+0fpjoep9yIESPy9re/vf01zc3NfeqHrg3Gfe6tjh+s6+v9s9GfBvs+l0qlfOQjH0lra2v+9V//NTvvvPN6H4veG4z7vHr16vZ1Rg499NCMHTs2yZp7/txzz+X5559fZ2BN/xuM+7zllltm8803T5I8++yzXbb77W9/2/548uTJfeqDoedzGB35HFYcPocNb366qtCTTz6ZJJk0aVIaGxu7bLfLLrtUvKavfZQfp7t+SqVSfvOb3/SpH7o2GPe5t+bOnZskaWxszKRJkwakj1o12Pf5sssuyyOPPJI3vvGNmTFjxnofh74ZjPv8yCOPZOXKlUmSadOm5YUXXshJJ52UcePGZeLEidl+++2z6aab5rDDDst99923HldBTwbr5/kjH/lIkuThhx/Obbfd1mmbiy66KEnS0NCQD33oQ33ug6Hlcxgd+RxWHD6HDW/CkSqzcuXKLFq0KEl63Glgs802y5gxY5Ik8+fP71M/Hdv31M+ECRM6fR3rb7Duc2/MmTMnjz76aJLkkEMOaZ++y4Yb7Pv87LPP5jOf+UyS5Morr8yoUaPW6zj0zWDd5yeeeGKdPnfdddfMmjUry5YtW+frt912W/bdd9988Ytf7NPx6d5g/jx/8pOfzD/8wz8kSY466qicffbZue222zJv3rx897vfzf7775/vf//7aWhoyJe//OVMmTKlz30wtHwOYy2fw4rD57DhTzhSZV577bX2x2unTHdn7Yevvm4X2Jd+1vaxPv3QucG6zz155ZVXcuqppyZZ89vHtb+JpH8M9n0+5ZRTsmLFihxzzDGDulVdrRus+/zKK6+0P/70pz+dRYsW5Z3vfGcefPDBrFy5Mi+++GKuvPLKbLLJJmltbc2ZZ57Z5awD+m4wf57Hjh2b2267LV/72tcyfvz4XH755TnssMMyderUHHvssZk7d27e/e5352c/+1k+9rGP9fn4DD2fw0h8Disan8OGP+FIlVk7ZTpZU2fak5EjRyZJVqxYMWD9rO1jffqhc4N1n7vT0tKS97///XnuueeSJJ/61Key22679dvxGdz7fO211+aOO+7IJptskiuuuKLPr2f9DdZ97jhDZNWqVTniiCNy0003ZY899sjIkSOz9dZb56Mf/WjmzJmT+vr6tLW15ZxzzklbW1uf+qFzg/3v9oMPPpjvfOc7Xa47cscdd+Qb3/hGlixZsl7HZ2j5HIbPYcXic1h1EI5UmY7Tr3qzsN7aBZxGjx49YP10XCSqr/3QucG6z9352Mc+lv/93/9Nkhx++OE5//zz++3YrDFY93nRokXtO5dcfPHF2Wabbfr0ejbMUPy7nSSf//znO124b5999sm73/3uJMnjjz+exx9/vE/90LnB/Hf7+9//fvbff//cdddd2XXXXfPDH/4wf/rTn7J69er89re/zX/8x3+kubk5X/3qV/N3f/d3eeGFF/rcB0PL5zB8DisOn8Oqh3Ckymy88cbtj3szdXLtbxJ7M8V3ffvp+NvKvvZD5wbrPnflvPPOy1VXXZVkzUDqe9/7XhoaGvrl2PzVYN3nM888M4sWLcqee+5piv0QGIp/t3fYYYduV8A/5JBD2h/PmzevT/3QucG6zy+++GJOPPHErFq1Km9+85tz33335cgjj8zmm2+epqam7LjjjjnvvPPyox/9KHV1dfnVr36VT3ziE327GIacz2G1zeewYvE5rHp0vZQ6w9KoUaOy5ZZbZtGiRVmwYEG3bRcvXtz+P8yOi3X1RsfFvxYsWJA999yzy7YdF//qaz90brDuc2cuvfTSXHLJJUmS3XffPbfccovfRA2QwbjPf/zjH/PNb34zSXLAAQfk+uuv77b9Sy+9lNmzZydZM8B+29ve1uu+6Nxg/Tx3bN+XBRxfeumlPvVD5wbrPs+ePbv9tTNmzFhnvYmODjzwwBx44IG54447csMNN2Tx4sXZbLPN+tQXQ8fnsNrlc1ix+BxWXYQjVWjKlCm555578swzz6RUKnW5XeBTTz21zmv64k1velOnx+muH9uL9a/BuM/lrrzyypx77rntx/rxj3+cTTfddIOOSfcG+j53nI79uc99rsf2Tz75ZI477rgkyQknnOB/yv1kMH6e3/zmN7c/bmlp6bZtx+e723KWvhmM+9xxi9fdd9+927Z77LFH7rjjjrS2tubXv/61n+cq4nNYbfI5rHh8Dqsuymqq0D777JNkzTTKhx56qMt2a/dET5K99967T33stdde7QuAdTxOudWrV+f++++veA0bbjDuc0ff/OY38/GPfzxJsuOOO+aOO+7Illtuud7Ho3cG+z4zNAbjPm+//fZ5wxvekCT57W9/223bjs9vt912feqHrg3Gfe4YuJRKpW7bNjc3d/o6hj+fw2qPz2Ew9IQjVejII49sfzxz5sxO27S2tubaa69NkowbNy7Tp0/vUx8bb7xxDjzwwCRrVrzvaorwDTfc0L4S/lFHHdWnPujeYNzntW644YacdNJJaWtry/jx43PnnXdm2223Xa9j0TcDfZ8nTpyYtra2Hv+std9++7V/bdasWet1TVQarJ/n97znPUnWrEtx3333ddnuhhtuaH+877779rkfOjcY93mHHXZof3zPPfd02/anP/1pkqSuri4TJ07sUz8MLZ/DaovPYcXlc1iVaaMq7bvvvm1J2hobG9vuu+++iuc/97nPtSVpS9L2b//2bxXPz5w5s9vn29ra2u688872Nv/4j//YViqV1nn+5ZdfbnvDG97QlqRt3Lhxba+88kp/XBodDMZ9/vGPf9w2YsSItiRtW2+9ddtTTz3Vz1dBTwbjPvdk7ev322+/9Xo9PRuM+/zcc8+1jRo1qi1J2x577NG2dOnSijbf/OY3249z+OGHb+hlUWag7/OTTz7ZVldX15akbbvttmtbsGBBp+fxP//zP+3HmTZt2oZeFt343e9+1/69PuGEE3r1Gp/Dqs9A3Wefw4aXgbrPPfE5bHgwx7JKfelLX8ree++dFStW5OCDD86MGTMyffr0rFixIrNnz25f4Xry5MntW0f11QEHHJBjjz02s2fPzs0335yDDjoop59+erbddts89thjufjii/P8888nSS655BILvQ2Agb7P999/f4466qisXr06TU1NueKKK9Lc3Nzt1p7jx4/PuHHj1veS6MRg/Dwz9AbjPr/hDW/IZz7zmZxzzjl56KGHMnXq1Jxzzjl5y1vekldffTU33HBD/vu//ztJsskmm+SKK67ot+tjjYG+z7vssktOOumkfP3rX88f/vCH7Lbbbjn99NOz7777ZuONN878+fMze/bsXHfddUmShoaG/Md//Ee/XmOtu/fee/PMM8+0/33RokXtj5955pmK3/aeeOKJ69WPz2FDazDus89hQ2+wfp6pEkOdzrD+br755rZNNtmkPWks/zN58uS23/zmN52+trcJ5/Lly9sOO+ywLvuor69f74SU3hnI+/xv//ZvXR63qz8zZ84c2AuuUYPx89ydta/3G4uBNVj3+dxzz22fXdDZn6233rrTWQ30j4G+zytXrmw75phjevz3esyYMW3f/va3B/BKa9MJJ5zQp/9vdsbnsOFvMO6zz2FDbzB/nrvjc9jwYM2RKnbEEUfk0UcfzRlnnJHJkydno402yrhx47Lnnnvm0ksvzS9+8YsNXrV89OjRmTNnTr797W/noIMOytZbb50RI0ZkwoQJed/73pd77703F154Yf9cEJ0ajPvM0HOfa8Ng3efPfvaz+dnPfpYPfvCDmThxYkaOHJlNN900e+21Vy666KL8+te/zrRp0/rhiujMQN/nkSNHZvbs2bnrrrty/PHHZ/LkyRkzZkwaGxuz+eabZ9q0aTn//PPz1FNP5X3ve18/XhmDzecwgMFT19bWYQUYAAAAgBpj5ggAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANQ04QgAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANS0/x9IX8EnCxQPPAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "delayer = time_delay_system(.1, simulation_dt, inputs='u', outputs='ud')\n", + "t, y = ct.input_output_response(delayer, time, step_input) \n", + "plt.plot(time, step_input, 'r.-', label='input')\n", + "plt.plot(t, y, '.-', label='output')\n", + "plt.legend()\n", + "delayer" + ] + }, + { + "cell_type": "markdown", + "id": "862ce22c", + "metadata": {}, + "source": [ + "We can incorporate this delay into our closed-loop system. The time delay shifts the response to the right and brings the system closer to instability." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d8f6e5b3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9t5vO+02zcsZFpqAACCGzM/JkLOdX8L8DgYA65AcAYAYkZmarEuG9231cafdpkVzxykzNTmEUQFAbMhMTdaiuePaTJDwOxgArBOy5MiBAwf0ve99T2PGjFFSUpJ69+6tKVOm6NFHH1V1dXWXXKOwsFD33HOPsrKylJycrLi4OPXr10/Tp0/X448/rhMnTnTJdQAgUlWcrG+25nY5NGdCmlYuyNHs7EEWRAUAsWF29iCtXJCjORPSFO9s/jZ8TAqJEQCwis3v9wd9VtiqVat02223qbKyssXHR40apdWrVysjI6PT11i0aJF++MMfyuv1trpnyJAhWrlypcaOHdvp67SmuLhY6enpkqSioiKlpaV1+TUA4FxU1XqU/fAbOntC5F/mTdHF5/XlfDsAhJjXa+jiX7+jQyfqGte+c8UI3XfVSAujAoDIEIzP30GvHMnPz9fcuXNVWVmpbt266ec//7k+/PBDvf322/r6178uSfrss8903XXX6eTJk526xrJly/S9731PXq9XcXFx+u53v6tVq1bp448/1t/+9jfl5ORIkvbv369rr7221SQNAESzTw4cNyVG4hx2TRram8QIAFjA6bTr+rGpprVXt5YqBN9bAgBaEPTkyL333qvq6mo5nU698cYbeuCBBzR16lRdfvnlevrpp/Wb3/xGkrRjxw499thjnbrGz372s8bby5cv12OPPaaZM2dqypQpuvXWW7Vu3TrddNNNkqSysjItWbLk3P9gABBhNu07aro/Nq2HEgIcLQkA6HrXjU0x3d9z+JR2lHMMHACsENTkyMaNG/Xee+9JkubNm6epU6c227Nw4UKNGTNGkvTb3/5WHo+nQ9eoqqrSp59+KkmaMGGCrrvuuhb3/eQnP2m8/eGHH3boGgAQDTY2SY5MGtrbokgAAJI0YXBPDerpNq29urXUomgAILYFNTny8ssvN96+6667Wg7Abtftt98uSTp27FhjMiVQ9fVnmgu21bPkvPPOa7xdV1fX6j4AiEb1XkN5RcdNa5OH9rImGACAJMlmszWrHnl1axlHawDAAkFNjqxbt06SlJSUpIkTJ7a6b9q0aY23c3NzO3SNvn37qnfv099+7tmzp9V9n3/+eePtkSNpdAUgtmwrrVStxzCtTRxCcgQArHZdljk5sv9ItbaVVlkUDQDErqAmR7Zv3y5JGj58uJxOZ6v7Ro8e3exnOuIb3/iGJGnLli1as2ZNi3sa+pI4HA7Nnz+/w9cAgEi2ad8x0/2RA7qpZ2KcRdEAABqMTeuhwb0TTWuvcLQGAEKu9YzFOaqtrVVFRYUktTtWp1evXkpKStKpU6dUVFTU4Wv993//tzZt2qS33npLN954oxYsWKArrrhCffv21Z49e/TUU09p7dq1cjgc+t3vftfY46QjiouL23y8rKysw88JAKFCvxEACE8NR2ueeu9MlfOqrWX64bWjZbMxTQwAQiVoyZETJ8502u7WrVu7+xuSI50Z59utWzetWbNGS5cu1a9+9SstWrRIixYtMu256aabdP/99+vCCy/s8PNLapyhDACRxu/3a9N+c+UI/UYAIHxcl2VOjhQfq1F+caWy03taFxQAxJigHaupra1tvB0X137pdnx8vCSppqamU9fbtGmT/v73v7fad+Stt97Ss88+q6oqznACiC17Kk7p6Kl609qkIVSOAEC4OD81WcP6JpnWXs3naA0AhFLQkiMJCQmNt8+eKNOahgkybre7nZ3Nvfjii7rsssv0zjvvKCsrS//617905MgR1dfX6/PPP9cvfvELeTwePfXUU7r44otVXl7e4WsUFRW1+c+GDRs6/JwAEAqbmhypGZicoLReHf9dCwAIDpvN1qwx66qCMhkGU2sAIFSCdqyme/fujbcDOSpz6tQpSYEdwTnbwYMHdeedd6qurk7nn3++PvzwQyUlncm8Z2Rk6Ec/+pGmTJmiq666Stu2bdM999yjf/7znx26Tnt9UwAgXDVtxjpxaC/OsQNAmLl+XIqefHd34/2yylp9UnRME6n0A4CQCGrlSN++fSW138z02LFjjcmRjvb2eOGFFxp/9oEHHjAlRs52xRVX6IorrpAkLV++XMeOHWtxHwBEm2b9RhjhCwBhZ9SA7hre3/wl4Sv5NPwHgFAJ6ijfhqkwu3fvltfrbXXfjh07mv1MoM4e/TthwoQ2906cOFGSZBiGdu7c2aHrAEAkOnyiTnsrTpnWmFQDAOGnpaM1qzlaAwAhE9TkSE5OjqTTR2Y2b97c6r61a9c23r7kkks6dA2n88zJoLYSMJLk8Xha/DkAiFab95v7jXSLd2r0wO6t7AYAWOmGcebkyKETdc1GsQMAgiOoyZEvfvGLjbefeeaZFvcYhqHnnntOktSzZ09Nnz69Q9cYNmxY4+1169a1uff999+XdDozP3To0A5dBwAi0cYm/UbGD+4ppyOov/oBAJ00vH/3ZgnsV7dytAYAQiGo75CnTJmiSy+9VJK0ZMkSffTRR832LFq0qPFozH/913/J5XKZHl+6dKlsNptsNpseeuihZj9/3XXXNTYW/PnPf66SkpIWY3n66ae1adMmSdJFF12kPn36dPrPBQCRoumkmskcqQGAsNb0aM2aT8vk42gNAARd0L8+fOKJJ+R2u+X1enX11Vfrl7/8pdavX693331Xd999t+6//35J0siRI7Vw4cIOP//o0aN11113SZJKSko0fvx4/eIXv9C6deuUl5enV155RbfddpvuvvtuSZLD4dAvfvGLrvsDAkCYqq736tPSKtPapKE0YwWAcHbdWHNypOJkvT7ec8SiaAAgdgS98cb48eP1j3/8Q1/96ldVVVWlBx54oNmekSNHatWqVabxvx3xhz/8QadOndI//vEPHT58WP/93//d4r6kpCQ9/fTTuuyyyzp1HQCIJHkHjpu+bXTabcpO72ldQACAdmX066bMlGQVlp1Jbr+ytUwXD+9rYVQAEP1CcvD8hhtu0NatW/Xd735XI0eOVGJionr27KlJkybp17/+tT755BMNHz68088fHx+vF154Qe+8845uv/12jRw5UklJSXI6nerdu7emTp2qH//4x9qxY4e+8pWvdOGfDADCV9N+I+cP6qHEOJpRA0C4u75JY9bXPi2T12dYFA0AxAab3+/nEGMXKC4uVnp6uiSpqKhIaWlpFkcEINZ9bcnHWrerovH+vJxh+vH1mRZGBAAIxIEj1frCI++a1p77jyn6wsh+FkUEAOElGJ+/GVkAAFHI6zO0Zb+5cmQy/UYAICIM7pOosWk9TGuvbi21KBoAiA0kRwAgCu0oP6FT9T7T2sQhTKoBgEhxfZPGrK9vO6h6L0drACBYSI4AQBRqOsJ3WN8k9eseb1E0AICOmtlkpG9ljUcf7K5oZTcA4FyRHAGAKLSxyZGaSUM4UgMAkSStV6LGD+5pWvvXJ8UyDNoFAkAwkBwBgCjj9/ubVY5MHsqRGgCINNePTTXdX5lfpvN/8rruW5anwtKqVn4KANAZJEcAIMoUH6vRwao609okmrECQMRxtvBOvcbj0/ItJZr1ZK5W5JWEPigAiFIkRwAgymxsUjXSJylOw/omWRQNAKAz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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# incorporate delay into system by relabeling plant input signal\n", + "plant_simulator = ct.ss(plant_simulator, inputs='ud', outputs='y')\n", + "\n", + "# system from r to y\n", + "Gyr_simulator = ct.interconnect([controller_simulator, plant_simulator, u_summer, delayer], \n", + " inputs='r', outputs='y')\n", + "\n", + "# simulate\n", + "t, y = ct.input_output_response(Gyr_simulator, time, step_input)\n", + "plt.plot(t, y, '.-');" + ] + }, + { + "cell_type": "markdown", + "id": "c6c41775", + "metadata": {}, + "source": [ + "We can also observe how the dynamics behave with a nonlinear plant." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "83655c36", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1PP8inOrvFQ77qpyvOrnqf5Z3a+xESFqFh1W/QRU4/fhiCRdeeWVeumll3To0CGtWLFC55xzTo3nzZ4927N97rnnNlV78DFTp07V448/Lsn9H5SSkhL94x//0Icffqht27ZJknr06KGbb75Zv//97086ymj37t165ZVXtGDBAu3du1cOh0MpKSkaMWKE/vSnP510XZuKJ8g89thjmjp1qlavXq0XX3xRS5cu1eHDh5WUlKQRI0Zo8uTJ6tGjR6N81qrat2+vPXv26JZbbtH06dO1ZcsWvfDCC/r666+VmZmphIQEnXPOOfrzn/+ss88++5T327dvn/75z39q/vz52rVrl4qLi9WyZUsNHjxYv//97zV8+PBa35uTk6M5c+Zo0aJFWrt2rfbu3auysjIlJibqzDPP1JVXXqkJEyYoLKzm/7jv3r1bHTp0kCS98847mjBhgmbPnq233npLP/30k7KysjR06NAan+oDAABOn8vlktMl2Z1OOZwu2Z0uOY+/Vt93eupOp+RwuWsOp9w1l/uY58flfq/jeN3lkqHudOnEOcff7zzej9N14vyKmstVcV5F38ZzK7/fVcM58pzj/rJauVbx/oovxMb94+fqxJdul6vKtuT5gl35S/yJL/DujYp99+knrnP87Ybf/aqeV3GOKp3nOfskx2v9wm4IE2oPHFyGcyt93qqfsXJPVf4Mqv3ZGXqu/mdWtb9gc8ewjnp4TMO+SwQbnw9Hpk+frokTJ0o68SWyqnvvvVevv/66SkpKdPfdd2vJkiWKjo42nDNjxgzPl6KxY8eywCokSYcOHdLo0aO1fv16Q3316tVavXq1FixYoDlz5tT4BKT33ntPt99+u0pLSw317du3a/v27Zo2bZqefPJJPfzww6fs49VXX9V9990nu93uqR04cEAzZszQ7NmzNW/ePJ133nkN/JR1M3v2bI0fP15FRUWeWlZWlubMmaMvvvhC//nPf3TttdfW+v5p06bprrvuUnFxsaGekZGhjIwMffzxx7rtttv0r3/9q8bAqV+/ftqzZ0+1+qFDh7RgwQItWLBA//rXv/Tll1+qVatWJ/0sLpdLN998s95///1TfWwAAExR8eW83OFSudOpcrs7LCg7/mp3OFXmcMrucMnudKrM7n61O1yGernDfW758ffUdtzudKnc4fTc0+48cR/3uSeu76lXCjUcld7vqVdcr1KIAcDH8Neyzrwajixbtkzbt2/37GdnZ3u2t2/frunTpxvOnzBhQoPu07ZtWz3xxBN66KGHtGbNGqWnp+uhhx5Sr169lJubq9mzZ+tf//qXJCkuLk4vvfRSg+6DwHPFFVdo8+bNuvvuuzVu3DglJiZq69atevLJJ7V582Z98cUXevPNN3XHHXcY3jd37lxNmDBBLpdLMTExmjRpki688EKFhIRoxYoVevrpp5Wdna3JkycrISFBf/jDH2rtYf78+frhhx/Up08f3XPPPerdu7eKi4v16aef6pVXXlFRUZHGjx+vbdu21Tpq4nRt2LBBH330kVq3bq1JkyZp4MCBcrlcmj9/vp555hmVlJTo9ttv14gRI9SiRYtq73/77bf129/+VpLUq1cv3XHHHerXr5+ioqK0a9cuTZs2TV9++aWmTZum+Ph4vfDCC9Wu4XA4dNZZZ+niiy9Wv379lJycrLKyMu3atUszZszQV199pXXr1um666475eiPl19+WRs2bNC5556rP/zhD+ratauOHTum3bt3N8YfFwDAjzicLpXaHSotd6rU7nRv253H9x0qsztV6nCqzF7px2HcLj2+Xe448VNmd4cQ5cfrZZ5jruPHjfsVr/aKbaczqP81GwB8jVfDkbfeekvvvvtujceWL1+u5cuXG2oNDUck6cEHH9TRo0f17LPPatOmTTVeq2XLlpozZ466dOnS4PuYxel0KaeozOw2mkyzqDBZrRav36didMj555/vqfXv31+jR4/WGWecoUOHDum1114zhCPl5eW64447PMHI0qVL1bdvX8/xs88+W1deeaUGDx6szMxMPfDAA7r66quVlJRUYw/ff/+9fvOb3+jTTz81hB/nnnuumjdvrkcffVR79+7V3Llzdfnllzf6n4EkrVu3TgMGDNCiRYsUHx9v+CydO3fWTTfdpLy8PM2YMUP33Xef4b0ZGRm66667JEm33HKL3nrrLcPIkH79+umKK67QI488or/97W96+eWXdccdd6hr166G63zzzTc1/t0855xzdOONN+qdd97RrbfeqiVLlmjRokW64IILav08GzZs0M0336zp06d7pi8BAHxLmd2p4jKHisrtKix1uLfL7Coqd6io1L1dYneqpMyhknKHissdKil3qrjcoVLP/ol6SXlF6HH89XgQUu4ggQAAnJrPT6upj6efflqXXHKJXn/9dS1dulSZmZmKiIhQ165ddckll+iuu+4yfPHzJzlFZRrwfwvNbqPJrHn0QjWPCff6fe666y5DMFIhMTFREydO1DPPPKMNGzYoNzfX87+dTz/9VPv375ckPfLII4ZgpEK7du303HPP6aabblJRUZHeeecdPfjggzX2EBERoXfeeafGUSF33323nnjiCZWVlWnp0qVeC0ck9+iPmv5+3HDDDXrooYd04MABLV26tFo4UjG6pU2bNrVOmZGkxx9/XO+++67279+v9957T//3f/9nOH6q0HLixIn6xz/+oXXr1mnOnDknDUcSEhL06quvEowAQCNyOF0qKLUrv6Rc+SV25ZfYVVhqV0Fp5VeHCstO1Az1UruKytzHi8scsjMFA5JsVotsFousVinEapXVcrxW8WOxyFp1+/hrxblWi+X4qzzbNqtFFotFtuM1i8Uim9W9ba30fs++RbIcv56lYl8V9RPnWK0WWeSuWSzyXMMiSdXed+I8i06cX7GtiutInvu4z3Vfy32fE+dX7Evumjy14/evOL/SOZV/Far4vajqdU5sn7iG52i1Y5Zq51Xt6WTnV+xZTpx6/HMY65X/LNzXN/ZiqeHPR7Xdp8pnNfZf83Vruo4M76vlz6KWz1f5/lX/fIz7xut4Xmp530nfqxP/m0bdeDUcmT59erWpM/U1YcKEeo0oGTx4sAYPHnxa90TwuPHGG2s9NmDAAM/2rl27PCHIwoXukMpisejWW2+t9f1XX3217rzzTuXm5mrhwoW1hiMjR45Uy5YtazwWGxurLl266JdfftHOnTtP9XEarHfv3urTp0+NxywWi/r166cDBw7U2MNnn30mSRo3bpwiIiJqvUdISIgGDx6sWbNmaeXKlSftx+Vy6dChQ8rLy1NZ2YkRU23atNG6deuqrRFT1bhx4xQbG3vScwAg2DidLuWX2JVbXG74OVZcptzicuUV25XnCT6qvrpDDjQtm9WiEKtFYTarQmwWhdisJ7atFoXarAo9vh9qPXFOqNVi2HafY1WozR0ahNqs7lerRbbj73Mfq3SO1X2O+15WTy+G/eN9VOxX1GyWGratVk8AUnFuRSAAAL4goEaOAPXVvXv3Wo8lJiZ6tvPz8z3bGzdulOR+0kttoYYkhYWFqV+/flq8eLHnPfXtoXIflXtobA3tITc317Ou0L//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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "def nonlinear_plant_dynamics(t, x, u, params):\n", + " return -10 * x * abs(x) + u\n", + "def nonlinear_plant_output(t, x, u, params):\n", + " return 5 * x\n", + "nonlinear_plant = ct.ss(nonlinear_plant_dynamics, nonlinear_plant_output, \n", + " inputs='ud', outputs='y', states=1)\n", + "\n", + "# compare step responses \n", + "t, y = ct.input_output_response(nonlinear_plant, time, step_input)\n", + "plt.plot(t, y, label='nonlinear')\n", + "t, y = ct.step_response(plantcont, 1.5)\n", + "plt.plot(t, y, label='linear')\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "a7a163d6", + "metadata": {}, + "source": [ + "## now create a closed-loop system. \n", + "\n", + "Note that this system is not intended to show operation of well-designed feedback control system. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "dce984be", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 546 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# create zero-order hold approximation of plant2 dynamics\n", + "def discrete_nonlinear_plant_dynamics(t, x, u, params):\n", + " return x + simulation_dt * nonlinear_plant_dynamics(t, x, u, params)\n", + "nonlinear_plant_simulator = ct.ss(discrete_nonlinear_plant_dynamics, nonlinear_plant_output, \n", + " dt=simulation_dt,\n", + " inputs='ud', outputs='y', states=1)\n", + "\n", + "# system from r to y\n", + "nonlinear_Gyr_simulator = ct.interconnect([controller_simulator, nonlinear_plant_simulator, u_summer, delayer], \n", + " inputs='r', outputs=['y', 'u'])\n", + "\n", + "# simulate\n", + "t, y = ct.input_output_response(nonlinear_Gyr_simulator, time, step_input)\n", + "plt.plot(t, y[0],'.-');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f0fe24a2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From c7036508d0b0e696c8ceae8e6cce8a4ad1afc14d Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 10 Apr 2023 21:18:47 -0700 Subject: [PATCH 0236/1025] shorten long filename --- doc/examples.rst | 2 +- ...d_nonlinear_and_sampled_data_systems.ipynb | 585 ------------------ 2 files changed, 1 insertion(+), 586 deletions(-) delete mode 100644 examples/interconnected_nonlinear_and_sampled_data_systems.ipynb diff --git a/doc/examples.rst b/doc/examples.rst index ef05d6d25..02330f903 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -53,6 +53,6 @@ online sources. mpc_aircraft pvtol-lqr-nested pvtol-outputfbk - interconnected_nonlinear_and_sampled_data_systems + simulating_discrete_nonlinear steering stochresp diff --git a/examples/interconnected_nonlinear_and_sampled_data_systems.ipynb b/examples/interconnected_nonlinear_and_sampled_data_systems.ipynb deleted file mode 100644 index 5c5306029..000000000 --- a/examples/interconnected_nonlinear_and_sampled_data_systems.ipynb +++ /dev/null @@ -1,585 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e2b51597", - "metadata": {}, - "source": [ - "# simulating Simulink-like interconnections of systems including nonlinear and sampled-data systems \n", - "Sawyer B. Fuller 2023.03" - ] - }, - { - "attachments": { - "image-4.png": { - "image/png": "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ffii3azTNYF169a5/sHHSylwfQyY1ZOAXQk4XwT9ccHiPtw70oKBU6AuiO4RtN9azuOB89r5uy9o+GMfvmg367QWAQpca40HW0MCIUPA+SLojwsW9+HeoRMqnNzrLdciARKwKwH64Np15NlvEiABEiABEiABEghRAhS4ITqw7BYJWImAszXXV+3iPtwjGyqc3Ost1zKbAI8fs4myPl8RoIuCr8iyXhIgARIgARIIIQJ79+6VH374QVJTU6V9+/bSunXrEOoduxJqBChwQ21E2R8SsBgBf14UR48eLb1795YGDRqYTmHRokUyf/58OXTokFxyySVy2223SUJCgmn7ycnJkWnTpsnSpUulfPny0r17d6ldu7Zp9TtXdODAAQGrYcOGSePGjZ1/8uozrHvLli0rVEffvn0lMTGx0HIuCB4C06dPl27duuljPjY2VkaNGiWvvfaajBgxwqtOnPv4dcn8Y63E3TJQoltfmVeXY9Nayfh9toTFxIpERkpYeISIOkdysrJEsjIlx5EhcTfdIeFly+dtww8k4EyAAteZBj+TAAmYSsBXF0VXjfz555/lmWeekTp16pgucN988015+OGHpXTp0hITEyNHjhyRV155RYvRcuXKuWqOx8sGDRok48aNk0qVKmkL2YMPPii9evWSKVOmSFhYmMf1FbUBhPRdd90lM2fOlM6dO5sqcMeOHStjxowptOurrrqKArcQleBZcPr0acHx2apVK5kzZ45A4Pbv319Gjhypb8Rww1eSkn3imKROHiuS6VCb5+QXuGuWSuba5RJ9xVUiUdFy7r/PS1SzNvp7TmaGpH39qcT1ubsku+U2NiFAH1ybDDS7SQL+JuB8UTx8+LDgBWGFi+LmzZtNaw5EYZcuXeTGG280rU7nitLT0+Xxxx/X1qujR48KrJ8Qtwi39frrrzuvWuLPW7Zs0eL2iSee0BZiCGhYor/55htZv359iet1tSGsbhC3vihgcssttwjG3vlVs2ZNX+yOdfqJwJIlS2Tfvn3y5JNPSlxcnL7huvfee/XecQNW0pI2TW2rxG1UiyvEsXKRZO7ZkVdV9pGDEj94pMT1HSAxV3XXy6M7dZO4m/tL/B33SeQljSW8VJm89fmBBAoSoMAtSITfSYAETCHgq4tiwcadPXtWLrjgAunUqVPBn0z5vmLFCoHIve+++yQqKkoiIiL0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" - } - }, - "cell_type": "markdown", - "id": "6934e483", - "metadata": {}, - "source": [ - "This example creates a precise simulation of a sampled-data control system consisting of discrete-time controller(s) and continuous-time plant dynamics like the following.\n", - "![image-4.png](attachment:image-4.png)" - ] - }, - { - "cell_type": "markdown", - "id": "02dab3bc", - "metadata": {}, - "source": [ - "In many cases, it is sufficient to use a discretized model of your plant using a zero-order-hold for control design because it is exact at the sampling instants. However, a more complete simulation of your sampled-data feedback control system may be desired if you want to additionally \n", - "\n", - "* observe behavior that occurs between sampling instants,\n", - "* model the effect of time delays,\n", - "* simulate your controller operating with a nonlinear plant, which may not have an exact zero-order-hold discretization\n", - "\n", - "Here, we include helper functions that can be used in conjunction with the Python Control Systems Library to create a simulation of such a closed-loop system, providing a Simulink-like interconnection system. \n", - "\n", - "Our approach is to discretize all of the constituent systems, including the plant and controller(s) with a much shorter time step `simulation_dt` that we specify. With this, behavior that occurs between the sampling instants of our discrete-time controller can be observed. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "5ffaa0e8", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np # arrays\n", - "import matplotlib.pyplot as plt # plots \n", - "%config InlineBackend.figure_format='retina' # high-res plots\n", - "\n", - "import control as ct # control systems library" - ] - }, - { - "cell_type": "markdown", - "id": "39555216", - "metadata": {}, - "source": [ - "We will assume the controller is a discrete-time system of the form\n", - "\n", - "$x[k+1] = f(x[k], u[k])$
$~~~~~~~y[k]=g(x[k],u[k])$ \n", - "\n", - "For this course we will primarily work with linear systems of the form \n", - "\n", - "$x[k+1] = Ax[k]+Bu[k]$
$~~~~~~~y[k]=Cx[k]+Du[k]$ \n", - "\n", - "The plant is assumed to be continuous-time, of the form \n", - "\n", - "$\\dot x = f(x(t), u(t))$,
$y = g(x(t), u(t))$\n", - "\n", - "For this course, we will design our controller using a linearized model of the plant given by \n", - "\n", - "$\\dot x = Ax + Bu$,
$y = Cx + Du$ " - ] - }, - { - "cell_type": "markdown", - "id": "36d410a9", - "metadata": {}, - "source": [ - "The first step to create our interconnected system is to create a discrete-time model of the plant, which uses the short time interval `simulation_dt`. Each subsystem gets signal names according to the diagram above, and we use `interconnect` to automatically connect signals of the same name. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "852cb7dd", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAANkCAYAAABVuUSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AADsoUlEQVR4nOzdd3RU1d7G8e9MegJJ6B0C0qv0LmJBUVFBRBCpIoh6bdhf6/XaruVaEBRFiooICAoiSpEqIE0gEHpJIySB9F7mvH8MjBkyE5KYSSHPZy2W4z77nP07Qwp5cvbeJsMwDEREREREREREKilzWRcgIiIiIiIiIlKWFI6IiIiIiIiISKWmcEREREREREREKjWFIyIiIiIiIiJSqSkcEREREREREZFKTeGIiIiIiIiIiFRqCkdEREREREREpFJTOCIiIiIiIiIilZrCERERERERERGp1BSOiIiIiIiIiEilpnBERERERERERCo1hSMiIiIiIiIiUqkpHBERERERERGRSk3hiIiIiIiIiIhUagpHRERERERERKRSUzgiIiIiIiIiIpWawhERERERERERqdQUjoiIiIiIiIhIpaZwREREREREREQqNfeyLuBKkZGRQXBwMAC1atXC3V1vrYiIiIiIiEhJy8nJITY2FoAOHTrg7e39j6/p0p/gY2Ji2LFjBzt27GDnzp3s3LmT8+fPAzBu3Djmzp1b4mMuXLiQOXPmsH//fuLj46lbty79+/fn4YcfplevXiU+3kXBwcH06NHDZdcXEREREREREXs7duyge/fu//g6Lg1H6tSp48rL28nIyODuu+/m559/tmsPDQ0lNDSUBQsW8Oqrr/LSSy+VWk0iIiIiIiIiUv6V2tyPRo0a0aZNG1avXu2S699///22YGTgwIE89thj1K9fn+DgYN58801OnDjByy+/TL169Zg0aVKJj1+rVi3b6x07dlCvXr0SH0NERERERESksouKirLN3Mj7s/g/4dJw5OWXX6Z79+50796dOnXqcPr0aZo2bVri42zcuJEFCxYAMGTIEJYtW4abmxsA3bt35/bbb6dr166EhYXxzDPPMHz4cAIDA0u0hrxrjNSrV4+GDRuW6PVFRERERERExF5Jrffp0t1qXnvtNW677TaXT6/573//C4CbmxszZsywBSMX1axZk3feeQeA+Ph4Zs+e7dJ6RERE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ZmYW6T1Ys2YN9913H02bNsXHxwd/f386derEM888Q1RUVJGuJSIiIleQs8GwbApYchwft+RYj58NLt26ypohJSI8PNwADMAIDw8v9HlHjx41QkJCjKNHj7qwOskrLS3NGDVqlO3vy9mfV155Jd+56enpxtChQws8r379+sZff/3lcOw5c+bY+h04cMC47rrrnF6nR48eRkpKit35r7zyymXrvvTTesCAAQZgDBgwIF89p06dsp0zZ84c49lnn3V6zVq1ahkhISFO39fTp08bbdq0KbCufv36GefPn3d4fkF1OnsPnHnzzTcNs9nstA4vLy9j3rx5Ds9dv369rd/69esLrKWgj5VNmzYZ/v7+l/27WrFiRYFjOHLxvSroz6XvY0G15v243Ldvn9GzZ0+n133//fcNwzCM0NBQo127dg77mEwm4+uvvy7wHr788kvDx8enwHu4//77jezs7CK/P4Zh//e4evVqY8iQIU7HefTRRw3DMIy4uDjjmmuucdrvjTfecDpebm6u8fDDDxd4PwEBAcbq1audXiMpKcno27ev0/O7du1q7Nmzx+5z1pGUlJTLfp2qUqWK04+9vB8Pp06dKvR7fpG+r4mIiJSt9KwcI+x8qrE7NM5Ytf+MsWjDbmPBD0uM775831j64eNG5GutDOMV/8v/WfpgWd+KU8X9+bsgWnNEKhWLxcIdd9zBmjVrAGjRogUPPfQQ3bp1w9fXl6ioKLZu3er0t8Tjxo1j2bJlAHTq1Ilp06bRpk0b4uLiWLhwIXPnzuXMmTNcf/317N+/nwYNGjitZfLkyWzfvp1x48YxYsQI6tatS1hYGP/973/Ztm0bO3bs4D//+Q9vvfWW7ZyHHnqI4cOH8+KLL/LTTz9Rv359fvvttxJ5b7744gu2bt3KgAEDmDJlCi1btiQhIYH58+czf/58YmNjmThxItu2bct3bkpKCtdddx0nT54E4M4772TixInUr1+fU6dOMX36dDZu3MiWLVu47bbb2Lx5M25ubiVS96VmzJjBCy+8AECtWrV49tln6du3L7m5uaxdu5Z3332X1NRUxo8fT82aNbnllltKvIbMzExGjhxJUlISVatWZerUqQwcOJDatWuTnZ1NaGgo27Zt44cffijW9efMmUNqaio33XQTZ86c4Y477uA///mPXR8/P79iXXvy5Mns3r2bhx56iKFD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3n//fatp06bOfe+9916hxzhw4IBVp04dS5LlcDis8ePHWz/99JP1008/WePHj7ccDoclyapTp4514MCBMvcK7+Ut67lfv36WJKt69erWqFGjrM8//9xavXq1FRcXZ73zzjtWixYtnMfo2bOnlZWVVeZe4b28ZT0X5tprr7UkWbVr1yYcgWVZ3remf/zxRysoKMiSZFWpUsUaO3astXDhQmvdunXW999/b7399tvW1VdfbXXr1q3MvcJ7edN6vvLKK53jGjdubL355pvWihUrrCVLllgvvfSSVbNmTef+++67r8y9wnt5Yj1PmjTJeZygoCCrW7duxhouaThSGb4TEo5UUOdSZIfDYa1evTrf/qlTpzoX7FNPPVWmcyxbtsx5jMGDB1uZmZnG/mPHjlkNGza0JFnVqlUr9L+UjxgxwnmcL774It/+L774wrl/5MiRZeoV3s1b1vOIESOsd955x0pNTS3wHElJSVbPnj2d5/n444/L1Cu8m7es54LMnTvXkmTVqlXLmjZtGuEILMvyrjX9119/WTVq1LAkWa1atbLi4+MLPSf/pd03ect6/vXXX53HaNKkiXXmzJl8Y/bt22dFREQ4r0T566+/ytQvvJcn1vO5UHndunVWRkaGZVnm97uShiOV4Tsh4UgFFBcX51w499xzT4FjsrKyrFatWjn/0k1PTy/1eQYNGmRJsvz8/Ar9x8XMmTOdvbz88sv59h85csTy8/OzpJxbDQozcOBA57mOHDlS6l7hvbxpPZfE5s2bnccYMmRImY4B7+XN6/nMmTNWZGSkJcn66KOPrBkzZhCOwOvW9J133mlJsgIDA61t27aVug9Ubt60nl977TXn/v/7v/8r9FwPP/ywc9w333xT6l7hvTy1ngtS2nCksnwn5IGsFdDcuXOdn0eOHFngGLvdrttuu02SdPLkSS1btqxU5zh79qxiY2MlSQMGDFBkZGSB4/7xj38oPDxckjRnzpx8++fPn6+srKwie5Wk22+/XZKUlZWl+fPnl6pXeDdvWs8l0aZNG9WsWVOStHv37jIdA97Lm9fz448/rgMHDqhPnz7O/gBvWtOnTp3S559/Lkm66aab1KJFi1L1gcrPm9Zzenq683OTJk0KPV/Tpk2dn9PS0krVK7ybJ9azq1SW74SEIxXQihUrJEmhoaHq2LFjoeN69+7t/Lxy5cpSnSMuLs75F2ze45wvICBA3bp1c87JyMgosNfijnMhvcK7edN6Lqlz/6Cx2/kr1Nd463r+5Zdf9NZbbykgIEBvvfVWqfpB5eZNa/qbb75RSkqKJOn666931hMTE7Vz50799ddfpeoLlY83refo6Gjn5z179hR6nLz/ISbvHFR+nljPrlJZvhPyL/sKaOvWrZKkZs2ayeFwFDquZcuW+eaU9hznH6eo82RmZmrnzp0FHqdq1aqqW7duoceoV6+eMz0vba/wbt60nkti/fr1OnPmTInOhcrHG9dzRkaG7r77bmVnZ+uRRx5h3cLgTWs676tRu3fvru+//149evRQeHi4oqOjVadOHV100UUaM2aMEhISStUjKgdvWs8DBw5UVFSUJOm1115TUlJSvvkHDhxwvmq9e/fuatu2bal6hXfzxHp2lcrynZBwpIJJTU11/h96YZfpnVOtWjWFhoZKkuLj40t1nrzjiztPgwYNCpyXd7u4Y+Q9Tml7hffytvVcEs8995zz8w033FDq+fBe3rqeX3rpJW3evFlNmjTR//t//69UvaBy87Y1vWXLFkk5//iePn26rrzySq1evdoYc/jwYb366qtq3769czx8g7et58DAQH322WeqXr26du/erXbt2umdd97RqlWrtGzZMk2bNk0dO3bUyZMnFRUVpRkzZpSqT3g3T61nV6ks3wkJRyqYxMRE5+ewsLBix5/7g3D27Fm3nefcOQo6z7njuLNXeC9vW8/F+e9//6uvvvpKktSxY0cNHTq0VPPh3bxxPe/atUtTpkyRJL3xxhsKDg4uVS+o3LxtTZ84cUKSlJKSokcffVSBgYF64YUXdODAAaWlpen333933nt/4MABXX311fybw4d423qWpMsuu0zr16/X2LFjtX//ft17773q2bOnYmJiNG7cOCUnJ+upp57S2rVrecaOj/HUenaVyvKdkHCkgklNTXV+DggIKHZ8YGCgJDnvwXXHec6do6DznDuOO3uF9/K29VyUbdu2OR8wFRwcrI8//lg2m61UfcK7eeN6vvfee5Wamqrrr79ef/vb30rVByo/b1vT5247SE9Pl2VZ+uSTT/Too4+qfv36CggI0MUXX6yPPvpIo0aNkpQTDr799tul6hXey9vWsyRZlqWvvvpKX331VYHPjTp79qxmzZqlBQsWlKpHeD9PrWdXqSzfCQlHKpigoCDn57xPsS7MuQdClfa/BpbmPHmfjH3+ec4dx529wnt523ouzKFDh3TllVcqMTFRNptN77//vlq3bl2qHuH9vG09f/jhh4qNjVV4eLj+/e9/l6oH+AZvW9N5j9OtWzfjoax5Pffcc85/fM+cObNUvcJ7edt6zs7O1rBhwzR27Fjt27dPd955p3777TelpKTo7NmzWrlypYYMGaKtW7fq9ttv19ixY0vVJ7ybp9azq1SW74SEIxVMlSpVnJ9LcqnRuf+KUpJLmMp6nrwPiDr/POeO485e4b28bT0X5MSJE7riiiu0d+9eSTkPTbvppptK1R8qB29az8eOHdO4ceMkSVOmTNFFF11Uqh7gG7xpTZ9/nCuvvLLQY9SoUUOdOnWSJG3cuLHMbyaDd/G29fzmm2/qyy+/lCRNnjxZ06dPV/v27RUUFKTQ0FD16NFD8+bN06233ipJeuWVV7iCxId4aj27SmX5Tkg4UsEEBQWpZs2aknLuly3KyZMnnYsr7wOfSiLvw3KKO0/eh+Wcf55zxynuGHmPU9pe4b28bT2fLzExUX/729/0xx9/SMr5kvnAAw+UqjdUHt60nqdPn67jx48rIiJCNWrU0KxZs/L9+uWXX5zjf/nlF2ed16H6Dm9a0+dvl/RBmFlZWTp+/HiJe4X38rb1/P7770vK+VL52GOPFXqMvA+Cnz59eql6hffy1Hp2lcrynZBwpAJq1aqVpJx7ZTMzMwsdt23btnxzSirvLQF5j1PUeRwOh5o1a1bgcU6fPq0jR44UeozDhw87X39a2l7h3bxpPeeVkpKiwYMHa+3atZKkRx55RE888USp+kLl4y3r+dwlq6dOndItt9yim266Kd+vvM9iePvtt5113vDhW7xlTUvSxRdf7PyclZVV5HHy7i/qFZioXLxpPZ97jWnr1q2NZ5OcLzIyUnXq1CnR+VC5eGI9u0pl+U5IOFIB9ezZU1LOJUfr1q0rdNzy5cudn3v06FGqc3Tu3Nn5wJy8xzlfenq61qxZk2/O+b0Wd5wL6RXezZvW8zkZGRkaOnSo81j33nuvpk6dWqqeUDl543oGiuJNa/ryyy93ft69e3eR5zy3Pzg4WNWrVy9Vv/Be3rSez4V2RX3pPefcrWEEfb7FE+vZVSrNd0ILFc4vv/xiSbIkWffcc0+BY7KysqxWrVpZkqyIiAgrPT291Oe58sorLUmWw+Gw4uPjCxwzc+ZMZy9Tp07Nt//w4cOW3W63JFkDBw4s9FwDBw60JFl2u906fPhwqXuF9/Km9WxZlpWZmWldd911znG33nqrlZ2dXep+UDl523ouyowZM5zzZ8yYUer5qBy8aU1nZmZatWrVsiRZLVq0KPTv5j179jj/bdKvX79S9wrv5U3ruU2bNpYkKzAw0Dp58mSh59q8ebPzOIMHDy51r/BenlrPBRkxYoTz3H/++Wex4yvLd0LCkQqqV69ezr90V69enW//1KlTnQt20qRJ+fbn/UdvQfsty7JiY2OdY4YMGWJlZmYa+48dO2Y1bNjQ+YftxIkTBR7n1ltvdR7nyy+/zLf/iy++cO4fMWJEsT87Kh9vWc/Z2dnWyJEjnccZOnRovuMA3rKei0M4gnO8aU2/+OKLzuM8//zz+fanp6dbf/vb34r8dwkqN29Zz48//rjzGCNHjiww7EtJSbFiYmKc4955552S/Sag0vDEei5IacMRy6oc3wkJRyqo3377zQoODrYkWWFhYdZzzz1n/fzzz9aSJUusUaNGORdWdHS0debMmXzzS/oH4cYbb3SOi4mJsebNm2etXbvW+uCDD6ymTZs697399tuFHmP//v3O/5LjcDisRx991FqxYoW1YsUK69FHH7UcDoclyapVq1ah6ToqN29Zz2PGjHGOadOmjbVu3Tpr8+bNRf6C7/GW9VwcwhGc401rOiUlxerQoYNz7C233GJ9//331rp166zZs2dbXbt2de4bNGgQV/75IG9Zz8eOHbNq167tHNezZ0/r008/tX799Vfrl19+sd5++22rdevWzv2tWrWy0tLSXPXbBC/hifWcmJhozZgxw/jVo0cP57yXXnrJ2Ld+/foCj1MZvhMSjlRg8+fPt8LDw50L8/xf0dHR1s6dOwucW9K/2JOTk61BgwYVeg673V6ilHHNmjVW3bp1Cz1O3bp1rTVr1pTxdwKVgTes50aNGhU6t7Bf8E3esJ6LQziCvLxpTR86dMjq2LFjkX83Dxo0qMAvCvAN3rKe169fbzVu3LjYf2tceuml1t69ey/gdwTezN3r+c8//yzVv32LWtfe/p2QB7JWYIMHD9amTZv08MMPKzo6WiEhIYqIiFCnTp304osvav369UW+baMkgoODtWDBAn322WcaMGCAateurYCAADVo0EA333yz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7tW6KSkpRY7r16+f/vOf/yg4OFipqamaPXu27rjjDjVv3lyRkZG69957tXHjxmLPl/c8wcHBpe4XAABfxwNZAQCATzgXlgQEBJTqVpnIyMhSn6tWrVqSVOyDVCVp9OjRuv766/X555/rxx9/1KpVq3T69GkdPHhQ77zzjt59911NmDCh0DfwnH+ec+cGAAAlRzgCAAB8Qo0aNSRJ6enpqlGjhvN5H+5wLqA4efJkicbXrl1bDz30kB566CFlZ2drw4YNmjNnjt544w2dOnVKzz77rDp37qyrr766wPl5z0M4AgBA6XFbDQAAKDWbzVbeLZRa+/btnZ8XLVrk1nO1bdtWknT69OlS385jt9vVoUMHPfPMM4qNjXXWz732tyA7duzId24AAFByhCMAAKDUzj1TQ5LS0tLKsZOSu/LKK+Xv7y9JevXVV5WZmem2c/Xq1cv5ee3atWU+TocOHZwPW01ISCh03LlzNG3a1K1XxAAAUFkRjgAAgFLL+wX8Ql5B60n169fXyJEjJUkbN27UPffcU2RA8tdff2n69OllOleXLl0UGBgoSYqLiyt03OzZs4t8aOuvv/7qvGWmcePGhY47d468oQwAACg5njkCAABKrX379goKClJqaqomTpwoh8OhqKgo59ti6tevXyHfmjJt2jStXr1av//+uz744AOtWbNGo0aNUseOHRUWFqZTp07pjz/+0OLFi7Vw4UK1bdtWd911V6nPExgYqH79+mnhwoWKjY3VU089VeC4Rx99VPfee6+uvvpqXX755YqOjlZoaKiOHz+ulStX6vXXX5ck+fn56e677y7wGDt37lR8fLwk6aqrrip1rwAAgHAEAACUQZUqVfTggw9q6tSp+u233zRw4EBj/9KlS9WnT5/yaa4IYWFhWr58uYYPH67vv/9eW7Zs0UMPPVTo+PDw8DKf69Zbb9XChQu1evVq7d27V1FRUQWOO3XqlD766CN99NFHBe4PCgrSO++8o44dOxa4//PPP5ckVa1aVX//+9/L3C8AAL6M22oAAECZvPDCC3rvvffUq1cvVa9eXX5+fuXdUolUr15d3333nWJjYzVy5Eg1b95cYWFhcjgcql69ujp37qzRo0dr4cKF+vHHH8t8nn/84x+qW7euLMvSzJkzCxzz008/afr06Ro2bJjatm2rWrVqyeFwKDw8XB06dNAjjzyiLVu26Lbbbiv0POeOfccddxjPggEAACVnsyzLKu8mAAAAKqMXXnhBjz/+uJo3b65t27Y5bztylZUrV6pXr17y9/fXjh07Cr06BQAAFI0rRwAAANzk/vvvV61atbRz507Nnj3b5cefMmWKJGnkyJEEIwAAXACuHAEAAHCjt956S/fdd59atWql33//3WVXj8TFxalr164KCwvTjh07eIUvAAAXgAeyAgAAuNGoUaN06tQppaWl6dChQ4qMjHTJcRMSEjRp0iR16NCBYAQAgAvElSMAAAAAAMCn8cwRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPi0/w9qb27anB7j9wAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 434, - "width": 547 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# continuous-time plant model\n", - "plantcont = ct.tf(1, (0.03, 1), inputs='u', outputs='y')\n", - "t, y = ct.step_response(plantcont, 0.1)\n", - "plt.plot(t, y, label='continouous-time model')\n", - "\n", - "# create discrete-time simulation form assuming a zero-order hold\n", - "simulation_dt = 0.02 # time step for numerical simulation (\"numerical integration\")\n", - "plant_simulator = ct.c2d(plantcont, simulation_dt, 'zoh')\n", - "\n", - "t, y = ct.step_response(plant_simulator, 0.1)\n", - "plt.plot(t, y, '.-', label='discrete-time model')\n", - "plt.legend()\n", - "plt.xlabel('time (s)');" - ] - }, - { - "cell_type": "markdown", - "id": "17955fa7", - "metadata": {}, - "source": [ - "Next we create a model of a sampled-data controller that operates as a nonlinear discrete-time system with a much shorter time step than the controller's sampling time `Ts`. " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "654c2948", - "metadata": {}, - "outputs": [], - "source": [ - "def sampled_data_controller(controller, plant_dt): \n", - " \"\"\"\n", - " Create a (discrete-time, non-linear) system that models the behavior \n", - " of a digital controller. \n", - " \n", - " The system that is returned models the behavior of a sampled-data \n", - " controller, consisting of a sampler and a digital-to-analog converter. \n", - " The returned system is discrete-time, and its timebase `plant_dt` is \n", - " much smaller than the sampling interval of the controller, \n", - " `controller.dt`, to insure that continuous-time dynamics of the plant \n", - " are accurately simulated. This system must be interconnected\n", - " to a plant with the same dt. The controller's sampling period must be \n", - " greater than or equal to `plant_dt`, and an integral multiple of it. \n", - " The plant that is connected to it must be converted to a discrete-time \n", - " approximation with a sampling interval that is also `plant_dt`. A \n", - " controller that is a pure gain must have its `dt` specified (not None). \n", - " \"\"\"\n", - " assert ct.isdtime(controller, True), \"controller must be discrete-time\"\n", - " controller = ct.ss(controller) # convert to state-space if not already\n", - " # the following is used to ensure the number before '%' is a bit larger \n", - " one_plus_eps = 1 + np.finfo(float).eps \n", - " assert np.isclose(0, controller.dt*one_plus_eps % plant_dt), \\\n", - " \"plant_dt must be an integral multiple of the controller's dt\"\n", - " nsteps = int(round(controller.dt / plant_dt))\n", - " step = 0\n", - " def updatefunction(t, x, u, params): # update if it is time to sample \n", - " nonlocal step\n", - " if step == 0:\n", - " x = controller._rhs(t, x, u)\n", - " step += 1\n", - " if step == nsteps:\n", - " step = 0\n", - " return x\n", - " y = np.zeros((controller.noutputs, 1))\n", - " def outputfunction(t, x, u, params): # update if it is time to sample\n", - " nonlocal y\n", - " if step == 0: # last time updatefunction was called was a sample time\n", - " y = controller._out(t, x, u) \n", - " return y\n", - " return ct.ss(updatefunction, outputfunction, dt=plant_dt, \n", - " name=controller.name, inputs=controller.input_labels, \n", - " outputs=controller.output_labels, states=controller.state_labels)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "80836738", - "metadata": {}, - "outputs": [], - "source": [ - "# create discrete-time controller with some dynamics\n", - "controller_Ts = .1 # sampling interval of controller\n", - "controller = ct.tf(1, [1, -.9], controller_Ts, inputs='e', outputs='u')\n", - "\n", - "# create model of controller with a much shorter sampling time for simulation\n", - "controller_simulator = sampled_data_controller(controller, simulation_dt)" - ] - }, - { - "cell_type": "markdown", - "id": "30567aaa", - "metadata": {}, - "source": [ - "If the model is simulated with a short time step, its staircase output behavior can be observed. Because the controller model is nonlinear, we must use `ct.input_output_response`." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "39e9b769", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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D/7YN18GAICBa23vjLseey6v7X+dOKVM1QDAnyU2PWT37t0REbF3796oqqqK5cuXx/ve976YNGlSjBgxIk455ZS49dZbY/HixRER8cADD8RNN92UVDkAAPTivie3xu62zq7nqVTEuSeYGgJA+SU20qK2trYruHjLW94Sr3zlKw/ok06n42tf+1osX748IiJ+8pOfxJvf/OaCz9HY2Njn683NzbFw4cJ+VA0AMPws/2P+lNpTj5oQk8fUlqkaAPizxEKLMWPGdIUW+0ZT9OSEE06I6dOnx4YNG+Khhx7q1zlsYQoAcGjaOrJxxxpTQwCoTIlND9l/vYmDhQv7+m7evDmpcgAA6MFv1j4fO1o78tqEFgBUisRCixNOOKHrcWdnZx89//x6JmMfbQCAUvr3blNDFjSMj2nj68pUDQDkSyy0+Iu/+Iuux08//XSffdeuXRsREdOnT0+qHAAAuunozMZ/PJo/NWSxURYAVJDEQovzzz8/qqurIyL63BXk3nvvjeeffz4iIs4444ykygEAoJsHn9kW23a35bUtPnFqmaoBgAMlFlocfvjhccUVV0RExH/913/FjTfeeECfnTt3xoc//OGu5+973/uSKgcAgG7+/Y+b8p7PnTo2jjx8ZJmqAYADJRZaRER87nOfiyOPPDIiIi655JK48sor4+67747f//73cf3118fChQtj5cqVERHx/ve/P0499dQkywEA4H9ks7kDQovz5pkaAkBlSXTly0mTJsW///u/x/nnnx9PPfVUfPvb345vf/vbB/T7q7/6q/j7v//7JEsBAGA/jzRuj8079+a1/S9TQwCoMImOtIiIOP7442PlypXxta99LV7xilfEhAkToqamJurr6+Otb31r3HXXXXHdddd1rX8BAEDylq/OH2Vx7OTRcczk0WWqBgB6VpI9RkeNGhUf+9jH4mMf+1gpTgcAQB9yuVws7zY1xK4hAFSixEdaAABQWVZveDE2vNCS12ZqCACVSGgBADDMdB9lcdThI+P4qWPKVA0A9E5oAQAwjORyB+4asvjEqZFKpcpUEQD0TmgBADCM/Om5nbFu6+68NutZAFCphBYAAMNI911Dpo+vi5fVjytTNQDQN6EFAMAwsvyPzXnPX3fCFFNDAKhYQgsAgGHi6S274onnduW1LZ5naggAlUtoAQAwTHRfgHPSmBFx8pGHlaka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73hH13udffbZuV/+8pe5Bx98MHfdddfljj766K7Xvve97xXx07FP0tf5hhtu6Pri87rXvS53zTXX5O66667cww8/nPvVr36Ve+tb39p1jpEjR7rBSUipfp67+9WvfpWLiNzkyZP9g1kCpbrOL7zwQu7kk0/uer/Xv/71uRtuuCH3m9/8JrdixYrcj370o9yHP/zhXH19vZ/pIivFNf7pT3/a9T41NTW5j3zkI7nbbrst99///d+5H//4x7lFixZ1vT516tTcCy+8UORPObztf4PR0NCQO/fccxO7yfEdrHxKcZ19Byu/Uv48d+c7WGUSWhTZWWedlYuIXCaTyT3wwAMHvP7Vr3616wfgc5/73IDOcc8993S9xxvf+MZcR0dH3utbtmzJHXnkkbmIyB122GG57du3D+g89C7p63zjjTfm3ve+9+XWr1/fa59vfetbXed49atf3e9zcHCl+HnubufOnbmGhoZcROR++MMf+gezBEp1nS+55JKu89x444299stms7n29vYBn4cDleIan3jiiV3vceutt/bY501velNXn6VLlw7oPPTsM5/5TO6WW27Jbdq0KZfL5XLr1q1L5CbHd7DyKsV19h2s/Er189yd72CVS2hRRA8++GDX/9zve9/7euzT2dmZO/7447v+MWtra+v3ec4777xcROSqqqpyjY2NPfb5yU9+0lXL17/+9X6fg96V6joX4pRTTun6bcDWrVsTOcdwVa7rfOWVV3b99i6Xy/kHM2Glus733Xdf13muvvrqQy2bfijFNX7xxRe7znHSSSf12m/VqlVd/S6++OJ+nYP+Seomx3ewylKqm9me+A5WOqW6zr6DVS4LcRbRL3/5y67H7373u3vsk06n413veldERGzfvj3uueeefp1j165dceedd0ZExDnnnBP19fU99nvTm94UY8eOjYiIm266qV/noG+luM6F2rcwUDabjXXr1iVyjuGqHNf5wQcfjH/8x3+Mmpqa+M53vnNI70VhSnWdv/3tb0dExOjRo+Oqq67q9/EMXCmucVtbW9fjWbNm9drv6KOP7nq8d+/efp2D8vMdjP35Dja0+A5W2YQWRXTfffdFRMSoUaPi5JNP7rXfmWee2fV4xYoV/TrHgw8+2PVFZ//36a6mpiZe+cpXdh3T3t7er/PQu1Jc50Lt/6U3nfbjXEylvs4dHR3x3ve+N7LZbHziE5+I4447bsDvReFKcZ3b2tri5ptvjoiIxYsXx+jRoyPipWu+fv36ePbZZ/NueimuUlzjiRMnxoQJEyIiYu3atb32e/rpp7sez549u1/noPx8B2N/voMNHb6DVT4/YUX02GOPRUTEMcccE5lMptd+c+bMOeCY/p6j+/v0dZ6Ojo548skn+3UeeleK61yoe++9NyIiMplMHHPMMYmcY7gq9XX++te/HqtWrYqjjz46PvWpTw34feifUlznVatWRWtra0REnHbaabFp06Z497vfHePHj48ZM2bEUUcdFePGjYvzzjsvHnjggQF8CvpSqp/l9773vRER8fDDD8fy5ct77POFL3whIiKqqqriiiuu6Pc5KC/fwdif72BDh+9glU9oUSStra2xdevWiIhehwvuc9hhh8WoUaMiIqKxsbFf59m//8HO09DQ0ONxDFyprnMhbrvttvjDH/4QERGve93ruoaicuhKfZ3Xrl0bn//85yMi4p/+6Z+itrZ2QO9D/5TqOq9ZsybvnPPmzYvrr78+du/ende+fPnyOOOMM+Kb3/xmv96f3pXyZ/lv//Zv47WvfW1ERFx00UXxsY99LJYvXx4PPfRQ/PSnP42zzjorfv7zn0dVVVV861vfiuOPP77f56C8fAdjH9/Bhg7fwQYHoUWR7Ny5s+vxvqG/fdn3xWjXrl2JnWffOQZyHnpWqut8MNu2bYsPfvCDEfHSb+z2/faO4ij1dX7f+94XLS0t8da3vjXOPffcAb0H/Veq67xt27aux5/73Odi69at8YY3vCF+97vfRWtrazz33HPxT//0TzF27NjIZrPx0Y9+tNff1NM/pfxZHj16dCxfvjy+973vRX19fSxdujTOO++8WLhwYbztbW+Le++9N970pjfF/fffHx/4wAf6/f6Un+9gRPgONtT4DjY4CC2KZN/Q34iX5jIezIgRIyIioqWlJbHz7DvHQM5Dz0p1nfvS2dkZ73znO2P9+vUREfF//+//jZe//OVFe39Ke51/+MMfxh133BFjx46Na665pt/HM3Clus77j6jYu3dvvPGNb4ybb745Tj755BgxYkRMnjw53v/+98dtt90W6XQ6crlcfPzjH49cLtev83CgUv+d/bvf/S5+8pOf9LquxR133BE/+MEPYseOHQN6f8rLdzB8BxtafAcbPIQWRbL/UKJCFlTb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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 414, - "width": 534 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "time = np.arange(0, 1.5, simulation_dt)\n", - "step_input = np.ones_like(time)\n", - "t, y = ct.input_output_response(controller_simulator, time, step_input)\n", - "plt.plot(t, y, '.-');" - ] - }, - { - "cell_type": "markdown", - "id": "1020f95a", - "metadata": {}, - "source": [ - "## simulating a closed-loop system\n", - "\n", - "Now we are able to construct a closed-loop simulation of the full sampled-data system. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "f8675193", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 417, - "width": 547 - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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Ma655po+f7bff//9/n9RCJGI5/mRRx4x3G53r8/vaaedZmzdujVGXxU69fZ3ftttt8V0Ll6HJU8inmdehyVfIn+eu8PrsNTCyhGL2rp1q+bMmaPjx48rLy9PDzzwgN566y298sor+ud//mdJ0kcffaQrr7yyX78ZnDdvnlavXi1JmjZtmp5//nlt3LhRy5Yt0+jRo+X3+3X//fdr6dKlMfm6ECzez/Phw4fV1tYmp9Opyy+/XI8++qheffVVbd68WS+++KK+/OUvS5IOHDigL33pS9qyZUssvzz8XaJ+ns1eeukl/e///q+Kiopidk30LFHP8/HjxzVjxgy98MILkqQrr7xSTz31lN5++21VVFTo6aef1l133aXS0tKYfF0IlojneeXKlbr77rvl9Xrl8Xj0rW99S2vWrNFf//pXPfPMM5oyZYokae/evbriiit0/PjxmH19CFZWVqbLLrssbtfndVhqiNfzzOuw1BLvn2czXoeloGSnM4jOJZdcYkgy3G638dZbb4V8/qc//WkggfzBD34Q1Ryvv/564BpXXXWV4fV6gz5/6NAh49RTTzUkGQMHDjSOHj0a1TzoWbyf5xUrVhgLFiww9u7d2+OY//zP/wzMMX369IjnQN8S8fNs1tjYaJSVlRmSjN/97nf8xiIBEvU833LLLYF5VqxY0eM4v99vdHR0RD0PupeI5/nMM88MXGP16tXdjrnuuusCYxYvXhzVPOje/fffb7z00kvG/v37DcMwjD179sTlN828DkuuRDzPvA5LvkT9PJvxOiw1EY5Y0MaNGwM/QAsWLOh2jM/nM84444zAf5jt7e0RzzNr1ixDkuFyuYyqqqpuxzz77LOBe3nkkUcingM9S9TzHI7zzz8/sHy3vr4+LnOkq2Q9z9/85jcNSca0adMMwzD4TznOEvU8v/HGG4F5Fi1a1N/bRoQS8TwfP348MMe5557b47itW7cGxl1//fURzYHIxOvNFK/DUkui3jR3h9dhiZOo55nXYamJshoLev755wOPb7/99m7HOJ1O3XrrrZKko0eP6vXXX49ojhMnTuiVV16RJM2YMaPH5dfXXXedCgoKJEmrVq2KaA70LhHPc7g6m0P5/X7t2bMnLnOkq2Q8zxs3btR//dd/yePx6Ne//nW/roXwJOp5/tWvfiVJysvL08KFCyM+H/2TiOe5vb098HjUqFE9jhs9enTgcVtbW0RzIPl4HYaueB1mL7wOS12EIxb0xhtvSJJyc3N13nnn9Thu6tSpgccVFRURzbFx48bAi6mu1zHzeDy64IILAud0dHRENA96lojnOVxdX1g7nfyzEUuJfp69Xq/+5V/+RX6/X9/5znd0+umnR30thC8Rz3N7e3ugz8jMmTOVl5cn6eRzvnfvXu3bty/ojTViLxHP85AhQzRo0CBJ0u7du3sc98knnwQejxs3LqI5kHy8DkNXvA6zD16HpTZ+uixo+/btkqQxY8bI7Xb3OG78+PEh50Q6h/k6vc3j9Xq1c+fOiOZBzxLxPIdrw4YNkiS3260xY8bEZY50lejn+ZFHHtHWrVs1evRo3XvvvVFfB5FJxPO8detWtba2SpIuvPBC7d+/X7fffrsKCws1YsQInXbaaRowYIBmzZqlt956K4qvAn1J1M/zv/zLv0iSNm/erHXr1nU75kc/+pEkyeVyaf78+RHPgeTidRi64nWYffA6LLURjlhMa2ur6uvrJanPnQYGDhyo3NxcSVJVVVVE83Qd39c8ZWVl3Z6H6CXqeQ7HmjVr9MEHH0iSLr/88sDyXfRfop/n3bt364c//KEk6bHHHlNWVlZU10FkEvU8b9u2LWjO8vJyLV++XE1NTUHH161bp4svvlj/8R//EdH10btE/jx///vf1xe/+EVJ0uzZs3X33Xdr3bp12rRpk5577jldcskl+sMf/iCXy6X//M//1BlnnBHxHEguXoehE6/D7IPXYamPcMRiGhsbA487l0z3pvPFV6TbBUYyT+cc0cyD7iXqee7LkSNHdMcdd0g6+dvHzt9EIjYS/TwvWLBALS0t+vKXv5zQrerSXaKe5yNHjgQe/+AHP1B9fb2+9KUv6d1331Vra6sOHDigxx57TAUFBfL7/fr2t7/d46oDRC6RP895eXlat26dfvvb36q0tFSLFy/WrFmzNHnyZN10003asGGDrrvuOr355pv613/914ivj+TjdRgkXofZDa/DUh/hiMV0LpmWTtaZ9iUzM1OS1NLSErd5OueIZh50L1HPc298Pp+++tWvau/evZKkf/u3f9M555wTs+sjsc/z7373O61fv14FBQV69NFHIz4f0UvU89x1hUhbW5uuuuoqvfDCCzrvvPOUmZmpoqIiff3rX9eaNWvkdDplGIbuueceGYYR0TzoXqL/3X733Xf17LPP9th3ZP369XryySfV0NAQ1fWRXLwOA6/D7IXXYdZAOGIxXZdfhdNYr7OBU3Z2dtzm6dokKtJ50L1EPc+9+dd//Vf93//9nyTpyiuv1H333Reza+OkRD3P9fX1gZ1LHnjgARUXF0d0PvonGf9uS9LPfvazbhv3TZkyRdddd50k6cMPP9SHH34Y0TzoXiL/3f7DH/6gSy65RK+++qrKy8v1xz/+UYcPH1Z7e7s++eQTPfjgg+ro6NCvf/1rfeELX9D+/fsjngPJxesw8DrMPngdZh2EIxaTn58feBzO0snO3ySGs8Q32nm6/rYy0nnQvUQ9zz353ve+p//+7/+WdPKN1P/8z//I5XLF5Nr4TKKe529/+9uqr6/X+eefzxL7JEjGv9sjR47stQP+5ZdfHni8adOmiOZB9xL1PB84cEBz585VW1ubPve5z+mtt97Stddeq0GDBikjI0OjRo3S9773Pb300ktyOBz629/+pm9+85uRfTFIOl6HpTdeh9kLr8Oso+dW6khJWVlZGjJkiOrr61VdXd3r2KNHjwb+w+zarCscXZt/VVdX6/zzz+9xbNfmX5HOg+4l6nnuzsMPP6yHHnpIknTuuedq9erV/CYqThLxPNfW1uqpp56SJE2fPl0rV67sdfzBgwe1YsUKSSffYH/+858Pey50L1E/z13HR9LA8eDBgxHNg+4l6nlesWJF4Nx77703qN9EV5deeqkuvfRSrV+/XqtWrdLRo0c1cODAiOZC8vA6LH3xOsxeeB1mLYQjFnTGGWfojTfe0K5du+T1envcLnDHjh1B50RiwoQJ3V6nt3nYXiy2EvE8mz322GP67ne/G7jWn/70Jw0YMKBf10Tv4v08d12O/dOf/rTP8du3b9dXvvIVSdJtt93Gf8oxkoif58997nOBxz6fr9exXT/f25aziEwinueuW7yee+65vY4977zztH79evn9fn388cf8PFsIr8PSE6/D7IfXYdZCWY0FTZkyRdLJZZTvvfdej+M690SXpIsuuiiiOSZNmhRoANb1Ombt7e165513Qs5B/yXiee7qqaee0je+8Q1J0qhRo7R+/XoNGTIk6ushPIl+npEciXieTzvtNJ166qmSpE8++aTXsV0/P3z48IjmQc8S8Tx3DVy8Xm+vYzs6Oro9D6mP12Hph9dhQPIRjljQtddeG3j8xBNPdDvG7/frd7/7nSSpsLBQ06ZNi2iO/Px8XXrppZJOdrzvaYnwqlWrAp3wZ8+eHdEc6F0inudOq1at0u233y7DMFRaWqpXXnlFJSUlUV0LkYn38zxixAgZhtHnn05Tp04NHFu+fHlUXxNCJern+frrr5d0si/FW2+91eO4VatWBR5ffPHFEc+D7iXieR45cmTg8RtvvNHr2L/85S+SJIfDoREjRkQ0D5KL12Hphddh9sXrMIsxYEkXX3yxIclwu93GW2+9FfL5n/70p4YkQ5Lx7//+7yGff+KJJ3r9vGEYxiuvvBIYc/XVVxterzfo84cOHTJOPfVUQ5JRWFhoHDlyJBZfGrpIxPP8pz/9yfB4PIYko6ioyNixY0eMvwr0JRHPc186z586dWpU56NviXie9+7da2RlZRmSjPPOO884ceJEyJinnnoqcJ0rr7yyv18WTOL9PG/fvt1wOByGJGP48OFGdXV1t/exZMmSwHUuvPDC/n5Z6MWePXsCf9e33XZbWOfwOsx64vU88zostcTree4Lr8NSA2ssLeoXv/iFLrroIrW0tOiyyy7Tvffeq2nTpqmlpUUrVqwIdLgeN25cYOuoSE2fPl033XSTVqxYoRdffFEzZszQXXfdpZKSElVWVuqBBx7Qvn37JEkPPfQQjd7iIN7P8zvvvKPZs2ervb1dGRkZevTRR9XR0dHr1p6lpaUqLCyM9ktCNxLx84zkS8TzfOqpp+qHP/yh7rnnHr333nuaPHmy7rnnHp155pk6fvy4Vq1apd/85jeSpIKCAj366KMx+/pwUryf5/Hjx+v222/X448/rpqaGp1zzjm66667dPHFFys/P19VVVVasWKFnnnmGUmSy+XSgw8+GNOvMd1VVFRo165dgY/r6+sDj3ft2hXy2965c+dGNQ+vw5IrEc8zr8OSL1E/z7CIZKcziN6LL75oFBQUBJJG859x48YZO3fu7PbccBPO5uZmY9asWT3O4XQ6o05IEZ54Ps///u//3uN1e/rzxBNPxPcLTlOJ+HnuTef5/MYivhL1PH/3u98NrC7o7k9RUVG3qxoQG/F+nltbW40vf/nLff57nZubazz99NNx/ErT02233RbR/5vd4XVY6kvE88zrsORL5M9zb3gdlhroOWJhV111lT744AN961vf0rhx45STk6PCwkKdf/75evjhh/X+++/3u2t5dna21qxZo6efflozZsxQUVGRPB6PysrKdPPNN6uiokKLFi2KzReEbiXieUby8Tynh0Q9zz/5yU/05ptv6pZbbtGIESOUmZmpAQMGaNKkSfrRj36kjz/+WBdeeGEMviJ0J97Pc2ZmplasWKFXX31Vt956q8aNG6fc3Fy53W4NGjRIF154oe677z7t2LFDN998cwy/MiQar8MAIHEchtGlAwwAAAAAAECaYeUIAAAAAABIa4QjAAAAAAAgrRGOAAAAAACAtEY4AgAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLRGOAIAAAAAANIa4QgAAADw/7djBwIAAAAAgvytB7kwAmBNjgAAAABrcgQAAABYkyMAAADAmhwBAAAA1uQIAAAAsCZHAAAAgDU5AgAAAKzJEQAAAGBNjgAAAABrcgQAAABYkyMAAADAmhwBAAAA1uQIAAAAsCZHAAAAgDU5AgAAAKwFBMjibyoXbncAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 413, - "width": 547 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "plantcont = ct.tf(.5, (0.1, 1), inputs='u', outputs='y')\n", - "u_summer = ct.summing_junction(inputs=['-y', 'r'], outputs='e')\n", - "\n", - "plant_simulator = ct.c2d(plantcont, simulation_dt, 'zoh')\n", - "# system from r to y\n", - "Gyr_simulator = ct.interconnect([controller_simulator, plant_simulator, u_summer], \n", - " inputs='r', outputs=['y', 'u'])\n", - "\n", - "# simulate\n", - "t, y = ct.input_output_response(Gyr_simulator, time, step_input)\n", - "y, u = y # extract respones\n", - "plt.plot(t, y, '.-', label='y')\n", - "plt.legend()\n", - "plt.figure()\n", - "plt.plot(t, u, '.-', label='u')\n", - "plt.legend();" - ] - }, - { - "cell_type": "markdown", - "id": "fb9c601d", - "metadata": {}, - "source": [ - "## time delays\n", - "\n", - "Given that all of the interconnected systems are being simulated in discrete-time with the same small time interval `simulation_dt`, we can construct a system that implements time delays by suitable choice of $A, B, C, $ and $D$ matrices. For example, a 3-step delay has the form \n", - "\n", - "$x[k+1] = \\begin{bmatrix}0 & 0 & 0\\\\ 1 & 0 & 0\\\\ 0 & 1 & 0\\end{bmatrix}x[k]+\\begin{bmatrix}1\\\\0\\\\0\\end{bmatrix}u[k]$
\n", - "\n", - "$~~~~~~~y[k]=\\begin{bmatrix}0 & 0 & 1\\end{bmatrix}x[k]$ \n", - "\n", - "The following function creates an arbitrarily-long time delay system, up to the nearest $dt$. " - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "92767723", - "metadata": {}, - "outputs": [], - "source": [ - "def time_delay_system(delay, dt, inputs=1, outputs=1, **kwargs):\n", - " \"\"\"\n", - " creates a pure time delay discrete-time system. \n", - " time delay is equal to nearest whole number of `dt`s.\"\"\"\n", - " assert delay >= 0, \"delay must be greater than or equal to zero\"\n", - " n = int(round(delay/dt))\n", - " ninputs = inputs if isinstance(inputs, (int, float)) else len(inputs)\n", - " assert ninputs == 1, \"only one input supported\"\n", - " A = np.eye(n, k=-1)\n", - " B = np.eye(n, 1)\n", - " C = np.eye(1, n, k=n-1)\n", - " D = np.zeros((1,1))\n", - " return ct.ss(A, B, C, D, dt, inputs=inputs, outputs=outputs, **kwargs)" - ] - }, - { - "cell_type": "markdown", - "id": "5a5e6f76", - "metadata": {}, - "source": [ - "The step response of the time-delay system is shifted to the right." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "e82445c4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$$\n", - "\\begin{array}{ll}\n", - "A = \\left(\\begin{array}{rllrllrllrllrll}\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "&\n", - "B = \\left(\\begin{array}{rll}\n", - "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "\\\\\n", - "C = \\left(\\begin{array}{rllrllrllrllrll}\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "&\n", - "D = \\left(\\begin{array}{rll}\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "\\end{array}~,~dt=0.02\n", - "$$" - ], - "text/plain": [ - "['ud']>" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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xm41AAAAdGCUSOE1ly/IauYIAAAAHQhHKLzKrXy97QEAAPgro0QKr8VWvgAAAHRDOELhWZAVAACA7ghHKLySBVkBAADohlEihVcqmznSpKwGAACADgYtHHn++edz9tlnZ8qUKRkzZkw233zzTJ06NZdddlmWL1/eL3088cQT+cQnPpFdd901m2yySUaMGJGtttoq06dPzxVXXJHXXnutX/qhupTK1hxpUFYDAABAB42D0cmcOXPy/ve/P6+++mr715YvX5558+Zl3rx5ufrqq3Prrbdmxx13XO8+Lr/88px77rkplUrrfH3RokW5++67c/fdd+dLX/pSbr755vzN3/zNevdD9SkPR5rsVgMAAEAHAz5KfOSRR3L00Ufn1VdfzdixY3PxxRfnvvvuy5133pkPf/jDSZKnn346hx9+eJYuXbpefVx//fU5++yzUyqVMmLEiJxxxhmZM2dO/u///i/XXXdd9tlnnyTJc889l3e84x3rhDQUX8VWvspqAAAA6GDAZ46cfvrpWb58eRobG3P77bdn2rRp7c8dcMAB2WmnnXLOOefkqaeeyhe+8IVccMEFfe7joosuan98ww035PDDD2//+9SpU3PcccflPe95T2644YYsXLgw11xzTc4888wNuzCqRvmaI8pqAAAA6GhAZ47Mmzcvd999d5Lk5JNPXicYWeuss87KlClTkiRf/OIX09zc3Kc+lixZkscffzxJsvvuu68TjHT0b//2b+2P77vvvj71QXUr362myW41AAAAdDCgo8Qbb7yx/fFJJ53U+QnU1+f4449PkixevLg9TOmt1atXtz/ubs2SN77xje2PV61a1ac+qG7la440mjkCAABABwMajtxzzz1JkjFjxmSPPfbost1+++3X/vjee+/tUx9bbrllNt988yTJs88+22W73/72t+2PJ0+e3Kc+qG7lZTXWHAEAAKCjAV1z5Mknn0ySTJo0KY2NXXe1yy67VLymLz7ykY/kkksuycMPP5zbbrsthx56aEWbteuSNDQ05EMf+lCf+1iwYEG3zy9cuLDPx2RwlJfVNNqtBgAAgA4GLBxZuXJlFi1alCQZP358t20322yzjBkzJsuWLcv8+fP73NcnP/nJPPjgg7njjjty1FFH5eMf/3gOPPDAbLnllnn22Wfz1a9+NXPnzk1DQ0O+/OUvt69x0hcTJkzo82sYHipmjiirAQAAoIMBC0dee+219sdjx47tsf3acGR9tvMdO3ZsbrvttsyaNSuXXHJJLr/88lx++eXrtHn3u9+dc845J29729v6fHyqW3PFVr5mjgAAAPBXAzpzZK0RI0b02H7kyJFJkhUrVqxXfw8++GC+853vdLnuyB133JHXve51mTJlSjbZZJM+H7+nGS0LFy7M1KlT+3xcBl5L+YKs1hwBAACggwELR0aNGtX+uOOOMl1Zu4PM6NGj+9zX97///XzgAx/IqlWr8jd/8zf59Kc/nb//+7/PxhtvnPnz5+e73/1uLrroonz1q1/NT3/609xxxx15/etf36c+eioNYvhqtlsNAAAA3Riw+oKNN964/XFvSmWWLVuWpHclOB29+OKLOfHEE7Nq1aq8+c1vzn333Zcjjzwym2++eZqamrLjjjvmvPPOy49+9KPU1dXlV7/6VT7xiU/07WKoahUzRyzICgAAQAcDNkocNWpUttxyyyQ97/SyePHi9nCkrwufzp49u/21M2bMyJgxYzptd+CBB+bAAw9Mktxwww1ZvHhxn/qhOrW1tVWEI03KagAAAOhgQH+FvnZXmGeeeSalUqnLdk899VTFa3qr49a/u+++e7dt99hjjyRJa2trfv3rX/epH6pTc9lONUnSoKwGAACADgY0HNlnn32SrCmZeeihh7psN3fu3PbHe++9d5/6aGz867Ip3QUwSdLc3Nzp6yiu8lkjSdJktxoAAAA6GNBR4pFHHtn+eObMmZ22aW1tzbXXXpskGTduXKZPn96nPnbYYYf2x/fcc0+3bX/6058mSerq6jJx4sQ+9UN1am5trfia3WoAAADoaEDDkalTp2bfffdNklxzzTX5+c9/XtHm8ssvby+NOe2009LU1LTO87NmzUpdXV3q6upy4YUXVrz+8MMPT13dmsHuxRdfnD/84Q+dnstVV12VBx98MEny9re/PVtsscV6XxfVo6SsBgAAgB4MeG3Jl770pey9995ZsWJFDj744MyYMSPTp0/PihUrMnv27Fx11VVJksmTJ+ess87q8/F32WWXnHTSSfn617+eP/zhD9ltt91y+umnZ999923fynf27Nm57rrrkiQNDQ35j//4j369RoavUiczR5rsVgMAAEAHAx6O7Lbbbvnud7+bD3zgA1myZElmzJhR0Wby5MmZM2fOOtv/9sWVV16ZZcuW5bvf/W5efvnlfPKTn+y03ZgxY3LVVVdl//33X69+qD6dzhxRVgMAAEAHg/Ir9COOOCKPPvpozjjjjEyePDkbbbRRxo0blz333DOXXnppfvGLX2TSpEnrffyRI0dm9uzZueuuu3L88cdn8uTJGTNmTBobG7P55ptn2rRpOf/88/PUU0/lfe97Xz9eGcNdZ+GImSMAAAB0VNfW1lY5eqTPFixYkAkTJiRJ5s+fn/Hjxw/xGZEkz768NAdcPnedr/3m4kPtWAMAAFClBmL8bYRIoZU62cq30YKsAAAAdCAcodCaW9ZdkLWhvq59dyMAAABIhCMUXEvZzBGzRgAAACgnHKHQmluEIwAAAHRPOEKhVcwcsRArAAAAZYwUKbRS2ZojTQ1mjgAAALAu4QiF1lw2c6RBWQ0AAABlhCMUWkvrujNHGuu95QEAAFiXkSKFVr4gq7IaAAAAyglHKLRSi7IaAAAAuiccodBKreULsnrLAwAAsC4jRQrNzBEAAAB6Ihyh0MpnjjSaOQIAAEAZI0UKrVS2lW+TmSMAAACUEY5QaMpqAAAA6IlwhEJrbrEgKwAAAN0zUqTQWsrKahobzBwBAABgXcIRCq18zZFGZTUAAACUEY5QaOVrjjTWe8sDAACwLiNFCq1yK18zRwAAAFiXcIRCa66YOSIcAQAAYF3CEQqtpWLmiLc8AAAA6zJSpNDKZ440KasBAACgjHCEQitfc6RBWQ0AAABlhCMUWkvFVr7e8gAAAKzLSJFCsyArAAAAPRGOUGilFguyAgAA0D0jRQqt1GpBVgAAALonHKHQSmVlNRZkBQAAoJxwhEIr362mSVkNAAAAZYwUKbTyshoLsgIAAFBOOEKhKasBAACgJ8IRCk1ZDQAAAD0xUqTQymeONNqtBgAAgDLCEQqt2ZojAAAA9EA4QqG1lJXVNNZ7ywMAALAuI0UKTVkNAAAAPRGOUGjNLWaOAAAA0D0jRQqtpXzNETNHAAAAKCMcodCay8tqLMgKAABAGeEIhVYqX5C1wVseAACAdRkpUmjlZTVNZo4AAABQRjhCoZWX1TQIRwAAACgjHKHQSuW71SirAQAAoIyRIoVWKi+rsVsNAAAAZYQjFFp5OKKsBgAAgHLCEQqrra2tckFWZTUAAACUMVKksMpnjSRJo5kjAAAAlBGOUFills7CEW95AAAA1mWkSGGVWlsrvtZoQVYAAADKCEcorE5njghHAAAAKCMcobCaO5s5oqwGAACAMkaKFFb5TjWJmSMAAABUEo5QWJ0vyCocAQAAYF3CEQqruUVZDQAAAD0zUqSwOi2rMXMEAACAMsIRCqu5rKymvi6pF44AAABQRjhCYZXKdqtpbPB2BwAAoJLRIoVVKiuraTJrBAAAgE4IRyis8t1qGoQjAAAAdEI4QmGVl9U0KasBAACgE0aLFFb5zJHGBjNHAAAAqCQcobAqFmSt93YHAACgktEihWXmCAAAAL0hHKGwynerabQgKwAAAJ0QjlBYzS3KagAAAOiZ0SKF1VI+c0RZDQAAAJ0QjlBYFWuOKKsBAACgE8IRCqu5fLeaBm93AAAAKhktUlgVZTVmjgAAANAJ4QiF1WwrXwAAAHpBOEJhlexWAwAAQC8YLVJYpbKymiYzRwAAAOiEcITCKt+tpsGaIwAAAHRCOEJhtditBgAAgF4wWqSwmsvLaswcAQAAoBPCEQqrfEHWBguyAgAA0AmjRQrLgqwAAAD0hnCEwipfkLVROAIAAEAnhCMUVql8QVZlNQAAAHTCaJHCqpg5YkFWAAAAOiEcobDK1xxpUFYDAABAJ4QjFFZz2W41TcpqAAAA6ITRIoXV0mpBVgAAAHomHKGwmq05AgAAQC8IRyislvLdahq83QEAAKhktEhhlS/IauYIAAAAnRGOUFjlC7IKRwAAAOiMcITCqlyQ1dsdAACASkaLFFb5gqxNdqsBAACgE8IRCqtUtiBrQ723OwAAAJWMFimskpkjAAAA9IJwhMKq3K3G2x0AAIBKRosUVqmlvKzGzBEAAAAqCUcorPKZI8pqAAAA6IxwhMIqX3PEzBEAAAA6IxyhsMp3q2lq8HYHAACgktEihVW5IKuZIwAAAFQSjlBY5WU1jdYcAQAAoBPCEQqrvKzGVr4AAAB0xmiRwjJzBAAAgN4QjlBIbW1tnaw54u0OAABAJaNFCqmlLBhJzBwBAACgc8IRCql81kiSNJk5AgAAQCeMFimk5pbWiq81mDkCAABAJ4QjFFJnZTVN9cIRAAAAKglHKKTmlspwpEE4AgAAQCeEIxRSqbWyrKaxwdsdAACASkaLFFKpk5kjTdYcAQAAoBPCEQqps91qlNUAAADQGeEIhVTqZLcaW/kCAADQGaNFCql85kh9XVJv5ggAAACdGLRw5Pnnn8/ZZ5+dKVOmZMyYMdl8880zderUXHbZZVm+fHm/9nXHHXfkxBNPzKRJkzJmzJhsuummmTx5ct773vfmq1/9apYuXdqv/TH8lK850mjWCAAAAF1oHIxO5syZk/e///159dVX27+2fPnyzJs3L/PmzcvVV1+dW2+9NTvuuOMG9bN48eKcdNJJuemmmyqeW7JkSX7zm9/kBz/4QaZNm5a//du/3aC+GN7Kd6tptBgrAAAAXRjwcOSRRx7J0UcfneXLl2fs2LE577zzMn369KxYsSKzZ8/O1772tTz99NM5/PDDM2/evIwdO3a9+nn11Vdz0EEH5aGHHkqSHH744Tn22GMzadKktLS05Lnnnsu8efPy/e9/vz8vj2GqvKymUUkNAAAAXRjwcOT000/P8uXL09jYmNtvvz3Tpk1rf+6AAw7ITjvtlHPOOSdPPfVUvvCFL+SCCy5Yr34+8YlP5KGHHkpjY2O+9a1v5Zhjjlnn+b333jvve9/78oUvfCEtLS0bdE0Mf80t5TNHlNUAAADQuQEdMc6bNy933313kuTkk09eJxhZ66yzzsqUKVOSJF/84hfT3Nzc537uvffefPOb30ySfOpTn6oIRjqqq6tLY+OgVBMxhFrMHAEAAKCXBjQcufHGG9sfn3TSSZ2fQH19jj/++CRr1gxZG6b0xVe+8pUkydixY3PWWWf1+fUUT/mCrE1mjgAAANCFAR0x3nPPPUmSMWPGZI899uiy3X777df++N577+1TH6tXr25fgPXQQw9tX7OkVCrlueeey/PPP5/Vq1f39dSpcuVlNQ1mjgAAANCFAQ1HnnzyySTJpEmTui1l2WWXXSpe01uPPPJIVq5cmSSZNm1aXnjhhZx00kkZN25cJk6cmO233z6bbrppDjvssNx3333rcRVUo4qyGrvVAAAA0IUBW3xj5cqVWbRoUZJk/Pjx3bbdbLPNMmbMmCxbtizz58/vUz9PPPHEOn3uuuuu7f12/Pptt92WH//4x7n88stz+umn96mPJFmwYEG3zy9cuLDPx2TgNFtzBAAAgF4asHDktddea3/cm+1514YjS5cu7VM/r7zySvvjT3/601m1alXe+c535sILL8xb3vKWvPrqq/nBD36Qc889N0uWLMmZZ56ZnXfeOYceemif+pkwYUKf2jO0SuW71dRbcwQAAIDODdiIcW2pS5KMGDGix/YjR45MkqxYsaJP/Sxbtqz98apVq3LEEUfkpptuyh577JGRI0dm6623zkc/+tHMmTMn9fX1aWtryznnnJO2trZujkq1K7WWL8hq5ggAAACdG7CZI6NGjWp/3JsFUVetWpUkGT169Hr3kySf//znU9/JLIF99tkn7373u/P9738/jz/+eB5//PHsuuuuve6np3KfhQsXZurUqb0+HgOrfLcaC7ICAADQlQELRzbeeOP2x70plVk7A6Q3JThd9bPDDjtk55137rLtIYccku9///tJknnz5vUpHOlp3RSGl1JrWVmNrXwBAADowoCNGEeNGpUtt9wySc+LmS5evLg9HOnr2h4d2/cUYHRs+9JLL/WpH6pL+cwRZTUAAAB0ZUB/nT5lypQkyTPPPJNSqdRlu6eeeqriNb315je/uf1xS0tLt207Pt/d1sJUv/KZIw0WZAUAAKALAzpi3GeffZKsKZl56KGHumw3d+7c9sd77713n/rYfvvt84Y3vCFJ8tvf/rbbth2f32677frUD9WlYkFWa44AAADQhQENR4488sj2xzNnzuy0TWtra6699tokybhx4zJ9+vQ+9/Oe97wnSfLiiy/mvvvu67LdDTfc0P5433337XM/VI/ysppGZTUAAAB0YUDDkalTp7aHENdcc01+/vOfV7S5/PLL8+STTyZJTjvttDQ1Na3z/KxZs1JXV5e6urpceOGFnfZz+umnt+9a8//+3/9bZ3vftb71rW/l7rvvTpIcfvjhFlgtuFJL2YKsymoAAADowoCPGL/0pS9l9OjRKZVKOfjgg/PZz342999/f37yk5/klFNOyTnnnJMkmTx5cs4666z16uMNb3hDPvOZzyRJHnrooUydOjXf+MY38tBDD+Wuu+7Kxz/+8Zx44olJkk022SRXXHFFv1wbw1d5WY2ZIwAAAHRlwFcl3W233fLd7343H/jAB7JkyZLMmDGjos3kyZMzZ86cdbbl7at/+Zd/ySuvvJJLL700TzzxRHsY0tHWW2+dG2+8MTvttNN690N1qAhHzBwBAACgC4MyYjziiCPy6KOP5owzzsjkyZOz0UYbZdy4cdlzzz1z6aWX5he/+EUmTZq0wf189rOfzc9+9rN88IMfzMSJEzNy5Mhsuumm2WuvvXLRRRfl17/+daZNm9YPV8Rw11xRVmPmCAAAAJ2ra2tra+u5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akyOAgAAoHsDPnJ85JFHcvTRR+fVV1/N2LFjc/HFF+e+++7LnXfemQ9/+MNJkqeffjqHH354li5d2m/9/uhHP8oPfvCDbL311v12TIa/5rLdaswcAQAAoCcDHo6cfvrpWb58eRobG3P77bdnxowZmTZtWg444IBcddVV+dznPpckeeqpp/KFL3yhX/pcunRpTj311CTJZZdd1i/HpDpUzhwRjgAAANC9AQ1H5s2bl7vvvjtJcvLJJ2fatGkVbc4666xMmTIlSfLFL34xzc3NG9zvjBkzMn/+/EyfPj0f/OAHN/h4VI+KrXztVgMAAEAPBnTkeOONN7Y/Pumkkzo/gfr6HH/88UmSxYsXt4cp6+uBBx7If/3Xf2XEiBH56le/ukHHovqUyspqGpTVAAAA0IMBDUfuueeeJMmYMWOyxx57dNluv/32a3987733rnd/pVIpH/nIR9La2pp//dd/zc4777zex6I6lcpnjiirAQAAoAcDulvNk08+mSSZNGlSGhu77mqXXXapeM36uOyyy/LII4/kjW98Y2bMmLHex+nMggULun1+4cKF/dof66d85ojdagAAAOjJgIUjK1euzKJFi5Ik48eP77btZpttljFjxmTZsmWZP3/+evX37LPP5jOf+UyS5Morr8yoUaPW6zhdmTBhQr8ej4FRPnNEWQ0AAAA9GbBfq7/22mvtj8eOHdtj+zFjxiTJem/ne8opp2TFihU55phjcvDBB6/XMah+pRZlNQAAAPTNgM4cWWvEiBE9th85cmSSZMWKFX3u69prr80dd9yRTTbZJFdccUWfX98bPc1oWbhwYaZOnTogfdN7pdbyBVmV1QAAANC9AQtHOpa1rF69usf2q1atSpKMHj26T/0sWrQoZ511VpLk4osvzjbbbNOn1/dWT6VBDA8VM0eU1QAAANCDAfu1+sYbb9z+uDelMsuWLUvSuxKcjs4888wsWrQoe+65Zz72sY/17SQpnPI1RyzICgAAQE8GdObIlltumUWLFvW408vixYvbw5G+LHz6xz/+Md/85jeTJAcccECuv/76btu/9NJLmT17dpJkhx12yNve9rZe90V1qNitxswRAAAAejCgW/lOmTIl99xzT5555pmUSqUut/N96qmn1nlNb3Us1/nc5z7XY/snn3wyxx13XJLkhBNOEI4UUHPFzBHhCAAAAN0b0JqD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2cyRBmU1AAAA9JJwhEIoD0ea7FYDAABALxlBUgilsrIaM0cAAADoLeEIhVAq363GmiMAAAD0knCEQii1li/I6q0NAABA7xhBUggWZAUAAGB9CUcohPKyGlv5AgAA0FvCEQqhvKym0W41AAAA9JIRJIVQsSCrshoAAAB6SThCIZSvOdJoQVYAAAB6yQiSQii1lJXVWHMEAACAXhKOUAjN5TNHlNUAAADQS8IRCqGlIhzx1gYAAKB3jCCpem1tbRXhiK18AQAA6C3hCFWvuWynmiRpUFYDAABALwlHqHrls0aSpMluNQAAAPSSESRVr7m1teJrZo4AAADQW4MWjjz//PM5++yzM2XKlIwZMyabb755pk6dmssuuyzLly/foGMvWbIks2fPzoc//OHsvvvuGTduXEaMGJGtttoq+++/fy677LL8+c9/7p8LYdgpdVJWYytfAAAAequura2tcmTZz+bMmZP3v//9efXVVzt9fuedd86tt96aHXfcsc/Hvu2223LUUUdl1apV3bZ73etel+985zuZPn16n/vojQULFmTChAlJkvnz52f8+PED0g+VXnptZaZefOc6X/vF+QdlszEjhuiMAAAAGCgDMf4e8JkjjzzySI4++ui8+uqrGTt2bC6++OLcd999ufPOO/PhD384SfL000/n8MMPz9KlS/t8/D/96U9ZtWpV6uvrc8ghh+SKK67IXXfdlYcffjg333xzjjnmmCTJiy++mHe+85355S9/2Z+XxzDQ2cyRBjNHAAAA6KXGge7g9NNPz/Lly9PY2Jjbb78906ZNa3/ugAMOyE477ZRzzjknTz31VL7whS/kggsu6NPxm5qacsopp2TGjBl5wxvesM5zu+22W4444ojsvffe+X//7/9l+fLlOeuss3LnnXd2cTSqUacLstZbTgcAAIDeGdCymnnz5mXq1KlJklNOOSX//d//XdGmtbU1b3nLW/Lkk09ms802y4svvpimpqZ+P5e99torDz74YOrr6/PSSy9liy226NfjK6sZOs++vDQHXD53na/95uJD7VgDAABQQFVXVnPjjTe2Pz7ppJM6P4H6+hx//PFJksWLF+fuu+8ekHPZf//9k6wJY373u98NSB8MjVInM0ca7VYDAABALw1oOHLPPfckScaMGZM99tijy3b77bdf++N77713QM6l44Kt9UouCqV8zZGG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MmbMmIwdOzYjRowY6lNKIhyhylWsOaKsBgCAKtTW1pZFixZl0aJFQ30qMODWhoAvvvhittpqq2yxxRapqxvasZxwhKpWvuZIo91qAACoQgsXLsyrr766ztfq6urS0NAwRGcEA6OlpSVtbX8dx7388stZvXp1tt122yE8K+EIVa58K18zRwAAqDYrV65cJxjZYostsskmm2TkyJFD/tt06G9tbW1ZtWpVlixZkj/96U9JkldffTVbbLFFRo4cOWTn5dfsVLVmW/kCAFDl/vznP7c/3nrrrbP11ltn1KhRghEKqa6uLqNGjWp/r6+1ePHiITwr4QhVrqVi5oi3NAAA1WX58uXtj8eNGzd0JwKDrOP7vePPwVAwkqSqlc8caTJzBACAKtPS0pIkaWxstMYINaWhoaH9Pb/252CoCEeoauW71TRYcwQAAKBqDJfyMeEIVa2irMZuNQAAAPSRkSRVrbl8K18zRwAAAOgj4QhVrdRiQVYAAAA2jJEkVa3UakFWAAAANoxwhKpmQVYAAKCvZs2albq6utTV1eX3v//9UJ8Ow4BwhKpWOXPEWxoAAIC+MZKkqlWuOWLmCAAAQEf7779/6urqsv/++w/1qQxbwhGqWvnMkQZrjgAAAD048cQT09bWlra2tkycOHGoT4dhQDhCVasoq7FbDQAAAH1kJElVqyirMXMEAACAPhKOUNWay3arseYIAAD0o9bWZNmyNf8tkO52qylfn+MPf/hDzjzzzEyaNCmjR4/OFltskUMOOSS33XZbl8f//e9/3378WbNmJUm+973v5R/+4R+y9dZbZ/To0dlll11y7rnnZvHixV0e58QTT0xdXV2PpT9dXc/a18+dOzdJMnfu3PZ2a/8oK1pDOEJVa2ktnzniLQ0AABvskUeSE05INt44GTt2zX9POGHN12vIvffem7e+9a254oor8tvf/jYrV67MK6+8kttvvz2HHXZYLrvssl4d5+STT87RRx+dO++8My+//HJWrlyZp59+Opdeemne/OY354knnhjgK6EnRpJUtfI1R8wcAQCADfSd7yR77plce22yfPmary1fvubve+655vkasHDhwhx11FFpaGjIJZdcknvvvTcPPPBAvvCFL2TcuHFJkvPOOy+/+tWvuj3OlVdema9//euZOnVqvvOd7+TBBx/MrbfemmOOOaa9n0MOOSRLlizp92u4+OKL89hjj2XPPfdMkuy555557LHH1vlz++2393u/1ahxqE8ANkSzrXwBAKgFra3Jn/408P08/nhy/PFJqdT586XSmudf//rkLW8Z2HPZYotkCDdc+PWvf53tt98+P/vZz7Lddtu1f32vvfbKXnvtlb//+79PqVTKVVddlS996UtdHmfevHk57LDDctNNN6Wx8a9D8EMPPTRvfvObc8EFF2TBggW56KKL8vnPf75fr2G77bbLdtttlzFjxiRJxowZk7cM9H2rUsIRqlpL+cwRZTUAABTRn/6UbL31UJ/FGqVScsABA9/PSy8lW2018P104z//8z/XCUbW2mefffK2t70t999/f+65555ujzFy5Mh87WtfWycYWeuTn/xkrr/++jz++OO55ppr8u///u8ZOXJkv50/vWckSVWzICsAADAQxo0bl8MPP7zL5/fYY48kybPPPtvtcQ4++OBsu+22nT5XX1+fE044IUmyePHiPPzww+t5tmwo4QhVrWRBVgAAYADstNNOqe+mrGfzzTdPkrz22mvdHmevvfbq9vmpU6e2P3788cf7cIb0JyNJqlqpbOZIU4OZIwAAwIbbaKONun1+bXDS2sM2x1v3UA71ute9rv3xK6+80suzo79Zc4SqVr5bTYOyGgAAimiLLdaswTHQPv7x5Prre253zDHJf/7nwJ7LFlsM7PEHSV1d92OUtra2bp9ncAhHqGoVC7IO4WrWAAAwYOrrB2dx0hkzkhtu6Hq3miRpbEzOO2/IF0utFi+++GK3z7/UIfRaW6qzVm9npyxbtmw9z461jCSpauVb+SqrAQCADfDWtybXXrsmAOlMY+Oa59/61sE9ryo2b968Xj9fvs3uxhtvnCT585//3O0xnn766W6f72n2CsIRqlz5miPKagAAYAMdd1zy4IPJCScka9fd2GijNX9/8ME1z9Nrt99+exYuXNjpc62trfnGN76RJNlss82y++67r/P8DjvskGTNoq9dBSCrV6/OD37wg27PYdSoUUmSVatW9enca4lwhKpWvuZIk91qAABgw731rcmsWclrryVLl67576xZZoysh1WrVuWUU05JS0tLxXOXXHJJHnvssSTJP//zP2fkyJHrPL/ffvu1P7788ssrXt/W1pbTTjstf/zjH7s9h2222SbJmm2HrXHSOWuOUNUqtvI1cwQAAPpPfX0yZsxQn0VV23PPPfOjH/0oe++9d84444zstNNOeemll/KNb3wjs2fPTpKMHz8+559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95l+fwd3/3d5k5c2ZeeumlnHnmmfnABz6QTTfdNEnS1NSU7bfffmAuvooIR6hq5WU1jdYcAQAAhpFTTz01c+fOzaxZs3LsscdWPL/NNtvkxz/+cXtYUW7mzJnZb7/92gOVtWU4a5155pnZdddduw1Hjj322Hz2s5/Ns88+my9+8Yv54he/2P7c9ttvn9///vfrdW1FogaBqlY5c8RbGgAAGF5mzpyZ6667Lvvvv3+22GKLjBw5MpMnT84555yTX/3qV3nTm97U5Wt32WWXPPzww/noRz+a7bffPiNGjMhWW22Vd7zjHZkzZ06n5Tblxo4dm/vuuy+nnXZapkyZko3WriVDu7o2BUf9YsGCBZkwYUKSZP78+Rk/fvwQn1FtmDTj1nXWHbnlE/vkLdt1nrgCAMBw9Jvf/CalUimNjY3Zaaedhvp06Ae///3v2xdTnTlzZk488cShPaFhbH3e/wMx/vZrdqpWW1ubBVkBAADYYEaSVK2W1spJT9YcAQAAoK+EI1St8lkjid1qAAAA6DvhCFWruaW14muNymoAAADoIyNJqlZnZTVNZo4AAADQR41DfQKwvppbKsORBuEIAAAwxCZOnBgbw1YXM0eoWp0vyOotDQAAQN8YSVK1OltzpMluNQAAAPSRcISq1dluNcpqAAAA6CvhCFWrpbWTmSP13tIAAAD0jZEkVat8Qdb6uqTezBEAAAD6SDhC1SqVhSONZo0AAACwHowmqVqlsrKaRouxAgAAsB6EI1St8gVZLcYKAADA+hCOULXKt/JtavB2BgAAoO+MJqlaLa3la46YOQIAAEDfCUeoWpULsgpHAAAA6DvhCFWrvKymUVkNAAAA68FokqpVUVZjtxoAAADWg3CEqtVszREAAAD6gXCEqtXSWlZWU+/tDAAAQN8ZTVK1mssWZG1SVgMAAFSRiRMnpq6uLieeeOJQn0qf7L///qmrq8v+++8/1KfSb4QjVK3y3WoalNUAAACwHoQjVK2Kshq71QAAALAejCapWspqAAAA6A/CEapWqWzmSIMFWQEAoF+1trZl+epSWst2iiyK1atX58orr8z06dOz1VZbZcSIEXn961+fww47LN/61rfSWjbmWKu3a25ceOGFqaurS13dur/IXfv65557LknyjW98o73d2j8dj/373/++/euzZs1Kknzve9/LP/zDP2TrrbfO6NGjs8suu+Tcc8/N4sWLuzyfE088MXV1dZk4cWK35z1r1qz2/n7/+99XvH7u3LlJkrlz51acd0/HHq4ah/oEYH2Vyv6BbrLmCAAA9Isn/rgkV9/7bG577IWsaG7J6KaGHLrr6/OhfXbMm7bdZKhPr18899xzOfTQQ/Pkk0+u8/UXX3wxt912W2677bb8z//8T2666aZsvvnmQ3SWnTv55JPz9a9/fZ2vPf3007n00ktz7bXX5o477sib3vSmITq76uRX7VQtC7ICAED/u+mXf8g/fuXe3PDwH7KiuSVJsqK5JTc8vObrN/3yD0N8hhtu6dKlOeCAA9qDkSOPPDI333xzHnzwwXzve9/LfvvtlyS599578853vjMtLS392v/MmTPz2GOPZdttt02SvOtd78pjjz22zp+ZM2d2+torr7wyX//61zN16tR85zvfyYMPPphbb701xxxzTJJk4cKFOeSQQ7JkyZJ+Peckufjii/PYY49lzz33TJLsueeeFed9++2393u/g8HMEapWqWXdKW5NFmQFAKCgWlvbsnj56gHv59cvvpYzr38kLV2U0ZRa23Lm9Y9k641HZvLrNh7Qc9lsoxGpH6BfgH7605/Os88+myT51Kc+lYsuuqj9uT322CPvec978sEPfjDf/va38/Of/zxXXXVVPvrRj/Zb/zvssEOSpKmpKUkybty4vOUtb+nVa+fNm5fDDjssN910Uxob/zqkP/TQQ/PmN785F1xwQRYsWJCLLroon//85/vtnJNku+22y3bbbZcxY8YkScaMGdPr8x7uBi0cef755/PlL385c+bMyfPPP5+RI0dm0qRJOfroo/Oxj30sG220Ub/0M3v27MycOTOPPvpoFi9enNe//vXZd999c+qpp+btb397v/TB8FBeVtNoQVYAAApq8fLV2ePf7xjq00iStLS25biv/d+A9/PQp/4hW4wd2e/HXbVqVa6++uokyZve9KZceOGFFW3q6upy5ZVX5n//93/zpz/9KV/5ylf6NRzZECNHjszXvva1dYKRtT75yU/m+uuvz+OPP55rrrkm//7v/56RI/v/e1hEg/Kr9jlz5uRv/uZvcvnll+epp57K8uXLs3jx4sybNy//8i//kt133709tVtfK1euzBFHHJHjjjsut99+e1544YWsWrUqzz33XL71rW9l7733XicNpPqVhyPKagAAgJ489NBD+fOf/5xkzQKjDQ0NnbbbZJNNcvTRRydJnnjiiSxcuHCwTrFbBx98cHs5Trn6+vqccMIJSZLFixfn4YcfHsxTq2oDHo488sgjOfroo/Pqq69m7Nixufjii3PfffflzjvvzIc//OEkaxaOOfzww7N06dL17ufkk0/OLbfckiSZPn16brzxxjzwwAO55ppr8sY3vjGtra254IIL2hNCql9zeVmN3WoAAIAePP744+2P3/a2t3XbtuPzHV83lPbaa69un586dWr74+FyztVgwMtqTj/99CxfvjyNjY25/fbbM23atPbnDjjggOy0004555xz8tRTT+ULX/hCLrjggj73MXfu3Fx33XVJkiOOOCI//OEP29O/vfbaK//4j/+YPfbYI88//3zOOeecvPe97824ceP65fqqXWtrW1aWWjKqsaFX9XzDqX15HaSyGgAAoCevvPJK++PXve513bZ9/etf3+nrhtLWW2/d7fMdr2m4nHM1GNBwZN68ebn77ruTrJnZ0TEYWeuss87KzJkz8+STT+aLX/xizjvvvPZFaXrrc5/7XJKkoaEhV155ZcW0qC233DKXXnppjjvuuCxevDjXXHNNzjrrrPW7qILo69Zcw7H9T3+9aJ2v3f/sn/LEH5cUZmsxAABYa7ONRuShT/3DgPdzwU2/ypzHei4feeffbJNP/+ObB/RcNttoxIAeP1mztkh32to6X5h2KFXjOVeDAQ1HbrzxxvbHJ510Uqdt6uvrc/zxx+e8887L4sWLc/fdd+eggw7qdR9Lly7NnXfemSQ56KCDMn78+E7bvfvd784mm2ySJUuW5IYbbqjpcOSmX/4hZ13/yDprdqzdmuvmX/4xlx/91rzrb7erqvZJ8tuXl+Ufv3JvRXsAAKh29fV1A7I4ablTp0/Kj3/1QsVn7Y4a6+vysf0nDcr5DITNN9+8/fELL7yQyZMnd9n2xRdf7PR19X8p6W9tba14TUfLli1b39Ps1Tl15qWXXmp/3PGck6E97+FuQBdpuOeee5Ks2d5njz326LLd2j2kkzX7SPfFAw88kFWrVlUcp9yIESPad6t54IEH0tzc3Kd+iuKJPy7pNFhYa+3WXD956qXMf2V5fvLUSzmzytqfdf0jeeKP/b+nNwAAFN2btt0klx/91jR2UeLeWF+Xy49+a1XP1u649ez//V/3u+488MADnb5u443XbGO8ePHibl//9NNPd/t8T7NAOjNv3rxeP1++ze7a8167IG1XBuK8h7sBnTny5JNPJkkmTZrU6TZDa+2yyy4Vr+lrH+XH6aqf22+/PaVSKb/5zW/ypje9qdf9LFiwoNvnh8vKxT25+t5nu02BkzVreZw0q/sfuOHcvtTalmvu/V0uP/qtvX4NAACwxrv+drvstPXGuebe3+XWxxa2l70ftus2OXmfHao6GEmSPfbYI+PGjcuf//znfOMb38iZZ57Z6Y41r732Wq6//voka7b83Wabbdqf22GHHZIkv/71r/Paa6+1hw4dvfzyy7njju63Xx41alSStP/Cvzduv/32LFy4cJ3zWau1tTXf+MY3kiSbbbZZdt9993WeX3ver732Wp5++unsvPPOFcdYvXp1fvCDH/T7eQ93AzZzZOXKlVm0aM2aEF2Vuqy12WabZcyYMUmS+fPn96mfju176mfChAmdvq43JkyY0O2fjisCD1etrW257bEXhvo0BsWtjy1Maw8hEAAA0Lm1M0h+9elD8sRnDsmvPn1I1c8YWWvkyJH50Ic+lCT51a9+lU9/+tMVbdra2vLxj3+8fUz78Y9/fJ3n11YtrF69Ov/5n/9Z8frm5uacfPLJWbFiRbfnsjbg+O1vf9vr81+1alVOOeWUtLS0VDx3ySWX5LHHHkuS/PM//3NGjly39KljtcXll19e8fq2tracdtpp+eMf/9ir83722WcLs8bJgM0cee2119ofjx07tsf2Y8aMybJly/q8nW9f+lkbwCTZoG2Dq9XKUktWNFf+ABXRiuaWrCy1ZKMRA74hEwAAFFZ9fV0hP1NfcMEFueGGG/Lss8/moosuyuOPP55//ud/zrbbbpvf/e53+cpXvtK+uci0adPykY98ZJ3XH3744dl+++3z3HPP5fzzz8+iRYvy7ne/O6NGjcrjjz+eL3/5y/nlL3+Zt73tbd2W7vzd3/1dfvKTn2TevHm55JJLcuihh7aPW0ePHp3ttqtcS3HPPffMj370o+y9994544wzstNOO+Wll17KN77xjcyePTvJmokD559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95t+c9c+bMvPTSSznzzDPzgQ98IJtuummSpKmpKdtvv333N2AYGrB3+cqVK9sfjxjR8yrDaxOtnpK1DemnY2rW1356mmmycOHCYT97ZFRjQ0Y3NdREQDK6qSGjGiunxgEAAGy88ca58847c+ihh+app57KD3/4w/zwhz+saLf33nvn5ptvrii7GTFiRL71rW/lHe94R5YtW5YrrrgiV1xxRfvzDQ0N+cIXvpA///nP3YYjH/3oR/PVr341r7zySs4777ycd9557c/tt99+7QFNR6eeemrmzp2bWbNm5dhjj614fptttsmPf/zj9rCi3MyZM7Pffvu1Bypry3DWOvPMM7Prrrt2G44ce+yx+exnP5tnn302X/ziF/PFL36x/bntt98+v//977t87XA1YGU1a2uQkjVTjXqytlZp9OjRA9ZPx3qovvYzfvz4bv90Vu813NTX1+XQXV/fc8MkR/7ttnnyM+/Iu/5226psf9iu26S+i0WkAAAAJk6cmEceeSRf+cpXst9++2WLLbZIU1NTXve61+Ud73hHvvnNb+anP/1pxY4va+2zzz556KGH8sEPfjDbbrttmpqass022+Q973lPfvrTn+b000/v8Ry22267PPDAAzn55JMzadKkdca33Zk5c2auu+667L///tliiy0ycuTITJ48Oeecc05+9atfdbu+5i677JKHH344H/3oR7P99ttnxIgR2WqrrfKOd7wjc+bM6bTcptzYsWNz33335bTTTsuUKVOy0UYb9eq8h7MBmznScUGa3pSwrN0qqDclOOvbT8ftiPraT1F8aJ8dc/Mv/9jj1lwf+fs3ZvSIhpzy92/MnEcXVl37k/fZocvnAQAAkjUzQE499dSceuqp6/X6nXfeOddee22Xz1944YW58MILuz3GG9/4xlx99dV97vu4447Lcccd1+fXJWtCmSuvvLLL50888cSceOKJ3R7jda973TozRqrdgM4c2XLLLZP0vNPL4sWL24OLjoum9kbHRVh76qdjaUxf+ymKvm7NVe3tAQAAoCcDurLOlClTcs899+SZZ55JqVTqcjvfp556ap3X9EXH6UIdj9NdP42NjZk0aVKf+imSvm7NVe3tAQAAoDsD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jl22e+Mb39j+eNWqVX3qg6Hncxgd+RxWLD6HDV/CkSp0zz33JEnGjBmTPfbYo8t2++23X/vje++9t099PPDAA+0fpjoep9yIESPy9re/vf01zc3NfeqHrg3Gfe6tjh+s6+v9s9GfBvs+l0qlfOQjH0lra2v+9V//NTvvvPN6H4veG4z7vHr16vZ1Rg499NCMHTs2yZp7/txzz+X5559fZ2BN/xuM+7zllltm8803T5I8++yzXbb77W9/2/548uTJfeqDoedzGB35HFYcPocNb366qtCTTz6ZJJk0aVIaGxu7bLfLLrtUvKavfZQfp7t+SqVSfvOb3/SpH7o2GPe5t+bOnZskaWxszKRJkwakj1o12Pf5sssuyyOPPJI3vvGNmTFjxnofh74ZjPv8yCOPZOXKlUmSadOm5YUXXshJJ52UcePGZeLEidl+++2z6aab5rDDDst99923HldBTwbr5/kjH/lIkuThhx/Obbfd1mmbiy66KEnS0NCQD33oQ33ug6Hlcxgd+RxWHD6HDW/CkSqzcuXKLFq0KEl63Glgs802y5gxY5Ik8+fP71M/Hdv31M+ECRM6fR3rb7Duc2/MmTMnjz76aJLkkEMOaZ++y4Yb7Pv87LPP5jOf+UyS5Morr8yoUaPW6zj0zWDd5yeeeGKdPnfdddfMmjUry5YtW+frt912W/bdd9988Ytf7NPx6d5g/jx/8pOfzD/8wz8kSY466qicffbZue222zJv3rx897vfzf7775/vf//7aWhoyJe//OVMmTKlz30wtHwOYy2fw4rD57DhTzhSZV577bX2x2unTHdn7Yevvm4X2Jd+1vaxPv3QucG6zz155ZVXcuqppyZZ89vHtb+JpH8M9n0+5ZRTsmLFihxzzDGDulVdrRus+/zKK6+0P/70pz+dRYsW5Z3vfGcefPDBrFy5Mi+++GKuvPLKbLLJJmltbc2ZZ57Z5awD+m4wf57Hjh2b2267LV/72tcyfvz4XH755TnssMMyderUHHvssZk7d27e/e5352c/+1k+9rGP9fn4DD2fw0h8Disan8OGP+FIlVk7ZTpZU2fak5EjRyZJVqxYMWD9rO1jffqhc4N1n7vT0tKS97///XnuueeSJJ/61Key22679dvxGdz7fO211+aOO+7IJptskiuuuKLPr2f9DdZ97jhDZNWqVTniiCNy0003ZY899sjIkSOz9dZb56Mf/WjmzJmT+vr6tLW15ZxzzklbW1uf+qFzg/3v9oMPPpjvfOc7Xa47cscdd+Qb3/hGlixZsl7HZ2j5HIbPYcXic1h1EI5UmY7Tr3qzsN7aBZxGjx49YP10XCSqr/3QucG6z9352Mc+lv/93/9Nkhx++OE5//zz++3YrDFY93nRokXtO5dcfPHF2Wabbfr0ejbMUPy7nSSf//znO124b5999sm73/3uJMnjjz+exx9/vE/90LnB/Hf7+9//fvbff//cdddd2XXXXfPDH/4wf/rTn7J69er89re/zX/8x3+kubk5X/3qV/N3f/d3eeGFF/rcB0PL5zB8DisOn8Oqh3Ckymy88cbtj3szdXLtbxJ7M8V3ffvp+NvKvvZD5wbrPnflvPPOy1VXXZVkzUDqe9/7XhoaGvrl2PzVYN3nM888M4sWLcqee+5piv0QGIp/t3fYYYduV8A/5JBD2h/PmzevT/3QucG6zy+++GJOPPHErFq1Km9+85tz33335cgjj8zmm2+epqam7LjjjjnvvPPyox/9KHV1dfnVr36VT3ziE327GIacz2G1zeewYvE5rHp0vZQ6w9KoUaOy5ZZbZtGiRVmwYEG3bRcvXtz+P8yOi3X1RsfFvxYsWJA999yzy7YdF//qaz90brDuc2cuvfTSXHLJJUmS3XffPbfccovfRA2QwbjPf/zjH/PNb34zSXLAAQfk+uuv77b9Sy+9lNmzZydZM8B+29ve1uu+6Nxg/Tx3bN+XBRxfeumlPvVD5wbrPs+ePbv9tTNmzFhnvYmODjzwwBx44IG54447csMNN2Tx4sXZbLPN+tQXQ8fnsNrlc1ix+BxWXYQjVWjKlCm555578swzz6RUKnW5XeBTTz21zmv64k1velOnx+muH9uL9a/BuM/lrrzyypx77rntx/rxj3+cTTfddIOOSfcG+j53nI79uc99rsf2Tz75ZI477rgkyQknnOB/yv1kMH6e3/zmN7c/bmlp6bZtx+e723KWvhmM+9xxi9fdd9+927Z77LFH7rjjjrS2tubXv/61n+cq4nNYbfI5rHh8Dqsuymqq0D777JNkzTTKhx56qMt2a/dET5K99967T33stdde7QuAdTxOudWrV+f++++veA0bbjDuc0ff/OY38/GPfzxJsuOOO+aOO+7Illtuud7Ho3cG+z4zNAbjPm+//fZ5wxvekCT57W9/223bjs9vt912feqHrg3Gfe4YuJRKpW7bNjc3d/o6hj+fw2qPz2Ew9IQjVejII49sfzxz5sxO27S2tubaa69NkowbNy7Tp0/vUx8bb7xxDjzwwCRrVrzvaorwDTfc0L4S/lFHHdWnPujeYNzntW644YacdNJJaWtry/jx43PnnXdm2223Xa9j0TcDfZ8nTpyYtra2Hv+std9++7V/bdasWet1TVQarJ/n97znPUnWrEtx3333ddnuhhtuaH+877779rkfOjcY93mHHXZof3zPPfd02/anP/1pkqSuri4TJ07sUz8MLZ/DaovPYcXlc1iVaaMq7bvvvm1J2hobG9vuu+++iuc/97nPtSVpS9L2b//2bxXPz5w5s9vn29ra2u688872Nv/4j//YViqV1nn+5ZdfbnvDG97QlqRt3Lhxba+88kp/XBodDMZ9/vGPf9w2YsSItiRtW2+9ddtTTz3Vz1dBTwbjPvdk7ev322+/9Xo9PRuM+/zcc8+1jRo1qi1J2x577NG2dOnSijbf/OY3249z+OGHb+hlUWag7/OTTz7ZVldX15akbbvttmtbsGBBp+fxP//zP+3HmTZt2oZeFt343e9+1/69PuGEE3r1Gp/Dqs9A3Wefw4aXgbrPPfE5bHgwx7JKfelLX8ree++dFStW5OCDD86MGTMyffr0rFixIrNnz25f4Xry5MntW0f11QEHHJBjjz02s2fPzs0335yDDjoop59+erbddts89thjufjii/P8888nSS655BILvQ2Agb7P999/f4466qisXr06TU1NueKKK9Lc3Nzt1p7jx4/PuHHj1veS6MRg/Dwz9AbjPr/hDW/IZz7zmZxzzjl56KGHMnXq1Jxzzjl5y1vekldffTU33HBD/vu//ztJsskmm+SKK67ot+tjjYG+z7vssktOOumkfP3rX88f/vCH7Lbbbjn99NOz7777ZuONN878+fMze/bsXHfddUmShoaG/Md//Ee/XmOtu/fee/PMM8+0/33RokXtj5955pmK3/aeeOKJ69WPz2FDazDus89hQ2+wfp6pEkOdzrD+br755rZNNtmkPWks/zN58uS23/zmN52+trcJ5/Lly9sOO+ywLvuor69f74SU3hnI+/xv//ZvXR63qz8zZ84c2AuuUYPx89ydta/3G4uBNVj3+dxzz22fXdDZn6233rrTWQ30j4G+zytXrmw75phjevz3esyYMW3f/va3B/BKa9MJJ5zQp/9vdsbnsOFvMO6zz2FDbzB/nrvjc9jwYM2RKnbEEUfk0UcfzRlnnJHJkydno402yrhx47Lnnnvm0ksvzS9+8YsNXrV89OjRmTNnTr797W/noIMOytZbb50RI0ZkwoQJed/73pd77703F154Yf9cEJ0ajPvM0HOfa8Ng3efPfvaz+dnPfpYPfvCDmThxYkaOHJlNN900e+21Vy666KL8+te/zrRp0/rhiujMQN/nkSNHZvbs2bnrrrty/PHHZ/LkyRkzZkwaGxuz+eabZ9q0aTn//PPz1FNP5X3ve18/XhmDzecwgMFT19bWYQUYAAAAgBpj5ggAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANQ04QgAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANS0/x9IX8EnCxQPPAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 413, - "width": 547 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "delayer = time_delay_system(.1, simulation_dt, inputs='u', outputs='ud')\n", - "t, y = ct.input_output_response(delayer, time, step_input) \n", - "plt.plot(time, step_input, 'r.-', label='input')\n", - "plt.plot(t, y, '.-', label='output')\n", - "plt.legend()\n", - "delayer" - ] - }, - { - "cell_type": "markdown", - "id": "862ce22c", - "metadata": {}, - "source": [ - "We can incorporate this delay into our closed-loop system. The time delay shifts the response to the right and brings the system closer to instability." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "d8f6e5b3", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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9t5vO+02zcsZFpqAACCGzM/JkLOdX8L8DgYA65AcAYAYkZmarEuG9231cafdpkVzxykzNTmEUQFAbMhMTdaiuePaTJDwOxgArBOy5MiBAwf0ve99T2PGjFFSUpJ69+6tKVOm6NFHH1V1dXWXXKOwsFD33HOPsrKylJycrLi4OPXr10/Tp0/X448/rhMnTnTJdQAgUlWcrG+25nY5NGdCmlYuyNHs7EEWRAUAsWF29iCtXJCjORPSFO9s/jZ8TAqJEQCwis3v9wd9VtiqVat02223qbKyssXHR40apdWrVysjI6PT11i0aJF++MMfyuv1trpnyJAhWrlypcaOHdvp67SmuLhY6enpkqSioiKlpaV1+TUA4FxU1XqU/fAbOntC5F/mTdHF5/XlfDsAhJjXa+jiX7+jQyfqGte+c8UI3XfVSAujAoDIEIzP30GvHMnPz9fcuXNVWVmpbt266ec//7k+/PBDvf322/r6178uSfrss8903XXX6eTJk526xrJly/S9731PXq9XcXFx+u53v6tVq1bp448/1t/+9jfl5ORIkvbv369rr7221SQNAESzTw4cNyVG4hx2TRram8QIAFjA6bTr+rGpprVXt5YqBN9bAgBaEPTkyL333qvq6mo5nU698cYbeuCBBzR16lRdfvnlevrpp/Wb3/xGkrRjxw499thjnbrGz372s8bby5cv12OPPaaZM2dqypQpuvXWW7Vu3TrddNNNkqSysjItWbLk3P9gABBhNu07aro/Nq2HEgIcLQkA6HrXjU0x3d9z+JR2lHMMHACsENTkyMaNG/Xee+9JkubNm6epU6c227Nw4UKNGTNGkvTb3/5WHo+nQ9eoqqrSp59+KkmaMGGCrrvuuhb3/eQnP2m8/eGHH3boGgAQDTY2SY5MGtrbokgAAJI0YXBPDerpNq29urXUomgAILYFNTny8ssvN96+6667Wg7Abtftt98uSTp27FhjMiVQ9fVnmgu21bPkvPPOa7xdV1fX6j4AiEb1XkN5RcdNa5OH9rImGACAJMlmszWrHnl1axlHawDAAkFNjqxbt06SlJSUpIkTJ7a6b9q0aY23c3NzO3SNvn37qnfv099+7tmzp9V9n3/+eePtkSNpdAUgtmwrrVStxzCtTRxCcgQArHZdljk5sv9ItbaVVlkUDQDErqAmR7Zv3y5JGj58uJxOZ6v7Ro8e3exnOuIb3/iGJGnLli1as2ZNi3sa+pI4HA7Nnz+/w9cAgEi2ad8x0/2RA7qpZ2KcRdEAABqMTeuhwb0TTWuvcLQGAEKu9YzFOaqtrVVFRYUktTtWp1evXkpKStKpU6dUVFTU4Wv993//tzZt2qS33npLN954oxYsWKArrrhCffv21Z49e/TUU09p7dq1cjgc+t3vftfY46QjiouL23y8rKysw88JAKFCvxEACE8NR2ueeu9MlfOqrWX64bWjZbMxTQwAQiVoyZETJ8502u7WrVu7+xuSI50Z59utWzetWbNGS5cu1a9+9SstWrRIixYtMu256aabdP/99+vCCy/s8PNLapyhDACRxu/3a9N+c+UI/UYAIHxcl2VOjhQfq1F+caWy03taFxQAxJigHaupra1tvB0X137pdnx8vCSppqamU9fbtGmT/v73v7fad+Stt97Ss88+q6oqznACiC17Kk7p6Kl609qkIVSOAEC4OD81WcP6JpnWXs3naA0AhFLQkiMJCQmNt8+eKNOahgkybre7nZ3Nvfjii7rsssv0zjvvKCsrS//617905MgR1dfX6/PPP9cvfvELeTwePfXUU7r44otVXl7e4WsUFRW1+c+GDRs6/JwAEAqbmhypGZicoLReHf9dCwAIDpvN1qwx66qCMhkGU2sAIFSCdqyme/fujbcDOSpz6tQpSYEdwTnbwYMHdeedd6qurk7nn3++PvzwQyUlncm8Z2Rk6Ec/+pGmTJmiq666Stu2bdM999yjf/7znx26Tnt9UwAgXDVtxjpxaC/OsQNAmLl+XIqefHd34/2yylp9UnRME6n0A4CQCGrlSN++fSW138z02LFjjcmRjvb2eOGFFxp/9oEHHjAlRs52xRVX6IorrpAkLV++XMeOHWtxHwBEm2b9RhjhCwBhZ9SA7hre3/wl4Sv5NPwHgFAJ6ijfhqkwu3fvltfrbXXfjh07mv1MoM4e/TthwoQ2906cOFGSZBiGdu7c2aHrAEAkOnyiTnsrTpnWmFQDAOGnpaM1qzlaAwAhE9TkSE5OjqTTR2Y2b97c6r61a9c23r7kkks6dA2n88zJoLYSMJLk8Xha/DkAiFab95v7jXSLd2r0wO6t7AYAWOmGcebkyKETdc1GsQMAgiOoyZEvfvGLjbefeeaZFvcYhqHnnntOktSzZ09Nnz69Q9cYNmxY4+1169a1uff999+XdDozP3To0A5dBwAi0cYm/UbGD+4ppyOov/oBAJ00vH/3ZgnsV7dytAYAQiGo75CnTJmiSy+9VJK0ZMkSffTRR832LFq0qPFozH/913/J5XKZHl+6dKlsNptsNpseeuihZj9/3XXXNTYW/PnPf66SkpIWY3n66ae1adMmSdJFF12kPn36dPrPBQCRoumkmskcqQGAsNb0aM2aT8vk42gNAARd0L8+fOKJJ+R2u+X1enX11Vfrl7/8pdavX693331Xd999t+6//35J0siRI7Vw4cIOP//o0aN11113SZJKSko0fvx4/eIXv9C6deuUl5enV155RbfddpvuvvtuSZLD4dAvfvGLrvsDAkCYqq736tPSKtPapKE0YwWAcHbdWHNypOJkvT7ec8SiaAAgdgS98cb48eP1j3/8Q1/96ldVVVWlBx54oNmekSNHatWqVabxvx3xhz/8QadOndI//vEPHT58WP/93//d4r6kpCQ9/fTTuuyyyzp1HQCIJHkHjpu+bXTabcpO72ldQACAdmX066bMlGQVlp1Jbr+ytUwXD+9rYVQAEP1CcvD8hhtu0NatW/Xd735XI0eOVGJionr27KlJkybp17/+tT755BMNHz68088fHx+vF154Qe+8845uv/12jRw5UklJSXI6nerdu7emTp2qH//4x9qxY4e+8pWvdOGfDADCV9N+I+cP6qHEOJpRA0C4u75JY9bXPi2T12dYFA0AxAab3+/nEGMXKC4uVnp6uiSpqKhIaWlpFkcEINZ9bcnHWrerovH+vJxh+vH1mRZGBAAIxIEj1frCI++a1p77jyn6wsh+FkUEAOElGJ+/GVkAAFHI6zO0Zb+5cmQy/UYAICIM7pOosWk9TGuvbi21KBoAiA0kRwAgCu0oP6FT9T7T2sQhTKoBgEhxfZPGrK9vO6h6L0drACBYSI4AQBRqOsJ3WN8k9eseb1E0AICOmtlkpG9ljUcf7K5oZTcA4FyRHAGAKLSxyZGaSUM4UgMAkSStV6LGD+5pWvvXJ8UyDNoFAkAwkBwBgCjj9/ubVY5MHsqRGgCINNePTTXdX5lfpvN/8rruW5anwtKqVn4KANAZJEcAIMoUH6vRwao609okmrECQMRxtvBOvcbj0/ItJZr1ZK5W5JWEPigAiFIkRwAgymxsUjXSJylOw/omWRQNAKAzCkur9LNXt7f6uNfwa+GyfCpIAKCLkBwBgCizcV+TfiNDe8lms1kUDQCgMxbn7pG3nf4iXsOvJbl7QxQRAEQ3kiMAEGXoNwIAkc0w/FpTUB7Q3tUFZTRpBYAuQHIEAKLIsVP12nXopGltIpNqACCi1Hp9qvH4Atpb4/Gp1hvYXgBA60iOAEAU2dxkhG+Cy67zU3tYFA0AoDMSnA65XY6A9rpdDiU4A9sLAGgdyREAiCKbmiRHstN7Kq6lcQcAgLBlt9s0I2tgQHtnZqXIbqevFACcK94xA0AUod8IAESH+TkZcraT9HDabZqXMyxEEQFAdCM5AgBRotbj09biStPaJJIjABCRMlOTtWjuuDYTJLOzU5WZmhzCqAAgepEcAYAoUVBSqXqf0XjfbpMmDO5pXUAAgHMyO3uQVi7I0ZwJaS32IMkrOi6/n0k1ANAVSI4AQJTY2ORIzeiByeqe4LIoGgBAV2ioINn28DX68x2TTI99fviUPtpzxKLIACC6kBwBgCixaZ+5GevkoYzwBYBoYbfbNH10f2X0SzKt/3X9AYsiAoDoQnIEAKKAYfibNWOl3wgARBebzaavXjjEtPb6tnIdrKq1KCIAiB4kRwAgCuw6dFJVtV7T2iQqRwAg6syZmKYE15m38F7Drxc2FFkYEQBEB5IjABAFPt5rPnM+qKdbKT3cFkUDAAiWHm6Xvpg9yLT29w0H5D2rITcAoONIjgBABCssrdJ9y/L08CuFpvWRA7pZFBEAINi+epH5aE15Va3e2n7IomgAIDqQHAGACLUir0SznszV8i0l8hnmUY5rdx7WirwSiyIDAATTBYN6aHyTUe1/Wb/fmmAAIEqQHAGACFRYWqWFy/LlbZIUaWD4pYXL8lVYWhXiyAAAodC0MWvu7gp9fvikRdEAQOQjOQIAEWhx7p5WEyMNvIZfS3L3higiAEAoXTc2RT0TXaY1xvoCQOeRHAGACGMYfq0pKA9o7+qCMhntJFEAAJEnweXQLZPSTWsvbi5STb3PoogAILKRHAGACFPr9anGE9ib3xqPT7Ve3igDQDT6yoWDZbOduV9V69Ur+aXWBQQAEYzkCABEmASnQ26XI6C9bpdDCc7A9gIAIsuQPkmaNrKfae259fvk91MxCAAdRXIEACKM3W7TjKyBAe2dmZUiu93W/kYAQERq2pj105Iq5RdXWhQNAEQukiMAEIHm52SovZSH027TvJxhIYkHAGCN6aP7a1BPt2nt+Y8Y6wsAHUVyBAAikNcw1FbRtNNu06K545SZmhyymAAAoeew2/SVCweb1l7ZWqpjp+otiggAIhPJEQCIQI++sbPFdbfLoTkT0rRyQY5mZw8KcVQAACvcMjldLseZesJ6r6EXNxdbGBEARB6n1QEAADpm/Z4jen/nYdPaD64dpTsuHqoEp4MeIwAQY/p2i9fMrBStyDszqeYvH+/XvJxhvCYAQICoHAGACOL3+/XI65+Z1vp3j9edFw9TYpyTN8EAEKO+dpG5Mev+I9V6a/tBGQaTawAgEFSOAEAEefezQ9q8/5hp7Z4rRsgdx7heAIhlE4f00uiB3bWj/ETj2jee3yy3y6EZWQM1PyeDPlQA0AYqRwAgQhiGX4+8bu41kt7brVsmpVsUEQAgXNhsNmWl9Wi2XuPxafmWEs16Mlcr8kosiAwAIgPJEQCIEKsKyrS9rMq09t0rRyrOya9yAIh1haVV+teW1pMfXsOvhcvyVVha1eoeAIhlvKMGgAjg8Rl67E1z1ciI/t2YSAMAkCQtzt0jbzv9RbyGX0ty94YoIgCILCRHACACvLS5WHsrTpnWFl49Sg4asAJAzDMMv9YUlAe0d3VBGU1aAaAFJEcAIMzVenx64u1dprVxaT10zfkDLIoIABBOar0+1Xh8Ae2t8fhU6w1sLwDEEpIjABDm/vrxAZVV1prWvn/NaNlsVI0AAKQEp0NuV2BTy9wuhxKcTDgDgKZIjgBAGDtZ59Xv391tWpua0UeXDO9jUUQAgHBjt9s0I2tgQHtnZqXIzpFMAGiG5AgAhLE/5+7V0VP1prXvXTOKqhEAgMn8nAw520l62G3SvJxhIYoIACILyREACEOG4VfpsRo9vfZz0/qVY/pr4pBeFkUFAAhXmanJWjR3XJsJkp6JLo0Y0C2EUQFA5HBaHQAA4IzC0iotzt2jNQXlzZrr2WynJ9QAANCS2dmDNKJ/dy3J3avVBWXNXkeOnvLopc3F+vKUwRZFCADhi8oRAAgTK/JKNOvJXC3fUtLi1IEJg3tqTEqyBZEBACJFQwXJtoev0baHr9b49B6mx//3nd2q9xoWRQcA4YvkCACEgcLSKi1cli+v4W91T15RpQpLq0IYFQAgUtntNiXFu3Rfk4rDkuM1+ufmIouiAoDwRXIEAMLA4tw9bSZGJMln+LUkd2+IIgIARIOc4X01qUmvqt+/s1t13uYVigAQy0iOAIDFDMOvNQXlAe1dXVAmo50kCgAADWw2m+67aqRprbSyVss2FVsUEQCEJ5IjAGCxWq+vxR4jLanx+FTLt30AgA6Yel4fTRnW27T2h3d3qzbA1x4AiAUkRwDAYglOh9wuR0B73S6HEpyB7QUAQDpdPfLdK83VI2WVtfrHRnqPAEADkiMAYDG73aYZWQMD2jszK0V2uy3IEQEAos3U8/rooowm1SPvUT0CAA1IjgBAGJifk6H2ch5Ou03zcoaFJiAAQNRpWj1ysKpOf99wwKJoACC8kBwBgDCQmZqstF6JrT7utNu0aO44ZaYmhzAqAEA0uTCjjy4Z3se09of3Pqd6BABEcgQAwsInB47pwNHqZutul0NzJqRp5YIczc4eZEFkAIBo0rR65PCJOv1l/X6LogGA8OG0OgAAgLT0w32m+6k9EvTavZeqW7yLHiMAgC4zaWhvXTqir9btqmhc+7+1e3TbhUPkjqPhN4DYReUIAFjsYFWtVm0tM63dfvFQJbvjSIwAALrcvU2qRypOUj0CxDLD8Ku63ivD8FsdiqWoHAEAi/314wPynvVilOCy68uT0y2MCAAQzSYO6aVpI/tp7c7DjWv/t/Zz3TolXXa7TQlOB8l5IAYUllZpce4erSkoV43HJ7fLoRlZAzU/JyMm+9yRHAEAC9V5ffrbx+Zv624cP0g9E+MsiggAEAu+e9VIU3LkyKl6jf/Zm/L4/DH/AQmIBSvySrRwWb7pC7oaj0/Lt5RoZV6pFs0dF3P97jhWAwAWWrW1TBUn601rd1w81JpgAAAxIzu9p6aP6mda8/hOf0hq+IA068lcrcgrsSI8AEFUWFrVLDFyNq/h18Jl+SosrQpxZNYiOQIAFvH7/c0asV6U0VujB/ItHQAg+Nr7VjhWPyAB0W5x7p5WEyMNvIZfS3L3hiii8EByBAAs8knRcW0trjSt3XnxMIuiAQDEmvd3HW53Tyx+QAKimWH4taagPKC9qwvKYqpJK8kRALDI0g/2me4P6unWlWP6WxMMACCm8AEJiE21Xp9qPL6A9tZ4fKr1BrY3GpAcAQALHKyq1eqCJuN7pw6R08GvZQBA8PEBCYhNCU6H3K7A3m+6XQ4lOB1Bjih88C4cACzw1/X7m43vvYXxvQCAEDn9ASmwDz2x9gEJiGaG369ktyugvTOzUmJqrDfJEQAIsTqvT3/9+IBp7cbxaYzvBQCEjN1u04ysgQHtjbUPSEC08vv9eviVQh2sqmt3r9Nu07yc2OqFR3IEAELs1fwyHTllHt97J+N7AQAhNj8nQ852kh6x+AEJiFZLP9yn59fvb3ef027TornjlJkaWxMUSY4AQAi1NL53akYfjRrY3ZqAAAAxKzM1WYvmjmszQXJRRp+Y+4AERKN3dhzUz14tNK05HTZdNqpf4xE7t8uhORPStHJBTrujvqOR0+oAACCWbDlwXAUlTcb3XjLUmmAAADFvdvYgjejfXUty92p1QVmzJq0ffF6hvKLjyk7vaU2AAM5ZYWmV7vnbJ2o6dGrRl8ZpdvYgGYZftV6fEpyOmD5CF7LKkQMHDuh73/uexowZo6SkJPXu3VtTpkzRo48+qurq6i691ltvvaU777xTw4cPV1JSknr06KGRI0fq5ptv1lNPPaWTJ0926fUAIFBNq0ZOj+8dYE0wAADoTAXJtoev0Rv3fkHxzjMfjvx+6b//VSCvz7AwQgCddaiqVvOe3ahT9ebE53evHNlYHWK325QY54zpxIgUosqRVatW6bbbblNl5ZlvS6urq7Vx40Zt3LhRixcv1urVq5WRkXFO1zl27JjuuusurVixotljVVVV2rVrl1566SVNnTpV2dnZ53QtAOio8sparWkyvveOi4fIEeMvRACA8GC32zRyYHfde+Uo/fq1HY3r20qr9NxH+/Uf9B4BIkJDJYjfkOY/t0lllbWmx28cP0jfuWK4RdGFr6AnR/Lz8zV37lxVV1erW7du+tGPfqTp06erpqZGL7zwgv70pz/ps88+03XXXaeNGzeqW7dunbpOZWWlrrrqKm3evFmSdN111+nLX/6yhg8fLp/Pp/3792vjxo168cUXu/KPBwAB++vH5vG9bpdDt0wabGFEAAA0N//SYfrXJ8XaefBMtfVjb+7UzKwUDeyRYGFkANpSWFqlxbl7tKagXDUenxw2m3x+81maSUN66VdzsmSz8eVcU0FPjtx7772qrq6W0+nUG2+8oalTpzY+dvnll2vEiBG6//77tWPHDj322GN68MEHO3Wde+65R5s3b5bT6dRf/vIX3XLLLabHL7nkEn3lK1/RY489Jp/P18qzAEBwVNd59dcm3cFvnDBIPRIDmzMPAECouBx2/b8vZmnuHz9qXDtZ59XPXi3U72+bYGFkAFqzIq9EC5flm76Ia5oYGdw7UX/82kTFOx2hDi8iBLXnyMaNG/Xee+9JkubNm2dKjDRYuHChxowZI0n67W9/K4/H0+Hr5Obm6vnnn5ck/c///E+zxMjZbDabnE760AIIjcLSKt23LE/jfvqmjlabf78xvhcAEK6mDOutuZPSTGurCsr07meHLIoIQGsKS6uaJUZa8t/XjVGfbvEhiiryBDU58vLLLzfevuuuu1oOwG7X7bffLul0z5CGZEpHPPnkk5Kkbt26aeHChR3+eQAIhhV5JZr1ZK6WbymRp0kjO5uk7WVV1gQGAEAAfjhjjHo2qXB8cMWnqvVQhQ2Ek8W5e9pNjEjSG9sOhiCayBXU5Mi6deskSUlJSZo4cWKr+6ZNm9Z4Ozc3t0PXqK+vb2zAOmPGjMaeJV6vV/v379eBAwdUX1/f0dAB4Jy0l8H3S1q4LF+FpSRIAADhqXdSnB6YMca0VnS0Rk++s9uiiAA0ZRh+rSkoD2jv6oIyGQEkUWJVUJMj27dvlyQNHz68zaMso0ePbvYzgcrPz1dt7enuu1OnTlV5ebnuuusu9ezZU0OHDtWQIUPUo0cPzZw5Ux9++GEn/hQA0HGBZPC9hl9LcveGKCIAADru5olpmjy0l2ntj+9/rt2HTrbyEwBCqdbrU02A1Vw1Hp9qvVR+tSZoyZHa2lpVVFRIktLS0trc26tXLyUlJUmSioqKOnSdwsJC0zWzsrK0dOlSnTp1yrS+Zs0aXXrppfrtb3/boedvUFxc3OY/ZWVl7T8JgJhABh8AEC3sdpv+3xez5Dxr7LzH59f/vFwgn89Qdb2X1zHAQglOh9yuwBqsul0OJdCMtVVB60x64sSJxtuBjOdNSkrSqVOndPJkx7LQR48ebbz98MMPq66uTtdff70eeughXXDBBaqsrNRLL72kH/7wh6qqqtJ9992nUaNGacaMGR26Tnp6eof2A4hdncngJ8bRKBoAEJ5GDeyu+Zdm6P/Wft64tn7PUY158HXV+wy5XQ7NyBqo+TkZykxNtjBSIPbY7TZdNqqf1nza/hdzM7NSZLczwrc1Qa0caRAXF9fu/vj4011za2pqOnSdsytE6urqdMMNN2jFihWaOHGi4uPj1b9/f33zm9/UqlWrZLfb5ff7df/998vvJ8MNIDjI4AMAos13rhiuQT3dprX6fzcbr/H4tHzL6SbkK/JKrAgPiFmG4VdZZfufoZ12m+blDAtBRJEraMmRhISExtuBNEStq6uTJLnd7nZ2tn4dSXrkkUdktzf/Y+Xk5Oimm26SJH366af69NNPO3SdoqKiNv/ZsGFDh54PQPSy222akTUwoL1k8AEAkSAxzqn57Xyw8hp+mo0DIbb0w33KK6psc4/TbtOiueOo7GpH0Oq4u3fv3ng7kKMyDRUggRzBae06w4YN06hRo1rde8011+jFF1+UJG3cuFFZWVkBX6e9vikAcLb5ORl6+ZMStXUMmww+ACCSFJS2/QFMOtNsfNHccSGICIhtuw6e0K9e22Fac7vs8kuq9Zw+8jYzK0XzcoaRGAlA0JIjCQkJ6tu3ryoqKlRcXNzm3mPHjjUmRzra2+Ps/e0lMM7ee+jQoQ5dBwA6IjM1WQN7uFV6vOUyRzL4AIBI0tFm44/cPJbKSCCI6r2G7v1Hnuq9hml98R2TNTWjj2q9PiU4Hfx/2AFBHeU7Zszpuei7d++W1+ttdd+OHWeyXQ0/E6jzzz+/8bbP13YDxLMfb2u0MACcq50HT7SYGHG7HJozIU0rF+RodvYgCyIDAKDjGBcKhJcn3t6pbU2OsP3HJcN0yfC+stttSoxzkhjpoKBmCHJycrRu3TqdOnVKmzdv1oUXXtjivrVr1zbevuSSSzp0jSFDhmjw4ME6cOCAPv/88zb3nv34oEF8KAEQPCvzSk33+3eP09sLL1MSL1QAgAjU0Gw8kAQJzcaB4Nq076iees/82XdE/266/9rWW0ygfUGtHPniF7/YePuZZ55pcY9hGHruueckST179tT06dM7fJ05c+ZIkg4ePKgPP/yw1X3Lly9vvH3ppZd2+DoAEAi/368V+eZu/bPGDVL3BBeJEQBARKLZOBAeTtZ59d1leaa+di6HTY/fkq2EAKclomVBTY5MmTKlMQmxZMkSffTRR832LFq0SNu3b5ck/dd//ZdcLpfp8aVLl8pms8lms+mhhx5q8Tr33ntv49Sa73znO6bxvg3+8pe/6L333pMkXXfddTRYBRA0nxQdV9FR85EajtAAACLd/JwMOQNIetwyuWM9BAEE7mevFDZ7n/ndq0bqgkE9LIooegQ1OSJJTzzxhNxut7xer66++mr98pe/1Pr16/Xuu+/q7rvv1v333y9JGjlypBYuXNipawwePFg//elPJUmbN2/WlClT9Oyzz2rz5s165513tGDBAt15552SpOTkZD3++ONd8mcDgJY0PVKT0TdJFwyi8SoAILJlpiZr0dxx7SZI/py7V35/G+PaAHSIYfhVXe/Va5+W6R+bikyPTRrSS3d/4TyLIosuQe9KOn78eP3jH//QV7/6VVVVVemBBx5otmfkyJFatWqVaSxvR33/+9/X0aNH9etf/1qFhYWNyZCz9e/fXy+//LJGjBjR6esAQFu8PkOvbjUnR2Zlp8pmo7wYABD5ZmcP0oj+3bUkd69WF5SpxuOT3SZTif9r28q19MN9uusSxtUD56KwtEqLc/doTUF5i/1+kuIcevyWbDk4xtYlQjKy5YYbbtDWrVv1xBNPaNWqVSouLlZcXJyGDx+uL33pS1qwYIESExPP+Tq//OUvNWvWLD311FNat26dysrKlJCQoJEjR2rWrFm655571KMH5UYAgufDz4+o4mS9aW3WuFSLogEAoOs1VJA8cvNY1Xp9OnqqXjf8b66OVXsa9/xi9XaNH9xL2ek9rQsUiGAr8kq0cFm+vEbrVVg/mXW+0nuf++donGbzU/PWJYqLi5Wefvp8ZVFRET1NgBi1cFm+XtpS3Hh/bFoPrVyQY2FEAAAE37s7DumupRtNa4N6urX6O5eqR6KrlZ8C0JLC0irNejK3zcSITdKr38nR+amx+eV/MD5/B73nCADEilqPT69vKzetUTUCAIgF00f3139OM/c9KDleo++9mE//EaCDFufuaTMxIkl+SX/O3ReSeGIFyREA6CLv7Dikk3Xexvs2m3QDyREAQIz43tUjNXloL9Pam4UHtSR3r0URAZHHMPxaU1De/kZJqwvKZLSTREHgSI4AQBdZkVdiuj81o48GJCdYFA0AAKHldNj1v7dOUO+kONP6r9bs0JYDxxonbvBhDmhdrdfXYvPVltR4fKr1BrYX7QtJQ1YAiHaVNR69u+OwaW12NlUjAIDYMrBHgh6/JVt3PrNBDadpvIZft/3pY/nlV63HkNvl0IysgZqfk6HMVEbdA2dLcDrkdjkCSpC4XQ4lOB0hiCo2UDkCAF3g9U/LVe8zGu/HOey69vwUCyMCAMAa00b207cvG25aq/H4VOsxGm8v31KiWU/mNqu6BGKd3W7TjKyBAe2dmZUiO2N8uwzJEQDoAivyzW/uLhvVj+78AICYde+VI3RBO1UhXsOvhcvyVVhaFaKogMhw0/hB7e5x2m2alzMsBNHEDpIjAHCODlXV6sPPj5jWZme3/6IGAEC0cjrsGtwnsd19XsNPw1agiZX5pW0+7rTbtGjuOI6ldTGSIwBwjl7ZWqazpxQmxTl0xZj+1gUEAIDFDMPfrBdXa5i4AZzxaUml/rm52LTm+PfRGbfLoTkT0rRyQQ5fxAUBDVkB4BytbHJe+poLBirBRXMsAEDs6szEjcQ4Ppogtvn9fv3s1cJmX7q9vXCakt0uJTgd9BgJIn4DAcA52FtxSvnFlaY1MvkAgFjHxA2g417fVq6P9x41rX1r+nAN7OG2KKLYwrEaADgHK/PMZ0L7JMXpkvP6WBQNAADhgYkbQMfUeX36+ertprVBPd00XQ0hkiMA0El+v7/ZlJrrx6bI6eBXKwAA83My5Gwn6eFg4gYgSXrmg30qOlpjWntg5hiOaocQ7+ABoJO2lVZpz+FTprVZHKkBAECSlJmarEVzx7WZIJk0pBcTNxDzDp+o05Pv7DatTR7aSzMDrL5C1yA5AgCdtKJJI9a0Xm5NGNzTmmAAAAhDs7MHaeWCHM2ZkCZ3C9+Ab9h3VDvKqyyIDAgfj735mU7WeRvv22zSg9efL5uN42ahRHIEADrBZ/ibzaCfnZ3KixgAAE00VJBse/gavf/96XK7znwE8fulX6/ZYWF0gLW2lVbqhY1FprU5E9KUldbDoohiF8kRAOiEDXuP6mBVnWmNKTUAALTObrdpcJ9E/ee04ab1dz87rA93V1gUFWCdlkb3JsY59P1rRlkXVAwjOQIAnbAir9h0f/TA7ho5oLtF0QAAEDnmXzpM/brHm9Z+uWaHDMPfyk8A0emNwoNav6fJ6N7LztOA5ASLIoptJEcAoAMKS6t07wuf6IWN5uTIRRm9LYoIAIDIkhTv1HevHGlaKyip1CtbS1v5CSD61Hl9+kULo3vnX5phUUQgOQIAAVqRV6JZT+bq5bzmb96eX3+gWYNWAADQsrmT0nRevyTT2iOvf6Y6r8+iiIDQMQy//vT+Hu0/Um1a/+GM0YzutRDJEQAIQGFplRYuy5e3lZJfn+HXwmX5Kiyl4z4AAO1xOuz6wbWjTWvFx2r0/Ef7LYoICL7C0irdtyxPmT95TY++sdP02MQhvXT92BSLIoNEcgQAArI4d0+riZEGXsOvJbl7QxQRAACR7arMAZo8tJdp7X/f2a3Kao9FEQHB01CBvHxLiWo9RrPHp43sx9RDi5EcAYB2GIZfawrKA9q7uqCMhnIAAATAZrPpRzPHmNYqazz6w9rdFkUEBEd7FciS9Lu3d1GBbDGSIwDQjlqvTzWewM5A13h8quW8NAAAAZkwuJdmZg00rT3zwT6VHK+xKCKg61GBHBlIjgBAOxKcDrkDbI7ldjmU4KSRFgAAgfr+NaPltJ85TlDvNfRYk34MQKSiAjlykBwBgHbY7TbNaPKtVmtmZqXIbue8KAAAgRrWN0m3XTjYtLb8k2KOGCAqUIEcOUiOAEAA5udkqL2ch9Nu07ycYaEJCACAKHLPFSOUFHem8tLvl365Zruq6718k46IRgVy5CA5AgAByExN1rA+Sa0+7rTbtGjuOGWmJocwKgAAokPfbvH6z2nnmdbW7apQ5oOv6/yfvK77luVRSYKIRAVy5CA5AgABqKz2aN/R6mbrbpdDcyakaeWCHM3OHmRBZAAARId5lw5TcoKz2XqNx6flW06PQV2RV2JBZMC5uWFsart7qEC2XvPfPgCAZtbtPizfWWW9LodN6390hXolxpHhBwCgC+yrqNbJOm+rj3sNvxYuy9eI/t2p1EREWbvzcJuPU4EcHqgcAYAAvPeZ+UXt4vP6qk+3eBIjAAB0kcW5e9ReexHGnSLSHDlZpxc2HjCtNUxnogI5vFA5AgDtMAx/s+TIZaP6WRQNAADRp6PjTh+5eSxfUCAiPPvRftV6jMb7TrtN737/MvVJilOC08Hf4zBCcgQA2rGttEoVJ+tMa9NH9bcoGgAAok9nxp0mxvFRBuHtVJ1Xz320z7Q2KztV6b0SrQkIbeJYDQC0473PDpnuD+ubpKF9W59cAwAAOoZxp4hGL2ws0vFqj2mt6VQmhA+SIwDQjnebJEemjeRIDQAAXYlxp4g29V5DS9btMa1dOaa/Rg7oblFEaA/JEQBow7FT9corOm5amz6aIzUAAHS1+TkZjY0q2zJ5aK8QRAOcm5X5pSqtrDWtffMyqkbCGckRAGjD+7sOmzrnJ7jsunBYb+sCAgAgSmWmJmvR3HHtJkh+/95unWpj5C9gNcPw649rPzetTR7aSxOH8B4ynJEcAYA2tDTCNyHAM9EAAKBjZmcP0soFOZozIa2xB4nLYU6WFB2t0a9f22FFeEBA3t5xSLsOnTSt0Wsk/NHiGQBaYRh+rd1pTo5MZ4QvAABB1VBB8sjNY1Xr9SnObteti9dr475jjXue+2i/rr1goC4+r6+FkQLN+f1+PfXebtPaqAHdmXQYAagcAYBWbC2p1NFT9aa1y3hhAwAgJOx2mxLjnHI67Xrk5nFKcJk/utz/4laO1yDsbNx3TFsOHDet3T0tgybCEYDkCAC04t0d5ik15/VLUnpv5tIDABBqQ/sm6f5rRpvWio9xvAbh5/+a9BoZ1NOtG8alWhQNOoLkCAC04r1mR2qoGgEAwCp3XjxUU4aaG1o+99F+ffh5hUURAWY7yqv0TpMv1+ZfOkwuBx+7IwH/lQCgBUdO1mlr8XHTGkdqAACwjt1u029uHsvxGoStP67dY7rfK9GlWyanWxQNOorkCAC04P1dh+U/a4RvYpxDk4f1si4gAACgoX2T9INrmx+v+dUajtfAWkVHq7Uyv9S0dsfFQ5UYxwyUSEFyBABa8O4O85GaS4b3VbyTEb4AAFjtjqnNj9c8v36/cncdVnW9V4bhb+UngeBZkrtXvrP+7rldDt0xdah1AaHDSGMBQBM+w6/3d5mTI5cxwhcAgLDQcLzm2ifeV63HaFz/2pIN8uv0h9IZWQM1PydDmanJ1gWKmHH4RK3+vmG/ae3LU9LVKynOoojQGVSOAEATeUXHdbzaY1qj3wgAAOGjpeM1Dd/Z13h8Wr6lRLOezNWKvJLQB4eYUVhapfuW5WnqL99RnfdM1YjDJs2/NMPCyNAZJEcAoIn3PjN3GR81oLsG9XRbFA0AAGjJlKG9ZWvjca/h18Jl+SosrQpZTIgdK/JOJ+CWbymRt8lRLsMvbdp31KLI0FkkRwCgiXebJEc4UgMAQPhZ8sFetdddxGv4tSR3b0jiQewoLK3SwmX5zZIiDfwSibkIRHIEAM5y6EStPi0xv5BxpAYAgPBiGH6tKSgPaO/qgjKatKJLLc7d02pipAGJuchDcgQAzrL2M3Mj1m7xTk0ayghfAADCSa3XpxqPL6C9NR6far2B7QXaYxh+rdpaFtBeEnORheQIAJzlvSbJkZzhfeVy8KsSAIBwkuB0yO1yBLTX7XIowRnYXkA6nQBpaSx0QXGl7nhmg+q8Ris/aUZiLrIwyhcA/s3rM5qN8J0+mn4jAACEG7vdphlZA7V8S/vTaKae10d2e1utW4HTCkurtDh3j9YUlKvG42scC31V5gCt+KRUr20L7ChXAxJzkYXkCAD825YDx3Wi1mtao98IAADhaX5Ohlbmlbbb+yG/6LgOnahV/+4JIYoMkWhFXkmzJqsNY6EDScK1ZGZWCom5CEKtOAD8W9MRvmNSkjUgmTdSAACEo8zUZC2aO07Odj58HjlVr2/+ZYvqON6AVrQ3faYznHab5uUM67LnQ/CRHAGAf3u3Sb+R6YzwBQAgrM3OHqSVC3I0Z0JaYw8St8uhvt3iTPs27z+mB1/eJr+f5phoLpDpMw16uF36wbWj9cjNY1tNzDntNi2aO06ZqcldGSaCjGM1ACCpvLJW28vMI3ynj+ZIDQAA4a6hguSRm8eq1utTgtOhY9X1mvXkByo5XtO47x+bijQmpbvuvIRv83FGR8ZCO+02rf3+ZeqZeDr5dn5qDy3J3avVBWWNPUpmZqVoXs4wEiMRiOQIAEhau9N8pCY5wanx6T2tCQYAAHSY3W5TYtzpjzd9usXrT7dP0pynPjSN/P3Zqu0aOaC7Lh7e16owEWaKjlUHPBbaa/gV5zxz+KKlxBw9RiIXx2oAQNK7O8xHai4d2U9ORvgCABCxGj64ns1n+PWtv23RgSPVFkWFcGEYfv19wwFd97t1Af9Ma9NnGhJzJEYiG+/8AcS8eq+hdU1G+F42kn4jAABEuplZKfrO5cNNa8erPfr6c5tUVeNRdb1XRhc24UT4MQx/s//Ouw+d1JefXq8fLS/QybrAG/UyfSa6cawGQEwrLK3SL9ds16l68wtjSk+m1AAAEA3uvXKktpef0JuFBxvXPjt4QuN/+oZ8/tPVADOyBmp+TgZ9IqJIYWmVFufu0ZqC8sZ+INecP0BJ8U79c1Ox6n1Gh56P6TPRj8oRADFrRV6JZj2Zq3W7Kpo9duefN2pFXudm2gMAgPBht9v0+C3ZGjmgm2nd9+9CghqPT8u3nH5PwGt/dGh4j7d8S0ljP5Eaj08v55Xqrx8faDExMnlILzmYPhPTSI4AiEntzbP3Gn4tXJavwtKqFh8HAACRo1u8Uz+4dnSbe3jtjw7tvcdrKr23W8/9xxT985sX65UWxkLPmZCmlQtyNDt7UDDDRhjgWA2AmBTIPHuv4deS3L3NmrkBAIDIs6qgrN09vPZHvkDe40mSTdI3pmXo3itGyh13OhnC9JnYRuUIgJjTkXn2qwvKaNQGAECE47U/NnTkv3Oc064fXDO6MTFyNqbPxCaSIwBiTq3XF/A8+xqPT7XewLuYAwCA8MNrf2zoyH/nOq/Bf2eYkBwBEHMSnI7Gs6TtaW2ePQAAiBwdee2Pd9p57Y9QeytOKdBaD97joSmSIwBijt1u04ysgQHtZZ49AACRryOv/T7Dr09LK4McEbraS5uLNeepDxXogSje46EpkiMAYtL8nAy193rIPHsAAKLH/JwMOQP4MOw1/Prq4o9VUEyCJBwZhl/V9d7GvjB1Xp8e+FeBFv4zX7We5iN6W8J7PLSEaTUAYlJmarIuGd5X63ZVtPg48+wBAIguDZNIAhnzWlXr1VeXfKy/zr9QFwzqEaII0ZbC0iotzt2jNQXlqvH45HY5NG1UP31+6KR2HToZ8PPwHg+tCVnlyIEDB/S9731PY8aMUVJSknr37q0pU6bo0UcfVXV1dVCuWVZWpp49e8pms8lms+myyy4LynUARKYjJ+ubrTHPHgCA6DU7e5BWLsjRnAlpjT1I3C6Hvjg+VeMH9zTtrazx6LbFH+vTEipIrLYir0SznszV8i0ljQ1Xazw+vfZpeYuJkdunDtGKb1/c7L8z7/HQFpvf7w/6nKpVq1bptttuU2Vly79YRo0apdWrVysjI6NLr3vzzTfrpZdearw/bdo0vffee116jQbFxcVKT0+XJBUVFSktLS0o1wHQNapqPcp++A2d/cXRc/8xRTnD+3L+FACAGGAYftV6fUpwOmS321Tr8Wn+s5uUu9tcVdrD7WqsIGn6Mwi+wtIqzXoyt91qH+l0AuSXN2Xpi+PPJD/4bxadgvH5O+jHavLz8zV37lxVV1erW7du+tGPfqTp06erpqZGL7zwgv70pz/ps88+03XXXaeNGzeqW7duXXLdV155RS+99JL69++vQ4cOdclzAogeW/YfMyVG4hx2TRnWmxdNAABihN1uU2LcmY9DCS6H/nT7JM17dqM+/PxI43pljUe3/mm9pgztrQ8/P9J4pGNG1kDNz8ngeEaQLc7dE1BipFu8Uy9982KNGtjdtN70vzPQmqAfq7n33ntVXV0tp9OpN954Qw888ICmTp2qyy+/XE8//bR+85vfSJJ27Nihxx57rEuuefLkSX3729+WJD366KNd8pwAosumfcdM98em9VBCgCP+AABAdHLHObTkjsm6+Lw+pvUTtV69veOQ6UjH8i2nj3qsyCuxItSYYBh+rSkoD2ivzzA0on/XfNGO2BTU5MjGjRsbj7HMmzdPU6dObbZn4cKFGjNmjCTpt7/9rTwezzlf94EHHlBRUZGmT5+ur33ta+f8fACiz8Z9R033Jw3tbVEkAAAgnDQkSKZm9Gl3r9fwa+GyfBWWVoUgsthT6/U1JqTaU+MxVOsNbC/QkqAmR15++eXG23fddVfLAdjtuv322yVJx44dO+eeIBs2bNDvf/97xcXF6amnnjqn5wIQneq8PuUVHTetTRnWy5pgAABA2HHHObTkzknq2y2u3b1ew68luXtDEFXsSXA6lOAM7COr2+VQgpMqYHReUJMj69atkyQlJSVp4sSJre6bNm1a4+3c3NxOX8/r9eob3/iGDMPQD37wA40aNarTzwUgen1aUqU6r2FamziYyhEAAHBGgtOhU3WBVSKsLiiTEUBfDHTMjvITCvTf6sysFHrH4ZwEtTPN9u3bJUnDhw+X09n6pUaPHt3sZzrj0UcfVX5+vs477zw98MADnX6elhQXF7f5eFlZWZdeD0DwbGpypGbUgO7qkeiyKBoAABCOOnakw6dar4/Gn11o8/5juuuZDc2+0GqJ027TvJxhIYgK0Sxo//fW1taqouL0GKz2xur06tVLSUlJOnXqlIqKijp1vT179uinP/2pJOkPf/iDEhISOvU8rWkYEwQg8jXtNzKZIzUAAKCJBKdDbpcjoASJ22XnSEcX+mB3hb7+3CZV17f/795pt2nR3HFMDcI5C9qxmhMnTjTeDmQ8b1JSkqTTk2Y64+6771ZNTY1uueUWXX311Z16DgDRzzD82rTfPKlmMs1YAQBAE3a7TTOyBga01+mw68DR6iBHFBveKjyou5ZubJYYuSA1WbOzU+X+93RBt8uhORPStHJBjmZnD7IiVESZoFaONIiLa7+RUXx8vCSppqamw9d67rnn9NZbbyk5OVmPP/54h38+EO1VtJSVlWnKlClBuTaArvP54ZM6Xm2eisWkGgAA0JL5ORlamVcqbzv9RE7UejX79x/oqdsm6OLhfUMUXXQwDL9qvT4lOB16ZWup7luWL1+Tf9/TR/XTU1+dqASXw7SfHiPoSkFLjpx9rKW+vr7d/XV1dZIkt9vdoetUVFRo4cKFkqSf//znSklJ6dDPB6q9o0EAIsPGfeaqkUE93RrUs2O/dwAAQGzITE3WornjtHBZfrsJksoaj7725w36yQ2Z+tpFQ2Sz2fgg34bC0iotzt2jNQXlqvH45HLY5PE1/3d8XVaKHr8lW3H/nlpjt9vo7YKgCNrfqu7duzfeDuSozKlTpyQFdgTnbPfdd58qKio0adIkfetb3+pYkABiTtN+I5OG0m8EAAC0bnb2II3o311LcvdqdUGZajw+uV0OTRvVTzvKqrTvyJnjND7DrwdXbNNHnx9RvNOh17eVN+6fkTVQ83My6I0haUVeSbOEU0uJkbmT0vTLm8bKQWIJIRDUypG+ffuqoqKi3Ukvx44da0yOdKTxaWlpqZ5//nlJ0uWXX65ly5a1uf/QoUN64YUXJEnDhg3ThRdeGPC1AESH5skRjtQAAIC2NVSQPHLzWFMlyMk6r+77R57eKDxo2r/m03LT/RqPT8u3lGhlXqkWzR0X0z0yCkurAqrEmZ2dql/dNJaKG4RMUOuRxowZo3Xr1mn37t3yer2tjvPdsWOH6WcCdfZxnd/85jft7t++fbtuvfVWSdIdd9xBcgSIMWWVNSo+Zu5rNJnKEQAAEKCmRzq6xTv1f1+dqMff2qn/fWd3uz/vNfxauCxfI/p3j9kKksW5e9pNjEinp9CQGEEoBW1ajSTl5ORIOn1kZvPmza3uW7t2bePtSy65JJghAYhhTfuNJCc4NbJ/91Z2AwAAtM9ut2nh1aP0v7eOVyCf5b2GX0ty97b4mGH4VV3vlRFA8iASGYZfawrK298oaXVBedT+e0B4Cmpy5Itf/GLj7WeeeabFPYZh6LnnnpMk9ezZU9OnTw/4+YcOHSq/39/uPw2mTZvWuLZ06dJO/ZkARK5NLRyp4RsJAADQFa7LSpHLEdjHq5X5JSo6dqZXSWFple5blqfzf/K6Mh98Xef/5HXdtyxPhaVVwQrXErVen2o8vvY36vRRpFpvYHuBrhDU5MiUKVN06aWXSpKWLFmijz76qNmeRYsWafv27ZKk//qv/5LL5TI9vnTpUtlsNtlsNj300EPBDBdAlGtaOUIzVgAA0FVqvT7VeY2A9np8fl3663c184l1uvv5zbrhyVwt31LSmDho6FEy68lcrcgrCWbYIZXgdCjeGdhHULfLoQSnI8gRAWcEfQbSE088oUsuuUQ1NTW6+uqr9cADD2j69OmqqanRCy+8oKefflqSNHLkyMaRvADQ1SprPNpRbv72ZQrNWAEAQBdJcDrkdjkCroyQpMKyKhWWtV4d0l6PkkgbFVxWVRvw3plZKRHxZ0L0CHpyZPz48frHP/6hr371q6qqqtIDDzzQbM/IkSO1atUq0/hfAOhKWw4c01mn7BTntCsrrYd1AQEAgKhit9s0I2uglm/p2koPr+HX/639XL+7dXzjWmFplRbn7tGagsgZFVxV69Fdz2wIqLrGabdpXs6wEEQFnBH05Igk3XDDDdq6daueeOIJrVq1SsXFxYqLi9Pw4cP1pS99SQsWLFBiYmIoQgEQo5r2GxmX1kPxlGoCAIAuND8nQyvzStucxmKT1C3BqRO13oCfd2V+qfZVnNTU8/pKkpbk7jVdI9BRwVZVmtR7DX3zL5u18+DJdvc67TYtmjsubJM8iF42/9kdS9FpxcXFSk9PlyQVFRUpLS3N4ogAnG3uHz/Shr1nEiTfuuw83X/taAsjAgAA0WhFXokWLstvMUHS8MH/uqwUfbC7Qnc8s7HLr++027RyQY4puWBlpYnf79f9L27VPzcXm9YH93Ire3AvvVl4sDGmmVkpmpczjMQI2hWMz98hqRwBACvVeX3KKzpuWptMvxEAABAEs7MHaUT/7lqSu1erC8pa/eB/6Yh+He5REgiv4dcv12zXk7dOUI9EV4vJmkArTaRzrzZ58p3dzRIjfbvF669fv0jpvRMjrm8KohfJEQBR79OSStWfdb7VZpMmDGZSDQAACI7M1GQtmjtOj9w8ttUP/sHqUSJJ63ZVaNxP31BqjwSVVdaqtaMCbTV87Ypqk5c/KdGiN3ea1hJcdi25Y5LSe59uq2C325QYx8dSWC+oo3wBIBw0HeE7akB39Uh0tbIbAACgazR88G+tImJ+Toac7VRLOO02/eLGC/TNaRkdvn5pG4mRBl7Drz+t22NaW5F3eoxwZ8YLG4Zf1fVeffh5he5/cavpMZtN+t2Xx2tces8O/1mAYCNFByDqbdxrbsbKkRoAABAOGipM2utRMjt7kAzDr6Uf7u/yYziS9K9PSrStpFIjBnZXL3ec/rZhv1rrKdtatUnTSpOWPHh9pq4+f2CXxw90BZIjAKKaYfi1ab+5cmTSUI7UAACA8BBoj5KOHMOx29RqcqM1Ow+d1M5D7U+TkU4nSBbn7tFjc7Mltd2EtsFdlwzVXZcwnhfhi+QIgKi2+/BJVdZ4TGtUjgAAgHASSI8SKbBRwU67TS9982LZbNKcpz6Uxxec4aTLt5Roy/5j6tMtXlsOHFNbM1BtkuZMYJonwhs9RwBEtQ1NjtQM6ulWak+3RdEAAAC0rr0eJQ1JlNb6lDQcwxmX3lNj03rqhnGpwQxX+45Ua/P+thMjkuSX9MwH+4IaC3CuSI4AiGqb9jXtN8KRGgAAELlmZw/SygU5mjMhTW6XQ5Lkdjk0Z0KaVi7IMY3lDbTh6yM3j9XPb7xAd0wdomBN011dUCajo2d9gBDiWA2AqNZ0Us0kjtQAAIAIF+gxnI40fG1wos4blPHCNR6far0+xvYibFE5AiBqlR6vUcnxGtPalGEkRwAAQHRo7xiO1LFKEymwahPHv5Mqj7VxxKcpt8uhBKcjoL2AFUjbAYhaG5scqenhdml4v24WRQMAAGCNQCtNzt4baLVJ7u6KgCpNZmaltJnEAaxG5QiAqLWp6ZGaIb14UQYAADErkEoTKTh9TeblMMYX4Y3KEQBRq2nlyGSO1AAAAASkq/uaZKYmhyJsoNNIjgCISpU1Hn128IRpjUk1AAAAHdNQbdKW2dmDNKJ/dy3J3avVBWWq8fjkdjk0MytF83KGkRhBRCA5AiAqbdl/TP6zvryIc9p1waAe1gUEAAAQxTrS1wQIRyRHAESlpkdqstN6Kp4O6QAAAEEVSKUJEI5oyAogKjXvN8KRGgAAAAAtIzkCIOrUenzKL6o0rU0aSjNWAAAAAC0jOQIg6nxaUql6n9F432aTJgymcgQAAABAy0iOAIg6H+89Yro/emCyerhdFkUDAAAAINzRKQdA1CgsrdLi3D16+ZMS0/p5/ZIsiggAgP/f3r2HR1Udeh//zSUhIRAChmggIDcjUaJyi1LCgUABBVFBixe8cZDyHi+nKrxUaKVUHxQtlNqnVU8PiIVXjbRFRUKUE1BKRApeCFgCykUgEC4BTIBcJ7PfPziZZmCSzIS5Zn8/z5Pn2dmz9l5ru5xhzS97rwUAiATcOQKgRfhg22Hd9od8rfzqsJyG+2trdhTrg22HPR8IAAAAwPQIRwBEvJ1HyjR9RYEcF6Yi/8tpSNNXFGjnkbIgtwwAAABAJCAcARDxFufvazAYqeNwGlqSvz9ILQIAAAAQSQhHAEQ0p9NQ7o6jXpVds6NYziZCFAAAAADmQzgCIKJVOmpVUVPrVdmKmlpVOrwrCwAAAMA8CEcARLQYu02xUTavysZG2RRj964sAAAAAPMgHAEQ0axWi0Zek+RV2THpybJaLQFuEQAAAIBIQzgCIOJV1zY9j4jdatGUzO5BaA0AAACASEM4AiCi5X9Xoo++aXxCVrvVooUTr9c1neKD1CoAAAAAkcQe6gYAQHOdrXLo53/b7rbPZrUoymZRZY1TsVE2jUlP1pTM7gQjAAAAABpEOAIgYr2wplCHf6hw2zf3tms1KaOrKh21irHbmGMEAAAAQJMIRwBEpPzvSvT2Pw667RvU4zJNyugqq9Wi1tF8vAEAAADwDnOOAIg4nh6naR1t08t3XcedIgAAAAB8RjgCIOLMz734cZpnbumtLh1ah6hFAAAAACIZ4QiAiLJpT4n+32b3x2lu7N5B9994ZYhaBAAAACDSEY4AiBjnqhyaecHjNLFRPE4DAAAA4NIwYyGAsOd0Gqp01OrFNYUqOu3+OM3Pb75aV14WF6KWAQAAAGgJCEcAhK2dR8q0OH+fcnccVUVN7UWvZ3TvoAcHdQt+wwAAAAC0KIQjAMLSB9sOa/qKAjmchsfXo2wW/YbHaQAAAAD4AXOOAAg7O4+UNRqMSFKt09C5qovvJgEAAAAAXxGOAAg7i/P3NRqMSJLTkJbk7w9SiwAAAAC0ZIQjAMKK02kod8dRr8qu2VEsZxMhCgAAAAA0hXAEQFipdNR6nHzVk4qaWlU6eLQGAAAAwKUhHAEQVmLsNsVG2bwqGxtlU4zdu7IAAAAA0BDCEQBhxWq16Jb0K7wqOyY9mdVqAAAAAFwywhEAYWdi/y5NlrFbLZqS2T0IrQEAAADQ0hGOAAg7/1N4rNHX7VaLFk68Xtd0ig9SiwAAAAC0ZPZQNwAA6jt0qlzLPz/gts9mtajWaSg2yqYx6cmaktmdYAQAAACA3xCOAAgrC9buVnWt0/V7lM2ivKeHqmPbVoqx25hjBAAAAIDfEY4ACBvfHC7VB9uOuO174KZuuvKyuBC1CAAAAIAZMOcIgLBgGIZezC1029e2lV2PD+8VohYBAAAAMAvCEQBh4e/fleizPSfd9v2fYT3VIS46RC0CAAAAYBaEIwBCzuk0ND93l9u+K+Jj9O+DWaoXAAAAQOARjgAIufe3HVZhcZnbvqdHpio22haiFgEAAAAwE8IRACFVWVOrhWu/dduXenkb3dk/JUQtAgAAAGA2hCMAQmrZ59/r8A8VbvueuaW3bCzZCwAAACBICEcAhExpeY3++Mlet303du+grKuTQtQiAAAAAGZEOAIgZF79dI9KK2rc9s0akyaLhbtGAAAAAASPPdQNAGA+TqehfSXn9MZn+932j70uWTd0SQhNowAAAACYFuEIgKDZeaRMi/P3KXfHUVXU1Lq9Zrda9H9HXR2ilgEAAAAwM8IRAEHxwbbDmr6iQA6n4fH1QT0vU7fEuCC3CgAAAACYcwRAEOw8UtZoMCJJm/ae1M4jZUFsFQAAAACcRzgCIOAW5+9rNBiRpFqnoSX5+xstAwAAAACBQDgCIKCcTkO5O456VXbNjmI5mwhRAAAAAMDfCEcABFSlo/aiyVcbUlFTq0qHd2UBAAAAwF8IRwAEVIzdptgom1dlY6NsirF7VxYAAAAA/IVwBEBAWa0W3ZJ+hVdlx6Qny2q1BLhFAAAAAOAuaOHIwYMHNWPGDKWlpSkuLk4dOnRQRkaGFixYoPLy8ks6d1lZmbKzszV16lT169dPCQkJio6OVseOHTVs2DAtWLBAP/zwg38uBIDPHsnsIUsTmYfdatGUzO7BaRAAAAAA1GMxDCPgsx/m5ORo0qRJKi0t9fj61VdfrTVr1qhHjx4+nzs3N1fjx49XVVVVo+Uuv/xyvfPOO8rKyvK5Dm8UFRWpS5cukqRDhw4pJSUlIPUAkeiH8moNnJenmlrPHzd2q0ULJ16v22/oHOSWAQAAAIg0gfj+HfA7RwoKCjRx4kSVlpaqTZs2mjdvnjZt2qR169Zp6tSpkqTdu3dr7NixOnv2rM/nP3nypKqqqmS1WjV69GgtWrRI69ev11dffaVVq1bp7rvvliQdO3ZMt956q7Zt2+bPywPghbf+cdBjMBIbZdOd/VK06vFMghEAAAAAIWMPdAVPPvmkysvLZbfbtXbtWg0aNMj12vDhw3XVVVdp5syZ2rVrl377299qzpw5Pp0/KipK06ZN0+zZs9W1a1e31/r27atx48Zp8ODB+s///E+Vl5dr+vTpWrdunV+uDUDTqh1O/XnT9277br8+WS/eeZ1i7DbmGAEAAAAQcgF9rGbr1q3KyMiQJE2bNk2vv/76RWWcTqf69OmjwsJCtW/fXseOHVNUVJTf2zJw4EB98cUXslqtOn78uC677DK/np/HagDPVn5VpKdXFLjt+/DxTKWntAtRiwAAAABEsoh7rOb99993bU+ePNlzA6xWPfjgg5Kk06dP69NPPw1IW4YNGybpfBizf//+gNQBwJ1hGFq80f39dmP3DgQjAAAAAMJKQMORjRs3SpLi4uLUv3//BssNHTrUtZ2fnx+QttSfsNVqZQVjIBg+33tSO4vL3PY9MsT3iZcBAAAAIJACOudIYWGhJKlXr16y2xuuqnfv3hcd428bNmyQJNntdvXq1cvn44uKihp9vbi4uFntAlqyxfnud410u6y1RvROClFrAAAAAMCzgIUjlZWVKikpkaQmn/9p37694uLidO7cOR06dMjvbcnJydH27dslSaNHj1Z8fLzP56h7ngmAd/YcP6v1u4677ZuS2Z0JWAEAAACEnYA9X3LmzBnXdps2bZosHxcXJ0nNWs63MadOndJjjz0mSbLZbHr++ef9en4Anr3xmftdI+1io3RnfyYqBgAAABB+AnrnSJ3o6Ogmy7dq1UqSVFFR4bc21NbWatKkSTpw4IAk6Ze//KX69u3brHM1dUdLcXGxa2UewOxOnavW3750fxRt0o1d1To64KuHAwAAAIDPAvZNJSYmxrVdXV3dZPm6CVNjY2P91oZHH31UH330kSRp7NixevbZZ5t9LpbmBbz31uYDqnI4Xb9H2Sx66EfdQtcgAAAAAGhEwB6radu2rWvbm0dlzp07J8m7R3C8MWvWLP3pT3+SJGVmZuovf/mLbDabX84NoGFVjlr9+fMDbvvGXddJl8fHNHAEAAAAAIRWwMKRmJgYJSYmSmp6pZfTp0+7whF/THz60ksvaf78+ZKkfv36afXq1X69IwVAw1ZtO6KSs1Vu+/49s3uIWgMAAAAATQtYOCJJaWlpkqQ9e/bI4XA0WG7Xrl0XHdNcr776qp555hnXuT7++GO1a9fuks4JwDuGYWjJBcv3Dupxmfp05j0IAAAAIHwFNBzJzMyUdP6RmS+//LLBchs2bHBtDx48uNn1LV++XI8//rgkqUePHsrLy3PdvQIg8D7bc1K7jp5x2zf137hrBAAAAEB4C2g4cscdd7i2ly5d6rGM0+nUsmXLJEkJCQnKyspqVl0rV67U5MmTZRiGUlJStG7dOnXq1KlZ5wLQPIvz97n93qNjnIalJoWoNQAAAADgnYCGIxkZGRoyZIgkacmSJfr8888vKrNw4UIVFhZKkn72s58pKirK7fU333xTFotFFotFc+fO9VjP2rVrde+996q2tlZJSUnKy8tTt27d/HotABr33bEz+nT3Cbd9UzK7y2q1hKhFAAAAAOCdgC3lW+eVV17R4MGDVVFRoVGjRmn27NnKyspSRUWFsrOzXSvKpKamavr06T6ff/PmzRo/fryqq6sVFRWlRYsWqaamRt98802Dx6SkpCghIaG5lwTAgzc+c59rpH3rKE3oyxLYAAAAAMJfwMORvn376t1339X999+vsrIyzZ49+6IyqampysnJcVv+11sfffSRysvLJUk1NTWaNGlSk8csXbpUDz/8sM91AfDsxJlK/fVL91Wp7r/pSsVGs3w2AAAAgPAX8HBEksaNG6ft27frlVdeUU5OjoqKihQdHa1evXrpJz/5iR5//HG1bt06GE0B4Ec7j5Rpcf4+rdp2RA6n4dpvt1r0wKArQ9gyAAAAAPCexTAMo+liaEpRUZG6dOkiSTp06JBSUnicAC3bB9sOa/qKArdQpI5F0u/uuUG339A5+A0DAAAA0KIF4vt3QCdkBdAy7TxS1mAwIkmGpOkrCrTzSFlwGwYAAAAAzUA4AsBni/P3NRiM1HE4DS3J399oGQAAAAAIB4QjAHzidBrK3XHUq7JrdhTL2USIAgAAAAChRjgCwCeVjlpV1NR6VbaiplaVDu/KAgAAAECoEI4A8EmM3abYKO+W6I2NsinGznK+AAAAAMIb4QgAn1itFt2SfoVXZcekJ8tqtQS4RQAAAABwaQhHAPjskcweairysFstmpLZPSjtAQAAAIBLQTgCwGdXtIuRpZF0xG61aOHE63VNp/jgNQoAAAAAmske6gYAiDwfFhyRp0VoYqNsGpOerCmZ3QlGAAAAAEQMwhEAPlv59WG338ddl6yX7rpOMXYbc4wAAAAAiDiEIwB8svfEWRUc+sFt34T+KWodzccJAAAAgMjEnCMAfPLeV+53jSS2aaUhvRJD1BoAAAAAuHSEIwC85nQaeu+CR2puv6GT7DY+SgAAAABELr7RAPDalu9P6fAPFW77xvftHKLWAAAAAIB/EI4A8NqFj9SkXt5G17IqDQAAAIAIRzgCwCuVNbVas6PYbd+EfimyWFidBgAAAEBkIxwB4JX/2XlMZ6ocrt8tlvPzjQAAAABApCMcAeCVCydiHdwzUcntYkPUGgAAAADwH8IRAE06caZKG7494baPiVgBAAAAtBSEIwCa9GHBEdU6DdfvsVE23dznihC2CAAAAAD8h3AEQJNWfl3k9vvNfa5QXCt7iFoDAAAAAP5FOAKgUd8dO6NvDpe57eORGgAAAAAtCeEIgEatvGAi1qS2rTS4V2KIWgMAAAAA/kc4AqBBTqeh9y8IR+7o21k2qyVELQIAAAAA/yMcAdCgzftOqri00m0fj9QAAAAAaGkIRwA06G9fud81kpYcr7Tk+BC1BgAAAAACg3AEgEcV1bX66Jtit30TuGsEAAAAQAtEOALAo7U7j+pcda3rd6tFuv2GTiFsEQAAAAAEBuEIAI8ufKQm86qOSoqPCVFrAAAAACBwCEcAXOR4WaXyvzvhto9HagAAAAC0VIQjAC7y/teH5TT+9XvraJtGXXt56BoEAAAAAAFkD3UDAISPnUfKtDh/n9772v2RmkE9LlPraD4uAAAAALRM3DkCQJL0wbbDuu0P+Vr51WEZhvtrn+4+oQ+2HfZ8IAAAAABEOMIRANp5pEzTVxTI4TQ8vl5rGJq+okA7j5QFuWUAAAAAEHiEIwC0OH9fg8FIHYfT0JL8/UFqEQAAAAAED+EIYHJOp6HcHUe9KrtmR7GcTYQoAAAAABBpCEcAk6t01KqiptarshU1tap0eFcWAAAAACIF4QhgcjF2m2KjbF6VjY2yKcbuXVkAAAAAiBSEI4DJWa0W3ZJ+hVdlx6Qny2q1BLhFAAAAABBchCMA9EhmDzWVeditFk3J7B6cBgEAAABAEBGOANA1neLV7bK4Bl+3Wy1aOPF6XdMpPoitAgAAAIDgsIe6AQBC7/S5an1/8txF+2OjbBqTnqwpmd0JRgAAAAC0WIQjAPTpt8dVf4XeGLtVm2YNV0JsNHOMAAAAAGjxCEcAKK/wuNvvmVd1VIe4ViFqDQAAAAAEF3OOACZXU+vU33efcNv347SkELUGAAAAAIKPcAQwua37T+lMlcNtX1ZvwhEAAAAA5kE4Apjcul3uj9Skd26ny+NjQtQaAAAAAAg+whHAxAzD0LrCY277RvBIDQAAAACTIRwBTGxfyTl9f7Lcbd+I3peHqDUAAAAAEBqEI4CJrb9glZrL41upT+f4ELUGAAAAAEKDcAQwsbwLHqkZ3jtJFoslRK0BAAAAgNAgHAFMqrS8Rl8cOO22j0dqAAAAAJgR4QhgUp9+e1y1TsP1eyu7VYN7JYawRQAAAAAQGoQjgEmtv2AJ38G9EhUbbQtRawAAAAAgdAhHABNy1Dr16e4TbvuG92YJXwAAAADmRDgCmNCXB06rtKLGbd+INMIRAAAAAOZEOAKY0IWP1FyTHK/kdrEhag0AAAAAhBbhCGBCFy7hy10jAAAAAMyMcAQwme9LzmnviXNu+0aksYQvAAAAAPMiHAFMZt0Fj9Qktmml6zq3C1FrAAAAACD0CEcAk1m/y/2RmuG9O8pqtYSoNQAAAAAQeoQjgImUVdboH/tOue0b3ptHagAAAACYG+EIYCIbvy2Rw2m4fo+2WTXkqsQQtggAAAAAQo9wBDCRdResUnNTz8sU18oeotYAAAAAQHggHAFMotZp6JPd7pOx/pglfAEAAACAcAQwi22HTut0eY3bvqyrCUcAAAAAgHAEMIm8Qve7Rq6+vK26dGgdotYAAAAAQPggHAFMYv0F4cgIHqkBAAAAAElBDEcOHjyoGTNmKC0tTXFxcerQoYMyMjK0YMEClZeX+62e7OxsjR49WsnJyYqJiVG3bt30wAMPaPPmzX6rA4g0h06Va/exM277CEcAAAAA4LygLFORk5OjSZMmqbS01LWvvLxcW7du1datW7V48WKtWbNGPXr0aHYdlZWV+slPfqLVq1e77T9w4IAOHDigt99+W3PnztWzzz7b7DqASLV+l/tdIx3ionVDl/Yhag0AAAAAhJeA3zlSUFCgiRMnqrS0VG3atNG8efO0adMmrVu3TlOnTpUk7d69W2PHjtXZs2ebXc+UKVNcwUhWVpbef/99bdmyRUuWLFHPnj3ldDo1Z84cLV682C/XBUSSvAuW8B12dUfZrJYQtQYAAAAAwkvA7xx58sknVV5eLrvdrrVr12rQoEGu14YPH66rrrpKM2fO1K5du/Tb3/5Wc+bM8bmODRs26O2335YkjRs3Tu+9955sNpskaeDAgbrtttvUv39/HTx4UDNnztRdd92lhIQEv1xfpHM6DVU6ahVjt8nqxZflSC8fjm0KdPmzVQ5t3nvSbd+P0y5v8jgAAAAAMAuLYRhGoE6+detWZWRkSJKmTZum119//aIyTqdTffr0UWFhodq3b69jx44pKirKp3rGjh2rNWvWyGaz6fvvv1dKSspFZbKzs3XvvfdKkhYsWKDp06c344oaVlRUpC5dukiSDh065LEN4WTnkTItzt+n3B1HVVFTq9gom25Jv0KPZPbQNZ3iW1z5cGxTsK75udX/1OZ9p1z7LBbpL9MGaUC3Dh6PAQAAAIBwFojv3wENR37xi1/ohRdekCRt3rxZN954o8dy8+fP16xZsyRJa9eu1ciRI72u4+zZs0pMTFRVVZVuvvlm5ebmeixXXV2tjh07qqysTD/60Y/02Wef+Xg1jYukcOSDbYc1fUWBHM6Lu95utWjhxOt1+w2dW0z5cGxTOF4zAAAAAESCQHz/DuhjNRs3bpQkxcXFqX///g2WGzp0qGs7Pz/fp3Bky5Ytqqqquug8F4qOjtZNN92ktWvXasuWLaqpqfH5DpWWYOeRsga/MEuSw2no6RUFio+JUq+kNtpz/KyeXlGg2ggtLyns2hQu1zx9RYGuSmrb4F0nAAAAAGAWAQ1HCgsLJUm9evWS3d5wVb17977oGF/ruPA8DdWzdu1aORwOfffdd7rmmmu8rqeoqKjR14uLi70+Vygtzt/XYDBSp9ZpaPKbW70+Z6SXD8c2BeOaHU5DS/L3a+HE6306DgAAAABamoCFI5WVlSopKZGkJm9xad++veLi4nTu3DkdOnTIp3rql2+qnrrbbuqO8yUcqX9spHI6DeXuOBrqZiCMrNlRrN/cdZ3Xk9kCAAAAQEsUsKV8z5w549pu06ZNk+Xj4uIkyeflfH2pp66O5tTTElQ6alVRUxvqZiCMVNTUqtLB/xMAAAAAzC2gd47UiY6ObrJ8q1atJEkVFRUBq6eujubU09QdLcXFxa6VecJVjN2m2CgbAQlcYqNsirHbQt0MAAAAAAipgN05EhMT49qurq5usnzdpKqxsbEBq6eujubUk5KS0uhPcnKyT+cLBavVolvSr/Cq7B03dFLhczfr9hs6RXT5cGxTOF3zmPRkHqkBAAAAYHoBC0fatm3r2vbmEZZz585J8u4RnObWU1dHc+ppKR7J7CF7E1+G7VaLfvpvPRUbbdO0f+sZ0eXDsU3hdM1TMrs3WgYAAAAAzCCgd44kJiZKanqll9OnT7uCC18nPq0/CWtT9dR/NKYlTLDaHNd0itfCidc3+MXZbrVo4cTrXcu7Rnr5cGxTOF4zAAAAAJhZQJfyTUtL08aNG7Vnzx45HI4Gl/PdtWuX2zG+qL/iTP3zNFaP3W5Xr169fKqnJbn9hs66KqmtluTv15odxaqoqVVslE1j0pM1JbP7RV+YI718OLYpHK8ZAAAAAMzKYhiGEaiTz549Wy+++KIkafPmzbrxxhs9lps/f75mzZolSfr44481atQor+s4c+aMEhMTVV1drZtvvlm5ubkey1VXV6tjx44qKyvToEGDtGnTJh+vpnFFRUWuu1EOHTrU5LLC4cLpNFTpqFWM3ebV3BORXj4c2xSO1wwAAAAA4SoQ378D9liNJN1xxx2u7aVLl3os43Q6tWzZMklSQkKCsrKyfKqjbdu2GjFihCQpLy+vwUdrVq5cqbKyMknS+PHjfaqjJbNaLWodbff6C3Oklw/HNoXjNQMAAACAmQQ0HMnIyNCQIUMkSUuWLNHnn39+UZmFCxeqsLBQkvSzn/1MUVFRbq+/+eabslgsslgsmjt3rsd6ZsyYIUlyOBx67LHHVFvrvlRtSUmJfv7zn0s6H8A88sgjl3RdAAAAAACg5QhoOCJJr7zyimJjY+VwODRq1Ci9+OKL2rx5sz755BNNmzZNM2fOlCSlpqZq+vTpzapj+PDhuueeeyRJq1at0siRI7Vq1Sp98cUXWrp0qW666SYdPHhQ0vlHeNq3b++fiwMAAAAAABEvoBOySlLfvn317rvv6v7771dZWZlmz559UZnU1FTl5OS4LcvrqzfeeENlZWVas2aNPvnkE33yySdur1utVj377LOaNm1as+sAAAAAAAAtT8DvHJGkcePGafv27XrqqaeUmpqq1q1bKyEhQQMGDNBLL72kr7/++pJXj4mNjVVOTo7eeustjRw5UklJSYqOjlaXLl103333KT8/v8HHcgAAAAAAgHkFdLUaM4nU1WoAAAAAAIgkEbdaDQAAAAAAQLgjHAEAAAAAAKZGOAIAAAAAAEyNcAQAAAAAAJga4QgAAAAAADA1whEAAAAAAGBqhCMAAAAAAMDUCEcAAAAAAICpEY4AAAAAAABTIxwBAAAAAACmRjgCAAAAAABMjXAEAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATM0e6ga0FA6Hw7VdXFwcwpYAAAAAANBy1f/OXf+7+KUgHPGTEydOuLYzMjJC2BIAAAAAAMzhxIkT6tat2yWfh8dqAAAAAACAqVkMwzBC3YiWoLKyUjt27JAkdezYUXZ7+N+UU1xc7LrLZcuWLUpOTg5xixAI9HPLRx+bA/1sDvSzOdDP5kA/mwP9HBoOh8P19EZ6erpiYmIu+Zzh/w0+QsTExGjgwIGhbkazJScnKyUlJdTNQIDRzy0ffWwO9LM50M/mQD+bA/1sDvRzcPnjUZr6eKwGAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApmYxDMMIdSMAAAAAAABChTtHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATI1wBAAAAAAAmBrhCAAAAAAAMDXCEQAAAAAAYGqEIwAAAAAAwNQIRwAAAAAAgKkRjgAAAAAAAFMjHIlwBw8e1IwZM5SWlqa4uDh16NBBGRkZWrBggcrLy/1WT3Z2tkaPHq3k5GTFxMSoW7dueuCBB7R582a/1YGGBbKfy8rKlJ2dralTp6pfv35KSEhQdHS0OnbsqGHDhmnBggX64Ycf/HMhaFSw3s/1FRcXKyEhQRaLRRaLRcOGDQtIPfiXYPZzXl6eHn74YfXq1UtxcXFq166dUlNTddddd+m1117T2bNn/Vof/iUY/bxz50498cQTSk9PV3x8vOuzOysrS4sWLdKZM2f8Ug/cHT9+XKtXr9acOXN0yy23KDEx0fUZ+vDDDwekTsZhwResfmYcFlqheD/XxzgszBiIWKtXrzbatWtnSPL4c/XVVxt79+69pDoqKiqMW2+9tcE6rFar8dxzz/npiuBJIPt5zZo1RqtWrRo8d93P5Zdfbqxfv97PV4b6gvF+9uTOO+90q2fo0KF+rwP/Eqx+PnXqlHH77bc3+d7++uuvL/2icJFg9POCBQsMu93eaP9eeeWVRkFBgZ+uCnUa+2/+0EMP+bUuxmGhE4x+ZhwWesF8P3vCOCy8cOdIhCooKNDEiRNVWlqqNm3aaN68edq0aZPWrVunqVOnSpJ2796tsWPHXtJfBqdMmaLVq1dLkrKysvT+++9ry5YtWrJkiXr27Cmn06k5c+Zo8eLFfrkuuAt0P588eVJVVVWyWq0aPXq0Fi1apPXr1+urr77SqlWrdPfdd0uSjh07pltvvVXbtm3z5+XhfwXr/XyhDz/8UH/729+UlJTkt3OiYcHq59LSUo0cOVIffPCBJGns2LFavny5Pv/8c+Xn5+utt97Sk08+qZSUFL9cF9wFo59XrFihGTNmyOFwKDo6Wk899ZRycnL0j3/8Q2+//bYyMzMlSQcOHNDNN9+s0tJSv10f3HXp0kWjRo0K2PkZh4WHQPUz47DwEuj384UYh4WhUKczaJ5hw4YZkgy73W5s2rTpotdffvllVwL561//ull1fPrpp65zjBs3znA4HG6vnzhxwujatashyWjfvr1x+vTpZtWDhgW6n7Ozs41p06YZBw4caLDM73//e1cdw4cP97kONC0Y7+cLnTlzxujSpYshyVi2bBl/sQiCYPXzAw884KonOzu7wXJOp9Ooqalpdj3wLBj93KdPH9c5Vq9e7bHMhAkTXGUWLlzYrHrg2Zw5c4wPP/zQOHr0qGEYhrF///6A/KWZcVhoBaOfGYeFXrDezxdiHBaeCEci0JYtW1xvoGnTpnksU1tba6Slpbn+wayurva5njFjxhiSDJvNZhw6dMhjmXfeecfVlgULFvhcBxoWrH72xoABA1y375aUlASkDrMKVT8/8cQThiQjKyvLMAyDf5QDLFj9vHHjRlc9c+fOvdRmw0fB6OfS0lJXHf369WuwXEFBgavcnXfe6VMd8E2gvkwxDgsvwfrS7AnjsOAJVj8zDgtPPFYTgd5//33X9uTJkz2WsVqtevDBByVJp0+f1qeffupTHWfPntW6deskSSNHjmzw9usJEyYoPj5ekrRy5Uqf6kDjgtHP3qqbHMrpdGr//v0BqcOsQtHPW7Zs0R//+EdFR0frtddeu6RzwTvB6uc//OEPkqQ2bdpo+vTpPh+PSxOMfq6urnZt9+jRo8FyPXv2dG1XVVX5VAdCj3EY6mMc1rIwDgtfhCMRaOPGjZKkuLg49e/fv8FyQ4cOdW3n5+f7VMeWLVtcg6n657lQdHS0brrpJtcxNTU1PtWDhgWjn71Vf2BttfKx4U/B7meHw6Gf/vSncjqd+vnPf66rr7662eeC94LRz9XV1a55Rm655Ra1adNG0vk+P3DggA4ePOj2xRr+F4x+TkxMVIcOHSRJ+/bta7Dc3r17Xdupqak+1YHQYxyG+hiHtRyMw8Ib764IVFhYKEnq1auX7HZ7g+V69+590TG+1nHheRqrx+Fw6LvvvvOpHjQsGP3srQ0bNkiS7Ha7evXqFZA6zCrY/bxgwQIVFBSoZ8+emj17drPPA98Eo58LCgpUWVkpSRo0aJCOHj2qyZMnKyEhQd26ddOVV16pdu3aacyYMdq0aVMzrgJNCdb7+ac//akk6auvvlJubq7HMs8//7wkyWaz6ZFHHvG5DoQW4zDUxzis5WAcFt4IRyJMZWWlSkpKJKnJlQbat2+vuLg4SdKhQ4d8qqd++abq6dKli8fj0HzB6mdv5OTkaPv27ZKk0aNHu27fxaULdj/v27dPzz33nCTp1VdfVUxMTLPOA98Eq5937tzpVmd6errefPNNnTt3zm1/bm6uhgwZot/97nc+nR+NC+b7+Re/+IV+/OMfS5LGjx+vGTNmKDc3V1u3btW7776rYcOG6a9//atsNpt+//vfKy0tzec6EFqMw1CHcVjLwTgs/BGORJgzZ864tutumW5M3eDL1+UCfamnro7m1APPgtXPTTl16pQee+wxSef/+lj3l0j4R7D7edq0aaqoqNDdd98d1KXqzC5Y/Xzq1CnX9q9//WuVlJTo1ltv1RdffKHKykodO3ZMr776quLj4+V0OvX00083eNcBfBfM93ObNm2Um5ur//7v/1ZKSooWLlyoMWPGKCMjQ/fcc482bNigCRMm6LPPPtOjjz7q8/kReozDIDEOa2kYh4U/wpEIU3fLtHT+OdOmtGrVSpJUUVERsHrq6mhOPfAsWP3cmNraWk2aNEkHDhyQJP3yl79U3759/XZ+BLefly1bpry8PMXHx2vRokU+H4/mC1Y/179DpKqqSuPGjdMHH3yg/v37q1WrVkpKStJ//Md/KCcnR1arVYZhaObMmTIMw6d64FmwP7e/+OILvfPOOw3OO5KXl6c///nPKisra9b5EVqMw8A4rGVhHBYZCEciTP3br7yZWK9uAqfY2NiA1VN/kihf64Fnwernxjz66KP66KOPJEljx47Vs88+67dz47xg9XNJSYlr5ZJ58+YpOTnZp+NxaULxuS1Jv/nNbzxO3JeZmakJEyZIkr755ht98803PtUDz4L5uf3Xv/5Vw4YN0/r165Wenq733ntPJ0+eVHV1tfbu3asXXnhBNTU1eu211/SjH/1IR48e9bkOhBbjMDAOazkYh0UOwpEI07ZtW9e2N7dO1v0l0ZtbfJtbT/2/VvpaDzwLVj83ZNasWfrTn/4k6fwXqb/85S+y2Wx+OTf+JVj9/PTTT6ukpEQDBgzgFvsQCMXndvfu3RudAX/06NGu7a1bt/pUDzwLVj8fO3ZMDz/8sKqqqnTttddq06ZNuuOOO9ShQwdFRUWpR48emjVrlj788ENZLBb985//1BNPPOHbxSDkGIeZG+OwloVxWORoeCp1hKWYmBglJiaqpKRERUVFjZY9ffq06x/M+pN1eaP+5F9FRUUaMGBAg2XrT/7laz3wLFj97MlLL72k+fPnS5L69eun1atX85eoAAlGPx85ckTLly+XJA0fPlwrVqxotPzx48eVnZ0t6fwX7BtvvNHruuBZsN7P9cv7MoHj8ePHfaoHngWrn7Ozs13Hzp49222+ifpGjBihESNGKC8vTytXrtTp06fVvn17n+pC6DAOMy/GYS0L47DIQjgSgdLS0rRx40bt2bNHDoejweUCd+3a5XaML6655hqP52msHpYX869g9POFXn31VT3zzDOuc3388cdq167dJZ0TjQt0P9e/Hfvll19usnxhYaHuvfdeSdJDDz3EP8p+Eoz387XXXuvarq2tbbRs/dcbW3IWvglGP9df4rVfv36Nlu3fv7/y8vLkdDr17bff8n6OIIzDzIlxWMvDOCyy8FhNBMrMzJR0/jbKL7/8ssFydWuiS9LgwYN9qmPgwIGuCcDqn+dC1dXV2rx580XH4NIFo5/rW758uR5//HFJUo8ePZSXl6fExMRmnw/eCXY/IzSC0c9XXnmlunbtKknau3dvo2Xrv965c2ef6kHDgtHP9QMXh8PRaNmamhqPxyH8MQ4zH8ZhQOgRjkSgO+64w7W9dOlSj2WcTqeWLVsmSUpISFBWVpZPdbRt21YjRoyQdH7G+4ZuEV65cqVrJvzx48f7VAcaF4x+rrNy5UpNnjxZhmEoJSVF69atU6dOnZp1Lvgm0P3crVs3GYbR5E+doUOHuva9+eabzbomXCxY7+c777xT0vl5KTZt2tRguZUrV7q2hwwZ4nM98CwY/dy9e3fX9saNGxst+/e//12SZLFY1K1bN5/qQWgxDjMXxmEtF+OwCGMgIg0ZMsSQZNjtdmPTpk0Xvf7yyy8bkgxJxq9+9auLXl+6dGmjrxuGYaxbt85V5rbbbjMcDofb6ydOnDC6du1qSDISEhKMU6dO+ePSUE8w+vnjjz82oqOjDUlGUlKSsWvXLj9fBZoSjH5uSt3xQ4cObdbxaFow+vnAgQNGTEyMIcno37+/cfbs2YvKLF++3HWesWPHXupl4QKB7ufCwkLDYrEYkozOnTsbRUVFHtvxX//1X67zDBo06FIvC43Yv3+/67/1Qw895NUxjMMiT6D6mXFYeAlUPzeFcVh44B7LCPXKK69o8ODBqqio0KhRozR79mxlZWWpoqJC2dnZrhmuU1NTXUtH+Wr48OG65557lJ2drVWrVmnkyJF68skn1alTJ+3YsUPz5s3TwYMHJUnz589norcACHQ/b968WePHj1d1dbWioqK0aNEi1dTUNLq0Z0pKihISEpp7SfAgGO9nhF4w+rlr16567rnnNHPmTH355ZfKyMjQzJkz1adPH5WWlmrlypV6/fXXJUnx8fFatGiR364P5wW6n3v37q3JkyfrjTfe0OHDh9W3b189+eSTGjJkiNq2batDhw4pOztbb7/9tiTJZrPphRde8Os1ml1+fr727Nnj+r2kpMS1vWfPnov+2vvwww83qx7GYaEVjH5mHBZ6wXo/I0KEOp1B861atcqIj493JY0X/qSmphrfffedx2O9TTjLy8uNMWPGNFiH1WptdkIK7wSyn3/1q181eN6GfpYuXRrYCzapYLyfG1N3PH+xCKxg9fMzzzzjurvA009SUpLHuxrgH4Hu58rKSuPuu+9u8vM6Li7OeOuttwJ4peb00EMP+fTvpieMw8JfMPqZcVjoBfP93BjGYeGBOUci2Lhx47R9+3Y99dRTSk1NVevWrZWQkKABAwbopZde0tdff33Js5bHxsYqJydHb731lkaOHKmkpCRFR0erS5cuuu+++5Sfn6+5c+f654LgUTD6GaFHP5tDsPr5xRdf1GeffaYHHnhA3bp1U6tWrdSuXTsNHDhQzz//vL799lsNGjTID1cETwLdz61atVJ2drbWr1+vBx98UKmpqYqLi5PdbleHDh00aNAgPfvss9q1a5fuu+8+P14Zgo1xGAAEj8Uw6s0AAwAAAAAAYDLcOQIAAAAAAEyNcAQAAAAAAJga4QgAAAAAADA1whEAAAAAAGBqhCMAAAAAAMDUCEcAAAAAAICpEY4AAAAAAABTIxwBAAAAAACmRjgCAAAAAABMjXAEAAAAAACYGuEIAAAAAAAwNcIRAAAAAABgaoQjAAAAAADA1AhHAAAAAACAqRGOAAAAAAAAUyMcAQAAAAAApkY4AgAAAAAATI1wBAAAAAAAmBrhCAAAAAAAMDXCEQAAAAAAYGqEIwAAAAAAwNQIRwAAAAAAgKkRjgAAAAAAAFMjHAEAAAAAAKb2/wHdR98Gv8BgxAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 413, - "width": 547 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# incorporate delay into system by relabeling plant input signal\n", - "plant_simulator = ct.ss(plant_simulator, inputs='ud', outputs='y')\n", - "\n", - "# system from r to y\n", - "Gyr_simulator = ct.interconnect([controller_simulator, plant_simulator, u_summer, delayer], \n", - " inputs='r', outputs='y')\n", - "\n", - "# simulate\n", - "t, y = ct.input_output_response(Gyr_simulator, time, step_input)\n", - "plt.plot(t, y, '.-');" - ] - }, - { - "cell_type": "markdown", - "id": "c6c41775", - "metadata": {}, - "source": [ - "We can also observe how the dynamics behave with a nonlinear plant." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "83655c36", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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1PP8inOrvFQ77qpyvOrnqf5Z3a+xESFqFh1W/QRU4/fhiCRdeeWVeumll3To0CGtWLFC55xzTo3nzZ4927N97rnnNlV78DFTp07V448/Lsn9H5SSkhL94x//0Icffqht27ZJknr06KGbb75Zv//97086ymj37t165ZVXtGDBAu3du1cOh0MpKSkaMWKE/vSnP510XZuKJ8g89thjmjp1qlavXq0XX3xRS5cu1eHDh5WUlKQRI0Zo8uTJ6tGjR6N81qrat2+vPXv26JZbbtH06dO1ZcsWvfDCC/r666+VmZmphIQEnXPOOfrzn/+ss88++5T327dvn/75z39q/vz52rVrl4qLi9WyZUsNHjxYv//97zV8+PBa35uTk6M5c+Zo0aJFWrt2rfbu3auysjIlJibqzDPP1JVXXqkJEyYoLKzm/7jv3r1bHTp0kCS98847mjBhgmbPnq233npLP/30k7KysjR06NAan+oDAABOn8vlktMl2Z1OOZwu2Z0uOY+/Vt93eupOp+RwuWsOp9w1l/uY58flfq/jeN3lkqHudOnEOcff7zzej9N14vyKmstVcV5F38ZzK7/fVcM58pzj/rJauVbx/oovxMb94+fqxJdul6vKtuT5gl35S/yJL/DujYp99+knrnP87Ybf/aqeV3GOKp3nOfskx2v9wm4IE2oPHFyGcyt93qqfsXJPVf4Mqv3ZGXqu/mdWtb9gc8ewjnp4TMO+SwQbnw9Hpk+frokTJ0o68SWyqnvvvVevv/66SkpKdPfdd2vJkiWKjo42nDNjxgzPl6KxY8eywCokSYcOHdLo0aO1fv16Q3316tVavXq1FixYoDlz5tT4BKT33ntPt99+u0pLSw317du3a/v27Zo2bZqefPJJPfzww6fs49VXX9V9990nu93uqR04cEAzZszQ7NmzNW/ePJ133nkN/JR1M3v2bI0fP15FRUWeWlZWlubMmaMvvvhC//nPf3TttdfW+v5p06bprrvuUnFxsaGekZGhjIwMffzxx7rtttv0r3/9q8bAqV+/ftqzZ0+1+qFDh7RgwQItWLBA//rXv/Tll1+qVatWJ/0sLpdLN998s95///1TfWwAAExR8eW83OFSudOpcrs7LCg7/mp3OFXmcMrucMnudKrM7n61O1yGernDfW758ffUdtzudKnc4fTc0+48cR/3uSeu76lXCjUcld7vqVdcr1KIAcDH8Neyzrwajixbtkzbt2/37GdnZ3u2t2/frunTpxvOnzBhQoPu07ZtWz3xxBN66KGHtGbNGqWnp+uhhx5Sr169lJubq9mzZ+tf//qXJCkuLk4vvfRSg+6DwHPFFVdo8+bNuvvuuzVu3DglJiZq69atevLJJ7V582Z98cUXevPNN3XHHXcY3jd37lxNmDBBLpdLMTExmjRpki688EKFhIRoxYoVevrpp5Wdna3JkycrISFBf/jDH2rtYf78+frhhx/Up08f3XPPPerdu7eKi4v16aef6pVXXlFRUZHGjx+vbdu21Tpq4nRt2LBBH330kVq3bq1JkyZp4MCBcrlcmj9/vp555hmVlJTo9ttv14gRI9SiRYtq73/77bf129/+VpLUq1cv3XHHHerXr5+ioqK0a9cuTZs2TV9++aWmTZum+Ph4vfDCC9Wu4XA4dNZZZ+niiy9Wv379lJycrLKyMu3atUszZszQV199pXXr1um666475eiPl19+WRs2bNC5556rP/zhD+ratauOHTum3bt3N8YfFwDAjzicLpXaHSotd6rU7nRv253H9x0qsztV6nCqzF7px2HcLj2+Xe448VNmd4cQ5cfrZZ5jruPHjfsVr/aKbaczqP81GwB8jVfDkbfeekvvvvtujceWL1+u5cuXG2oNDUck6cEHH9TRo0f17LPPatOmTTVeq2XLlpozZ466dOnS4PuYxel0KaeozOw2mkyzqDBZrRav36didMj555/vqfXv31+jR4/WGWecoUOHDum1114zhCPl5eW64447PMHI0qVL1bdvX8/xs88+W1deeaUGDx6szMxMPfDAA7r66quVlJRUYw/ff/+9fvOb3+jTTz81hB/nnnuumjdvrkcffVR79+7V3Llzdfnllzf6n4EkrVu3TgMGDNCiRYsUHx9v+CydO3fWTTfdpLy8PM2YMUP33Xef4b0ZGRm66667JEm33HKL3nrrLcPIkH79+umKK67QI488or/97W96+eWXdccdd6hr166G63zzzTc1/t0855xzdOONN+qdd97RrbfeqiVLlmjRokW64IILav08GzZs0M0336zp06d7pi8BAHxLmd2p4jKHisrtKix1uLfL7Coqd6io1L1dYneqpMyhknKHissdKil3qrjcoVLP/ol6SXlF6HH89XgQUu4ggQAAnJrPT6upj6efflqXXHKJXn/9dS1dulSZmZmKiIhQ165ddckll+iuu+4yfPHzJzlFZRrwfwvNbqPJrHn0QjWPCff6fe666y5DMFIhMTFREydO1DPPPKMNGzYoNzfX87+dTz/9VPv375ckPfLII4ZgpEK7du303HPP6aabblJRUZHeeecdPfjggzX2EBERoXfeeafGUSF33323nnjiCZWVlWnp0qVeC0ck9+iPmv5+3HDDDXrooYd04MABLV26tFo4UjG6pU2bNrVOmZGkxx9/XO+++67279+v9957T//3f/9nOH6q0HLixIn6xz/+oXXr1mnOnDknDUcSEhL06quvEowAQCNyOF0qKLUrv6Rc+SV25ZfYVVhqV0Fp5VeHCstO1Az1UruKytzHi8scsjMFA5JsVotsFousVinEapXVcrxW8WOxyFp1+/hrxblWi+X4qzzbNqtFFotFtuM1i8Uim9W9ba30fs++RbIcv56lYl8V9RPnWK0WWeSuWSzyXMMiSdXed+I8i06cX7GtiutInvu4z3Vfy32fE+dX7Evumjy14/evOL/SOZV/Far4vajqdU5sn7iG52i1Y5Zq51Xt6WTnV+xZTpx6/HMY65X/LNzXN/ZiqeHPR7Xdp8pnNfZf83Vruo4M76vlz6KWz1f5/lX/fIz7xut4Xmp530nfqxP/m0bdeDUcmT59erWpM/U1YcKEeo0oGTx4sAYPHnxa90TwuPHGG2s9NmDAAM/2rl27PCHIwoXukMpisejWW2+t9f1XX3217rzzTuXm5mrhwoW1hiMjR45Uy5YtazwWGxurLl266JdfftHOnTtP9XEarHfv3urTp0+NxywWi/r166cDBw7U2MNnn30mSRo3bpwiIiJqvUdISIgGDx6sWbNmaeXKlSftx+Vy6dChQ8rLy1NZ2YkRU23atNG6deuqrRFT1bhx4xQbG3vScwAg2DidLuWX2JVbXG74OVZcptzicuUV25XnCT6qvrpDDjQtm9WiEKtFYTarQmwWhdisJ7atFoXarAo9vh9qPXFOqNVi2HafY1WozR0ahNqs7lerRbbj73Mfq3SO1X2O+15WTy+G/eN9VOxX1GyWGratVk8AUnFuRSAAAL4goEaOAPXVvXv3Wo8lJiZ6tvPz8z3bGzdulOR+0kttoYYkhYWFqV+/flq8eLHnPfXtoXIflXtobA3tITc317Ou0L//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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 413, - "width": 547 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "def nonlinear_plant_dynamics(t, x, u, params):\n", - " return -10 * x * abs(x) + u\n", - "def nonlinear_plant_output(t, x, u, params):\n", - " return 5 * x\n", - "nonlinear_plant = ct.ss(nonlinear_plant_dynamics, nonlinear_plant_output, \n", - " inputs='ud', outputs='y', states=1)\n", - "\n", - "# compare step responses \n", - "t, y = ct.input_output_response(nonlinear_plant, time, step_input)\n", - "plt.plot(t, y, label='nonlinear')\n", - "t, y = ct.step_response(plantcont, 1.5)\n", - "plt.plot(t, y, label='linear')\n", - "plt.legend();" - ] - }, - { - "cell_type": "markdown", - "id": "a7a163d6", - "metadata": {}, - "source": [ - "## now create a closed-loop system. \n", - "\n", - "Note that this system is not intended to show operation of well-designed feedback control system. " - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "dce984be", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "image/png": { - "height": 413, - "width": 546 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# create zero-order hold approximation of plant2 dynamics\n", - "def discrete_nonlinear_plant_dynamics(t, x, u, params):\n", - " return x + simulation_dt * nonlinear_plant_dynamics(t, x, u, params)\n", - "nonlinear_plant_simulator = ct.ss(discrete_nonlinear_plant_dynamics, nonlinear_plant_output, \n", - " dt=simulation_dt,\n", - " inputs='ud', outputs='y', states=1)\n", - "\n", - "# system from r to y\n", - "nonlinear_Gyr_simulator = ct.interconnect([controller_simulator, nonlinear_plant_simulator, u_summer, delayer], \n", - " inputs='r', outputs=['y', 'u'])\n", - "\n", - "# simulate\n", - "t, y = ct.input_output_response(nonlinear_Gyr_simulator, time, step_input)\n", - "plt.plot(t, y[0],'.-');" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f0fe24a2", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.15" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From a0877c5deceaffcb18932b836336f171373befba Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Thu, 13 Apr 2023 19:15:33 -0700 Subject: [PATCH 0237/1025] fix blank bode plot in rootlocus_pid_designer --- control/sisotool.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/control/sisotool.py b/control/sisotool.py index c1b260d08..abda458ef 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -213,8 +213,8 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', be modified at a time. `Sisotool` plots the step response, frequency response, and root locus. - When first run, `deltaK` is set to 0; click on a branch of the root locus - plot to try a different value. Each click updates plots and prints + When first run, `deltaK` is set to 0.001; click on a branch of the root + locus plot to try a different value. Each click updates plots and prints the corresponding `deltaK`. To tune all three PID gains, repeatedly call `rootlocus_pid_designer`, and select a different `gain` each time (`'P'`, `'I'`, or `'D'`). Make sure to add the resulting `deltaK` to your chosen @@ -352,6 +352,6 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', inplist=['input', input_signal], outlist=['output', 'y'], check_unused=False) if plot: - sisotool(loop, kvect=(0.,)) + sisotool(loop, initial_gain=0.001) cl = loop[1, 1] # closed loop transfer function with initial gains return StateSpace(cl.A, cl.B, cl.C, cl.D, cl.dt) From c3a013b690363a95b62710c1f42a1b0cb19891b3 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 15 Apr 2023 13:18:45 -0700 Subject: [PATCH 0238/1025] TRV: fix docstring typo in rootlocus_pid_designer --- control/sisotool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/sisotool.py b/control/sisotool.py index abda458ef..e0553208e 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -254,7 +254,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', its second input rather than being added to `u`. Remark: It may be helpful to zoom in using the magnifying glass on the - plot. Just ake sure to deactivate magnification mode when you are done by + plot. Just make sure to deactivate magnification mode when you are done by clicking the magnifying glass. Otherwise you will not be able to be able to choose a gain on the root locus plot. From 5d7a8d3d8bb361ed6995b2e41b5692ac62b719b7 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Sun, 16 Apr 2023 13:15:14 -0700 Subject: [PATCH 0239/1025] added noteto docstring for how to use when no interative plots --- control/sisotool.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/control/sisotool.py b/control/sisotool.py index abda458ef..f3a5d97a1 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -220,6 +220,15 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', `'I'`, or `'D'`). Make sure to add the resulting `deltaK` to your chosen initial gain on the next iteration. + Note: Clicking on interactive plots feature is not currently compatible + with in-line plots in the Jupyter Notebook including online notebooks. + The alternative is to iteratively explore calling this function with + different initial argument values `Kp0`, `Ki0`, and `Kd0`. If you are + running the notebook on your local computer, it may be possible to spawn + separate interactive plots outside of the notebook with a command, e.g. + `%matplotlib qt`; when you are done, `%matplotlib inline` returns to + inline plots. + Example: to examine the effect of varying `Kp` starting from an intial value of 10, use the arguments `gain='P', Kp0=10`. Suppose a `deltaK` value of 5 gives satisfactory performance. Then on the next iteration, @@ -254,7 +263,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', its second input rather than being added to `u`. Remark: It may be helpful to zoom in using the magnifying glass on the - plot. Just ake sure to deactivate magnification mode when you are done by + plot. Just make sure to deactivate magnification mode when you are done by clicking the magnifying glass. Otherwise you will not be able to be able to choose a gain on the root locus plot. @@ -320,7 +329,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', deriv = tf([1, -1], [dt, 0], dt) # add signal names by turning into iosystems - prop = tf2io(prop, inputs='e', outputs='prop_e') + prop = tf2io(prop, ) integ = tf2io(integ, inputs='e', outputs='int_e') if derivative_in_feedback_path: deriv = tf2io(-deriv, inputs='y', outputs='deriv') From 78f5aec6f35b69d33584da3ce4830e7eced2f7c5 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 17 Apr 2023 15:58:05 -0700 Subject: [PATCH 0240/1025] fix bug in namedio unit test that was treating static SS systems the same as transfer functions. tests to track down missing names on some systems when converting to LinearIOSystem --- control/tests/namedio_test.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index 4925e9790..bec0049d9 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -90,8 +90,10 @@ def test_named_ss(): (lambda t, x, u, params: -x, None), {'inputs': 2, 'outputs':2, 'states':2}], [ct.ss, ([[1, 2], [3, 4]], [[0], [1]], [[1, 0]], 0), {}], + [ct.ss, ([], [], [], 3), {}], # static system [ct.StateSpace, ([[1, 2], [3, 4]], [[0], [1]], [[1, 0]], 0), {}], [ct.tf, ([1, 2], [3, 4, 5]), {}], + [ct.tf, (2, 3), {}], # static system [ct.TransferFunction, ([1, 2], [3, 4, 5]), {}], ]) def test_io_naming(fun, args, kwargs): @@ -112,7 +114,7 @@ def test_io_naming(fun, args, kwargs): assert sys_g.name == 'sys[0]' assert sys_g.input_labels == [f'u[{i}]' for i in range(sys_g.ninputs)] assert sys_g.output_labels == [f'y[{i}]' for i in range(sys_g.noutputs)] - if sys_g.nstates: + if sys_g.nstates is not None: assert sys_g.state_labels == [f'x[{i}]' for i in range(sys_g.nstates)] # @@ -128,7 +130,7 @@ def test_io_naming(fun, args, kwargs): sys_r.set_outputs(output_labels) assert sys_r.output_labels == output_labels - if sys_g.nstates: + if sys_g.nstates is not None: state_labels = [f'x{i}' for i in range(sys_g.nstates)] sys_r.set_states(state_labels) assert sys_r.state_labels == state_labels @@ -143,7 +145,7 @@ def test_io_naming(fun, args, kwargs): sys_k = fun(state_labels, output_labels, input_labels, name='mysys') elif sys_g.nstates is None: - # Don't pass state labels + # Don't pass state labels if TransferFunction sys_k = fun( *args, inputs=input_labels, outputs=output_labels, name='mysys') @@ -155,7 +157,7 @@ def test_io_naming(fun, args, kwargs): assert sys_k.name == 'mysys' assert sys_k.input_labels == input_labels assert sys_k.output_labels == output_labels - if sys_g.nstates: + if sys_g.nstates is not None: assert sys_k.state_labels == state_labels # @@ -193,6 +195,24 @@ def test_io_naming(fun, args, kwargs): assert sys_tf.input_labels == input_labels assert sys_tf.output_labels == output_labels + # + # Convert the system to a LinearIOSystem and make sure labels transfer + # + if not isinstance( + sys_r, (ct.FrequencyResponseData, ct.NonlinearIOSystem)) and \ + ct.slycot_check(): + sys_lio = ct.LinearIOSystem(sys_r) + assert sys_lio != sys_r + assert sys_lio.input_labels == input_labels + assert sys_lio.output_labels == output_labels + + # Reassign system and signal names + sys_lio = ct.LinearIOSystem( + sys_g, inputs=input_labels, outputs=output_labels, name='new') + assert sys_lio.name == 'new' + assert sys_lio.input_labels == input_labels + assert sys_lio.output_labels == output_labels + # Internal testing of StateSpace initialization def test_init_namedif(): From ebabbd6f8481a47adb83fe7c6368275b6b8a624c Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 17 Apr 2023 17:02:07 -0700 Subject: [PATCH 0241/1025] add unit tests for interconnect with static system --- control/tests/interconnect_test.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 2c29aeaca..3d2f0c7d7 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -68,8 +68,13 @@ def test_interconnect_implicit(): ki = ct.tf(random.uniform(1, 10), [1, 0]) C = ct.tf2io(kp + ki, inputs='e', outputs='u', name='C') + # same but static C2 + C2 = ct.tf(random.uniform(1, 10), 1, + inputs='e', outputs='u', name='C2') + # Block diagram computation Tss = ct.feedback(P * C, 1) + Tss2 = ct.feedback(P * C2, 1) # Construct the interconnection explicitly Tio_exp = ct.interconnect( @@ -93,6 +98,15 @@ def test_interconnect_implicit(): np.testing.assert_almost_equal(Tio_sum.C, Tss.C) np.testing.assert_almost_equal(Tio_sum.D, Tss.D) + # test whether signal names work for static system C2 + Tio_sum2 = ct.interconnect( + [C2, P, sumblk], inputs='r', outputs='y') + + np.testing.assert_almost_equal(Tio_sum2.A, Tss2.A) + np.testing.assert_almost_equal(Tio_sum2.B, Tss2.B) + np.testing.assert_almost_equal(Tio_sum2.C, Tss2.C) + np.testing.assert_almost_equal(Tio_sum2.D, Tss2.D) + # Setting connections to False should lead to an empty connection map empty = ct.interconnect( (C, P, sumblk), connections=False, inplist=['r'], outlist=['y']) @@ -237,17 +251,17 @@ def test_linear_interconnect(): ss_ctrl = ct.ss(1, 2, 1, 2, inputs='e', outputs='u') ss_plant = ct.ss(1, 2, 1, 2, inputs='u', outputs='y') nl_ctrl = ct.NonlinearIOSystem( - lambda t, x, u, params: x*x, + lambda t, x, u, params: x*x, lambda t, x, u, params: u*x, states=1, inputs='e', outputs='u') nl_plant = ct.NonlinearIOSystem( - lambda t, x, u, params: x*x, + lambda t, x, u, params: x*x, lambda t, x, u, params: u*x, states=1, inputs='u', outputs='y') assert isinstance(ct.interconnect((tf_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) assert isinstance(ct.interconnect((ss_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) assert isinstance(ct.interconnect((tf_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) assert isinstance(ct.interconnect((ss_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - + assert ~isinstance(ct.interconnect((nl_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) assert ~isinstance(ct.interconnect((nl_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) assert ~isinstance(ct.interconnect((ss_ctrl, nl_plant), inputs='e', outputs='y'), ct.LinearIOSystem) From 8b5eb47e60f8263da33609528bde34b5bf2be8a8 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 17 Apr 2023 22:13:44 -0700 Subject: [PATCH 0242/1025] squashed noslycot losing signal names bug, added unit tests --- control/statesp.py | 13 ++++++++----- control/tests/namedio_test.py | 19 +++++++++++++++++-- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 41f92ae21..99c5fe9dc 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -170,9 +170,9 @@ class StateSpace(LTI): The StateSpace class is used to represent state-space realizations of linear time-invariant (LTI) systems: - + .. math:: - + dx/dt &= A x + B u \\ y &= C x + D u @@ -1561,7 +1561,8 @@ def _convert_to_statespace(sys): return StateSpace( ssout[1][:states, :states], ssout[2][:states, :sys.ninputs], ssout[3][:sys.noutputs, :states], ssout[4], sys.dt, - inputs=sys.input_labels, outputs=sys.output_labels) + inputs=sys.input_labels, outputs=sys.output_labels, + name=sys.name) except ImportError: # No Slycot. Scipy tf->ss can't handle MIMO, but static # MIMO is an easy special case we can check for here @@ -1574,7 +1575,9 @@ def _convert_to_statespace(sys): for i, j in itertools.product(range(sys.noutputs), range(sys.ninputs)): D[i, j] = sys.num[i][j][0] / sys.den[i][j][0] - return StateSpace([], [], [], D, sys.dt) + return StateSpace([], [], [], D, sys.dt, + inputs=sys.input_labels, outputs=sys.output_labels, + name=sys.name) else: if sys.ninputs != 1 or sys.noutputs != 1: raise TypeError("No support for MIMO without slycot") @@ -1586,7 +1589,7 @@ def _convert_to_statespace(sys): sp.signal.tf2ss(squeeze(sys.num), squeeze(sys.den)) return StateSpace( A, B, C, D, sys.dt, inputs=sys.input_labels, - outputs=sys.output_labels) + outputs=sys.output_labels, name=sys.name) elif isinstance(sys, FrequencyResponseData): raise TypeError("Can't convert FRD to StateSpace system.") diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index bec0049d9..3203214d6 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -241,14 +241,29 @@ def test_init_namedif(): # Test state space conversion def test_convert_to_statespace(): - # Set up the initial system - sys = ct.tf(ct.rss(2, 1, 1)) + # Set up the initial systems + sys = ct.tf(ct.rss(2, 1, 1), inputs='u', outputs='y', name='sys') + sys_static = ct.tf(1, 2, inputs='u', outputs='y', name='sys_static') + + # check that name, inputs, and outputs passed through + sys_new = ct.ss(sys) + assert sys_new.name == 'sys' + assert sys_new.input_labels == ['u'] + assert sys_new.output_labels == ['y'] + sys_new = ct.ss(sys_static) + assert sys_new.name == 'sys_static' + assert sys_new.input_labels == ['u'] + assert sys_new.output_labels == ['y'] # Make sure we can rename system name, inputs, outputs sys_new = ct.ss(sys, inputs='u', outputs='y', name='new') assert sys_new.name == 'new' assert sys_new.input_labels == ['u'] assert sys_new.output_labels == ['y'] + sys_new = ct.ss(sys_static, inputs='u', outputs='y', name='new') + assert sys_new.name == 'new' + assert sys_new.input_labels == ['u'] + assert sys_new.output_labels == ['y'] # Try specifying the state names (via low level test) with pytest.warns(UserWarning, match="non-unique state space realization"): From d88c67c94ddb0bc7bc34ee269833571417da792c Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 19 Apr 2023 09:32:41 -0700 Subject: [PATCH 0243/1025] update nyquist_plot to accomodate discrete-time transfer functions with poles at the origin and unity --- control/freqplot.py | 74 ++++++++++++++++++----------------- control/tests/nyquist_test.py | 21 ++++++++-- 2 files changed, 56 insertions(+), 39 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 25de3c11b..1cedbf684 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -819,29 +819,29 @@ def _parse_linestyle(style_name, allow_false=False): splane_contour = 1j * omega_sys # Bend the contour around any poles on/near the imaginary axis - # TODO: smarter indent radius that depends on dcgain of system - # and timebase of discrete system. if isinstance(sys, (StateSpace, TransferFunction)) \ and indent_direction != 'none': if sys.isctime(): splane_poles = sys.poles() splane_cl_poles = sys.feedback().poles() else: - # map z-plane poles to s-plane, ignoring any at the origin - # because we don't need to indent for them + # map z-plane poles to s-plane. We ignore any at the origin + # to avoid numerical warnings because we know we + # don't need to indent for them zplane_poles = sys.poles() zplane_poles = zplane_poles[~np.isclose(abs(zplane_poles), 0.)] splane_poles = np.log(zplane_poles) / sys.dt zplane_cl_poles = sys.feedback().poles() + # eliminate z-plane poles at the origin to avoid warnings zplane_cl_poles = zplane_cl_poles[ - ~np.isclose(abs(zplane_poles), 0.)] + ~np.isclose(abs(zplane_cl_poles), 0.)] splane_cl_poles = np.log(zplane_cl_poles) / sys.dt # # Check to make sure indent radius is small enough # - # If there is a closed loop pole that is near the imaginary access + # If there is a closed loop pole that is near the imaginary axis # at a point that is near an open loop pole, it is possible that # indentation might skip or create an extraneous encirclement. # We check for that situation here and generate a warning if that @@ -851,15 +851,16 @@ def _parse_linestyle(style_name, allow_false=False): # See if any closed loop poles are near the imaginary axis if abs(p_cl.real) <= indent_radius: # See if any open loop poles are close to closed loop poles - p_ol = splane_poles[ - (np.abs(splane_poles - p_cl)).argmin()] + if len(splane_poles) > 0: + p_ol = splane_poles[ + (np.abs(splane_poles - p_cl)).argmin()] - if abs(p_ol - p_cl) <= indent_radius and \ - warn_encirclements: - warnings.warn( - "indented contour may miss closed loop pole; " - "consider reducing indent_radius to be less than " - f"{abs(p_ol - p_cl):5.2g}", stacklevel=2) + if abs(p_ol - p_cl) <= indent_radius and \ + warn_encirclements: + warnings.warn( + "indented contour may miss closed loop pole; " + "consider reducing indent_radius to below " + f"{abs(p_ol - p_cl):5.2g}", stacklevel=2) # # See if we should add some frequency points near imaginary poles @@ -897,29 +898,30 @@ def _parse_linestyle(style_name, allow_false=False): splane_contour[last_point:])) # Indent points that are too close to a pole - for i, s in enumerate(splane_contour): - # Find the nearest pole - p = splane_poles[(np.abs(splane_poles - s)).argmin()] - - # See if we need to indent around it - if abs(s - p) < indent_radius: - # Figure out how much to offset (simple trigonometry) - offset = np.sqrt(indent_radius ** 2 - (s - p).imag ** 2) \ - - (s - p).real - - # Figure out which way to offset the contour point - if p.real < 0 or (p.real == 0 and - indent_direction == 'right'): - # Indent to the right - splane_contour[i] += offset - - elif p.real > 0 or (p.real == 0 and - indent_direction == 'left'): - # Indent to the left - splane_contour[i] -= offset + if len(splane_poles) > 0: # accomodate no splane poles if dtime sys + for i, s in enumerate(splane_contour): + # Find the nearest pole + p = splane_poles[(np.abs(splane_poles - s)).argmin()] + + # See if we need to indent around it + if abs(s - p) < indent_radius: + # Figure out how much to offset (simple trigonometry) + offset = np.sqrt(indent_radius ** 2 - (s - p).imag ** 2) \ + - (s - p).real + + # Figure out which way to offset the contour point + if p.real < 0 or (p.real == 0 and + indent_direction == 'right'): + # Indent to the right + splane_contour[i] += offset + + elif p.real > 0 or (p.real == 0 and + indent_direction == 'left'): + # Indent to the left + splane_contour[i] -= offset - else: - raise ValueError("unknown value for indent_direction") + else: + raise ValueError("unknown value for indent_direction") # change contour to z-plane if necessary if sys.isctime(): diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index ddc69e7bb..ca3c813a3 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -370,8 +370,23 @@ def test_nyquist_legacy(): def test_discrete_nyquist(): # Make sure we can handle discrete time systems with negative poles sys = ct.tf(1, [1, -0.1], dt=1) * ct.tf(1, [1, 0.1], dt=1) - ct.nyquist_plot(sys) - + ct.nyquist_plot(sys, plot=False) + + # system with a pole at the origin + sys = ct.zpk([1,], [.3, 0], 1, dt=True) + ct.nyquist_plot(sys, plot=False) + sys = ct.zpk([1,], [0], 1, dt=True) + ct.nyquist_plot(sys, plot=False) + + # only a pole at the origin + sys = ct.zpk([], [0], 2, dt=True) + ct.nyquist_plot(sys, plot=False) + + # pole at zero (pure delay) + sys = ct.zpk([], [1], 1, dt=True) + ct.nyquist_plot(sys, plot=False) + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -427,5 +442,5 @@ def test_discrete_nyquist(): np.array2string(sys.poles(), precision=2, separator=',')) count = ct.nyquist_plot(sys) - + From 0fb9d94b408b56dc091a7892f30eec03c7330e4e Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 19 Apr 2023 14:31:42 -0700 Subject: [PATCH 0244/1025] enable deltaK in sisotool for non-interactive use, docstring improvements --- control/sisotool.py | 84 ++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 39 deletions(-) diff --git a/control/sisotool.py b/control/sisotool.py index f3a5d97a1..ddee9c732 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -3,12 +3,12 @@ from control.exception import ControlMIMONotImplemented from .freqplot import bode_plot from .timeresp import step_response -from .namedio import issiso, common_timebase, isctime, isdtime +from .namedio import common_timebase, isctime, isdtime from .xferfcn import tf from .iosys import ss from .bdalg import append, connect -from .iosys import tf2io, ss2io, summing_junction, interconnect -from control.statesp import _convert_to_statespace, StateSpace +from .iosys import ss, tf2io, summing_junction, interconnect +from control.statesp import _convert_to_statespace from . import config import numpy as np import matplotlib.pyplot as plt @@ -202,7 +202,7 @@ def _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect=None): # contributed by Sawyer Fuller, minster@uw.edu 2021.11.02, based on # an implementation in Matlab by Martin Berg. def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', - Kp0=0, Ki0=0, Kd0=0, tau=0.01, + Kp0=0, Ki0=0, Kd0=0, deltaK=0.001, tau=0.01, C_ff=0, derivative_in_feedback_path=False, plot=True): """Manual PID controller design based on root locus using Sisotool @@ -211,28 +211,38 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', amount `deltaK` to the proportional, integral, or derivative (PID) gains of a controller. One of the PID gains, `Kp`, `Ki`, or `Kd`, respectively, can be modified at a time. `Sisotool` plots the step response, frequency - response, and root locus. - - When first run, `deltaK` is set to 0.001; click on a branch of the root - locus plot to try a different value. Each click updates plots and prints - the corresponding `deltaK`. To tune all three PID gains, repeatedly call - `rootlocus_pid_designer`, and select a different `gain` each time (`'P'`, - `'I'`, or `'D'`). Make sure to add the resulting `deltaK` to your chosen - initial gain on the next iteration. - - Note: Clicking on interactive plots feature is not currently compatible - with in-line plots in the Jupyter Notebook including online notebooks. - The alternative is to iteratively explore calling this function with - different initial argument values `Kp0`, `Ki0`, and `Kd0`. If you are - running the notebook on your local computer, it may be possible to spawn - separate interactive plots outside of the notebook with a command, e.g. - `%matplotlib qt`; when you are done, `%matplotlib inline` returns to - inline plots. + response, and root locus of the closed-loop system controlling the + dynamical system specified by `plant`. Can be used with either non- + interactive plots (e.g. in a Jupyter Notebook), or interactive plots. + + To use non-interactively, choose starting-point PID gains `Kp0`, `Ki0`, + and `Kd0` (you might want to start with all zeros to begin with), select + which gain you would like to vary (e.g. gain=`'P'`, `'I'`, or `'D'`), and + choose a value of `deltaK` (default 0.001) to specify by how much you + would like to change that gain. Repeatedly run `rootlocus_pid_designer` + with different values of `deltaK` until you are satisfied with the + performance for that gain. Then, to tune a different gain, e.g. `'I'`, + make sure to add your chosen `deltaK` to the previous gain you you were + tuning. Example: to examine the effect of varying `Kp` starting from an intial - value of 10, use the arguments `gain='P', Kp0=10`. Suppose a `deltaK` - value of 5 gives satisfactory performance. Then on the next iteration, - to tune the derivative gain, use the arguments `gain='D', Kp0=15`. + value of 10, use the arguments `gain='P', Kp0=10` and try varying values + of `deltaK`. Suppose a `deltaK` of 5 gives satisfactory performance. Then, + to tune the derivative gain, add your selected `deltaK` to `Kp0` in the + next call using the arguments `gain='D', Kp0=15`, to see how adding + different values of `deltaK` to your derivative gain affects performance. + + To use with interactive plots, you will need to enable interactive mode + if you are in a Jupyter Notebook, e.g. using `%matplotlib`. See + `Interactive Plots `_ + for more information. Click on a branch of the root locus plot to try + different values of `deltaK`. Each click updates plots and prints the + corresponding `deltaK`. It may be helpful to zoom in using the magnifying + glass on the plot to get more locations to click. Just make sure to + deactivate magnification mode when you are done by clicking the magnifying + glass. Otherwise you will not be able to be able to choose a gain on the + root locus plot. When you are done, `%matplotlib inline` returns to inline, + non-interactive ploting. By default, all three PID terms are in the forward path C_f in the diagram shown below, that is, @@ -262,11 +272,6 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', If `plant` is a 2-input system, the disturbance `d` is fed directly into its second input rather than being added to `u`. - Remark: It may be helpful to zoom in using the magnifying glass on the - plot. Just make sure to deactivate magnification mode when you are done by - clicking the magnifying glass. Otherwise you will not be able to be able - to choose a gain on the root locus plot. - Parameters ---------- plant : :class:`LTI` (:class:`TransferFunction` or :class:`StateSpace` system) @@ -282,6 +287,8 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', Kp0, Ki0, Kd0 : float (optional) Initial values for proportional, integral, and derivative gains, respectively + deltaK : float (optional) + Perturbation value for gain specified by the `gain` keywoard. tau : float (optional) The time constant associated with the pole in the continuous-time derivative term. This is required to make the derivative transfer @@ -302,14 +309,13 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', """ - plant = _convert_to_statespace(plant) if plant.ninputs == 1: - plant = ss2io(plant, inputs='u', outputs='y') + plant = ss(plant, inputs='u', outputs='y') elif plant.ninputs == 2: - plant = ss2io(plant, inputs=['u', 'd'], outputs='y') + plant = ss(plant, inputs=['u', 'd'], outputs='y') else: raise ValueError("plant must have one or two inputs") - C_ff = ss2io(_convert_to_statespace(C_ff), inputs='r', outputs='uff') + C_ff = ss(_convert_to_statespace(C_ff), inputs='r', outputs='uff') dt = common_timebase(plant, C_ff) # create systems used for interconnections @@ -329,7 +335,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', deriv = tf([1, -1], [dt, 0], dt) # add signal names by turning into iosystems - prop = tf2io(prop, ) + prop = tf2io(prop, inputs='e', outputs='prop_e') integ = tf2io(integ, inputs='e', outputs='int_e') if derivative_in_feedback_path: deriv = tf2io(-deriv, inputs='y', outputs='deriv') @@ -344,13 +350,13 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', # for the gain that is varied, replace gain block with a special block # that has an 'input' and an 'output' that creates loop transfer function if gain in ('P', 'p'): - Kpgain = ss2io(ss([],[],[],[[0, 1], [-sign, Kp0]]), + Kpgain = ss([],[],[],[[0, 1], [-sign, Kp0]], inputs=['input', 'prop_e'], outputs=['output', 'ufb']) elif gain in ('I', 'i'): - Kigain = ss2io(ss([],[],[],[[0, 1], [-sign, Ki0]]), + Kigain = ss([],[],[],[[0, 1], [-sign, Ki0]], inputs=['input', 'int_e'], outputs=['output', 'ufb']) elif gain in ('D', 'd'): - Kdgain = ss2io(ss([],[],[],[[0, 1], [-sign, Kd0]]), + Kdgain = ss([],[],[],[[0, 1], [-sign, Kd0]], inputs=['input', 'deriv'], outputs=['output', 'ufb']) else: raise ValueError(gain + ' gain not recognized.') @@ -361,6 +367,6 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', inplist=['input', input_signal], outlist=['output', 'y'], check_unused=False) if plot: - sisotool(loop, initial_gain=0.001) + sisotool(loop, initial_gain=deltaK) cl = loop[1, 1] # closed loop transfer function with initial gains - return StateSpace(cl.A, cl.B, cl.C, cl.D, cl.dt) + return ss(cl.A, cl.B, cl.C, cl.D, cl.dt) From 74d96f0bb8d33f9874e0493cb2e6ff825bc69368 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Wed, 19 Apr 2023 15:32:32 -0700 Subject: [PATCH 0245/1025] added new kwarg to tests, un-skip tests that were previously giving warnings and problems. --- control/tests/sisotool_test.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index fde5eba2b..2327440df 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -182,22 +182,23 @@ def plant(self, request): @pytest.mark.parametrize('Kp0', (0,)) @pytest.mark.parametrize('Ki0', (1.,)) @pytest.mark.parametrize('Kd0', (0.1,)) + @pytest.mark.parametrize('deltaK', (1.,)) @pytest.mark.parametrize('tau', (0.01,)) @pytest.mark.parametrize('C_ff', (0, 1,)) @pytest.mark.parametrize('derivative_in_feedback_path', (True, False,)) @pytest.mark.parametrize("kwargs", [{'plot':False},]) - def test_pid_designer_1(self, plant, gain, sign, input_signal, Kp0, Ki0, Kd0, tau, C_ff, + def test_pid_designer_1(self, plant, gain, sign, input_signal, Kp0, Ki0, Kd0, deltaK, tau, C_ff, derivative_in_feedback_path, kwargs): - rootlocus_pid_designer(plant, gain, sign, input_signal, Kp0, Ki0, Kd0, tau, C_ff, + rootlocus_pid_designer(plant, gain, sign, input_signal, Kp0, Ki0, Kd0, deltaK, tau, C_ff, derivative_in_feedback_path, **kwargs) # test creation of sisotool plot # input from reference or disturbance - @pytest.mark.skip("Bode plot is incorrect; generates spurious warnings") @pytest.mark.parametrize('plant', ('syscont', 'syscont221'), indirect=True) @pytest.mark.parametrize("kwargs", [ {'input_signal':'r', 'Kp0':0.01, 'derivative_in_feedback_path':True}, - {'input_signal':'d', 'Kp0':0.01, 'derivative_in_feedback_path':True},]) + {'input_signal':'d', 'Kp0':0.01, 'derivative_in_feedback_path':True}, + {'input_signal':'r', 'Kd0':0.01, 'derivative_in_feedback_path':True}]) def test_pid_designer_2(self, plant, kwargs): rootlocus_pid_designer(plant, **kwargs) From fabcb3795861f6ad86d21cd239411b252d794085 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 22 Apr 2023 19:25:02 -0700 Subject: [PATCH 0246/1025] add %matplotlib note + tweak docstrings --- control/sisotool.py | 73 ++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/control/sisotool.py b/control/sisotool.py index ddee9c732..e1cfbaf67 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -22,8 +22,8 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, plotstr_rlocus='C0', rlocus_grid=False, omega=None, dB=None, Hz=None, deg=None, omega_limits=None, omega_num=None, margins_bode=True, tvect=None, kvect=None): - """ - Sisotool style collection of plots inspired by MATLAB's sisotool. + """Sisotool style collection of plots inspired by MATLAB's sisotool. + The left two plots contain the bode magnitude and phase diagrams. The top right plot is a clickable root locus plot, clicking on the root locus will change the gain of the system. The bottom left plot @@ -32,52 +32,52 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, Parameters ---------- sys : LTI object - Linear input/output systems. If sys is SISO, use the same - system for the root locus and step response. If it is desired to - see a different step response than feedback(K*sys,1), such as a - disturbance response, sys can be provided as a two-input, two-output - system (e.g. by using :func:`bdgalg.connect' or - :func:`iosys.interconnect`). For two-input, two-output - system, sisotool inserts the negative of the selected gain K between - the first output and first input and uses the second input and output - for computing the step response. To see the disturbance response, - configure your plant to have as its second input the disturbance input. - To view the step response with a feedforward controller, give your - plant two identical inputs, and sum your feedback controller and your - feedforward controller and multiply them into your plant's second - input. It is also possible to accomodate a system with a gain in the - feedback. + Linear input/output systems. If sys is SISO, use the same system for + the root locus and step response. If it is desired to see a different + step response than feedback(K*sys,1), such as a disturbance response, + sys can be provided as a two-input, two-output system (e.g. by using + :func:`bdgalg.connect' or :func:`iosys.interconnect`). For two-input, + two-output system, sisotool inserts the negative of the selected gain + K between the first output and first input and uses the second input + and output for computing the step response. To see the disturbance + response, configure your plant to have as its second input the + disturbance input. To view the step response with a feedforward + controller, give your plant two identical inputs, and sum your + feedback controller and your feedforward controller and multiply them + into your plant's second input. It is also possible to accomodate a + system with a gain in the feedback. initial_gain : float, optional Initial gain to use for plotting root locus. Defaults to 1 (config.defaults['sisotool.initial_gain']). xlim_rlocus : tuple or list, optional - control of x-axis range, normally with tuple + Control of x-axis range, normally with tuple (see :doc:`matplotlib:api/axes_api`). ylim_rlocus : tuple or list, optional control of y-axis range plotstr_rlocus : :func:`matplotlib.pyplot.plot` format string, optional - plotting style for the root locus plot(color, linestyle, etc) + Plotting style for the root locus plot(color, linestyle, etc). rlocus_grid : boolean (default = False) If True plot s- or z-plane grid. omega : array_like - List of frequencies in rad/sec to be used for bode plot + List of frequencies in rad/sec to be used for bode plot. dB : boolean - If True, plot result in dB for the bode plot + If True, plot result in dB for the bode plot. Hz : boolean - If True, plot frequency in Hz for the bode plot (omega must be provided in rad/sec) + If True, plot frequency in Hz for the bode plot (omega must be + provided in rad/sec). deg : boolean - If True, plot phase in degrees for the bode plot (else radians) + If True, plot phase in degrees for the bode plot (else radians). omega_limits : array_like of two values - Limits of the to generate frequency vector. - If Hz=True the limits are in Hz otherwise in rad/s. Ignored if omega - is provided, and auto-generated if omitted. + Limits of the to generate frequency vector. If Hz=True the limits + are in Hz otherwise in rad/s. Ignored if omega is provided, and + auto-generated if omitted. omega_num : int Number of samples to plot. Defaults to config.defaults['freqplot.number_of_samples']. margins_bode : boolean - If True, plot gain and phase margin in the bode plot + If True, plot gain and phase margin in the bode plot. tvect : list or ndarray, optional - List of timesteps to use for closed loop step response + List of timesteps to use for closed loop step response. Examples -------- @@ -207,7 +207,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', plot=True): """Manual PID controller design based on root locus using Sisotool - Uses `Sisotool` to investigate the effect of adding or subtracting an + Uses `sisotool` to investigate the effect of adding or subtracting an amount `deltaK` to the proportional, integral, or derivative (PID) gains of a controller. One of the PID gains, `Kp`, `Ki`, or `Kd`, respectively, can be modified at a time. `Sisotool` plots the step response, frequency @@ -275,18 +275,18 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', Parameters ---------- plant : :class:`LTI` (:class:`TransferFunction` or :class:`StateSpace` system) - The dynamical system to be controlled + The dynamical system to be controlled. gain : string (optional) Which gain to vary by `deltaK`. Must be one of `'P'`, `'I'`, or `'D'` - (proportional, integral, or derative) + (proportional, integral, or derative). sign : int (optional) - The sign of deltaK gain perturbation + The sign of deltaK gain perturbation. input : string (optional) The input used for the step response; must be `'r'` (reference) or - `'d'` (disturbance) (see figure above) + `'d'` (disturbance) (see figure above). Kp0, Ki0, Kd0 : float (optional) Initial values for proportional, integral, and derivative gains, - respectively + respectively. deltaK : float (optional) Perturbation value for gain specified by the `gain` keywoard. tau : float (optional) @@ -307,6 +307,11 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', closedloop : class:`StateSpace` system The closed-loop system using initial gains. + Notes + ----- + When running using iPython or Jupyter, use `%matplotlib` to configure + the session for interactive support. + """ if plant.ninputs == 1: From 65988d12cbab5d895767da195a3767d922b1bb6e Mon Sep 17 00:00:00 2001 From: ShihChi Date: Fri, 28 Apr 2023 00:41:26 -0400 Subject: [PATCH 0247/1025] solve bandwidth by bisection for zero-crossing --- control/lti.py | 62 +++++++++++++++++++++++++++++++++++++++++++++- control/statesp.py | 4 +++ control/xferfcn.py | 4 +++ 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/control/lti.py b/control/lti.py index 6dc3bc62c..27cf3019d 100644 --- a/control/lti.py +++ b/control/lti.py @@ -20,7 +20,7 @@ from .namedio import NamedIOSystem, isdtime __all__ = ['poles', 'zeros', 'damp', 'evalfr', 'frequency_response', - 'freqresp', 'dcgain', 'pole', 'zero'] + 'freqresp', 'dcgain', 'bandwidth', 'pole', 'zero'] class LTI(NamedIOSystem): @@ -202,6 +202,39 @@ def _dcgain(self, warn_infinite): else: return zeroresp + def bandwidth(self, dbdrop=-3): + """Return the bandwidth""" + raise NotImplementedError("bandwidth not implemented for %s objects" % + str(self.__class__)) + + def _bandwidth(self, dbdrop=-3): + # check if system is SISO and dbdrop is a negative scalar + if (not self.issiso()) and (dbdrop >= 0): + raise ValueError("NOT sure what to raise #TODO ") + + # result = scipy.optimize.root(lambda w: np.abs(self(w*1j)) - np.abs(self.dcgain())*10**(dbdrop/20), x0=1) + # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak + + # use bodeplot to identify the 0-crossing bracket + from control.freqplot import _default_frequency_range + omega = _default_frequency_range(self) + mag, phase, omega = self.frequency_response(omega) + + dcgain = self.dcgain() + idx_out = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] + + # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection + import scipy + result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), + bracket=[omega[idx_out-1], omega[idx_out]], + method='bisect') + + # check solution + if result.converged: + return np.abs(result.root) + else: + raise Exception(result.message) + def ispassive(self): # importing here prevents circular dependancy from control.passivity import ispassive @@ -499,6 +532,33 @@ def dcgain(sys): return sys.dcgain() +def bandwidth(sys, dbdrop=-3): + """Return the first freqency where the gain drop by dbdrop of the system. + + Parameters + ---------- + sys: StateSpace or TransferFunction + Linear system + dbdrop : float, optional + By how much the gain drop in dB (default = -3) that defines the + bandwidth. Should be a negative scalar + + Returns + ------- + bandwidth : #TODO data-type + The first frequency where the gain drops below dbdrop of the dc gain + of the system. + + Example + ------- + >>> G = ct.tf([1], [1, 2]) + >>> ct.bandwidth(G) + 0.9976 + + """ + return sys.bandwidth(dbdrop) + + # Process frequency responses in a uniform way def _process_frequency_response(sys, omega, out, squeeze=None): # Set value of squeeze argument if not set diff --git a/control/statesp.py b/control/statesp.py index 41f92ae21..0a72f487c 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1424,6 +1424,10 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) + def bandwidth(self, dbdrop=-3): + """Return the bandwith""" + return self._bandwidth(dbdrop) + def dynamics(self, t, x, u=None, params=None): """Compute the dynamics of the system diff --git a/control/xferfcn.py b/control/xferfcn.py index 89e2546f8..cfc9c9a5e 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1246,6 +1246,10 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) + + def bandwidth(self, dbdrop=-3): + """Return the bandwith""" + return self._bandwidth(dbdrop) def _isstatic(self): """returns True if and only if all of the numerator and denominator From 86ff95c47f648dc859cfab61c8972eeccbd1039b Mon Sep 17 00:00:00 2001 From: ShihChi Date: Sun, 30 Apr 2023 22:05:51 -0400 Subject: [PATCH 0248/1025] testing suggested method by Kreijstal --- control/lti.py | 26 +++++++++++++++++++++----- control/matlab/__init__.py | 2 +- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/control/lti.py b/control/lti.py index 27cf3019d..f43039c44 100644 --- a/control/lti.py +++ b/control/lti.py @@ -210,10 +210,19 @@ def bandwidth(self, dbdrop=-3): def _bandwidth(self, dbdrop=-3): # check if system is SISO and dbdrop is a negative scalar if (not self.issiso()) and (dbdrop >= 0): - raise ValueError("NOT sure what to raise #TODO ") - + raise ValueError("#TODO ") + + # # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak + # G1 = ct.tf(0.1, [1, 0.1]) + # wn2 = 0.9 + # zeta2 = 0.001 + # G2 = ct.tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) + # ct.bandwidth(G1*G2) + # import scipy # result = scipy.optimize.root(lambda w: np.abs(self(w*1j)) - np.abs(self.dcgain())*10**(dbdrop/20), x0=1) - # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak + + # if result.success: + # return np.abs(result.x)[0] # use bodeplot to identify the 0-crossing bracket from control.freqplot import _default_frequency_range @@ -221,12 +230,12 @@ def _bandwidth(self, dbdrop=-3): mag, phase, omega = self.frequency_response(omega) dcgain = self.dcgain() - idx_out = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] + idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection import scipy result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), - bracket=[omega[idx_out-1], omega[idx_out]], + bracket=[omega[idx_dropped-1], omega[idx_dropped]], method='bisect') # check solution @@ -555,6 +564,13 @@ def bandwidth(sys, dbdrop=-3): >>> ct.bandwidth(G) 0.9976 + >>> G1 = ct.tf(0.1, [1, 0.1]) + >>> wn2 = 1 + >>> zeta2 = 0.001 + >>> G2 = ct.tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) + >>> ct.bandwidth(G1*G2) + 0.1018 + """ return sys.bandwidth(dbdrop) diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index 1a524b33f..ef14248c0 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -189,7 +189,7 @@ == ========================== ============================================ \* :func:`dcgain` steady-state (D.C.) gain -\ lti/bandwidth system bandwidth +\* :func:`bandwidth` system bandwidth \ lti/norm h2 and Hinfinity norms of LTI models \* :func:`pole` system poles \* :func:`zero` system (transmission) zeros From 70e912f031574167eef683f090dbb59317dff6ac Mon Sep 17 00:00:00 2001 From: ShihChi Date: Sun, 30 Apr 2023 23:00:59 -0400 Subject: [PATCH 0249/1025] Implemented and passed nominal test --- control/lti.py | 9 ++++++--- control/tests/lti_test.py | 23 ++++++++++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/control/lti.py b/control/lti.py index f43039c44..d43040084 100644 --- a/control/lti.py +++ b/control/lti.py @@ -209,8 +209,11 @@ def bandwidth(self, dbdrop=-3): def _bandwidth(self, dbdrop=-3): # check if system is SISO and dbdrop is a negative scalar - if (not self.issiso()) and (dbdrop >= 0): - raise ValueError("#TODO ") + if not self.issiso(): + raise TypeError("system should be a SISO system") + + if not(np.isscalar(dbdrop)) or dbdrop >= 0: + raise ValueError("expecting dbdrop be a negative scalar in dB") # # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak # G1 = ct.tf(0.1, [1, 0.1]) @@ -560,7 +563,7 @@ def bandwidth(sys, dbdrop=-3): Example ------- - >>> G = ct.tf([1], [1, 2]) + >>> G = ct.tf([1], [1, 1]) >>> ct.bandwidth(G) 0.9976 diff --git a/control/tests/lti_test.py b/control/tests/lti_test.py index 8e45ea482..bd35e25a6 100644 --- a/control/tests/lti_test.py +++ b/control/tests/lti_test.py @@ -6,7 +6,7 @@ import control as ct from control import c2d, tf, ss, tf2ss, NonlinearIOSystem -from control.lti import LTI, evalfr, damp, dcgain, zeros, poles +from control.lti import LTI, evalfr, damp, dcgain, zeros, poles, bandwidth from control import common_timebase, isctime, isdtime, issiso, timebaseEqual from control.tests.conftest import slycotonly from control.exception import slycot_check @@ -104,6 +104,27 @@ def test_dcgain(self): np.testing.assert_allclose(sys.dcgain(), 42) np.testing.assert_allclose(dcgain(sys), 42) + def test_bandwidth(self): + # test a first-order system, compared with matlab + sys1 = tf(0.1, [1, 0.1]) + np.testing.assert_allclose(sys1.bandwidth(), 0.099762834511098) + np.testing.assert_allclose(bandwidth(sys1), 0.099762834511098) + + # test a second-order system, compared with matlab + wn2 = 1 + zeta2 = 0.001 + sys2 = sys1 * tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) + np.testing.assert_allclose(sys2.bandwidth(), 0.101848388240241) + np.testing.assert_allclose(bandwidth(sys2), 0.101848388240241) + + # test if raise exception given other than SISO system + sysMIMO = tf([[[-1, 41], [1]], [[1, 2], [3, 4]]], + [[[1, 10], [1, 20]], [[1, 30], [1, 40]]]) + np.testing.assert_raises(TypeError, bandwidth, sysMIMO) + + # test if raise exception if dbdrop is positive scalar + np.testing.assert_raises(ValueError, bandwidth, sys1, 3) + @pytest.mark.parametrize("dt1, dt2, expected", [(None, None, True), (None, 0, True), From 0c81cb2b9812932096fd7d68c80b1457a02ef083 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Mon, 1 May 2023 00:03:40 -0400 Subject: [PATCH 0250/1025] Handle integrator, all-pass filters --- control/lti.py | 64 +++++++++++++++++++++------------------ control/tests/lti_test.py | 13 +++++++- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/control/lti.py b/control/lti.py index d43040084..ee3f57f5e 100644 --- a/control/lti.py +++ b/control/lti.py @@ -215,37 +215,31 @@ def _bandwidth(self, dbdrop=-3): if not(np.isscalar(dbdrop)) or dbdrop >= 0: raise ValueError("expecting dbdrop be a negative scalar in dB") - # # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak - # G1 = ct.tf(0.1, [1, 0.1]) - # wn2 = 0.9 - # zeta2 = 0.001 - # G2 = ct.tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) - # ct.bandwidth(G1*G2) - # import scipy - # result = scipy.optimize.root(lambda w: np.abs(self(w*1j)) - np.abs(self.dcgain())*10**(dbdrop/20), x0=1) - - # if result.success: - # return np.abs(result.x)[0] - - # use bodeplot to identify the 0-crossing bracket + dcgain = self.dcgain() + if np.isinf(dcgain): + return np.nan + + # use frequency range to identify the 0-crossing (dbdrop) bracket from control.freqplot import _default_frequency_range omega = _default_frequency_range(self) mag, phase, omega = self.frequency_response(omega) + idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0] - dcgain = self.dcgain() - idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] - - # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection - import scipy - result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), - bracket=[omega[idx_dropped-1], omega[idx_dropped]], - method='bisect') - - # check solution - if result.converged: - return np.abs(result.root) + if idx_dropped.shape[0] == 0: + # no frequency response is dbdrop below the dc gain. + return np.inf else: - raise Exception(result.message) + # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection + import scipy + result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), + bracket=[omega[idx_dropped[0] - 1], omega[idx_dropped[0]]], + method='bisect') + + # check solution + if result.converged: + return np.abs(result.root) + else: + raise Exception(result.message) def ispassive(self): # importing here prevents circular dependancy @@ -557,10 +551,17 @@ def bandwidth(sys, dbdrop=-3): Returns ------- - bandwidth : #TODO data-type - The first frequency where the gain drops below dbdrop of the dc gain - of the system. - + bandwidth : ndarray + The first frequency (rad/time-unit) where the gain drops below dbdrop of the dc gain + of the system, or nan if the system has infinite dc gain, inf if the gain does not drop for all frequency + + Raises + ------ + TypeError + if 'sys' is not an SISO LTI instance + ValueError + if 'dbdrop' is not a negative scalar + Example ------- >>> G = ct.tf([1], [1, 1]) @@ -575,6 +576,9 @@ def bandwidth(sys, dbdrop=-3): 0.1018 """ + if not isinstance(sys, LTI): + raise TypeError("sys must be a LTI instance.") + return sys.bandwidth(dbdrop) diff --git a/control/tests/lti_test.py b/control/tests/lti_test.py index bd35e25a6..e0f7f35bf 100644 --- a/control/tests/lti_test.py +++ b/control/tests/lti_test.py @@ -117,7 +117,18 @@ def test_bandwidth(self): np.testing.assert_allclose(sys2.bandwidth(), 0.101848388240241) np.testing.assert_allclose(bandwidth(sys2), 0.101848388240241) - # test if raise exception given other than SISO system + # test constant gain, bandwidth should be infinity + sysAP = tf(1,1) + np.testing.assert_allclose(bandwidth(sysAP), np.inf) + + # test integrator, bandwidth should return np.nan + sysInt = tf(1, [1, 0]) + np.testing.assert_allclose(bandwidth(sysInt), np.nan) + + # test exception for system other than LTI + np.testing.assert_raises(TypeError, bandwidth, 1) + + # test exception for system other than SISO system sysMIMO = tf([[[-1, 41], [1]], [[1, 2], [3, 4]]], [[[1, 10], [1, 20]], [[1, 30], [1, 40]]]) np.testing.assert_raises(TypeError, bandwidth, sysMIMO) From d59d19a299d2455e35826f6206715bba6197274c Mon Sep 17 00:00:00 2001 From: ShihChi Date: Mon, 1 May 2023 00:09:45 -0400 Subject: [PATCH 0251/1025] adjust for PEP8 coding style --- control/lti.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/control/lti.py b/control/lti.py index ee3f57f5e..2cf54cac2 100644 --- a/control/lti.py +++ b/control/lti.py @@ -211,12 +211,13 @@ def _bandwidth(self, dbdrop=-3): # check if system is SISO and dbdrop is a negative scalar if not self.issiso(): raise TypeError("system should be a SISO system") - - if not(np.isscalar(dbdrop)) or dbdrop >= 0: + + if (not np.isscalar(dbdrop)) or dbdrop >= 0: raise ValueError("expecting dbdrop be a negative scalar in dB") dcgain = self.dcgain() if np.isinf(dcgain): + # infinite dcgain, return np.nan return np.nan # use frequency range to identify the 0-crossing (dbdrop) bracket @@ -226,14 +227,16 @@ def _bandwidth(self, dbdrop=-3): idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0] if idx_dropped.shape[0] == 0: - # no frequency response is dbdrop below the dc gain. + # no frequency response is dbdrop below the dc gain, return np.inf return np.inf else: - # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection + # solve for the bandwidth, use scipy.optimize.root_scalar() to + # solve using bisection import scipy - result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), - bracket=[omega[idx_dropped[0] - 1], omega[idx_dropped[0]]], - method='bisect') + result = scipy.optimize.root_scalar( + lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), + bracket=[omega[idx_dropped[0] - 1], omega[idx_dropped[0]]], + method='bisect') # check solution if result.converged: @@ -552,8 +555,9 @@ def bandwidth(sys, dbdrop=-3): Returns ------- bandwidth : ndarray - The first frequency (rad/time-unit) where the gain drops below dbdrop of the dc gain - of the system, or nan if the system has infinite dc gain, inf if the gain does not drop for all frequency + The first frequency (rad/time-unit) where the gain drops below dbdrop + of the dc gain of the system, or nan if the system has infinite dc + gain, inf if the gain does not drop for all frequency Raises ------ @@ -561,7 +565,7 @@ def bandwidth(sys, dbdrop=-3): if 'sys' is not an SISO LTI instance ValueError if 'dbdrop' is not a negative scalar - + Example ------- >>> G = ct.tf([1], [1, 1]) From bc2ddff637169cea8010794cae7b2488ffa16006 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Fri, 28 Apr 2023 00:41:26 -0400 Subject: [PATCH 0252/1025] solve bandwidth by bisection for zero-crossing --- control/lti.py | 62 +++++++++++++++++++++++++++++++++++++++++++++- control/statesp.py | 4 +++ control/xferfcn.py | 4 +++ 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/control/lti.py b/control/lti.py index 6dc3bc62c..27cf3019d 100644 --- a/control/lti.py +++ b/control/lti.py @@ -20,7 +20,7 @@ from .namedio import NamedIOSystem, isdtime __all__ = ['poles', 'zeros', 'damp', 'evalfr', 'frequency_response', - 'freqresp', 'dcgain', 'pole', 'zero'] + 'freqresp', 'dcgain', 'bandwidth', 'pole', 'zero'] class LTI(NamedIOSystem): @@ -202,6 +202,39 @@ def _dcgain(self, warn_infinite): else: return zeroresp + def bandwidth(self, dbdrop=-3): + """Return the bandwidth""" + raise NotImplementedError("bandwidth not implemented for %s objects" % + str(self.__class__)) + + def _bandwidth(self, dbdrop=-3): + # check if system is SISO and dbdrop is a negative scalar + if (not self.issiso()) and (dbdrop >= 0): + raise ValueError("NOT sure what to raise #TODO ") + + # result = scipy.optimize.root(lambda w: np.abs(self(w*1j)) - np.abs(self.dcgain())*10**(dbdrop/20), x0=1) + # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak + + # use bodeplot to identify the 0-crossing bracket + from control.freqplot import _default_frequency_range + omega = _default_frequency_range(self) + mag, phase, omega = self.frequency_response(omega) + + dcgain = self.dcgain() + idx_out = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] + + # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection + import scipy + result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), + bracket=[omega[idx_out-1], omega[idx_out]], + method='bisect') + + # check solution + if result.converged: + return np.abs(result.root) + else: + raise Exception(result.message) + def ispassive(self): # importing here prevents circular dependancy from control.passivity import ispassive @@ -499,6 +532,33 @@ def dcgain(sys): return sys.dcgain() +def bandwidth(sys, dbdrop=-3): + """Return the first freqency where the gain drop by dbdrop of the system. + + Parameters + ---------- + sys: StateSpace or TransferFunction + Linear system + dbdrop : float, optional + By how much the gain drop in dB (default = -3) that defines the + bandwidth. Should be a negative scalar + + Returns + ------- + bandwidth : #TODO data-type + The first frequency where the gain drops below dbdrop of the dc gain + of the system. + + Example + ------- + >>> G = ct.tf([1], [1, 2]) + >>> ct.bandwidth(G) + 0.9976 + + """ + return sys.bandwidth(dbdrop) + + # Process frequency responses in a uniform way def _process_frequency_response(sys, omega, out, squeeze=None): # Set value of squeeze argument if not set diff --git a/control/statesp.py b/control/statesp.py index 41f92ae21..0a72f487c 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1424,6 +1424,10 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) + def bandwidth(self, dbdrop=-3): + """Return the bandwith""" + return self._bandwidth(dbdrop) + def dynamics(self, t, x, u=None, params=None): """Compute the dynamics of the system diff --git a/control/xferfcn.py b/control/xferfcn.py index 89e2546f8..cfc9c9a5e 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1246,6 +1246,10 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) + + def bandwidth(self, dbdrop=-3): + """Return the bandwith""" + return self._bandwidth(dbdrop) def _isstatic(self): """returns True if and only if all of the numerator and denominator From 409d0c62dd7c940d1d5575af229a31fc526e5f90 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Sun, 30 Apr 2023 22:05:51 -0400 Subject: [PATCH 0253/1025] testing suggested method by Kreijstal --- control/lti.py | 26 +++++++++++++++++++++----- control/matlab/__init__.py | 2 +- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/control/lti.py b/control/lti.py index 27cf3019d..f43039c44 100644 --- a/control/lti.py +++ b/control/lti.py @@ -210,10 +210,19 @@ def bandwidth(self, dbdrop=-3): def _bandwidth(self, dbdrop=-3): # check if system is SISO and dbdrop is a negative scalar if (not self.issiso()) and (dbdrop >= 0): - raise ValueError("NOT sure what to raise #TODO ") - + raise ValueError("#TODO ") + + # # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak + # G1 = ct.tf(0.1, [1, 0.1]) + # wn2 = 0.9 + # zeta2 = 0.001 + # G2 = ct.tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) + # ct.bandwidth(G1*G2) + # import scipy # result = scipy.optimize.root(lambda w: np.abs(self(w*1j)) - np.abs(self.dcgain())*10**(dbdrop/20), x0=1) - # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak + + # if result.success: + # return np.abs(result.x)[0] # use bodeplot to identify the 0-crossing bracket from control.freqplot import _default_frequency_range @@ -221,12 +230,12 @@ def _bandwidth(self, dbdrop=-3): mag, phase, omega = self.frequency_response(omega) dcgain = self.dcgain() - idx_out = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] + idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection import scipy result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), - bracket=[omega[idx_out-1], omega[idx_out]], + bracket=[omega[idx_dropped-1], omega[idx_dropped]], method='bisect') # check solution @@ -555,6 +564,13 @@ def bandwidth(sys, dbdrop=-3): >>> ct.bandwidth(G) 0.9976 + >>> G1 = ct.tf(0.1, [1, 0.1]) + >>> wn2 = 1 + >>> zeta2 = 0.001 + >>> G2 = ct.tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) + >>> ct.bandwidth(G1*G2) + 0.1018 + """ return sys.bandwidth(dbdrop) diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index 1a524b33f..ef14248c0 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -189,7 +189,7 @@ == ========================== ============================================ \* :func:`dcgain` steady-state (D.C.) gain -\ lti/bandwidth system bandwidth +\* :func:`bandwidth` system bandwidth \ lti/norm h2 and Hinfinity norms of LTI models \* :func:`pole` system poles \* :func:`zero` system (transmission) zeros From 723ddc88781912e858887cdec93154d8c9e26466 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Sun, 30 Apr 2023 23:00:59 -0400 Subject: [PATCH 0254/1025] Implemented and passed nominal test --- control/lti.py | 9 ++++++--- control/tests/lti_test.py | 23 ++++++++++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/control/lti.py b/control/lti.py index f43039c44..d43040084 100644 --- a/control/lti.py +++ b/control/lti.py @@ -209,8 +209,11 @@ def bandwidth(self, dbdrop=-3): def _bandwidth(self, dbdrop=-3): # check if system is SISO and dbdrop is a negative scalar - if (not self.issiso()) and (dbdrop >= 0): - raise ValueError("#TODO ") + if not self.issiso(): + raise TypeError("system should be a SISO system") + + if not(np.isscalar(dbdrop)) or dbdrop >= 0: + raise ValueError("expecting dbdrop be a negative scalar in dB") # # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak # G1 = ct.tf(0.1, [1, 0.1]) @@ -560,7 +563,7 @@ def bandwidth(sys, dbdrop=-3): Example ------- - >>> G = ct.tf([1], [1, 2]) + >>> G = ct.tf([1], [1, 1]) >>> ct.bandwidth(G) 0.9976 diff --git a/control/tests/lti_test.py b/control/tests/lti_test.py index 8e45ea482..bd35e25a6 100644 --- a/control/tests/lti_test.py +++ b/control/tests/lti_test.py @@ -6,7 +6,7 @@ import control as ct from control import c2d, tf, ss, tf2ss, NonlinearIOSystem -from control.lti import LTI, evalfr, damp, dcgain, zeros, poles +from control.lti import LTI, evalfr, damp, dcgain, zeros, poles, bandwidth from control import common_timebase, isctime, isdtime, issiso, timebaseEqual from control.tests.conftest import slycotonly from control.exception import slycot_check @@ -104,6 +104,27 @@ def test_dcgain(self): np.testing.assert_allclose(sys.dcgain(), 42) np.testing.assert_allclose(dcgain(sys), 42) + def test_bandwidth(self): + # test a first-order system, compared with matlab + sys1 = tf(0.1, [1, 0.1]) + np.testing.assert_allclose(sys1.bandwidth(), 0.099762834511098) + np.testing.assert_allclose(bandwidth(sys1), 0.099762834511098) + + # test a second-order system, compared with matlab + wn2 = 1 + zeta2 = 0.001 + sys2 = sys1 * tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) + np.testing.assert_allclose(sys2.bandwidth(), 0.101848388240241) + np.testing.assert_allclose(bandwidth(sys2), 0.101848388240241) + + # test if raise exception given other than SISO system + sysMIMO = tf([[[-1, 41], [1]], [[1, 2], [3, 4]]], + [[[1, 10], [1, 20]], [[1, 30], [1, 40]]]) + np.testing.assert_raises(TypeError, bandwidth, sysMIMO) + + # test if raise exception if dbdrop is positive scalar + np.testing.assert_raises(ValueError, bandwidth, sys1, 3) + @pytest.mark.parametrize("dt1, dt2, expected", [(None, None, True), (None, 0, True), From 6b5143236212bf5d9ab4c3fdf82c6299a3e27e55 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Mon, 1 May 2023 00:03:40 -0400 Subject: [PATCH 0255/1025] Handle integrator, all-pass filters --- control/lti.py | 64 +++++++++++++++++++++------------------ control/tests/lti_test.py | 13 +++++++- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/control/lti.py b/control/lti.py index d43040084..ee3f57f5e 100644 --- a/control/lti.py +++ b/control/lti.py @@ -215,37 +215,31 @@ def _bandwidth(self, dbdrop=-3): if not(np.isscalar(dbdrop)) or dbdrop >= 0: raise ValueError("expecting dbdrop be a negative scalar in dB") - # # # this will probabily fail if there is a resonant frequency larger than the bandwidth, the initial guess can be around that peak - # G1 = ct.tf(0.1, [1, 0.1]) - # wn2 = 0.9 - # zeta2 = 0.001 - # G2 = ct.tf(wn2**2, [1, 2*zeta2*wn2, wn2**2]) - # ct.bandwidth(G1*G2) - # import scipy - # result = scipy.optimize.root(lambda w: np.abs(self(w*1j)) - np.abs(self.dcgain())*10**(dbdrop/20), x0=1) - - # if result.success: - # return np.abs(result.x)[0] - - # use bodeplot to identify the 0-crossing bracket + dcgain = self.dcgain() + if np.isinf(dcgain): + return np.nan + + # use frequency range to identify the 0-crossing (dbdrop) bracket from control.freqplot import _default_frequency_range omega = _default_frequency_range(self) mag, phase, omega = self.frequency_response(omega) + idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0] - dcgain = self.dcgain() - idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0][0] - - # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection - import scipy - result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), - bracket=[omega[idx_dropped-1], omega[idx_dropped]], - method='bisect') - - # check solution - if result.converged: - return np.abs(result.root) + if idx_dropped.shape[0] == 0: + # no frequency response is dbdrop below the dc gain. + return np.inf else: - raise Exception(result.message) + # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection + import scipy + result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), + bracket=[omega[idx_dropped[0] - 1], omega[idx_dropped[0]]], + method='bisect') + + # check solution + if result.converged: + return np.abs(result.root) + else: + raise Exception(result.message) def ispassive(self): # importing here prevents circular dependancy @@ -557,10 +551,17 @@ def bandwidth(sys, dbdrop=-3): Returns ------- - bandwidth : #TODO data-type - The first frequency where the gain drops below dbdrop of the dc gain - of the system. - + bandwidth : ndarray + The first frequency (rad/time-unit) where the gain drops below dbdrop of the dc gain + of the system, or nan if the system has infinite dc gain, inf if the gain does not drop for all frequency + + Raises + ------ + TypeError + if 'sys' is not an SISO LTI instance + ValueError + if 'dbdrop' is not a negative scalar + Example ------- >>> G = ct.tf([1], [1, 1]) @@ -575,6 +576,9 @@ def bandwidth(sys, dbdrop=-3): 0.1018 """ + if not isinstance(sys, LTI): + raise TypeError("sys must be a LTI instance.") + return sys.bandwidth(dbdrop) diff --git a/control/tests/lti_test.py b/control/tests/lti_test.py index bd35e25a6..e0f7f35bf 100644 --- a/control/tests/lti_test.py +++ b/control/tests/lti_test.py @@ -117,7 +117,18 @@ def test_bandwidth(self): np.testing.assert_allclose(sys2.bandwidth(), 0.101848388240241) np.testing.assert_allclose(bandwidth(sys2), 0.101848388240241) - # test if raise exception given other than SISO system + # test constant gain, bandwidth should be infinity + sysAP = tf(1,1) + np.testing.assert_allclose(bandwidth(sysAP), np.inf) + + # test integrator, bandwidth should return np.nan + sysInt = tf(1, [1, 0]) + np.testing.assert_allclose(bandwidth(sysInt), np.nan) + + # test exception for system other than LTI + np.testing.assert_raises(TypeError, bandwidth, 1) + + # test exception for system other than SISO system sysMIMO = tf([[[-1, 41], [1]], [[1, 2], [3, 4]]], [[[1, 10], [1, 20]], [[1, 30], [1, 40]]]) np.testing.assert_raises(TypeError, bandwidth, sysMIMO) From 9f86b41c21e9d81b93921892f875d5940e9da4c8 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Mon, 1 May 2023 00:09:45 -0400 Subject: [PATCH 0256/1025] adjust for PEP8 coding style --- control/lti.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/control/lti.py b/control/lti.py index ee3f57f5e..2cf54cac2 100644 --- a/control/lti.py +++ b/control/lti.py @@ -211,12 +211,13 @@ def _bandwidth(self, dbdrop=-3): # check if system is SISO and dbdrop is a negative scalar if not self.issiso(): raise TypeError("system should be a SISO system") - - if not(np.isscalar(dbdrop)) or dbdrop >= 0: + + if (not np.isscalar(dbdrop)) or dbdrop >= 0: raise ValueError("expecting dbdrop be a negative scalar in dB") dcgain = self.dcgain() if np.isinf(dcgain): + # infinite dcgain, return np.nan return np.nan # use frequency range to identify the 0-crossing (dbdrop) bracket @@ -226,14 +227,16 @@ def _bandwidth(self, dbdrop=-3): idx_dropped = np.nonzero(mag - dcgain*10**(dbdrop/20) < 0)[0] if idx_dropped.shape[0] == 0: - # no frequency response is dbdrop below the dc gain. + # no frequency response is dbdrop below the dc gain, return np.inf return np.inf else: - # solve for the bandwidth, use scipy.optimize.root_scalar() to solve using bisection + # solve for the bandwidth, use scipy.optimize.root_scalar() to + # solve using bisection import scipy - result = scipy.optimize.root_scalar(lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), - bracket=[omega[idx_dropped[0] - 1], omega[idx_dropped[0]]], - method='bisect') + result = scipy.optimize.root_scalar( + lambda w: np.abs(self(w*1j)) - np.abs(dcgain)*10**(dbdrop/20), + bracket=[omega[idx_dropped[0] - 1], omega[idx_dropped[0]]], + method='bisect') # check solution if result.converged: @@ -552,8 +555,9 @@ def bandwidth(sys, dbdrop=-3): Returns ------- bandwidth : ndarray - The first frequency (rad/time-unit) where the gain drops below dbdrop of the dc gain - of the system, or nan if the system has infinite dc gain, inf if the gain does not drop for all frequency + The first frequency (rad/time-unit) where the gain drops below dbdrop + of the dc gain of the system, or nan if the system has infinite dc + gain, inf if the gain does not drop for all frequency Raises ------ @@ -561,7 +565,7 @@ def bandwidth(sys, dbdrop=-3): if 'sys' is not an SISO LTI instance ValueError if 'dbdrop' is not a negative scalar - + Example ------- >>> G = ct.tf([1], [1, 1]) From a370cdb65e7038cae6ffe88f881dba00ff87b7d9 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Wed, 3 May 2023 23:28:59 -0400 Subject: [PATCH 0257/1025] remove _bandwidth method in lti.py --- control/lti.py | 5 ----- control/statesp.py | 4 ---- control/xferfcn.py | 4 ---- 3 files changed, 13 deletions(-) diff --git a/control/lti.py b/control/lti.py index 2cf54cac2..ec552e9ae 100644 --- a/control/lti.py +++ b/control/lti.py @@ -203,11 +203,6 @@ def _dcgain(self, warn_infinite): return zeroresp def bandwidth(self, dbdrop=-3): - """Return the bandwidth""" - raise NotImplementedError("bandwidth not implemented for %s objects" % - str(self.__class__)) - - def _bandwidth(self, dbdrop=-3): # check if system is SISO and dbdrop is a negative scalar if not self.issiso(): raise TypeError("system should be a SISO system") diff --git a/control/statesp.py b/control/statesp.py index 0a72f487c..41f92ae21 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1424,10 +1424,6 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) - def bandwidth(self, dbdrop=-3): - """Return the bandwith""" - return self._bandwidth(dbdrop) - def dynamics(self, t, x, u=None, params=None): """Compute the dynamics of the system diff --git a/control/xferfcn.py b/control/xferfcn.py index cfc9c9a5e..96be243df 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1247,10 +1247,6 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) - def bandwidth(self, dbdrop=-3): - """Return the bandwith""" - return self._bandwidth(dbdrop) - def _isstatic(self): """returns True if and only if all of the numerator and denominator polynomials of the (possibly MIMO) transfer function are zeroth order, From 02172b7a2238adc0b4c49bfefdfb475368984d7e Mon Sep 17 00:00:00 2001 From: ShihChi Date: Sun, 7 May 2023 19:27:23 -0400 Subject: [PATCH 0258/1025] resolving format issues in xfrefcn.py --- control/xferfcn.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 96be243df..a6a00c5d7 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -74,6 +74,7 @@ 'xferfcn.floating_point_format': '.4g' } + def _float2str(value): _num_format = config.defaults.get('xferfcn.floating_point_format', ':.4g') return f"{value:{_num_format}}" @@ -1246,7 +1247,7 @@ def dcgain(self, warn_infinite=False): """ return self._dcgain(warn_infinite) - + def _isstatic(self): """returns True if and only if all of the numerator and denominator polynomials of the (possibly MIMO) transfer function are zeroth order, @@ -1407,6 +1408,7 @@ def _tf_factorized_polynomial_to_string(roots, gain=1, var='s'): return multiplier + " ".join(factors) + def _tf_string_to_latex(thestr, var='s'): """ make sure to superscript all digits in a polynomial string and convert float coefficients in scientific notation From ab685623a40853d66d2ac617545307e75ef50a80 Mon Sep 17 00:00:00 2001 From: ShihChi Date: Sun, 7 May 2023 20:29:30 -0400 Subject: [PATCH 0259/1025] add docstring to lti.bandwidth --- control/lti.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/control/lti.py b/control/lti.py index ec552e9ae..216332e91 100644 --- a/control/lti.py +++ b/control/lti.py @@ -203,6 +203,31 @@ def _dcgain(self, warn_infinite): return zeroresp def bandwidth(self, dbdrop=-3): + """Evaluate the bandwidth of the LTI system for a given dB drop. + + Evaluate the first frequency that the response magnitude is lower than + DC gain by dbdrop dB. + + Parameters + ---------- + dpdrop : float, optional + A strictly negative scalar in dB (default = -3) defines the + amount of gain drop for deciding bandwidth. + + Returns + ------- + bandwidth : ndarray + The first frequency (rad/time-unit) where the gain drops below + dbdrop of the dc gain of the system, or nan if the system has + infinite dc gain, inf if the gain does not drop for all frequency + + Raises + ------ + TypeError + if 'sys' is not an SISO LTI instance + ValueError + if 'dbdrop' is not a negative scalar + """ # check if system is SISO and dbdrop is a negative scalar if not self.issiso(): raise TypeError("system should be a SISO system") From 47cbe7260301771d67b0db57d1030fe6184c2b93 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 22 May 2023 14:37:29 -0700 Subject: [PATCH 0260/1025] fix damp command natural frequency printout for discrete poles on real axis; docstring fixes --- control/lti.py | 62 +++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 36 deletions(-) diff --git a/control/lti.py b/control/lti.py index 216332e91..eae80031c 100644 --- a/control/lti.py +++ b/control/lti.py @@ -2,22 +2,14 @@ The lti module contains the LTI parent class to the child classes StateSpace and TransferFunction. It is designed for use in the python-control library. - -Routines in this module: - -LTI.__init__ -isdtime() -isctime() -timebase() -common_timebase() """ import numpy as np -from numpy import absolute, real, angle, abs +from numpy import real, angle, abs from warnings import warn from . import config -from .namedio import NamedIOSystem, isdtime +from .namedio import NamedIOSystem __all__ = ['poles', 'zeros', 'damp', 'evalfr', 'frequency_response', 'freqresp', 'dcgain', 'bandwidth', 'pole', 'zero'] @@ -110,11 +102,11 @@ def damp(self): Returns ------- wn : array - Natural frequencies for each system pole + Natural frequency for each system pole zeta : array Damping ratio for each system pole poles : array - Array of system poles + System pole locations ''' poles = self.poles() @@ -122,9 +114,9 @@ def damp(self): splane_poles = np.log(poles.astype(complex))/self.dt else: splane_poles = poles - wn = absolute(splane_poles) - Z = -real(splane_poles)/wn - return wn, Z, poles + wn = abs(splane_poles) + zeta = -real(splane_poles)/wn + return wn, zeta, poles def frequency_response(self, omega, squeeze=None): """Evaluate the linear time-invariant system at an array of angular @@ -346,25 +338,23 @@ def zero(sys): def damp(sys, doprint=True): """ - Compute natural frequency, damping ratio, and poles of a system - - The function takes 1 or 2 parameters + Compute natural frequencies, damping ratios, and poles of a system Parameters ---------- sys: LTI (StateSpace or TransferFunction) A linear system object doprint: - if true, print table with values + if True, print table with values Returns ------- - wn: array - Natural frequencies of the poles - damping: array - Damping values - poles: array - Pole locations + wn : array + Natural frequency for each system pole + zeta : array + Damping ratio for each system pole + poles : array + System pole locations See Also -------- @@ -374,37 +364,37 @@ def damp(sys, doprint=True): ----- If the system is continuous, wn = abs(poles) - Z = -real(poles)/poles. + zeta = -real(poles)/poles If the system is discrete, the discrete poles are mapped to their equivalent location in the s-plane via - s = log10(poles)/dt + s = log(poles)/dt and wn = abs(s) - Z = -real(s)/wn. + zeta = -real(s)/wn. Examples -------- >>> G = ct.tf([1], [1, 4]) - >>> wn, damping, poles = ct.damp(G) - _____Eigenvalue______ Damping___ Frequency_ + >>> wn, zeta, poles = ct.damp(G) + Eigenvalue (pole)___ Damping___ Frequency_ -4 1 4 """ - wn, damping, poles = sys.damp() + wn, zeta, poles = sys.damp() if doprint: - print('_____Eigenvalue______ Damping___ Frequency_') - for p, d, w in zip(poles, damping, wn): + print('Eigenvalue (pole)___ Damping___ Frequency_') + for p, z, w in zip(poles, zeta, wn): if abs(p.imag) < 1e-12: print("%10.4g %10.4g %10.4g" % - (p.real, 1.0, -p.real)) + (p.real, 1.0, w)) else: print("%10.4g%+10.4gj %10.4g %10.4g" % - (p.real, p.imag, d, w)) - return wn, damping, poles + (p.real, p.imag, z, w)) + return wn, zeta, poles def evalfr(sys, x, squeeze=None): From cec6b5c64ea34b149011763f025df373cc16a1a6 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 22 May 2023 14:40:58 -0700 Subject: [PATCH 0261/1025] docstring make explicit that doprint is optional --- control/lti.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/lti.py b/control/lti.py index eae80031c..39ea768ab 100644 --- a/control/lti.py +++ b/control/lti.py @@ -342,9 +342,9 @@ def damp(sys, doprint=True): Parameters ---------- - sys: LTI (StateSpace or TransferFunction) + sys : LTI (StateSpace or TransferFunction) A linear system object - doprint: + doprint : bool (optional) if True, print table with values Returns From 6cfd4667aee6b6f834a3afc540e163ebef719018 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 22 May 2023 21:56:56 -0700 Subject: [PATCH 0262/1025] output more readable --- control/lti.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/control/lti.py b/control/lti.py index 39ea768ab..c904c1509 100644 --- a/control/lti.py +++ b/control/lti.py @@ -380,19 +380,19 @@ def damp(sys, doprint=True): -------- >>> G = ct.tf([1], [1, 4]) >>> wn, zeta, poles = ct.damp(G) - Eigenvalue (pole)___ Damping___ Frequency_ - -4 1 4 + Eigenvalue (pole) Damping Frequency + -4 1 4 """ wn, zeta, poles = sys.damp() if doprint: - print('Eigenvalue (pole)___ Damping___ Frequency_') + print(' Eigenvalue (pole) Damping Frequency') for p, z, w in zip(poles, zeta, wn): if abs(p.imag) < 1e-12: - print("%10.4g %10.4g %10.4g" % + print(" %10.4g %10.4g %10.4g" % (p.real, 1.0, w)) else: - print("%10.4g%+10.4gj %10.4g %10.4g" % + print("%10.4g%+10.4gj %10.4g %10.4g" % (p.real, p.imag, z, w)) return wn, zeta, poles From 58e43f18e1fa7d6fcb69d5d8cdce05de2fde042e Mon Sep 17 00:00:00 2001 From: James Forbes Date: Tue, 23 May 2023 11:20:49 -0400 Subject: [PATCH 0263/1025] Add H2 and Hinf exmaples --- doc/scherer_etal_ex7_H2_h2syn.py | 1 + doc/scherer_etal_ex7_H2_h2syn.rst | 15 ++++ doc/scherer_etal_ex7_Hinf_hinfsyn.rst | 15 ++++ ...l_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py | 1 + examples/scherer_etal_ex7_H2_h2syn.py | 84 +++++++++++++++++++ examples/scherer_etal_ex7_Hinf_hinfsyn.py | 57 +++++++++++++ 6 files changed, 173 insertions(+) create mode 120000 doc/scherer_etal_ex7_H2_h2syn.py create mode 100644 doc/scherer_etal_ex7_H2_h2syn.rst create mode 100644 doc/scherer_etal_ex7_Hinf_hinfsyn.rst create mode 120000 doc/scherer_etal_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py create mode 100644 examples/scherer_etal_ex7_H2_h2syn.py create mode 100644 examples/scherer_etal_ex7_Hinf_hinfsyn.py diff --git a/doc/scherer_etal_ex7_H2_h2syn.py b/doc/scherer_etal_ex7_H2_h2syn.py new file mode 120000 index 000000000..527f80144 --- /dev/null +++ b/doc/scherer_etal_ex7_H2_h2syn.py @@ -0,0 +1 @@ +../examples/scherer_etal_ex7_H2_h2syn.py \ No newline at end of file diff --git a/doc/scherer_etal_ex7_H2_h2syn.rst b/doc/scherer_etal_ex7_H2_h2syn.rst new file mode 100644 index 000000000..7d9eea728 --- /dev/null +++ b/doc/scherer_etal_ex7_H2_h2syn.rst @@ -0,0 +1,15 @@ +H2 synthesis, based on cherer et al. 1997 example 7 +--------------------------------------------------- + +Code +.... +.. literalinclude:: scherer_etal_ex7_H2_h2syn.py + :language: python + :linenos: + + +Notes +..... + +1. The environment variable `PYCONTROL_TEST_EXAMPLES` is used for +testing to turn off plotting of the outputs. diff --git a/doc/scherer_etal_ex7_Hinf_hinfsyn.rst b/doc/scherer_etal_ex7_Hinf_hinfsyn.rst new file mode 100644 index 000000000..1a2294535 --- /dev/null +++ b/doc/scherer_etal_ex7_Hinf_hinfsyn.rst @@ -0,0 +1,15 @@ +Hinf synthesis, based on Scherer et al. 1997 example 7 +------------------------------------------------------ + +Code +.... +.. literalinclude:: scherer_etal_ex7_Hinf_hinfsyn.py + :language: python + :linenos: + + +Notes +..... + +1. The environment variable `PYCONTROL_TEST_EXAMPLES` is used for +testing to turn off plotting of the outputs. diff --git a/doc/scherer_etal_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py b/doc/scherer_etal_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py new file mode 120000 index 000000000..7755a325f --- /dev/null +++ b/doc/scherer_etal_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py @@ -0,0 +1 @@ +../examples/scherer_etal_ex7_Hinf_hinfsyn.py \ No newline at end of file diff --git a/examples/scherer_etal_ex7_H2_h2syn.py b/examples/scherer_etal_ex7_H2_h2syn.py new file mode 100644 index 000000000..0b47dd8a1 --- /dev/null +++ b/examples/scherer_etal_ex7_H2_h2syn.py @@ -0,0 +1,84 @@ +"""H2 design using h2syn. + +Demonstrate H2 desing for a SISO plant using h2syn. Based on [1], Ex. 7. + +[1] Scherer, Gahinet, & Chilali, "Multiobjective Output-Feedback Control via +LMI Optimization", IEEE Trans. Automatic Control, Vol. 42, No. 7, July 1997. + +[2] Zhou & Doyle, "Essentials of Robust Control", Prentice Hall, +Upper Saddle River, NJ, 1998. +""" +# %% +# Packages +import numpy as np +import control + +# %% +# State-space system. + +# Process model. +A = np.array([[0, 10, 2], + [-1, 1, 0], + [0, 2, -5]]) +B1 = np.array([[1], + [0], + [1]]) +B2 = np.array([[0], + [1], + [0]]) + +# Plant output. +C2 = np.array([[0, 1, 0]]) +D21 = np.array([[2]]) +D22 = np.array([[0]]) + +# H2 performance. +C1 = np.array([[0, 1, 0], + [0, 0, 1], + [0, 0, 0]]) +D11 = np.array([[0], + [0], + [0]]) +D12 = np.array([[0], + [0], + [1]]) + +# Dimensions. +n_u, n_y = 1, 1 + +# %% +# H2 design using h2syn. + +# Create augmented plant. +Baug = np.block([B1, B2]) +Caug = np.block([[C1], [C2]]) +Daug = np.block([[D11, D12], [D21, D22]]) +Paug = control.ss(A, Baug, Caug, Daug) + +# Input to h2syn is Paug, number of inputs to controller, +# and number of outputs from the controller. +K = control.h2syn(Paug, n_y, n_u) + +# Extarct controller ss realization. +A_K, B_K, C_K, D_K = K.A, K.B, K.C, K.D + +# %% +# Compute closed-loop H2 norm. + +# Compute closed-loop system, Tzw(s). See Eq. 4 in [1]. +Azw = np.block([[A + B2 @ D_K @ C2, B2 @ C_K], + [B_K @ C2, A_K]]) +Bzw = np.block([[B1 + B2 @ D_K @ D21], + [B_K @ D21]]) +Czw = np.block([C1 + D12 @ D_K @ C2, D12 @ C_K]) +Dzw = D11 + D12 @ D_K @ D21 +Tzw = control.ss(Azw, Bzw, Czw, Dzw) + +# Compute closed-loop H2 norm via Lyapunov equation. +# See [2], Lemma 4.4, pg 53. +Qzw = control.lyap(Azw.T, Czw.T @ Czw) +nu = np.sqrt(np.trace(Bzw.T @ Qzw @ Bzw)) +print(f'The closed-loop H_2 norm of Tzw(s) is {nu}.') +# Value is 7.748350599360575, the same as reported in [1]. + +# %% diff --git a/examples/scherer_etal_ex7_Hinf_hinfsyn.py b/examples/scherer_etal_ex7_Hinf_hinfsyn.py new file mode 100644 index 000000000..973181154 --- /dev/null +++ b/examples/scherer_etal_ex7_Hinf_hinfsyn.py @@ -0,0 +1,57 @@ +"""Hinf design using hinfsyn. + +Demonstrate Hinf desing for a SISO plant using h2syn. Based on [1], Ex. 7. + +[1] Scherer, Gahinet, & Chilali, "Multiobjective Output-Feedback Control via +LMI Optimization", IEEE Trans. Automatic Control, Vol. 42, No. 7, July 1997. +""" +# %% +# Packages +import numpy as np +import control + +# %% +# State-space system. + +# Process model. +A = np.array([[0, 10, 2], + [-1, 1, 0], + [0, 2, -5]]) +B1 = np.array([[1], + [0], + [1]]) +B2 = np.array([[0], + [1], + [0]]) + +# Plant output. +C2 = np.array([[0, 1, 0]]) +D21 = np.array([[2]]) +D22 = np.array([[0]]) + +# Hinf performance. +C1 = np.array([[1, 0, 0], + [0, 0, 0]]) +D11 = np.array([[0], + [0]]) +D12 = np.array([[0], + [1]]) + +# Dimensions. +n_x, n_u, n_y = 3, 1, 1 + +# %% +# Hinf design using hinfsyn. + +# Create augmented plant. +Baug = np.block([B1, B2]) +Caug = np.block([[C1], [C2]]) +Daug = np.block([[D11, D12], [D21, D22]]) +Paug = control.ss(A, Baug, Caug, Daug) + +# Input to hinfsyn is Paug, number of inputs to controller, +# and number of outputs from the controller. +K, Tzw, gamma, rcond = control.hinfsyn(Paug, n_y, n_u) +print(f'The closed-loop H_inf norm of Tzw(s) is {gamma}.') + +# %% From 093670a85ed1ff7c656b1143b64d7788ca009826 Mon Sep 17 00:00:00 2001 From: James Forbes Date: Tue, 23 May 2023 11:29:50 -0400 Subject: [PATCH 0264/1025] Add H2 and Hinf examples to example.rst --- doc/examples.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/examples.rst b/doc/examples.rst index 02330f903..505bcf7a3 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -27,6 +27,8 @@ other sources. phaseplots robust_siso robust_mimo + scherer_etal_ex7_H2_h2syn + scherer_etal_ex7_Hinf_hinfsyn cruise-control steering-gainsched steering-optimal From 981411c58fa2459da11902e2f36569d0f566ff69 Mon Sep 17 00:00:00 2001 From: James Forbes Date: Tue, 23 May 2023 11:35:02 -0400 Subject: [PATCH 0265/1025] Fix filename in Hinf syn link --- ..._etal_ex7_Hinf_hinfsyn.py => scherer_etal_ex7_Hinf_hinfsyn.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/{scherer_etal_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py => scherer_etal_ex7_Hinf_hinfsyn.py} (100%) diff --git a/doc/scherer_etal_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py b/doc/scherer_etal_ex7_Hinf_hinfsyn.py similarity index 100% rename from doc/scherer_etal_ex7_Hinfscherer_etal_ex7_Hinf_hinfsyn.py rename to doc/scherer_etal_ex7_Hinf_hinfsyn.py From 1921f419661e648c31697da3a4cec28340c4a8e6 Mon Sep 17 00:00:00 2001 From: James Forbes Date: Tue, 23 May 2023 11:38:35 -0400 Subject: [PATCH 0266/1025] Fix spelling mistake in header of H2 example --- doc/scherer_etal_ex7_H2_h2syn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/scherer_etal_ex7_H2_h2syn.rst b/doc/scherer_etal_ex7_H2_h2syn.rst index 7d9eea728..ab1ff65f1 100644 --- a/doc/scherer_etal_ex7_H2_h2syn.rst +++ b/doc/scherer_etal_ex7_H2_h2syn.rst @@ -1,4 +1,4 @@ -H2 synthesis, based on cherer et al. 1997 example 7 +H2 synthesis, based on Scherer et al. 1997 example 7 --------------------------------------------------- Code From ecc9116a4e77191b086cd4e4ad12c840a5232e79 Mon Sep 17 00:00:00 2001 From: James Forbes Date: Tue, 23 May 2023 11:44:15 -0400 Subject: [PATCH 0267/1025] Fix underline errore in header of H2 rst file --- doc/scherer_etal_ex7_H2_h2syn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/scherer_etal_ex7_H2_h2syn.rst b/doc/scherer_etal_ex7_H2_h2syn.rst index ab1ff65f1..ef386be61 100644 --- a/doc/scherer_etal_ex7_H2_h2syn.rst +++ b/doc/scherer_etal_ex7_H2_h2syn.rst @@ -1,5 +1,5 @@ H2 synthesis, based on Scherer et al. 1997 example 7 ---------------------------------------------------- +---------------------------------------------------- Code .... From 34a7a4924fd2bf91b17d724c3d7d0b4a4b3a6178 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Ant=C3=B4nio=20Cardoso?= Date: Thu, 25 May 2023 20:38:24 -0300 Subject: [PATCH 0268/1025] Add missing labels when returning TimeResponseData --- control/timeresp.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/control/timeresp.py b/control/timeresp.py index 638a07329..3ce4318b2 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1111,6 +1111,8 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, return TimeResponseData( tout, yout, xout, U, issiso=sys.issiso(), + output_labels=sys.output_labels, input_labels=sys.input_labels, + state_labels=sys.state_labels, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1374,8 +1376,16 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, # Figure out if the system is SISO or not issiso = sys.issiso() or (input is not None and output is not None) + # Select only the given input and output, if any + input_labels = sys.input_labels if input is None \ + else sys.input_labels[input] + output_labels = sys.output_labels if output is None \ + else sys.output_labels[output] + return TimeResponseData( response.time, yout, xout, uout, issiso=issiso, + output_labels=output_labels, input_labels=input_labels, + state_labels=sys.state_labels, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1704,9 +1714,15 @@ def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None, # Figure out if the system is SISO or not issiso = sys.issiso() or (input is not None and output is not None) + # Select only the given output, if any + output_labels = sys.output_labels if output is None \ + else sys.output_labels[0] + # Store the response without an input return TimeResponseData( response.t, response.y, response.x, None, issiso=issiso, + output_labels=output_labels, input_labels=None, + state_labels=sys.state_labels, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1798,7 +1814,7 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, ----- This function uses the `forced_response` function to compute the time response. For continuous time systems, the initial condition is altered to - account for the initial impulse. For discrete-time aystems, the impulse is + account for the initial impulse. For discrete-time aystems, the impulse is sized so that it has unit area. Examples @@ -1869,8 +1885,16 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, # Figure out if the system is SISO or not issiso = sys.issiso() or (input is not None and output is not None) + # Select only the given input and output, if any + input_labels = sys.input_labels if input is None \ + else sys.input_labels[input] + output_labels = sys.output_labels if output is None \ + else sys.output_labels[output] + return TimeResponseData( response.time, yout, xout, uout, issiso=issiso, + output_labels=output_labels, input_labels=input_labels, + state_labels=sys.state_labels, transpose=transpose, return_x=return_x, squeeze=squeeze) From a78e85c3345154384f09ef7fd3cbd462caa92b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Ant=C3=B4nio=20Cardoso?= Date: Sat, 20 May 2023 16:26:40 -0300 Subject: [PATCH 0269/1025] Test if labels are transferred to the response and we can still relabel them --- control/tests/trdata_test.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/control/tests/trdata_test.py b/control/tests/trdata_test.py index 734d35599..028e53580 100644 --- a/control/tests/trdata_test.py +++ b/control/tests/trdata_test.py @@ -196,15 +196,20 @@ def test_response_copy(): with pytest.raises(ValueError, match="not enough"): t, y, x = response_mimo - # Labels - assert response_mimo.output_labels is None - assert response_mimo.state_labels is None - assert response_mimo.input_labels is None + # Make sure labels are transferred to the response + assert response_siso.output_labels == sys_siso.output_labels + assert response_siso.state_labels == sys_siso.state_labels + assert response_siso.input_labels == sys_siso.input_labels + assert response_mimo.output_labels == sys_mimo.output_labels + assert response_mimo.state_labels == sys_mimo.state_labels + assert response_mimo.input_labels == sys_mimo.input_labels + + # Check relabelling response = response_mimo( output_labels=['y1', 'y2'], input_labels='u', - state_labels=["x[%d]" % i for i in range(4)]) + state_labels=["x%d" % i for i in range(4)]) assert response.output_labels == ['y1', 'y2'] - assert response.state_labels == ['x[0]', 'x[1]', 'x[2]', 'x[3]'] + assert response.state_labels == ['x0', 'x1', 'x2', 'x3'] assert response.input_labels == ['u'] # Unknown keyword @@ -231,6 +236,17 @@ def test_trdata_labels(): np.testing.assert_equal( response.input_labels, ["u[%d]" % i for i in range(sys.ninputs)]) + # Make sure the selected input and output are both correctly transferred to the response + for nu in range(sys.ninputs): + for ny in range(sys.noutputs): + step_response = ct.step_response(sys, T, input=nu, output=ny) + assert step_response.input_labels == [sys.input_labels[nu]] + assert step_response.output_labels == [sys.output_labels[ny]] + + init_response = ct.initial_response(sys, T, input=nu, output=ny) + assert init_response.input_labels == None + assert init_response.output_labels == [sys.output_labels[ny]] + def test_trdata_multitrace(): # From 56c72c7d34093df9deb143143e0e3f33882e9922 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 27 May 2023 09:59:32 -0700 Subject: [PATCH 0270/1025] use *_labels in input_output_response for consistency --- control/iosys.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 78444f7c1..dca00d3e5 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1862,7 +1862,7 @@ def ufun(t): return TimeResponseData( t_eval, y, None, u, issiso=sys.issiso(), - output_labels=sys.output_index, input_labels=sys.input_index, + output_labels=sys.output_labels, input_labels=sys.input_labels, transpose=transpose, return_x=return_x, squeeze=squeeze) # Create a lambda function for the right hand side @@ -1941,8 +1941,8 @@ def ivp_rhs(t, x): return TimeResponseData( soln.t, y, soln.y, u, issiso=sys.issiso(), - output_labels=sys.output_index, input_labels=sys.input_index, - state_labels=sys.state_index, + output_labels=sys.output_labels, input_labels=sys.input_labels, + state_labels=sys.state_labels, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -2881,7 +2881,7 @@ def interconnect( # Look for the signal name as a system input for sys in syslist: - if signal_name in sys.input_index.keys(): + if signal_name in sys.input_labels: connection.append(sign + sys.name + "." + signal_name) # Make sure we found the name From d744a5423901f2fefb3544adac41847388d9778d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Ant=C3=B4nio=20Cardoso?= Date: Sat, 27 May 2023 14:32:04 -0300 Subject: [PATCH 0271/1025] Propagate labels and names when converting between mimo/siso/simo --- control/statesp.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 41f92ae21..8661d8741 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1777,7 +1777,9 @@ def _mimo2siso(sys, input, output, warn_conversion=False): new_B = sys.B[:, input] new_C = sys.C[output, :] new_D = sys.D[output, input] - sys = StateSpace(sys.A, new_B, new_C, new_D, sys.dt) + sys = StateSpace(sys.A, new_B, new_C, new_D, sys.dt, + name=sys.name, + inputs=sys.input_labels[input], outputs=sys.output_labels[output]) return sys @@ -1826,7 +1828,9 @@ def _mimo2simo(sys, input, warn_conversion=False): # Y = C*X + D*U new_B = sys.B[:, input:input+1] new_D = sys.D[:, input:input+1] - sys = StateSpace(sys.A, new_B, sys.C, new_D, sys.dt) + sys = StateSpace(sys.A, new_B, sys.C, new_D, sys.dt, + name=sys.name, + inputs=sys.input_labels[input], outputs=sys.output_labels) return sys From bd83e8c9060f69d9e87afd861dda4b4bf3223bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Ant=C3=B4nio=20Cardoso?= Date: Sat, 27 May 2023 15:36:04 -0300 Subject: [PATCH 0272/1025] Fix _process_labels to accept a single str label --- control/timeresp.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/control/timeresp.py b/control/timeresp.py index 3ce4318b2..bd8595cfe 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -694,7 +694,10 @@ def _process_labels(labels, signal, length): raise ValueError("Name dictionary for %s is incomplete" % signal) # Convert labels to a list - labels = list(labels) + if isinstance(labels, str): + labels = [labels] + else: + labels = list(labels) # Make sure the signal list is the right length and type if len(labels) != length: From 29c9432b198a17dc62dc8f793ed17dfc3245a2ca Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 2 Jun 2023 10:59:45 -0700 Subject: [PATCH 0273/1025] warn if prewarp-frequency is not used and tests, make c2d an identical copy to sample_system instead of a separate function --- control/dtime.py | 71 +++++++--------------------------- control/statesp.py | 15 ++++--- control/tests/discrete_test.py | 49 ++++++++++++++++------- control/tests/kwargs_test.py | 3 +- control/xferfcn.py | 12 ++++-- 5 files changed, 70 insertions(+), 80 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index 6197ae8af..38fcf8056 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -72,22 +72,12 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, otherwise. See :func:`scipy.signal.cont2discrete`. prewarp_frequency : float within [0, infinity) The frequency [rad/s] at which to match with the input continuous- - time system's magnitude and phase (only valid for method='bilinear') - name : string, optional - Set the name of the sampled system. If not specified and - if `copy_names` is `False`, a generic name is generated - with a unique integer id. If `copy_names` is `True`, the new system - name is determined by adding the prefix and suffix strings in - config.defaults['namedio.sampled_system_name_prefix'] and - config.defaults['namedio.sampled_system_name_suffix'], with the - default being to add the suffix '$sampled'. - copy_names : bool, Optional - If True, copy the names of the input signals, output - signals, and states to the sampled system. + time system's magnitude and phase (only valid for method='bilinear', + 'tustin', or 'gbt' with alpha=0.5) Returns ------- - sysd : linsys + sysd : LTI of the same class (:class:`StateSpace` or :class:`TransferFunction`) Discrete time system, with sampling rate Ts Other Parameters @@ -101,6 +91,17 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, states : int, list of str, or None, optional Description of the system states. Same format as `inputs`. Only available if the system is :class:`StateSpace`. + name : string, optional + Set the name of the sampled system. If not specified and + if `copy_names` is `False`, a generic name is generated + with a unique integer id. If `copy_names` is `True`, the new system + name is determined by adding the prefix and suffix strings in + config.defaults['namedio.sampled_system_name_prefix'] and + config.defaults['namedio.sampled_system_name_suffix'], with the + default being to add the suffix '$sampled'. + copy_names : bool, Optional + If True, copy the names of the input signals, output + signals, and states to the sampled system. Notes ----- @@ -126,46 +127,4 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, method=method, alpha=alpha, prewarp_frequency=prewarp_frequency, name=name, copy_names=copy_names, **kwargs) - -def c2d(sysc, Ts, method='zoh', prewarp_frequency=None): - """ - Convert a continuous time system to discrete time by sampling - - Parameters - ---------- - sysc : LTI (:class:`StateSpace` or :class:`TransferFunction`) - Continuous time system to be converted - Ts : float > 0 - Sampling period - method : string - Method to use for conversion, e.g. 'bilinear', 'zoh' (default) - prewarp_frequency : real within [0, infinity) - The frequency [rad/s] at which to match with the input continuous- - time system's magnitude and phase (only valid for method='bilinear') - - Returns - ------- - sysd : LTI of the same class - Discrete time system, with sampling rate Ts - - Notes - ----- - See :meth:`StateSpace.sample` or :meth:`TransferFunction.sample`` for - further details. - - Examples - -------- - >>> Gc = ct.tf([1], [1, 2, 1]) - >>> Gc.isdtime() - False - >>> Gd = ct.sample_system(Gc, 1, method='bilinear') - >>> Gd.isdtime() - True - - """ - - # Call the sample_system() function to do the work - sysd = sample_system(sysc, Ts, - method=method, prewarp_frequency=prewarp_frequency) - - return sysd +c2d = sample_system \ No newline at end of file diff --git a/control/statesp.py b/control/statesp.py index 41f92ae21..4f80bdb2f 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -170,9 +170,9 @@ class StateSpace(LTI): The StateSpace class is used to represent state-space realizations of linear time-invariant (LTI) systems: - + .. math:: - + dx/dt &= A x + B u \\ y &= C x + D u @@ -1368,10 +1368,13 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, """ if not self.isctime(): raise ValueError("System must be continuous time system") - - if (method == 'bilinear' or (method == 'gbt' and alpha == 0.5)) and \ - prewarp_frequency is not None: - Twarp = 2 * np.tan(prewarp_frequency * Ts/2)/prewarp_frequency + if prewarp_frequency is not None: + if method in ('bilinear', 'tustin') or \ + (method == 'gbt' and alpha == 0.5): + Twarp = 2*np.tan(prewarp_frequency*Ts/2)/prewarp_frequency + else: + warn('prewarp_frequency ignored: incompatible conversion') + Twarp = Ts else: Twarp = Ts sys = (self.A, self.B, self.C, self.D) diff --git a/control/tests/discrete_test.py b/control/tests/discrete_test.py index 4cf28a21b..4415fac0c 100644 --- a/control/tests/discrete_test.py +++ b/control/tests/discrete_test.py @@ -376,28 +376,51 @@ def test_sample_system(self, tsys): @pytest.mark.parametrize("plantname", ["siso_ss1c", "siso_tf1c"]) - def test_sample_system_prewarp(self, tsys, plantname): + @pytest.mark.parametrize("wwarp", + [.1, 1, 3]) + @pytest.mark.parametrize("Ts", + [.1, 1]) + @pytest.mark.parametrize("discretization_type", + ['bilinear', 'tustin', 'gbt']) + def test_sample_system_prewarp(self, tsys, plantname, discretization_type, wwarp, Ts): """bilinear approximation with prewarping test""" - wwarp = 50 - Ts = 0.025 # test state space version plant = getattr(tsys, plantname) plant_fr = plant(wwarp * 1j) + alpha = 0.5 if discretization_type == 'gbt' else None - plant_d_warped = plant.sample(Ts, 'bilinear', prewarp_frequency=wwarp) + plant_d_warped = plant.sample(Ts, discretization_type, + prewarp_frequency=wwarp, alpha=alpha) dt = plant_d_warped.dt plant_d_fr = plant_d_warped(np.exp(wwarp * 1.j * dt)) np.testing.assert_array_almost_equal(plant_fr, plant_d_fr) - plant_d_warped = sample_system(plant, Ts, 'bilinear', - prewarp_frequency=wwarp) + plant_d_warped = sample_system(plant, Ts, discretization_type, + prewarp_frequency=wwarp, alpha=alpha) plant_d_fr = plant_d_warped(np.exp(wwarp * 1.j * dt)) np.testing.assert_array_almost_equal(plant_fr, plant_d_fr) - plant_d_warped = c2d(plant, Ts, 'bilinear', prewarp_frequency=wwarp) + plant_d_warped = c2d(plant, Ts, discretization_type, + prewarp_frequency=wwarp, alpha=alpha) plant_d_fr = plant_d_warped(np.exp(wwarp * 1.j * dt)) np.testing.assert_array_almost_equal(plant_fr, plant_d_fr) + @pytest.mark.parametrize("plantname", + ["siso_ss1c", + "siso_tf1c"]) + @pytest.mark.parametrize("discretization_type", + ['euler', 'backward_diff', 'zoh']) + def test_sample_system_prewarp_warning(self, tsys, plantname, discretization_type): + plant = getattr(tsys, plantname) + wwarp = 1 + Ts = 0.1 + with pytest.warns(UserWarning, match="prewarp_frequency ignored: incompatible conversion"): + plant_d_warped = plant.sample(Ts, discretization_type, prewarp_frequency=wwarp) + with pytest.warns(UserWarning, match="prewarp_frequency ignored: incompatible conversion"): + plant_d_warped = sample_system(plant, Ts, discretization_type, prewarp_frequency=wwarp) + with pytest.warns(UserWarning, match="prewarp_frequency ignored: incompatible conversion"): + plant_d_warped = c2d(plant, Ts, discretization_type, prewarp_frequency=wwarp) + def test_sample_system_errors(self, tsys): # Check errors with pytest.raises(ValueError): @@ -446,11 +469,11 @@ def test_discrete_bode(self, tsys): np.testing.assert_array_almost_equal(omega, omega_out) np.testing.assert_array_almost_equal(mag_out, np.absolute(H_z)) np.testing.assert_array_almost_equal(phase_out, np.angle(H_z)) - + def test_signal_names(self, tsys): "test that signal names are preserved in conversion to discrete-time" - ssc = StateSpace(tsys.siso_ss1c, - inputs='u', outputs='y', states=['a', 'b', 'c']) + ssc = StateSpace(tsys.siso_ss1c, + inputs='u', outputs='y', states=['a', 'b', 'c']) ssd = ssc.sample(0.1) tfc = TransferFunction(tsys.siso_tf1c, inputs='u', outputs='y') tfd = tfc.sample(0.1) @@ -467,7 +490,7 @@ def test_signal_names(self, tsys): assert ssd.output_labels == ['y'] assert tfd.input_labels == ['u'] assert tfd.output_labels == ['y'] - + # system names and signal name override sysc = StateSpace(1.1, 1, 1, 1, inputs='u', outputs='y', states='a') @@ -488,14 +511,14 @@ def test_signal_names(self, tsys): assert sysd_nocopy.find_state('a') is None # if signal names are provided, they should override those of sysc - sysd_newnames = sample_system(sysc, 0.1, + sysd_newnames = sample_system(sysc, 0.1, inputs='v', outputs='x', states='b') assert sysd_newnames.find_input('v') == 0 assert sysd_newnames.find_input('u') is None assert sysd_newnames.find_output('x') == 0 assert sysd_newnames.find_output('y') is None assert sysd_newnames.find_state('b') == 0 - assert sysd_newnames.find_state('a') is None + assert sysd_newnames.find_state('a') is None # test just one name sysd_newnames = sample_system(sysc, 0.1, inputs='v') assert sysd_newnames.find_input('v') == 0 diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index f94009549..83026391c 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -190,6 +190,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'tf2io' : test_unrecognized_kwargs, 'tf2ss' : test_unrecognized_kwargs, 'sample_system' : test_unrecognized_kwargs, + 'c2d' : test_unrecognized_kwargs, 'zpk': test_unrecognized_kwargs, 'flatsys.point_to_point': flatsys_test.TestFlatSys.test_point_to_point_errors, @@ -210,7 +211,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'NonlinearIOSystem.__init__': interconnect_test.test_interconnect_exceptions, 'StateSpace.__init__': test_unrecognized_kwargs, - 'StateSpace.sample': test_unrecognized_kwargs, + 'StateSpace.sample': test_unrecognized_kwargs, 'TimeResponseData.__call__': trdata_test.test_response_copy, 'TransferFunction.__init__': test_unrecognized_kwargs, 'TransferFunction.sample': test_unrecognized_kwargs, diff --git a/control/xferfcn.py b/control/xferfcn.py index a6a00c5d7..8ef7e1084 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1134,7 +1134,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Method to use for sampling: * gbt: generalized bilinear transformation - * bilinear: Tustin's approximation ("gbt" with alpha=0.5) + * bilinear or tustin: Tustin's approximation ("gbt" with alpha=0.5) * euler: Euler (or forward difference) method ("gbt" with alpha=0) * backward_diff: Backwards difference ("gbt" with alpha=1.0) * zoh: zero-order hold (default) @@ -1192,9 +1192,13 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, if method == "matched": return _c2d_matched(self, Ts) sys = (self.num[0][0], self.den[0][0]) - if (method == 'bilinear' or (method == 'gbt' and alpha == 0.5)) and \ - prewarp_frequency is not None: - Twarp = 2*np.tan(prewarp_frequency*Ts/2)/prewarp_frequency + if prewarp_frequency is not None: + if method in ('bilinear', 'tustin') or \ + (method == 'gbt' and alpha == 0.5): + Twarp = 2*np.tan(prewarp_frequency*Ts/2)/prewarp_frequency + else: + warn('prewarp_frequency ignored: incompatible conversion') + Twarp = Ts else: Twarp = Ts numd, dend, _ = cont2discrete(sys, Twarp, method, alpha) From 0b5e3fa21f6a6adbf6983a338d24cce76789c4bf Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 3 Jun 2023 13:24:42 -0700 Subject: [PATCH 0274/1025] consolidate system name prefix/suffix updates to namedio.sys --- control/iosys.py | 9 ++------- control/namedio.py | 35 +++++++++++++++++++++++++---------- control/statesp.py | 9 ++------- control/xferfcn.py | 9 ++------- 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index dca00d3e5..b558dc174 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -591,13 +591,8 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, DeprecationWarning) if copy_names: - linsys._copy_names(self) - if name is None: - linsys.name = \ - config.defaults['namedio.linearized_system_name_prefix']+\ - linsys.name+\ - config.defaults['namedio.linearized_system_name_suffix'] - else: + linsys._copy_names(self, prefix_suffix_name='linearized') + if name is not None: linsys.name = name # re-init to include desired signal names if names were provided diff --git a/control/namedio.py b/control/namedio.py index 8f61514fe..012187ffb 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -12,6 +12,7 @@ __all__ = ['issiso', 'timebase', 'common_timebase', 'timebaseEqual', 'isdtime', 'isctime'] + # Define module default parameter values _namedio_defaults = { 'namedio.state_name_delim': '_', @@ -20,7 +21,9 @@ 'namedio.linearized_system_name_prefix': '', 'namedio.linearized_system_name_suffix': '$linearized', 'namedio.sampled_system_name_prefix': '', - 'namedio.sampled_system_name_suffix': '$sampled' + 'namedio.sampled_system_name_suffix': '$sampled', + 'namedio.converted_system_name_prefix': '', + 'namedio.converted_system_name_suffix': '$converted', } @@ -49,11 +52,15 @@ def __init__( _idCounter = 0 # Counter for creating generic system name # Return system name - def _name_or_default(self, name=None): + def _name_or_default(self, name=None, prefix_suffix_name=None): if name is None: name = "sys[{}]".format(NamedIOSystem._idCounter) NamedIOSystem._idCounter += 1 - return name + prefix = "" if prefix_suffix_name is None else config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_prefix'] + suffix = "" if prefix_suffix_name is None else config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_suffix'] + return prefix + name + suffix # Check if system name is generic def _generic_name_check(self): @@ -99,16 +106,26 @@ def __str__(self): def _find_signal(self, name, sigdict): return sigdict.get(name, None) - def _copy_names(self, sys): + def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): """copy the signal and system name of sys. Name is given as a keyword in case a specific name (e.g. append 'linearized') is desired. """ - self.name = sys.name + # Figure out the system name and assign it + if prefix == "" and prefix_suffix_name is not None: + prefix = config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_prefix'] + if suffix == "" and prefix_suffix_name is not None: + suffix = config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_suffix'] + self.name = prefix + sys.name + suffix + + # Name the inputs, outputs, and states self.ninputs, self.input_index = \ sys.ninputs, sys.input_index.copy() self.noutputs, self.output_index = \ sys.noutputs, sys.output_index.copy() - self.nstates, self.state_index = \ - sys.nstates, sys.state_index.copy() + if sys.nstates: # only copy for state space systems + self.nstates, self.state_index = \ + sys.nstates, sys.state_index.copy() def copy(self, name=None, use_prefix_suffix=True): """Make a copy of an input/output system @@ -128,10 +145,8 @@ def copy(self, name=None, use_prefix_suffix=True): # Update the system name if name is None and use_prefix_suffix: # Get the default prefix and suffix to use - dup_prefix = config.defaults['namedio.duplicate_system_name_prefix'] - dup_suffix = config.defaults['namedio.duplicate_system_name_suffix'] newsys.name = self._name_or_default( - dup_prefix + self.name + dup_suffix) + self.name, prefix_suffix_name='duplicate') else: newsys.name = self._name_or_default(name) diff --git a/control/statesp.py b/control/statesp.py index f74f39e26..a5e4e7957 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1382,13 +1382,8 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, sysd = StateSpace(Ad, Bd, C, D, Ts) # copy over the system name, inputs, outputs, and states if copy_names: - sysd._copy_names(self) - if name is None: - sysd.name = \ - config.defaults['namedio.sampled_system_name_prefix'] +\ - sysd.name + \ - config.defaults['namedio.sampled_system_name_suffix'] - else: + sysd._copy_names(self, prefix_suffix_name='sampled') + if name is not None: sysd.name = name # pass desired signal names if names were provided return StateSpace(sysd, **kwargs) diff --git a/control/xferfcn.py b/control/xferfcn.py index 8ef7e1084..3b22a9ba8 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1206,13 +1206,8 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, sysd = TransferFunction(numd[0, :], dend, Ts) # copy over the system name, inputs, outputs, and states if copy_names: - sysd._copy_names(self) - if name is None: - sysd.name = \ - config.defaults['namedio.sampled_system_name_prefix'] +\ - sysd.name + \ - config.defaults['namedio.sampled_system_name_suffix'] - else: + sysd._copy_names(self, prefix_suffix_name='sampled') + if name is not None: sysd.name = name # pass desired signal names if names were provided return TransferFunction(sysd, name=name, **kwargs) From 37243f618c6e7bbce9fd1f84b5d14952c40df39b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 3 Jun 2023 14:53:23 -0700 Subject: [PATCH 0275/1025] change system name when converting tf to ss --- control/iosys.py | 4 +++- control/statesp.py | 23 +++++++++++++---------- control/tests/namedio_test.py | 7 +++++-- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index b558dc174..22159fc49 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2395,7 +2395,9 @@ def ss(*args, **kwargs): "non-unique state space realization") # Create a state space system from an LTI system - sys = LinearIOSystem(_convert_to_statespace(sys), **kwargs) + sys = LinearIOSystem( + _convert_to_statespace(sys, use_prefix_suffix=True), **kwargs) + else: raise TypeError("ss(sys): sys must be a StateSpace or " "TransferFunction object. It is %s." % type(sys)) diff --git a/control/statesp.py b/control/statesp.py index a5e4e7957..c02d6b141 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1519,7 +1519,7 @@ def output(self, t, x, u=None, params=None): # TODO: add discrete time check -def _convert_to_statespace(sys): +def _convert_to_statespace(sys, use_prefix_suffix=False): """Convert a system to state space form (if needed). If sys is already a state space, then it is returned. If sys is a @@ -1556,11 +1556,10 @@ def _convert_to_statespace(sys): denorder, den, num, tol=0) states = ssout[0] - return StateSpace( + newsys = StateSpace( ssout[1][:states, :states], ssout[2][:states, :sys.ninputs], - ssout[3][:sys.noutputs, :states], ssout[4], sys.dt, - inputs=sys.input_labels, outputs=sys.output_labels, - name=sys.name) + ssout[3][:sys.noutputs, :states], ssout[4], sys.dt) + except ImportError: # No Slycot. Scipy tf->ss can't handle MIMO, but static # MIMO is an easy special case we can check for here @@ -1585,9 +1584,13 @@ def _convert_to_statespace(sys): # the squeeze A, B, C, D = \ sp.signal.tf2ss(squeeze(sys.num), squeeze(sys.den)) - return StateSpace( - A, B, C, D, sys.dt, inputs=sys.input_labels, - outputs=sys.output_labels, name=sys.name) + newsys = StateSpace(A, B, C, D, sys.dt) + + # Copy over the signal (and system) names + newsys._copy_names( + sys, + prefix_suffix_name='converted' if use_prefix_suffix else None) + return newsys elif isinstance(sys, FrequencyResponseData): raise TypeError("Can't convert FRD to StateSpace system.") @@ -1600,7 +1603,6 @@ def _convert_to_statespace(sys): except Exception: raise TypeError("Can't convert given type to StateSpace system.") - # TODO: add discrete time option def _rss_generate( states, inputs, outputs, cdtype, strictly_proper=False, name=None): @@ -1914,7 +1916,8 @@ def tf2ss(*args, **kwargs): if not isinstance(sys, TransferFunction): raise TypeError("tf2ss(sys): sys must be a TransferFunction " "object.") - return StateSpace(_convert_to_statespace(sys), **kwargs) + return StateSpace(_convert_to_statespace(sys, use_prefix_suffix=True), + **kwargs) else: raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index 3203214d6..cf30b94aa 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -169,6 +169,9 @@ def test_io_naming(fun, args, kwargs): assert sys_ss != sys_r assert sys_ss.input_labels == input_labels assert sys_ss.output_labels == output_labels + if not isinstance(sys_r, ct.StateSpace): + # System should get unique name + assert sys_ss.name != sys_r.name # Reassign system and signal names sys_ss = ct.ss( @@ -247,11 +250,11 @@ def test_convert_to_statespace(): # check that name, inputs, and outputs passed through sys_new = ct.ss(sys) - assert sys_new.name == 'sys' + assert sys_new.name == 'sys$converted' assert sys_new.input_labels == ['u'] assert sys_new.output_labels == ['y'] sys_new = ct.ss(sys_static) - assert sys_new.name == 'sys_static' + assert sys_new.name == 'sys_static$converted' assert sys_new.input_labels == ['u'] assert sys_new.output_labels == ['y'] From 0530b52f87f54d1d823acdb7b384f2331d4059c4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 3 Jun 2023 15:15:13 -0700 Subject: [PATCH 0276/1025] change system name when converting ss to tf --- control/namedio.py | 12 +++++------- control/tests/xferfcn_test.py | 6 ++++++ control/xferfcn.py | 11 ++++++++--- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/control/namedio.py b/control/namedio.py index 012187ffb..c0d5f11d5 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -119,13 +119,11 @@ def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): self.name = prefix + sys.name + suffix # Name the inputs, outputs, and states - self.ninputs, self.input_index = \ - sys.ninputs, sys.input_index.copy() - self.noutputs, self.output_index = \ - sys.noutputs, sys.output_index.copy() - if sys.nstates: # only copy for state space systems - self.nstates, self.state_index = \ - sys.nstates, sys.state_index.copy() + self.input_index = sys.input_index.copy() + self.output_index = sys.output_index.copy() + if self.nstates and sys.nstates: + # only copy state names for state space systems + self.state_index = sys.state_index.copy() def copy(self, name=None, use_prefix_suffix=True): """Make a copy of an input/output system diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index ebb781b89..7d561e770 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -1262,6 +1262,12 @@ def test_copy_names(create, args, kwargs, convert): if cpy.nstates is not None and sys.nstates is not None: assert cpy.state_labels == sys.state_labels + # Make sure that names aren't the same if system changed type + if not isinstance(cpy, create): + assert cpy.name == sys.name + '$converted' + else: + assert cpy.name == sys.name + # Relabel inputs and outputs cpy = convert(sys, inputs='myin', outputs='myout') assert cpy.input_labels == ['myin'] diff --git a/control/xferfcn.py b/control/xferfcn.py index 3b22a9ba8..60a40eca0 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1433,7 +1433,8 @@ def _add_siso(num1, den1, num2, den2): return num, den -def _convert_to_transfer_function(sys, inputs=1, outputs=1): +def _convert_to_transfer_function( + sys, inputs=1, outputs=1, use_prefix_suffix=False): """Convert a system to transfer function form (if needed). If sys is already a transfer function, then it is returned. If sys is a @@ -1509,7 +1510,10 @@ def _convert_to_transfer_function(sys, inputs=1, outputs=1): num = squeeze(num) # Convert to 1D array den = squeeze(den) # Probably not needed - return TransferFunction(num, den, sys.dt) + newsys = TransferFunction(num, den, sys.dt) + if use_prefix_suffix: + newsys._copy_names(sys, prefix_suffix_name='converted') + return newsys elif isinstance(sys, (int, float, complex, np.number)): num = [[[sys] for j in range(inputs)] for i in range(outputs)] @@ -1809,7 +1813,8 @@ def ss2tf(*args, **kwargs): if not kwargs.get('outputs'): kwargs['outputs'] = sys.output_labels return TransferFunction( - _convert_to_transfer_function(sys), **kwargs) + _convert_to_transfer_function(sys, use_prefix_suffix=True), + **kwargs) else: raise TypeError( "ss2tf(sys): sys must be a StateSpace object. It is %s." From e25ad673888e026da6c6e6dfcd0f99765b2d5d27 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 4 Jun 2023 08:22:04 -0700 Subject: [PATCH 0277/1025] add unit test to make sure implicit tf -> ss conversion keeps name --- control/tests/interconnect_test.py | 67 ++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 18 deletions(-) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 3d2f0c7d7..cf59c8c13 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -246,23 +246,54 @@ def test_string_inputoutput(): assert P_s2.output_index == {'y2' : 0} def test_linear_interconnect(): - tf_ctrl = ct.tf(1, (10.1, 1), inputs='e', outputs='u') - tf_plant = ct.tf(1, (10.1, 1), inputs='u', outputs='y') - ss_ctrl = ct.ss(1, 2, 1, 2, inputs='e', outputs='u') - ss_plant = ct.ss(1, 2, 1, 2, inputs='u', outputs='y') + tf_ctrl = ct.tf(1, (10.1, 1), inputs='e', outputs='u', name='ctrl') + tf_plant = ct.tf(1, (10.1, 1), inputs='u', outputs='y', name='plant') + ss_ctrl = ct.ss(1, 2, 1, 0, inputs='e', outputs='u', name='ctrl') + ss_plant = ct.ss(1, 2, 1, 0, inputs='u', outputs='y', name='plant') nl_ctrl = ct.NonlinearIOSystem( - lambda t, x, u, params: x*x, - lambda t, x, u, params: u*x, states=1, inputs='e', outputs='u') + lambda t, x, u, params: x*x, lambda t, x, u, params: u*x, + states=1, inputs='e', outputs='u', name='ctrl') nl_plant = ct.NonlinearIOSystem( - lambda t, x, u, params: x*x, - lambda t, x, u, params: u*x, states=1, inputs='u', outputs='y') - - assert isinstance(ct.interconnect((tf_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - assert isinstance(ct.interconnect((ss_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - assert isinstance(ct.interconnect((tf_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - assert isinstance(ct.interconnect((ss_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - - assert ~isinstance(ct.interconnect((nl_ctrl, ss_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - assert ~isinstance(ct.interconnect((nl_ctrl, tf_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - assert ~isinstance(ct.interconnect((ss_ctrl, nl_plant), inputs='e', outputs='y'), ct.LinearIOSystem) - assert ~isinstance(ct.interconnect((tf_ctrl, nl_plant), inputs='e', outputs='y'), ct.LinearIOSystem) \ No newline at end of file + lambda t, x, u, params: x*x, lambda t, x, u, params: u*x, + states=1, inputs='u', outputs='y', name='plant') + sumblk = ct.summing_junction(inputs=['r', '-y'], outputs=['e'], name='sum') + + # Interconnections of linear I/O systems should be linear I/O system + assert isinstance( + ct.interconnect([tf_ctrl, tf_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + assert isinstance( + ct.interconnect([ss_ctrl, ss_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + assert isinstance( + ct.interconnect([tf_ctrl, ss_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + assert isinstance( + ct.interconnect([ss_ctrl, tf_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + + # Interconnections with nonliner I/O systems should not be linear + assert ~isinstance( + ct.interconnect([nl_ctrl, ss_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + assert ~isinstance( + ct.interconnect([nl_ctrl, tf_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + assert ~isinstance( + ct.interconnect([ss_ctrl, nl_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + assert ~isinstance( + ct.interconnect([tf_ctrl, nl_plant, sumblk], inputs='r', outputs='y'), + ct.LinearIOSystem) + + # Implicit converstion of transfer function should retain name + clsys = ct.interconnect( + [tf_ctrl, ss_plant, sumblk], + connections=[ + ['plant.u', 'ctrl.u'], + ['ctrl.e', 'sum.e'], + ['sum.y', 'plant.y'] + ], + inplist=['sum.r'], inputs='r', + outlist=['plant.y'], outputs='y') + assert clsys.syslist[0].name == 'ctrl' From d32a3dbe4f7016fbd40fbf8b0f417872d38ff718 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 4 Jun 2023 08:29:05 -0700 Subject: [PATCH 0278/1025] fix up no Slycot case that was failing unit tests --- control/statesp.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index c02d6b141..d3d1ab1d0 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1572,9 +1572,7 @@ def _convert_to_statespace(sys, use_prefix_suffix=False): for i, j in itertools.product(range(sys.noutputs), range(sys.ninputs)): D[i, j] = sys.num[i][j][0] / sys.den[i][j][0] - return StateSpace([], [], [], D, sys.dt, - inputs=sys.input_labels, outputs=sys.output_labels, - name=sys.name) + newsys = StateSpace([], [], [], D, sys.dt) else: if sys.ninputs != 1 or sys.noutputs != 1: raise TypeError("No support for MIMO without slycot") From f0a34dff88f0ea9e43cd54a306ce3f828254a718 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 4 Jun 2023 22:38:09 -0700 Subject: [PATCH 0279/1025] add/cleanup documentation on simulation functions --- control/__init__.py | 13 ++++++++---- control/flatsys/systraj.py | 2 +- control/iosys.py | 9 ++++++++ control/optimal.py | 2 +- control/timeresp.py | 4 ++-- doc/classes.rst | 5 +++++ doc/conventions.rst | 42 +++++++++++++++++++++++++++++++------- 7 files changed, 62 insertions(+), 15 deletions(-) diff --git a/control/__init__.py b/control/__init__.py index 340370c8b..cfc23ed19 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -54,10 +54,15 @@ Available subpackages --------------------- -flatsys - Differentially flat systems -optimal - Optimization-based control + +The main control package includes the most commpon functions used in +analysis, design, and simulation of feedback control systems. Several +additional subpackages are available that provide more specialized +functionality: + +* :mod:`~control.flatsys`: Differentially flat systems +* :mod:`~control.matlab`: MATLAB compatibility module +* :mod:`~control.optimal`: Optimization-based control """ diff --git a/control/flatsys/systraj.py b/control/flatsys/systraj.py index c9bde6d7a..0fbd4e982 100644 --- a/control/flatsys/systraj.py +++ b/control/flatsys/systraj.py @@ -40,7 +40,7 @@ from ..timeresp import TimeResponseData class SystemTrajectory: - """Class representing a system trajectory. + """Class representing a trajectory for a flat system. The `SystemTrajectory` class is used to represent the trajectory of a (differentially flat) system. Used by the diff --git a/control/iosys.py b/control/iosys.py index dca00d3e5..a468d79e3 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1704,6 +1704,15 @@ def input_output_response( start with zero initial condition since this can be specified as [xsys_0, 0]. A warning is issued if the initial conditions are padded and and the final listed initial state is not zero. + + 2. If discontinuous inputs are given, the underlying SciPy numerical + integration algorithms can sometimes produce erroneous results due + to the default tolerances that are used. The `ivp_method` and + `ivp_keywords` parameters can be used to tune the ODE solver and + produce better results. In particular, using 'LSODA' as the + `ivp_method` or setting the `rtol` parameter to a smaller value + (e.g. using `ivp_kwargs={'rtol': 1e-4}`) can provide more accurate + results. """ # diff --git a/control/optimal.py b/control/optimal.py index 5dfbb34f0..50145324f 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -3,7 +3,7 @@ # RMM, 11 Feb 2021 # -"""The :mod:`~control.optimal` module provides support for optimization-based +"""The :mod:`control.optimal` module provides support for optimization-based controllers for nonlinear systems with state and input constraints. The docstring examples assume that the following import commands:: diff --git a/control/timeresp.py b/control/timeresp.py index bd8595cfe..2e25331d1 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -820,7 +820,7 @@ def shape_matches(s_legal, s_actual): # Forced response of a linear system def forced_response(sys, T=None, U=0., X0=0., transpose=False, interpolate=False, return_x=None, squeeze=None): - """Simulate the output of a linear system. + """Compute the output of a linear system given the input. As a convenience for parameters `U`, `X0`: Numbers (scalars) are converted to constant arrays with the correct shape. @@ -1616,7 +1616,7 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None, transpose=False, return_x=False, squeeze=None): # pylint: disable=W0622 - """Initial condition response of a linear system + """Compute the initial condition response for a linear system. If the system has multiple outputs (MIMO), optionally, one output may be selected. If no selection is made for the output, all diff --git a/doc/classes.rst b/doc/classes.rst index 87ce457de..8564533b3 100644 --- a/doc/classes.rst +++ b/doc/classes.rst @@ -58,3 +58,8 @@ Additional classes flatsys.SystemTrajectory optimal.OptimalControlProblem optimal.OptimalControlResult + optimal.OptimalEstimationProblem + optimal.OptimalEstimationResult + +The use of these classes is described in more detail in the +:ref:`flatsys-module` module and the :ref:`optimal-module` module diff --git a/doc/conventions.rst b/doc/conventions.rst index 5dc2e3d76..7c9c1ec6f 100644 --- a/doc/conventions.rst +++ b/doc/conventions.rst @@ -11,7 +11,6 @@ way that different types of standard information used by the library. Throughout this manual, we assume the `control` package has been imported as `ct`. - LTI system representation ========================= @@ -132,11 +131,40 @@ constructor for the desired data type using the original system as the sole argument or using the explicit conversion functions :func:`ss2tf` and :func:`tf2ss`. +Simulating LTI systems +====================== + +A number of functions are available for computing the output (and +state) response of an LTI systems: + +.. autosummary:: + :toctree: generated/ + :template: custom-class-template.rst + + initial_response + step_response + impulse_response + forced_response + +Each of these functions returns a :class:`TimeResponseData` object +that contains the data for the time response (described in more detail +in the next section). + +The :func:`forced_response` system is the most general and allows by +the zero initial state response to be simulated as well as the +response from a non-zero intial condition. + +In addition the :func:`input_output_response` function, which handles +simulation of nonlinear systems and interconnected systems, can be +used. For an LTI system, results are generally more accurate using +the LTI simulation functions above. The :func:`input_output_response` +function is described in more detail in the :ref:`iosys-module` section. + .. currentmodule:: control .. _time-series-convention: Time series data -================ +---------------- A variety of functions in the library return time series data: sequences of values that change over time. A common set of conventions is used for returning such data: columns represent different points in time, rows are @@ -262,16 +290,16 @@ Selected variables that can be configured, along with their default values: * freqplot.dB (False): Bode plot magnitude plotted in dB (otherwise powers of 10) - + * freqplot.deg (True): Bode plot phase plotted in degrees (otherwise radians) - + * freqplot.Hz (False): Bode plot frequency plotted in Hertz (otherwise rad/sec) - + * freqplot.grid (True): Include grids for magnitude and phase plots - + * freqplot.number_of_samples (1000): Number of frequency points in Bode plots - + * freqplot.feature_periphery_decade (1.0): How many decades to include in the frequency range on both sides of features (poles, zeros). From c307f5be621ab1432a949ebf85d80293e6db3e98 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 30 Mar 2023 22:58:15 -0700 Subject: [PATCH 0280/1025] initial implentation of multivariable interconnect() --- control/iosys.py | 597 +++++++++++++++++++++--------------- control/namedio.py | 27 +- control/tests/iosys_test.py | 52 ++++ 3 files changed, 431 insertions(+), 245 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 2881c5d64..a75af7f06 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -29,6 +29,7 @@ import numpy as np import scipy as sp import copy +import itertools from warnings import warn from .lti import LTI @@ -880,7 +881,9 @@ class InterconnectedSystem(InputOutputSystem): whose inputs and outputs are connected via a connection map. The overall system inputs and outputs are subsets of the subsystem inputs and outputs. - See :func:`~control.interconnect` for a list of parameters. + The function :func:`~control.interconnect` should be used to create an + interconnected I/O system since it performs additional argument + processing and checking. """ def __init__(self, syslist, connections=None, inplist=None, outlist=None, @@ -896,11 +899,8 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, dt = kwargs.pop('dt', None) # Process keyword arguments (except dt) - defaults = { - 'inputs': len(inplist or []), - 'outputs': len(outlist or [])} name, inputs, outputs, states, _ = _process_namedio_keywords( - kwargs, defaults, end=True) + kwargs, end=True) # Initialize the system list and index self.syslist = list(syslist) # insure modifications can be made @@ -990,6 +990,13 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, f"construction of state labels failed; found: " f"{len(states)} labels; expecting {nstates}") + # Figure out what the inputs and outputs are + if inputs is None and inplist is not None: + inputs = len(inplist) + + if outputs is None and outlist is not None: + outputs = len(outlist) + # Create the I/O system # Note: don't use super() to override LinearICSystem/StateSpace MRO InputOutputSystem.__init__( @@ -999,13 +1006,20 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, # Convert the list of interconnections to a connection map (matrix) self.connect_map = np.zeros((ninputs, noutputs)) for connection in connections or []: - input_index = self._parse_input_spec(connection[0]) + input_indices = self._parse_input_spec(connection[0]) for output_spec in connection[1:]: - output_index, gain = self._parse_output_spec(output_spec) - if self.connect_map[input_index, output_index] != 0: - warn("multiple connections given for input %d" % - input_index + ". Combining with previous entries.") - self.connect_map[input_index, output_index] += gain + output_indices, gain = self._parse_output_spec(output_spec) + if len(output_indices) != len(input_indices): + raise ValueError( + f"inconsistent number signals in connecting" + f" '{output_spec}' to '{connection[0]}'") + + for input_index, output_index in zip( + input_indices, output_indices): + if self.connect_map[input_index, output_index] != 0: + warn("multiple connections given for input %d" % + input_index + ". Combining with previous entries.") + self.connect_map[input_index, output_index] += gain # Convert the input list to a matrix: maps system to subsystems self.input_map = np.zeros((ninputs, self.ninputs)) @@ -1016,11 +1030,12 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, raise ValueError("specifications in inplist must be of type " "int, str, tuple or list.") for spec in inpspec: - ulist_index = self._parse_input_spec(spec) - if self.input_map[ulist_index, index] != 0: - warn("multiple connections given for input %d" % - index + ". Combining with previous entries.") - self.input_map[ulist_index, index] += 1 + ulist_indices = self._parse_input_spec(spec) + for j, ulist_index in enumerate(ulist_indices): + if self.input_map[ulist_index, index] != 0: + warn("multiple connections given for input %d" % + index + ". Combining with previous entries.") + self.input_map[ulist_index, index + j] += 1 # Convert the output list to a matrix: maps subsystems to system self.output_map = np.zeros((self.noutputs, noutputs + ninputs)) @@ -1031,14 +1046,12 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, raise ValueError("specifications in outlist must be of type " "int, str, tuple or list.") for spec in outspec: - ylist_index, gain = self._parse_output_spec(spec) - if self.output_map[index, ylist_index] != 0: - warn("multiple connections given for output %d" % - index + ". Combining with previous entries.") - self.output_map[index, ylist_index] += gain - - # Save the parameters for the system - self.params = {} if params is None else params.copy() + ylist_indices, gain = self._parse_output_spec(spec) + for j, ylist_index in enumerate(ylist_indices): + if self.output_map[index, ylist_index] != 0: + warn("multiple connections given for output %d" % + index + ". Combining with previous entries.") + self.output_map[index + j, ylist_index] += gain def _update_params(self, params, warning=False): for sys in self.syslist: @@ -1142,166 +1155,35 @@ def _compute_static_io(self, t, x, u): return ulist, ylist def _parse_input_spec(self, spec): - """Parse an input specification and returns the index - - This function parses a specification of an input of an interconnected - system component and returns the index of that input in the internal - input vector. Input specifications are of one of the following forms: - - i first input for the ith system - (i,) first input for the ith system - (i, j) jth input for the ith system - 'sys.sig' signal 'sig' in subsys 'sys' - ('sys', 'sig') signal 'sig' in subsys 'sys' - - The function returns an index into the input vector array and - the gain to use for that input. - - """ + """Parse an input specification and returns the indices.""" # Parse the signal that we received - subsys_index, input_index, gain = self._parse_signal(spec, 'input') + subsys_index, input_indices, gain = _parse_spec( + self.syslist, spec, 'input') if gain != 1: raise ValueError("gain not allowed in spec '%s'." % str(spec)) - # Return the index into the input vector list (ylist) - return self.input_offset[subsys_index] + input_index + # Return the indices into the input vector list (ylist) + return [self.input_offset[subsys_index] + i for i in input_indices] def _parse_output_spec(self, spec): - """Parse an output specification and returns the index and gain - - This function parses a specification of an output of an - interconnected system component and returns the index of that - output in the internal output vector (ylist). Output specifications - are of one of the following forms: - - i first output for the ith system - (i,) first output for the ith system - (i, j) jth output for the ith system - (i, j, gain) jth output for the ith system with gain - 'sys.sig' signal 'sig' in subsys 'sys' - '-sys.sig' signal 'sig' in subsys 'sys' with gain -1 - ('sys', 'sig', gain) signal 'sig' in subsys 'sys' with gain - - If the gain is not specified, it is taken to be 1. Numbered outputs - must be chosen from the list of subsystem outputs, but named outputs - can also be contained in the list of subsystem inputs. - - The function returns an index into the output vector array and - the gain to use for that output. - - """ + """Parse an output specification and returns the indices and gain.""" # Parse the rest of the spec with standard signal parsing routine try: # Start by looking in the set of subsystem outputs - subsys_index, output_index, gain = \ - self._parse_signal(spec, 'output') - - # Return the index into the input vector list (ylist) - return self.output_offset[subsys_index] + output_index, gain + subsys_index, output_indices, gain = \ + _parse_spec(self.syslist, spec, 'output') + output_offset = self.output_offset[subsys_index] except ValueError: # Try looking in the set of subsystem *inputs* - subsys_index, input_index, gain = self._parse_signal( - spec, 'input or output', dictname='input_index') + subsys_index, output_indices, gain = _parse_spec( + self.syslist, spec, 'input or output', dictname='input_index') # Return the index into the input vector list (ylist) - noutputs = sum(sys.noutputs for sys in self.syslist) - return noutputs + \ - self.input_offset[subsys_index] + input_index, gain - - def _parse_signal(self, spec, signame='input', dictname=None): - """Parse a signal specification, returning system and signal index. - - Signal specifications are of one of the following forms: - - i system_index = i, signal_index = 0 - (i,) system_index = i, signal_index = 0 - (i, j) system_index = i, signal_index = j - 'sys.sig' signal 'sig' in subsys 'sys' - ('sys', 'sig') signal 'sig' in subsys 'sys' - ('sys', j) signal_index j in subsys 'sys' - - The function returns an index into the input vector array and - the gain to use for that input. - """ - import re - - gain = 1 # Default gain - - # Check for special forms of the input - if isinstance(spec, tuple) and len(spec) == 3: - gain = spec[2] - spec = spec[:2] - elif isinstance(spec, str) and spec[0] == '-': - gain = -1 - spec = spec[1:] - - # Process cases where we are given indices as integers - if isinstance(spec, int): - return spec, 0, gain - - elif isinstance(spec, tuple) and len(spec) == 1 \ - and isinstance(spec[0], int): - return spec[0], 0, gain - - elif isinstance(spec, tuple) and len(spec) == 2 \ - and all([isinstance(index, int) for index in spec]): - return spec + (gain,) - - # Figure out the name of the dictionary to use - if dictname is None: - dictname = signame + '_index' - - if isinstance(spec, str): - # If we got a dotted string, break up into pieces - namelist = re.split(r'\.', spec) - - # For now, only allow signal level of system name - # TODO: expand to allow nested signal names - if len(namelist) != 2: - raise ValueError("Couldn't parse %s signal reference '%s'." - % (signame, spec)) - - system_index = self._find_system(namelist[0]) - if system_index is None: - raise ValueError("Couldn't find system '%s'." % namelist[0]) - - signal_index = self.syslist[system_index]._find_signal( - namelist[1], getattr(self.syslist[system_index], dictname)) - if signal_index is None: - raise ValueError("Couldn't find %s signal '%s.%s'." % - (signame, namelist[0], namelist[1])) - - return system_index, signal_index, gain - - # Handle the ('sys', 'sig'), (i, j), and mixed cases - elif isinstance(spec, tuple) and len(spec) == 2 and \ - isinstance(spec[0], (str, int)) and \ - isinstance(spec[1], (str, int)): - if isinstance(spec[0], int): - system_index = spec[0] - if system_index < 0 or system_index > len(self.syslist): - system_index = None - else: - system_index = self._find_system(spec[0]) - if system_index is None: - raise ValueError("Couldn't find system '%s'." % spec[0]) - - if isinstance(spec[1], int): - signal_index = spec[1] - # TODO (later): check against max length of appropriate list? - if signal_index < 0: - system_index = None - else: - signal_index = self.syslist[system_index]._find_signal( - spec[1], getattr(self.syslist[system_index], dictname)) - if signal_index is None: - raise ValueError("Couldn't find signal %s.%s." % tuple(spec)) - - return system_index, signal_index, gain + output_offset = sum(sys.noutputs for sys in self.syslist) + \ + self.input_offset[subsys_index] - else: - raise ValueError("Couldn't parse signal reference %s." % str(spec)) + return [output_offset + i for i in output_indices], gain def _find_system(self, name): return self.syslist_index.get(name, None) @@ -1486,8 +1368,10 @@ def check_unused_signals( f"{ignore_input} in subsystems") ignore_input_map.update(ignore_idxs) else: - ignore_input_map[self._parse_signal( - ignore_input, 'input')[:2]] = ignore_input + isys, isigs = _parse_spec( + self.syslist, ignore_input, 'input')[:2] + for isig in isigs: + ignore_input_map[(isys, isig)] = ignore_input # (osys, osig) -> signal-spec ignore_output_map = {} @@ -1499,8 +1383,10 @@ def check_unused_signals( f"{ignore_output} in subsystems") ignore_output_map.update(ignore_found) else: - ignore_output_map[self._parse_signal( - ignore_output, 'output')[:2]] = ignore_output + osys, osigs = _parse_spec( + self.syslist, ignore_output, 'output')[:2] + for osig in osigs: + ignore_output_map[(osys, osig)] = ignore_output dropped_inputs = set(unused_inputs) - set(ignore_input_map) dropped_outputs = set(unused_outputs) - set(ignore_output_map) @@ -2648,23 +2534,27 @@ def interconnect( [input-spec, output-spec1, output-spec2, ...] The input-spec can be in a number of different forms. The lowest - level representation is a tuple of the form `(subsys_i, inp_j)` where - `subsys_i` is the index into `syslist` and `inp_j` is the index into - the input vector for the subsystem. If `subsys_i` has a single input, - then the subsystem index `subsys_i` can be listed as the input-spec. - If systems and signals are given names, then the form 'sys.sig' or - ('sys', 'sig') are also recognized. - - Similarly, each output-spec should describe an output signal from one - of the subsystems. The lowest level representation is a tuple of the - form `(subsys_i, out_j, gain)`. The input will be constructed by - summing the listed outputs after multiplying by the gain term. If the - gain term is omitted, it is assumed to be 1. If the system has a - single output, then the subsystem index `subsys_i` can be listed as - the input-spec. If systems and signals are given names, then the form - 'sys.sig', ('sys', 'sig') or ('sys', 'sig', gain) are also recognized, - and the special form '-sys.sig' can be used to specify a signal with - gain -1. + level representation is a tuple of the form `(subsys_i, inp_j)` + where `subsys_i` is the index into `syslist` and `inp_j` is the + index into the input vector for the subsystem. If the signal index + is omitted, then all subsystem inputs are used. If systems and + signals are given names, then the forms 'sys.sig' or ('sys', 'sig') + are also recognized. Finally, for multivariable systems the signal + index can be given as a list, for example '(subsys_i, [inp_j1, ..., + inp_jn])' or as as a slice, for example, 'sys.sig[i:j]'. + + Similarly, each output-spec should describe an output signal from + one of the subsystems. The lowest level representation is a tuple + of the form `(subsys_i, out_j, gain)`. The input will be + constructed by summing the listed outputs after multiplying by the + gain term. If the gain term is omitted, it is assumed to be 1. If + the subsystem index `subsys_i` is omitted, then all outputs of the + subsystem are used. If systems and signals are given names, then + the form 'sys.sig', ('sys', 'sig') or ('sys', 'sig', gain) are also + recognized, and the special form '-sys.sig' can be used to specify + a signal with gain -1. Lists and slices can also be used, as long + as the number of elements for each output spec mataches the input + spec. If omitted, the `interconnect` function will attempt to create the interconnection map by connecting all signals with the same base names @@ -2688,20 +2578,20 @@ def interconnect( [input-spec1, input-spec2, ...] - Each system input is added to the input for the listed subsystem. If - the system input connects to only one subsystem input, a single input - specification can be given (without the inner list). + Each system input is added to the input for the listed subsystem. + If the system input connects to a subsystem with a single input, a + single input specification can be given (without the inner list). If omitted the `input` parameter will be used to identify the list of input signals to the overall system. outlist : list of output connections, optional - List of connections for how the outputs from the subsystems are mapped - to overall system outputs. The output connection description is the - same as the form defined in the inplist specification (including the - optional gain term). Numbered outputs must be chosen from the list of - subsystem outputs, but named outputs can also be contained in the list - of subsystem inputs. + List of connections for how the outputs from the subsystems are + mapped to overall system outputs. The output connection + description is the same as the form defined in the inplist + specification (including the optional gain term). Numbered outputs + must be chosen from the list of subsystem outputs, but named + outputs can also be contained in the list of subsystem inputs. If an output connection contains more than one signal specification, then those signals are added together (multiplying by the any gain @@ -2788,16 +2678,29 @@ def interconnect( >>> C = ct.rss(2, 2, 2, name='C') >>> T = ct.interconnect( ... [P, C], - ... connections = [ + ... connections=[ ... ['P.u[0]', 'C.y[0]'], ['P.u[1]', 'C.y[1]'], ... ['C.u[0]', '-P.y[0]'], ['C.u[1]', '-P.y[1]']], - ... inplist = ['C.u[0]', 'C.u[1]'], - ... outlist = ['P.y[0]', 'P.y[1]'], + ... inplist=['C.u[0]', 'C.u[1]'], + ... outlist=['P.y[0]', 'P.y[1]'], ... ) - For a SISO system, this example can be simplified by using the - :func:`~control.summing_block` function and the ability to automatically - interconnect signals with the same names: + This expression can be simplified using slice notation: + + >>> T = ct.interconnect( + ... [P, C], connections=[['P.u[:]', 'C.y[:]'], ['C.u[:]', '-P.y[:]']], + ... inplist='C.u[:]', outlist='P.y[:]') + + or further simplified by omitting the input and output signal + specifications (since all inputs and outputs are used): + + >>> T = ct.interconnect( + ... [P, C], connections=[['P', 'C'], ['C', '-P']], + ... inplist=['C'], outlist=['P']) + + This feedback system can also be constructed using the + :func:`~control.summing_block` function and the ability to + automatically interconnect signals with the same names: >>> P = ct.tf(1, [1, 0], inputs='u', outputs='y') >>> C = ct.tf(10, [1, 1], inputs='e', outputs='u') @@ -2811,10 +2714,17 @@ def interconnect( name of the new system determined by adding the prefix and suffix strings in config.defaults['namedio.linearized_system_name_prefix'] and config.defaults['namedio.linearized_system_name_suffix'], with the - default being to add the suffix '$copy'$ to the system name. + default being to add the suffix '$copy' to the system name. + + In addition to explicit lists of system signals, it is possible to + lists vectors of signals, using one of the following forms: + + (subsys, [i1, ..., iN], gain) signals with indices i1, ..., in + 'sysname.signal[i:j]' range of signal names, i through j-1 + 'sysname.signal[:]' all signals with given prefix - It is possible to replace lists in most of arguments with tuples instead, - but strictly speaking the only use of tuples should be in the + It is possible to replace lists in most of arguments with tuples + instead, but strictly speaking the only use of tuples should be in the specification of an input- or output-signal via the tuple notation `(subsys_i, signal_j, gain)` (where `gain` is optional). If you get an unexpected error message about a specification being of the wrong type, @@ -2871,60 +2781,151 @@ def interconnect( if outlist is None: outlist = list(outputs or []) - # Process input list + # + # Pre-process connecton list + # + # Support for various "vector" forms of specifications is handled here, + # by expanding any specifications that refer to more than one signal. + # This includes signal lists such as ('sysname', ['sig1', 'sig2', ...]) + # as well as slice-based specifications such as 'sysname.signal[i:j]'. + # + new_connections = [] + for connection in connections: + if not isinstance(connection, (list, tuple)): + raise ValueError( + f"invalid connection {connection}: should be a list") + # Parse and expand the input specification + input_spec = _parse_spec(syslist, connection[0], 'input') + input_spec_list = [input_spec] + + # Parse and expand the output specifications + output_specs_list = [[]] * len(input_spec_list) + for spec in connection[1:]: + output_spec = _parse_spec(syslist, spec, 'output') + output_specs_list[0].append(output_spec) + + # Create the new connection entry + for input_spec, output_specs in zip(input_spec_list, output_specs_list): + new_connection = [input_spec] + output_specs + new_connections.append(new_connection) + connections = new_connections + + # + # Pre-process input list + # + # Similar to the connections list, we now handle "vector" forms of + # specifications in the inplist parameter. This needs to be handled + # here because the InterconnectedSystem constructor assumes that the + # number of elements in `inplist` will match the number of inputs for + # the interconnected system. + # if not isinstance(inplist, (list, tuple)): inplist = [inplist] new_inplist = [] - for signal in inplist: - # Create an empty connection and append to inplist - connection = [] + for connection in inplist: + # Create an empty connection list + new_connection = [] - # Check for signal names without a system name - if isinstance(signal, str) and len(signal.split('.')) == 1: - # Get the signal name - signal_name = signal[1:] if signal[0] == '-' else signal - sign = '-' if signal[0] == '-' else "" + # Check for system name or signal names without a system name + if isinstance(connection, str) and len(connection.split('.')) == 1: + # TODO: convert to utility function + # Get the signal/system name + sname = connection[1:] if connection[0] == '-' else connection + gain = -1 if connection[0] == '-' else 1 # Look for the signal name as a system input - for sys in syslist: - if signal_name in sys.input_labels: - connection.append(sign + sys.name + "." + signal_name) - - # Make sure we found the name - if len(connection) == 0: - raise ValueError("could not find signal %s" % signal_name) + found_system, found_signal = False, False + for isys, sys in enumerate(syslist): + if sname == sys.name: + # Use all inputs + for isig in range(sys.ninputs): + new_connection.append((isys, isig, gain)) + found_system = True + elif sname in sys.input_labels: + new_connection.append((isys, sys.input_index[sname], gain)) + found_signal = True + + if found_system and found_signal: + raise ValueError( + f"signal '{sname}' is both signal and system name") + elif found_system: + new_inplist += new_connection + elif found_signal: + new_inplist.append(new_connection) else: - new_inplist.append(connection) + raise ValueError("could not find signal %s" % sname) else: - new_inplist.append(signal) + # Regular signal specification + if not isinstance(connection, list): + connection = [connection] + for spec in connection: + subsys, indices, gain = _parse_spec(syslist, spec, 'input') + for i in indices: + new_inplist.append((subsys, i, gain)) inplist = new_inplist - # Process output list + # + # Pre-process output list + # + # This is similar to the processing of the input list, but we need to + # additionally take into account the fact that you can list subsystem + # inputs as system outputs. + # if not isinstance(outlist, (list, tuple)): outlist = [outlist] new_outlist = [] - for signal in outlist: - # Create an empty connection and append to inplist - connection = [] + for connection in outlist: + # Create an empty connection list + new_connection = [] - # Check for signal names without a system name - if isinstance(signal, str) and len(signal.split('.')) == 1: - # Get the signal name - signal_name = signal[1:] if signal[0] == '-' else signal - sign = '-' if signal[0] == '-' else "" + # Check for system name or signal names without a system name + if isinstance(connection, str) and len(connection.split('.')) == 1: + # TODO: convert to utility function + # Get the signal/system name + sname = connection[1:] if connection[0] == '-' else connection + gain = -1 if connection[0] == '-' else 1 # Look for the signal name as a system output - for sys in syslist: - if signal_name in sys.output_index.keys(): - connection.append(sign + sys.name + "." + signal_name) - - # Make sure we found the name - if len(connection) == 0: - raise ValueError("could not find signal %s" % signal_name) + found_system, found_signal = False, False + for isys, sys in enumerate(syslist): + if sname == sys.name: + # Use all outputs + for isig in range(sys.noutputs): + new_connection.append((isys, isig, gain)) + found_system = True + elif sname in sys.output_index.keys(): + new_connection.append((isys, sys.output_index[sname], gain)) + found_signal = True + + if found_system and found_signal: + raise ValueError( + f"signal '{sname}' is both signal and system name") + elif found_system: + new_outlist += new_connection + elif found_signal: + new_outlist.append(new_connection) else: - new_outlist.append(connection) + raise ValueError("could not find signal %s" % sname) else: - new_outlist.append(signal) + # Regular signal specification + if not isinstance(connection, list): + connection = [connection] + for spec in connection: + try: + # First trying looking in the output signals + subsys, indices, gain = _parse_spec(syslist, spec, 'output') + for i in indices: + new_outlist.append((subsys, i, gain)) + except ValueError: + # If not, see if we can find it in inputs + subsys_index, signal_indices, gain = _parse_spec( + syslist, spec, 'input or output', + dictname='input_index') + for i in signal_indices: + # Use string form to allow searching input list + new_outlist.append( + (syslist[subsys].name, + syslist[subsys].input_labels[i], gain)) outlist = new_outlist newsys = InterconnectedSystem( @@ -3088,3 +3089,111 @@ def _parse_list(signals, signame='input', prefix='u'): # Create a LinearIOSystem return LinearIOSystem( ss_sys, inputs=input_names, outputs=output_names, name=name) + + +# +# Utility function for parsing input/output specifications +# +# This function can be used to convert various forms of signal +# specifications used in the interconnect() function and the +# InterconnectedSystem class into a list of signals. Signal specifications +# are of one of the following forms (where 'n' is the number of signals in +# the named dictionary): +# +# i system_index = i, signal_list = [0, ..., n] +# (i,) system_index = i, signal_list = [0, ..., n] +# (i, j) system_index = i, signal_list = [j] +# (i, [j1, ..., jn]) system_index = i, signal_list = [j1, ..., jn] +# 'sys' system_index = i, signal_list = [0, ..., n] +# 'sys.sig' signal 'sig' in subsys 'sys' +# ('sys', 'sig') signal 'sig' in subsys 'sys' +# 'sys.sig[...]' signals 'sig[...]' (slice) in subsys 'sys' +# ('sys', j) signal_index j in subsys 'sys' +# ('sys', 'sig[...]') signals 'sig[...]' (slice) in subsys 'sys' +# +# This function returns the subsystem index, a list of indices for the +# system signals, and the gain to use for that set of signals. +# +import re + +def _parse_spec(syslist, spec, signame, dictname=None): + """Parse a signal specification, returning system and signal index.""" + + # Parse the signal spec into a system, signal, and gain spec + if isinstance(spec, int): + system_spec, signal_spec, gain = spec, None, None + elif isinstance(spec, str): + # If we got a dotted string, break up into pieces + namelist = re.split(r'\.', spec) + system_spec, gain = namelist[0], None + signal_spec = None if len(namelist) < 2 else namelist[1] + if len(namelist) > 2: + # TODO: expand to allow nested signal names + raise ValueError(f"couldn't parse signal reference '{spec}'") + elif isinstance(spec, (tuple, list)) and len(spec) <= 3: + system_spec = spec[0] + signal_spec = None if len(spec) < 2 else spec[1] + gain = None if len(spec) < 3 else spec[2] + else: + raise ValueError(f"unrecognized signal spec format '{spec}'") + + # Determine the gain + check_sign = lambda spec: isinstance(spec, str) and spec[0] == '-' + if (check_sign(system_spec) and gain is not None) or \ + (check_sign(signal_spec) and gain is not None) or \ + (check_sign(system_spec) and check_sign(signal_spec)): + # Gain is specified multiple times + raise ValueError(f"gain specified multiple times '{spec}'") + elif check_sign(system_spec): + gain = -1 + system_spec = system_spec[1:] + elif check_sign(signal_spec): + gain = -1 + signal_spec = signal_spec[1:] + elif gain is None: + gain = 1 + + # Figure out the subsystem index + if isinstance(system_spec, int): + system_index = system_spec + elif isinstance(system_spec, str): + syslist_index = {sys.name: i for i, sys in enumerate(syslist)} + system_index = syslist_index.get(system_spec, None) + if system_index is None: + raise ValueError(f"couldn't find system '{system_spec}'") + else: + raise ValueError(f"unknown system spec '{system_spec}'") + + # Make sure the system index is valid + if system_index < 0 or system_index >= len(syslist): + ValueError(f"system index '{system_index}' is out of range") + + # Figure out the name of the dictionary to use for signal names + dictname = signame + '_index' if dictname is None else dictname + signal_dict = getattr(syslist[system_index], dictname) + nsignals = len(signal_dict) + + # Figure out the signal indices + # TODO: move this logic to _find_signals() + if signal_spec is None: + # No indices given => use the entire range of signals + signal_indices = list(range(nsignals)) + elif isinstance(signal_spec, int): + # Single index given + signal_indices = [signal_spec] + elif isinstance(signal_spec, list) and \ + all([isinstance(index, int) for index in signal_spec]): + # Simple list of integer indices + signal_indices = signal_spec + else: + signal_indices = syslist[system_index]._find_signals( + signal_spec, signal_dict) + if signal_indices is None: + raise ValueError(f"couldn't find {signame} signal '{spec}'") + + # Make sure the signal indices are valid + for index in signal_indices: + if index < 0 or index >= nsignals: + ValueError(f"signal index '{index}' is out of range") + + return system_index, signal_indices, gain diff --git a/control/namedio.py b/control/namedio.py index c0d5f11d5..b2f142ccd 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -8,6 +8,7 @@ import numpy as np from copy import deepcopy from warnings import warn +import re from . import config __all__ = ['issiso', 'timebase', 'common_timebase', 'timebaseEqual', @@ -64,7 +65,6 @@ def _name_or_default(self, name=None, prefix_suffix_name=None): # Check if system name is generic def _generic_name_check(self): - import re return re.match(r'^sys\[\d*\]$', self.name) is not None # @@ -106,6 +106,31 @@ def __str__(self): def _find_signal(self, name, sigdict): return sigdict.get(name, None) + # Find a list of signals by name, index, or pattern + def _find_signals(self, name_list, sigdict): + if not isinstance(name_list, (list, tuple)): + name_list = [name_list] + + index_list = [] + for name in name_list: + # Look for signal ranges (slice-like) + m = re.match(r'([\w$]+)\[([\d]*):([\d]*)\]$', name) + if m: + base = m.group(1) + start = None if m.group(2) == '' else int(m.group(2)) + stop = None if m.group(3) == '' else int(m.group(3)) + for var in sigdict: + # Find variables that match + msig = re.match(r'([\w$]+)\[([\d]*)\]$', var) + if msig.group(1) == base and \ + (start is None or int(msig.group(2)) >= start) and \ + (stop is None or int(msig.group(2)) < stop): + index_list.append(int(msig.group(2))) + else: + index_list.append(sigdict.get(name, None)) + + return None if any([idx is None for idx in index_list]) else index_list + def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): """copy the signal and system name of sys. Name is given as a keyword in case a specific name (e.g. append 'linearized') is desired. """ diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 59338fc62..6800c8774 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -2047,3 +2047,55 @@ def test_iosys_sample(): dsys = ct.sample_system(csys, 0.1) assert isinstance(dsys, ct.LinearIOSystem) assert dsys.dt == 0.1 + +# TODO: convert to multiple marks, to go through all possibilities +@pytest.mark.parametrize( + "connections, inplist, outlist, inputs, outputs", [ + pytest.param( + [['sys2', 'sys1']], 'sys1', 'sys2', None, None, + id="sysname only, no i/o args"), + pytest.param( + [['sys2', 'sys1']], 'sys1', 'sys2', 3, 3, + id="i/o signal counts"), + pytest.param( + [[('sys2', [0, 1, 2]), ('sys1', [0, 1, 2])]], + [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], + 3, 3, + id="signal lists, i/o counts"), + pytest.param( + [['sys2.u[0:3]', 'sys1.y[:]']], + 'sys1.u[:]', ['sys2.y[0:3]'], None, None, + id="signal slices"), + pytest.param( + [[('sys2', [0, 1, 2]), ('sys1', [0, 1, 2])]], + [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], + None, None, + id="signal lists, no i/o counts"), + pytest.param( + [[(1, ['u[0]', 'u[1]', 'u[2]']), (0, ['y[0]', 'y[1]', 'y[2]'])]], + [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], + 3, ['y1', 'y2', 'y3'], + id="mixed specs"), + pytest.param( + [[f'sys2.u[{i}]', f'sys1.y[{i}]'] for i in range(3)], + [f'sys1.u[{i}]' for i in range(3)], + [f'sys2.y[{i}]' for i in range(3)], + [f'u[{i}]' for i in range(3)], [f'y[{i}]' for i in range(3)], + id="full enumeration"), + ]) + +def test_iosys_signal_spec(connections, inplist, outlist, inputs, outputs): + # Create an interconnected system for testing + sys1 = ct.rss(4, 3, 3, name='sys1') + sys2 = ct.rss(4, 3, 3, name='sys2') + series = sys2 * sys1 + + # Simple series interconnection + icsys = ct.interconnect( + [sys1, sys2], connections=connections, + inplist=inplist, outlist=outlist, inputs=inputs, outputs=outputs + ) + np.testing.assert_allclose(icsys.A, series.A) + np.testing.assert_allclose(icsys.B, series.B) + np.testing.assert_allclose(icsys.C, series.C) + np.testing.assert_allclose(icsys.D, series.D) From 40e6021a330eb2083644ced907a88a933e1e6d8a Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 31 Mar 2023 17:59:46 -0700 Subject: [PATCH 0281/1025] add ability to use signal base names in interconnect() --- control/iosys.py | 24 +++++++++++++++--------- control/namedio.py | 21 ++++++++++++++------- control/tests/iosys_test.py | 3 +++ 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index a75af7f06..3c20b2120 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -29,7 +29,6 @@ import numpy as np import scipy as sp import copy -import itertools from warnings import warn from .lti import LTI @@ -1011,7 +1010,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, output_indices, gain = self._parse_output_spec(output_spec) if len(output_indices) != len(input_indices): raise ValueError( - f"inconsistent number signals in connecting" + f"inconsistent number of signals in connecting" f" '{output_spec}' to '{connection[0]}'") for input_index, output_index in zip( @@ -2541,7 +2540,8 @@ def interconnect( signals are given names, then the forms 'sys.sig' or ('sys', 'sig') are also recognized. Finally, for multivariable systems the signal index can be given as a list, for example '(subsys_i, [inp_j1, ..., - inp_jn])' or as as a slice, for example, 'sys.sig[i:j]'. + inp_jn])', as as a slice, for example, 'sys.sig[i:j]', or as a base + name `sys.sig` (which matches `sys.sig[i]`). Similarly, each output-spec should describe an output signal from one of the subsystems. The lowest level representation is a tuple @@ -2552,9 +2552,9 @@ def interconnect( subsystem are used. If systems and signals are given names, then the form 'sys.sig', ('sys', 'sig') or ('sys', 'sig', gain) are also recognized, and the special form '-sys.sig' can be used to specify - a signal with gain -1. Lists and slices can also be used, as long - as the number of elements for each output spec mataches the input - spec. + a signal with gain -1. Lists, slices, and base names can also be + used, as long as the number of elements for each output spec + mataches the input spec. If omitted, the `interconnect` function will attempt to create the interconnection map by connecting all signals with the same base names @@ -2685,11 +2685,12 @@ def interconnect( ... outlist=['P.y[0]', 'P.y[1]'], ... ) - This expression can be simplified using slice notation: + This expression can be simplified using either slice notation or + just signal basenames: >>> T = ct.interconnect( - ... [P, C], connections=[['P.u[:]', 'C.y[:]'], ['C.u[:]', '-P.y[:]']], - ... inplist='C.u[:]', outlist='P.y[:]') + ... [P, C], connections=[['P.u[:]', 'C.y[:]'], ['C.u', '-P.y']], + ... inplist='C.u', outlist='P.y[:]') or further simplified by omitting the input and output signal specifications (since all inputs and outputs are used): @@ -2775,6 +2776,11 @@ def interconnect( # Use an empty connections list connections = [] + elif isinstance(connections, list) and \ + all([isinstance(cnxn, (str, tuple)) for cnxn in connections]): + # Special case where there is a single connection + connections = [connections] + # If inplist/outlist is not present, try using inputs/outputs instead if inplist is None: inplist = list(inputs or []) diff --git a/control/namedio.py b/control/namedio.py index b2f142ccd..858390612 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -113,19 +113,26 @@ def _find_signals(self, name_list, sigdict): index_list = [] for name in name_list: - # Look for signal ranges (slice-like) - m = re.match(r'([\w$]+)\[([\d]*):([\d]*)\]$', name) - if m: - base = m.group(1) - start = None if m.group(2) == '' else int(m.group(2)) - stop = None if m.group(3) == '' else int(m.group(3)) + # Look for signal ranges (slice-like or base name) + ms = re.match(r'([\w$]+)\[([\d]*):([\d]*)\]$', name) # slice + mb = re.match(r'([\w$]+)$', name) # base + if ms: + base = ms.group(1) + start = None if ms.group(2) == '' else int(ms.group(2)) + stop = None if ms.group(3) == '' else int(ms.group(3)) for var in sigdict: # Find variables that match - msig = re.match(r'([\w$]+)\[([\d]*)\]$', var) + msig = re.match(r'([\w$]+)\[([\d]+)\]$', var) if msig.group(1) == base and \ (start is None or int(msig.group(2)) >= start) and \ (stop is None or int(msig.group(2)) < stop): index_list.append(int(msig.group(2))) + elif mb and sigdict.get(name, None) is None: + # Try to use name as a base name + for var in sigdict: + msig = re.match(name + r'\[([\d]+)\]$', var) + if msig: + index_list.append(int(msig.group(1))) else: index_list.append(sigdict.get(name, None)) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 6800c8774..747bb2c13 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -2066,6 +2066,9 @@ def test_iosys_sample(): [['sys2.u[0:3]', 'sys1.y[:]']], 'sys1.u[:]', ['sys2.y[0:3]'], None, None, id="signal slices"), + pytest.param( + ['sys2.u', 'sys1.y'], 'sys1.u', 'sys2.y', None, None, + id="signal basenames"), pytest.param( [[('sys2', [0, 1, 2]), ('sys1', [0, 1, 2])]], [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], From 8ad1e74bcc1f35caa10d8cdd8fbca6861aa74319 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 31 Mar 2023 22:22:15 -0700 Subject: [PATCH 0282/1025] add/move interconnect unit tests(); clean up list/tuple; small fixes --- control/iosys.py | 15 ++- control/namedio.py | 5 +- control/tests/interconnect_test.py | 147 +++++++++++++++++++++++++++++ control/tests/iosys_test.py | 55 ----------- 4 files changed, 157 insertions(+), 65 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 3c20b2120..e111f73eb 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -889,9 +889,9 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, params=None, warn_duplicate=None, **kwargs): """Create an I/O system from a list of systems + connection info.""" # Convert input and output names to lists if they aren't already - if inplist is not None and not isinstance(inplist, (list, tuple)): + if inplist is not None and not isinstance(inplist, list): inplist = [inplist] - if outlist is not None and not isinstance(outlist, (list, tuple)): + if outlist is not None and not isinstance(outlist, list): outlist = [outlist] # Check if dt argument was given; if not, pull from systems @@ -2552,7 +2552,7 @@ def interconnect( subsystem are used. If systems and signals are given names, then the form 'sys.sig', ('sys', 'sig') or ('sys', 'sig', gain) are also recognized, and the special form '-sys.sig' can be used to specify - a signal with gain -1. Lists, slices, and base names can also be + a signal with gain -1. Lists, slices, and base namess can also be used, as long as the number of elements for each output spec mataches the input spec. @@ -2797,7 +2797,7 @@ def interconnect( # new_connections = [] for connection in connections: - if not isinstance(connection, (list, tuple)): + if not isinstance(connection, list): raise ValueError( f"invalid connection {connection}: should be a list") # Parse and expand the input specification @@ -2825,7 +2825,7 @@ def interconnect( # number of elements in `inplist` will match the number of inputs for # the interconnected system. # - if not isinstance(inplist, (list, tuple)): + if not isinstance(inplist, list): inplist = [inplist] new_inplist = [] for connection in inplist: @@ -2877,7 +2877,7 @@ def interconnect( # additionally take into account the fact that you can list subsystem # inputs as system outputs. # - if not isinstance(outlist, (list, tuple)): + if not isinstance(outlist, list): outlist = [outlist] new_outlist = [] for connection in outlist: @@ -3136,7 +3136,7 @@ def _parse_spec(syslist, spec, signame, dictname=None): if len(namelist) > 2: # TODO: expand to allow nested signal names raise ValueError(f"couldn't parse signal reference '{spec}'") - elif isinstance(spec, (tuple, list)) and len(spec) <= 3: + elif isinstance(spec, tuple) and len(spec) <= 3: system_spec = spec[0] signal_spec = None if len(spec) < 2 else spec[1] gain = None if len(spec) < 3 else spec[2] @@ -3180,7 +3180,6 @@ def _parse_spec(syslist, spec, signame, dictname=None): nsignals = len(signal_dict) # Figure out the signal indices - # TODO: move this logic to _find_signals() if signal_spec is None: # No indices given => use the entire range of signals signal_indices = list(range(nsignals)) diff --git a/control/namedio.py b/control/namedio.py index 858390612..cb17d79a5 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -132,11 +132,12 @@ def _find_signals(self, name_list, sigdict): for var in sigdict: msig = re.match(name + r'\[([\d]+)\]$', var) if msig: - index_list.append(int(msig.group(1))) + index_list.append(sigdict.get(var)) else: index_list.append(sigdict.get(name, None)) - return None if any([idx is None for idx in index_list]) else index_list + return None if len(index_list) == 0 or \ + any([idx is None for idx in index_list]) else index_list def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): """copy the signal and system name of sys. Name is given as a keyword diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index cf59c8c13..55bf3e716 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -297,3 +297,150 @@ def test_linear_interconnect(): inplist=['sum.r'], inputs='r', outlist=['plant.y'], outputs='y') assert clsys.syslist[0].name == 'ctrl' + +@pytest.mark.parametrize( + "connections, inplist, outlist, inputs, outputs", [ + pytest.param( + [['sys2', 'sys1']], 'sys1', 'sys2', None, None, + id="sysname only, no i/o args"), + pytest.param( + [['sys2', 'sys1']], 'sys1', 'sys2', 3, 3, + id="i/o signal counts"), + pytest.param( + [[('sys2', [0, 1, 2]), ('sys1', [0, 1, 2])]], + [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], + 3, 3, + id="signal lists, i/o counts"), + pytest.param( + [['sys2.u[0:3]', 'sys1.y[:]']], + 'sys1.u[:]', ['sys2.y[0:3]'], None, None, + id="signal slices"), + pytest.param( + ['sys2.u', 'sys1.y'], 'sys1.u', 'sys2.y', None, None, + id="signal basenames"), + pytest.param( + [[('sys2', [0, 1, 2]), ('sys1', [0, 1, 2])]], + [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], + None, None, + id="signal lists, no i/o counts"), + pytest.param( + [[(1, ['u[0]', 'u[1]', 'u[2]']), (0, ['y[0]', 'y[1]', 'y[2]'])]], + [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], + 3, ['y1', 'y2', 'y3'], + id="mixed specs"), + pytest.param( + [[f'sys2.u[{i}]', f'sys1.y[{i}]'] for i in range(3)], + [f'sys1.u[{i}]' for i in range(3)], + [f'sys2.y[{i}]' for i in range(3)], + [f'u[{i}]' for i in range(3)], [f'y[{i}]' for i in range(3)], + id="full enumeration"), +]) +def test_interconnect_series(connections, inplist, outlist, inputs, outputs): + # Create an interconnected system for testing + sys1 = ct.rss(4, 3, 3, name='sys1') + sys2 = ct.rss(4, 3, 3, name='sys2') + series = sys2 * sys1 + + # Simple series interconnection + icsys = ct.interconnect( + [sys1, sys2], connections=connections, + inplist=inplist, outlist=outlist, inputs=inputs, outputs=outputs + ) + np.testing.assert_allclose(icsys.A, series.A) + np.testing.assert_allclose(icsys.B, series.B) + np.testing.assert_allclose(icsys.C, series.C) + np.testing.assert_allclose(icsys.D, series.D) + + +@pytest.mark.parametrize( + "connections, inplist, outlist", [ + pytest.param( + [['P', 'C'], ['C', '-P']], 'C', 'P', + id="sysname only, no i/o args"), + pytest.param( + [['P.u', 'C.y'], ['C.u', '-P.y']], 'C.u', 'P.y', + id="sysname only, no i/o args"), + pytest.param( + [['P.u[:]', 'C.y[0:2]'], + [('C', 'u'), ('P', ['y[0]', 'y[1]'], -1)]], + ['C.u[0]', 'C.u[1]'], ('P', [0, 1]), + id="mixed cases"), +]) +def test_interconnect_feedback(connections, inplist, outlist): + # Create an interconnected system for testing + P = ct.rss(4, 2, 2, name='P', strictly_proper=True) + C = ct.rss(4, 2, 2, name='C') + feedback = ct.feedback(P * C, np.eye(2)) + + # Simple feedback interconnection + icsys = ct.interconnect( + [C, P], connections=connections, + inplist=inplist, outlist=outlist + ) + np.testing.assert_allclose(icsys.A, feedback.A) + np.testing.assert_allclose(icsys.B, feedback.B) + np.testing.assert_allclose(icsys.C, feedback.C) + np.testing.assert_allclose(icsys.D, feedback.D) + + +@pytest.mark.parametrize( + "pinputs, poutputs, connections, inplist, outlist", [ + pytest.param( + ['w[0]', 'w[1]', 'u[0]', 'u[1]'], # pinputs + ['z[0]', 'z[1]', 'y[0]', 'y[1]'], # poutputs + [[('P', [2, 3]), ('C', [0, 1])], [('C', [0, 1]), ('P', [2, 3], -1)]], + [('C', [0, 1]), ('P', [0, 1])], # inplist + [('P', [0, 1, 2, 3]), ('C', [0, 1])], # outlist + id="signal indices"), + pytest.param( + ['w[0]', 'w[1]', 'u[0]', 'u[1]'], # pinputs + ['z[0]', 'z[1]', 'y[0]', 'y[1]'], # poutputs + [[('P', [2, 3]), ('C', [0, 1])], [('C', [0, 1]), ('P', [2, 3], -1)]], + ['C', ('P', [0, 1])], ['P', 'C'], # inplist, outlist + id="signal indices, when needed"), + pytest.param( + 4, 4, # default I/O names + [['P.u[2:4]', 'C.y[:]'], ['C.u', '-P.y[2:]']], + ['C', 'P.u[:2]'], ['P.y[:]', 'P.u[2:]'], # inplist, outlist + id="signal slices"), + pytest.param( + ['w[0]', 'w[1]', 'u[0]', 'u[1]'], # pinputs + ['z[0]', 'z[1]', 'y[0]', 'y[1]'], # poutputs + [['P.u', 'C.y'], ['C.u', '-P.y']], # connections + ['C.u', 'P.w'], ['P.z', 'P.y', 'C.y'], # inplist, outlist + id="basename, control output"), + pytest.param( + ['w[0]', 'w[1]', 'u[0]', 'u[1]'], # pinputs + ['z[0]', 'z[1]', 'y[0]', 'y[1]'], # poutputs + [['P.u', 'C.y'], ['C.u', '-P.y']], # connections + ['C.u', 'P.w'], ['P.z', 'P.y', 'P.u'], # inplist, outlist + id="basename, process input"), +]) +def test_interconnect_partial_feedback( + pinputs, poutputs, connections, inplist, outlist): + P = ct.rss( + states=6, name='P', strictly_proper=True, + inputs=pinputs, outputs=poutputs) + C = ct.rss(4, 2, 2, name='C') + + # Low level feedback connection (feedback around "lower" process I/O) + partial = ct.interconnect( + [C, P], + connections=[ + [(1, 2), (0, 0)], [(1, 3), (0, 1)], + [(0, 0), (1, 2, -1)], [(0, 1), (1, 3, -1)]], + inplist=[(0, 0), (0, 1), (1, 0), (1, 1)], # C.u, P.w + outlist=[(1, 0), (1, 1), (1, 2), (1, 3), + (0, 0), (0, 1)], # P.z, P.y, C.y + ) + + # High level feedback conections + icsys = ct.interconnect( + [C, P], connections=connections, + inplist=inplist, outlist=outlist + ) + np.testing.assert_allclose(icsys.A, partial.A) + np.testing.assert_allclose(icsys.B, partial.B) + np.testing.assert_allclose(icsys.C, partial.C) + np.testing.assert_allclose(icsys.D, partial.D) +>>>>>>> 7c86239 (add/move interconnect unit tests(); clean up list/tuple; small fixes) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 747bb2c13..59338fc62 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -2047,58 +2047,3 @@ def test_iosys_sample(): dsys = ct.sample_system(csys, 0.1) assert isinstance(dsys, ct.LinearIOSystem) assert dsys.dt == 0.1 - -# TODO: convert to multiple marks, to go through all possibilities -@pytest.mark.parametrize( - "connections, inplist, outlist, inputs, outputs", [ - pytest.param( - [['sys2', 'sys1']], 'sys1', 'sys2', None, None, - id="sysname only, no i/o args"), - pytest.param( - [['sys2', 'sys1']], 'sys1', 'sys2', 3, 3, - id="i/o signal counts"), - pytest.param( - [[('sys2', [0, 1, 2]), ('sys1', [0, 1, 2])]], - [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], - 3, 3, - id="signal lists, i/o counts"), - pytest.param( - [['sys2.u[0:3]', 'sys1.y[:]']], - 'sys1.u[:]', ['sys2.y[0:3]'], None, None, - id="signal slices"), - pytest.param( - ['sys2.u', 'sys1.y'], 'sys1.u', 'sys2.y', None, None, - id="signal basenames"), - pytest.param( - [[('sys2', [0, 1, 2]), ('sys1', [0, 1, 2])]], - [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], - None, None, - id="signal lists, no i/o counts"), - pytest.param( - [[(1, ['u[0]', 'u[1]', 'u[2]']), (0, ['y[0]', 'y[1]', 'y[2]'])]], - [('sys1', [0, 1, 2])], [('sys2', [0, 1, 2])], - 3, ['y1', 'y2', 'y3'], - id="mixed specs"), - pytest.param( - [[f'sys2.u[{i}]', f'sys1.y[{i}]'] for i in range(3)], - [f'sys1.u[{i}]' for i in range(3)], - [f'sys2.y[{i}]' for i in range(3)], - [f'u[{i}]' for i in range(3)], [f'y[{i}]' for i in range(3)], - id="full enumeration"), - ]) - -def test_iosys_signal_spec(connections, inplist, outlist, inputs, outputs): - # Create an interconnected system for testing - sys1 = ct.rss(4, 3, 3, name='sys1') - sys2 = ct.rss(4, 3, 3, name='sys2') - series = sys2 * sys1 - - # Simple series interconnection - icsys = ct.interconnect( - [sys1, sys2], connections=connections, - inplist=inplist, outlist=outlist, inputs=inputs, outputs=outputs - ) - np.testing.assert_allclose(icsys.A, series.A) - np.testing.assert_allclose(icsys.B, series.B) - np.testing.assert_allclose(icsys.C, series.C) - np.testing.assert_allclose(icsys.D, series.D) From ff965643e5d250ebc87407f44ba73660e667634f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 31 Mar 2023 23:24:19 -0700 Subject: [PATCH 0283/1025] fix up examples and document list vs tuple more carefully --- control/iosys.py | 9 ++--- examples/cruise-control.py | 28 +++++++-------- examples/cruise.ipynb | 70 +++++++++++++++++++------------------- 3 files changed, 54 insertions(+), 53 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index e111f73eb..c3a2279be 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2724,12 +2724,13 @@ def interconnect( 'sysname.signal[i:j]' range of signal names, i through j-1 'sysname.signal[:]' all signals with given prefix - It is possible to replace lists in most of arguments with tuples - instead, but strictly speaking the only use of tuples should be in the + While in many Python functions tuples can be used in place of lists, + for the interconnect() function the only use of tuples should be in the specification of an input- or output-signal via the tuple notation `(subsys_i, signal_j, gain)` (where `gain` is optional). If you get an - unexpected error message about a specification being of the wrong type, - check your use of tuples. + unexpected error message about a specification being of the wrong type + or not being found, check to make sure you are not using a tuple where + you should be using a list. In addition to its use for general nonlinear I/O systems, the :func:`~control.interconnect` function allows linear systems to be diff --git a/examples/cruise-control.py b/examples/cruise-control.py index 8c654477b..08439b1a4 100644 --- a/examples/cruise-control.py +++ b/examples/cruise-control.py @@ -140,13 +140,13 @@ def motor_torque(omega, params={}): # Outputs: v (vehicle velocity) cruise_tf = ct.InterconnectedSystem( (control_tf, vehicle), name='cruise', - connections=( + connections=[ ['control.u', '-vehicle.v'], - ['vehicle.u', 'control.y']), - inplist=('control.u', 'vehicle.gear', 'vehicle.theta'), - inputs=('vref', 'gear', 'theta'), - outlist=('vehicle.v', 'vehicle.u'), - outputs=('v', 'u')) + ['vehicle.u', 'control.y']], + inplist=['control.u', 'vehicle.gear', 'vehicle.theta'], + inputs=['vref', 'gear', 'theta'], + outlist=['vehicle.v', 'vehicle.u'], + outputs=['v', 'u']) # Define the time and input vectors T = np.linspace(0, 25, 101) @@ -280,11 +280,11 @@ def pi_output(t, x, u, params={}): # Create the closed loop system cruise_pi = ct.InterconnectedSystem( (vehicle, control_pi), name='cruise', - connections=( + connections=[ ['vehicle.u', 'control.u'], - ['control.v', 'vehicle.v']), - inplist=('control.vref', 'vehicle.gear', 'vehicle.theta'), - outlist=('control.u', 'vehicle.v'), outputs=['u', 'v']) + ['control.v', 'vehicle.v']], + inplist=['control.vref', 'vehicle.gear', 'vehicle.theta'], + outlist=['control.u', 'vehicle.v'], outputs=['u', 'v']) # Figure 4.3b shows the response of the closed loop system. The figure shows # that even if the hill is so steep that the throttle changes from 0.17 to @@ -409,12 +409,12 @@ def sf_output(t, z, u, params={}): # Create the closed loop system for the state space controller cruise_sf = ct.InterconnectedSystem( (vehicle, control_sf), name='cruise', - connections=( + connections=[ ['vehicle.u', 'control.u'], ['control.x', 'vehicle.v'], - ['control.y', 'vehicle.v']), - inplist=('control.r', 'vehicle.gear', 'vehicle.theta'), - outlist=('control.u', 'vehicle.v'), outputs=['u', 'v']) + ['control.y', 'vehicle.v']], + inplist=['control.r', 'vehicle.gear', 'vehicle.theta'], + outlist=['control.u', 'vehicle.v'], outputs=['u', 'v']) # Compute the linearization of the dynamics around the equilibrium point diff --git a/examples/cruise.ipynb b/examples/cruise.ipynb index 7be0c8644..c3e76aec1 100644 --- a/examples/cruise.ipynb +++ b/examples/cruise.ipynb @@ -328,13 +328,13 @@ "\n", "# Create the closed loop system for the state space controller\n", "cruise_sf = ct.InterconnectedSystem(\n", - " (vehicle, control_sf), name='cruise',\n", - " connections=(\n", - " ('vehicle.u', 'control.u'),\n", - " ('control.x', 'vehicle.v'),\n", - " ('control.y', 'vehicle.v')),\n", - " inplist=('control.r', 'vehicle.gear', 'vehicle.theta'),\n", - " outlist=('control.u', 'vehicle.v'), outputs=['u', 'v'])\n", + " [vehicle, control_sf], name='cruise',\n", + " connections=[\n", + " ['vehicle.u', 'control.u'],\n", + " ['control.x', 'vehicle.v'],\n", + " ['control.y', 'vehicle.v']],\n", + " inplist=['control.r', 'vehicle.gear', 'vehicle.theta'],\n", + " outlist=['control.u', 'vehicle.v'], outputs=['u', 'v'])\n", "\n", "# Define the time and input vectors\n", "T = np.linspace(0, 25, 501)\n", @@ -460,14 +460,14 @@ "# Construct the closed loop system and plot the response\n", "# Create the closed loop system for the state space controller\n", "cruise_pz = ct.InterconnectedSystem(\n", - " (vehicle, control_pz), name='cruise_pz',\n", - " connections = (\n", - " ('control.u', '-vehicle.v'),\n", - " ('vehicle.u', 'control.y')),\n", - " inplist = ('control.u', 'vehicle.gear', 'vehicle.theta'),\n", - " inputs = ('vref', 'gear', 'theta'),\n", - " outlist = ('vehicle.v', 'vehicle.u'),\n", - " outputs = ('v', 'u'))\n", + " [vehicle, control_pz], name='cruise_pz',\n", + " connections = [\n", + " ['control.u', '-vehicle.v'],\n", + " ['vehicle.u', 'control.y']],\n", + " inplist = ['control.u', 'vehicle.gear', 'vehicle.theta'],\n", + " inputs = ['vref', 'gear', 'theta'],\n", + " outlist = ['vehicle.v', 'vehicle.u'],\n", + " outputs = ['v', 'u'])\n", "\n", "# Find the equilibrium point\n", "X0, U0 = ct.find_eqpt(\n", @@ -546,11 +546,11 @@ " \n", " # Construct the closed loop system by interconnecting process and controller\n", " cruise_tf = ct.InterconnectedSystem(\n", - " (vehicle, control_tf), name='cruise',\n", - " connections = [('control.u', '-vehicle.v'), ('vehicle.u', 'control.y')],\n", - " inplist = ('control.u', 'vehicle.gear', 'vehicle.theta'), \n", - " inputs = ('vref', 'gear', 'theta'),\n", - " outlist = ('vehicle.v', 'vehicle.u'), outputs = ('v', 'u'))\n", + " [vehicle, control_tf], name='cruise',\n", + " connections = [['control.u', '-vehicle.v'], ['vehicle.u', 'control.y']],\n", + " inplist = ['control.u', 'vehicle.gear', 'vehicle.theta'], \n", + " inputs = ['vref', 'gear', 'theta'],\n", + " outlist = ['vehicle.v', 'vehicle.u'], outputs = ['v', 'u'])\n", "\n", " # Plot the velocity response\n", " X0, U0 = ct.find_eqpt(\n", @@ -593,11 +593,11 @@ " \n", " # Construct the closed loop system by interconnecting process and controller\n", " cruise_tf = ct.InterconnectedSystem(\n", - " (vehicle, control_tf), name='cruise',\n", - " connections = [('control.u', '-vehicle.v'), ('vehicle.u', 'control.y')],\n", - " inplist = ('control.u', 'vehicle.gear', 'vehicle.theta'), \n", - " inputs = ('vref', 'gear', 'theta'),\n", - " outlist = ('vehicle.v', 'vehicle.u'), outputs = ('v', 'u'))\n", + " [vehicle, control_tf], name='cruise',\n", + " connections = [['control.u', '-vehicle.v'], ['vehicle.u', 'control.y']],\n", + " inplist = ['control.u', 'vehicle.gear', 'vehicle.theta'], \n", + " inputs = ['vref', 'gear', 'theta'],\n", + " outlist = ['vehicle.v', 'vehicle.u'], outputs = ['v', 'u'])\n", "\n", " # Plot the velocity response\n", " X0, U0 = ct.find_eqpt(\n", @@ -630,10 +630,10 @@ " name='control', inputs='u', outputs='y')\n", "\n", "cruise_tf = ct.InterconnectedSystem(\n", - " (vehicle, control_tf), name='cruise',\n", - " connections = [('control.u', '-vehicle.v'), ('vehicle.u', 'control.y')],\n", - " inplist = ('control.u', 'vehicle.gear', 'vehicle.theta'), inputs = ('vref', 'gear', 'theta'),\n", - " outlist = ('vehicle.v', 'vehicle.u'), outputs = ('v', 'u'))" + " [vehicle, control_tf], name='cruise',\n", + " connections = [['control.u', '-vehicle.v'], ['vehicle.u', 'control.y']],\n", + " inplist = ['control.u', 'vehicle.gear', 'vehicle.theta'], inputs = ['vref', 'gear', 'theta'],\n", + " outlist = ['vehicle.v', 'vehicle.u'], outputs = ['v', 'u'])" ] }, { @@ -750,12 +750,12 @@ "\n", "# Create the closed loop system\n", "cruise_pi = ct.InterconnectedSystem(\n", - " (vehicle, control_pi), name='cruise',\n", - " connections=(\n", - " ('vehicle.u', 'control.u'),\n", - " ('control.v', 'vehicle.v')),\n", - " inplist=('control.vref', 'vehicle.gear', 'vehicle.theta'),\n", - " outlist=('control.u', 'vehicle.v'), outputs=['u', 'v'])" + " [vehicle, control_pi], name='cruise',\n", + " connections=[\n", + " ['vehicle.u', 'control.u'],\n", + " ['control.v', 'vehicle.v']],\n", + " inplist=['control.vref', 'vehicle.gear', 'vehicle.theta'],\n", + " outlist=['control.u', 'vehicle.v'], outputs=['u', 'v'])" ] }, { From b40e12ca8dff60da2027b66e7bfe9c00a7d5fb33 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 1 Apr 2023 17:16:28 -0700 Subject: [PATCH 0284/1025] add prefix processing, find_{inputs,outputs,states}, debugging output --- control/iosys.py | 226 ++++++++++++++++++++--------- control/namedio.py | 25 +++- control/tests/interconnect_test.py | 145 +++++++++++++++--- control/tests/iosys_test.py | 2 +- control/tests/namedio_test.py | 33 +++++ doc/iosys.rst | 116 ++++++++++++++- 6 files changed, 444 insertions(+), 103 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index c3a2279be..96c0a9570 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -54,10 +54,9 @@ class InputOutputSystem(NamedIOSystem): """A class for representing input/output systems. The InputOutputSystem class allows (possibly nonlinear) input/output - systems to be represented in Python. It is intended as a parent - class for a set of subclasses that are used to implement specific - structures and operations for different types of input/output - dynamical systems. + systems to be represented in Python. It is used as a parent class for + a set of subclasses that are used to implement specific structures and + operations for different types of input/output dynamical systems. Parameters ---------- @@ -65,14 +64,16 @@ class for a set of subclasses that are used to implement specific Description of the system inputs. This can be given as an integer count or a list of strings that name the individual signals. If an integer count is specified, the names of the signal will be of the - form `s[i]` (where `s` is one of `u`, `y`, or `x`). If this parameter - is not given or given as `None`, the relevant quantity will be - determined when possible based on other information provided to - functions using the system. + form `s[i]` (where `s` is given by the `input_prefix` parameter and + has default value 'u'). If this parameter is not given or given as + `None`, the relevant quantity will be determined when possible + based on other information provided to functions using the system. outputs : int, list of str, or None - Description of the system outputs. Same format as `inputs`. + Description of the system outputs. Same format as `inputs`, with + the prefix given by output_prefix (defaults to 'y'). states : int, list of str, or None - Description of the system states. Same format as `inputs`. + Description of the system states. Same format as `inputs`, with + the prefix given by state_prefix (defaults to 'x'). dt : None, True or float, optional System timebase. 0 (default) indicates continuous time, True indicates discrete time with unspecified sampling time, positive @@ -103,6 +104,15 @@ class for a set of subclasses that are used to implement specific name : string, optional System name (used for specifying signals) + Other Parameters + ---------------- + input_prefix : string, optional + Set the prefix for input signals. Default = 'u'. + output_prefix : string, optional + Set the prefix for output signals. Default = 'y'. + state_prefix : string, optional + Set the prefix for state signals. Default = 'x'. + Notes ----- The :class:`~control.InputOuputSystem` class (and its subclasses) makes @@ -133,13 +143,13 @@ def __init__(self, params=None, **kwargs): """ # Store the system name, inputs, outputs, and states name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, end=True) + kwargs) # Initialize the data structure # Note: don't use super() to override LinearIOSystem/StateSpace MRO NamedIOSystem.__init__( self, inputs=inputs, outputs=outputs, - states=states, name=name, dt=dt) + states=states, name=name, dt=dt, **kwargs) # default parameters self.params = {} if params is None else params.copy() @@ -607,19 +617,13 @@ class LinearIOSystem(InputOutputSystem, StateSpace): Parameters ---------- linsys : StateSpace or TransferFunction - LTI system to be converted + LTI system to be converted. inputs : int, list of str or None, optional - Description of the system inputs. This can be given as an integer - count or as a list of strings that name the individual signals. If an - integer count is specified, the names of the signal will be of the - form `s[i]` (where `s` is one of `u`, `y`, or `x`). If this parameter - is not given or given as `None`, the relevant quantity will be - determined when possible based on other information provided to - functions using the system. + New system input labels (defaults to linsys input labels). outputs : int, list of str or None, optional - Description of the system outputs. Same format as `inputs`. + New system output labels (defaults to linsys output labels). states : int, list of str, or None, optional - Description of the system states. Same format as `inputs`. + New system input labels (defaults to linsys output labels). dt : None, True or float, optional System timebase. 0 (default) indicates continuous time, True indicates discrete time with unspecified sampling time, positive number is @@ -640,6 +644,10 @@ class LinearIOSystem(InputOutputSystem, StateSpace): A, B, C, D See :class:`~control.StateSpace` for inherited attributes. + See Also + -------- + InputOutputSystem : Input/output system class. + """ def __init__(self, linsys, **kwargs): """Create an I/O system from a state space linear system. @@ -659,13 +667,13 @@ def __init__(self, linsys, **kwargs): # Process keyword arguments name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, linsys, end=True) + kwargs, linsys) # Create the I/O system object # Note: don't use super() to override StateSpace MRO InputOutputSystem.__init__( self, inputs=inputs, outputs=outputs, states=states, - params=None, dt=dt, name=name) + params=None, dt=dt, name=name, **kwargs) # Initalize additional state space variables StateSpace.__init__( @@ -775,6 +783,10 @@ class NonlinearIOSystem(InputOutputSystem): functions for the system as default values, overriding internal defaults. + See Also + -------- + InputOutputSystem : Input/output system class. + """ def __init__(self, updfcn, outfcn=None, params=None, **kwargs): """Create a nonlinear I/O system given update and output functions.""" @@ -2343,13 +2355,13 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): Returns ------- - sys : StateSpace - The randomly created linear system + sys : LinearIOSystem + The randomly created linear system. Raises ------ ValueError - if any input is not a positive integer + if any input is not a positive integer. Notes ----- @@ -2362,8 +2374,7 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): """ # Process keyword arguments kwargs.update({'states': states, 'outputs': outputs, 'inputs': inputs}) - name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, end=True) + name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) # Figure out the size of the sytem nstates, _ = _process_signal_list(states) @@ -2375,7 +2386,8 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): strictly_proper=strictly_proper) return LinearIOSystem( - sys, name=name, states=states, inputs=inputs, outputs=outputs, dt=dt) + sys, name=name, states=states, inputs=inputs, outputs=outputs, dt=dt, + **kwargs) def drss(*args, **kwargs): @@ -2506,7 +2518,7 @@ def tf2io(*args, **kwargs): def interconnect( syslist, connections=None, inplist=None, outlist=None, params=None, check_unused=True, add_unused=False, ignore_inputs=None, - ignore_outputs=None, warn_duplicate=None, **kwargs): + ignore_outputs=None, warn_duplicate=None, debug=False, **kwargs): """Interconnect a set of input/output systems. This function creates a new system that is an interconnection of a set of @@ -2671,6 +2683,10 @@ def interconnect( systems that have non-generic names. If `False`, warnings are not generated and if `True` then warnings are always generated. + debug : bool, default=False + Print out information about how signals are being processed that + may be useful in understanding why something is not working. + Examples -------- @@ -2783,10 +2799,16 @@ def interconnect( connections = [connections] # If inplist/outlist is not present, try using inputs/outputs instead + inplist_none, outlist_none = False, False if inplist is None: - inplist = list(inputs or []) + inplist = inputs or [] + inplist_none = True # use to rewrite inputs below if outlist is None: - outlist = list(outputs or []) + outlist = outputs or [] + outlist_none = True # use to rewrite outputs below + + # Define a local debugging function + dprint = lambda s: None if not debug else print(s) # # Pre-process connecton list @@ -2796,8 +2818,10 @@ def interconnect( # This includes signal lists such as ('sysname', ['sig1', 'sig2', ...]) # as well as slice-based specifications such as 'sysname.signal[i:j]'. # + dprint(f"Pre-processing connections:") new_connections = [] for connection in connections: + dprint(f" parsing {connection=}") if not isinstance(connection, list): raise ValueError( f"invalid connection {connection}: should be a list") @@ -2814,11 +2838,12 @@ def interconnect( # Create the new connection entry for input_spec, output_specs in zip(input_spec_list, output_specs_list): new_connection = [input_spec] + output_specs + dprint(f" adding {new_connection=}") new_connections.append(new_connection) connections = new_connections # - # Pre-process input list + # Pre-process input connections list # # Similar to the connections list, we now handle "vector" forms of # specifications in the inplist parameter. This needs to be handled @@ -2826,16 +2851,23 @@ def interconnect( # number of elements in `inplist` will match the number of inputs for # the interconnected system. # + # If inplist_none is True then inplist is a copy of inputs and so we + # also have to be careful that if we encounter any multivariable + # signals, we need to update the input list. + # + dprint(f"Pre-processing input connections: {inplist}") if not isinstance(inplist, list): + dprint(f" converting inplist to list") inplist = [inplist] - new_inplist = [] - for connection in inplist: - # Create an empty connection list - new_connection = [] + new_inplist, new_inputs = [], [] if inplist_none else inputs + # Go through the list of inputs and process each one + for iinp, connection in enumerate(inplist): # Check for system name or signal names without a system name if isinstance(connection, str) and len(connection.split('.')) == 1: - # TODO: convert to utility function + # Create an empty connections list to store matching connections + new_connections = [] + # Get the signal/system name sname = connection[1:] if connection[0] == '-' else connection gain = -1 if connection[0] == '-' else 1 @@ -2843,33 +2875,60 @@ def interconnect( # Look for the signal name as a system input found_system, found_signal = False, False for isys, sys in enumerate(syslist): + # Look for matching signals (returns None if no matches + indices = sys._find_signals(sname, sys.input_index) + + # See what types of matches we found if sname == sys.name: - # Use all inputs + # System name matches => use all inputs for isig in range(sys.ninputs): - new_connection.append((isys, isig, gain)) + dprint(f" adding input {(isys, isig, gain)}") + new_inplist.append((isys, isig, gain)) found_system = True - elif sname in sys.input_labels: - new_connection.append((isys, sys.input_index[sname], gain)) + elif indices: + # Signal name matches => store new connections + new_connection = [] + for isig in indices: + dprint(f" collecting input {(isys, isig, gain)}") + new_connection.append((isys, isig, gain)) + + if len(new_connections) == 0: + # First time we have seen this signal => initalize + for cnx in new_connection: + new_connections.append([cnx]) + if inplist_none: + # See if we need to rewrite the inputs + if len(new_connection) != 1: + new_inputs += [ + sys.input_labels[i] for i in indices] + else: + new_inputs.append(inputs[iinp]) + else: + # Additional signal match found =. add to the list + for i, cnx in enumerate(new_connection): + new_connections[i].append(cnx) found_signal = True if found_system and found_signal: raise ValueError( f"signal '{sname}' is both signal and system name") - elif found_system: - new_inplist += new_connection elif found_signal: - new_inplist.append(new_connection) - else: + dprint(f" adding inputs {new_connections}") + new_inplist += new_connections + elif not found_system: raise ValueError("could not find signal %s" % sname) else: # Regular signal specification if not isinstance(connection, list): + dprint(f" converting item to list") connection = [connection] for spec in connection: - subsys, indices, gain = _parse_spec(syslist, spec, 'input') - for i in indices: - new_inplist.append((subsys, i, gain)) - inplist = new_inplist + isys, indices, gain = _parse_spec(syslist, spec, 'input') + for isig in indices: + dprint(f" adding input {(isys, isig, gain)}") + new_inplist.append((isys, isig, gain)) + inplist, inputs = new_inplist, new_inputs + dprint(f" {inplist=}\n {inputs=}") # # Pre-process output list @@ -2878,62 +2937,85 @@ def interconnect( # additionally take into account the fact that you can list subsystem # inputs as system outputs. # + dprint(f"Pre-processing output connections: {outlist}") if not isinstance(outlist, list): + dprint(f" converting outlist to list") outlist = [outlist] - new_outlist = [] - for connection in outlist: + new_outlist, new_outputs = [], [] if outlist_none else outputs + for iout, connection in enumerate(outlist): # Create an empty connection list - new_connection = [] + new_connections = [] # Check for system name or signal names without a system name if isinstance(connection, str) and len(connection.split('.')) == 1: - # TODO: convert to utility function # Get the signal/system name sname = connection[1:] if connection[0] == '-' else connection gain = -1 if connection[0] == '-' else 1 # Look for the signal name as a system output found_system, found_signal = False, False - for isys, sys in enumerate(syslist): + for osys, sys in enumerate(syslist): + indices = sys._find_signals(sname, sys.output_index) if sname == sys.name: # Use all outputs - for isig in range(sys.noutputs): - new_connection.append((isys, isig, gain)) + for osig in range(sys.noutputs): + dprint(f" adding output {(osys, osig, gain)}") + new_outlist.append((osys, osig, gain)) found_system = True - elif sname in sys.output_index.keys(): - new_connection.append((isys, sys.output_index[sname], gain)) + elif indices: + new_connection = [] + for osig in indices: + dprint(f" collecting output {(osys, osig, gain)}") + new_connection.append((osys, osig, gain)) + if len(new_connections) == 0: + for cnx in new_connection: + new_connections.append([cnx]) + if outlist_none: + # See if we need to rewrite the outputs + if len(new_connection) != 1: + new_outputs += [ + sys.output_labels[i] for i in indices] + else: + new_outputs.append(outputs[iout]) + else: + # Additional signal match found =. add to the list + for i, cnx in enumerate(new_connection): + new_connections[i].append(cnx) found_signal = True if found_system and found_signal: raise ValueError( f"signal '{sname}' is both signal and system name") - elif found_system: - new_outlist += new_connection elif found_signal: - new_outlist.append(new_connection) - else: + dprint(f" adding outputs {new_connections}") + new_outlist += new_connections + elif not found_system: raise ValueError("could not find signal %s" % sname) else: # Regular signal specification if not isinstance(connection, list): + dprint(f" converting item to list") connection = [connection] for spec in connection: try: # First trying looking in the output signals - subsys, indices, gain = _parse_spec(syslist, spec, 'output') - for i in indices: - new_outlist.append((subsys, i, gain)) + osys, indices, gain = _parse_spec(syslist, spec, 'output') + for osig in indices: + dprint(f" adding output {(osys, osig, gain)}") + new_outlist.append((osys, osig, gain)) except ValueError: # If not, see if we can find it in inputs - subsys_index, signal_indices, gain = _parse_spec( + isys, indices, gain = _parse_spec( syslist, spec, 'input or output', dictname='input_index') - for i in signal_indices: + for isig in indices: # Use string form to allow searching input list + dprint(f" adding input {(isys, isig, gain)}") new_outlist.append( - (syslist[subsys].name, - syslist[subsys].input_labels[i], gain)) - outlist = new_outlist + (syslist[isys].name, + syslist[isys].input_labels[isig], gain)) + outlist, outputs = new_outlist, new_outputs + dprint(f" {outlist=}\n {outputs=}") newsys = InterconnectedSystem( syslist, connections=connections, inplist=inplist, diff --git a/control/namedio.py b/control/namedio.py index cb17d79a5..dee11fcc0 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -30,15 +30,16 @@ class NamedIOSystem(object): def __init__( - self, name=None, inputs=None, outputs=None, states=None, **kwargs): + self, name=None, inputs=None, outputs=None, states=None, + input_prefix='u', output_prefix='y', state_prefix='x', **kwargs): # system name self.name = self._name_or_default(name) # Parse and store the number of inputs and outputs - self.set_inputs(inputs) - self.set_outputs(outputs) - self.set_states(states) + self.set_inputs(inputs, prefix=input_prefix) + self.set_outputs(outputs, prefix=output_prefix) + self.set_states(states, prefix=state_prefix) # Process timebase: if not given use default, but allow None as value self.dt = _process_dt_keyword(kwargs) @@ -123,10 +124,10 @@ def _find_signals(self, name_list, sigdict): for var in sigdict: # Find variables that match msig = re.match(r'([\w$]+)\[([\d]+)\]$', var) - if msig.group(1) == base and \ + if msig and msig.group(1) == base and \ (start is None or int(msig.group(2)) >= start) and \ (stop is None or int(msig.group(2)) < stop): - index_list.append(int(msig.group(2))) + index_list.append(sigdict.get(var)) elif mb and sigdict.get(name, None) is None: # Try to use name as a base name for var in sigdict: @@ -208,6 +209,10 @@ def find_input(self, name): """Find the index for an input given its name (`None` if not found)""" return self.input_index.get(name, None) + def find_inputs(self, name_list): + """Return list of indices matching input spec (`None` if not found)""" + return self._find_signals(name_list, self.input_index) + # Property for getting and setting list of input signals input_labels = property( lambda self: list(self.input_index.keys()), # getter @@ -237,6 +242,10 @@ def find_output(self, name): """Find the index for an output given its name (`None` if not found)""" return self.output_index.get(name, None) + def find_outputs(self, name_list): + """Return list of indices matching output spec (`None` if not found)""" + return self._find_signals(name_list, self.output_index) + # Property for getting and setting list of output signals output_labels = property( lambda self: list(self.output_index.keys()), # getter @@ -266,6 +275,10 @@ def find_state(self, name): """Find the index for a state given its name (`None` if not found)""" return self.state_index.get(name, None) + def find_states(self, name_list): + """Return list of indices matching state spec (`None` if not found)""" + return self._find_signals(name_list, self.state_index) + # Property for getting and setting list of state signals state_labels = property( lambda self: list(self.state_index.keys()), # getter diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 55bf3e716..9a42620d8 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -56,30 +56,39 @@ def test_summation_exceptions(): sumblk = ct.summing_junction('u', 'y', dimension=False) -def test_interconnect_implicit(): +@pytest.mark.parametrize("dim", [1, 3]) +def test_interconnect_implicit(dim): """Test the use of implicit connections in interconnect()""" import random # System definition - P = ct.ss2io( - ct.rss(2, 1, 1, strictly_proper=True), - inputs='u', outputs='y', name='P') - kp = ct.tf(random.uniform(1, 10), [1]) - ki = ct.tf(random.uniform(1, 10), [1, 0]) - C = ct.tf2io(kp + ki, inputs='e', outputs='u', name='C') + P = ct.ss2io(ct.rss(2, dim, dim, strictly_proper=True), name='P') + + # Controller defintion: PI in each input/output pair + kp = ct.tf(np.ones((dim, dim, 1)), np.ones((dim, dim, 1))) \ + * random.uniform(1, 10) + ki = random.uniform(1, 10) + num, den = np.zeros((dim, dim, 1)), np.ones((dim, dim, 2)) + for i, j in zip(range(dim), range(dim)): + num[i, j] = ki + den[i, j] = np.array([1, 0]) + ki = ct.tf(num, den) + C = ct.tf2io(kp + ki, name='C', + inputs=[f'e[{i}]' for i in range(dim)], + outputs=[f'u[{i}]' for i in range(dim)]) # same but static C2 C2 = ct.tf(random.uniform(1, 10), 1, inputs='e', outputs='u', name='C2') # Block diagram computation - Tss = ct.feedback(P * C, 1) - Tss2 = ct.feedback(P * C2, 1) + Tss = ct.feedback(P * C, np.eye(dim)) + Tss2 = ct.feedback(P * C2, np.eye(dim)) # Construct the interconnection explicitly Tio_exp = ct.interconnect( (C, P), - connections = [['P.u', 'C.u'], ['C.e', '-P.y']], + connections=[['P.u', 'C.u'], ['C.e', '-P.y']], inplist='C.e', outlist='P.y') # Compare to bdalg computation @@ -89,9 +98,10 @@ def test_interconnect_implicit(): np.testing.assert_almost_equal(Tio_exp.D, Tss.D) # Construct the interconnection via a summing junction - sumblk = ct.summing_junction(inputs=['r', '-y'], output='e', name="sum") + sumblk = ct.summing_junction( + inputs=['r', '-y'], output='e', dimension=dim, name="sum") Tio_sum = ct.interconnect( - (C, P, sumblk), inplist=['r'], outlist=['y']) + [C, P, sumblk], inplist=['r'], outlist=['y'], debug=True) np.testing.assert_almost_equal(Tio_sum.A, Tss.A) np.testing.assert_almost_equal(Tio_sum.B, Tss.B) @@ -109,14 +119,18 @@ def test_interconnect_implicit(): # Setting connections to False should lead to an empty connection map empty = ct.interconnect( - (C, P, sumblk), connections=False, inplist=['r'], outlist=['y']) - np.testing.assert_allclose(empty.connect_map, np.zeros((4, 3))) - - # Implicit summation across repeated signals - kp_io = ct.tf2io(kp, inputs='e', outputs='u', name='kp') - ki_io = ct.tf2io(ki, inputs='e', outputs='u', name='ki') + [C, P, sumblk], connections=False, inplist=['r'], outlist=['y']) + np.testing.assert_allclose(empty.connect_map, np.zeros((4*dim, 3*dim))) + + # Implicit summation across repeated signals (using updated labels) + kp_io = ct.tf2io( + kp, inputs=dim, input_prefix='e', + outputs=dim, output_prefix='u', name='kp') + ki_io = ct.tf2io( + ki, inputs=dim, input_prefix='e', + outputs=dim, output_prefix='u', name='ki') Tio_sum = ct.interconnect( - (kp_io, ki_io, P, sumblk), inplist=['r'], outlist=['y']) + [kp_io, ki_io, P, sumblk], inplist=['r'], outlist=['y']) np.testing.assert_almost_equal(Tio_sum.A, Tss.A) np.testing.assert_almost_equal(Tio_sum.B, Tss.B) np.testing.assert_almost_equal(Tio_sum.C, Tss.C) @@ -135,7 +149,7 @@ def test_interconnect_implicit(): # Make sure that repeated inplist/outlist names work pi_io = ct.interconnect( - (kp_io, ki_io), inplist=['e'], outlist=['u']) + [kp_io, ki_io], inplist=['e'], outlist=['u']) pi_ss = ct.tf2ss(kp + ki) np.testing.assert_almost_equal(pi_io.A, pi_ss.A) np.testing.assert_almost_equal(pi_io.B, pi_ss.B) @@ -144,7 +158,7 @@ def test_interconnect_implicit(): # Default input and output lists, along with singular versions Tio_sum = ct.interconnect( - (kp_io, ki_io, P, sumblk), input='r', output='y') + [kp_io, ki_io, P, sumblk], input='r', output='y', debug=True) np.testing.assert_almost_equal(Tio_sum.A, Tss.A) np.testing.assert_almost_equal(Tio_sum.B, Tss.B) np.testing.assert_almost_equal(Tio_sum.C, Tss.C) @@ -233,18 +247,24 @@ def test_string_inputoutput(): P2 = ct.rss(2, 1, 1) P2_iosys = ct.LinearIOSystem(P2, inputs='y1', outputs='y2') - P_s1 = ct.interconnect([P1_iosys, P2_iosys], inputs='u1', outputs=['y2']) + P_s1 = ct.interconnect( + [P1_iosys, P2_iosys], inputs='u1', outputs=['y2'], debug=True) assert P_s1.input_index == {'u1' : 0} + assert P_s1.output_index == {'y2' : 0} P_s2 = ct.interconnect([P1_iosys, P2_iosys], input='u1', outputs=['y2']) assert P_s2.input_index == {'u1' : 0} + assert P_s2.output_index == {'y2' : 0} P_s1 = ct.interconnect([P1_iosys, P2_iosys], inputs=['u1'], outputs='y2') + assert P_s1.input_index == {'u1' : 0} assert P_s1.output_index == {'y2' : 0} P_s2 = ct.interconnect([P1_iosys, P2_iosys], inputs=['u1'], output='y2') + assert P_s2.input_index == {'u1' : 0} assert P_s2.output_index == {'y2' : 0} + def test_linear_interconnect(): tf_ctrl = ct.tf(1, (10.1, 1), inputs='e', outputs='u', name='ctrl') tf_plant = ct.tf(1, (10.1, 1), inputs='u', outputs='y', name='plant') @@ -443,4 +463,83 @@ def test_interconnect_partial_feedback( np.testing.assert_allclose(icsys.B, partial.B) np.testing.assert_allclose(icsys.C, partial.C) np.testing.assert_allclose(icsys.D, partial.D) ->>>>>>> 7c86239 (add/move interconnect unit tests(); clean up list/tuple; small fixes) + + +def test_interconnect_doctest(): + P = ct.rss( + states=6, name='P', strictly_proper=True, + inputs=['u[0]', 'u[1]', 'v[0]', 'v[1]'], + outputs=['y[0]', 'y[1]', 'z[0]', 'z[1]']) + C = ct.rss(4, 2, 2, name='C', input_prefix='e', output_prefix='u') + sumblk = ct.summing_junction( + inputs=['r', '-y'], outputs='e', dimension=2, name='sum') + + clsys1 = ct.interconnect( + [C, P, sumblk], + connections=[ + ['P.u[0]', 'C.u[0]'], ['P.u[1]', 'C.u[1]'], + ['C.e[0]', 'sum.e[0]'], ['C.e[1]', 'sum.e[1]'], + ['sum.y[0]', 'P.y[0]'], ['sum.y[1]', 'P.y[1]'], + ], + inplist=['sum.r[0]', 'sum.r[1]', 'P.v[0]', 'P.v[1]'], + outlist=['P.y[0]', 'P.y[1]', 'P.z[0]', 'P.z[1]', 'C.u[0]', 'C.u[1]'] + ) + + clsys2 = ct.interconnect( + [C, P, sumblk], + connections=[ + ['P.u[0:2]', 'C.u[0:2]'], + ['C.e[0:2]', 'sum.e[0:2]'], + ['sum.y[0:2]', 'P.y[0:2]'] + ], + inplist=['sum.r[0:2]', 'P.v[0:2]'], + outlist=['P.y[0:2]', 'P.z[0:2]', 'C.u[0:2]'] + ) + np.testing.assert_equal(clsys2.A, clsys1.A) + np.testing.assert_equal(clsys2.B, clsys1.B) + np.testing.assert_equal(clsys2.C, clsys1.C) + np.testing.assert_equal(clsys2.D, clsys1.D) + + clsys3 = ct.interconnect( + [C, P, sumblk], + connections=[['P.u', 'C.u'], ['C.e', 'sum.e'], ['sum.y', 'P.y']], + inplist=['sum.r', 'P.v'], outlist=['P.y', 'P.z', 'C.u'] + ) + np.testing.assert_equal(clsys3.A, clsys1.A) + np.testing.assert_equal(clsys3.B, clsys1.B) + np.testing.assert_equal(clsys3.C, clsys1.C) + np.testing.assert_equal(clsys3.D, clsys1.D) + + clsys4 = ct.interconnect( + [C, P, sumblk], + connections=[['P.u', 'C'], ['C', 'sum'], ['sum.y', 'P.y']], + inplist=['sum.r', 'P.v'], outlist=['P', 'C.u'] + ) + np.testing.assert_equal(clsys4.A, clsys1.A) + np.testing.assert_equal(clsys4.B, clsys1.B) + np.testing.assert_equal(clsys4.C, clsys1.C) + np.testing.assert_equal(clsys4.D, clsys1.D) + + clsys5 = ct.interconnect( + [C, P, sumblk], + inplist=['sum.r', 'P.v'], outlist=['P', 'C.u'] + ) + np.testing.assert_equal(clsys5.A, clsys1.A) + np.testing.assert_equal(clsys5.B, clsys1.B) + np.testing.assert_equal(clsys5.C, clsys1.C) + np.testing.assert_equal(clsys5.D, clsys1.D) + + +def test_interconnect_rewrite(): + sys = ct.rss( + states=2, name='sys', strictly_proper=True, + inputs=['u[0]', 'u[1]', 'v[0]', 'v[1]', 'w[0]', 'w[1]'], + outputs=['y[0]', 'y[1]', 'z[0]', 'z[1]', 'z[2]']) + + # Create an input/output system w/out inplist, outlist + icsys = ct.interconnect( + [sys], connections=[['sys.v', 'sys.y']], + inputs=['u', 'w'], + outputs=['y', 'z']) + + assert icsys.input_labels == ['u[0]', 'u[1]', 'w[0]', 'w[1]'] diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 59338fc62..4012770ba 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1789,7 +1789,7 @@ def test_interconnect_add_unused(): # Try a normal interconnection G1 = ct.interconnect( - [P, S, C], inputs=['r', 'u2'], outputs=['y1', 'y2']) + [P, S, C], inputs=['r', 'u2'], outputs=['y1', 'y2'], debug=True) # Same system, but using add_unused G2 = ct.interconnect( diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index cf30b94aa..14bf686c5 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -293,3 +293,36 @@ def test_duplicate_sysname(): sys = ct.rss(4, 1, 1, name='sys') with pytest.warns(UserWarning, match="duplicate object found"): res = sys * sys + + +# Finding signals +def test_find_signals(): + sys = ct.rss( + states=['x[1]', 'x[2]', 'x[3]', 'x[4]', 'x4', 'x5'], + inputs=['u[0]', 'u[1]', 'u[2]', 'v[0]', 'v[1]'], + outputs=['y[0]', 'y[1]', 'y[2]', 'z[0]', 'z1'], + name='sys') + + # States + assert sys.find_states('x[1]') == [0] + assert sys.find_states('x') == [0, 1, 2, 3] + assert sys.find_states('x4') == [4] + assert sys.find_states(['x4', 'x5']) == [4, 5] + assert sys.find_states(['x', 'x5']) == [0, 1, 2, 3, 5] + assert sys.find_states(['x[2:]']) == [1, 2, 3] + + # Inputs + assert sys.find_inputs('u[1]') == [1] + assert sys.find_inputs('u') == [0, 1, 2] + assert sys.find_inputs('v') == [3, 4] + assert sys.find_inputs(['u', 'v']) == [0, 1, 2, 3, 4] + assert sys.find_inputs(['u[1:]', 'v']) == [1, 2, 3, 4] + assert sys.find_inputs(['u', 'v[:1]']) == [0, 1, 2, 3] + + # Outputs + assert sys.find_outputs('y[1]') == [1] + assert sys.find_outputs('y') == [0, 1, 2] + assert sys.find_outputs('z') == [3] + assert sys.find_outputs(['y', 'z']) == [0, 1, 2, 3] + assert sys.find_outputs(['y[1:]', 'z']) == [1, 2, 3] + assert sys.find_outputs(['y', 'z[:1]']) == [0, 1, 2, 3] diff --git a/doc/iosys.rst b/doc/iosys.rst index 0f6a80b4d..8f2637af8 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -13,7 +13,8 @@ The dynamics of the system can be in continuous or discrete time. To simulate an input/output system, use the :func:`~control.input_output_response` function:: - t, y = ct.input_output_response(io_sys, T, U, X0, params) + resp = ct.input_output_response(io_sys, T, U, X0, params) + t, y, x = resp.time, resp.outputs, resp.states An input/output system can be linearized around an equilibrium point to obtain a :class:`~control.StateSpace` linear system. Use the @@ -256,6 +257,119 @@ of the interconnected system) is not found, but inputs and outputs of individual systems that are not connected to other systems are left unconnected (so be careful!). +Advanced specification of signal names +-------------------------------------- + +In addition to manual specification of signal names and automatic +connection of signals with the same name, the +:func:`~control.interconnect` has a variety of other mechanisms +available for specifying signal names. The following forms are +recognized for the `connections`, `inplist`, and `outlist` +parameters:: + + (subsys, index, gain) tuple form with integer indices + ('sysname', 'signal', gain) tuple form with name lookup + 'sysname.signal[i]' string form (gain = 1) + '-sysname.signal[i]' set gain to -1 + (subsys, [i1, ..., iN], gain) signals with indices i1, ..., in + 'sysname.signal[i:j]' range of signal names, i through j-1 + 'sysname' all input or outputs of system + 'signal' all matching signals (in any subsystem) + +For tuple forms, mixed specifications using integer indices and +strings are possible. + +For the index range form `sysname.signal[i:j]`, if either `i` or `j` +is not specified, then it defaults to the minimum or maximum value of +the signal range. Note that despite the similarity to slice notation, +negative indices and step specifications are not supported. + +Using these various forms can simplfy the specification of +interconnections. For example, consider a process with inputs 'u' and +'v', each of dimension 2, and two outputs 'w' and 'y', each of +dimension 2:: + + P = ct.rss( + states=6, name='P', strictly_proper=True, + inputs=['u[0]', 'u[1]', 'v[0]', 'v[1]'], + outputs=['y[0]', 'y[1]', 'z[0]', 'z[1]']) + +Suppose we construct a controller with 2 inputs and 2 outputs that +takes the (2-dimensional) error `e` and outputs and control signal `u`:: + + C = ct.rss(4, 2, 2, name='C', input_prefix='e', output_prefix='u') + +Finally, we include a summing block that will take the difference between +the reference input `r` and the measured output `y`:: + + sumblk = ct.summing_junction( + inputs=['r', '-y'], outputs='e', dimension=2, name='sum') + +The closed loop system should close the loop around the process +outputs `y` and inputs `u`, leaving the process inputs `v` and outputs +'w', as well as the reference input `r`. We would like the output of +the closed loop system to consist of all system outputs `y` and `z`, +as well as the controller input `u`. + +This collection of systems can be combined in a variety of ways. The +most explict would specify every signal:: + + clsys1 = ct.interconnect( + [C, P, sumblk], + connections=[ + ['P.u[0]', 'C.u[0]'], ['P.u[1]', 'C.u[1]'], + ['C.e[0]', 'sum.e[0]'], ['C.e[1]', 'sum.e[1]'], + ['sum.y[0]', 'P.y[0]'], ['sum.y[1]', 'P.y[1]'], + ], + inplist=['sum.r[0]', 'sum.r[1]', 'P.v[0]', 'P.v[1]'], + outlist=['P.y[0]', 'P.y[1]', 'P.z[0]', 'P.z[1]', 'C.u[0]', 'C.u[1]'] + ) + +This connections can be simplified using signal ranges: + + clsys2 = ct.interconnect( + [C, P, sumblk], + connections=[ + ['P.u[0:2]', 'C.u[0:2]'], + ['C.e[0:2]', 'sum.e[0:2]'], + ['sum.y[0:2]', 'P.y[0:2]'] + ], + inplist=['sum.r[0:2]', 'P.v[0:2]'], + outlist=['P.y[0:2]', 'P.z[0:2]', 'C.u[0:2]'] + ) + +An even simpler form can be used by omitting the range specification +when all signals with the same prefix are used:: + + clsys3 = ct.interconnect( + [C, P, sumblk], + connections=[['P.u', 'C.u'], ['C.e', 'sum.e'], ['sum.y', 'P.y']], + inplist=['sum.r', 'P.v'], outlist=['P.y', 'P.z', 'C.u'] + ) + +A further simplification is possible when all of the inputs or outputs +of an individual system are used in a given specification: + + clsys4 = ct.interconnect( + [C, P, sumblk], + connections=[['P.u', 'C'], ['C', 'sum'], ['sum.y', 'P.y']], + inplist=['sum.r', 'P.v'], outlist=['P', 'C.u'] + ) + +And finally, since we have named the signals throughout the system in +a consistent way, we could let :func:`ct.interconnect` do all of the +work: + + clsys5 = ct.interconnect( + [C, P, sumblk], inplist=['sum.r', 'P.v'], outlist=['P', 'C.u'] + ) + +Various other simplifications are possible, but it can sometimes be +complicated to debug error message when things go wrong. Setting +`debug=True` when calling :func:`~control.interconnect` prints out +information about how the arguments are processed that may be helpful +in understanding what is going wrong. + Automated creation of state feedback systems -------------------------------------------- From 4d9ea51826b2d33b8130a23e13d37ec8d1bb019b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 1 Apr 2023 22:42:39 -0700 Subject: [PATCH 0285/1025] allow {input,output}_prefix in interconnect() + documentation updates --- control/iosys.py | 37 ++++++++++++++++++++++++------------- doc/iosys.rst | 6 +++--- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 96c0a9570..9b48c9ad2 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -142,8 +142,7 @@ def __init__(self, params=None, **kwargs): """ # Store the system name, inputs, outputs, and states - name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs) + name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) # Initialize the data structure # Note: don't use super() to override LinearIOSystem/StateSpace MRO @@ -910,8 +909,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, dt = kwargs.pop('dt', None) # Process keyword arguments (except dt) - name, inputs, outputs, states, _ = _process_namedio_keywords( - kwargs, end=True) + name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) # Initialize the system list and index self.syslist = list(syslist) # insure modifications can be made @@ -1012,7 +1010,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, # Note: don't use super() to override LinearICSystem/StateSpace MRO InputOutputSystem.__init__( self, inputs=inputs, outputs=outputs, - states=states, params=params, dt=dt, name=name) + states=states, params=params, dt=dt, name=name, **kwargs) # Convert the list of interconnections to a connection map (matrix) self.connect_map = np.zeros((ninputs, noutputs)) @@ -1241,7 +1239,9 @@ def set_output_map(self, output_map): ---------- output_map : 2D array Specify the matrix that will be used to multiply the vector of - subsystem outputs to obtain the vector of system outputs. + subsystem outputs concatenated with subsystem inputs to obtain + the vector of system outputs. + """ # Figure out the number of internal inputs and outputs ninputs = sum(sys.ninputs for sys in self.syslist) @@ -2552,7 +2552,7 @@ def interconnect( signals are given names, then the forms 'sys.sig' or ('sys', 'sig') are also recognized. Finally, for multivariable systems the signal index can be given as a list, for example '(subsys_i, [inp_j1, ..., - inp_jn])', as as a slice, for example, 'sys.sig[i:j]', or as a base + inp_jn])'; as a slice, for example, 'sys.sig[i:j]'; or as a base name `sys.sig` (which matches `sys.sig[i]`). Similarly, each output-spec should describe an output signal from @@ -2715,7 +2715,7 @@ def interconnect( ... [P, C], connections=[['P', 'C'], ['C', '-P']], ... inplist=['C'], outlist=['P']) - This feedback system can also be constructed using the + A feedback system can also be constructed using the :func:`~control.summing_block` function and the ability to automatically interconnect signals with the same names: @@ -2734,7 +2734,7 @@ def interconnect( default being to add the suffix '$copy' to the system name. In addition to explicit lists of system signals, it is possible to - lists vectors of signals, using one of the following forms: + lists vectors of signals, using one of the following forms:: (subsys, [i1, ..., iN], gain) signals with indices i1, ..., in 'sysname.signal[i:j]' range of signal names, i through j-1 @@ -2760,8 +2760,7 @@ def interconnect( """ dt = kwargs.pop('dt', None) # by pass normal 'dt' processing - name, inputs, outputs, states, _ = _process_namedio_keywords( - kwargs, end=True) + name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) if not check_unused and (ignore_inputs or ignore_outputs): raise ValueError('check_unused is False, but either ' @@ -3017,10 +3016,21 @@ def interconnect( outlist, outputs = new_outlist, new_outputs dprint(f" {outlist=}\n {outputs=}") + # Make sure inputs and outputs match inplist outlist, if specified + if inputs and ( + isinstance(inputs, (list, tuple)) and len(inputs) != len(inplist) + or isinstance(inputs, int) and inputs != len(inplist)): + raise ValueError("`inputs` incompatible with `inplist`") + if outputs and ( + isinstance(outputs, (list, tuple)) and len(outputs) != len(outlist) + or isinstance(outputs, int) and outputs != len(outlist)): + raise ValueError("`outputs` incompatible with `outlist`") + newsys = InterconnectedSystem( syslist, connections=connections, inplist=inplist, outlist=outlist, inputs=inputs, outputs=outputs, states=states, - params=params, dt=dt, name=name, warn_duplicate=warn_duplicate) + params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, + **kwargs) # See if we should add any signals if add_unused: @@ -3040,7 +3050,8 @@ def interconnect( newsys = InterconnectedSystem( syslist, connections=connections, inplist=inplist, outlist=outlist, inputs=inputs, outputs=outputs, states=states, - params=params, dt=dt, name=name, warn_duplicate=warn_duplicate) + params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, + **kwargs) # check for implicitly dropped signals if check_unused: diff --git a/doc/iosys.rst b/doc/iosys.rst index 8f2637af8..dddcb00c9 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -325,7 +325,7 @@ most explict would specify every signal:: outlist=['P.y[0]', 'P.y[1]', 'P.z[0]', 'P.z[1]', 'C.u[0]', 'C.u[1]'] ) -This connections can be simplified using signal ranges: +This connections can be simplified using signal ranges:: clsys2 = ct.interconnect( [C, P, sumblk], @@ -348,7 +348,7 @@ when all signals with the same prefix are used:: ) A further simplification is possible when all of the inputs or outputs -of an individual system are used in a given specification: +of an individual system are used in a given specification:: clsys4 = ct.interconnect( [C, P, sumblk], @@ -358,7 +358,7 @@ of an individual system are used in a given specification: And finally, since we have named the signals throughout the system in a consistent way, we could let :func:`ct.interconnect` do all of the -work: +work:: clsys5 = ct.interconnect( [C, P, sumblk], inplist=['sum.r', 'P.v'], outlist=['P', 'C.u'] From ca5e3ea1ed795285e2003a4ed72ed27bc5671277 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 1 Apr 2023 23:06:06 -0700 Subject: [PATCH 0286/1025] xfail for MIMO w/out slycot --- control/tests/interconnect_test.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 9a42620d8..095e6076f 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -61,6 +61,9 @@ def test_interconnect_implicit(dim): """Test the use of implicit connections in interconnect()""" import random + if dim != 1 and not ct.slycot_check(): + pytest.xfail("slycot not installed") + # System definition P = ct.ss2io(ct.rss(2, dim, dim, strictly_proper=True), name='P') From eafec5bca61c835a3f33bf4a62ca76ff68121203 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 21 Apr 2023 14:02:41 -0700 Subject: [PATCH 0287/1025] Fix signal/system naming in indexed systems --- control/namedio.py | 2 ++ control/statesp.py | 13 +++++++++---- control/tests/config_test.py | 15 +++++++++++++++ control/tests/statesp_test.py | 33 +++++++++++++++++++-------------- control/tests/xferfcn_test.py | 13 ++++++++++++- control/xferfcn.py | 18 ++++++++++++------ 6 files changed, 69 insertions(+), 25 deletions(-) diff --git a/control/namedio.py b/control/namedio.py index dee11fcc0..4d955873c 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -23,6 +23,8 @@ 'namedio.linearized_system_name_suffix': '$linearized', 'namedio.sampled_system_name_prefix': '', 'namedio.sampled_system_name_suffix': '$sampled', + 'namedio.indexed_system_name_prefix': '', + 'namedio.indexed_system_name_suffix': '$indexed', 'namedio.converted_system_name_prefix': '', 'namedio.converted_system_name_suffix': '$converted', } diff --git a/control/statesp.py b/control/statesp.py index d3d1ab1d0..0dbc37c8b 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1294,10 +1294,15 @@ def __getitem__(self, indices): """Array style access""" if len(indices) != 2: raise IOError('must provide indices of length 2 for state space') - i = indices[0] - j = indices[1] - return StateSpace(self.A, self.B[:, j], self.C[i, :], - self.D[i, j], self.dt) + outdx = indices[0] if isinstance(indices[0], list) else [indices[0]] + inpdx = indices[1] if isinstance(indices[1], list) else [indices[1]] + sysname = config.defaults['namedio.indexed_system_name_prefix'] + \ + self.name + config.defaults['namedio.indexed_system_name_suffix'] + return StateSpace( + self.A, self.B[:, inpdx], self.C[outdx, :], self.D[outdx, inpdx], + self.dt, name=sysname, + inputs=[self.input_labels[i] for i in list(inpdx)], + outputs=[self.output_labels[i] for i in list(outdx)]) def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, name=None, copy_names=True, **kwargs): diff --git a/control/tests/config_test.py b/control/tests/config_test.py index c36f67280..15229139e 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -301,3 +301,18 @@ def test_get_param_last(self): assert ct.config._get_param( 'config', 'second', kwargs, pop=True, last=True) == 2 + + def test_system_indexing(self): + # Default renaming + sys = ct.TransferFunction( + [ [ [1], [2], [3]], [ [3], [4], [5]] ], + [ [[1, 2], [1, 3], [1, 4]], [[1, 4], [1, 5], [1, 6]] ], 0.5) + sys1 = sys[1:, 1:] + assert sys1.name == sys.name + '$indexed' + + # Reset the format + ct.config.set_defaults( + 'namedio', indexed_system_name_prefix='PRE', + indexed_system_name_suffix='POST') + sys2 = sys[1:, 1:] + assert sys2.name == 'PRE' + sys.name + 'POST' diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index fa837f30d..1182674c1 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -479,22 +479,27 @@ def test_append_tf(self): def test_array_access_ss(self): - sys1 = StateSpace([[1., 2.], [3., 4.]], - [[5., 6.], [6., 8.]], - [[9., 10.], [11., 12.]], - [[13., 14.], [15., 16.]], 1) - - sys1_11 = sys1[0, 1] - np.testing.assert_array_almost_equal(sys1_11.A, + sys1 = StateSpace( + [[1., 2.], [3., 4.]], + [[5., 6.], [6., 8.]], + [[9., 10.], [11., 12.]], + [[13., 14.], [15., 16.]], 1, + inputs=['u0', 'u1'], outputs=['y0', 'y1']) + + sys1_01 = sys1[0, 1] + np.testing.assert_array_almost_equal(sys1_01.A, sys1.A) - np.testing.assert_array_almost_equal(sys1_11.B, + np.testing.assert_array_almost_equal(sys1_01.B, sys1.B[:, 1:2]) - np.testing.assert_array_almost_equal(sys1_11.C, + np.testing.assert_array_almost_equal(sys1_01.C, sys1.C[0:1, :]) - np.testing.assert_array_almost_equal(sys1_11.D, + np.testing.assert_array_almost_equal(sys1_01.D, sys1.D[0, 1]) - assert sys1.dt == sys1_11.dt + assert sys1.dt == sys1_01.dt + assert sys1_01.input_labels == ['u1'] + assert sys1_01.output_labels == ['y0'] + assert sys1_01.name == sys1.name + "$indexed" def test_dc_gain_cont(self): """Test DC gain for continuous-time state-space systems.""" @@ -831,7 +836,7 @@ def test_error_u_dynamics_mimo(self, u, sys222): sys222.dynamics(0, (1, 1), u) with pytest.raises(ValueError): sys222.output(0, (1, 1), u) - + def test_sample_named_signals(self): sysc = ct.StateSpace(1.1, 1, 1, 1, inputs='u', outputs='y', states='a') @@ -859,14 +864,14 @@ def test_sample_named_signals(self): assert sysd_newnames.find_output('x') == 0 assert sysd_newnames.find_output('y') is None assert sysd_newnames.find_state('b') == 0 - assert sysd_newnames.find_state('a') is None + assert sysd_newnames.find_state('a') is None # test just one name sysd_newnames = sysc.sample(0.1, inputs='v') assert sysd_newnames.find_input('v') == 0 assert sysd_newnames.find_input('u') is None assert sysd_newnames.find_output('y') == 0 assert sysd_newnames.find_output('x') is None - + class TestRss: """These are tests for the proper functionality of statesp.rss.""" diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index 7d561e770..b999acd95 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -392,12 +392,20 @@ def test_pow(self): def test_slice(self): sys = TransferFunction( [ [ [1], [2], [3]], [ [3], [4], [5]] ], - [ [[1, 2], [1, 3], [1, 4]], [[1, 4], [1, 5], [1, 6]] ]) + [ [[1, 2], [1, 3], [1, 4]], [[1, 4], [1, 5], [1, 6]] ], + inputs=['u0', 'u1', 'u2'], outputs=['y0', 'y1'], name='sys') + sys1 = sys[1:, 1:] assert (sys1.ninputs, sys1.noutputs) == (2, 1) + assert sys1.input_labels == ['u1', 'u2'] + assert sys1.output_labels == ['y1'] + assert sys1.name == 'sys$indexed' sys2 = sys[:2, :2] assert (sys2.ninputs, sys2.noutputs) == (2, 2) + assert sys2.input_labels == ['u0', 'u1'] + assert sys2.output_labels == ['y0', 'y1'] + assert sys2.name == 'sys$indexed' sys = TransferFunction( [ [ [1], [2], [3]], [ [3], [4], [5]] ], @@ -405,6 +413,9 @@ def test_slice(self): sys1 = sys[1:, 1:] assert (sys1.ninputs, sys1.noutputs) == (2, 1) assert sys1.dt == 0.5 + assert sys1.input_labels == ['u[1]', 'u[2]'] + assert sys1.output_labels == ['y[1]'] + assert sys1.name == sys.name + '$indexed' def test__isstatic(self): numstatic = 1.1 diff --git a/control/xferfcn.py b/control/xferfcn.py index 60a40eca0..8715fe0b6 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -791,8 +791,7 @@ def __getitem__(self, key): if stop2 is None: stop2 = len(self.num[0]) - num = [] - den = [] + num, den = [], [] for i in range(start1, stop1, step1): num_i = [] den_i = [] @@ -801,10 +800,17 @@ def __getitem__(self, key): den_i.append(self.den[i][j]) num.append(num_i) den.append(den_i) - if self.isctime(): - return TransferFunction(num, den) - else: - return TransferFunction(num, den, self.dt) + + # Save the label names + outputs = [self.output_labels[i] for i in range(start1, stop1, step1)] + inputs = [self.input_labels[j] for j in range(start2, stop2, step2)] + + # Create the system name + sysname = config.defaults['namedio.indexed_system_name_prefix'] + \ + self.name + config.defaults['namedio.indexed_system_name_suffix'] + + return TransferFunction( + num, den, self.dt, inputs=inputs, outputs=outputs, name=sysname) def freqresp(self, omega): """(deprecated) Evaluate transfer function at complex frequencies. From b8ba051bfc51456cfb75c2cc26074732f7dcf885 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 3 Jun 2023 11:44:41 -0700 Subject: [PATCH 0288/1025] fix MIMO interconnect test case after rebase --- control/tests/interconnect_test.py | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 095e6076f..b301d3c26 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -81,8 +81,9 @@ def test_interconnect_implicit(dim): outputs=[f'u[{i}]' for i in range(dim)]) # same but static C2 - C2 = ct.tf(random.uniform(1, 10), 1, - inputs='e', outputs='u', name='C2') + C2 = ct.tf2io(kp * random.uniform(1, 10), name='C2', + inputs=[f'e[{i}]' for i in range(dim)], + outputs=[f'u[{i}]' for i in range(dim)]) # Block diagram computation Tss = ct.feedback(P * C, np.eye(dim)) @@ -113,7 +114,7 @@ def test_interconnect_implicit(dim): # test whether signal names work for static system C2 Tio_sum2 = ct.interconnect( - [C2, P, sumblk], inputs='r', outputs='y') + [C2, P, sumblk], inplist='r', outlist='y') np.testing.assert_almost_equal(Tio_sum2.A, Tss2.A) np.testing.assert_almost_equal(Tio_sum2.B, Tss2.B) @@ -139,17 +140,6 @@ def test_interconnect_implicit(dim): np.testing.assert_almost_equal(Tio_sum.C, Tss.C) np.testing.assert_almost_equal(Tio_sum.D, Tss.D) - # TODO: interconnect a MIMO system using implicit connections - # P = control.ss2io( - # control.rss(2, 2, 2, strictly_proper=True), - # input_prefix='u', output_prefix='y', name='P') - # C = control.ss2io( - # control.rss(2, 2, 2), - # input_prefix='e', output_prefix='u', name='C') - # sumblk = control.summing_junction( - # inputs=['r', '-y'], output='e', dimension=2) - # S = control.interconnect([P, C, sumblk], inplist='r', outlist='y') - # Make sure that repeated inplist/outlist names work pi_io = ct.interconnect( [kp_io, ki_io], inplist=['e'], outlist=['u']) From 55e2b55e375765db96ee031055c87b85666a7f3f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 3 Jun 2023 22:23:53 -0700 Subject: [PATCH 0289/1025] don't allow . in signal/system names (state names are OK) --- control/namedio.py | 15 ++++++++++++--- control/tests/namedio_test.py | 9 +++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/control/namedio.py b/control/namedio.py index 4d955873c..a37155f09 100644 --- a/control/namedio.py +++ b/control/namedio.py @@ -60,6 +60,9 @@ def _name_or_default(self, name=None, prefix_suffix_name=None): if name is None: name = "sys[{}]".format(NamedIOSystem._idCounter) NamedIOSystem._idCounter += 1 + elif re.match(r".*\..*", name): + raise ValueError(f"invalid system name '{name}' ('.' not allowed)") + prefix = "" if prefix_suffix_name is None else config.defaults[ 'namedio.' + prefix_suffix_name + '_system_name_prefix'] suffix = "" if prefix_suffix_name is None else config.defaults[ @@ -187,7 +190,6 @@ def copy(self, name=None, use_prefix_suffix=True): return newsys def set_inputs(self, inputs, prefix='u'): - """Set the number/names of the system inputs. Parameters @@ -271,7 +273,7 @@ def set_states(self, states, prefix='x'): """ self.nstates, self.state_index = \ - _process_signal_list(states, prefix=prefix) + _process_signal_list(states, prefix=prefix, allow_dot=True) def find_state(self, name): """Find the index for a state given its name (`None` if not found)""" @@ -626,7 +628,7 @@ def _process_dt_keyword(keywords, defaults={}, static=False): # Utility function to parse a list of signals -def _process_signal_list(signals, prefix='s'): +def _process_signal_list(signals, prefix='s', allow_dot=False): if signals is None: # No information provided; try and make it up later return None, {} @@ -637,10 +639,17 @@ def _process_signal_list(signals, prefix='s'): elif isinstance(signals, str): # Single string given => single signal with given name + if not allow_dot and re.match(r".*\..*", signals): + raise ValueError( + f"invalid signal name '{signals}' ('.' not allowed)") return 1, {signals: 0} elif all(isinstance(s, str) for s in signals): # Use the list of strings as the signal names + for signal in signals: + if not allow_dot and re.match(r".*\..*", signal): + raise ValueError( + f"invalid signal name '{signal}' ('.' not allowed)") return len(signals), {signals[i]: i for i in range(len(signals))} else: diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index 14bf686c5..5968dc484 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -326,3 +326,12 @@ def test_find_signals(): assert sys.find_outputs(['y', 'z']) == [0, 1, 2, 3] assert sys.find_outputs(['y[1:]', 'z']) == [1, 2, 3] assert sys.find_outputs(['y', 'z[:1]']) == [0, 1, 2, 3] + + +# Invalid signal names +def test_invalid_signal_names(): + with pytest.raises(ValueError, match="invalid signal name"): + sys = ct.rss(4, inputs="input.signal", outputs=1) + + with pytest.raises(ValueError, match="invalid system name"): + sys = ct.rss(4, inputs=1, outputs=1, name="system.subsys") From fb7a4a5e10fb3359219846df4bc7693725bbe7f5 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 7 Jun 2023 22:14:58 -0700 Subject: [PATCH 0290/1025] fix up some warning messages due to converted systems --- control/iosys.py | 5 ++++- control/statesp.py | 7 +++++-- control/tests/namedio_test.py | 2 ++ control/tests/xferfcn_test.py | 2 +- control/xferfcn.py | 3 ++- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 2881c5d64..4d697cf3d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2405,7 +2405,10 @@ def ss(*args, **kwargs): # Create a state space system from an LTI system sys = LinearIOSystem( - _convert_to_statespace(sys, use_prefix_suffix=True), **kwargs) + _convert_to_statespace( + sys, + use_prefix_suffix=not sys._generic_name_check()), + **kwargs) else: raise TypeError("ss(sys): sys must be a StateSpace or " diff --git a/control/statesp.py b/control/statesp.py index d3d1ab1d0..d1fa16b63 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1914,8 +1914,11 @@ def tf2ss(*args, **kwargs): if not isinstance(sys, TransferFunction): raise TypeError("tf2ss(sys): sys must be a TransferFunction " "object.") - return StateSpace(_convert_to_statespace(sys, use_prefix_suffix=True), - **kwargs) + return StateSpace( + _convert_to_statespace( + sys, + use_prefix_suffix=not sys._generic_name_check()), + **kwargs) else: raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index cf30b94aa..80b085b5a 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -135,6 +135,8 @@ def test_io_naming(fun, args, kwargs): sys_r.set_states(state_labels) assert sys_r.state_labels == state_labels + sys_r.name = 'sys' # make sure name is non-generic + # # Set names using keywords and make sure they stick # diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index 7d561e770..078ad4453 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -1254,7 +1254,7 @@ def test_zpk(zeros, poles, gain, args, kwargs): ]) def test_copy_names(create, args, kwargs, convert): # Convert a system with no renaming - sys = create(*args, **kwargs) + sys = create(*args, **kwargs, name='sys') cpy = convert(sys) assert cpy.input_labels == sys.input_labels diff --git a/control/xferfcn.py b/control/xferfcn.py index 60a40eca0..7664c16ac 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1813,7 +1813,8 @@ def ss2tf(*args, **kwargs): if not kwargs.get('outputs'): kwargs['outputs'] = sys.output_labels return TransferFunction( - _convert_to_transfer_function(sys, use_prefix_suffix=True), + _convert_to_transfer_function( + sys, use_prefix_suffix=not sys._generic_name_check()), **kwargs) else: raise TypeError( From 12847455d8466ff3add66301fd20621c499775fb Mon Sep 17 00:00:00 2001 From: James Forbes Date: Thu, 8 Jun 2023 07:59:28 -0400 Subject: [PATCH 0291/1025] Fixed spelling mistake in description --- examples/scherer_etal_ex7_H2_h2syn.py | 2 +- examples/scherer_etal_ex7_Hinf_hinfsyn.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/scherer_etal_ex7_H2_h2syn.py b/examples/scherer_etal_ex7_H2_h2syn.py index 0b47dd8a1..c1f276ab9 100644 --- a/examples/scherer_etal_ex7_H2_h2syn.py +++ b/examples/scherer_etal_ex7_H2_h2syn.py @@ -1,6 +1,6 @@ """H2 design using h2syn. -Demonstrate H2 desing for a SISO plant using h2syn. Based on [1], Ex. 7. +Demonstrate H2 design for a SISO plant using h2syn. Based on [1], Ex. 7. [1] Scherer, Gahinet, & Chilali, "Multiobjective Output-Feedback Control via LMI Optimization", IEEE Trans. Automatic Control, Vol. 42, No. 7, July 1997. diff --git a/examples/scherer_etal_ex7_Hinf_hinfsyn.py b/examples/scherer_etal_ex7_Hinf_hinfsyn.py index 973181154..bdbdba01f 100644 --- a/examples/scherer_etal_ex7_Hinf_hinfsyn.py +++ b/examples/scherer_etal_ex7_Hinf_hinfsyn.py @@ -1,6 +1,6 @@ """Hinf design using hinfsyn. -Demonstrate Hinf desing for a SISO plant using h2syn. Based on [1], Ex. 7. +Demonstrate Hinf design for a SISO plant using h2syn. Based on [1], Ex. 7. [1] Scherer, Gahinet, & Chilali, "Multiobjective Output-Feedback Control via LMI Optimization", IEEE Trans. Automatic Control, Vol. 42, No. 7, July 1997. From d153aed9bbdb05fc48cead6bc95f4819b4555242 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 9 Jun 2023 21:31:38 -0700 Subject: [PATCH 0292/1025] fix bdschur (see issue #911) --- control/canonical.py | 4 +--- control/tests/canonical_test.py | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/control/canonical.py b/control/canonical.py index c84ac1f8f..9c9a2a738 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -450,9 +450,7 @@ def bdschur(a, condmax=None, sort=None): aschur, tschur, condmax) if sort in ('continuous', 'discrete'): - idxs = np.cumsum(np.hstack([0, blksizes[:-1]])) - ev_per_blk = [complex(eigvals[i].real, abs(eigvals[i].imag)) for i in idxs] @@ -470,7 +468,7 @@ def bdschur(a, condmax=None, sort=None): permidx = np.hstack([blkidxs[i] for i in sortidx]) rperm = np.eye(amodal.shape[0])[permidx] - tmodal = tmodal @ rperm + tmodal = tmodal @ rperm.T amodal = rperm @ amodal @ rperm.T blksizes = blksizes[sortidx] diff --git a/control/tests/canonical_test.py b/control/tests/canonical_test.py index f822955fc..ecdaa04cb 100644 --- a/control/tests/canonical_test.py +++ b/control/tests/canonical_test.py @@ -287,6 +287,8 @@ def test_bdschur_sort(eigvals, sorted_blk_eigvals, sort): b, t, blksizes = bdschur(a, sort=sort) assert len(blksizes) == len(sorted_blk_eigvals) + np.testing.assert_allclose(a, t @ b @ t.T) + np.testing.assert_allclose(t.T, np.linalg.inv(t)) blocks = extract_bdiag(b, blksizes) for block, blk_eigval in zip(blocks, sorted_blk_eigvals): From af4fa21a883374cecc9f0f099166f6b80da1f5e9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 10 Jun 2023 07:52:12 -0700 Subject: [PATCH 0293/1025] remove MATLAB-style matrix constructor from string --- control/matlab/wrappers.py | 2 +- control/statesp.py | 3 --- control/tests/statesp_test.py | 11 ----------- control/xferfcn.py | 6 +++--- 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index e7d757248..d98dcabf0 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -48,7 +48,7 @@ def bode(*args, **kwargs): -------- >>> from control.matlab import ss, bode - >>> sys = ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") + >>> sys = ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], 9) >>> mag, phase, omega = bode(sys) .. todo:: diff --git a/control/statesp.py b/control/statesp.py index b2a3934a1..288f1a2ce 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -105,11 +105,8 @@ def _ssmatrix(data, axis=1): """ # Convert the data into an array or matrix, as configured - # If data is passed as a string, use (deprecated?) matrix constructor if config.defaults['statesp.use_numpy_matrix']: arr = np.matrix(data, dtype=float) - elif isinstance(data, str): - arr = np.array(np.matrix(data, dtype=float)) else: arr = np.array(data, dtype=float) ndim = arr.ndim diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 1182674c1..2a96905f4 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -196,17 +196,6 @@ def test_copy_constructor_nodt(self, sys322): sys = StateSpace(sysin) assert sys.dt is None - def test_matlab_style_constructor(self): - """Use (deprecated) matrix-style construction string""" - with pytest.deprecated_call(): - sys = StateSpace("-1 1; 0 2", "0; 1", "1, 0", "0") - assert sys.A.shape == (2, 2) - assert sys.B.shape == (2, 1) - assert sys.C.shape == (1, 2) - assert sys.D.shape == (1, 1) - for X in [sys.A, sys.B, sys.C, sys.D]: - assert ismatarrayout(X) - def test_D_broadcast(self, sys623): """Test broadcast of D=0 to the right shape""" # Giving D as a scalar 0 should broadcast to the right shape diff --git a/control/xferfcn.py b/control/xferfcn.py index 56006d697..7303d5e73 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1640,8 +1640,8 @@ def tf(*args, **kwargs): >>> G = (s + 1)/(s**2 + 2*s + 1) >>> # Convert a StateSpace to a TransferFunction object. - >>> sys_ss = ct.ss("1. -2; 3. -4", "5.; 7", "6. 8", "9.") - >>> sys2 = ct.tf(sys1) + >>> sys_ss = ct.ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], 9) + >>> sys_tf = ct.tf(sys_ss) """ @@ -1801,7 +1801,7 @@ def ss2tf(*args, **kwargs): >>> sys1 = ct.ss2tf(A, B, C, D) >>> sys_ss = ct.ss(A, B, C, D) - >>> sys2 = ct.ss2tf(sys_ss) + >>> sys_tf = ct.ss2tf(sys_ss) """ From 7d4bb963f7a3ad26ff0e73bb393cbfcf11a4b6bd Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 10 Jun 2023 08:47:10 -0700 Subject: [PATCH 0294/1025] remove np.matrix unit test infrastructure --- .github/workflows/doctest.yml | 1 - .github/workflows/python-package-conda.yml | 4 - control/tests/conftest.py | 78 +------- control/tests/iosys_test.py | 1 - control/tests/modelsimp_test.py | 66 +++---- control/tests/statefbk_test.py | 201 ++++++++++----------- control/tests/statesp_test.py | 10 +- control/tests/stochsys_test.py | 17 +- control/tests/timeresp_test.py | 2 +- control/tests/xferfcn_test.py | 42 ++--- 10 files changed, 164 insertions(+), 258 deletions(-) diff --git a/.github/workflows/doctest.yml b/.github/workflows/doctest.yml index 62638d104..49455a5c6 100644 --- a/.github/workflows/doctest.yml +++ b/.github/workflows/doctest.yml @@ -33,7 +33,6 @@ jobs: - name: Run doctest shell: bash -l {0} env: - PYTHON_CONTROL_ARRAY_AND_MATRIX: ${{ matrix.array-and-matrix }} MPLBACKEND: ${{ matrix.mplbackend }} working-directory: doc run: | diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index cea5e542f..04b46a466 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -9,7 +9,6 @@ jobs: ${{ matrix.slycot || 'no' }} Slycot; ${{ matrix.pandas || 'no' }} Pandas; ${{ matrix.cvxopt || 'no' }} CVXOPT - ${{ matrix.array-and-matrix == 1 && '; array and matrix' || '' }} ${{ matrix.mplbackend && format('; {0}', matrix.mplbackend) }} runs-on: ubuntu-latest @@ -22,14 +21,12 @@ jobs: pandas: [""] cvxopt: ["", "conda"] mplbackend: [""] - array-and-matrix: [0] include: - python-version: '3.11' slycot: conda pandas: conda cvxopt: conda mplbackend: QtAgg - array-and-matrix: 1 steps: - uses: actions/checkout@v3 @@ -63,7 +60,6 @@ jobs: - name: Test with pytest shell: bash -l {0} env: - PYTHON_CONTROL_ARRAY_AND_MATRIX: ${{ matrix.array-and-matrix }} MPLBACKEND: ${{ matrix.mplbackend }} run: pytest -v --cov=control --cov-config=.coveragerc control/tests diff --git a/control/tests/conftest.py b/control/tests/conftest.py index b63db3e11..c5ab6cb86 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -13,24 +13,21 @@ # some common pytest marks. These can be used as test decorators or in # pytest.param(marks=) -slycotonly = pytest.mark.skipif(not control.exception.slycot_check(), - reason="slycot not installed") -cvxoptonly = pytest.mark.skipif(not control.exception.cvxopt_check(), - reason="cvxopt not installed") -matrixfilter = pytest.mark.filterwarnings("ignore:.*matrix subclass:" - "PendingDeprecationWarning") -matrixerrorfilter = pytest.mark.filterwarnings("error:.*matrix subclass:" - "PendingDeprecationWarning") +slycotonly = pytest.mark.skipif( + not control.exception.slycot_check(), reason="slycot not installed") +cvxoptonly = pytest.mark.skipif( + not control.exception.cvxopt_check(), reason="cvxopt not installed") @pytest.fixture(scope="session", autouse=True) def control_defaults(): """Make sure the testing session always starts with the defaults. - This should be the first fixture initialized, - so that all other fixtures see the general defaults (unless they set them - themselves) even before importing control/__init__. Enforce this by adding - it as an argument to all other session scoped fixtures. + This should be the first fixture initialized, so that all other + fixtures see the general defaults (unless they set them themselves) + even before importing control/__init__. Enforce this by adding it as an + argument to all other session scoped fixtures. + """ control.reset_defaults() the_defaults = control.config.defaults.copy() @@ -39,63 +36,6 @@ def control_defaults(): assert control.config.defaults == the_defaults -@pytest.fixture(scope="function", autouse=TEST_MATRIX_AND_ARRAY, - params=[pytest.param("arrayout", marks=matrixerrorfilter), - pytest.param("matrixout", marks=matrixfilter)]) -def matarrayout(request): - """Switch the config to use np.ndarray and np.matrix as returns.""" - restore = control.config.defaults['statesp.use_numpy_matrix'] - control.use_numpy_matrix(request.param == "matrixout", warn=False) - yield - control.use_numpy_matrix(restore, warn=False) - - -def ismatarrayout(obj): - """Test if the returned object has the correct type as configured. - - note that isinstance(np.matrix(obj), np.ndarray) is True - """ - use_matrix = control.config.defaults['statesp.use_numpy_matrix'] - return (isinstance(obj, np.ndarray) - and isinstance(obj, np.matrix) == use_matrix) - - -def asmatarrayout(obj): - """Return a object according to the configured default.""" - use_matrix = control.config.defaults['statesp.use_numpy_matrix'] - matarray = np.asmatrix if use_matrix else np.asarray - return matarray(obj) - - -@contextmanager -def check_deprecated_matrix(): - """Check that a call produces a deprecation warning because of np.matrix.""" - use_matrix = control.config.defaults['statesp.use_numpy_matrix'] - if use_matrix: - with pytest.deprecated_call(): - try: - yield - finally: - pass - else: - yield - - -@pytest.fixture(scope="function", - params=[p for p, usebydefault in - [(pytest.param(np.array, - id="arrayin"), - True), - (pytest.param(np.matrix, - id="matrixin", - marks=matrixfilter), - False)] - if usebydefault or TEST_MATRIX_AND_ARRAY]) -def matarrayin(request): - """Use array and matrix to construct input data in tests.""" - return request.param - - @pytest.fixture(scope="function") def editsdefaults(): """Make sure any changes to the defaults only last during a test.""" diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 4012770ba..0e874c054 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -17,7 +17,6 @@ import control as ct from control import iosys as ios -from control.tests.conftest import matrixfilter class TestIOSys: diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 0746e3fe2..49c2afd58 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -9,7 +9,7 @@ from control import StateSpace, forced_response, tf, rss, c2d from control.exception import ControlMIMONotImplemented -from control.tests.conftest import slycotonly, matarrayin +from control.tests.conftest import slycotonly from control.modelsimp import balred, hsvd, markov, modred @@ -17,11 +17,11 @@ class TestModelsimp: """Test model reduction functions""" @slycotonly - def testHSVD(self, matarrayout, matarrayin): - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5.], [7.]]) - C = matarrayin([[6., 8.]]) - D = matarrayin([[9.]]) + def testHSVD(self): + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5.], [7.]]) + C = np.array([[6., 8.]]) + D = np.array([[9.]]) sys = StateSpace(A, B, C, D) hsv = hsvd(sys) hsvtrue = np.array([24.42686, 0.5731395]) # from MATLAB @@ -32,8 +32,8 @@ def testHSVD(self, matarrayout, matarrayin): assert isinstance(hsv, np.ndarray) assert not isinstance(hsv, np.matrix) - def testMarkovSignature(self, matarrayout, matarrayin): - U = matarrayin([[1., 1., 1., 1., 1.]]) + def testMarkovSignature(self): + U = np.array([[1., 1., 1., 1., 1.]]) Y = U m = 3 H = markov(Y, U, m, transpose=False) @@ -111,17 +111,17 @@ 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 testModredMatchDC(self, matarrayin): + def testModredMatchDC(self): #balanced realization computed in matlab for the transfer function: # num = [1 11 45 32], den = [1 15 60 200 60] - A = matarrayin( + A = np.array( [[-1.958, -1.194, 1.824, -1.464], [-1.194, -0.8344, 2.563, -1.351], [-1.824, -2.563, -1.124, 2.704], [-1.464, -1.351, -2.704, -11.08]]) - B = matarrayin([[-0.9057], [-0.4068], [-0.3263], [-0.3474]]) - C = matarrayin([[-0.9057, -0.4068, 0.3263, -0.3474]]) - D = matarrayin([[0.]]) + B = np.array([[-0.9057], [-0.4068], [-0.3263], [-0.3474]]) + C = np.array([[-0.9057, -0.4068, 0.3263, -0.3474]]) + D = np.array([[0.]]) sys = StateSpace(A, B, C, D) rsys = modred(sys,[2, 3],'matchdc') Artrue = np.array([[-4.431, -4.552], [-4.552, -5.361]]) @@ -133,30 +133,30 @@ def testModredMatchDC(self, matarrayin): np.testing.assert_array_almost_equal(rsys.C, Crtrue, decimal=3) np.testing.assert_array_almost_equal(rsys.D, Drtrue, decimal=2) - def testModredUnstable(self, matarrayin): + def testModredUnstable(self): """Check if an error is thrown when an unstable system is given""" - A = matarrayin( + A = np.array( [[4.5418, 3.3999, 5.0342, 4.3808], [0.3890, 0.3599, 0.4195, 0.1760], [-4.2117, -3.2395, -4.6760, -4.2180], [0.0052, 0.0429, 0.0155, 0.2743]]) - B = matarrayin([[1.0, 1.0], [2.0, 2.0], [3.0, 3.0], [4.0, 4.0]]) - C = matarrayin([[1.0, 2.0, 3.0, 4.0], [1.0, 2.0, 3.0, 4.0]]) - D = matarrayin([[0.0, 0.0], [0.0, 0.0]]) + B = np.array([[1.0, 1.0], [2.0, 2.0], [3.0, 3.0], [4.0, 4.0]]) + C = np.array([[1.0, 2.0, 3.0, 4.0], [1.0, 2.0, 3.0, 4.0]]) + D = np.array([[0.0, 0.0], [0.0, 0.0]]) sys = StateSpace(A, B, C, D) np.testing.assert_raises(ValueError, modred, sys, [2, 3]) - def testModredTruncate(self, matarrayin): + def testModredTruncate(self): #balanced realization computed in matlab for the transfer function: # num = [1 11 45 32], den = [1 15 60 200 60] - A = matarrayin( + A = np.array( [[-1.958, -1.194, 1.824, -1.464], [-1.194, -0.8344, 2.563, -1.351], [-1.824, -2.563, -1.124, 2.704], [-1.464, -1.351, -2.704, -11.08]]) - B = matarrayin([[-0.9057], [-0.4068], [-0.3263], [-0.3474]]) - C = matarrayin([[-0.9057, -0.4068, 0.3263, -0.3474]]) - D = matarrayin([[0.]]) + B = np.array([[-0.9057], [-0.4068], [-0.3263], [-0.3474]]) + C = np.array([[-0.9057, -0.4068, 0.3263, -0.3474]]) + D = np.array([[0.]]) sys = StateSpace(A, B, C, D) rsys = modred(sys,[2, 3],'truncate') Artrue = np.array([[-1.958, -1.194], [-1.194, -0.8344]]) @@ -170,18 +170,18 @@ def testModredTruncate(self, matarrayin): @slycotonly - def testBalredTruncate(self, matarrayin): + def testBalredTruncate(self): # controlable canonical realization computed in matlab for the transfer # function: # num = [1 11 45 32], den = [1 15 60 200 60] - A = matarrayin( + A = np.array( [[-15., -7.5, -6.25, -1.875], [8., 0., 0., 0.], [0., 4., 0., 0.], [0., 0., 1., 0.]]) - B = matarrayin([[2.], [0.], [0.], [0.]]) - C = matarrayin([[0.5, 0.6875, 0.7031, 0.5]]) - D = matarrayin([[0.]]) + B = np.array([[2.], [0.], [0.], [0.]]) + C = np.array([[0.5, 0.6875, 0.7031, 0.5]]) + D = np.array([[0.]]) sys = StateSpace(A, B, C, D) orders = 2 @@ -211,18 +211,18 @@ def testBalredTruncate(self, matarrayin): np.testing.assert_array_almost_equal(Dr, Drtrue, decimal=4) @slycotonly - def testBalredMatchDC(self, matarrayin): + def testBalredMatchDC(self): # controlable canonical realization computed in matlab for the transfer # function: # num = [1 11 45 32], den = [1 15 60 200 60] - A = matarrayin( + A = np.array( [[-15., -7.5, -6.25, -1.875], [8., 0., 0., 0.], [0., 4., 0., 0.], [0., 0., 1., 0.]]) - B = matarrayin([[2.], [0.], [0.], [0.]]) - C = matarrayin([[0.5, 0.6875, 0.7031, 0.5]]) - D = matarrayin([[0.]]) + B = np.array([[2.], [0.], [0.], [0.]]) + C = np.array([[0.5, 0.6875, 0.7031, 0.5]]) + D = np.array([[0.]]) sys = StateSpace(A, B, C, D) orders = 2 diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 951c817f1..dc72c0723 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -16,8 +16,7 @@ from control.mateqn import care, dare from control.statefbk import (ctrb, obsv, place, place_varga, lqr, dlqr, gram, acker) -from control.tests.conftest import (slycotonly, check_deprecated_matrix, - ismatarrayout, asmatarrayout) +from control.tests.conftest import slycotonly @pytest.fixture @@ -36,48 +35,37 @@ class TestStatefbk: # Set to True to print systems to the output. debug = False - def testCtrbSISO(self, matarrayin, matarrayout): - A = matarrayin([[1., 2.], [3., 4.]]) - B = matarrayin([[5.], [7.]]) + def testCtrbSISO(self): + A = np.array([[1., 2.], [3., 4.]]) + B = np.array([[5.], [7.]]) Wctrue = np.array([[5., 19.], [7., 43.]]) - - with check_deprecated_matrix(): - Wc = ctrb(A, B) - assert ismatarrayout(Wc) - + Wc = ctrb(A, B) np.testing.assert_array_almost_equal(Wc, Wctrue) - def testCtrbMIMO(self, matarrayin): - A = matarrayin([[1., 2.], [3., 4.]]) - B = matarrayin([[5., 6.], [7., 8.]]) + def testCtrbMIMO(self): + A = np.array([[1., 2.], [3., 4.]]) + B = np.array([[5., 6.], [7., 8.]]) Wctrue = np.array([[5., 6., 19., 22.], [7., 8., 43., 50.]]) Wc = ctrb(A, B) np.testing.assert_array_almost_equal(Wc, Wctrue) - # Make sure default type values are correct - assert ismatarrayout(Wc) - - def testObsvSISO(self, matarrayin): - A = matarrayin([[1., 2.], [3., 4.]]) - C = matarrayin([[5., 7.]]) + def testObsvSISO(self): + A = np.array([[1., 2.], [3., 4.]]) + C = np.array([[5., 7.]]) Wotrue = np.array([[5., 7.], [26., 38.]]) Wo = obsv(A, C) np.testing.assert_array_almost_equal(Wo, Wotrue) - # Make sure default type values are correct - assert ismatarrayout(Wo) - - - def testObsvMIMO(self, matarrayin): - A = matarrayin([[1., 2.], [3., 4.]]) - C = matarrayin([[5., 6.], [7., 8.]]) + def testObsvMIMO(self): + A = np.array([[1., 2.], [3., 4.]]) + C = np.array([[5., 6.], [7., 8.]]) Wotrue = np.array([[5., 6.], [7., 8.], [23., 34.], [31., 46.]]) Wo = obsv(A, C) np.testing.assert_array_almost_equal(Wo, Wotrue) - def testCtrbObsvDuality(self, matarrayin): - A = matarrayin([[1.2, -2.3], [3.4, -4.5]]) - B = matarrayin([[5.8, 6.9], [8., 9.1]]) + def testCtrbObsvDuality(self): + A = np.array([[1.2, -2.3], [3.4, -4.5]]) + B = np.array([[5.8, 6.9], [8., 9.1]]) Wc = ctrb(A, B) A = np.transpose(A) C = np.transpose(B) @@ -85,59 +73,55 @@ def testCtrbObsvDuality(self, matarrayin): np.testing.assert_array_almost_equal(Wc,Wo) @slycotonly - def testGramWc(self, matarrayin, matarrayout): - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5., 6.], [7., 8.]]) - C = matarrayin([[4., 5.], [6., 7.]]) - D = matarrayin([[13., 14.], [15., 16.]]) + def testGramWc(self): + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5., 6.], [7., 8.]]) + C = np.array([[4., 5.], [6., 7.]]) + D = np.array([[13., 14.], [15., 16.]]) sys = ss(A, B, C, D) Wctrue = np.array([[18.5, 24.5], [24.5, 32.5]]) - - with check_deprecated_matrix(): - Wc = gram(sys, 'c') - - assert ismatarrayout(Wc) + Wc = gram(sys, 'c') np.testing.assert_array_almost_equal(Wc, Wctrue) @slycotonly - def testGramRc(self, matarrayin): - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5., 6.], [7., 8.]]) - C = matarrayin([[4., 5.], [6., 7.]]) - D = matarrayin([[13., 14.], [15., 16.]]) + def testGramRc(self): + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5., 6.], [7., 8.]]) + C = np.array([[4., 5.], [6., 7.]]) + D = np.array([[13., 14.], [15., 16.]]) sys = ss(A, B, C, D) Rctrue = np.array([[4.30116263, 5.6961343], [0., 0.23249528]]) Rc = gram(sys, 'cf') np.testing.assert_array_almost_equal(Rc, Rctrue) @slycotonly - def testGramWo(self, matarrayin): - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5., 6.], [7., 8.]]) - C = matarrayin([[4., 5.], [6., 7.]]) - D = matarrayin([[13., 14.], [15., 16.]]) + def testGramWo(self): + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5., 6.], [7., 8.]]) + C = np.array([[4., 5.], [6., 7.]]) + D = np.array([[13., 14.], [15., 16.]]) sys = ss(A, B, C, D) Wotrue = np.array([[257.5, -94.5], [-94.5, 56.5]]) Wo = gram(sys, 'o') np.testing.assert_array_almost_equal(Wo, Wotrue) @slycotonly - def testGramWo2(self, matarrayin): - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5.], [7.]]) - C = matarrayin([[6., 8.]]) - D = matarrayin([[9.]]) + def testGramWo2(self): + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5.], [7.]]) + C = np.array([[6., 8.]]) + D = np.array([[9.]]) sys = ss(A,B,C,D) Wotrue = np.array([[198., -72.], [-72., 44.]]) Wo = gram(sys, 'o') np.testing.assert_array_almost_equal(Wo, Wotrue) @slycotonly - def testGramRo(self, matarrayin): - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5., 6.], [7., 8.]]) - C = matarrayin([[4., 5.], [6., 7.]]) - D = matarrayin([[13., 14.], [15., 16.]]) + def testGramRo(self): + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5., 6.], [7., 8.]]) + C = np.array([[4., 5.], [6., 7.]]) + D = np.array([[13., 14.], [15., 16.]]) sys = ss(A, B, C, D) Rotrue = np.array([[16.04680654, -5.8890222], [0., 4.67112593]]) Ro = gram(sys, 'of') @@ -195,19 +179,18 @@ def checkPlaced(self, P_expected, P_placed): P_placed.sort() np.testing.assert_array_almost_equal(P_expected, P_placed) - def testPlace(self, matarrayin): + def testPlace(self): # Matrices shamelessly stolen from scipy example code. - A = matarrayin([[1.380, -0.2077, 6.715, -5.676], + A = np.array([[1.380, -0.2077, 6.715, -5.676], [-0.5814, -4.290, 0, 0.6750], [1.067, 4.273, -6.654, 5.893], [0.0480, 4.273, 1.343, -2.104]]) - B = matarrayin([[0, 5.679], + B = np.array([[0, 5.679], [1.136, 1.136], [0, 0], [-3.146, 0]]) - P = matarrayin([-0.5 + 1j, -0.5 - 1j, -5.0566, -8.6659]) + P = np.array([-0.5 + 1j, -0.5 - 1j, -5.0566, -8.6659]) K = place(A, B, P) - assert ismatarrayout(K) P_placed = np.linalg.eigvals(A - B @ K) self.checkPlaced(P, P_placed) @@ -219,17 +202,17 @@ def testPlace(self, matarrayin): # Check that we get an error if we ask for too many poles in the same # location. Here, rank(B) = 2, so lets place three at the same spot. - P_repeated = matarrayin([-0.5, -0.5, -0.5, -8.6659]) + P_repeated = np.array([-0.5, -0.5, -0.5, -8.6659]) with pytest.raises(ValueError): place(A, B, P_repeated) @slycotonly - def testPlace_varga_continuous(self, matarrayin): + def testPlace_varga_continuous(self): """ Check that we can place eigenvalues for dtime=False """ - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5.], [7.]]) + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5.], [7.]]) P = [-2., -2.] K = place_varga(A, B, P) @@ -242,26 +225,26 @@ def testPlace_varga_continuous(self, matarrayin): # Regression test against bug #177 # https://github.com/python-control/python-control/issues/177 - A = matarrayin([[0, 1], [100, 0]]) - B = matarrayin([[0], [1]]) - P = matarrayin([-20 + 10*1j, -20 - 10*1j]) + A = np.array([[0, 1], [100, 0]]) + B = np.array([[0], [1]]) + P = np.array([-20 + 10*1j, -20 - 10*1j]) K = place_varga(A, B, P) P_placed = np.linalg.eigvals(A - B @ K) self.checkPlaced(P, P_placed) @slycotonly - def testPlace_varga_continuous_partial_eigs(self, matarrayin): + def testPlace_varga_continuous_partial_eigs(self): """ Check that we are able to use the alpha parameter to only place a subset of the eigenvalues, for the continous time case. """ # A matrix has eigenvalues at s=-1, and s=-2. Choose alpha = -1.5 # and check that eigenvalue at s=-2 stays put. - A = matarrayin([[1., -2.], [3., -4.]]) - B = matarrayin([[5.], [7.]]) + A = np.array([[1., -2.], [3., -4.]]) + B = np.array([[5.], [7.]]) - P = matarrayin([-3.]) + P = np.array([-3.]) P_expected = np.array([-2.0, -3.0]) alpha = -1.5 K = place_varga(A, B, P, alpha=alpha) @@ -271,30 +254,30 @@ def testPlace_varga_continuous_partial_eigs(self, matarrayin): self.checkPlaced(P_expected, P_placed) @slycotonly - def testPlace_varga_discrete(self, matarrayin): + def testPlace_varga_discrete(self): """ Check that we can place poles using dtime=True (discrete time) """ - A = matarrayin([[1., 0], [0, 0.5]]) - B = matarrayin([[5.], [7.]]) + A = np.array([[1., 0], [0, 0.5]]) + B = np.array([[5.], [7.]]) - P = matarrayin([0.5, 0.5]) + P = np.array([0.5, 0.5]) K = place_varga(A, B, P, dtime=True) P_placed = np.linalg.eigvals(A - B @ K) # No guarantee of the ordering, so sort them self.checkPlaced(P, P_placed) @slycotonly - def testPlace_varga_discrete_partial_eigs(self, matarrayin): + def testPlace_varga_discrete_partial_eigs(self): """" Check that we can only assign a single eigenvalue in the discrete time case. """ # A matrix has eigenvalues at 1.0 and 0.5. Set alpha = 0.51, and # check that the eigenvalue at 0.5 is not moved. - A = matarrayin([[1., 0], [0, 0.5]]) - B = matarrayin([[5.], [7.]]) - P = matarrayin([0.2, 0.6]) + A = np.array([[1., 0], [0, 0.5]]) + B = np.array([[5.], [7.]]) + P = np.array([0.2, 0.6]) P_expected = np.array([0.5, 0.6]) alpha = 0.51 K = place_varga(A, B, P, dtime=True, alpha=alpha) @@ -302,49 +285,49 @@ def testPlace_varga_discrete_partial_eigs(self, matarrayin): self.checkPlaced(P_expected, P_placed) def check_LQR(self, K, S, poles, Q, R): - S_expected = asmatarrayout(np.sqrt(Q @ R)) - K_expected = asmatarrayout(S_expected / R) + S_expected = np.sqrt(Q @ R) + K_expected = S_expected / R poles_expected = -np.squeeze(np.asarray(K_expected)) np.testing.assert_array_almost_equal(S, S_expected) np.testing.assert_array_almost_equal(K, K_expected) np.testing.assert_array_almost_equal(poles, poles_expected) def check_DLQR(self, K, S, poles, Q, R): - S_expected = asmatarrayout(Q) - K_expected = asmatarrayout(0) + S_expected = Q + K_expected = 0 poles_expected = -np.squeeze(np.asarray(K_expected)) np.testing.assert_array_almost_equal(S, S_expected) np.testing.assert_array_almost_equal(K, K_expected) np.testing.assert_array_almost_equal(poles, poles_expected) @pytest.mark.parametrize("method", [None, 'slycot', 'scipy']) - def test_LQR_integrator(self, matarrayin, matarrayout, method): + def test_LQR_integrator(self, method): if method == 'slycot' and not slycot_check(): return - A, B, Q, R = (matarrayin([[X]]) for X in [0., 1., 10., 2.]) + A, B, Q, R = (np.array([[X]]) for X in [0., 1., 10., 2.]) K, S, poles = lqr(A, B, Q, R, method=method) self.check_LQR(K, S, poles, Q, R) @pytest.mark.parametrize("method", [None, 'slycot', 'scipy']) - def test_LQR_3args(self, matarrayin, matarrayout, method): + def test_LQR_3args(self, method): if method == 'slycot' and not slycot_check(): return sys = ss(0., 1., 1., 0.) - Q, R = (matarrayin([[X]]) for X in [10., 2.]) + Q, R = (np.array([[X]]) for X in [10., 2.]) K, S, poles = lqr(sys, Q, R, method=method) self.check_LQR(K, S, poles, Q, R) @pytest.mark.parametrize("method", [None, 'slycot', 'scipy']) - def test_DLQR_3args(self, matarrayin, matarrayout, method): + def test_DLQR_3args(self, method): if method == 'slycot' and not slycot_check(): return dsys = ss(0., 1., 1., 0., .1) - Q, R = (matarrayin([[X]]) for X in [10., 2.]) + Q, R = (np.array([[X]]) for X in [10., 2.]) K, S, poles = dlqr(dsys, Q, R, method=method) self.check_DLQR(K, S, poles, Q, R) - def test_DLQR_4args(self, matarrayin, matarrayout): - A, B, Q, R = (matarrayin([[X]]) for X in [0., 1., 10., 2.]) + def test_DLQR_4args(self): + A, B, Q, R = (np.array([[X]]) for X in [0., 1., 10., 2.]) K, S, poles = dlqr(A, B, Q, R) self.check_DLQR(K, S, poles, Q, R) @@ -443,14 +426,14 @@ def testDLQR_warning(self): with pytest.warns(UserWarning): (K, S, E) = dlqr(A, B, Q, R, N) - def test_care(self, matarrayin): + def test_care(self): """Test stabilizing and anti-stabilizing feedback, continuous""" - A = matarrayin(np.diag([1, -1])) - B = matarrayin(np.identity(2)) - Q = matarrayin(np.identity(2)) - R = matarrayin(np.identity(2)) - S = matarrayin(np.zeros((2, 2))) - E = matarrayin(np.identity(2)) + A = np.diag([1, -1]) + B = np.identity(2) + Q = np.identity(2) + R = np.identity(2) + S = np.zeros((2, 2)) + E = np.identity(2) X, L, G = care(A, B, Q, R, S, E, stabilizing=True) assert np.all(np.real(L) < 0) @@ -465,14 +448,14 @@ def test_care(self, matarrayin): @pytest.mark.parametrize( "stabilizing", [True, pytest.param(False, marks=slycotonly)]) - def test_dare(self, matarrayin, stabilizing): + def test_dare(self, stabilizing): """Test stabilizing and anti-stabilizing feedback, discrete""" - A = matarrayin(np.diag([0.5, 2])) - B = matarrayin(np.identity(2)) - Q = matarrayin(np.identity(2)) - R = matarrayin(np.identity(2)) - S = matarrayin(np.zeros((2, 2))) - E = matarrayin(np.identity(2)) + A = np.diag([0.5, 2]) + B = np.identity(2) + Q = np.identity(2) + R = np.identity(2) + S = np.zeros((2, 2)) + E = np.identity(2) X, L, G = dare(A, B, Q, R, S, E, stabilizing=stabilizing) sgn = {True: -1, False: 1}[stabilizing] diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 2a96905f4..83dc58b49 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -21,7 +21,7 @@ from control.statesp import StateSpace, _convert_to_statespace, tf2ss, \ _statesp_defaults, _rss_generate, linfnorm from control.iosys import ss, rss, drss -from control.tests.conftest import ismatarrayout, slycotonly +from control.tests.conftest import slycotonly from control.xferfcn import TransferFunction, ss2tf @@ -1006,13 +1006,7 @@ def test_returnScipySignalLTI_error(self, mimoss): class TestStateSpaceConfig: """Test the configuration of the StateSpace module""" - - @pytest.fixture - def matarrayout(self): - """Override autoused global fixture within this class""" - pass - - def test_statespace_defaults(self, matarrayout): + def test_statespace_defaults(self): """Make sure the tests are run with the configured defaults""" for k, v in _statesp_defaults.items(): assert defaults[k] == v, \ diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index b2d90e2ab..91f4a1a08 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -3,7 +3,6 @@ import numpy as np import pytest -from control.tests.conftest import asmatarrayout import control as ct import control.optimal as opt @@ -12,8 +11,8 @@ # Utility function to check LQE answer def check_LQE(L, P, poles, G, QN, RN): - P_expected = asmatarrayout(np.sqrt(G @ QN @ G @ RN)) - L_expected = asmatarrayout(P_expected / RN) + P_expected = np.sqrt(G @ QN @ G @ RN) + L_expected = P_expected / RN poles_expected = -np.squeeze(np.asarray(L_expected)) np.testing.assert_almost_equal(P, P_expected) np.testing.assert_almost_equal(L, L_expected) @@ -21,19 +20,19 @@ def check_LQE(L, P, poles, G, QN, RN): # Utility function to check discrete LQE solutions def check_DLQE(L, P, poles, G, QN, RN): - P_expected = asmatarrayout(G.dot(QN).dot(G)) - L_expected = asmatarrayout(0) + P_expected = G.dot(QN).dot(G) + L_expected = 0 poles_expected = -np.squeeze(np.asarray(L_expected)) np.testing.assert_almost_equal(P, P_expected) np.testing.assert_almost_equal(L, L_expected) np.testing.assert_almost_equal(poles, poles_expected) @pytest.mark.parametrize("method", [None, 'slycot', 'scipy']) -def test_LQE(matarrayin, method): +def test_LQE(method): if method == 'slycot' and not slycot_check(): return - A, G, C, QN, RN = (matarrayin([[X]]) for X in [0., .1, 1., 10., 2.]) + A, G, C, QN, RN = (np.array([[X]]) for X in [0., .1, 1., 10., 2.]) L, P, poles = lqe(A, G, C, QN, RN, method=method) check_LQE(L, P, poles, G, QN, RN) @@ -80,11 +79,11 @@ def test_lqe_call_format(cdlqe): L, P, E = cdlqe(sys_tf, Q, R) @pytest.mark.parametrize("method", [None, 'slycot', 'scipy']) -def test_DLQE(matarrayin, method): +def test_DLQE(method): if method == 'slycot' and not slycot_check(): return - A, G, C, QN, RN = (matarrayin([[X]]) for X in [0., .1, 1., 10., 2.]) + A, G, C, QN, RN = (np.array([[X]]) for X in [0., .1, 1., 10., 2.]) L, P, poles = dlqe(A, G, C, QN, RN, method=method) check_DLQE(L, P, poles, G, QN, RN) diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index 124e16c1e..7436868c7 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -857,7 +857,7 @@ def test_default_timevector_functions_d(self, fun, dt): initial_response, forced_response]) @pytest.mark.parametrize("squeeze", [None, True, False]) - def test_time_vector(self, tsystem, fun, squeeze, matarrayout): + def test_time_vector(self, tsystem, fun, squeeze): """Test time vector handling and correct output convention gh-239, gh-295 diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index eec305807..fd1076db0 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -14,7 +14,7 @@ from control import defaults, reset_defaults, set_defaults from control.statesp import _convert_to_statespace from control.xferfcn import _convert_to_transfer_function -from control.tests.conftest import slycotonly, matrixfilter +from control.tests.conftest import slycotonly class TestXferFcn: @@ -749,20 +749,16 @@ def test_indexing(self): np.testing.assert_array_almost_equal(sys.num[1][1], tm.num[1][2]) np.testing.assert_array_almost_equal(sys.den[1][1], tm.den[1][2]) - @pytest.mark.parametrize( - "matarrayin", - [pytest.param(np.array, - id="arrayin", - marks=[pytest.mark.skip(".__matmul__ not implemented")]), - pytest.param(np.matrix, - id="matrixin", - marks=matrixfilter)], - indirect=True) - @pytest.mark.parametrize("X_, ij", - [([[2., 0., ]], 0), - ([[0., 2., ]], 1)]) - def test_matrix_array_multiply(self, matarrayin, X_, ij): - """Test mulitplication of MIMO TF with matrix and matmul with array""" + @pytest.mark.parametrize("op", [ + pytest.param('mul'), + pytest.param( + 'matmul', marks=pytest.mark.skip(".__matmul__ not implemented")), + ]) + @pytest.mark.parametrize("X, ij", + [(np.array([[2., 0., ]]), 0), + (np.array([[0., 2., ]]), 1)]) + def test_matrix_array_multiply(self, op, X, ij): + """Test mulitplication of MIMO TF with matrix""" # 2 inputs, 2 outputs with prime zeros so they do not cancel n = 2 p = [3, 5, 7, 11, 13, 17, 19, 23] @@ -771,13 +767,12 @@ def test_matrix_array_multiply(self, matarrayin, X_, ij): for i in range(n)], [[[1, -1]] * n] * n) - X = matarrayin(X_) - - if matarrayin is np.matrix: + if op == 'matmul': + XH = X @ H + elif op == 'mul': XH = X * H else: - # XH = X @ H - XH = np.matmul(X, H) + assert NotImplemented(f"unknown operator '{op}'") XH = XH.minreal() assert XH.ninputs == n assert XH.noutputs == X.shape[0] @@ -790,11 +785,12 @@ def test_matrix_array_multiply(self, matarrayin, X_, ij): np.testing.assert_allclose(2. * H.num[ij][1], XH.num[0][1], rtol=1e-4) np.testing.assert_allclose( H.den[ij][1], XH.den[0][1], rtol=1e-4) - if matarrayin is np.matrix: + if op == 'matmul': + HXt = H @ X.T + elif op == 'mul': HXt = H * X.T else: - # HXt = H @ X.T - HXt = np.matmul(H, X.T) + assert NotImplemented(f"unknown operator '{op}'") HXt = HXt.minreal() assert HXt.ninputs == X.T.shape[1] assert HXt.noutputs == n From aa106ba4709688d2027775fdd8d5edb1236ddea0 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 10 Jun 2023 09:33:27 -0700 Subject: [PATCH 0295/1025] remove use_numpy_matrix --- control/config.py | 40 ++----------------------------- control/mateqn.py | 22 +---------------- control/statefbk.py | 43 ++++------------------------------ control/statesp.py | 42 ++++++++++++--------------------- control/stochsys.py | 16 ++++--------- control/tests/config_test.py | 12 ++++------ control/tests/iosys_test.py | 20 ++++++++-------- control/tests/timeresp_test.py | 4 ++-- 8 files changed, 43 insertions(+), 156 deletions(-) diff --git a/control/config.py b/control/config.py index f75bd52db..b981a58ab 100644 --- a/control/config.py +++ b/control/config.py @@ -14,7 +14,7 @@ __all__ = ['defaults', 'set_defaults', 'reset_defaults', 'use_matlab_defaults', 'use_fbs_defaults', - 'use_legacy_defaults', 'use_numpy_matrix'] + 'use_legacy_defaults'] # Package level default values _control_defaults = { @@ -211,7 +211,6 @@ def use_matlab_defaults(): """ set_defaults('freqplot', dB=True, deg=True, Hz=False, grid=True) - set_defaults('statesp', use_numpy_matrix=True) # Set defaults to match FBS (Astrom and Murray) @@ -233,41 +232,6 @@ def use_fbs_defaults(): set_defaults('nyquist', mirror_style='--') -# Decide whether to use numpy.matrix for state space operations -def use_numpy_matrix(flag=True, warn=True): - """Turn on/off use of Numpy `matrix` class for state space operations. - - Parameters - ---------- - flag : bool - If flag is `True` (default), use the deprecated Numpy - `matrix` class to represent matrices in the `~control.StateSpace` - class and functions. If flat is `False`, then matrices are - represented by a 2D `ndarray` object. - - warn : bool - If flag is `True` (default), issue a warning when turning on the use - of the Numpy `matrix` class. Set `warn` to false to omit display of - the warning message. - - Notes - ----- - Prior to release 0.9.x, the default type for 2D arrays is the Numpy - `matrix` class. Starting in release 0.9.0, the default type for state - space operations is a 2D array. - - Examples - -------- - >>> ct.use_numpy_matrix(True, False) - >>> # do some legacy calculations using np.matrix - - """ - if flag and warn: - warnings.warn("Return type numpy.matrix is deprecated.", - stacklevel=2, category=DeprecationWarning) - set_defaults('statesp', use_numpy_matrix=flag) - - def use_legacy_defaults(version): """ Sets the defaults to whatever they were in a given release. @@ -331,7 +295,7 @@ def use_legacy_defaults(version): # Version 0.9.0: if major == 0 and minor < 9: # switched to 'array' as default for state space objects - set_defaults('statesp', use_numpy_matrix=True) + warnings.warn("NumPy matrix class no longer supported") # switched to 0 (=continuous) as default timestep set_defaults('control', default_dt=None) diff --git a/control/mateqn.py b/control/mateqn.py index 1cf2e65d9..339f1a880 100644 --- a/control/mateqn.py +++ b/control/mateqn.py @@ -126,14 +126,9 @@ def lyap(A, Q, C=None, E=None, method=None): Returns ------- - X : 2D array (or matrix) + X : 2D array Solution to the Lyapunov or Sylvester equation - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - """ # Decide what method to use method = _slycot_or_scipy(method) @@ -260,11 +255,6 @@ def dlyap(A, Q, C=None, E=None, method=None): X : 2D array (or matrix) Solution to the Lyapunov or Sylvester equation - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - """ # Decide what method to use method = _slycot_or_scipy(method) @@ -395,11 +385,6 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, G : 2D array (or matrix) Gain matrix - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - """ # Decide what method to use method = _slycot_or_scipy(method) @@ -554,11 +539,6 @@ def dare(A, B, Q, R, S=None, E=None, stabilizing=True, method=None, G : 2D array (or matrix) Gain matrix - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - """ # Decide what method to use method = _slycot_or_scipy(method) diff --git a/control/statefbk.py b/control/statefbk.py index f98974199..50bad75c1 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -110,9 +110,6 @@ def place(A, B, p): The algorithm will not place poles at the same location more than rank(B) times. - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - References ---------- .. [1] A.L. Tits and Y. Yang, "Globally convergent algorithms for robust @@ -193,11 +190,6 @@ def place_varga(A, B, p, dtime=False, alpha=None): [1] Varga A. "A Schur method for pole assignment." IEEE Trans. Automatic Control, Vol. AC-26, pp. 517-519, 1981. - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - Examples -------- >>> A = [[-1, -1], [0, 1]] @@ -279,10 +271,6 @@ def acker(A, B, poles): K : 2D array (or matrix) Gains such that A - B K has given eigenvalues - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. """ # Convert the inputs to matrices a = _ssmatrix(A) @@ -366,13 +354,10 @@ def lqr(*args, **kwargs): Notes ----- - 1. If the first argument is an LTI object, then this object will be used - to define the dynamics and input matrices. Furthermore, if the LTI - object corresponds to a discrete time system, the ``dlqr()`` function - will be called. - - 2. The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. + If the first argument is an LTI object, then this object will be used + to define the dynamics and input matrices. Furthermore, if the LTI + object corresponds to a discrete time system, the ``dlqr()`` function + will be called. Examples -------- @@ -514,11 +499,6 @@ def dlqr(*args, **kwargs): -------- lqr, lqe, dlqe - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - Examples -------- >>> K, S, E = dlqr(dsys, Q, R, [N]) # doctest: +SKIP @@ -971,11 +951,6 @@ def ctrb(A, B): C : 2D array (or matrix) Controllability matrix - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - Examples -------- >>> G = ct.tf2ss([1], [1, 2, 3]) @@ -1010,11 +985,6 @@ def obsv(A, C): O : 2D array (or matrix) Observability matrix - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - Examples -------- >>> G = ct.tf2ss([1], [1, 2, 3]) @@ -1063,11 +1033,6 @@ def gram(sys, type): if slycot routine sb03md cannot be found if slycot routine sb03od cannot be found - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - Examples -------- >>> G = ct.rss(4) diff --git a/control/statesp.py b/control/statesp.py index 288f1a2ce..1e957ecc6 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -77,7 +77,6 @@ # Define module default parameter values _statesp_defaults = { - 'statesp.use_numpy_matrix': False, # False is default in 0.9.0 and above 'statesp.remove_useless_states': False, 'statesp.latex_num_format': '.3g', 'statesp.latex_repr_type': 'partitioned', @@ -104,11 +103,8 @@ def _ssmatrix(data, axis=1): arr : 2D array, with shape (0, 0) if a is empty """ - # Convert the data into an array or matrix, as configured - if config.defaults['statesp.use_numpy_matrix']: - arr = np.matrix(data, dtype=float) - else: - arr = np.array(data, dtype=float) + # Convert the data into an array + arr = np.array(data, dtype=float) ndim = arr.ndim shape = arr.shape @@ -202,12 +198,7 @@ class StateSpace(LTI): ----- The main data members in the ``StateSpace`` class are the A, B, C, and D matrices. The class also keeps track of the number of states (i.e., - the size of A). The data format used to store state space matrices is - set using the value of `config.defaults['use_numpy_matrix']`. If True - (default), the state space elements are stored as `numpy.matrix` objects; - otherwise they are `numpy.ndarray` objects. The - :func:`~control.use_numpy_matrix` function can be used to set the storage - type. + the size of A). A discrete time system is created by specifying a nonzero 'timebase', dt when the system is constructed: @@ -355,10 +346,8 @@ def __init__(self, *args, init_namedio=True, **kwargs): elif kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) - # Reset shapes (may not be needed once np.matrix support is removed) + # Reset shape if system is static if self._isstatic(): - # static gain - # matrix's default "empty" shape is 1x0 A.shape = (0, 0) B.shape = (0, self.ninputs) C.shape = (self.noutputs, 0) @@ -927,18 +916,17 @@ def horner(self, x, warn_infinite=True): x_arr = np.atleast_1d(x).astype(complex, copy=False) # return fast on systems with 0 or 1 state - if not config.defaults['statesp.use_numpy_matrix']: - if self.nstates == 0: - return self.D[:, :, np.newaxis] \ - * np.ones_like(x_arr, dtype=complex) - if self.nstates == 1: - with np.errstate(divide='ignore', invalid='ignore'): - out = self.C[:, :, np.newaxis] \ - / (x_arr - self.A[0, 0]) \ - * self.B[:, :, np.newaxis] \ - + self.D[:, :, np.newaxis] - out[np.isnan(out)] = complex(np.inf, np.nan) - return out + if self.nstates == 0: + return self.D[:, :, np.newaxis] \ + * np.ones_like(x_arr, dtype=complex) + elif self.nstates == 1: + with np.errstate(divide='ignore', invalid='ignore'): + out = self.C[:, :, np.newaxis] \ + / (x_arr - self.A[0, 0]) \ + * self.B[:, :, np.newaxis] \ + + self.D[:, :, np.newaxis] + out[np.isnan(out)] = complex(np.inf, np.nan) + return out try: out = self.slycot_laub(x_arr) diff --git a/control/stochsys.py b/control/stochsys.py index 663b09ece..7b980083c 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -101,13 +101,10 @@ def lqe(*args, **kwargs): Notes ----- - 1. If the first argument is an LTI object, then this object will be used - to define the dynamics, noise and output matrices. Furthermore, if - the LTI object corresponds to a discrete time system, the ``dlqe()`` - function will be called. - - 2. The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. + If the first argument is an LTI object, then this object will be used + to define the dynamics, noise and output matrices. Furthermore, if the + LTI object corresponds to a discrete time system, the ``dlqe()`` + function will be called. Examples -------- @@ -236,11 +233,6 @@ def dlqe(*args, **kwargs): E : 1D array Eigenvalues of estimator poles eig(A - L C) - Notes - ----- - The return type for 2D arrays depends on the default class set for - state space operations. See :func:`~control.use_numpy_matrix`. - Examples -------- >>> L, P, E = dlqe(A, G, C, QN, RN) # doctest: +SKIP diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 15229139e..1547b7e22 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -242,15 +242,13 @@ def test_reset_defaults(self): assert ct.config.defaults['freqplot.feature_periphery_decades'] == 1.0 def test_legacy_defaults(self): - with pytest.deprecated_call(): + with pytest.warns(UserWarning, match="NumPy matrix class no longer"): ct.use_legacy_defaults('0.8.3') - assert(isinstance(ct.ss(0, 0, 0, 1).D, np.matrix)) - ct.reset_defaults() - assert isinstance(ct.ss(0, 0, 0, 1).D, np.ndarray) - assert not isinstance(ct.ss(0, 0, 0, 1).D, np.matrix) + ct.reset_defaults() - ct.use_legacy_defaults('0.8.4') - assert ct.config.defaults['forced_response.return_x'] is True + with pytest.warns(UserWarning, match="NumPy matrix class no longer"): + ct.use_legacy_defaults('0.8.4') + assert ct.config.defaults['forced_response.return_x'] is True ct.use_legacy_defaults('0.9.0') assert isinstance(ct.ss(0, 0, 0, 1).D, np.ndarray) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 0e874c054..1fe57d577 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -252,10 +252,10 @@ def test_linearize_named_signals(self, kincar): assert linearized_newnames.find_output('y') is None # Test legacy version as well - ct.use_legacy_defaults('0.8.4') - ct.config.use_numpy_matrix(False) # np.matrix deprecated - linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True) - assert linearized.name == kincar.name + '_linearized' + with pytest.warns(UserWarning, match="NumPy matrix class no longer"): + ct.use_legacy_defaults('0.8.4') + linearized = kincar.linearize([0, 0, 0], [0, 0], copy_names=True) + assert linearized.name == kincar.name + '_linearized' def test_connect(self, tsys): # Define a couple of (linear) systems to interconnection @@ -1059,8 +1059,8 @@ def test_sys_naming_convention(self, tsys): """Enforce generic system names 'sys[i]' to be present when systems are created without explicit names.""" - ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 - ct.config.use_numpy_matrix(False) # np.matrix deprecated + with pytest.warns(UserWarning, match="NumPy matrix class no longer"): + ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 # Create a system with a known ID ct.namedio.NamedIOSystem._idCounter = 0 @@ -1127,8 +1127,8 @@ def test_signals_naming_convention_0_8_4(self, tsys): output: 'y[i]' """ - ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 - ct.config.use_numpy_matrix(False) # np.matrix deprecated + with pytest.warns(UserWarning, match="NumPy matrix class no longer"): + ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 # Create a system with a known ID ct.namedio.NamedIOSystem._idCounter = 0 @@ -1433,8 +1433,8 @@ def test_duplicates(self, tsys): ios_series = nlios * nlios # Nonduplicate objects - ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 - ct.config.use_numpy_matrix(False) # np.matrix deprecated + with pytest.warns(UserWarning, match="NumPy matrix class no longer"): + ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 nlios1 = nlios.copy() nlios2 = nlios.copy() with pytest.warns(UserWarning, match="duplicate name"): diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index 7436868c7..ccd808169 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -1130,8 +1130,8 @@ def test_squeeze_exception(self, fcn): ]) def test_squeeze_0_8_4(self, nstate, nout, ninp, squeeze, shape): # Set defaults to match release 0.8.4 - ct.config.use_legacy_defaults('0.8.4') - ct.config.use_numpy_matrix(False) + with pytest.warns(UserWarning, match="NumPy matrix class no longer"): + ct.config.use_legacy_defaults('0.8.4') # Generate system, time, and input vectors sys = ct.rss(nstate, nout, ninp, strictly_proper=True) From 77a75a64971a9bfbda15701eb1b7b93b05cb4265 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 10 Jun 2023 10:17:58 -0700 Subject: [PATCH 0296/1025] update docstrings and user documentation --- control/config.py | 1 - control/iosys.py | 2 -- control/statesp.py | 9 ++------- control/stochsys.py | 8 ++++---- doc/control.rst | 1 - doc/conventions.rst | 4 ---- 6 files changed, 6 insertions(+), 19 deletions(-) diff --git a/control/config.py b/control/config.py index b981a58ab..9009a30f3 100644 --- a/control/config.py +++ b/control/config.py @@ -202,7 +202,6 @@ def use_matlab_defaults(): The following conventions are used: * Bode plots plot gain in dB, phase in degrees, frequency in rad/sec, with grids - * State space class and functions use Numpy matrix objects Examples -------- diff --git a/control/iosys.py b/control/iosys.py index 6c6458f35..00ed288fa 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -2227,8 +2227,6 @@ def ss(*args, **kwargs): y[k] &= C x[k] + D u[k] The matrices can be given as *array like* data types or strings. - Everything that the constructor of :class:`numpy.matrix` accepts is - permissible here too. ``ss(args, inputs=['u1', ..., 'up'], outputs=['y1', ..., 'yq'], states=['x1', ..., 'xn'])`` Create a system with named input, output, and state signals. diff --git a/control/statesp.py b/control/statesp.py index 1e957ecc6..ae2c32c50 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -453,10 +453,6 @@ def _remove_useless_states(self): """ # Search for useless states and get indices of these states. - # - # Note: shape from np.where depends on whether we are storing state - # space objects as np.matrix or np.array. Code below will work - # correctly in either case. ax1_A = np.where(~self.A.any(axis=1))[0] ax1_B = np.where(~self.B.any(axis=1))[0] ax0_A = np.where(~self.A.any(axis=0))[-1] @@ -488,12 +484,11 @@ def __str__(self): return string # represent to implement a re-loadable version - # TODO: remove the conversion to array when matrix is no longer used def __repr__(self): """Print state-space system in loadable form.""" return "StateSpace({A}, {B}, {C}, {D}{dt})".format( - A=asarray(self.A).__repr__(), B=asarray(self.B).__repr__(), - C=asarray(self.C).__repr__(), D=asarray(self.D).__repr__(), + A=self.A.__repr__(), B=self.B.__repr__(), + C=self.C.__repr__(), D=self.D.__repr__(), dt=(isdtime(self, strict=True) and ", {}".format(self.dt)) or '') def _latex_partitioned_stateless(self): diff --git a/control/stochsys.py b/control/stochsys.py index 7b980083c..85e108336 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -87,9 +87,9 @@ def lqe(*args, **kwargs): Returns ------- - L : 2D array (or matrix) + L : 2D array Kalman estimator gain - P : 2D array (or matrix) + P : 2D array Solution to Riccati equation .. math:: @@ -221,9 +221,9 @@ def dlqe(*args, **kwargs): Returns ------- - L : 2D array (or matrix) + L : 2D array Kalman estimator gain - P : 2D array (or matrix) + P : 2D array Solution to Riccati equation .. math:: diff --git a/doc/control.rst b/doc/control.rst index 8dc8a09a4..ca46043db 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -197,6 +197,5 @@ Utility functions and conversions unwrap use_fbs_defaults use_matlab_defaults - use_numpy_matrix diff --git a/doc/conventions.rst b/doc/conventions.rst index 7c9c1ec6f..b5073b8ef 100644 --- a/doc/conventions.rst +++ b/doc/conventions.rst @@ -303,9 +303,6 @@ Selected variables that can be configured, along with their default values: * freqplot.feature_periphery_decade (1.0): How many decades to include in the frequency range on both sides of features (poles, zeros). - * statesp.use_numpy_matrix (True): set the return type for state space - matrices to `numpy.matrix` (verus numpy.ndarray) - * statesp.default_dt and xferfcn.default_dt (None): set the default value of dt when constructing new LTI systems @@ -322,5 +319,4 @@ Functions that can be used to set standard configurations: reset_defaults use_fbs_defaults use_matlab_defaults - use_numpy_matrix use_legacy_defaults From ad83edc3faa90ebe8e701e7660007f5cc226ab8e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 19 Jun 2023 08:59:25 -0700 Subject: [PATCH 0297/1025] rename files/modules: iosys -> nlsys, namedio -> iosysm --- control/__init__.py | 4 +- control/canonical.py | 2 +- control/config.py | 4 +- control/dtime.py | 4 +- control/flatsys/flatsys.py | 2 +- control/flatsys/linflat.py | 2 +- control/frdata.py | 2 +- control/iosys.py | 3646 ++++++-------------------------- control/lti.py | 2 +- control/margins.py | 2 +- control/matlab/__init__.py | 4 +- control/matlab/wrappers.py | 2 +- control/modelsimp.py | 2 +- control/namedio.py | 756 ------- control/nlsys.py | 2602 +++++++++++++++++++++++ control/optimal.py | 2 +- control/pzmap.py | 2 +- control/rlocus.py | 2 +- control/sisotool.py | 6 +- control/statefbk.py | 6 +- control/statesp.py | 1307 +++++++++--- control/stochsys.py | 8 +- control/tests/config_test.py | 2 +- control/tests/frd_test.py | 2 +- control/tests/iosys_test.py | 98 +- control/tests/kwargs_test.py | 4 +- control/tests/namedio_test.py | 8 +- control/tests/statesp_test.py | 2 +- control/tests/stochsys_test.py | 4 +- control/timeresp.py | 2 +- control/xferfcn.py | 2 +- 31 files changed, 4266 insertions(+), 4227 deletions(-) delete mode 100644 control/namedio.py create mode 100644 control/nlsys.py diff --git a/control/__init__.py b/control/__init__.py index cfc23ed19..3cc538c82 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -77,7 +77,7 @@ from .margins import * from .mateqn import * from .modelsimp import * -from .namedio import * +from .iosys import * from .nichols import * from .phaseplot import * from .pzmap import * @@ -93,7 +93,7 @@ from .robust import * from .config import * from .sisotool import * -from .iosys import * +from .nlsys import * from .passivity import * # Exceptions diff --git a/control/canonical.py b/control/canonical.py index 9c9a2a738..06a554859 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -2,7 +2,7 @@ # RMM, 10 Nov 2012 from .exception import ControlNotImplemented, ControlSlycot -from .namedio import issiso +from .iosys import issiso from .statesp import StateSpace, _convert_to_statespace from .statefbk import ctrb, obsv diff --git a/control/config.py b/control/config.py index 9009a30f3..50a92f8dc 100644 --- a/control/config.py +++ b/control/config.py @@ -123,7 +123,7 @@ def reset_defaults(): from .sisotool import _sisotool_defaults defaults.update(_sisotool_defaults) - from .namedio import _namedio_defaults + from .iosys import _namedio_defaults defaults.update(_namedio_defaults) from .xferfcn import _xferfcn_defaults @@ -132,7 +132,7 @@ def reset_defaults(): from .statesp import _statesp_defaults defaults.update(_statesp_defaults) - from .iosys import _iosys_defaults + from .nlsys import _iosys_defaults defaults.update(_iosys_defaults) from .optimal import _optimal_defaults diff --git a/control/dtime.py b/control/dtime.py index 38fcf8056..3238419b2 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -47,7 +47,7 @@ """ -from .namedio import isctime +from .iosys import isctime from .statesp import StateSpace __all__ = ['sample_system', 'c2d'] @@ -127,4 +127,4 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, method=method, alpha=alpha, prewarp_frequency=prewarp_frequency, name=name, copy_names=copy_names, **kwargs) -c2d = sample_system \ No newline at end of file +c2d = sample_system diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 4bd767a99..3ae5d7968 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -45,7 +45,7 @@ import warnings from .poly import PolyFamily from .systraj import SystemTrajectory -from ..iosys import NonlinearIOSystem +from ..nlsys import NonlinearIOSystem from ..timeresp import _check_convert_array diff --git a/control/flatsys/linflat.py b/control/flatsys/linflat.py index 8e6c23604..9ffd78ce7 100644 --- a/control/flatsys/linflat.py +++ b/control/flatsys/linflat.py @@ -38,7 +38,7 @@ import numpy as np import control from .flatsys import FlatSystem -from ..iosys import LinearIOSystem +from ..statesp import LinearIOSystem class LinearFlatSystem(FlatSystem, LinearIOSystem): diff --git a/control/frdata.py b/control/frdata.py index 83873a120..23ede321f 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -54,7 +54,7 @@ from .lti import LTI, _process_frequency_response from .exception import pandas_check -from .namedio import NamedIOSystem, _process_namedio_keywords +from .iosys import NamedIOSystem, _process_namedio_keywords from . import config __all__ = ['FrequencyResponseData', 'FRD', 'frd'] diff --git a/control/iosys.py b/control/iosys.py index 00ed288fa..02deb5afe 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1,3195 +1,759 @@ -# iosys.py - input/output system module +# namedio.py - named I/O system class and helper functions +# RMM, 13 Mar 2022 # -# RMM, 28 April 2019 -# -# Additional features to add -# * Allow constant inputs for MIMO input_output_response (w/out ones) -# * Add support for constants/matrices as part of operators (1 + P) -# * Add unit tests (and example?) for time-varying systems -# * Allow time vector for discrete time simulations to be multiples of dt -# * Check the way initial outputs for discrete time systems are handled -# - -"""The :mod:`~control.iosys` module contains the -:class:`~control.InputOutputSystem` class that represents (possibly nonlinear) -input/output systems. The :class:`~control.InputOutputSystem` class is a -general class that defines any continuous or discrete time dynamical system. -Input/output systems can be simulated and also used to compute equilibrium -points and linearizations. - -""" - -__author__ = "Richard Murray" -__copyright__ = "Copyright 2019, California Institute of Technology" -__credits__ = ["Richard Murray"] -__license__ = "BSD" -__maintainer__ = "Richard Murray" -__email__ = "murray@cds.caltech.edu" +# This file implements the NamedIOSystem class, which is used as a parent +# class for FrequencyResponseData, InputOutputSystem, LTI, TimeResponseData, +# and other similar classes to allow naming of signals. import numpy as np -import scipy as sp -import copy +from copy import deepcopy from warnings import warn - -from .lti import LTI -from .namedio import NamedIOSystem, _process_signal_list, \ - _process_namedio_keywords, isctime, isdtime, common_timebase -from .statesp import StateSpace, tf2ss, _convert_to_statespace -from .statesp import _rss_generate -from .xferfcn import TransferFunction -from .timeresp import _check_convert_array, _process_time_response, \ - TimeResponseData +import re from . import config -__all__ = ['InputOutputSystem', 'LinearIOSystem', 'NonlinearIOSystem', - 'InterconnectedSystem', 'LinearICSystem', 'input_output_response', - 'find_eqpt', 'linearize', 'ss', 'rss', 'drss', 'ss2io', 'tf2io', - 'interconnect', 'summing_junction'] +__all__ = ['issiso', 'timebase', 'common_timebase', 'timebaseEqual', + 'isdtime', 'isctime'] # Define module default parameter values -_iosys_defaults = {} - - -class InputOutputSystem(NamedIOSystem): - """A class for representing input/output systems. - - The InputOutputSystem class allows (possibly nonlinear) input/output - systems to be represented in Python. It is used as a parent class for - a set of subclasses that are used to implement specific structures and - operations for different types of input/output dynamical systems. - - Parameters - ---------- - inputs : int, list of str, or None - Description of the system inputs. This can be given as an integer - count or a list of strings that name the individual signals. If an - integer count is specified, the names of the signal will be of the - form `s[i]` (where `s` is given by the `input_prefix` parameter and - has default value 'u'). If this parameter is not given or given as - `None`, the relevant quantity will be determined when possible - based on other information provided to functions using the system. - outputs : int, list of str, or None - Description of the system outputs. Same format as `inputs`, with - the prefix given by output_prefix (defaults to 'y'). - states : int, list of str, or None - Description of the system states. Same format as `inputs`, with - the prefix given by state_prefix (defaults to 'x'). - dt : None, True or float, optional - System timebase. 0 (default) indicates continuous time, True - indicates discrete time with unspecified sampling time, positive - number is discrete time with specified sampling time, None indicates - unspecified timebase (either continuous or discrete time). - name : string, optional - System name (used for specifying signals). If unspecified, a generic - name is generated with a unique integer id. - params : dict, optional - Parameter values for the system. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - - Attributes - ---------- - ninputs, noutputs, nstates : int - Number of input, output and state variables - input_index, output_index, state_index : dict - Dictionary of signal names for the inputs, outputs and states and the - index of the corresponding array - dt : None, True or float - System timebase. 0 (default) indicates continuous time, True indicates - discrete time with unspecified sampling time, positive number is - discrete time with specified sampling time, None indicates unspecified - timebase (either continuous or discrete time). - params : dict, optional - Parameter values for the systems. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - name : string, optional - System name (used for specifying signals) - - Other Parameters - ---------------- - input_prefix : string, optional - Set the prefix for input signals. Default = 'u'. - output_prefix : string, optional - Set the prefix for output signals. Default = 'y'. - state_prefix : string, optional - Set the prefix for state signals. Default = 'x'. - - Notes - ----- - The :class:`~control.InputOuputSystem` class (and its subclasses) makes - use of two special methods for implementing much of the work of the class: - - * _rhs(t, x, u): compute the right hand side of the differential or - difference equation for the system. This must be specified by the - subclass for the system. - - * _out(t, x, u): compute the output for the current state of the system. - The default is to return the entire system state. - - """ - - # Allow ndarray * InputOutputSystem to give IOSystem._rmul_() priority - __array_priority__ = 12 # override ndarray, matrix, SS types - - def __init__(self, params=None, **kwargs): - """Create an input/output system. - - The InputOutputSystem constructor is used to create an input/output - object with the core information required for all input/output - systems. Instances of this class are normally created by one of the - input/output subclasses: :class:`~control.LinearICSystem`, - :class:`~control.LinearIOSystem`, :class:`~control.NonlinearIOSystem`, - :class:`~control.InterconnectedSystem`. - - """ - # Store the system name, inputs, outputs, and states - name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) - - # Initialize the data structure - # Note: don't use super() to override LinearIOSystem/StateSpace MRO - NamedIOSystem.__init__( - self, inputs=inputs, outputs=outputs, - states=states, name=name, dt=dt, **kwargs) - - # default parameters - self.params = {} if params is None else params.copy() - - def __mul__(sys2, sys1): - """Multiply two input/output systems (series interconnection)""" - # Note: order of arguments is flipped so that self = sys2, - # corresponding to the ordering convention of sys2 * sys1 - - # Convert sys1 to an I/O system if needed - if isinstance(sys1, (int, float, np.number)): - sys1 = LinearIOSystem(StateSpace( - [], [], [], sys1 * np.eye(sys2.ninputs))) - - elif isinstance(sys1, np.ndarray): - sys1 = LinearIOSystem(StateSpace([], [], [], sys1)) - - elif isinstance(sys1, (StateSpace, TransferFunction)) and \ - not isinstance(sys1, LinearIOSystem): - sys1 = LinearIOSystem(sys1) - - elif not isinstance(sys1, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys1) - - # Make sure systems can be interconnected - if sys1.noutputs != sys2.ninputs: - raise ValueError("Can't multiply systems with incompatible " - "inputs and outputs") - - # Make sure timebase are compatible - dt = common_timebase(sys1.dt, sys2.dt) - - # Create a new system to handle the composition - inplist = [(0, i) for i in range(sys1.ninputs)] - outlist = [(1, i) for i in range(sys2.noutputs)] - newsys = InterconnectedSystem( - (sys1, sys2), inplist=inplist, outlist=outlist) - - # Set up the connection map manually - newsys.set_connect_map(np.block( - [[np.zeros((sys1.ninputs, sys1.noutputs)), - np.zeros((sys1.ninputs, sys2.noutputs))], - [np.eye(sys2.ninputs, sys1.noutputs), - np.zeros((sys2.ninputs, sys2.noutputs))]] - )) - - # If both systems are linear, create LinearICSystem - if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): - ss_sys = StateSpace.__mul__(sys2, sys1) - return LinearICSystem(newsys, ss_sys) - - # Return the newly created InterconnectedSystem - return newsys - - def __rmul__(sys1, sys2): - """Pre-multiply an input/output systems by a scalar/matrix""" - # Convert sys2 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.noutputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) - - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) - - return InputOutputSystem.__mul__(sys2, sys1) - - def __add__(sys1, sys2): - """Add two input/output systems (parallel interconnection)""" - # Convert sys1 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.ninputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) - - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) - - # Make sure number of input and outputs match - if sys1.ninputs != sys2.ninputs or sys1.noutputs != sys2.noutputs: - raise ValueError("Can't add systems with incompatible numbers of " - "inputs or outputs.") - ninputs = sys1.ninputs - noutputs = sys1.noutputs - - # Create a new system to handle the composition - inplist = [[(0, i), (1, i)] for i in range(ninputs)] - outlist = [[(0, i), (1, i)] for i in range(noutputs)] - newsys = InterconnectedSystem( - (sys1, sys2), inplist=inplist, outlist=outlist) - - # If both systems are linear, create LinearICSystem - if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): - ss_sys = StateSpace.__add__(sys2, sys1) - return LinearICSystem(newsys, ss_sys) - - # Return the newly created InterconnectedSystem - return newsys - - def __radd__(sys1, sys2): - """Parallel addition of input/output system to a compatible object.""" - # Convert sys2 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.noutputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) - - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) - - return InputOutputSystem.__add__(sys2, sys1) - - def __sub__(sys1, sys2): - """Subtract two input/output systems (parallel interconnection)""" - # Convert sys1 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.ninputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) - - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) - - # Make sure number of input and outputs match - if sys1.ninputs != sys2.ninputs or sys1.noutputs != sys2.noutputs: - raise ValueError("Can't add systems with incompatible numbers of " - "inputs or outputs.") - ninputs = sys1.ninputs - noutputs = sys1.noutputs - - # Create a new system to handle the composition - inplist = [[(0, i), (1, i)] for i in range(ninputs)] - outlist = [[(0, i), (1, i, -1)] for i in range(noutputs)] - newsys = InterconnectedSystem( - (sys1, sys2), inplist=inplist, outlist=outlist) - - # If both systems are linear, create LinearICSystem - if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): - ss_sys = StateSpace.__sub__(sys1, sys2) - return LinearICSystem(newsys, ss_sys) - - # Return the newly created InterconnectedSystem - return newsys - - def __rsub__(sys1, sys2): - """Parallel subtraction of I/O system to a compatible object.""" - # Convert sys2 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.noutputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) - - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) - - return InputOutputSystem.__sub__(sys2, sys1) - - def __neg__(sys): - """Negate an input/output systems (rescale)""" - if sys.ninputs is None or sys.noutputs is None: - raise ValueError("Can't determine number of inputs or outputs") - - # Create a new system to hold the negation - inplist = [(0, i) for i in range(sys.ninputs)] - outlist = [(0, i, -1) for i in range(sys.noutputs)] - newsys = InterconnectedSystem( - (sys,), dt=sys.dt, inplist=inplist, outlist=outlist) - - # If the system is linear, create LinearICSystem - if isinstance(sys, StateSpace): - ss_sys = StateSpace.__neg__(sys) - return LinearICSystem(newsys, ss_sys) - - # Return the newly created system - return newsys - - def __truediv__(sys2, sys1): - """Division of input/output systems - - Only division by scalars and arrays of scalars is supported""" - # Note: order of arguments is flipped so that self = sys2, - # corresponding to the ordering convention of sys2 * sys1 - - if not isinstance(sys1, (LTI, NamedIOSystem)): - return sys2 * (1/sys1) - else: - return NotImplemented - - - # Update parameters used for _rhs, _out (used by subclasses) - def _update_params(self, params, warning=False): - if warning: - warn("Parameters passed to InputOutputSystem ignored.") - - def _rhs(self, t, x, u): - """Evaluate right hand side of a differential or difference equation. - - Private function used to compute the right hand side of an - input/output system model. Intended for fast - evaluation; for a more user-friendly interface - you may want to use :meth:`dynamics`. - - """ - raise NotImplementedError("Evaluation not implemented for system of type ", - type(self)) - - def dynamics(self, t, x, u, params=None): - """Compute the dynamics of a differential or difference equation. - - Given time `t`, input `u` and state `x`, returns the value of the - right hand side of the dynamical system. If the system is continuous, - returns the time derivative - - dx/dt = f(t, x, u[, params]) - - where `f` is the system's (possibly nonlinear) dynamics function. - If the system is discrete-time, returns the next value of `x`: - - x[t+dt] = f(t, x[t], u[t][, params]) - - where `t` is a scalar. - - The inputs `x` and `u` must be of the correct length. The `params` - argument is an optional dictionary of parameter values. - - Parameters - ---------- - t : float - the time at which to evaluate - x : array_like - current state - u : array_like - input - params : dict (optional) - system parameter values - - Returns - ------- - dx/dt or x[t+dt] : ndarray - """ - self._update_params(params) - return self._rhs(t, x, u) - - def _out(self, t, x, u): - """Evaluate the output of a system at a given state, input, and time - - Private function used to compute the output of of an input/output - system model given the state, input, parameters. Intended for fast - evaluation; for a more user-friendly interface you may want to use - :meth:`output`. - - """ - # If no output function was defined in subclass, return state - return x - - def output(self, t, x, u, params=None): - """Compute the output of the system - - Given time `t`, input `u` and state `x`, returns the output of the - system: - - y = g(t, x, u[, params]) - - The inputs `x` and `u` must be of the correct length. - - Parameters - ---------- - t : float - the time at which to evaluate - x : array_like - current state - u : array_like - input - params : dict (optional) - system parameter values - - Returns - ------- - y : ndarray - """ - self._update_params(params) - return self._out(t, x, u) - - def feedback(self, other=1, sign=-1, params=None): - """Feedback interconnection between two input/output systems - - Parameters - ---------- - sys1: InputOutputSystem - The primary process. - sys2: InputOutputSystem - The feedback process (often a feedback controller). - sign: scalar, optional - The sign of feedback. `sign` = -1 indicates negative feedback, - and `sign` = 1 indicates positive feedback. `sign` is an optional - argument; it assumes a value of -1 if not specified. - - Returns - ------- - out: InputOutputSystem - - Raises - ------ - ValueError - if the inputs, outputs, or timebases of the systems are - incompatible. - - """ - # TODO: add conversion to I/O system when needed - if not isinstance(other, InputOutputSystem): - # Try converting to a state space system - try: - other = _convert_to_statespace(other) - except TypeError: - raise TypeError( - "Feedback around I/O system must be an I/O system " - "or convertable to an I/O system.") - other = LinearIOSystem(other) - - # Make sure systems can be interconnected - if self.noutputs != other.ninputs or other.noutputs != self.ninputs: - raise ValueError("Can't connect systems with incompatible " - "inputs and outputs") - - # Make sure timebases are compatible - dt = common_timebase(self.dt, other.dt) - - inplist = [(0, i) for i in range(self.ninputs)] - outlist = [(0, i) for i in range(self.noutputs)] - - # Return the series interconnection between the systems - newsys = InterconnectedSystem( - (self, other), inplist=inplist, outlist=outlist, - params=params, dt=dt) - - # Set up the connecton map manually - newsys.set_connect_map(np.block( - [[np.zeros((self.ninputs, self.noutputs)), - sign * np.eye(self.ninputs, other.noutputs)], - [np.eye(other.ninputs, self.noutputs), - np.zeros((other.ninputs, other.noutputs))]] - )) - - if isinstance(self, StateSpace) and isinstance(other, StateSpace): - # Special case: maintain linear systems structure - ss_sys = StateSpace.feedback(self, other, sign=sign) - return LinearICSystem(newsys, ss_sys) - - # Return the newly created system - return newsys - - def linearize(self, x0, u0, t=0, params=None, eps=1e-6, - name=None, copy_names=False, **kwargs): - """Linearize an input/output system at a given state and input. - - Return the linearization of an input/output system at a given state - and input value as a StateSpace system. See - :func:`~control.linearize` for complete documentation. - - """ - # - # If the linearization is not defined by the subclass, perform a - # numerical linearization use the `_rhs()` and `_out()` member - # functions. - # - - # If x0 and u0 are specified as lists, concatenate the elements - x0 = _concatenate_list_elements(x0, 'x0') - u0 = _concatenate_list_elements(u0, 'u0') - - # Figure out dimensions if they were not specified. - nstates = _find_size(self.nstates, x0) - ninputs = _find_size(self.ninputs, u0) - - # Convert x0, u0 to arrays, if needed - if np.isscalar(x0): - x0 = np.ones((nstates,)) * x0 - if np.isscalar(u0): - u0 = np.ones((ninputs,)) * u0 - - # Compute number of outputs by evaluating the output function - noutputs = _find_size(self.noutputs, self._out(t, x0, u0)) - - # Update the current parameters - self._update_params(params) - - # Compute the nominal value of the update law and output - F0 = self._rhs(t, x0, u0) - H0 = self._out(t, x0, u0) - - # Create empty matrices that we can fill up with linearizations - A = np.zeros((nstates, nstates)) # Dynamics matrix - B = np.zeros((nstates, ninputs)) # Input matrix - C = np.zeros((noutputs, nstates)) # Output matrix - D = np.zeros((noutputs, ninputs)) # Direct term - - # Perturb each of the state variables and compute linearization - for i in range(nstates): - dx = np.zeros((nstates,)) - dx[i] = eps - A[:, i] = (self._rhs(t, x0 + dx, u0) - F0) / eps - C[:, i] = (self._out(t, x0 + dx, u0) - H0) / eps - - # Perturb each of the input variables and compute linearization - for i in range(ninputs): - du = np.zeros((ninputs,)) - du[i] = eps - B[:, i] = (self._rhs(t, x0, u0 + du) - F0) / eps - D[:, i] = (self._out(t, x0, u0 + du) - H0) / eps - - # Create the state space system - linsys = LinearIOSystem( - StateSpace(A, B, C, D, self.dt, remove_useless_states=False)) - - # Set the system name, inputs, outputs, and states - if 'copy' in kwargs: - copy_names = kwargs.pop('copy') - warn("keyword 'copy' is deprecated. please use 'copy_names'", - DeprecationWarning) - - if copy_names: - linsys._copy_names(self, prefix_suffix_name='linearized') - if name is not None: - linsys.name = name - - # re-init to include desired signal names if names were provided - return LinearIOSystem(linsys, **kwargs) - -class LinearIOSystem(InputOutputSystem, StateSpace): - """Input/output representation of a linear (state space) system. - - This class is used to implement a system that is a linear state - space system (defined by the StateSpace system object). - - Parameters - ---------- - linsys : StateSpace or TransferFunction - LTI system to be converted. - inputs : int, list of str or None, optional - New system input labels (defaults to linsys input labels). - outputs : int, list of str or None, optional - New system output labels (defaults to linsys output labels). - states : int, list of str, or None, optional - New system input labels (defaults to linsys output labels). - dt : None, True or float, optional - System timebase. 0 (default) indicates continuous time, True indicates - discrete time with unspecified sampling time, positive number is - discrete time with specified sampling time, None indicates unspecified - timebase (either continuous or discrete time). - name : string, optional - System name (used for specifying signals). If unspecified, a - generic name is generated with a unique integer id. - params : dict, optional - Parameter values for the systems. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - - Attributes - ---------- - ninputs, noutputs, nstates, dt, etc - See :class:`InputOutputSystem` for inherited attributes. - - A, B, C, D - See :class:`~control.StateSpace` for inherited attributes. - - See Also - -------- - InputOutputSystem : Input/output system class. +_namedio_defaults = { + 'namedio.state_name_delim': '_', + 'namedio.duplicate_system_name_prefix': '', + 'namedio.duplicate_system_name_suffix': '$copy', + 'namedio.linearized_system_name_prefix': '', + 'namedio.linearized_system_name_suffix': '$linearized', + 'namedio.sampled_system_name_prefix': '', + 'namedio.sampled_system_name_suffix': '$sampled', + 'namedio.indexed_system_name_prefix': '', + 'namedio.indexed_system_name_suffix': '$indexed', + 'namedio.converted_system_name_prefix': '', + 'namedio.converted_system_name_suffix': '$converted', +} + + +class NamedIOSystem(object): + def __init__( + self, name=None, inputs=None, outputs=None, states=None, + input_prefix='u', output_prefix='y', state_prefix='x', **kwargs): + + # system name + self.name = self._name_or_default(name) + + # Parse and store the number of inputs and outputs + self.set_inputs(inputs, prefix=input_prefix) + self.set_outputs(outputs, prefix=output_prefix) + self.set_states(states, prefix=state_prefix) + + # Process timebase: if not given use default, but allow None as value + self.dt = _process_dt_keyword(kwargs) + + # Make sure there were no other keywords + if kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) - """ - def __init__(self, linsys, **kwargs): - """Create an I/O system from a state space linear system. - - Converts a :class:`~control.StateSpace` system into an - :class:`~control.InputOutputSystem` with the same inputs, outputs, and - states. The new system can be a continuous or discrete time system. - - """ - if isinstance(linsys, TransferFunction): - # Convert system to StateSpace - linsys = _convert_to_statespace(linsys) - - elif not isinstance(linsys, StateSpace): - raise TypeError("Linear I/O system must be a state space " - "or transfer function object") - - # Process keyword arguments - name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, linsys) - - # Create the I/O system object - # Note: don't use super() to override StateSpace MRO - InputOutputSystem.__init__( - self, inputs=inputs, outputs=outputs, states=states, - params=None, dt=dt, name=name, **kwargs) + # + # Functions to manipulate the system name + # + _idCounter = 0 # Counter for creating generic system name + + # Return system name + def _name_or_default(self, name=None, prefix_suffix_name=None): + if name is None: + name = "sys[{}]".format(NamedIOSystem._idCounter) + NamedIOSystem._idCounter += 1 + elif re.match(r".*\..*", name): + raise ValueError(f"invalid system name '{name}' ('.' not allowed)") + + prefix = "" if prefix_suffix_name is None else config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_prefix'] + suffix = "" if prefix_suffix_name is None else config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_suffix'] + return prefix + name + suffix + + # Check if system name is generic + def _generic_name_check(self): + return re.match(r'^sys\[\d*\]$', self.name) is not None - # Initalize additional state space variables - StateSpace.__init__( - self, linsys, remove_useless_states=False, init_namedio=False) + # + # Class attributes + # + # These attributes are defined as class attributes so that they are + # documented properly. They are "overwritten" in __init__. + # - # When sampling a LinearIO system, return a LinearIOSystem - def sample(self, *args, **kwargs): - return LinearIOSystem(StateSpace.sample(self, *args, **kwargs)) + #: Number of system inputs. + #: + #: :meta hide-value: + ninputs = None - sample.__doc__ = StateSpace.sample.__doc__ + #: Number of system outputs. + #: + #: :meta hide-value: + noutputs = None - # The following text needs to be replicated from StateSpace in order for - # this entry to show up properly in sphinx doccumentation (not sure why, - # but it was the only way to get it to work). - # - #: Deprecated attribute; use :attr:`nstates` instead. + #: Number of system states. #: - #: The ``state`` attribute was used to store the number of states for : a - #: state space system. It is no longer used. If you need to access the - #: number of states, use :attr:`nstates`. - states = property(StateSpace._get_states, StateSpace._set_states) - - def _update_params(self, params=None, warning=True): - # Parameters not supported; issue a warning - if params and warning: - warn("Parameters passed to LinearIOSystems are ignored.") - - def _rhs(self, t, x, u): - # Convert input to column vector and then change output to 1D array - xdot = self.A @ np.reshape(x, (-1, 1)) \ - + self.B @ np.reshape(u, (-1, 1)) - return np.array(xdot).reshape((-1,)) - - def _out(self, t, x, u): - # Convert input to column vector and then change output to 1D array - y = self.C @ np.reshape(x, (-1, 1)) \ - + self.D @ np.reshape(u, (-1, 1)) - return np.array(y).reshape((-1,)) + #: :meta hide-value: + nstates = None def __repr__(self): - # Need to define so that I/O system gets used instead of StateSpace - return InputOutputSystem.__repr__(self) + return f'<{self.__class__.__name__}:{self.name}:' + \ + f'{list(self.input_labels)}->{list(self.output_labels)}>' def __str__(self): - return InputOutputSystem.__str__(self) + "\n\n" \ - + StateSpace.__str__(self) - - -class NonlinearIOSystem(InputOutputSystem): - """Nonlinear I/O system. - - Creates an :class:`~control.InputOutputSystem` for a nonlinear system by - specifying a state update function and an output function. The new system - can be a continuous or discrete time system (Note: discrete-time systems - are not yet supported by most functions.) - - Parameters - ---------- - updfcn : callable - Function returning the state update function - - `updfcn(t, x, u, params) -> array` - - where `x` is a 1-D array with shape (nstates,), `u` is a 1-D array - with shape (ninputs,), `t` is a float representing the currrent - time, and `params` is a dict containing the values of parameters - used by the function. - - outfcn : callable - Function returning the output at the given state - - `outfcn(t, x, u, params) -> array` - - where the arguments are the same as for `upfcn`. - - inputs : int, list of str or None, optional - Description of the system inputs. This can be given as an integer - count or as a list of strings that name the individual signals. - If an integer count is specified, the names of the signal will be - of the form `s[i]` (where `s` is one of `u`, `y`, or `x`). If - this parameter is not given or given as `None`, the relevant - quantity will be determined when possible based on other - information provided to functions using the system. - - outputs : int, list of str or None, optional - Description of the system outputs. Same format as `inputs`. - - states : int, list of str, or None, optional - Description of the system states. Same format as `inputs`. - - dt : timebase, optional - The timebase for the system, used to specify whether the system is - operating in continuous or discrete time. It can have the - following values: - - * dt = 0: continuous time system (default) - * dt > 0: discrete time system with sampling period 'dt' - * dt = True: discrete time with unspecified sampling period - * dt = None: no timebase specified - - name : string, optional - System name (used for specifying signals). If unspecified, a - generic name is generated with a unique integer id. - - params : dict, optional - Parameter values for the systems. Passed to the evaluation - functions for the system as default values, overriding internal - defaults. - - See Also - -------- - InputOutputSystem : Input/output system class. - - """ - def __init__(self, updfcn, outfcn=None, params=None, **kwargs): - """Create a nonlinear I/O system given update and output functions.""" - # Process keyword arguments - name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, end=True) - - # Initialize the rest of the structure - super().__init__( - inputs=inputs, outputs=outputs, states=states, - params=params, dt=dt, name=name - ) - - # Store the update and output functions - self.updfcn = updfcn - self.outfcn = outfcn - - # Check to make sure arguments are consistent - if updfcn is None: - if self.nstates is None: - self.nstates = 0 + """String representation of an input/output object""" + str = f"<{self.__class__.__name__}>: {self.name}\n" + str += f"Inputs ({self.ninputs}): {self.input_labels}\n" + str += f"Outputs ({self.noutputs}): {self.output_labels}\n" + if self.nstates is not None: + str += f"States ({self.nstates}): {self.state_labels}" + return str + + # Find a signal by name + def _find_signal(self, name, sigdict): + return sigdict.get(name, None) + + # Find a list of signals by name, index, or pattern + def _find_signals(self, name_list, sigdict): + if not isinstance(name_list, (list, tuple)): + name_list = [name_list] + + index_list = [] + for name in name_list: + # Look for signal ranges (slice-like or base name) + ms = re.match(r'([\w$]+)\[([\d]*):([\d]*)\]$', name) # slice + mb = re.match(r'([\w$]+)$', name) # base + if ms: + base = ms.group(1) + start = None if ms.group(2) == '' else int(ms.group(2)) + stop = None if ms.group(3) == '' else int(ms.group(3)) + for var in sigdict: + # Find variables that match + msig = re.match(r'([\w$]+)\[([\d]+)\]$', var) + if msig and msig.group(1) == base and \ + (start is None or int(msig.group(2)) >= start) and \ + (stop is None or int(msig.group(2)) < stop): + index_list.append(sigdict.get(var)) + elif mb and sigdict.get(name, None) is None: + # Try to use name as a base name + for var in sigdict: + msig = re.match(name + r'\[([\d]+)\]$', var) + if msig: + index_list.append(sigdict.get(var)) else: - raise ValueError("States specified but no update function " - "given.") - if outfcn is None: - # No output function specified => outputs = states - if self.noutputs is None and self.nstates is not None: - self.noutputs = self.nstates - elif self.noutputs is not None and self.noutputs == self.nstates: - # Number of outputs = number of states => all is OK - pass - elif self.noutputs is not None and self.noutputs != 0: - raise ValueError("Outputs specified but no output function " - "(and nstates not known).") - - # Initialize current parameters to default parameters - self._current_params = {} if params is None else params.copy() + index_list.append(sigdict.get(name, None)) + + return None if len(index_list) == 0 or \ + any([idx is None for idx in index_list]) else index_list + + def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): + """copy the signal and system name of sys. Name is given as a keyword + in case a specific name (e.g. append 'linearized') is desired. """ + # Figure out the system name and assign it + if prefix == "" and prefix_suffix_name is not None: + prefix = config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_prefix'] + if suffix == "" and prefix_suffix_name is not None: + suffix = config.defaults[ + 'namedio.' + prefix_suffix_name + '_system_name_suffix'] + self.name = prefix + sys.name + suffix + + # Name the inputs, outputs, and states + self.input_index = sys.input_index.copy() + self.output_index = sys.output_index.copy() + if self.nstates and sys.nstates: + # only copy state names for state space systems + self.state_index = sys.state_index.copy() + + def copy(self, name=None, use_prefix_suffix=True): + """Make a copy of an input/output system + + A copy of the system is made, with a new name. The `name` keyword + can be used to specify a specific name for the system. If no name + is given and `use_prefix_suffix` is True, the name is constructed + by prepending config.defaults['namedio.duplicate_system_name_prefix'] + and appending config.defaults['namedio.duplicate_system_name_suffix']. + Otherwise, a generic system name of the form `sys[]` is used, + where `` is based on an internal counter. - def __str__(self): - return f"{InputOutputSystem.__str__(self)}\n\n" + \ - f"Update: {self.updfcn}\n" + \ - f"Output: {self.outfcn}" + """ + # Create a copy of the system + newsys = deepcopy(self) + + # Update the system name + if name is None and use_prefix_suffix: + # Get the default prefix and suffix to use + newsys.name = self._name_or_default( + self.name, prefix_suffix_name='duplicate') + else: + newsys.name = self._name_or_default(name) - # Return the value of a static nonlinear system - def __call__(sys, u, params=None, squeeze=None): - """Evaluate a (static) nonlinearity at a given input value + return newsys - If a nonlinear I/O system has no internal state, then evaluating the - system at an input `u` gives the output `y = F(u)`, determined by the - output function. + def set_inputs(self, inputs, prefix='u'): + """Set the number/names of the system inputs. Parameters ---------- - params : dict, optional - Parameter values for the system. Passed to the evaluation function - for the system as default values, overriding internal defaults. - squeeze : bool, optional - If True and if the system has a single output, return the system - output as a 1D array rather than a 2D array. If False, return the - system output as a 2D array even if the system is SISO. Default - value set by config.defaults['control.squeeze_time_response']. + inputs : int, list of str, or None + Description of the system inputs. This can be given as an integer + count or as a list of strings that name the individual signals. + If an integer count is specified, the names of the signal will be + of the form `u[i]` (where the prefix `u` can be changed using the + optional prefix parameter). + prefix : string, optional + If `inputs` is an integer, create the names of the states using + the given prefix (default = 'u'). The names of the input will be + of the form `prefix[i]`. """ + self.ninputs, self.input_index = \ + _process_signal_list(inputs, prefix=prefix) - # Make sure the call makes sense - if not sys._isstatic(): - raise TypeError( - "function evaluation is only supported for static " - "input/output systems") - - # If we received any parameters, update them before calling _out() - if params is not None: - sys._update_params(params) - - # Evaluate the function on the argument - out = sys._out(0, np.array((0,)), np.asarray(u)) - _, out = _process_time_response( - None, out, issiso=sys.issiso(), squeeze=squeeze) - return out - - def _update_params(self, params, warning=False): - # Update the current parameter values - self._current_params = self.params.copy() - if params: - self._current_params.update(params) + def find_input(self, name): + """Find the index for an input given its name (`None` if not found)""" + return self.input_index.get(name, None) - def _rhs(self, t, x, u): - xdot = self.updfcn(t, x, u, self._current_params) \ - if self.updfcn is not None else [] - return np.array(xdot).reshape((-1,)) + def find_inputs(self, name_list): + """Return list of indices matching input spec (`None` if not found)""" + return self._find_signals(name_list, self.input_index) - def _out(self, t, x, u): - y = self.outfcn(t, x, u, self._current_params) \ - if self.outfcn is not None else x - return np.array(y).reshape((-1,)) + # Property for getting and setting list of input signals + input_labels = property( + lambda self: list(self.input_index.keys()), # getter + set_inputs) # setter - -class InterconnectedSystem(InputOutputSystem): - """Interconnection of a set of input/output systems. - - This class is used to implement a system that is an interconnection of - input/output systems. The sys consists of a collection of subsystems - whose inputs and outputs are connected via a connection map. The overall - system inputs and outputs are subsets of the subsystem inputs and outputs. - - The function :func:`~control.interconnect` should be used to create an - interconnected I/O system since it performs additional argument - processing and checking. - - """ - def __init__(self, syslist, connections=None, inplist=None, outlist=None, - params=None, warn_duplicate=None, **kwargs): - """Create an I/O system from a list of systems + connection info.""" - # Convert input and output names to lists if they aren't already - if inplist is not None and not isinstance(inplist, list): - inplist = [inplist] - if outlist is not None and not isinstance(outlist, list): - outlist = [outlist] - - # Check if dt argument was given; if not, pull from systems - dt = kwargs.pop('dt', None) - - # Process keyword arguments (except dt) - name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) - - # Initialize the system list and index - self.syslist = list(syslist) # insure modifications can be made - self.syslist_index = {} - - # Initialize the input, output, and state counts, indices - nstates, self.state_offset = 0, [] - ninputs, self.input_offset = 0, [] - noutputs, self.output_offset = 0, [] - - # Keep track of system objects and names we have already seen - sysobj_name_dct = {} - sysname_count_dct = {} - - # Go through the system list and keep track of counts, offsets - for sysidx, sys in enumerate(self.syslist): - # If we were passed a SS or TF system, convert to LinearIOSystem - if isinstance(sys, (StateSpace, TransferFunction)) and \ - not isinstance(sys, LinearIOSystem): - sys = LinearIOSystem(sys, name=sys.name) - self.syslist[sysidx] = sys - - # Make sure time bases are consistent - dt = common_timebase(dt, sys.dt) - - # Make sure number of inputs, outputs, states is given - if sys.ninputs is None or sys.noutputs is None or \ - sys.nstates is None: - raise TypeError("System '%s' must define number of inputs, " - "outputs, states in order to be connected" % - sys.name) - - # Keep track of the offsets into the states, inputs, outputs - self.input_offset.append(ninputs) - self.output_offset.append(noutputs) - self.state_offset.append(nstates) - - # Keep track of the total number of states, inputs, outputs - nstates += sys.nstates - ninputs += sys.ninputs - noutputs += sys.noutputs - - # Check for duplicate systems or duplicate names - # Duplicates are renamed sysname_1, sysname_2, etc. - if sys in sysobj_name_dct: - # Make a copy of the object using a new name - if warn_duplicate is None and sys._generic_name_check(): - # Make a copy w/out warning, using generic format - sys = sys.copy(use_prefix_suffix=False) - warn_flag = False - else: - sys = sys.copy() - warn_flag = warn_duplicate - - # Warn the user about the new object - if warn_flag is not False: - warn("duplicate object found in system list; " - "created copy: %s" % str(sys.name), stacklevel=2) - - # Check to see if the system name shows up more than once - if sys.name is not None and sys.name in sysname_count_dct: - count = sysname_count_dct[sys.name] - sysname_count_dct[sys.name] += 1 - sysname = sys.name + "_" + str(count) - sysobj_name_dct[sys] = sysname - self.syslist_index[sysname] = sysidx - - if warn_duplicate is not False: - warn("duplicate name found in system list; " - "renamed to {}".format(sysname), stacklevel=2) - - else: - sysname_count_dct[sys.name] = 1 - sysobj_name_dct[sys] = sys.name - self.syslist_index[sys.name] = sysidx - - if states is None: - states = [] - state_name_delim = config.defaults['namedio.state_name_delim'] - for sys, sysname in sysobj_name_dct.items(): - states += [sysname + state_name_delim + - statename for statename in sys.state_index.keys()] - - # Make sure we the state list is the right length (internal check) - if isinstance(states, list) and len(states) != nstates: - raise RuntimeError( - f"construction of state labels failed; found: " - f"{len(states)} labels; expecting {nstates}") - - # Figure out what the inputs and outputs are - if inputs is None and inplist is not None: - inputs = len(inplist) - - if outputs is None and outlist is not None: - outputs = len(outlist) - - # Create the I/O system - # Note: don't use super() to override LinearICSystem/StateSpace MRO - InputOutputSystem.__init__( - self, inputs=inputs, outputs=outputs, - states=states, params=params, dt=dt, name=name, **kwargs) - - # Convert the list of interconnections to a connection map (matrix) - self.connect_map = np.zeros((ninputs, noutputs)) - for connection in connections or []: - input_indices = self._parse_input_spec(connection[0]) - for output_spec in connection[1:]: - output_indices, gain = self._parse_output_spec(output_spec) - if len(output_indices) != len(input_indices): - raise ValueError( - f"inconsistent number of signals in connecting" - f" '{output_spec}' to '{connection[0]}'") - - for input_index, output_index in zip( - input_indices, output_indices): - if self.connect_map[input_index, output_index] != 0: - warn("multiple connections given for input %d" % - input_index + ". Combining with previous entries.") - self.connect_map[input_index, output_index] += gain - - # Convert the input list to a matrix: maps system to subsystems - self.input_map = np.zeros((ninputs, self.ninputs)) - for index, inpspec in enumerate(inplist or []): - if isinstance(inpspec, (int, str, tuple)): - inpspec = [inpspec] - if not isinstance(inpspec, list): - raise ValueError("specifications in inplist must be of type " - "int, str, tuple or list.") - for spec in inpspec: - ulist_indices = self._parse_input_spec(spec) - for j, ulist_index in enumerate(ulist_indices): - if self.input_map[ulist_index, index] != 0: - warn("multiple connections given for input %d" % - index + ". Combining with previous entries.") - self.input_map[ulist_index, index + j] += 1 - - # Convert the output list to a matrix: maps subsystems to system - self.output_map = np.zeros((self.noutputs, noutputs + ninputs)) - for index, outspec in enumerate(outlist or []): - if isinstance(outspec, (int, str, tuple)): - outspec = [outspec] - if not isinstance(outspec, list): - raise ValueError("specifications in outlist must be of type " - "int, str, tuple or list.") - for spec in outspec: - ylist_indices, gain = self._parse_output_spec(spec) - for j, ylist_index in enumerate(ylist_indices): - if self.output_map[index, ylist_index] != 0: - warn("multiple connections given for output %d" % - index + ". Combining with previous entries.") - self.output_map[index + j, ylist_index] += gain - - def _update_params(self, params, warning=False): - for sys in self.syslist: - local = sys.params.copy() # start with system parameters - local.update(self.params) # update with global params - if params: - local.update(params) # update with locally passed parameters - sys._update_params(local, warning=warning) - - def _rhs(self, t, x, u): - # Make sure state and input are vectors - x = np.array(x, ndmin=1) - u = np.array(u, ndmin=1) - - # Compute the input and output vectors - ulist, ylist = self._compute_static_io(t, x, u) - - # Go through each system and update the right hand side for that system - xdot = np.zeros((self.nstates,)) # Array to hold results - state_index, input_index = 0, 0 # Start at the beginning - for sys in self.syslist: - # Update the right hand side for this subsystem - if sys.nstates != 0: - xdot[state_index:state_index + sys.nstates] = sys._rhs( - t, x[state_index:state_index + sys.nstates], - ulist[input_index:input_index + sys.ninputs]) - - # Update the state and input index counters - state_index += sys.nstates - input_index += sys.ninputs - - return xdot - - def _out(self, t, x, u): - # Make sure state and input are vectors - x = np.array(x, ndmin=1) - u = np.array(u, ndmin=1) - - # Compute the input and output vectors - ulist, ylist = self._compute_static_io(t, x, u) - - # Make the full set of subsystem outputs to system output - return self.output_map @ ylist - - def _compute_static_io(self, t, x, u): - # Figure out the total number of inputs and outputs - (ninputs, noutputs) = self.connect_map.shape - - # - # Get the outputs and inputs at the current system state - # - - # Initialize the lists used to keep track of internal signals - ulist = np.dot(self.input_map, u) - ylist = np.zeros((noutputs + ninputs,)) - - # To allow for feedthrough terms, iterate multiple times to allow - # feedthrough elements to propagate. For n systems, we could need to - # cycle through n+1 times before reaching steady state - # TODO (later): see if there is a more efficient way to compute - cycle_count = len(self.syslist) + 1 - while cycle_count > 0: - state_index, input_index, output_index = 0, 0, 0 - for sys in self.syslist: - # Compute outputs for each system from current state - ysys = sys._out( - t, x[state_index:state_index + sys.nstates], - ulist[input_index:input_index + sys.ninputs]) - - # Store the outputs at the start of ylist - ylist[output_index:output_index + sys.noutputs] = \ - ysys.reshape((-1,)) - - # Store the input in the second part of ylist - ylist[noutputs + input_index: - noutputs + input_index + sys.ninputs] = \ - ulist[input_index:input_index + sys.ninputs] - - # Increment the index pointers - state_index += sys.nstates - input_index += sys.ninputs - output_index += sys.noutputs - - # Compute inputs based on connection map - new_ulist = self.connect_map @ ylist[:noutputs] \ - + np.dot(self.input_map, u) - - # Check to see if any of the inputs changed - if (ulist == new_ulist).all(): - break - else: - ulist = new_ulist - - # Decrease the cycle counter - cycle_count -= 1 - - # Make sure that we stopped before detecting an algebraic loop - if cycle_count == 0: - raise RuntimeError("Algebraic loop detected.") - - return ulist, ylist - - def _parse_input_spec(self, spec): - """Parse an input specification and returns the indices.""" - # Parse the signal that we received - subsys_index, input_indices, gain = _parse_spec( - self.syslist, spec, 'input') - if gain != 1: - raise ValueError("gain not allowed in spec '%s'." % str(spec)) - - # Return the indices into the input vector list (ylist) - return [self.input_offset[subsys_index] + i for i in input_indices] - - def _parse_output_spec(self, spec): - """Parse an output specification and returns the indices and gain.""" - # Parse the rest of the spec with standard signal parsing routine - try: - # Start by looking in the set of subsystem outputs - subsys_index, output_indices, gain = \ - _parse_spec(self.syslist, spec, 'output') - output_offset = self.output_offset[subsys_index] - - except ValueError: - # Try looking in the set of subsystem *inputs* - subsys_index, output_indices, gain = _parse_spec( - self.syslist, spec, 'input or output', dictname='input_index') - - # Return the index into the input vector list (ylist) - output_offset = sum(sys.noutputs for sys in self.syslist) + \ - self.input_offset[subsys_index] - - return [output_offset + i for i in output_indices], gain - - def _find_system(self, name): - return self.syslist_index.get(name, None) - - def set_connect_map(self, connect_map): - """Set the connection map for an interconnected I/O system. + def set_outputs(self, outputs, prefix='y'): + """Set the number/names of the system outputs. Parameters ---------- - connect_map : 2D array - Specify the matrix that will be used to multiply the vector of - subsystem outputs to obtain the vector of subsystem inputs. + outputs : int, list of str, or None + Description of the system outputs. This can be given as an integer + count or as a list of strings that name the individual signals. + If an integer count is specified, the names of the signal will be + of the form `u[i]` (where the prefix `u` can be changed using the + optional prefix parameter). + prefix : string, optional + If `outputs` is an integer, create the names of the states using + the given prefix (default = 'y'). The names of the input will be + of the form `prefix[i]`. """ - # Make sure the connection map is the right size - if connect_map.shape != self.connect_map.shape: - ValueError("Connection map is not the right shape") - self.connect_map = connect_map + self.noutputs, self.output_index = \ + _process_signal_list(outputs, prefix=prefix) - def set_input_map(self, input_map): - """Set the input map for an interconnected I/O system. + def find_output(self, name): + """Find the index for an output given its name (`None` if not found)""" + return self.output_index.get(name, None) - Parameters - ---------- - input_map : 2D array - Specify the matrix that will be used to multiply the vector of - system inputs to obtain the vector of subsystem inputs. These - values are added to the inputs specified in the connection map. + def find_outputs(self, name_list): + """Return list of indices matching output spec (`None` if not found)""" + return self._find_signals(name_list, self.output_index) - """ - # Figure out the number of internal inputs - ninputs = sum(sys.ninputs for sys in self.syslist) + # Property for getting and setting list of output signals + output_labels = property( + lambda self: list(self.output_index.keys()), # getter + set_outputs) # setter - # Make sure the input map is the right size - if input_map.shape[0] != ninputs: - ValueError("Input map is not the right shape") - self.input_map = input_map - self.ninputs = input_map.shape[1] - - def set_output_map(self, output_map): - """Set the output map for an interconnected I/O system. + def set_states(self, states, prefix='x'): + """Set the number/names of the system states. Parameters ---------- - output_map : 2D array - Specify the matrix that will be used to multiply the vector of - subsystem outputs concatenated with subsystem inputs to obtain - the vector of system outputs. + states : int, list of str, or None + Description of the system states. This can be given as an integer + count or as a list of strings that name the individual signals. + If an integer count is specified, the names of the signal will be + of the form `u[i]` (where the prefix `u` can be changed using the + optional prefix parameter). + prefix : string, optional + If `states` is an integer, create the names of the states using + the given prefix (default = 'x'). The names of the input will be + of the form `prefix[i]`. """ - # Figure out the number of internal inputs and outputs - ninputs = sum(sys.ninputs for sys in self.syslist) - noutputs = sum(sys.noutputs for sys in self.syslist) - - # Make sure the output map is the right size - if output_map.shape[1] == noutputs: - # For backward compatibility, add zeros to the end of the array - output_map = np.concatenate( - (output_map, - np.zeros((output_map.shape[0], ninputs))), - axis=1) - - if output_map.shape[1] != noutputs + ninputs: - ValueError("Output map is not the right shape") - self.output_map = output_map - self.noutputs = output_map.shape[0] + self.nstates, self.state_index = \ + _process_signal_list(states, prefix=prefix, allow_dot=True) - def unused_signals(self): - """Find unused subsystem inputs and outputs + def find_state(self, name): + """Find the index for a state given its name (`None` if not found)""" + return self.state_index.get(name, None) - Returns - ------- + def find_states(self, name_list): + """Return list of indices matching state spec (`None` if not found)""" + return self._find_signals(name_list, self.state_index) - unused_inputs : dict - A mapping from tuple of indices (isys, isig) to string - '{sys}.{sig}', for all unused subsystem inputs. - - unused_outputs : dict - A mapping from tuple of indices (osys, osig) to string - '{sys}.{sig}', for all unused subsystem outputs. + # Property for getting and setting list of state signals + state_labels = property( + lambda self: list(self.state_index.keys()), # getter + set_states) # setter + def isctime(self, strict=False): """ - used_sysinp_via_inp = np.nonzero(self.input_map)[0] - used_sysout_via_out = np.nonzero(self.output_map)[1] - used_sysinp_via_con, used_sysout_via_con = np.nonzero(self.connect_map) - - used_sysinp = set(used_sysinp_via_inp) | set(used_sysinp_via_con) - used_sysout = set(used_sysout_via_out) | set(used_sysout_via_con) - - nsubsysinp = sum(sys.ninputs for sys in self.syslist) - nsubsysout = sum(sys.noutputs for sys in self.syslist) - - unused_sysinp = sorted(set(range(nsubsysinp)) - used_sysinp) - unused_sysout = sorted(set(range(nsubsysout)) - used_sysout) - - inputs = [(isys, isig, f'{sys.name}.{sig}') - for isys, sys in enumerate(self.syslist) - for sig, isig in sys.input_index.items()] - - outputs = [(isys, isig, f'{sys.name}.{sig}') - for isys, sys in enumerate(self.syslist) - for sig, isig in sys.output_index.items()] - - return ({inputs[i][:2]: inputs[i][2] for i in unused_sysinp}, - {outputs[i][:2]: outputs[i][2] for i in unused_sysout}) - - def _find_inputs_by_basename(self, basename): - """Find all subsystem inputs matching basename - - Returns - ------- - Mapping from (isys, isig) to '{sys}.{sig}' + Check to see if a system is a continuous-time system + Parameters + ---------- + sys : Named I/O system + System to be checked + strict: bool, optional + If strict is True, make sure that timebase is not None. Default + is False. """ - return {(isys, isig): f'{sys.name}.{basename}' - for isys, sys in enumerate(self.syslist) - for sig, isig in sys.input_index.items() - if sig == (basename)} - - def _find_outputs_by_basename(self, basename): - """Find all subsystem outputs matching basename - - Returns - ------- - Mapping from (isys, isig) to '{sys}.{sig}' + # If no timebase is given, answer depends on strict flag + if self.dt is None: + return True if not strict else False + return self.dt == 0 + def isdtime(self, strict=False): """ - return {(isys, isig): f'{sys.name}.{basename}' - for isys, sys in enumerate(self.syslist) - for sig, isig in sys.output_index.items() - if sig == (basename)} - - def check_unused_signals( - self, ignore_inputs=None, ignore_outputs=None, warning=True): - """Check for unused subsystem inputs and outputs - - Check to see if there are any unused signals and return a list of - unused input and output signal descriptions. If `warning` is True - and any unused inputs or outputs are found, emit a warning. + Check to see if a system is a discrete-time system Parameters ---------- - ignore_inputs : list of input-spec - Subsystem inputs known to be unused. input-spec can be any of: - 'sig', 'sys.sig', (isys, isig), ('sys', isig) - - If the 'sig' form is used, all subsystem inputs with that - name are considered ignored. - - ignore_outputs : list of output-spec - Subsystem outputs known to be unused. output-spec can be any of: - 'sig', 'sys.sig', (isys, isig), ('sys', isig) - - If the 'sig' form is used, all subsystem outputs with that - name are considered ignored. - - Returns - ------- - dropped_inputs: list of tuples - A list of the dropped input signals, with each element of the - list in the form of (isys, isig). - - dropped_outputs: list of tuples - A list of the dropped output signals, with each element of the - list in the form of (osys, osig). - + strict: bool, optional + If strict is True, make sure that timebase is not None. Default + is False. """ - if ignore_inputs is None: - ignore_inputs = [] - - if ignore_outputs is None: - ignore_outputs = [] - - unused_inputs, unused_outputs = self.unused_signals() - - # (isys, isig) -> signal-spec - ignore_input_map = {} - for ignore_input in ignore_inputs: - if isinstance(ignore_input, str) and '.' not in ignore_input: - ignore_idxs = self._find_inputs_by_basename(ignore_input) - if not ignore_idxs: - raise ValueError("Couldn't find ignored input " - f"{ignore_input} in subsystems") - ignore_input_map.update(ignore_idxs) - else: - isys, isigs = _parse_spec( - self.syslist, ignore_input, 'input')[:2] - for isig in isigs: - ignore_input_map[(isys, isig)] = ignore_input - - # (osys, osig) -> signal-spec - ignore_output_map = {} - for ignore_output in ignore_outputs: - if isinstance(ignore_output, str) and '.' not in ignore_output: - ignore_found = self._find_outputs_by_basename(ignore_output) - if not ignore_found: - raise ValueError("Couldn't find ignored output " - f"{ignore_output} in subsystems") - ignore_output_map.update(ignore_found) - else: - osys, osigs = _parse_spec( - self.syslist, ignore_output, 'output')[:2] - for osig in osigs: - ignore_output_map[(osys, osig)] = ignore_output - - dropped_inputs = set(unused_inputs) - set(ignore_input_map) - dropped_outputs = set(unused_outputs) - set(ignore_output_map) - - used_ignored_inputs = set(ignore_input_map) - set(unused_inputs) - used_ignored_outputs = set(ignore_output_map) - set(unused_outputs) - - if warning and dropped_inputs: - msg = ('Unused input(s) in InterconnectedSystem: ' - + '; '.join(f'{inp}={unused_inputs[inp]}' - for inp in dropped_inputs)) - warn(msg) + # If no timebase is given, answer depends on strict flag + if self.dt == None: + return True if not strict else False - if warning and dropped_outputs: - msg = ('Unused output(s) in InterconnectedSystem: ' - + '; '.join(f'{out} : {unused_outputs[out]}' - for out in dropped_outputs)) - warn(msg) + # Look for dt > 0 (also works if dt = True) + return self.dt > 0 - if warning and used_ignored_inputs: - msg = ('Input(s) specified as ignored is (are) used: ' - + '; '.join(f'{inp} : {ignore_input_map[inp]}' - for inp in used_ignored_inputs)) - warn(msg) + def issiso(self): + """Check to see if a system is single input, single output""" + return self.ninputs == 1 and self.noutputs == 1 - if warning and used_ignored_outputs: - msg = ('Output(s) specified as ignored is (are) used: ' - + '; '.join(f'{out}={ignore_output_map[out]}' - for out in used_ignored_outputs)) - warn(msg) + def _isstatic(self): + """Check to see if a system is a static system (no states)""" + return self.nstates == 0 - return dropped_inputs, dropped_outputs - - -class LinearICSystem(InterconnectedSystem, LinearIOSystem): - - """Interconnection of a set of linear input/output systems. - - This class is used to implement a system that is an interconnection of - linear input/output systems. It has all of the structure of an - :class:`~control.InterconnectedSystem`, but also maintains the requirement - elements of :class:`~control.LinearIOSystem`, including the - :class:`StateSpace` class structure, allowing it to be passed to functions - that expect a :class:`StateSpace` system. - - This class is generated using :func:`~control.interconnect` and - not called directly. +# Test to see if a system is SISO +def issiso(sys, strict=False): """ - - def __init__(self, io_sys, ss_sys=None): - if not isinstance(io_sys, InterconnectedSystem): - raise TypeError("First argument must be an interconnected system.") - - # Create the (essentially empty) I/O system object - InputOutputSystem.__init__( - self, name=io_sys.name, params=io_sys.params) - - # Copy over the named I/O system attributes - self.syslist = io_sys.syslist - self.ninputs, self.input_index = io_sys.ninputs, io_sys.input_index - self.noutputs, self.output_index = io_sys.noutputs, io_sys.output_index - self.nstates, self.state_index = io_sys.nstates, io_sys.state_index - self.dt = io_sys.dt - - # Copy over the attributes from the interconnected system - self.syslist_index = io_sys.syslist_index - self.state_offset = io_sys.state_offset - self.input_offset = io_sys.input_offset - self.output_offset = io_sys.output_offset - self.connect_map = io_sys.connect_map - self.input_map = io_sys.input_map - self.output_map = io_sys.output_map - self.params = io_sys.params - - # If we didnt' get a state space system, linearize the full system - # TODO: this could be replaced with a direct computation (someday) - if ss_sys is None: - ss_sys = self.linearize(0, 0) - - # Initialize the state space attributes - if isinstance(ss_sys, StateSpace): - # Make sure the dimensions match - if io_sys.ninputs != ss_sys.ninputs or \ - io_sys.noutputs != ss_sys.noutputs or \ - io_sys.nstates != ss_sys.nstates: - raise ValueError("System dimensions for first and second " - "arguments must match.") - StateSpace.__init__( - self, ss_sys, remove_useless_states=False, init_namedio=False) - - else: - raise TypeError("Second argument must be a state space system.") - - # The following text needs to be replicated from StateSpace in order for - # this entry to show up properly in sphinx doccumentation (not sure why, - # but it was the only way to get it to work). - # - #: Deprecated attribute; use :attr:`nstates` instead. - #: - #: The ``state`` attribute was used to store the number of states for : a - #: state space system. It is no longer used. If you need to access the - #: number of states, use :attr:`nstates`. - states = property(StateSpace._get_states, StateSpace._set_states) - - -def input_output_response( - sys, T, U=0., X0=0, params=None, - transpose=False, return_x=False, squeeze=None, - solve_ivp_kwargs=None, t_eval='T', **kwargs): - """Compute the output response of a system to a given input. - - Simulate a dynamical system with a given input and return its output - and state values. + Check to see if a system is single input, single output Parameters ---------- - sys : InputOutputSystem - Input/output system to simulate. - - T : array-like - Time steps at which the input is defined; values must be evenly spaced. - - U : array-like, list, or number, optional - Input array giving input at each time `T` (default = 0). If a list - is specified, each element in the list will be treated as a portion - of the input and broadcast (if necessary) to match the time vector. - - X0 : array-like, list, or number, optional - Initial condition (default = 0). If a list is given, each element - in the list will be flattened and stacked into the initial - condition. If a smaller number of elements are given that the - number of states in the system, the initial condition will be padded - with zeros. - - t_eval : array-list, optional - List of times at which the time response should be computed. - Defaults to ``T``. - - return_x : bool, optional - If True, return the state vector when assigning to a tuple (default = - False). See :func:`forced_response` for more details. - If True, return the values of the state at each time (default = False). - - squeeze : bool, optional - If True and if the system has a single output, return the system - output as a 1D array rather than a 2D array. If False, return the - system output as a 2D array even if the system is SISO. Default value - set by config.defaults['control.squeeze_time_response']. - - Returns - ------- - results : TimeResponseData - Time response 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 and - `squeeze` is not True, the array is 1D (indexed by time). If the - system is not SISO or `squeeze` is False, the array is 2D (indexed - by output and time). - - * states (array): Time evolution of the state vector, represented as - a 2D array indexed by state and time. - - * inputs (array): Input(s) to the system, indexed by input and time. - - The return value of the system can also be accessed by assigning the - function to a tuple of length 2 (time, output) or of length 3 (time, - output, state) if ``return_x`` is ``True``. If the input/output - system signals are named, these names will be used as labels for the - time response. - - Other parameters - ---------------- - solve_ivp_method : str, optional - Set the method used by :func:`scipy.integrate.solve_ivp`. Defaults - to 'RK45'. - solve_ivp_kwargs : dict, optional - Pass additional keywords to :func:`scipy.integrate.solve_ivp`. - - Raises - ------ - TypeError - If the system is not an input/output system. - ValueError - If time step does not match sampling time (for discrete time systems). - - Notes - ----- - 1. If a smaller number of initial conditions are given than the number of - states in the system, the initial conditions will be padded with - zeros. This is often useful for interconnected control systems where - the process dynamics are the first system and all other components - start with zero initial condition since this can be specified as - [xsys_0, 0]. A warning is issued if the initial conditions are padded - and and the final listed initial state is not zero. - - 2. If discontinuous inputs are given, the underlying SciPy numerical - integration algorithms can sometimes produce erroneous results due - to the default tolerances that are used. The `ivp_method` and - `ivp_keywords` parameters can be used to tune the ODE solver and - produce better results. In particular, using 'LSODA' as the - `ivp_method` or setting the `rtol` parameter to a smaller value - (e.g. using `ivp_kwargs={'rtol': 1e-4}`) can provide more accurate - results. - + sys : I/O or LTI system + System to be checked + strict: bool (default = False) + If strict is True, do not treat scalars as SISO """ - # - # Process keyword arguments - # + if isinstance(sys, (int, float, complex, np.number)) and not strict: + return True + elif not isinstance(sys, NamedIOSystem): + raise ValueError("Object is not an I/O or LTI system") - # Figure out the method to be used - solve_ivp_kwargs = solve_ivp_kwargs.copy() if solve_ivp_kwargs else {} - if kwargs.get('solve_ivp_method', None): - if kwargs.get('method', None): - raise ValueError("ivp_method specified more than once") - solve_ivp_kwargs['method'] = kwargs.pop('solve_ivp_method') - elif kwargs.get('method', None): - # Allow method as an alternative to solve_ivp_method - solve_ivp_kwargs['method'] = kwargs.pop('method') - - # Set the default method to 'RK45' - if solve_ivp_kwargs.get('method', None) is None: - solve_ivp_kwargs['method'] = 'RK45' - - # Make sure there were no extraneous keywords - if kwargs: - raise TypeError("unrecognized keyword(s): ", str(kwargs)) - - # Sanity checking on the input - if not isinstance(sys, InputOutputSystem): - raise TypeError("System of type ", type(sys), " not valid") - - # Compute the time interval and number of steps - T0, Tf = T[0], T[-1] - ntimepts = len(T) - - # Figure out simulation times (t_eval) - if solve_ivp_kwargs.get('t_eval'): - if t_eval == 'T': - # Override the default with the solve_ivp keyword - t_eval = solve_ivp_kwargs.pop('t_eval') - else: - raise ValueError("t_eval specified more than once") - if isinstance(t_eval, str) and t_eval == 'T': - # Use the input time points as the output time points - t_eval = T - - # If we were passed a list of input, concatenate them (w/ broadcast) - if isinstance(U, (tuple, list)) and len(U) != ntimepts: - U_elements = [] - for i, u in enumerate(U): - u = np.array(u) # convert everyting to an array - # Process this input - if u.ndim == 0 or (u.ndim == 1 and u.shape[0] != T.shape[0]): - # Broadcast array to the length of the time input - u = np.outer(u, np.ones_like(T)) - - elif (u.ndim == 1 and u.shape[0] == T.shape[0]) or \ - (u.ndim == 2 and u.shape[1] == T.shape[0]): - # No processing necessary; just stack - pass + # Done with the tricky stuff... + return sys.issiso() - else: - raise ValueError(f"Input element {i} has inconsistent shape") +# Return the timebase (with conversion if unspecified) +def timebase(sys, strict=True): + """Return the timebase for a system - # Append this input to our list - U_elements.append(u) + dt = timebase(sys) - # Save the newly created input vector - U = np.vstack(U_elements) + returns the timebase for a system 'sys'. If the strict option is + set to False, dt = True will be returned as 1. + """ + # System needs to be either a constant or an I/O or LTI system + if isinstance(sys, (int, float, complex, np.number)): + return None + elif not isinstance(sys, NamedIOSystem): + raise ValueError("Timebase not defined") - # Make sure the input has the right shape - if sys.ninputs is None or sys.ninputs == 1: - legal_shapes = [(ntimepts,), (1, ntimepts)] - else: - legal_shapes = [(sys.ninputs, ntimepts)] - - U = _check_convert_array(U, legal_shapes, - 'Parameter ``U``: ', squeeze=False) - - # Always store the input as a 2D array - U = U.reshape(-1, ntimepts) - ninputs = U.shape[0] - - # If we were passed a list of initial states, concatenate them - X0 = _concatenate_list_elements(X0, 'X0') - - # If the initial state is too short, make it longer (NB: sys.nstates - # could be None if nstates comes from size of initial condition) - if sys.nstates and isinstance(X0, np.ndarray) and X0.size < sys.nstates: - if X0[-1] != 0: - warn("initial state too short; padding with zeros") - X0 = np.hstack([X0, np.zeros(sys.nstates - X0.size)]) - - # If we were passed a list of initial states, concatenate them - if isinstance(X0, (tuple, list)): - X0_list = [] - for i, x0 in enumerate(X0): - x0 = np.array(x0).reshape(-1) # convert everyting to 1D array - X0_list += x0.tolist() # add elements to initial state - - # Save the newly created input vector - X0 = np.array(X0_list) - - # If the initial state is too short, make it longer (NB: sys.nstates - # could be None if nstates comes from size of initial condition) - if sys.nstates and isinstance(X0, np.ndarray) and X0.size < sys.nstates: - if X0[-1] != 0: - warn("initial state too short; padding with zeros") - X0 = np.hstack([X0, np.zeros(sys.nstates - X0.size)]) - - # Compute the number of states - nstates = _find_size(sys.nstates, X0) - - # create X0 if not given, test if X0 has correct shape - X0 = _check_convert_array(X0, [(nstates,), (nstates, 1)], - 'Parameter ``X0``: ', squeeze=True) - - # Figure out the number of outputs - if sys.noutputs is None: - # Evaluate the output function to find number of outputs - noutputs = np.shape(sys._out(T[0], X0, U[:, 0]))[0] - else: - noutputs = sys.noutputs + # Return the sample time, with converstion to float if strict is false + if (sys.dt == None): + return None + elif (strict): + return float(sys.dt) - # Update the parameter values - sys._update_params(params) + return sys.dt - # - # Define a function to evaluate the input at an arbitrary time - # - # This is equivalent to the function - # - # ufun = sp.interpolate.interp1d(T, U, fill_value='extrapolate') - # - # but has a lot less overhead => simulation runs much faster - def ufun(t): - # Find the value of the index using linear interpolation - # Use clip to allow for extrapolation if t is out of range - idx = np.clip(np.searchsorted(T, t, side='left'), 1, len(T)-1) - dt = (t - T[idx-1]) / (T[idx] - T[idx-1]) - return U[..., idx-1] * (1. - dt) + U[..., idx] * dt - - # Check to make sure this is not a static function - if nstates == 0: # No states => map input to output - # Make sure the user gave a time vector for evaluation (or 'T') - if t_eval is None: - # User overrode t_eval with None, but didn't give us the times... - warn("t_eval set to None, but no dynamics; using T instead") - t_eval = T - - # Allocate space for the inputs and outputs - u = np.zeros((ninputs, len(t_eval))) - y = np.zeros((noutputs, len(t_eval))) - - # Compute the input and output at each point in time - for i, t in enumerate(t_eval): - u[:, i] = ufun(t) - y[:, i] = sys._out(t, [], u[:, i]) - - return TimeResponseData( - t_eval, y, None, u, issiso=sys.issiso(), - output_labels=sys.output_labels, input_labels=sys.input_labels, - transpose=transpose, return_x=return_x, squeeze=squeeze) - - # Create a lambda function for the right hand side - def ivp_rhs(t, x): - return sys._rhs(t, x, ufun(t)) - - # Perform the simulation - if isctime(sys): - if not hasattr(sp.integrate, 'solve_ivp'): - raise NameError("scipy.integrate.solve_ivp not found; " - "use SciPy 1.0 or greater") - soln = sp.integrate.solve_ivp( - ivp_rhs, (T0, Tf), X0, t_eval=t_eval, - vectorized=False, **solve_ivp_kwargs) - if not soln.success: - raise RuntimeError("solve_ivp failed: " + soln.message) - - # Compute inputs and outputs for each time point - u = np.zeros((ninputs, len(soln.t))) - y = np.zeros((noutputs, len(soln.t))) - for i, t in enumerate(soln.t): - u[:, i] = ufun(t) - y[:, i] = sys._out(t, soln.y[:, i], u[:, i]) - - elif isdtime(sys): - # If t_eval was not specified, use the sampling time - if t_eval is None: - t_eval = np.arange(T[0], T[1] + sys.dt, sys.dt) - - # Make sure the time vector is uniformly spaced - dt = t_eval[1] - t_eval[0] - if not np.allclose(t_eval[1:] - t_eval[:-1], dt): - raise ValueError("Parameter ``t_eval``: time values must be " - "equally spaced.") - - # Make sure the sample time matches the given time - if sys.dt is not True: - # Make sure that the time increment is a multiple of sampling time - - # TODO: add back functionality for undersampling - # TODO: this test is brittle if dt = sys.dt - # First make sure that time increment is bigger than sampling time - # if dt < sys.dt: - # raise ValueError("Time steps ``T`` must match sampling time") - - # Check to make sure sampling time matches time increments - if not np.isclose(dt, sys.dt): - raise ValueError("Time steps ``T`` must be equal to " - "sampling time") - - # Compute the solution - soln = sp.optimize.OptimizeResult() - soln.t = t_eval # Store the time vector directly - x = np.array(X0) # State vector (store as floats) - soln.y = [] # Solution, following scipy convention - u, y = [], [] # System input, output - for t in t_eval: - # Store the current input, state, and output - soln.y.append(x) - u.append(ufun(t)) - y.append(sys._out(t, x, u[-1])) - - # Update the state for the next iteration - x = sys._rhs(t, x, u[-1]) - - # Convert output to numpy arrays - soln.y = np.transpose(np.array(soln.y)) - y = np.transpose(np.array(y)) - u = np.transpose(np.array(u)) - - # Mark solution as successful - soln.success = True # No way to fail - - else: # Neither ctime or dtime?? - raise TypeError("Can't determine system type") - - return TimeResponseData( - soln.t, y, soln.y, u, issiso=sys.issiso(), - output_labels=sys.output_labels, input_labels=sys.input_labels, - state_labels=sys.state_labels, - transpose=transpose, return_x=return_x, squeeze=squeeze) - - -def find_eqpt(sys, x0, u0=None, y0=None, t=0, params=None, - iu=None, iy=None, ix=None, idx=None, dx0=None, - return_y=False, return_result=False): - """Find the equilibrium point for an input/output system. - - Returns the value of an equilibrium point given the initial state and - either input value or desired output value for the equilibrium point. +def common_timebase(dt1, dt2): + """ + Find the common timebase when interconnecting systems Parameters ---------- - x0 : list of initial state values - Initial guess for the value of the state near the equilibrium point. - u0 : list of input values, optional - If `y0` is not specified, sets the equilibrium value of the input. If - `y0` is given, provides an initial guess for the value of the input. - Can be omitted if the system does not have any inputs. - y0 : list of output values, optional - If specified, sets the desired values of the outputs at the - equilibrium point. - t : float, optional - Evaluation time, for time-varying systems - params : dict, optional - Parameter values for the system. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - iu : list of input indices, optional - If specified, only the inputs with the given indices will be fixed at - the specified values in solving for an equilibrium point. All other - inputs will be varied. Input indices can be listed in any order. - iy : list of output indices, optional - If specified, only the outputs with the given indices will be fixed at - the specified values in solving for an equilibrium point. All other - outputs will be varied. Output indices can be listed in any order. - ix : list of state indices, optional - If specified, states with the given indices will be fixed at the - specified values in solving for an equilibrium point. All other - states will be varied. State indices can be listed in any order. - dx0 : list of update values, optional - If specified, the value of update map must match the listed value - instead of the default value of 0. - idx : list of state indices, optional - If specified, state updates with the given indices will have their - update maps fixed at the values given in `dx0`. All other update - values will be ignored in solving for an equilibrium point. State - indices can be listed in any order. By default, all updates will be - fixed at `dx0` in searching for an equilibrium point. - return_y : bool, optional - If True, return the value of output at the equilibrium point. - return_result : bool, optional - If True, return the `result` option from the - :func:`scipy.optimize.root` function used to compute the equilibrium - point. + dt1, dt2: number or system with a 'dt' attribute (e.g. TransferFunction + or StateSpace system) Returns ------- - xeq : array of states - Value of the states at the equilibrium point, or `None` if no - equilibrium point was found and `return_result` was False. - ueq : array of input values - Value of the inputs at the equilibrium point, or `None` if no - equilibrium point was found and `return_result` was False. - yeq : array of output values, optional - If `return_y` is True, returns the value of the outputs at the - equilibrium point, or `None` if no equilibrium point was found and - `return_result` was False. - result : :class:`scipy.optimize.OptimizeResult`, optional - If `return_result` is True, returns the `result` from the - :func:`scipy.optimize.root` function. - - Notes - ----- - For continuous time systems, equilibrium points are defined as points for - which the right hand side of the differential equation is zero: - :math:`f(t, x_e, u_e) = 0`. For discrete time systems, equilibrium points - are defined as points for which the right hand side of the difference - equation returns the current state: :math:`f(t, x_e, u_e) = x_e`. + dt: number + The common timebase of dt1 and dt2, as specified in + :ref:`conventions-ref`. + Raises + ------ + ValueError + when no compatible time base can be found """ - from scipy.optimize import root - - # Figure out the number of states, inputs, and outputs - nstates = _find_size(sys.nstates, x0) - ninputs = _find_size(sys.ninputs, u0) - noutputs = _find_size(sys.noutputs, y0) - - # Convert x0, u0, y0 to arrays, if needed - if np.isscalar(x0): - x0 = np.ones((nstates,)) * x0 - if np.isscalar(u0): - u0 = np.ones((ninputs,)) * u0 - if np.isscalar(y0): - y0 = np.ones((ninputs,)) * y0 - - # Make sure the input arguments match the sizes of the system - if len(x0) != nstates or \ - (u0 is not None and len(u0) != ninputs) or \ - (y0 is not None and len(y0) != noutputs) or \ - (dx0 is not None and len(dx0) != nstates): - raise ValueError("Length of input arguments does not match system.") - - # Update the parameter values - sys._update_params(params) - - # Decide what variables to minimize - if all([x is None for x in (iu, iy, ix, idx)]): - # Special cases: either inputs or outputs are constrained - if y0 is None: - # Take u0 as fixed and minimize over x - if sys.isdtime(strict=True): - def state_rhs(z): return sys._rhs(t, z, u0) - z - else: - def state_rhs(z): return sys._rhs(t, z, u0) - - result = root(state_rhs, x0) - z = (result.x, u0, sys._out(t, result.x, u0)) - + # explanation: + # if either dt is None, they are compatible with anything + # if either dt is True (discrete with unspecified time base), + # use the timebase of the other, if it is also discrete + # otherwise both dts must be equal + if hasattr(dt1, 'dt'): + dt1 = dt1.dt + if hasattr(dt2, 'dt'): + dt2 = dt2.dt + + if dt1 is None: + return dt2 + elif dt2 is None: + return dt1 + elif dt1 is True: + if dt2 > 0: + return dt2 else: - # Take y0 as fixed and minimize over x and u - if sys.isdtime(strict=True): - def rootfun(z): - x, u = np.split(z, [nstates]) - return np.concatenate( - (sys._rhs(t, x, u) - x, sys._out(t, x, u) - y0), - axis=0) - else: - def rootfun(z): - x, u = np.split(z, [nstates]) - return np.concatenate( - (sys._rhs(t, x, u), sys._out(t, x, u) - y0), axis=0) - - z0 = np.concatenate((x0, u0), axis=0) # Put variables together - result = root(rootfun, z0) # Find the eq point - x, u = np.split(result.x, [nstates]) # Split result back in two - z = (x, u, sys._out(t, x, u)) - - else: - # General case: figure out what variables to constrain - # Verify the indices we are using are all in range - if iu is not None: - iu = np.unique(iu) - if any([not isinstance(x, int) for x in iu]) or \ - (len(iu) > 0 and (min(iu) < 0 or max(iu) >= ninputs)): - assert ValueError("One or more input indices is invalid") - else: - iu = [] - - if iy is not None: - iy = np.unique(iy) - if any([not isinstance(x, int) for x in iy]) or \ - min(iy) < 0 or max(iy) >= noutputs: - assert ValueError("One or more output indices is invalid") - else: - iy = list(range(noutputs)) - - if ix is not None: - ix = np.unique(ix) - if any([not isinstance(x, int) for x in ix]) or \ - min(ix) < 0 or max(ix) >= nstates: - assert ValueError("One or more state indices is invalid") + raise ValueError("Systems have incompatible timebases") + elif dt2 is True: + if dt1 > 0: + return dt1 else: - ix = [] - - if idx is not None: - idx = np.unique(idx) - if any([not isinstance(x, int) for x in idx]) or \ - min(idx) < 0 or max(idx) >= nstates: - assert ValueError("One or more deriv indices is invalid") - else: - idx = list(range(nstates)) - - # Construct the index lists for mapping variables and constraints - # - # The mechanism by which we implement the root finding function is to - # map the subset of variables we are searching over into the inputs - # and states, and then return a function that represents the equations - # we are trying to solve. - # - # To do this, we need to carry out the following operations: - # - # 1. Given the current values of the free variables (z), map them into - # the portions of the state and input vectors that are not fixed. - # - # 2. Compute the update and output maps for the input/output system - # and extract the subset of equations that should be equal to zero. - # - # We perform these functions by computing four sets of index lists: - # - # * state_vars: indices of states that are allowed to vary - # * input_vars: indices of inputs that are allowed to vary - # * deriv_vars: indices of derivatives that must be constrained - # * output_vars: indices of outputs that must be constrained - # - # This index lists can all be precomputed based on the `iu`, `iy`, - # `ix`, and `idx` lists that were passed as arguments to `find_eqpt` - # and were processed above. - - # Get the states and inputs that were not listed as fixed - state_vars = (range(nstates) if not len(ix) - else np.delete(np.array(range(nstates)), ix)) - input_vars = (range(ninputs) if not len(iu) - else np.delete(np.array(range(ninputs)), iu)) - - # Set the outputs and derivs that will serve as constraints - output_vars = np.array(iy) - deriv_vars = np.array(idx) - - # Verify that the number of degrees of freedom all add up correctly - num_freedoms = len(state_vars) + len(input_vars) - num_constraints = len(output_vars) + len(deriv_vars) - if num_constraints != num_freedoms: - warn("Number of constraints (%d) does not match number of degrees " - "of freedom (%d). Results may be meaningless." % - (num_constraints, num_freedoms)) - - # Make copies of the state and input variables to avoid overwriting - # and convert to floats (in case ints were used for initial conditions) - x = np.array(x0, dtype=float) - u = np.array(u0, dtype=float) - dx0 = np.array(dx0, dtype=float) if dx0 is not None \ - else np.zeros(x.shape) - - # Keep track of the number of states in the set of free variables - nstate_vars = len(state_vars) - - def rootfun(z): - # Map the vector of values into the states and inputs - x[state_vars] = z[:nstate_vars] - u[input_vars] = z[nstate_vars:] - - # Compute the update and output maps - dx = sys._rhs(t, x, u) - dx0 - if sys.isdtime(strict=True): - dx -= x - - # If no y0 is given, don't evaluate the output function - if y0 is None: - return dx[deriv_vars] - else: - dy = sys._out(t, x, u) - y0 - - # Map the results into the constrained variables - return np.concatenate((dx[deriv_vars], dy[output_vars]), axis=0) - - # Set the initial condition for the root finding algorithm - z0 = np.concatenate((x[state_vars], u[input_vars]), axis=0) - - # Finally, call the root finding function - result = root(rootfun, z0) - - # Extract out the results and insert into x and u - x[state_vars] = result.x[:nstate_vars] - u[input_vars] = result.x[nstate_vars:] - z = (x, u, sys._out(t, x, u)) - - # Return the result based on what the user wants and what we found - if not return_y: - z = z[0:2] # Strip y from result if not desired - if return_result: - # Return whatever we got, along with the result dictionary - return z + (result,) - elif result.success: - # Return the result of the optimization - return z + raise ValueError("Systems have incompatible timebases") + elif np.isclose(dt1, dt2): + return dt1 else: - # Something went wrong, don't return anything - return (None, None, None) if return_y else (None, None) - - -# Linearize an input/output system -def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): - """Linearize an input/output system at a given state and input. - - This function computes the linearization of an input/output system at a - given state and input value and returns a :class:`~control.StateSpace` - object. The evaluation point need not be an equilibrium point. + raise ValueError("Systems have incompatible timebases") - Parameters - ---------- - sys : InputOutputSystem - The system to be linearized - xeq : array - The state at which the linearization will be evaluated (does not need - to be an equilibrium state). - ueq : array - The input at which the linearization will be evaluated (does not need - to correspond to an equlibrium state). - t : float, optional - The time at which the linearization will be computed (for time-varying - systems). - params : dict, optional - Parameter values for the systems. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - name : string, optional - Set the name of the linearized system. If not specified and - if `copy_names` is `False`, a generic name is generated - with a unique integer id. If `copy_names` is `True`, the new system - name is determined by adding the prefix and suffix strings in - config.defaults['namedio.linearized_system_name_prefix'] and - config.defaults['namedio.linearized_system_name_suffix'], with the - default being to add the suffix '$linearized'. - copy_names : bool, Optional - If True, Copy the names of the input signals, output signals, and - states to the linearized system. - - Returns - ------- - ss_sys : LinearIOSystem - The linearization of the system, as a :class:`~control.LinearIOSystem` - object (which is also a :class:`~control.StateSpace` object. - - Other Parameters - ---------------- - inputs : int, list of str or None, optional - Description of the system inputs. If not specified, the origional - system inputs are used. See :class:`InputOutputSystem` for more - information. - outputs : int, list of str or None, optional - Description of the system outputs. Same format as `inputs`. - states : int, list of str, or None, optional - Description of the system states. Same format as `inputs`. +# Check to see if two timebases are equal +def timebaseEqual(sys1, sys2): """ - if not isinstance(sys, InputOutputSystem): - raise TypeError("Can only linearize InputOutputSystem types") - return sys.linearize(xeq, ueq, t=t, params=params, **kw) + Check to see if two systems have the same timebase + timebaseEqual(sys1, sys2) -def _find_size(sysval, vecval): - """Utility function to find the size of a system parameter - - If both parameters are not None, they must be consistent. + returns True if the timebases for the two systems are compatible. By + default, systems with timebase 'None' are compatible with either + discrete or continuous timebase systems. If two systems have a discrete + timebase (dt > 0) then their timebases must be equal. """ - if hasattr(vecval, '__len__'): - if sysval is not None and sysval != len(vecval): - raise ValueError("Inconsistent information to determine size " - "of system component") - return len(vecval) - # None or 0, which is a valid value for "a (sysval, ) vector of zeros". - if not vecval: - return 0 if sysval is None else sysval - elif sysval == 1: - # (1, scalar) is also a valid combination from legacy code - return 1 - raise ValueError("Can't determine size of system component.") - - -# Define a state space object that is an I/O system -def ss(*args, **kwargs): - r"""ss(A, B, C, D[, dt]) - - Create a state space system. - - The function accepts either 1, 2, 4 or 5 parameters: - - ``ss(sys)`` - Convert a linear system into space system form. Always creates a - new system, even if sys is already a state space system. - - ``ss(updfcn, outfcn)`` - Create a nonlinear input/output system with update function ``updfcn`` - and output function ``outfcn``. See :class:`NonlinearIOSystem` for - more information. - - ``ss(A, B, C, D)`` - Create a state space system from the matrices of its state and - output equations: - - .. math:: - - dx/dt &= A x + B u \\ - y &= C x + D u - - ``ss(A, B, C, D, dt)`` - Create a discrete-time state space system from the matrices of - its state and output equations: - - .. math:: - - x[k+1] &= A x[k] + B u[k] \\ - y[k] &= C x[k] + D u[k] + warn("timebaseEqual will be deprecated in a future release of " + "python-control; use :func:`common_timebase` instead", + PendingDeprecationWarning) + + if (type(sys1.dt) == bool or type(sys2.dt) == bool): + # Make sure both are unspecified discrete timebases + return type(sys1.dt) == type(sys2.dt) and sys1.dt == sys2.dt + elif (sys1.dt is None or sys2.dt is None): + # One or the other is unspecified => the other can be anything + return True + else: + return sys1.dt == sys2.dt - The matrices can be given as *array like* data types or strings. - ``ss(args, inputs=['u1', ..., 'up'], outputs=['y1', ..., 'yq'], states=['x1', ..., 'xn'])`` - Create a system with named input, output, and state signals. +# Check to see if a system is a discrete time system +def isdtime(sys, strict=False): + """ + Check to see if a system is a discrete time system Parameters ---------- - sys : StateSpace or TransferFunction - A linear system. - A, B, C, D : array_like or string - System, control, output, and feed forward matrices. - dt : None, True or float, optional - System timebase. 0 (default) indicates continuous - time, True indicates discrete time with unspecified sampling - time, positive number is discrete time with specified - sampling time, None indicates unspecified timebase (either - continuous or discrete time). - inputs, outputs, states : str, or list of str, optional - List of strings that name the individual signals. If this parameter - is not given or given as `None`, the signal names will be of the - form `s[i]` (where `s` is one of `u`, `y`, or `x`). See - :class:`InputOutputSystem` for more information. - name : string, optional - System name (used for specifying signals). If unspecified, a generic - name is generated with a unique integer id. - - Returns - ------- - out: :class:`LinearIOSystem` - Linear input/output system. - - Raises - ------ - ValueError - If matrix sizes are not self-consistent. - - See Also - -------- - tf - ss2tf - tf2ss - - Examples - -------- - Create a Linear I/O system object from matrices. - - >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) - - Convert a TransferFunction to a StateSpace object. - - >>> sys_tf = ct.tf([2.], [1., 3]) - >>> sys2 = ct.ss(sys_tf) - + sys : I/O or LTI system + System to be checked + strict: bool (default = False) + If strict is True, make sure that timebase is not None """ - # See if this is a nonlinear I/O system - if len(args) > 0 and (hasattr(args[0], '__call__') or args[0] is None) \ - and not isinstance(args[0], (InputOutputSystem, LTI)): - # Function as first (or second) argument => assume nonlinear IO system - return NonlinearIOSystem(*args, **kwargs) - - elif len(args) == 4 or len(args) == 5: - # Create a state space function from A, B, C, D[, dt] - sys = LinearIOSystem(StateSpace(*args, **kwargs)) - - elif len(args) == 1: - sys = args[0] - if isinstance(sys, LTI): - # Check for system with no states and specified state names - if sys.nstates is None and 'states' in kwargs: - warn("state labels specified for " - "non-unique state space realization") - - # Create a state space system from an LTI system - sys = LinearIOSystem( - _convert_to_statespace( - sys, - use_prefix_suffix=not sys._generic_name_check()), - **kwargs) - else: - raise TypeError("ss(sys): sys must be a StateSpace or " - "TransferFunction object. It is %s." % type(sys)) - else: - raise TypeError( - "Needs 1, 4, or 5 arguments; received %i." % len(args)) + # Check to see if this is a constant + if isinstance(sys, (int, float, complex, np.number)): + # OK as long as strict checking is off + return True if not strict else False - return sys + # Check for a transfer function or state-space object + if isinstance(sys, NamedIOSystem): + return sys.isdtime(strict) + # Check to see if object has a dt object + if hasattr(sys, 'dt'): + # If no timebase is given, answer depends on strict flag + if sys.dt == None: + return True if not strict else False -# Utility function to allow lists states, inputs -def _concatenate_list_elements(X, name='X'): - # If we were passed a list, concatenate the elements together - if isinstance(X, (tuple, list)): - X_list = [] - for i, x in enumerate(X): - x = np.array(x).reshape(-1) # convert everyting to 1D array - X_list += x.tolist() # add elements to initial state - return np.array(X_list) + # Look for dt > 0 (also works if dt = True) + return sys.dt > 0 - # Otherwise, do nothing - return X + # Got passed something we don't recognize + return False -def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): - """Create a stable random state space object. +# Check to see if a system is a continuous time system +def isctime(sys, strict=False): + """ + Check to see if a system is a continuous-time system Parameters ---------- - inputs : int, list of str, or None - Description of the system inputs. This can be given as an integer - count or as a list of strings that name the individual signals. If an - integer count is specified, the names of the signal will be of the - form `s[i]` (where `s` is one of `u`, `y`, or `x`). - outputs : int, list of str, or None - Description of the system outputs. Same format as `inputs`. - states : int, list of str, or None - Description of the system states. Same format as `inputs`. - strictly_proper : bool, optional - If set to 'True', returns a proper system (no direct term). - dt : None, True or float, optional - System timebase. 0 (default) indicates continuous - time, True indicates discrete time with unspecified sampling - time, positive number is discrete time with specified - sampling time, None indicates unspecified timebase (either - continuous or discrete time). - name : string, optional - System name (used for specifying signals). If unspecified, a generic - name is generated with a unique integer id. + sys : I/O or LTI system + System to be checked + strict: bool (default = False) + If strict is True, make sure that timebase is not None + """ - Returns - ------- - sys : LinearIOSystem - The randomly created linear system. + # Check to see if this is a constant + if isinstance(sys, (int, float, complex, np.number)): + # OK as long as strict checking is off + return True if not strict else False - Raises - ------ - ValueError - if any input is not a positive integer. + # Check for a transfer function or state space object + if isinstance(sys, NamedIOSystem): + return sys.isctime(strict) - Notes - ----- - If the number of states, inputs, or outputs is not specified, then the - missing numbers are assumed to be 1. If dt is not specified or is given - as 0 or None, the poles of the returned system will always have a - negative real part. If dt is True or a postive float, the poles of the - returned system will have magnitude less than 1. + # Check to see if object has a dt object + if hasattr(sys, 'dt'): + # If no timebase is given, answer depends on strict flag + if sys.dt is None: + return True if not strict else False + return sys.dt == 0 - """ - # Process keyword arguments - kwargs.update({'states': states, 'outputs': outputs, 'inputs': inputs}) - name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) + # Got passed something we don't recognize + return False - # Figure out the size of the sytem - nstates, _ = _process_signal_list(states) - ninputs, _ = _process_signal_list(inputs) - noutputs, _ = _process_signal_list(outputs) - sys = _rss_generate( - nstates, ninputs, noutputs, 'c' if not dt else 'd', name=name, - strictly_proper=strictly_proper) +# Utility function to parse nameio keywords +def _process_namedio_keywords( + keywords={}, defaults={}, static=False, end=False): + """Process namedio specification - return LinearIOSystem( - sys, name=name, states=states, inputs=inputs, outputs=outputs, dt=dt, - **kwargs) + This function processes the standard keywords used in initializing a named + I/O system. It first looks in the `keyword` dictionary to see if a value + is specified. If not, the `default` dictionary is used. The `default` + dictionary can also be set to a NamedIOSystem object, which is useful for + copy constructors that change system and signal names. + If `end` is True, then generate an error if there are any remaining + keywords. -def drss(*args, **kwargs): """ - drss([states, outputs, inputs, strictly_proper]) + # If default is a system, redefine as a dictionary + if isinstance(defaults, NamedIOSystem): + sys = defaults + defaults = { + 'name': sys.name, 'inputs': sys.input_labels, + 'outputs': sys.output_labels, 'dt': sys.dt} - Create a stable, discrete-time, random state space system + if sys.nstates is not None: + defaults['states'] = sys.state_labels - Create a stable *discrete time* random state space object. This - function calls :func:`rss` using either the `dt` keyword provided by - the user or `dt=True` if not specified. + elif not isinstance(defaults, dict): + raise TypeError("default must be dict or sys") - Examples - -------- - >>> G = ct.drss(states=4, outputs=2, inputs=1) - >>> G.ninputs, G.noutputs, G.nstates - (1, 2, 4) - >>> G.isdtime() - True - - - """ - # Make sure the timebase makes sense - if 'dt' in kwargs: - dt = kwargs['dt'] - - if dt == 0: - raise ValueError("drss called with continuous timebase") - elif dt is None: - warn("drss called with unspecified timebase; " - "system may be interpreted as continuous time") - kwargs['dt'] = True # force rss to generate discrete time sys else: - dt = True - kwargs['dt'] = True + sys = None + + # Sort out singular versus plural signal names + for singular in ['input', 'output', 'state']: + kw = singular + 's' + if singular in keywords and kw in keywords: + raise TypeError(f"conflicting keywords '{singular}' and '{kw}'") + + if singular in keywords: + keywords[kw] = keywords.pop(singular) + + # Utility function to get keyword with defaults, processing + def pop_with_default(kw, defval=None, return_list=True): + val = keywords.pop(kw, None) + if val is None: + val = defaults.get(kw, defval) + if return_list and isinstance(val, str): + val = [val] # make sure to return a list + return val + + # Process system and signal names + name = pop_with_default('name', return_list=False) + inputs = pop_with_default('inputs') + outputs = pop_with_default('outputs') + states = pop_with_default('states') + + # If we were given a system, make sure sizes match list lengths + if sys: + if isinstance(inputs, list) and sys.ninputs != len(inputs): + raise ValueError("Wrong number of input labels given.") + if isinstance(outputs, list) and sys.noutputs != len(outputs): + raise ValueError("Wrong number of output labels given.") + if sys.nstates is not None and \ + isinstance(states, list) and sys.nstates != len(states): + raise ValueError("Wrong number of state labels given.") + + # Process timebase: if not given use default, but allow None as value + dt = _process_dt_keyword(keywords, defaults, static=static) + + # If desired, make sure we processed all keywords + if end and keywords: + raise TypeError("unrecognized keywords: ", str(keywords)) + + # Return the processed keywords + return name, inputs, outputs, states, dt - # Create the system - sys = rss(*args, **kwargs) - - # Reset the timebase (in case it was specified as None) - sys.dt = dt +# +# Parse 'dt' in for named I/O system +# +# The 'dt' keyword is used to set the timebase for a system. Its +# processing is a bit unusual: if it is not specified at all, then the +# value is pulled from config.defaults['control.default_dt']. But +# since 'None' is an allowed value, we can't just use the default if +# dt is None. Instead, we have to look to see if it was listed as a +# variable keyword. +# +# In addition, if a system is static and dt is not specified, we set dt = +# None to allow static systems to be combined with either discrete-time or +# continuous-time systems. +# +# TODO: update all 'dt' processing to call this function, so that +# everything is done consistently. +# +def _process_dt_keyword(keywords, defaults={}, static=False): + if static and 'dt' not in keywords and 'dt' not in defaults: + dt = None + elif 'dt' in keywords: + dt = keywords.pop('dt') + elif 'dt' in defaults: + dt = defaults.pop('dt') + else: + dt = config.defaults['control.default_dt'] - return sys + # Make sure that the value for dt is valid + if dt is not None and not isinstance(dt, (bool, int, float)) or \ + isinstance(dt, (bool, int, float)) and dt < 0: + raise ValueError(f"invalid timebase, dt = {dt}") + return dt -# Convert a state space system into an input/output system (wrapper) -def ss2io(*args, **kwargs): - return LinearIOSystem(*args, **kwargs) -ss2io.__doc__ = LinearIOSystem.__init__.__doc__ +# Utility function to parse a list of signals +def _process_signal_list(signals, prefix='s', allow_dot=False): + if signals is None: + # No information provided; try and make it up later + return None, {} -# Convert a transfer function into an input/output system (wrapper) -def tf2io(*args, **kwargs): - """tf2io(sys[, ...]) + elif isinstance(signals, (int, np.integer)): + # Number of signals given; make up the names + return signals, {'%s[%d]' % (prefix, i): i for i in range(signals)} - Convert a transfer function into an I/O system + elif isinstance(signals, str): + # Single string given => single signal with given name + if not allow_dot and re.match(r".*\..*", signals): + raise ValueError( + f"invalid signal name '{signals}' ('.' not allowed)") + return 1, {signals: 0} - The function accepts either 1 or 2 parameters: + elif all(isinstance(s, str) for s in signals): + # Use the list of strings as the signal names + for signal in signals: + if not allow_dot and re.match(r".*\..*", signal): + raise ValueError( + f"invalid signal name '{signal}' ('.' not allowed)") + return len(signals), {signals[i]: i for i in range(len(signals))} - ``tf2io(sys)`` - Convert a linear system into space space form. Always creates - a new system, even if sys is already a StateSpace object. + else: + raise TypeError("Can't parse signal list %s" % str(signals)) - ``tf2io(num, den)`` - Create a linear I/O system from its numerator and denominator - polynomial coefficients. - For details see: :func:`tf` +# +# Utility functions to process signal indices +# +# Signal indices can be specified in one of four ways: +# +# 1. As a positive integer 'm', in which case we return a list +# corresponding to the first 'm' elements of a range of a given length +# +# 2. As a negative integer '-m', in which case we return a list +# corresponding to the last 'm' elements of a range of a given length +# +# 3. As a slice, in which case we return the a list corresponding to the +# indices specified by the slice of a range of a given length +# +# 4. As a list of ints or strings specifying specific indices. Strings are +# compared to a list of labels to determine the index. +# +def _process_indices(arg, name, labels, length): + # Default is to return indices up to a certain length + arg = length if arg is None else arg - Parameters - ---------- - sys : LTI (StateSpace or TransferFunction) - A linear system. - num : array_like, or list of list of array_like - Polynomial coefficients of the numerator. - den : array_like, or list of list of array_like - Polynomial coefficients of the denominator. + if isinstance(arg, int): + # Return the start or end of the list of possible indices + return list(range(arg)) if arg > 0 else list(range(length))[arg:] - Returns - ------- - out : LinearIOSystem - New I/O system (in state space form). - - Other Parameters - ---------------- - inputs, outputs : str, or list of str, optional - List of strings that name the individual signals of the transformed - system. If not given, the inputs and outputs are the same as the - original system. - name : string, optional - System name. If unspecified, a generic name is generated - with a unique integer id. + elif isinstance(arg, slice): + # Return the indices referenced by the slice + return list(range(length))[arg] - Raises - ------ - ValueError - if `num` and `den` have invalid or unequal dimensions, or if an - invalid number of arguments is passed in. - TypeError - if `num` or `den` are of incorrect type, or if sys is not a - TransferFunction object. - - See Also - -------- - ss2io - tf2ss - - Examples - -------- - >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] - >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] - >>> sys1 = ct.tf2ss(num, den) - - >>> sys_tf = ct.tf(num, den) - >>> G = ct.tf2ss(sys_tf) - >>> G.ninputs, G.noutputs, G.nstates - (2, 2, 8) + elif isinstance(arg, list): + # Make sure the length is OK + if len(arg) > length: + raise ValueError( + f"{name}_indices list is too long; max length = {length}") - """ - # Convert the system to a state space system - linsys = tf2ss(*args) + # Return the list, replacing strings with corresponding indices + arg=arg.copy() + for i, idx in enumerate(arg): + if isinstance(idx, str): + arg[i] = labels.index(arg[i]) + return arg - # Now convert the state space system to an I/O system - return LinearIOSystem(linsys, **kwargs) + raise ValueError(f"invalid argument for {name}_indices") +# +# Process control and disturbance indices +# +# For systems with inputs and disturbances, the control_indices and +# disturbance_indices keywords are used to specify which is which. If only +# one is given, the other is assumed to be the remaining indices in the +# system input. If neither is given, the disturbance inputs are assumed to +# be the same as the control inputs. +# +def _process_control_disturbance_indices( + sys, control_indices, disturbance_indices): -# Function to create an interconnected system -def interconnect( - syslist, connections=None, inplist=None, outlist=None, params=None, - check_unused=True, add_unused=False, ignore_inputs=None, - ignore_outputs=None, warn_duplicate=None, debug=False, **kwargs): - """Interconnect a set of input/output systems. + if control_indices is None and disturbance_indices is None: + # Disturbances enter in the same place as the controls + dist_idx = ctrl_idx = list(range(sys.ninputs)) - This function creates a new system that is an interconnection of a set of - input/output systems. If all of the input systems are linear I/O systems - (type :class:`~control.LinearIOSystem`) then the resulting system will be - a linear interconnected I/O system (type :class:`~control.LinearICSystem`) - with the appropriate inputs, outputs, and states. Otherwise, an - interconnected I/O system (type :class:`~control.InterconnectedSystem`) - will be created. + elif control_indices is not None: + # Process the control indices + ctrl_idx = _process_indices( + control_indices, 'control', sys.input_labels, sys.ninputs) - Parameters - ---------- - syslist : list of InputOutputSystems - The list of input/output systems to be connected - - connections : list of connections, optional - Description of the internal connections between the subsystems: - - [connection1, connection2, ...] - - Each connection is itself a list that describes an input to one of the - subsystems. The entries are of the form: - - [input-spec, output-spec1, output-spec2, ...] - - The input-spec can be in a number of different forms. The lowest - level representation is a tuple of the form `(subsys_i, inp_j)` - where `subsys_i` is the index into `syslist` and `inp_j` is the - index into the input vector for the subsystem. If the signal index - is omitted, then all subsystem inputs are used. If systems and - signals are given names, then the forms 'sys.sig' or ('sys', 'sig') - are also recognized. Finally, for multivariable systems the signal - index can be given as a list, for example '(subsys_i, [inp_j1, ..., - inp_jn])'; as a slice, for example, 'sys.sig[i:j]'; or as a base - name `sys.sig` (which matches `sys.sig[i]`). - - Similarly, each output-spec should describe an output signal from - one of the subsystems. The lowest level representation is a tuple - of the form `(subsys_i, out_j, gain)`. The input will be - constructed by summing the listed outputs after multiplying by the - gain term. If the gain term is omitted, it is assumed to be 1. If - the subsystem index `subsys_i` is omitted, then all outputs of the - subsystem are used. If systems and signals are given names, then - the form 'sys.sig', ('sys', 'sig') or ('sys', 'sig', gain) are also - recognized, and the special form '-sys.sig' can be used to specify - a signal with gain -1. Lists, slices, and base namess can also be - used, as long as the number of elements for each output spec - mataches the input spec. - - If omitted, the `interconnect` function will attempt to create the - interconnection map by connecting all signals with the same base names - (ignoring the system name). Specifically, for each input signal name - in the list of systems, if that signal name corresponds to the output - signal in any of the systems, it will be connected to that input (with - a summation across all signals if the output name occurs in more than - one system). - - The `connections` keyword can also be set to `False`, which will leave - the connection map empty and it can be specified instead using the - low-level :func:`~control.InterconnectedSystem.set_connect_map` - method. - - inplist : list of input connections, optional - List of connections for how the inputs for the overall system are - mapped to the subsystem inputs. The input specification is similar to - the form defined in the connection specification, except that - connections do not specify an input-spec, since these are the system - inputs. The entries for a connection are thus of the form: - - [input-spec1, input-spec2, ...] - - Each system input is added to the input for the listed subsystem. - If the system input connects to a subsystem with a single input, a - single input specification can be given (without the inner list). - - If omitted the `input` parameter will be used to identify the list - of input signals to the overall system. - - outlist : list of output connections, optional - List of connections for how the outputs from the subsystems are - mapped to overall system outputs. The output connection - description is the same as the form defined in the inplist - specification (including the optional gain term). Numbered outputs - must be chosen from the list of subsystem outputs, but named - outputs can also be contained in the list of subsystem inputs. - - If an output connection contains more than one signal specification, - then those signals are added together (multiplying by the any gain - term) to form the system output. - - If omitted, the output map can be specified using the - :func:`~control.InterconnectedSystem.set_output_map` method. - - inputs : int, list of str or None, optional - Description of the system inputs. This can be given as an integer - count or as a list of strings that name the individual signals. If an - integer count is specified, the names of the signal will be of the - form `s[i]` (where `s` is one of `u`, `y`, or `x`). If this parameter - is not given or given as `None`, the relevant quantity will be - determined when possible based on other information provided to - functions using the system. - - outputs : int, list of str or None, optional - Description of the system outputs. Same format as `inputs`. - - states : int, list of str, or None, optional - Description of the system states. Same format as `inputs`. The - default is `None`, in which case the states will be given names of the - form '.', for each subsys in syslist and each - state_name of each subsys. - - params : dict, optional - Parameter values for the systems. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - - dt : timebase, optional - The timebase for the system, used to specify whether the system is - operating in continuous or discrete time. It can have the following - values: - - * dt = 0: continuous time system (default) - * dt > 0: discrete time system with sampling period 'dt' - * dt = True: discrete time with unspecified sampling period - * dt = None: no timebase specified - - name : string, optional - System name (used for specifying signals). If unspecified, a generic - name is generated with a unique integer id. - - check_unused : bool, optional - If True, check for unused sub-system signals. This check is - not done if connections is False, and neither input nor output - mappings are specified. - - add_unused : bool, optional - If True, subsystem signals that are not connected to other components - are added as inputs and outputs of the interconnected system. - - ignore_inputs : list of input-spec, optional - A list of sub-system inputs known not to be connected. This is - *only* used in checking for unused signals, and does not - disable use of the input. - - Besides the usual input-spec forms (see `connections`), an - input-spec can be just the signal base name, in which case all - signals from all sub-systems with that base name are - considered ignored. - - ignore_outputs : list of output-spec, optional - A list of sub-system outputs known not to be connected. This - is *only* used in checking for unused signals, and does not - disable use of the output. - - Besides the usual output-spec forms (see `connections`), an - output-spec can be just the signal base name, in which all - outputs from all sub-systems with that base name are - considered ignored. - - warn_duplicate : None, True, or False, optional - Control how warnings are generated if duplicate objects or names are - detected. In `None` (default), then warnings are generated for - systems that have non-generic names. If `False`, warnings are not - generated and if `True` then warnings are always generated. - - debug : bool, default=False - Print out information about how signals are being processed that - may be useful in understanding why something is not working. - - - Examples - -------- - >>> P = ct.rss(2, 2, 2, strictly_proper=True, name='P') - >>> C = ct.rss(2, 2, 2, name='C') - >>> T = ct.interconnect( - ... [P, C], - ... connections=[ - ... ['P.u[0]', 'C.y[0]'], ['P.u[1]', 'C.y[1]'], - ... ['C.u[0]', '-P.y[0]'], ['C.u[1]', '-P.y[1]']], - ... inplist=['C.u[0]', 'C.u[1]'], - ... outlist=['P.y[0]', 'P.y[1]'], - ... ) - - This expression can be simplified using either slice notation or - just signal basenames: - - >>> T = ct.interconnect( - ... [P, C], connections=[['P.u[:]', 'C.y[:]'], ['C.u', '-P.y']], - ... inplist='C.u', outlist='P.y[:]') - - or further simplified by omitting the input and output signal - specifications (since all inputs and outputs are used): - - >>> T = ct.interconnect( - ... [P, C], connections=[['P', 'C'], ['C', '-P']], - ... inplist=['C'], outlist=['P']) - - A feedback system can also be constructed using the - :func:`~control.summing_block` function and the ability to - automatically interconnect signals with the same names: - - >>> P = ct.tf(1, [1, 0], inputs='u', outputs='y') - >>> C = ct.tf(10, [1, 1], inputs='e', outputs='u') - >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') - >>> T = ct.interconnect([P, C, sumblk], inputs='r', outputs='y') - - Notes - ----- - If a system is duplicated in the list of systems to be connected, - a warning is generated and a copy of the system is created with the - name of the new system determined by adding the prefix and suffix - strings in config.defaults['namedio.linearized_system_name_prefix'] - and config.defaults['namedio.linearized_system_name_suffix'], with the - default being to add the suffix '$copy' to the system name. - - In addition to explicit lists of system signals, it is possible to - lists vectors of signals, using one of the following forms:: - - (subsys, [i1, ..., iN], gain) signals with indices i1, ..., in - 'sysname.signal[i:j]' range of signal names, i through j-1 - 'sysname.signal[:]' all signals with given prefix - - While in many Python functions tuples can be used in place of lists, - for the interconnect() function the only use of tuples should be in the - specification of an input- or output-signal via the tuple notation - `(subsys_i, signal_j, gain)` (where `gain` is optional). If you get an - unexpected error message about a specification being of the wrong type - or not being found, check to make sure you are not using a tuple where - you should be using a list. - - In addition to its use for general nonlinear I/O systems, the - :func:`~control.interconnect` function allows linear systems to be - interconnected using named signals (compared with the - :func:`~control.connect` function, which uses signal indices) and to be - treated as both a :class:`~control.StateSpace` system as well as an - :class:`~control.InputOutputSystem`. - - The `input` and `output` keywords can be used instead of `inputs` and - `outputs`, for more natural naming of SISO systems. + # Disturbance indices are the complement of control indices + dist_idx = [i for i in range(sys.ninputs) if i not in ctrl_idx] - """ - dt = kwargs.pop('dt', None) # by pass normal 'dt' processing - name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) - - if not check_unused and (ignore_inputs or ignore_outputs): - raise ValueError('check_unused is False, but either ' - + 'ignore_inputs or ignore_outputs non-empty') - - if connections is False and not inplist and not outlist \ - and not inputs and not outputs: - # user has disabled auto-connect, and supplied neither input - # nor output mappings; assume they know what they're doing - check_unused = False - - # If connections was not specified, set up default connection list - if connections is None: - # For each system input, look for outputs with the same name - connections = [] - for input_sys in syslist: - for input_name in input_sys.input_labels: - connect = [input_sys.name + "." + input_name] - for output_sys in syslist: - if input_name in output_sys.output_labels: - connect.append(output_sys.name + "." + input_name) - if len(connect) > 1: - connections.append(connect) - - auto_connect = True - - elif connections is False: - check_unused = False - # Use an empty connections list - connections = [] - - elif isinstance(connections, list) and \ - all([isinstance(cnxn, (str, tuple)) for cnxn in connections]): - # Special case where there is a single connection - connections = [connections] - - # If inplist/outlist is not present, try using inputs/outputs instead - inplist_none, outlist_none = False, False - if inplist is None: - inplist = inputs or [] - inplist_none = True # use to rewrite inputs below - if outlist is None: - outlist = outputs or [] - outlist_none = True # use to rewrite outputs below - - # Define a local debugging function - dprint = lambda s: None if not debug else print(s) + else: # disturbance_indices is not None + # If passed an integer, count from the end of the input vector + arg = -disturbance_indices if isinstance(disturbance_indices, int) \ + else disturbance_indices - # - # Pre-process connecton list - # - # Support for various "vector" forms of specifications is handled here, - # by expanding any specifications that refer to more than one signal. - # This includes signal lists such as ('sysname', ['sig1', 'sig2', ...]) - # as well as slice-based specifications such as 'sysname.signal[i:j]'. - # - dprint(f"Pre-processing connections:") - new_connections = [] - for connection in connections: - dprint(f" parsing {connection=}") - if not isinstance(connection, list): - raise ValueError( - f"invalid connection {connection}: should be a list") - # Parse and expand the input specification - input_spec = _parse_spec(syslist, connection[0], 'input') - input_spec_list = [input_spec] - - # Parse and expand the output specifications - output_specs_list = [[]] * len(input_spec_list) - for spec in connection[1:]: - output_spec = _parse_spec(syslist, spec, 'output') - output_specs_list[0].append(output_spec) - - # Create the new connection entry - for input_spec, output_specs in zip(input_spec_list, output_specs_list): - new_connection = [input_spec] + output_specs - dprint(f" adding {new_connection=}") - new_connections.append(new_connection) - connections = new_connections + dist_idx = _process_indices( + arg, 'disturbance', sys.input_labels, sys.ninputs) - # - # Pre-process input connections list - # - # Similar to the connections list, we now handle "vector" forms of - # specifications in the inplist parameter. This needs to be handled - # here because the InterconnectedSystem constructor assumes that the - # number of elements in `inplist` will match the number of inputs for - # the interconnected system. - # - # If inplist_none is True then inplist is a copy of inputs and so we - # also have to be careful that if we encounter any multivariable - # signals, we need to update the input list. - # - dprint(f"Pre-processing input connections: {inplist}") - if not isinstance(inplist, list): - dprint(f" converting inplist to list") - inplist = [inplist] - new_inplist, new_inputs = [], [] if inplist_none else inputs - - # Go through the list of inputs and process each one - for iinp, connection in enumerate(inplist): - # Check for system name or signal names without a system name - if isinstance(connection, str) and len(connection.split('.')) == 1: - # Create an empty connections list to store matching connections - new_connections = [] - - # Get the signal/system name - sname = connection[1:] if connection[0] == '-' else connection - gain = -1 if connection[0] == '-' else 1 - - # Look for the signal name as a system input - found_system, found_signal = False, False - for isys, sys in enumerate(syslist): - # Look for matching signals (returns None if no matches - indices = sys._find_signals(sname, sys.input_index) - - # See what types of matches we found - if sname == sys.name: - # System name matches => use all inputs - for isig in range(sys.ninputs): - dprint(f" adding input {(isys, isig, gain)}") - new_inplist.append((isys, isig, gain)) - found_system = True - elif indices: - # Signal name matches => store new connections - new_connection = [] - for isig in indices: - dprint(f" collecting input {(isys, isig, gain)}") - new_connection.append((isys, isig, gain)) - - if len(new_connections) == 0: - # First time we have seen this signal => initalize - for cnx in new_connection: - new_connections.append([cnx]) - if inplist_none: - # See if we need to rewrite the inputs - if len(new_connection) != 1: - new_inputs += [ - sys.input_labels[i] for i in indices] - else: - new_inputs.append(inputs[iinp]) - else: - # Additional signal match found =. add to the list - for i, cnx in enumerate(new_connection): - new_connections[i].append(cnx) - found_signal = True - - if found_system and found_signal: - raise ValueError( - f"signal '{sname}' is both signal and system name") - elif found_signal: - dprint(f" adding inputs {new_connections}") - new_inplist += new_connections - elif not found_system: - raise ValueError("could not find signal %s" % sname) - else: - # Regular signal specification - if not isinstance(connection, list): - dprint(f" converting item to list") - connection = [connection] - for spec in connection: - isys, indices, gain = _parse_spec(syslist, spec, 'input') - for isig in indices: - dprint(f" adding input {(isys, isig, gain)}") - new_inplist.append((isys, isig, gain)) - inplist, inputs = new_inplist, new_inputs - dprint(f" {inplist=}\n {inputs=}") + # Set control indices to complement disturbance indices + ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] - # - # Pre-process output list - # - # This is similar to the processing of the input list, but we need to - # additionally take into account the fact that you can list subsystem - # inputs as system outputs. - # - dprint(f"Pre-processing output connections: {outlist}") - if not isinstance(outlist, list): - dprint(f" converting outlist to list") - outlist = [outlist] - new_outlist, new_outputs = [], [] if outlist_none else outputs - for iout, connection in enumerate(outlist): - # Create an empty connection list - new_connections = [] - - # Check for system name or signal names without a system name - if isinstance(connection, str) and len(connection.split('.')) == 1: - # Get the signal/system name - sname = connection[1:] if connection[0] == '-' else connection - gain = -1 if connection[0] == '-' else 1 - - # Look for the signal name as a system output - found_system, found_signal = False, False - for osys, sys in enumerate(syslist): - indices = sys._find_signals(sname, sys.output_index) - if sname == sys.name: - # Use all outputs - for osig in range(sys.noutputs): - dprint(f" adding output {(osys, osig, gain)}") - new_outlist.append((osys, osig, gain)) - found_system = True - elif indices: - new_connection = [] - for osig in indices: - dprint(f" collecting output {(osys, osig, gain)}") - new_connection.append((osys, osig, gain)) - if len(new_connections) == 0: - for cnx in new_connection: - new_connections.append([cnx]) - if outlist_none: - # See if we need to rewrite the outputs - if len(new_connection) != 1: - new_outputs += [ - sys.output_labels[i] for i in indices] - else: - new_outputs.append(outputs[iout]) - else: - # Additional signal match found =. add to the list - for i, cnx in enumerate(new_connection): - new_connections[i].append(cnx) - found_signal = True - - if found_system and found_signal: - raise ValueError( - f"signal '{sname}' is both signal and system name") - elif found_signal: - dprint(f" adding outputs {new_connections}") - new_outlist += new_connections - elif not found_system: - raise ValueError("could not find signal %s" % sname) - else: - # Regular signal specification - if not isinstance(connection, list): - dprint(f" converting item to list") - connection = [connection] - for spec in connection: - try: - # First trying looking in the output signals - osys, indices, gain = _parse_spec(syslist, spec, 'output') - for osig in indices: - dprint(f" adding output {(osys, osig, gain)}") - new_outlist.append((osys, osig, gain)) - except ValueError: - # If not, see if we can find it in inputs - isys, indices, gain = _parse_spec( - syslist, spec, 'input or output', - dictname='input_index') - for isig in indices: - # Use string form to allow searching input list - dprint(f" adding input {(isys, isig, gain)}") - new_outlist.append( - (syslist[isys].name, - syslist[isys].input_labels[isig], gain)) - outlist, outputs = new_outlist, new_outputs - dprint(f" {outlist=}\n {outputs=}") - - # Make sure inputs and outputs match inplist outlist, if specified - if inputs and ( - isinstance(inputs, (list, tuple)) and len(inputs) != len(inplist) - or isinstance(inputs, int) and inputs != len(inplist)): - raise ValueError("`inputs` incompatible with `inplist`") - if outputs and ( - isinstance(outputs, (list, tuple)) and len(outputs) != len(outlist) - or isinstance(outputs, int) and outputs != len(outlist)): - raise ValueError("`outputs` incompatible with `outlist`") - - newsys = InterconnectedSystem( - syslist, connections=connections, inplist=inplist, - outlist=outlist, inputs=inputs, outputs=outputs, states=states, - params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, - **kwargs) - - # See if we should add any signals - if add_unused: - # Get all unused signals - dropped_inputs, dropped_outputs = newsys.check_unused_signals( - ignore_inputs, ignore_outputs, warning=False) - - # Add on any unused signals that we aren't ignoring - for isys, isig in dropped_inputs: - inplist.append((isys, isig)) - inputs.append(newsys.syslist[isys].input_labels[isig]) - for osys, osig in dropped_outputs: - outlist.append((osys, osig)) - outputs.append(newsys.syslist[osys].output_labels[osig]) - - # Rebuild the system with new inputs/outputs - newsys = InterconnectedSystem( - syslist, connections=connections, inplist=inplist, - outlist=outlist, inputs=inputs, outputs=outputs, states=states, - params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, - **kwargs) - - # check for implicitly dropped signals - if check_unused: - newsys.check_unused_signals(ignore_inputs, ignore_outputs) - - # If all subsystems are linear systems, maintain linear structure - if all([isinstance(sys, LinearIOSystem) for sys in newsys.syslist]): - return LinearICSystem(newsys, None) - - return newsys - - -# Summing junction -def summing_junction( - inputs=None, output=None, dimension=None, prefix='u', **kwargs): - """Create a summing junction as an input/output system. - - This function creates a static input/output system that outputs the sum of - the inputs, potentially with a change in sign for each individual input. - The input/output system that is created by this function can be used as a - component in the :func:`~control.interconnect` function. + return ctrl_idx, dist_idx - Parameters - ---------- - inputs : int, string or list of strings - Description of the inputs to the summing junction. This can be given - as an integer count, a string, or a list of strings. If an integer - count is specified, the names of the input signals will be of the form - `u[i]`. - output : string, optional - Name of the system output. If not specified, the output will be 'y'. - dimension : int, optional - The dimension of the summing junction. If the dimension is set to a - positive integer, a multi-input, multi-output summing junction will be - created. The input and output signal names will be of the form - `[i]` where `signal` is the input/output signal name specified - by the `inputs` and `output` keywords. Default value is `None`. - name : string, optional - System name (used for specifying signals). If unspecified, a generic - name is generated with a unique integer id. - prefix : string, optional - If `inputs` is an integer, create the names of the states using the - given prefix (default = 'u'). The names of the input will be of the - form `prefix[i]`. - Returns - ------- - sys : static LinearIOSystem - Linear input/output system object with no states and only a direct - term that implements the summing junction. - - Examples - -------- - >>> P = ct.tf2io(1, [1, 0], inputs='u', outputs='y') - >>> C = ct.tf2io(10, [1, 1], inputs='e', outputs='u') - >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') - >>> T = ct.interconnect([P, C, sumblk], inputs='r', outputs='y') - >>> T.ninputs, T.noutputs, T.nstates - (1, 1, 2) +# Process labels +def _process_labels(labels, name, default): + if isinstance(labels, str): + labels = [labels.format(i=i) for i in range(len(default))] - """ - # Utility function to parse input and output signal lists - def _parse_list(signals, signame='input', prefix='u'): - # Parse signals, including gains - if isinstance(signals, int): - nsignals = signals - names = ["%s[%d]" % (prefix, i) for i in range(nsignals)] - gains = np.ones((nsignals,)) - elif isinstance(signals, str): - nsignals = 1 - gains = [-1 if signals[0] == '-' else 1] - names = [signals[1:] if signals[0] == '-' else signals] - elif isinstance(signals, list) and \ - all([isinstance(x, str) for x in signals]): - nsignals = len(signals) - gains = np.ones((nsignals,)) - names = [] - for i in range(nsignals): - if signals[i][0] == '-': - gains[i] = -1 - names.append(signals[i][1:]) - else: - names.append(signals[i]) - else: + if labels is None: + labels = default + elif isinstance(labels, list): + if len(labels) != len(default): raise ValueError( - "could not parse %s description '%s'" - % (signame, str(signals))) - - # Return the parsed list - return nsignals, names, gains - - # Parse system and signal names (with some minor pre-processing) - if input is not None: - kwargs['inputs'] = inputs # positional/keyword -> keyword - if output is not None: - kwargs['output'] = output # positional/keyword -> keyword - name, inputs, output, states, dt = _process_namedio_keywords( - kwargs, {'inputs': None, 'outputs': 'y'}, end=True) - if inputs is None: - raise TypeError("input specification is required") - - # Read the input list - ninputs, input_names, input_gains = _parse_list( - inputs, signame="input", prefix=prefix) - noutputs, output_names, output_gains = _parse_list( - output, signame="output", prefix='y') - if noutputs > 1: - raise NotImplementedError("vector outputs not yet supported") - - # If the dimension keyword is present, vectorize inputs and outputs - if isinstance(dimension, int) and dimension >= 1: - # Create a new list of input/output names and update parameters - input_names = ["%s[%d]" % (name, dim) - for name in input_names - for dim in range(dimension)] - ninputs = ninputs * dimension - - output_names = ["%s[%d]" % (name, dim) - for name in output_names - for dim in range(dimension)] - noutputs = noutputs * dimension - elif dimension is not None: - raise ValueError( - "unrecognized dimension value '%s'" % str(dimension)) + f"incorrect length of {name}_labels: {len(labels)}" + f" instead of {len(default)}") else: - dimension = 1 - - # Create the direct term - D = np.kron(input_gains * output_gains[0], np.eye(dimension)) - - # Create a linear system of the appropriate size - ss_sys = StateSpace( - np.zeros((0, 0)), np.ones((0, ninputs)), np.ones((noutputs, 0)), D) + raise ValueError(f"{name}_labels should be a string or a list") - # Create a LinearIOSystem - return LinearIOSystem( - ss_sys, inputs=input_names, outputs=output_names, name=name) + return labels # diff --git a/control/lti.py b/control/lti.py index c904c1509..f50945ad8 100644 --- a/control/lti.py +++ b/control/lti.py @@ -9,7 +9,7 @@ from numpy import real, angle, abs from warnings import warn from . import config -from .namedio import NamedIOSystem +from .iosys import NamedIOSystem __all__ = ['poles', 'zeros', 'damp', 'evalfr', 'frequency_response', 'freqresp', 'dcgain', 'bandwidth', 'pole', 'zero'] diff --git a/control/margins.py b/control/margins.py index 28daaf358..cd1d12ea3 100644 --- a/control/margins.py +++ b/control/margins.py @@ -53,7 +53,7 @@ import scipy as sp from . import xferfcn from .lti import evalfr -from .namedio import issiso +from .iosys import issiso from . import frdata from . import freqplot from .exception import ControlMIMONotImplemented diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index ef14248c0..e0708c9ab 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -62,10 +62,10 @@ # Control system library from ..statesp import * -from ..iosys import ss, rss, drss # moved from .statesp +from ..statesp import ss, rss, drss # moved from .statesp from ..xferfcn import * from ..lti import * -from ..namedio import * +from ..iosys import * from ..frdata import * from ..dtime import * from ..exception import ControlArgument diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index d98dcabf0..2fabd98ab 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -3,7 +3,7 @@ """ import numpy as np -from ..iosys import ss +from ..statesp import ss from ..xferfcn import tf from ..lti import LTI from ..exception import ControlArgument diff --git a/control/modelsimp.py b/control/modelsimp.py index f7b15093d..cbaf242c3 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -45,7 +45,7 @@ import warnings from .exception import ControlSlycot, ControlMIMONotImplemented, \ ControlDimension -from .namedio import isdtime, isctime +from .iosys import isdtime, isctime from .statesp import StateSpace from .statefbk import gram diff --git a/control/namedio.py b/control/namedio.py deleted file mode 100644 index a37155f09..000000000 --- a/control/namedio.py +++ /dev/null @@ -1,756 +0,0 @@ -# namedio.py - named I/O system class and helper functions -# RMM, 13 Mar 2022 -# -# This file implements the NamedIOSystem class, which is used as a parent -# class for FrequencyResponseData, InputOutputSystem, LTI, TimeResponseData, -# and other similar classes to allow naming of signals. - -import numpy as np -from copy import deepcopy -from warnings import warn -import re -from . import config - -__all__ = ['issiso', 'timebase', 'common_timebase', 'timebaseEqual', - 'isdtime', 'isctime'] - -# Define module default parameter values -_namedio_defaults = { - 'namedio.state_name_delim': '_', - 'namedio.duplicate_system_name_prefix': '', - 'namedio.duplicate_system_name_suffix': '$copy', - 'namedio.linearized_system_name_prefix': '', - 'namedio.linearized_system_name_suffix': '$linearized', - 'namedio.sampled_system_name_prefix': '', - 'namedio.sampled_system_name_suffix': '$sampled', - 'namedio.indexed_system_name_prefix': '', - 'namedio.indexed_system_name_suffix': '$indexed', - 'namedio.converted_system_name_prefix': '', - 'namedio.converted_system_name_suffix': '$converted', -} - - -class NamedIOSystem(object): - def __init__( - self, name=None, inputs=None, outputs=None, states=None, - input_prefix='u', output_prefix='y', state_prefix='x', **kwargs): - - # system name - self.name = self._name_or_default(name) - - # Parse and store the number of inputs and outputs - self.set_inputs(inputs, prefix=input_prefix) - self.set_outputs(outputs, prefix=output_prefix) - self.set_states(states, prefix=state_prefix) - - # Process timebase: if not given use default, but allow None as value - self.dt = _process_dt_keyword(kwargs) - - # Make sure there were no other keywords - if kwargs: - raise TypeError("unrecognized keywords: ", str(kwargs)) - - # - # Functions to manipulate the system name - # - _idCounter = 0 # Counter for creating generic system name - - # Return system name - def _name_or_default(self, name=None, prefix_suffix_name=None): - if name is None: - name = "sys[{}]".format(NamedIOSystem._idCounter) - NamedIOSystem._idCounter += 1 - elif re.match(r".*\..*", name): - raise ValueError(f"invalid system name '{name}' ('.' not allowed)") - - prefix = "" if prefix_suffix_name is None else config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_prefix'] - suffix = "" if prefix_suffix_name is None else config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_suffix'] - return prefix + name + suffix - - # Check if system name is generic - def _generic_name_check(self): - return re.match(r'^sys\[\d*\]$', self.name) is not None - - # - # Class attributes - # - # These attributes are defined as class attributes so that they are - # documented properly. They are "overwritten" in __init__. - # - - #: Number of system inputs. - #: - #: :meta hide-value: - ninputs = None - - #: Number of system outputs. - #: - #: :meta hide-value: - noutputs = None - - #: Number of system states. - #: - #: :meta hide-value: - nstates = None - - def __repr__(self): - return f'<{self.__class__.__name__}:{self.name}:' + \ - f'{list(self.input_labels)}->{list(self.output_labels)}>' - - def __str__(self): - """String representation of an input/output object""" - str = f"<{self.__class__.__name__}>: {self.name}\n" - str += f"Inputs ({self.ninputs}): {self.input_labels}\n" - str += f"Outputs ({self.noutputs}): {self.output_labels}\n" - if self.nstates is not None: - str += f"States ({self.nstates}): {self.state_labels}" - return str - - # Find a signal by name - def _find_signal(self, name, sigdict): - return sigdict.get(name, None) - - # Find a list of signals by name, index, or pattern - def _find_signals(self, name_list, sigdict): - if not isinstance(name_list, (list, tuple)): - name_list = [name_list] - - index_list = [] - for name in name_list: - # Look for signal ranges (slice-like or base name) - ms = re.match(r'([\w$]+)\[([\d]*):([\d]*)\]$', name) # slice - mb = re.match(r'([\w$]+)$', name) # base - if ms: - base = ms.group(1) - start = None if ms.group(2) == '' else int(ms.group(2)) - stop = None if ms.group(3) == '' else int(ms.group(3)) - for var in sigdict: - # Find variables that match - msig = re.match(r'([\w$]+)\[([\d]+)\]$', var) - if msig and msig.group(1) == base and \ - (start is None or int(msig.group(2)) >= start) and \ - (stop is None or int(msig.group(2)) < stop): - index_list.append(sigdict.get(var)) - elif mb and sigdict.get(name, None) is None: - # Try to use name as a base name - for var in sigdict: - msig = re.match(name + r'\[([\d]+)\]$', var) - if msig: - index_list.append(sigdict.get(var)) - else: - index_list.append(sigdict.get(name, None)) - - return None if len(index_list) == 0 or \ - any([idx is None for idx in index_list]) else index_list - - def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): - """copy the signal and system name of sys. Name is given as a keyword - in case a specific name (e.g. append 'linearized') is desired. """ - # Figure out the system name and assign it - if prefix == "" and prefix_suffix_name is not None: - prefix = config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_prefix'] - if suffix == "" and prefix_suffix_name is not None: - suffix = config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_suffix'] - self.name = prefix + sys.name + suffix - - # Name the inputs, outputs, and states - self.input_index = sys.input_index.copy() - self.output_index = sys.output_index.copy() - if self.nstates and sys.nstates: - # only copy state names for state space systems - self.state_index = sys.state_index.copy() - - def copy(self, name=None, use_prefix_suffix=True): - """Make a copy of an input/output system - - A copy of the system is made, with a new name. The `name` keyword - can be used to specify a specific name for the system. If no name - is given and `use_prefix_suffix` is True, the name is constructed - by prepending config.defaults['namedio.duplicate_system_name_prefix'] - and appending config.defaults['namedio.duplicate_system_name_suffix']. - Otherwise, a generic system name of the form `sys[]` is used, - where `` is based on an internal counter. - - """ - # Create a copy of the system - newsys = deepcopy(self) - - # Update the system name - if name is None and use_prefix_suffix: - # Get the default prefix and suffix to use - newsys.name = self._name_or_default( - self.name, prefix_suffix_name='duplicate') - else: - newsys.name = self._name_or_default(name) - - return newsys - - def set_inputs(self, inputs, prefix='u'): - """Set the number/names of the system inputs. - - Parameters - ---------- - inputs : int, list of str, or None - Description of the system inputs. This can be given as an integer - count or as a list of strings that name the individual signals. - If an integer count is specified, the names of the signal will be - of the form `u[i]` (where the prefix `u` can be changed using the - optional prefix parameter). - prefix : string, optional - If `inputs` is an integer, create the names of the states using - the given prefix (default = 'u'). The names of the input will be - of the form `prefix[i]`. - - """ - self.ninputs, self.input_index = \ - _process_signal_list(inputs, prefix=prefix) - - def find_input(self, name): - """Find the index for an input given its name (`None` if not found)""" - return self.input_index.get(name, None) - - def find_inputs(self, name_list): - """Return list of indices matching input spec (`None` if not found)""" - return self._find_signals(name_list, self.input_index) - - # Property for getting and setting list of input signals - input_labels = property( - lambda self: list(self.input_index.keys()), # getter - set_inputs) # setter - - def set_outputs(self, outputs, prefix='y'): - """Set the number/names of the system outputs. - - Parameters - ---------- - outputs : int, list of str, or None - Description of the system outputs. This can be given as an integer - count or as a list of strings that name the individual signals. - If an integer count is specified, the names of the signal will be - of the form `u[i]` (where the prefix `u` can be changed using the - optional prefix parameter). - prefix : string, optional - If `outputs` is an integer, create the names of the states using - the given prefix (default = 'y'). The names of the input will be - of the form `prefix[i]`. - - """ - self.noutputs, self.output_index = \ - _process_signal_list(outputs, prefix=prefix) - - def find_output(self, name): - """Find the index for an output given its name (`None` if not found)""" - return self.output_index.get(name, None) - - def find_outputs(self, name_list): - """Return list of indices matching output spec (`None` if not found)""" - return self._find_signals(name_list, self.output_index) - - # Property for getting and setting list of output signals - output_labels = property( - lambda self: list(self.output_index.keys()), # getter - set_outputs) # setter - - def set_states(self, states, prefix='x'): - """Set the number/names of the system states. - - Parameters - ---------- - states : int, list of str, or None - Description of the system states. This can be given as an integer - count or as a list of strings that name the individual signals. - If an integer count is specified, the names of the signal will be - of the form `u[i]` (where the prefix `u` can be changed using the - optional prefix parameter). - prefix : string, optional - If `states` is an integer, create the names of the states using - the given prefix (default = 'x'). The names of the input will be - of the form `prefix[i]`. - - """ - self.nstates, self.state_index = \ - _process_signal_list(states, prefix=prefix, allow_dot=True) - - def find_state(self, name): - """Find the index for a state given its name (`None` if not found)""" - return self.state_index.get(name, None) - - def find_states(self, name_list): - """Return list of indices matching state spec (`None` if not found)""" - return self._find_signals(name_list, self.state_index) - - # Property for getting and setting list of state signals - state_labels = property( - lambda self: list(self.state_index.keys()), # getter - set_states) # setter - - def isctime(self, strict=False): - """ - Check to see if a system is a continuous-time system - - Parameters - ---------- - sys : Named I/O system - System to be checked - strict: bool, optional - If strict is True, make sure that timebase is not None. Default - is False. - """ - # If no timebase is given, answer depends on strict flag - if self.dt is None: - return True if not strict else False - return self.dt == 0 - - def isdtime(self, strict=False): - """ - Check to see if a system is a discrete-time system - - Parameters - ---------- - strict: bool, optional - If strict is True, make sure that timebase is not None. Default - is False. - """ - - # If no timebase is given, answer depends on strict flag - if self.dt == None: - return True if not strict else False - - # Look for dt > 0 (also works if dt = True) - return self.dt > 0 - - def issiso(self): - """Check to see if a system is single input, single output""" - return self.ninputs == 1 and self.noutputs == 1 - - def _isstatic(self): - """Check to see if a system is a static system (no states)""" - return self.nstates == 0 - - -# Test to see if a system is SISO -def issiso(sys, strict=False): - """ - Check to see if a system is single input, single output - - Parameters - ---------- - sys : I/O or LTI system - System to be checked - strict: bool (default = False) - If strict is True, do not treat scalars as SISO - """ - if isinstance(sys, (int, float, complex, np.number)) and not strict: - return True - elif not isinstance(sys, NamedIOSystem): - raise ValueError("Object is not an I/O or LTI system") - - # Done with the tricky stuff... - return sys.issiso() - -# Return the timebase (with conversion if unspecified) -def timebase(sys, strict=True): - """Return the timebase for a system - - dt = timebase(sys) - - returns the timebase for a system 'sys'. If the strict option is - set to False, dt = True will be returned as 1. - """ - # System needs to be either a constant or an I/O or LTI system - if isinstance(sys, (int, float, complex, np.number)): - return None - elif not isinstance(sys, NamedIOSystem): - raise ValueError("Timebase not defined") - - # Return the sample time, with converstion to float if strict is false - if (sys.dt == None): - return None - elif (strict): - return float(sys.dt) - - return sys.dt - -def common_timebase(dt1, dt2): - """ - Find the common timebase when interconnecting systems - - Parameters - ---------- - dt1, dt2: number or system with a 'dt' attribute (e.g. TransferFunction - or StateSpace system) - - Returns - ------- - dt: number - The common timebase of dt1 and dt2, as specified in - :ref:`conventions-ref`. - - Raises - ------ - ValueError - when no compatible time base can be found - """ - # explanation: - # if either dt is None, they are compatible with anything - # if either dt is True (discrete with unspecified time base), - # use the timebase of the other, if it is also discrete - # otherwise both dts must be equal - if hasattr(dt1, 'dt'): - dt1 = dt1.dt - if hasattr(dt2, 'dt'): - dt2 = dt2.dt - - if dt1 is None: - return dt2 - elif dt2 is None: - return dt1 - elif dt1 is True: - if dt2 > 0: - return dt2 - else: - raise ValueError("Systems have incompatible timebases") - elif dt2 is True: - if dt1 > 0: - return dt1 - else: - raise ValueError("Systems have incompatible timebases") - elif np.isclose(dt1, dt2): - return dt1 - else: - raise ValueError("Systems have incompatible timebases") - -# Check to see if two timebases are equal -def timebaseEqual(sys1, sys2): - """ - Check to see if two systems have the same timebase - - timebaseEqual(sys1, sys2) - - returns True if the timebases for the two systems are compatible. By - default, systems with timebase 'None' are compatible with either - discrete or continuous timebase systems. If two systems have a discrete - timebase (dt > 0) then their timebases must be equal. - """ - warn("timebaseEqual will be deprecated in a future release of " - "python-control; use :func:`common_timebase` instead", - PendingDeprecationWarning) - - if (type(sys1.dt) == bool or type(sys2.dt) == bool): - # Make sure both are unspecified discrete timebases - return type(sys1.dt) == type(sys2.dt) and sys1.dt == sys2.dt - elif (sys1.dt is None or sys2.dt is None): - # One or the other is unspecified => the other can be anything - return True - else: - return sys1.dt == sys2.dt - - -# Check to see if a system is a discrete time system -def isdtime(sys, strict=False): - """ - Check to see if a system is a discrete time system - - Parameters - ---------- - sys : I/O or LTI system - System to be checked - strict: bool (default = False) - If strict is True, make sure that timebase is not None - """ - - # Check to see if this is a constant - if isinstance(sys, (int, float, complex, np.number)): - # OK as long as strict checking is off - return True if not strict else False - - # Check for a transfer function or state-space object - if isinstance(sys, NamedIOSystem): - return sys.isdtime(strict) - - # Check to see if object has a dt object - if hasattr(sys, 'dt'): - # If no timebase is given, answer depends on strict flag - if sys.dt == None: - return True if not strict else False - - # Look for dt > 0 (also works if dt = True) - return sys.dt > 0 - - # Got passed something we don't recognize - return False - -# Check to see if a system is a continuous time system -def isctime(sys, strict=False): - """ - Check to see if a system is a continuous-time system - - Parameters - ---------- - sys : I/O or LTI system - System to be checked - strict: bool (default = False) - If strict is True, make sure that timebase is not None - """ - - # Check to see if this is a constant - if isinstance(sys, (int, float, complex, np.number)): - # OK as long as strict checking is off - return True if not strict else False - - # Check for a transfer function or state space object - if isinstance(sys, NamedIOSystem): - return sys.isctime(strict) - - # Check to see if object has a dt object - if hasattr(sys, 'dt'): - # If no timebase is given, answer depends on strict flag - if sys.dt is None: - return True if not strict else False - return sys.dt == 0 - - # Got passed something we don't recognize - return False - - -# Utility function to parse nameio keywords -def _process_namedio_keywords( - keywords={}, defaults={}, static=False, end=False): - """Process namedio specification - - This function processes the standard keywords used in initializing a named - I/O system. It first looks in the `keyword` dictionary to see if a value - is specified. If not, the `default` dictionary is used. The `default` - dictionary can also be set to a NamedIOSystem object, which is useful for - copy constructors that change system and signal names. - - If `end` is True, then generate an error if there are any remaining - keywords. - - """ - # If default is a system, redefine as a dictionary - if isinstance(defaults, NamedIOSystem): - sys = defaults - defaults = { - 'name': sys.name, 'inputs': sys.input_labels, - 'outputs': sys.output_labels, 'dt': sys.dt} - - if sys.nstates is not None: - defaults['states'] = sys.state_labels - - elif not isinstance(defaults, dict): - raise TypeError("default must be dict or sys") - - else: - sys = None - - # Sort out singular versus plural signal names - for singular in ['input', 'output', 'state']: - kw = singular + 's' - if singular in keywords and kw in keywords: - raise TypeError(f"conflicting keywords '{singular}' and '{kw}'") - - if singular in keywords: - keywords[kw] = keywords.pop(singular) - - # Utility function to get keyword with defaults, processing - def pop_with_default(kw, defval=None, return_list=True): - val = keywords.pop(kw, None) - if val is None: - val = defaults.get(kw, defval) - if return_list and isinstance(val, str): - val = [val] # make sure to return a list - return val - - # Process system and signal names - name = pop_with_default('name', return_list=False) - inputs = pop_with_default('inputs') - outputs = pop_with_default('outputs') - states = pop_with_default('states') - - # If we were given a system, make sure sizes match list lengths - if sys: - if isinstance(inputs, list) and sys.ninputs != len(inputs): - raise ValueError("Wrong number of input labels given.") - if isinstance(outputs, list) and sys.noutputs != len(outputs): - raise ValueError("Wrong number of output labels given.") - if sys.nstates is not None and \ - isinstance(states, list) and sys.nstates != len(states): - raise ValueError("Wrong number of state labels given.") - - # Process timebase: if not given use default, but allow None as value - dt = _process_dt_keyword(keywords, defaults, static=static) - - # If desired, make sure we processed all keywords - if end and keywords: - raise TypeError("unrecognized keywords: ", str(keywords)) - - # Return the processed keywords - return name, inputs, outputs, states, dt - -# -# Parse 'dt' in for named I/O system -# -# The 'dt' keyword is used to set the timebase for a system. Its -# processing is a bit unusual: if it is not specified at all, then the -# value is pulled from config.defaults['control.default_dt']. But -# since 'None' is an allowed value, we can't just use the default if -# dt is None. Instead, we have to look to see if it was listed as a -# variable keyword. -# -# In addition, if a system is static and dt is not specified, we set dt = -# None to allow static systems to be combined with either discrete-time or -# continuous-time systems. -# -# TODO: update all 'dt' processing to call this function, so that -# everything is done consistently. -# -def _process_dt_keyword(keywords, defaults={}, static=False): - if static and 'dt' not in keywords and 'dt' not in defaults: - dt = None - elif 'dt' in keywords: - dt = keywords.pop('dt') - elif 'dt' in defaults: - dt = defaults.pop('dt') - else: - dt = config.defaults['control.default_dt'] - - # Make sure that the value for dt is valid - if dt is not None and not isinstance(dt, (bool, int, float)) or \ - isinstance(dt, (bool, int, float)) and dt < 0: - raise ValueError(f"invalid timebase, dt = {dt}") - - return dt - - -# Utility function to parse a list of signals -def _process_signal_list(signals, prefix='s', allow_dot=False): - if signals is None: - # No information provided; try and make it up later - return None, {} - - elif isinstance(signals, (int, np.integer)): - # Number of signals given; make up the names - return signals, {'%s[%d]' % (prefix, i): i for i in range(signals)} - - elif isinstance(signals, str): - # Single string given => single signal with given name - if not allow_dot and re.match(r".*\..*", signals): - raise ValueError( - f"invalid signal name '{signals}' ('.' not allowed)") - return 1, {signals: 0} - - elif all(isinstance(s, str) for s in signals): - # Use the list of strings as the signal names - for signal in signals: - if not allow_dot and re.match(r".*\..*", signal): - raise ValueError( - f"invalid signal name '{signal}' ('.' not allowed)") - return len(signals), {signals[i]: i for i in range(len(signals))} - - else: - raise TypeError("Can't parse signal list %s" % str(signals)) - - -# -# Utility functions to process signal indices -# -# Signal indices can be specified in one of four ways: -# -# 1. As a positive integer 'm', in which case we return a list -# corresponding to the first 'm' elements of a range of a given length -# -# 2. As a negative integer '-m', in which case we return a list -# corresponding to the last 'm' elements of a range of a given length -# -# 3. As a slice, in which case we return the a list corresponding to the -# indices specified by the slice of a range of a given length -# -# 4. As a list of ints or strings specifying specific indices. Strings are -# compared to a list of labels to determine the index. -# -def _process_indices(arg, name, labels, length): - # Default is to return indices up to a certain length - arg = length if arg is None else arg - - if isinstance(arg, int): - # Return the start or end of the list of possible indices - return list(range(arg)) if arg > 0 else list(range(length))[arg:] - - elif isinstance(arg, slice): - # Return the indices referenced by the slice - return list(range(length))[arg] - - elif isinstance(arg, list): - # Make sure the length is OK - if len(arg) > length: - raise ValueError( - f"{name}_indices list is too long; max length = {length}") - - # Return the list, replacing strings with corresponding indices - arg=arg.copy() - for i, idx in enumerate(arg): - if isinstance(idx, str): - arg[i] = labels.index(arg[i]) - return arg - - raise ValueError(f"invalid argument for {name}_indices") - -# -# Process control and disturbance indices -# -# For systems with inputs and disturbances, the control_indices and -# disturbance_indices keywords are used to specify which is which. If only -# one is given, the other is assumed to be the remaining indices in the -# system input. If neither is given, the disturbance inputs are assumed to -# be the same as the control inputs. -# -def _process_control_disturbance_indices( - sys, control_indices, disturbance_indices): - - if control_indices is None and disturbance_indices is None: - # Disturbances enter in the same place as the controls - dist_idx = ctrl_idx = list(range(sys.ninputs)) - - elif control_indices is not None: - # Process the control indices - ctrl_idx = _process_indices( - control_indices, 'control', sys.input_labels, sys.ninputs) - - # Disturbance indices are the complement of control indices - dist_idx = [i for i in range(sys.ninputs) if i not in ctrl_idx] - - else: # disturbance_indices is not None - # If passed an integer, count from the end of the input vector - arg = -disturbance_indices if isinstance(disturbance_indices, int) \ - else disturbance_indices - - dist_idx = _process_indices( - arg, 'disturbance', sys.input_labels, sys.ninputs) - - # Set control indices to complement disturbance indices - ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] - - return ctrl_idx, dist_idx - - -# Process labels -def _process_labels(labels, name, default): - if isinstance(labels, str): - labels = [labels.format(i=i) for i in range(len(default))] - - if labels is None: - labels = default - elif isinstance(labels, list): - if len(labels) != len(default): - raise ValueError( - f"incorrect length of {name}_labels: {len(labels)}" - f" instead of {len(default)}") - else: - raise ValueError(f"{name}_labels should be a string or a list") - - return labels diff --git a/control/nlsys.py b/control/nlsys.py new file mode 100644 index 000000000..b4d7f8177 --- /dev/null +++ b/control/nlsys.py @@ -0,0 +1,2602 @@ +# iosys.py - input/output system module +# +# RMM, 28 April 2019 +# +# Additional features to add +# * Allow constant inputs for MIMO input_output_response (w/out ones) +# * Add support for constants/matrices as part of operators (1 + P) +# * Add unit tests (and example?) for time-varying systems +# * Allow time vector for discrete time simulations to be multiples of dt +# * Check the way initial outputs for discrete time systems are handled +# + +"""The :mod:`~control.nlsys` module contains the +:class:`~control.InputOutputSystem` class that represents (possibly nonlinear) +input/output systems. The :class:`~control.InputOutputSystem` class is a +general class that defines any continuous or discrete time dynamical system. +Input/output systems can be simulated and also used to compute equilibrium +points and linearizations. + +""" + +__author__ = "Richard Murray" +__copyright__ = "Copyright 2019, California Institute of Technology" +__credits__ = ["Richard Murray"] +__license__ = "BSD" +__maintainer__ = "Richard Murray" +__email__ = "murray@cds.caltech.edu" + +import numpy as np +import scipy as sp +import copy +from warnings import warn + +from . import config +from .iosys import NamedIOSystem, _process_signal_list, _parse_spec, \ + _process_namedio_keywords, isctime, isdtime, common_timebase + +__all__ = ['InputOutputSystem', 'NonlinearIOSystem', + 'InterconnectedSystem', 'input_output_response', + 'find_eqpt', 'linearize', 'interconnect'] + +# Define module default parameter values +_iosys_defaults = {} + + +class InputOutputSystem(NamedIOSystem): + """A class for representing input/output systems. + + The InputOutputSystem class allows (possibly nonlinear) input/output + systems to be represented in Python. It is used as a parent class for + a set of subclasses that are used to implement specific structures and + operations for different types of input/output dynamical systems. + + Parameters + ---------- + inputs : int, list of str, or None + Description of the system inputs. This can be given as an integer + count or a list of strings that name the individual signals. If an + integer count is specified, the names of the signal will be of the + form `s[i]` (where `s` is given by the `input_prefix` parameter and + has default value 'u'). If this parameter is not given or given as + `None`, the relevant quantity will be determined when possible + based on other information provided to functions using the system. + outputs : int, list of str, or None + Description of the system outputs. Same format as `inputs`, with + the prefix given by output_prefix (defaults to 'y'). + states : int, list of str, or None + Description of the system states. Same format as `inputs`, with + the prefix given by state_prefix (defaults to 'x'). + dt : None, True or float, optional + System timebase. 0 (default) indicates continuous time, True + indicates discrete time with unspecified sampling time, positive + number is discrete time with specified sampling time, None indicates + unspecified timebase (either continuous or discrete time). + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. + params : dict, optional + Parameter values for the system. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + + Attributes + ---------- + ninputs, noutputs, nstates : int + Number of input, output and state variables + input_index, output_index, state_index : dict + Dictionary of signal names for the inputs, outputs and states and the + index of the corresponding array + dt : None, True or float + System timebase. 0 (default) indicates continuous time, True indicates + discrete time with unspecified sampling time, positive number is + discrete time with specified sampling time, None indicates unspecified + timebase (either continuous or discrete time). + params : dict, optional + Parameter values for the systems. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + name : string, optional + System name (used for specifying signals) + + Other Parameters + ---------------- + input_prefix : string, optional + Set the prefix for input signals. Default = 'u'. + output_prefix : string, optional + Set the prefix for output signals. Default = 'y'. + state_prefix : string, optional + Set the prefix for state signals. Default = 'x'. + + Notes + ----- + The :class:`~control.InputOuputSystem` class (and its subclasses) makes + use of two special methods for implementing much of the work of the class: + + * _rhs(t, x, u): compute the right hand side of the differential or + difference equation for the system. This must be specified by the + subclass for the system. + + * _out(t, x, u): compute the output for the current state of the system. + The default is to return the entire system state. + + """ + + # Allow ndarray * InputOutputSystem to give IOSystem._rmul_() priority + __array_priority__ = 12 # override ndarray, matrix, SS types + + def __init__(self, params=None, **kwargs): + """Create an input/output system. + + The InputOutputSystem constructor is used to create an input/output + object with the core information required for all input/output + systems. Instances of this class are normally created by one of the + input/output subclasses: :class:`~control.LinearICSystem`, + :class:`~control.LinearIOSystem`, :class:`~control.NonlinearIOSystem`, + :class:`~control.InterconnectedSystem`. + + """ + # Store the system name, inputs, outputs, and states + name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) + + # Initialize the data structure + # Note: don't use super() to override LinearIOSystem/StateSpace MRO + NamedIOSystem.__init__( + self, inputs=inputs, outputs=outputs, + states=states, name=name, dt=dt, **kwargs) + + # default parameters + self.params = {} if params is None else params.copy() + + def __mul__(sys2, sys1): + """Multiply two input/output systems (series interconnection)""" + # Note: order of arguments is flipped so that self = sys2, + # corresponding to the ordering convention of sys2 * sys1 + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + # Convert sys1 to an I/O system if needed + if isinstance(sys1, (int, float, np.number)): + sys1 = LinearIOSystem(StateSpace( + [], [], [], sys1 * np.eye(sys2.ninputs))) + + elif isinstance(sys1, np.ndarray): + sys1 = LinearIOSystem(StateSpace([], [], [], sys1)) + + elif isinstance(sys1, (StateSpace, TransferFunction)) and \ + not isinstance(sys1, LinearIOSystem): + sys1 = LinearIOSystem(sys1) + + elif not isinstance(sys1, InputOutputSystem): + raise TypeError("Unknown I/O system object ", sys1) + + # Make sure systems can be interconnected + if sys1.noutputs != sys2.ninputs: + raise ValueError("Can't multiply systems with incompatible " + "inputs and outputs") + + # Make sure timebase are compatible + dt = common_timebase(sys1.dt, sys2.dt) + + # Create a new system to handle the composition + inplist = [(0, i) for i in range(sys1.ninputs)] + outlist = [(1, i) for i in range(sys2.noutputs)] + newsys = InterconnectedSystem( + (sys1, sys2), inplist=inplist, outlist=outlist) + + # Set up the connection map manually + newsys.set_connect_map(np.block( + [[np.zeros((sys1.ninputs, sys1.noutputs)), + np.zeros((sys1.ninputs, sys2.noutputs))], + [np.eye(sys2.ninputs, sys1.noutputs), + np.zeros((sys2.ninputs, sys2.noutputs))]] + )) + + # If both systems are linear, create LinearICSystem + if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): + ss_sys = StateSpace.__mul__(sys2, sys1) + return LinearICSystem(newsys, ss_sys) + + # Return the newly created InterconnectedSystem + return newsys + + def __rmul__(sys1, sys2): + """Pre-multiply an input/output systems by a scalar/matrix""" + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + # Convert sys2 to an I/O system if needed + if isinstance(sys2, (int, float, np.number)): + sys2 = LinearIOSystem(StateSpace( + [], [], [], sys2 * np.eye(sys1.noutputs))) + + elif isinstance(sys2, np.ndarray): + sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) + + elif isinstance(sys2, (StateSpace, TransferFunction)) and \ + not isinstance(sys2, LinearIOSystem): + sys2 = LinearIOSystem(sys2) + + elif not isinstance(sys2, InputOutputSystem): + raise TypeError("Unknown I/O system object ", sys2) + + return InputOutputSystem.__mul__(sys2, sys1) + + def __add__(sys1, sys2): + """Add two input/output systems (parallel interconnection)""" + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + # Convert sys1 to an I/O system if needed + if isinstance(sys2, (int, float, np.number)): + sys2 = LinearIOSystem(StateSpace( + [], [], [], sys2 * np.eye(sys1.ninputs))) + + elif isinstance(sys2, np.ndarray): + sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) + + elif isinstance(sys2, (StateSpace, TransferFunction)) and \ + not isinstance(sys2, LinearIOSystem): + sys2 = LinearIOSystem(sys2) + + elif not isinstance(sys2, InputOutputSystem): + raise TypeError("Unknown I/O system object ", sys2) + + # Make sure number of input and outputs match + if sys1.ninputs != sys2.ninputs or sys1.noutputs != sys2.noutputs: + raise ValueError("Can't add systems with incompatible numbers of " + "inputs or outputs.") + ninputs = sys1.ninputs + noutputs = sys1.noutputs + + # Create a new system to handle the composition + inplist = [[(0, i), (1, i)] for i in range(ninputs)] + outlist = [[(0, i), (1, i)] for i in range(noutputs)] + newsys = InterconnectedSystem( + (sys1, sys2), inplist=inplist, outlist=outlist) + + # If both systems are linear, create LinearICSystem + if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): + ss_sys = StateSpace.__add__(sys2, sys1) + return LinearICSystem(newsys, ss_sys) + + # Return the newly created InterconnectedSystem + return newsys + + def __radd__(sys1, sys2): + """Parallel addition of input/output system to a compatible object.""" + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + # Convert sys2 to an I/O system if needed + if isinstance(sys2, (int, float, np.number)): + sys2 = LinearIOSystem(StateSpace( + [], [], [], sys2 * np.eye(sys1.noutputs))) + + elif isinstance(sys2, np.ndarray): + sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) + + elif isinstance(sys2, (StateSpace, TransferFunction)) and \ + not isinstance(sys2, LinearIOSystem): + sys2 = LinearIOSystem(sys2) + + elif not isinstance(sys2, InputOutputSystem): + raise TypeError("Unknown I/O system object ", sys2) + + return InputOutputSystem.__add__(sys2, sys1) + + def __sub__(sys1, sys2): + """Subtract two input/output systems (parallel interconnection)""" + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + # Convert sys1 to an I/O system if needed + if isinstance(sys2, (int, float, np.number)): + sys2 = LinearIOSystem(StateSpace( + [], [], [], sys2 * np.eye(sys1.ninputs))) + + elif isinstance(sys2, np.ndarray): + sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) + + elif isinstance(sys2, (StateSpace, TransferFunction)) and \ + not isinstance(sys2, LinearIOSystem): + sys2 = LinearIOSystem(sys2) + + elif not isinstance(sys2, InputOutputSystem): + raise TypeError("Unknown I/O system object ", sys2) + + # Make sure number of input and outputs match + if sys1.ninputs != sys2.ninputs or sys1.noutputs != sys2.noutputs: + raise ValueError("Can't add systems with incompatible numbers of " + "inputs or outputs.") + ninputs = sys1.ninputs + noutputs = sys1.noutputs + + # Create a new system to handle the composition + inplist = [[(0, i), (1, i)] for i in range(ninputs)] + outlist = [[(0, i), (1, i, -1)] for i in range(noutputs)] + newsys = InterconnectedSystem( + (sys1, sys2), inplist=inplist, outlist=outlist) + + # If both systems are linear, create LinearICSystem + if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): + ss_sys = StateSpace.__sub__(sys1, sys2) + return LinearICSystem(newsys, ss_sys) + + # Return the newly created InterconnectedSystem + return newsys + + def __rsub__(sys1, sys2): + """Parallel subtraction of I/O system to a compatible object.""" + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + # Convert sys2 to an I/O system if needed + if isinstance(sys2, (int, float, np.number)): + sys2 = LinearIOSystem(StateSpace( + [], [], [], sys2 * np.eye(sys1.noutputs))) + + elif isinstance(sys2, np.ndarray): + sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) + + elif isinstance(sys2, (StateSpace, TransferFunction)) and \ + not isinstance(sys2, LinearIOSystem): + sys2 = LinearIOSystem(sys2) + + elif not isinstance(sys2, InputOutputSystem): + raise TypeError("Unknown I/O system object ", sys2) + + return InputOutputSystem.__sub__(sys2, sys1) + + def __neg__(sys): + """Negate an input/output systems (rescale)""" + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + if sys.ninputs is None or sys.noutputs is None: + raise ValueError("Can't determine number of inputs or outputs") + + # Create a new system to hold the negation + inplist = [(0, i) for i in range(sys.ninputs)] + outlist = [(0, i, -1) for i in range(sys.noutputs)] + newsys = InterconnectedSystem( + (sys,), dt=sys.dt, inplist=inplist, outlist=outlist) + + # If the system is linear, create LinearICSystem + if isinstance(sys, StateSpace): + ss_sys = StateSpace.__neg__(sys) + return LinearICSystem(newsys, ss_sys) + + # Return the newly created system + return newsys + + def __truediv__(sys2, sys1): + """Division of input/output systems + + Only division by scalars and arrays of scalars is supported""" + from .lti import LTI + + # Note: order of arguments is flipped so that self = sys2, + # corresponding to the ordering convention of sys2 * sys1 + + if not isinstance(sys1, (LTI, NamedIOSystem)): + return sys2 * (1/sys1) + else: + return NotImplemented + + + # Update parameters used for _rhs, _out (used by subclasses) + def _update_params(self, params, warning=False): + if warning: + warn("Parameters passed to InputOutputSystem ignored.") + + def _rhs(self, t, x, u): + """Evaluate right hand side of a differential or difference equation. + + Private function used to compute the right hand side of an + input/output system model. Intended for fast + evaluation; for a more user-friendly interface + you may want to use :meth:`dynamics`. + + """ + raise NotImplementedError("Evaluation not implemented for system of type ", + type(self)) + + def dynamics(self, t, x, u, params=None): + """Compute the dynamics of a differential or difference equation. + + Given time `t`, input `u` and state `x`, returns the value of the + right hand side of the dynamical system. If the system is continuous, + returns the time derivative + + dx/dt = f(t, x, u[, params]) + + where `f` is the system's (possibly nonlinear) dynamics function. + If the system is discrete-time, returns the next value of `x`: + + x[t+dt] = f(t, x[t], u[t][, params]) + + where `t` is a scalar. + + The inputs `x` and `u` must be of the correct length. The `params` + argument is an optional dictionary of parameter values. + + Parameters + ---------- + t : float + the time at which to evaluate + x : array_like + current state + u : array_like + input + params : dict (optional) + system parameter values + + Returns + ------- + dx/dt or x[t+dt] : ndarray + """ + self._update_params(params) + return self._rhs(t, x, u) + + def _out(self, t, x, u): + """Evaluate the output of a system at a given state, input, and time + + Private function used to compute the output of of an input/output + system model given the state, input, parameters. Intended for fast + evaluation; for a more user-friendly interface you may want to use + :meth:`output`. + + """ + # If no output function was defined in subclass, return state + return x + + def output(self, t, x, u, params=None): + """Compute the output of the system + + Given time `t`, input `u` and state `x`, returns the output of the + system: + + y = g(t, x, u[, params]) + + The inputs `x` and `u` must be of the correct length. + + Parameters + ---------- + t : float + the time at which to evaluate + x : array_like + current state + u : array_like + input + params : dict (optional) + system parameter values + + Returns + ------- + y : ndarray + """ + self._update_params(params) + return self._out(t, x, u) + + def feedback(self, other=1, sign=-1, params=None): + """Feedback interconnection between two input/output systems + + Parameters + ---------- + sys1: InputOutputSystem + The primary process. + sys2: InputOutputSystem + The feedback process (often a feedback controller). + sign: scalar, optional + The sign of feedback. `sign` = -1 indicates negative feedback, + and `sign` = 1 indicates positive feedback. `sign` is an optional + argument; it assumes a value of -1 if not specified. + + Returns + ------- + out: InputOutputSystem + + Raises + ------ + ValueError + if the inputs, outputs, or timebases of the systems are + incompatible. + + """ + from .statesp import StateSpace, LinearIOSystem, LinearICSystem, \ + _convert_to_statespace + + # TODO: add conversion to I/O system when needed + if not isinstance(other, InputOutputSystem): + # Try converting to a state space system + try: + other = _convert_to_statespace(other) + except TypeError: + raise TypeError( + "Feedback around I/O system must be an I/O system " + "or convertable to an I/O system.") + other = LinearIOSystem(other) + + # Make sure systems can be interconnected + if self.noutputs != other.ninputs or other.noutputs != self.ninputs: + raise ValueError("Can't connect systems with incompatible " + "inputs and outputs") + + # Make sure timebases are compatible + dt = common_timebase(self.dt, other.dt) + + inplist = [(0, i) for i in range(self.ninputs)] + outlist = [(0, i) for i in range(self.noutputs)] + + # Return the series interconnection between the systems + newsys = InterconnectedSystem( + (self, other), inplist=inplist, outlist=outlist, + params=params, dt=dt) + + # Set up the connecton map manually + newsys.set_connect_map(np.block( + [[np.zeros((self.ninputs, self.noutputs)), + sign * np.eye(self.ninputs, other.noutputs)], + [np.eye(other.ninputs, self.noutputs), + np.zeros((other.ninputs, other.noutputs))]] + )) + + if isinstance(self, StateSpace) and isinstance(other, StateSpace): + # Special case: maintain linear systems structure + ss_sys = StateSpace.feedback(self, other, sign=sign) + return LinearICSystem(newsys, ss_sys) + + # Return the newly created system + return newsys + + def linearize(self, x0, u0, t=0, params=None, eps=1e-6, + name=None, copy_names=False, **kwargs): + """Linearize an input/output system at a given state and input. + + Return the linearization of an input/output system at a given state + and input value as a StateSpace system. See + :func:`~control.linearize` for complete documentation. + + """ + from .statesp import StateSpace, LinearIOSystem + + # + # If the linearization is not defined by the subclass, perform a + # numerical linearization use the `_rhs()` and `_out()` member + # functions. + # + + # If x0 and u0 are specified as lists, concatenate the elements + x0 = _concatenate_list_elements(x0, 'x0') + u0 = _concatenate_list_elements(u0, 'u0') + + # Figure out dimensions if they were not specified. + nstates = _find_size(self.nstates, x0) + ninputs = _find_size(self.ninputs, u0) + + # Convert x0, u0 to arrays, if needed + if np.isscalar(x0): + x0 = np.ones((nstates,)) * x0 + if np.isscalar(u0): + u0 = np.ones((ninputs,)) * u0 + + # Compute number of outputs by evaluating the output function + noutputs = _find_size(self.noutputs, self._out(t, x0, u0)) + + # Update the current parameters + self._update_params(params) + + # Compute the nominal value of the update law and output + F0 = self._rhs(t, x0, u0) + H0 = self._out(t, x0, u0) + + # Create empty matrices that we can fill up with linearizations + A = np.zeros((nstates, nstates)) # Dynamics matrix + B = np.zeros((nstates, ninputs)) # Input matrix + C = np.zeros((noutputs, nstates)) # Output matrix + D = np.zeros((noutputs, ninputs)) # Direct term + + # Perturb each of the state variables and compute linearization + for i in range(nstates): + dx = np.zeros((nstates,)) + dx[i] = eps + A[:, i] = (self._rhs(t, x0 + dx, u0) - F0) / eps + C[:, i] = (self._out(t, x0 + dx, u0) - H0) / eps + + # Perturb each of the input variables and compute linearization + for i in range(ninputs): + du = np.zeros((ninputs,)) + du[i] = eps + B[:, i] = (self._rhs(t, x0, u0 + du) - F0) / eps + D[:, i] = (self._out(t, x0, u0 + du) - H0) / eps + + # Create the state space system + linsys = LinearIOSystem( + StateSpace(A, B, C, D, self.dt, remove_useless_states=False)) + + # Set the system name, inputs, outputs, and states + if 'copy' in kwargs: + copy_names = kwargs.pop('copy') + warn("keyword 'copy' is deprecated. please use 'copy_names'", + DeprecationWarning) + + if copy_names: + linsys._copy_names(self, prefix_suffix_name='linearized') + if name is not None: + linsys.name = name + + # re-init to include desired signal names if names were provided + return LinearIOSystem(linsys, **kwargs) + + +class NonlinearIOSystem(InputOutputSystem): + """Nonlinear I/O system. + + Creates an :class:`~control.InputOutputSystem` for a nonlinear system by + specifying a state update function and an output function. The new system + can be a continuous or discrete time system (Note: discrete-time systems + are not yet supported by most functions.) + + Parameters + ---------- + updfcn : callable + Function returning the state update function + + `updfcn(t, x, u, params) -> array` + + where `x` is a 1-D array with shape (nstates,), `u` is a 1-D array + with shape (ninputs,), `t` is a float representing the currrent + time, and `params` is a dict containing the values of parameters + used by the function. + + outfcn : callable + Function returning the output at the given state + + `outfcn(t, x, u, params) -> array` + + where the arguments are the same as for `upfcn`. + + inputs : int, list of str or None, optional + Description of the system inputs. This can be given as an integer + count or as a list of strings that name the individual signals. + If an integer count is specified, the names of the signal will be + of the form `s[i]` (where `s` is one of `u`, `y`, or `x`). If + this parameter is not given or given as `None`, the relevant + quantity will be determined when possible based on other + information provided to functions using the system. + + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. + + dt : timebase, optional + The timebase for the system, used to specify whether the system is + operating in continuous or discrete time. It can have the + following values: + + * dt = 0: continuous time system (default) + * dt > 0: discrete time system with sampling period 'dt' + * dt = True: discrete time with unspecified sampling period + * dt = None: no timebase specified + + name : string, optional + System name (used for specifying signals). If unspecified, a + generic name is generated with a unique integer id. + + params : dict, optional + Parameter values for the systems. Passed to the evaluation + functions for the system as default values, overriding internal + defaults. + + See Also + -------- + InputOutputSystem : Input/output system class. + + """ + def __init__(self, updfcn, outfcn=None, params=None, **kwargs): + """Create a nonlinear I/O system given update and output functions.""" + # Process keyword arguments + name, inputs, outputs, states, dt = _process_namedio_keywords( + kwargs, end=True) + + # Initialize the rest of the structure + super().__init__( + inputs=inputs, outputs=outputs, states=states, + params=params, dt=dt, name=name + ) + + # Store the update and output functions + self.updfcn = updfcn + self.outfcn = outfcn + + # Check to make sure arguments are consistent + if updfcn is None: + if self.nstates is None: + self.nstates = 0 + else: + raise ValueError("States specified but no update function " + "given.") + if outfcn is None: + # No output function specified => outputs = states + if self.noutputs is None and self.nstates is not None: + self.noutputs = self.nstates + elif self.noutputs is not None and self.noutputs == self.nstates: + # Number of outputs = number of states => all is OK + pass + elif self.noutputs is not None and self.noutputs != 0: + raise ValueError("Outputs specified but no output function " + "(and nstates not known).") + + # Initialize current parameters to default parameters + self._current_params = {} if params is None else params.copy() + + def __str__(self): + return f"{InputOutputSystem.__str__(self)}\n\n" + \ + f"Update: {self.updfcn}\n" + \ + f"Output: {self.outfcn}" + + # Return the value of a static nonlinear system + def __call__(sys, u, params=None, squeeze=None): + """Evaluate a (static) nonlinearity at a given input value + + If a nonlinear I/O system has no internal state, then evaluating the + system at an input `u` gives the output `y = F(u)`, determined by the + output function. + + Parameters + ---------- + params : dict, optional + Parameter values for the system. Passed to the evaluation function + for the system as default values, overriding internal defaults. + squeeze : bool, optional + If True and if the system has a single output, return the system + output as a 1D array rather than a 2D array. If False, return the + system output as a 2D array even if the system is SISO. Default + value set by config.defaults['control.squeeze_time_response']. + + """ + from .timeresp import _process_time_response + + # Make sure the call makes sense + if not sys._isstatic(): + raise TypeError( + "function evaluation is only supported for static " + "input/output systems") + + # If we received any parameters, update them before calling _out() + if params is not None: + sys._update_params(params) + + # Evaluate the function on the argument + out = sys._out(0, np.array((0,)), np.asarray(u)) + _, out = _process_time_response( + None, out, issiso=sys.issiso(), squeeze=squeeze) + return out + + def _update_params(self, params, warning=False): + # Update the current parameter values + self._current_params = self.params.copy() + if params: + self._current_params.update(params) + + def _rhs(self, t, x, u): + xdot = self.updfcn(t, x, u, self._current_params) \ + if self.updfcn is not None else [] + return np.array(xdot).reshape((-1,)) + + def _out(self, t, x, u): + y = self.outfcn(t, x, u, self._current_params) \ + if self.outfcn is not None else x + return np.array(y).reshape((-1,)) + + +class InterconnectedSystem(InputOutputSystem): + """Interconnection of a set of input/output systems. + + This class is used to implement a system that is an interconnection of + input/output systems. The sys consists of a collection of subsystems + whose inputs and outputs are connected via a connection map. The overall + system inputs and outputs are subsets of the subsystem inputs and outputs. + + The function :func:`~control.interconnect` should be used to create an + interconnected I/O system since it performs additional argument + processing and checking. + + """ + def __init__(self, syslist, connections=None, inplist=None, outlist=None, + params=None, warn_duplicate=None, **kwargs): + """Create an I/O system from a list of systems + connection info.""" + from .statesp import _convert_to_statespace + from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .xferfcn import TransferFunction + + # Convert input and output names to lists if they aren't already + if inplist is not None and not isinstance(inplist, list): + inplist = [inplist] + if outlist is not None and not isinstance(outlist, list): + outlist = [outlist] + + # Check if dt argument was given; if not, pull from systems + dt = kwargs.pop('dt', None) + + # Process keyword arguments (except dt) + name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) + + # Initialize the system list and index + self.syslist = list(syslist) # insure modifications can be made + self.syslist_index = {} + + # Initialize the input, output, and state counts, indices + nstates, self.state_offset = 0, [] + ninputs, self.input_offset = 0, [] + noutputs, self.output_offset = 0, [] + + # Keep track of system objects and names we have already seen + sysobj_name_dct = {} + sysname_count_dct = {} + + # Go through the system list and keep track of counts, offsets + for sysidx, sys in enumerate(self.syslist): + # If we were passed a SS or TF system, convert to LinearIOSystem + if isinstance(sys, (StateSpace, TransferFunction)) and \ + not isinstance(sys, LinearIOSystem): + sys = LinearIOSystem(sys, name=sys.name) + self.syslist[sysidx] = sys + + # Make sure time bases are consistent + dt = common_timebase(dt, sys.dt) + + # Make sure number of inputs, outputs, states is given + if sys.ninputs is None or sys.noutputs is None or \ + sys.nstates is None: + raise TypeError("System '%s' must define number of inputs, " + "outputs, states in order to be connected" % + sys.name) + + # Keep track of the offsets into the states, inputs, outputs + self.input_offset.append(ninputs) + self.output_offset.append(noutputs) + self.state_offset.append(nstates) + + # Keep track of the total number of states, inputs, outputs + nstates += sys.nstates + ninputs += sys.ninputs + noutputs += sys.noutputs + + # Check for duplicate systems or duplicate names + # Duplicates are renamed sysname_1, sysname_2, etc. + if sys in sysobj_name_dct: + # Make a copy of the object using a new name + if warn_duplicate is None and sys._generic_name_check(): + # Make a copy w/out warning, using generic format + sys = sys.copy(use_prefix_suffix=False) + warn_flag = False + else: + sys = sys.copy() + warn_flag = warn_duplicate + + # Warn the user about the new object + if warn_flag is not False: + warn("duplicate object found in system list; " + "created copy: %s" % str(sys.name), stacklevel=2) + + # Check to see if the system name shows up more than once + if sys.name is not None and sys.name in sysname_count_dct: + count = sysname_count_dct[sys.name] + sysname_count_dct[sys.name] += 1 + sysname = sys.name + "_" + str(count) + sysobj_name_dct[sys] = sysname + self.syslist_index[sysname] = sysidx + + if warn_duplicate is not False: + warn("duplicate name found in system list; " + "renamed to {}".format(sysname), stacklevel=2) + + else: + sysname_count_dct[sys.name] = 1 + sysobj_name_dct[sys] = sys.name + self.syslist_index[sys.name] = sysidx + + if states is None: + states = [] + state_name_delim = config.defaults['namedio.state_name_delim'] + for sys, sysname in sysobj_name_dct.items(): + states += [sysname + state_name_delim + + statename for statename in sys.state_index.keys()] + + # Make sure we the state list is the right length (internal check) + if isinstance(states, list) and len(states) != nstates: + raise RuntimeError( + f"construction of state labels failed; found: " + f"{len(states)} labels; expecting {nstates}") + + # Figure out what the inputs and outputs are + if inputs is None and inplist is not None: + inputs = len(inplist) + + if outputs is None and outlist is not None: + outputs = len(outlist) + + # Create the I/O system + # Note: don't use super() to override LinearICSystem/StateSpace MRO + InputOutputSystem.__init__( + self, inputs=inputs, outputs=outputs, + states=states, params=params, dt=dt, name=name, **kwargs) + + # Convert the list of interconnections to a connection map (matrix) + self.connect_map = np.zeros((ninputs, noutputs)) + for connection in connections or []: + input_indices = self._parse_input_spec(connection[0]) + for output_spec in connection[1:]: + output_indices, gain = self._parse_output_spec(output_spec) + if len(output_indices) != len(input_indices): + raise ValueError( + f"inconsistent number of signals in connecting" + f" '{output_spec}' to '{connection[0]}'") + + for input_index, output_index in zip( + input_indices, output_indices): + if self.connect_map[input_index, output_index] != 0: + warn("multiple connections given for input %d" % + input_index + ". Combining with previous entries.") + self.connect_map[input_index, output_index] += gain + + # Convert the input list to a matrix: maps system to subsystems + self.input_map = np.zeros((ninputs, self.ninputs)) + for index, inpspec in enumerate(inplist or []): + if isinstance(inpspec, (int, str, tuple)): + inpspec = [inpspec] + if not isinstance(inpspec, list): + raise ValueError("specifications in inplist must be of type " + "int, str, tuple or list.") + for spec in inpspec: + ulist_indices = self._parse_input_spec(spec) + for j, ulist_index in enumerate(ulist_indices): + if self.input_map[ulist_index, index] != 0: + warn("multiple connections given for input %d" % + index + ". Combining with previous entries.") + self.input_map[ulist_index, index + j] += 1 + + # Convert the output list to a matrix: maps subsystems to system + self.output_map = np.zeros((self.noutputs, noutputs + ninputs)) + for index, outspec in enumerate(outlist or []): + if isinstance(outspec, (int, str, tuple)): + outspec = [outspec] + if not isinstance(outspec, list): + raise ValueError("specifications in outlist must be of type " + "int, str, tuple or list.") + for spec in outspec: + ylist_indices, gain = self._parse_output_spec(spec) + for j, ylist_index in enumerate(ylist_indices): + if self.output_map[index, ylist_index] != 0: + warn("multiple connections given for output %d" % + index + ". Combining with previous entries.") + self.output_map[index + j, ylist_index] += gain + + def _update_params(self, params, warning=False): + for sys in self.syslist: + local = sys.params.copy() # start with system parameters + local.update(self.params) # update with global params + if params: + local.update(params) # update with locally passed parameters + sys._update_params(local, warning=warning) + + def _rhs(self, t, x, u): + # Make sure state and input are vectors + x = np.array(x, ndmin=1) + u = np.array(u, ndmin=1) + + # Compute the input and output vectors + ulist, ylist = self._compute_static_io(t, x, u) + + # Go through each system and update the right hand side for that system + xdot = np.zeros((self.nstates,)) # Array to hold results + state_index, input_index = 0, 0 # Start at the beginning + for sys in self.syslist: + # Update the right hand side for this subsystem + if sys.nstates != 0: + xdot[state_index:state_index + sys.nstates] = sys._rhs( + t, x[state_index:state_index + sys.nstates], + ulist[input_index:input_index + sys.ninputs]) + + # Update the state and input index counters + state_index += sys.nstates + input_index += sys.ninputs + + return xdot + + def _out(self, t, x, u): + # Make sure state and input are vectors + x = np.array(x, ndmin=1) + u = np.array(u, ndmin=1) + + # Compute the input and output vectors + ulist, ylist = self._compute_static_io(t, x, u) + + # Make the full set of subsystem outputs to system output + return self.output_map @ ylist + + def _compute_static_io(self, t, x, u): + # Figure out the total number of inputs and outputs + (ninputs, noutputs) = self.connect_map.shape + + # + # Get the outputs and inputs at the current system state + # + + # Initialize the lists used to keep track of internal signals + ulist = np.dot(self.input_map, u) + ylist = np.zeros((noutputs + ninputs,)) + + # To allow for feedthrough terms, iterate multiple times to allow + # feedthrough elements to propagate. For n systems, we could need to + # cycle through n+1 times before reaching steady state + # TODO (later): see if there is a more efficient way to compute + cycle_count = len(self.syslist) + 1 + while cycle_count > 0: + state_index, input_index, output_index = 0, 0, 0 + for sys in self.syslist: + # Compute outputs for each system from current state + ysys = sys._out( + t, x[state_index:state_index + sys.nstates], + ulist[input_index:input_index + sys.ninputs]) + + # Store the outputs at the start of ylist + ylist[output_index:output_index + sys.noutputs] = \ + ysys.reshape((-1,)) + + # Store the input in the second part of ylist + ylist[noutputs + input_index: + noutputs + input_index + sys.ninputs] = \ + ulist[input_index:input_index + sys.ninputs] + + # Increment the index pointers + state_index += sys.nstates + input_index += sys.ninputs + output_index += sys.noutputs + + # Compute inputs based on connection map + new_ulist = self.connect_map @ ylist[:noutputs] \ + + np.dot(self.input_map, u) + + # Check to see if any of the inputs changed + if (ulist == new_ulist).all(): + break + else: + ulist = new_ulist + + # Decrease the cycle counter + cycle_count -= 1 + + # Make sure that we stopped before detecting an algebraic loop + if cycle_count == 0: + raise RuntimeError("Algebraic loop detected.") + + return ulist, ylist + + def _parse_input_spec(self, spec): + """Parse an input specification and returns the indices.""" + # Parse the signal that we received + subsys_index, input_indices, gain = _parse_spec( + self.syslist, spec, 'input') + if gain != 1: + raise ValueError("gain not allowed in spec '%s'." % str(spec)) + + # Return the indices into the input vector list (ylist) + return [self.input_offset[subsys_index] + i for i in input_indices] + + def _parse_output_spec(self, spec): + """Parse an output specification and returns the indices and gain.""" + # Parse the rest of the spec with standard signal parsing routine + try: + # Start by looking in the set of subsystem outputs + subsys_index, output_indices, gain = \ + _parse_spec(self.syslist, spec, 'output') + output_offset = self.output_offset[subsys_index] + + except ValueError: + # Try looking in the set of subsystem *inputs* + subsys_index, output_indices, gain = _parse_spec( + self.syslist, spec, 'input or output', dictname='input_index') + + # Return the index into the input vector list (ylist) + output_offset = sum(sys.noutputs for sys in self.syslist) + \ + self.input_offset[subsys_index] + + return [output_offset + i for i in output_indices], gain + + def _find_system(self, name): + return self.syslist_index.get(name, None) + + def set_connect_map(self, connect_map): + """Set the connection map for an interconnected I/O system. + + Parameters + ---------- + connect_map : 2D array + Specify the matrix that will be used to multiply the vector of + subsystem outputs to obtain the vector of subsystem inputs. + + """ + # Make sure the connection map is the right size + if connect_map.shape != self.connect_map.shape: + ValueError("Connection map is not the right shape") + self.connect_map = connect_map + + def set_input_map(self, input_map): + """Set the input map for an interconnected I/O system. + + Parameters + ---------- + input_map : 2D array + Specify the matrix that will be used to multiply the vector of + system inputs to obtain the vector of subsystem inputs. These + values are added to the inputs specified in the connection map. + + """ + # Figure out the number of internal inputs + ninputs = sum(sys.ninputs for sys in self.syslist) + + # Make sure the input map is the right size + if input_map.shape[0] != ninputs: + ValueError("Input map is not the right shape") + self.input_map = input_map + self.ninputs = input_map.shape[1] + + def set_output_map(self, output_map): + """Set the output map for an interconnected I/O system. + + Parameters + ---------- + output_map : 2D array + Specify the matrix that will be used to multiply the vector of + subsystem outputs concatenated with subsystem inputs to obtain + the vector of system outputs. + + """ + # Figure out the number of internal inputs and outputs + ninputs = sum(sys.ninputs for sys in self.syslist) + noutputs = sum(sys.noutputs for sys in self.syslist) + + # Make sure the output map is the right size + if output_map.shape[1] == noutputs: + # For backward compatibility, add zeros to the end of the array + output_map = np.concatenate( + (output_map, + np.zeros((output_map.shape[0], ninputs))), + axis=1) + + if output_map.shape[1] != noutputs + ninputs: + ValueError("Output map is not the right shape") + self.output_map = output_map + self.noutputs = output_map.shape[0] + + def unused_signals(self): + """Find unused subsystem inputs and outputs + + Returns + ------- + + unused_inputs : dict + A mapping from tuple of indices (isys, isig) to string + '{sys}.{sig}', for all unused subsystem inputs. + + unused_outputs : dict + A mapping from tuple of indices (osys, osig) to string + '{sys}.{sig}', for all unused subsystem outputs. + + """ + used_sysinp_via_inp = np.nonzero(self.input_map)[0] + used_sysout_via_out = np.nonzero(self.output_map)[1] + used_sysinp_via_con, used_sysout_via_con = np.nonzero(self.connect_map) + + used_sysinp = set(used_sysinp_via_inp) | set(used_sysinp_via_con) + used_sysout = set(used_sysout_via_out) | set(used_sysout_via_con) + + nsubsysinp = sum(sys.ninputs for sys in self.syslist) + nsubsysout = sum(sys.noutputs for sys in self.syslist) + + unused_sysinp = sorted(set(range(nsubsysinp)) - used_sysinp) + unused_sysout = sorted(set(range(nsubsysout)) - used_sysout) + + inputs = [(isys, isig, f'{sys.name}.{sig}') + for isys, sys in enumerate(self.syslist) + for sig, isig in sys.input_index.items()] + + outputs = [(isys, isig, f'{sys.name}.{sig}') + for isys, sys in enumerate(self.syslist) + for sig, isig in sys.output_index.items()] + + return ({inputs[i][:2]: inputs[i][2] for i in unused_sysinp}, + {outputs[i][:2]: outputs[i][2] for i in unused_sysout}) + + def _find_inputs_by_basename(self, basename): + """Find all subsystem inputs matching basename + + Returns + ------- + Mapping from (isys, isig) to '{sys}.{sig}' + + """ + return {(isys, isig): f'{sys.name}.{basename}' + for isys, sys in enumerate(self.syslist) + for sig, isig in sys.input_index.items() + if sig == (basename)} + + def _find_outputs_by_basename(self, basename): + """Find all subsystem outputs matching basename + + Returns + ------- + Mapping from (isys, isig) to '{sys}.{sig}' + + """ + return {(isys, isig): f'{sys.name}.{basename}' + for isys, sys in enumerate(self.syslist) + for sig, isig in sys.output_index.items() + if sig == (basename)} + + def check_unused_signals( + self, ignore_inputs=None, ignore_outputs=None, warning=True): + """Check for unused subsystem inputs and outputs + + Check to see if there are any unused signals and return a list of + unused input and output signal descriptions. If `warning` is True + and any unused inputs or outputs are found, emit a warning. + + Parameters + ---------- + ignore_inputs : list of input-spec + Subsystem inputs known to be unused. input-spec can be any of: + 'sig', 'sys.sig', (isys, isig), ('sys', isig) + + If the 'sig' form is used, all subsystem inputs with that + name are considered ignored. + + ignore_outputs : list of output-spec + Subsystem outputs known to be unused. output-spec can be any of: + 'sig', 'sys.sig', (isys, isig), ('sys', isig) + + If the 'sig' form is used, all subsystem outputs with that + name are considered ignored. + + Returns + ------- + dropped_inputs: list of tuples + A list of the dropped input signals, with each element of the + list in the form of (isys, isig). + + dropped_outputs: list of tuples + A list of the dropped output signals, with each element of the + list in the form of (osys, osig). + + """ + + if ignore_inputs is None: + ignore_inputs = [] + + if ignore_outputs is None: + ignore_outputs = [] + + unused_inputs, unused_outputs = self.unused_signals() + + # (isys, isig) -> signal-spec + ignore_input_map = {} + for ignore_input in ignore_inputs: + if isinstance(ignore_input, str) and '.' not in ignore_input: + ignore_idxs = self._find_inputs_by_basename(ignore_input) + if not ignore_idxs: + raise ValueError("Couldn't find ignored input " + f"{ignore_input} in subsystems") + ignore_input_map.update(ignore_idxs) + else: + isys, isigs = _parse_spec( + self.syslist, ignore_input, 'input')[:2] + for isig in isigs: + ignore_input_map[(isys, isig)] = ignore_input + + # (osys, osig) -> signal-spec + ignore_output_map = {} + for ignore_output in ignore_outputs: + if isinstance(ignore_output, str) and '.' not in ignore_output: + ignore_found = self._find_outputs_by_basename(ignore_output) + if not ignore_found: + raise ValueError("Couldn't find ignored output " + f"{ignore_output} in subsystems") + ignore_output_map.update(ignore_found) + else: + osys, osigs = _parse_spec( + self.syslist, ignore_output, 'output')[:2] + for osig in osigs: + ignore_output_map[(osys, osig)] = ignore_output + + dropped_inputs = set(unused_inputs) - set(ignore_input_map) + dropped_outputs = set(unused_outputs) - set(ignore_output_map) + + used_ignored_inputs = set(ignore_input_map) - set(unused_inputs) + used_ignored_outputs = set(ignore_output_map) - set(unused_outputs) + + if warning and dropped_inputs: + msg = ('Unused input(s) in InterconnectedSystem: ' + + '; '.join(f'{inp}={unused_inputs[inp]}' + for inp in dropped_inputs)) + warn(msg) + + if warning and dropped_outputs: + msg = ('Unused output(s) in InterconnectedSystem: ' + + '; '.join(f'{out} : {unused_outputs[out]}' + for out in dropped_outputs)) + warn(msg) + + if warning and used_ignored_inputs: + msg = ('Input(s) specified as ignored is (are) used: ' + + '; '.join(f'{inp} : {ignore_input_map[inp]}' + for inp in used_ignored_inputs)) + warn(msg) + + if warning and used_ignored_outputs: + msg = ('Output(s) specified as ignored is (are) used: ' + + '; '.join(f'{out}={ignore_output_map[out]}' + for out in used_ignored_outputs)) + warn(msg) + + return dropped_inputs, dropped_outputs + + +def input_output_response( + sys, T, U=0., X0=0, params=None, + transpose=False, return_x=False, squeeze=None, + solve_ivp_kwargs=None, t_eval='T', **kwargs): + """Compute the output response of a system to a given input. + + Simulate a dynamical system with a given input and return its output + and state values. + + Parameters + ---------- + sys : InputOutputSystem + Input/output system to simulate. + + T : array-like + Time steps at which the input is defined; values must be evenly spaced. + + U : array-like, list, or number, optional + Input array giving input at each time `T` (default = 0). If a list + is specified, each element in the list will be treated as a portion + of the input and broadcast (if necessary) to match the time vector. + + X0 : array-like, list, or number, optional + Initial condition (default = 0). If a list is given, each element + in the list will be flattened and stacked into the initial + condition. If a smaller number of elements are given that the + number of states in the system, the initial condition will be padded + with zeros. + + t_eval : array-list, optional + List of times at which the time response should be computed. + Defaults to ``T``. + + return_x : bool, optional + If True, return the state vector when assigning to a tuple (default = + False). See :func:`forced_response` for more details. + If True, return the values of the state at each time (default = False). + + squeeze : bool, optional + If True and if the system has a single output, return the system + output as a 1D array rather than a 2D array. If False, return the + system output as a 2D array even if the system is SISO. Default value + set by config.defaults['control.squeeze_time_response']. + + Returns + ------- + results : TimeResponseData + Time response 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 and + `squeeze` is not True, the array is 1D (indexed by time). If the + system is not SISO or `squeeze` is False, the array is 2D (indexed + by output and time). + + * states (array): Time evolution of the state vector, represented as + a 2D array indexed by state and time. + + * inputs (array): Input(s) to the system, indexed by input and time. + + The return value of the system can also be accessed by assigning the + function to a tuple of length 2 (time, output) or of length 3 (time, + output, state) if ``return_x`` is ``True``. If the input/output + system signals are named, these names will be used as labels for the + time response. + + Other parameters + ---------------- + solve_ivp_method : str, optional + Set the method used by :func:`scipy.integrate.solve_ivp`. Defaults + to 'RK45'. + solve_ivp_kwargs : dict, optional + Pass additional keywords to :func:`scipy.integrate.solve_ivp`. + + Raises + ------ + TypeError + If the system is not an input/output system. + ValueError + If time step does not match sampling time (for discrete time systems). + + Notes + ----- + 1. If a smaller number of initial conditions are given than the number of + states in the system, the initial conditions will be padded with + zeros. This is often useful for interconnected control systems where + the process dynamics are the first system and all other components + start with zero initial condition since this can be specified as + [xsys_0, 0]. A warning is issued if the initial conditions are padded + and and the final listed initial state is not zero. + + 2. If discontinuous inputs are given, the underlying SciPy numerical + integration algorithms can sometimes produce erroneous results due + to the default tolerances that are used. The `ivp_method` and + `ivp_keywords` parameters can be used to tune the ODE solver and + produce better results. In particular, using 'LSODA' as the + `ivp_method` or setting the `rtol` parameter to a smaller value + (e.g. using `ivp_kwargs={'rtol': 1e-4}`) can provide more accurate + results. + + """ + from .timeresp import _check_convert_array, _process_time_response, \ + TimeResponseData + + # + # Process keyword arguments + # + + # Figure out the method to be used + solve_ivp_kwargs = solve_ivp_kwargs.copy() if solve_ivp_kwargs else {} + if kwargs.get('solve_ivp_method', None): + if kwargs.get('method', None): + raise ValueError("ivp_method specified more than once") + solve_ivp_kwargs['method'] = kwargs.pop('solve_ivp_method') + elif kwargs.get('method', None): + # Allow method as an alternative to solve_ivp_method + solve_ivp_kwargs['method'] = kwargs.pop('method') + + # Set the default method to 'RK45' + if solve_ivp_kwargs.get('method', None) is None: + solve_ivp_kwargs['method'] = 'RK45' + + # Make sure there were no extraneous keywords + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) + + # Sanity checking on the input + if not isinstance(sys, InputOutputSystem): + raise TypeError("System of type ", type(sys), " not valid") + + # Compute the time interval and number of steps + T0, Tf = T[0], T[-1] + ntimepts = len(T) + + # Figure out simulation times (t_eval) + if solve_ivp_kwargs.get('t_eval'): + if t_eval == 'T': + # Override the default with the solve_ivp keyword + t_eval = solve_ivp_kwargs.pop('t_eval') + else: + raise ValueError("t_eval specified more than once") + if isinstance(t_eval, str) and t_eval == 'T': + # Use the input time points as the output time points + t_eval = T + + # If we were passed a list of input, concatenate them (w/ broadcast) + if isinstance(U, (tuple, list)) and len(U) != ntimepts: + U_elements = [] + for i, u in enumerate(U): + u = np.array(u) # convert everyting to an array + # Process this input + if u.ndim == 0 or (u.ndim == 1 and u.shape[0] != T.shape[0]): + # Broadcast array to the length of the time input + u = np.outer(u, np.ones_like(T)) + + elif (u.ndim == 1 and u.shape[0] == T.shape[0]) or \ + (u.ndim == 2 and u.shape[1] == T.shape[0]): + # No processing necessary; just stack + pass + + else: + raise ValueError(f"Input element {i} has inconsistent shape") + + # Append this input to our list + U_elements.append(u) + + # Save the newly created input vector + U = np.vstack(U_elements) + + # Make sure the input has the right shape + if sys.ninputs is None or sys.ninputs == 1: + legal_shapes = [(ntimepts,), (1, ntimepts)] + else: + legal_shapes = [(sys.ninputs, ntimepts)] + + U = _check_convert_array(U, legal_shapes, + 'Parameter ``U``: ', squeeze=False) + + # Always store the input as a 2D array + U = U.reshape(-1, ntimepts) + ninputs = U.shape[0] + + # If we were passed a list of initial states, concatenate them + X0 = _concatenate_list_elements(X0, 'X0') + + # If the initial state is too short, make it longer (NB: sys.nstates + # could be None if nstates comes from size of initial condition) + if sys.nstates and isinstance(X0, np.ndarray) and X0.size < sys.nstates: + if X0[-1] != 0: + warn("initial state too short; padding with zeros") + X0 = np.hstack([X0, np.zeros(sys.nstates - X0.size)]) + + # If we were passed a list of initial states, concatenate them + if isinstance(X0, (tuple, list)): + X0_list = [] + for i, x0 in enumerate(X0): + x0 = np.array(x0).reshape(-1) # convert everyting to 1D array + X0_list += x0.tolist() # add elements to initial state + + # Save the newly created input vector + X0 = np.array(X0_list) + + # If the initial state is too short, make it longer (NB: sys.nstates + # could be None if nstates comes from size of initial condition) + if sys.nstates and isinstance(X0, np.ndarray) and X0.size < sys.nstates: + if X0[-1] != 0: + warn("initial state too short; padding with zeros") + X0 = np.hstack([X0, np.zeros(sys.nstates - X0.size)]) + + # Compute the number of states + nstates = _find_size(sys.nstates, X0) + + # create X0 if not given, test if X0 has correct shape + X0 = _check_convert_array(X0, [(nstates,), (nstates, 1)], + 'Parameter ``X0``: ', squeeze=True) + + # Figure out the number of outputs + if sys.noutputs is None: + # Evaluate the output function to find number of outputs + noutputs = np.shape(sys._out(T[0], X0, U[:, 0]))[0] + else: + noutputs = sys.noutputs + + # Update the parameter values + sys._update_params(params) + + # + # Define a function to evaluate the input at an arbitrary time + # + # This is equivalent to the function + # + # ufun = sp.interpolate.interp1d(T, U, fill_value='extrapolate') + # + # but has a lot less overhead => simulation runs much faster + def ufun(t): + # Find the value of the index using linear interpolation + # Use clip to allow for extrapolation if t is out of range + idx = np.clip(np.searchsorted(T, t, side='left'), 1, len(T)-1) + dt = (t - T[idx-1]) / (T[idx] - T[idx-1]) + return U[..., idx-1] * (1. - dt) + U[..., idx] * dt + + # Check to make sure this is not a static function + if nstates == 0: # No states => map input to output + # Make sure the user gave a time vector for evaluation (or 'T') + if t_eval is None: + # User overrode t_eval with None, but didn't give us the times... + warn("t_eval set to None, but no dynamics; using T instead") + t_eval = T + + # Allocate space for the inputs and outputs + u = np.zeros((ninputs, len(t_eval))) + y = np.zeros((noutputs, len(t_eval))) + + # Compute the input and output at each point in time + for i, t in enumerate(t_eval): + u[:, i] = ufun(t) + y[:, i] = sys._out(t, [], u[:, i]) + + return TimeResponseData( + t_eval, y, None, u, issiso=sys.issiso(), + output_labels=sys.output_labels, input_labels=sys.input_labels, + transpose=transpose, return_x=return_x, squeeze=squeeze) + + # Create a lambda function for the right hand side + def ivp_rhs(t, x): + return sys._rhs(t, x, ufun(t)) + + # Perform the simulation + if isctime(sys): + if not hasattr(sp.integrate, 'solve_ivp'): + raise NameError("scipy.integrate.solve_ivp not found; " + "use SciPy 1.0 or greater") + soln = sp.integrate.solve_ivp( + ivp_rhs, (T0, Tf), X0, t_eval=t_eval, + vectorized=False, **solve_ivp_kwargs) + if not soln.success: + raise RuntimeError("solve_ivp failed: " + soln.message) + + # Compute inputs and outputs for each time point + u = np.zeros((ninputs, len(soln.t))) + y = np.zeros((noutputs, len(soln.t))) + for i, t in enumerate(soln.t): + u[:, i] = ufun(t) + y[:, i] = sys._out(t, soln.y[:, i], u[:, i]) + + elif isdtime(sys): + # If t_eval was not specified, use the sampling time + if t_eval is None: + t_eval = np.arange(T[0], T[1] + sys.dt, sys.dt) + + # Make sure the time vector is uniformly spaced + dt = t_eval[1] - t_eval[0] + if not np.allclose(t_eval[1:] - t_eval[:-1], dt): + raise ValueError("Parameter ``t_eval``: time values must be " + "equally spaced.") + + # Make sure the sample time matches the given time + if sys.dt is not True: + # Make sure that the time increment is a multiple of sampling time + + # TODO: add back functionality for undersampling + # TODO: this test is brittle if dt = sys.dt + # First make sure that time increment is bigger than sampling time + # if dt < sys.dt: + # raise ValueError("Time steps ``T`` must match sampling time") + + # Check to make sure sampling time matches time increments + if not np.isclose(dt, sys.dt): + raise ValueError("Time steps ``T`` must be equal to " + "sampling time") + + # Compute the solution + soln = sp.optimize.OptimizeResult() + soln.t = t_eval # Store the time vector directly + x = np.array(X0) # State vector (store as floats) + soln.y = [] # Solution, following scipy convention + u, y = [], [] # System input, output + for t in t_eval: + # Store the current input, state, and output + soln.y.append(x) + u.append(ufun(t)) + y.append(sys._out(t, x, u[-1])) + + # Update the state for the next iteration + x = sys._rhs(t, x, u[-1]) + + # Convert output to numpy arrays + soln.y = np.transpose(np.array(soln.y)) + y = np.transpose(np.array(y)) + u = np.transpose(np.array(u)) + + # Mark solution as successful + soln.success = True # No way to fail + + else: # Neither ctime or dtime?? + raise TypeError("Can't determine system type") + + return TimeResponseData( + soln.t, y, soln.y, u, issiso=sys.issiso(), + output_labels=sys.output_labels, input_labels=sys.input_labels, + state_labels=sys.state_labels, + transpose=transpose, return_x=return_x, squeeze=squeeze) + + +def find_eqpt(sys, x0, u0=None, y0=None, t=0, params=None, + iu=None, iy=None, ix=None, idx=None, dx0=None, + return_y=False, return_result=False): + """Find the equilibrium point for an input/output system. + + Returns the value of an equilibrium point given the initial state and + either input value or desired output value for the equilibrium point. + + Parameters + ---------- + x0 : list of initial state values + Initial guess for the value of the state near the equilibrium point. + u0 : list of input values, optional + If `y0` is not specified, sets the equilibrium value of the input. If + `y0` is given, provides an initial guess for the value of the input. + Can be omitted if the system does not have any inputs. + y0 : list of output values, optional + If specified, sets the desired values of the outputs at the + equilibrium point. + t : float, optional + Evaluation time, for time-varying systems + params : dict, optional + Parameter values for the system. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + iu : list of input indices, optional + If specified, only the inputs with the given indices will be fixed at + the specified values in solving for an equilibrium point. All other + inputs will be varied. Input indices can be listed in any order. + iy : list of output indices, optional + If specified, only the outputs with the given indices will be fixed at + the specified values in solving for an equilibrium point. All other + outputs will be varied. Output indices can be listed in any order. + ix : list of state indices, optional + If specified, states with the given indices will be fixed at the + specified values in solving for an equilibrium point. All other + states will be varied. State indices can be listed in any order. + dx0 : list of update values, optional + If specified, the value of update map must match the listed value + instead of the default value of 0. + idx : list of state indices, optional + If specified, state updates with the given indices will have their + update maps fixed at the values given in `dx0`. All other update + values will be ignored in solving for an equilibrium point. State + indices can be listed in any order. By default, all updates will be + fixed at `dx0` in searching for an equilibrium point. + return_y : bool, optional + If True, return the value of output at the equilibrium point. + return_result : bool, optional + If True, return the `result` option from the + :func:`scipy.optimize.root` function used to compute the equilibrium + point. + + Returns + ------- + xeq : array of states + Value of the states at the equilibrium point, or `None` if no + equilibrium point was found and `return_result` was False. + ueq : array of input values + Value of the inputs at the equilibrium point, or `None` if no + equilibrium point was found and `return_result` was False. + yeq : array of output values, optional + If `return_y` is True, returns the value of the outputs at the + equilibrium point, or `None` if no equilibrium point was found and + `return_result` was False. + result : :class:`scipy.optimize.OptimizeResult`, optional + If `return_result` is True, returns the `result` from the + :func:`scipy.optimize.root` function. + + Notes + ----- + For continuous time systems, equilibrium points are defined as points for + which the right hand side of the differential equation is zero: + :math:`f(t, x_e, u_e) = 0`. For discrete time systems, equilibrium points + are defined as points for which the right hand side of the difference + equation returns the current state: :math:`f(t, x_e, u_e) = x_e`. + + """ + from scipy.optimize import root + + # Figure out the number of states, inputs, and outputs + nstates = _find_size(sys.nstates, x0) + ninputs = _find_size(sys.ninputs, u0) + noutputs = _find_size(sys.noutputs, y0) + + # Convert x0, u0, y0 to arrays, if needed + if np.isscalar(x0): + x0 = np.ones((nstates,)) * x0 + if np.isscalar(u0): + u0 = np.ones((ninputs,)) * u0 + if np.isscalar(y0): + y0 = np.ones((ninputs,)) * y0 + + # Make sure the input arguments match the sizes of the system + if len(x0) != nstates or \ + (u0 is not None and len(u0) != ninputs) or \ + (y0 is not None and len(y0) != noutputs) or \ + (dx0 is not None and len(dx0) != nstates): + raise ValueError("Length of input arguments does not match system.") + + # Update the parameter values + sys._update_params(params) + + # Decide what variables to minimize + if all([x is None for x in (iu, iy, ix, idx)]): + # Special cases: either inputs or outputs are constrained + if y0 is None: + # Take u0 as fixed and minimize over x + if sys.isdtime(strict=True): + def state_rhs(z): return sys._rhs(t, z, u0) - z + else: + def state_rhs(z): return sys._rhs(t, z, u0) + + result = root(state_rhs, x0) + z = (result.x, u0, sys._out(t, result.x, u0)) + + else: + # Take y0 as fixed and minimize over x and u + if sys.isdtime(strict=True): + def rootfun(z): + x, u = np.split(z, [nstates]) + return np.concatenate( + (sys._rhs(t, x, u) - x, sys._out(t, x, u) - y0), + axis=0) + else: + def rootfun(z): + x, u = np.split(z, [nstates]) + return np.concatenate( + (sys._rhs(t, x, u), sys._out(t, x, u) - y0), axis=0) + + z0 = np.concatenate((x0, u0), axis=0) # Put variables together + result = root(rootfun, z0) # Find the eq point + x, u = np.split(result.x, [nstates]) # Split result back in two + z = (x, u, sys._out(t, x, u)) + + else: + # General case: figure out what variables to constrain + # Verify the indices we are using are all in range + if iu is not None: + iu = np.unique(iu) + if any([not isinstance(x, int) for x in iu]) or \ + (len(iu) > 0 and (min(iu) < 0 or max(iu) >= ninputs)): + assert ValueError("One or more input indices is invalid") + else: + iu = [] + + if iy is not None: + iy = np.unique(iy) + if any([not isinstance(x, int) for x in iy]) or \ + min(iy) < 0 or max(iy) >= noutputs: + assert ValueError("One or more output indices is invalid") + else: + iy = list(range(noutputs)) + + if ix is not None: + ix = np.unique(ix) + if any([not isinstance(x, int) for x in ix]) or \ + min(ix) < 0 or max(ix) >= nstates: + assert ValueError("One or more state indices is invalid") + else: + ix = [] + + if idx is not None: + idx = np.unique(idx) + if any([not isinstance(x, int) for x in idx]) or \ + min(idx) < 0 or max(idx) >= nstates: + assert ValueError("One or more deriv indices is invalid") + else: + idx = list(range(nstates)) + + # Construct the index lists for mapping variables and constraints + # + # The mechanism by which we implement the root finding function is to + # map the subset of variables we are searching over into the inputs + # and states, and then return a function that represents the equations + # we are trying to solve. + # + # To do this, we need to carry out the following operations: + # + # 1. Given the current values of the free variables (z), map them into + # the portions of the state and input vectors that are not fixed. + # + # 2. Compute the update and output maps for the input/output system + # and extract the subset of equations that should be equal to zero. + # + # We perform these functions by computing four sets of index lists: + # + # * state_vars: indices of states that are allowed to vary + # * input_vars: indices of inputs that are allowed to vary + # * deriv_vars: indices of derivatives that must be constrained + # * output_vars: indices of outputs that must be constrained + # + # This index lists can all be precomputed based on the `iu`, `iy`, + # `ix`, and `idx` lists that were passed as arguments to `find_eqpt` + # and were processed above. + + # Get the states and inputs that were not listed as fixed + state_vars = (range(nstates) if not len(ix) + else np.delete(np.array(range(nstates)), ix)) + input_vars = (range(ninputs) if not len(iu) + else np.delete(np.array(range(ninputs)), iu)) + + # Set the outputs and derivs that will serve as constraints + output_vars = np.array(iy) + deriv_vars = np.array(idx) + + # Verify that the number of degrees of freedom all add up correctly + num_freedoms = len(state_vars) + len(input_vars) + num_constraints = len(output_vars) + len(deriv_vars) + if num_constraints != num_freedoms: + warn("Number of constraints (%d) does not match number of degrees " + "of freedom (%d). Results may be meaningless." % + (num_constraints, num_freedoms)) + + # Make copies of the state and input variables to avoid overwriting + # and convert to floats (in case ints were used for initial conditions) + x = np.array(x0, dtype=float) + u = np.array(u0, dtype=float) + dx0 = np.array(dx0, dtype=float) if dx0 is not None \ + else np.zeros(x.shape) + + # Keep track of the number of states in the set of free variables + nstate_vars = len(state_vars) + + def rootfun(z): + # Map the vector of values into the states and inputs + x[state_vars] = z[:nstate_vars] + u[input_vars] = z[nstate_vars:] + + # Compute the update and output maps + dx = sys._rhs(t, x, u) - dx0 + if sys.isdtime(strict=True): + dx -= x + + # If no y0 is given, don't evaluate the output function + if y0 is None: + return dx[deriv_vars] + else: + dy = sys._out(t, x, u) - y0 + + # Map the results into the constrained variables + return np.concatenate((dx[deriv_vars], dy[output_vars]), axis=0) + + # Set the initial condition for the root finding algorithm + z0 = np.concatenate((x[state_vars], u[input_vars]), axis=0) + + # Finally, call the root finding function + result = root(rootfun, z0) + + # Extract out the results and insert into x and u + x[state_vars] = result.x[:nstate_vars] + u[input_vars] = result.x[nstate_vars:] + z = (x, u, sys._out(t, x, u)) + + # Return the result based on what the user wants and what we found + if not return_y: + z = z[0:2] # Strip y from result if not desired + if return_result: + # Return whatever we got, along with the result dictionary + return z + (result,) + elif result.success: + # Return the result of the optimization + return z + else: + # Something went wrong, don't return anything + return (None, None, None) if return_y else (None, None) + + +# Linearize an input/output system +def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): + """Linearize an input/output system at a given state and input. + + This function computes the linearization of an input/output system at a + given state and input value and returns a :class:`~control.StateSpace` + object. The evaluation point need not be an equilibrium point. + + Parameters + ---------- + sys : InputOutputSystem + The system to be linearized + xeq : array + The state at which the linearization will be evaluated (does not need + to be an equilibrium state). + ueq : array + The input at which the linearization will be evaluated (does not need + to correspond to an equlibrium state). + t : float, optional + The time at which the linearization will be computed (for time-varying + systems). + params : dict, optional + Parameter values for the systems. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + name : string, optional + Set the name of the linearized system. If not specified and + if `copy_names` is `False`, a generic name is generated + with a unique integer id. If `copy_names` is `True`, the new system + name is determined by adding the prefix and suffix strings in + config.defaults['namedio.linearized_system_name_prefix'] and + config.defaults['namedio.linearized_system_name_suffix'], with the + default being to add the suffix '$linearized'. + copy_names : bool, Optional + If True, Copy the names of the input signals, output signals, and + states to the linearized system. + + Returns + ------- + ss_sys : LinearIOSystem + The linearization of the system, as a :class:`~control.LinearIOSystem` + object (which is also a :class:`~control.StateSpace` object. + + Other Parameters + ---------------- + inputs : int, list of str or None, optional + Description of the system inputs. If not specified, the origional + system inputs are used. See :class:`InputOutputSystem` for more + information. + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. + """ + if not isinstance(sys, InputOutputSystem): + raise TypeError("Can only linearize InputOutputSystem types") + return sys.linearize(xeq, ueq, t=t, params=params, **kw) + + +def _find_size(sysval, vecval): + """Utility function to find the size of a system parameter + + If both parameters are not None, they must be consistent. + """ + if hasattr(vecval, '__len__'): + if sysval is not None and sysval != len(vecval): + raise ValueError("Inconsistent information to determine size " + "of system component") + return len(vecval) + # None or 0, which is a valid value for "a (sysval, ) vector of zeros". + if not vecval: + return 0 if sysval is None else sysval + elif sysval == 1: + # (1, scalar) is also a valid combination from legacy code + return 1 + raise ValueError("Can't determine size of system component.") + + +# Function to create an interconnected system +def interconnect( + syslist, connections=None, inplist=None, outlist=None, params=None, + check_unused=True, add_unused=False, ignore_inputs=None, + ignore_outputs=None, warn_duplicate=None, debug=False, **kwargs): + """Interconnect a set of input/output systems. + + This function creates a new system that is an interconnection of a set of + input/output systems. If all of the input systems are linear I/O systems + (type :class:`~control.LinearIOSystem`) then the resulting system will be + a linear interconnected I/O system (type :class:`~control.LinearICSystem`) + with the appropriate inputs, outputs, and states. Otherwise, an + interconnected I/O system (type :class:`~control.InterconnectedSystem`) + will be created. + + Parameters + ---------- + syslist : list of InputOutputSystems + The list of input/output systems to be connected + + connections : list of connections, optional + Description of the internal connections between the subsystems: + + [connection1, connection2, ...] + + Each connection is itself a list that describes an input to one of the + subsystems. The entries are of the form: + + [input-spec, output-spec1, output-spec2, ...] + + The input-spec can be in a number of different forms. The lowest + level representation is a tuple of the form `(subsys_i, inp_j)` + where `subsys_i` is the index into `syslist` and `inp_j` is the + index into the input vector for the subsystem. If the signal index + is omitted, then all subsystem inputs are used. If systems and + signals are given names, then the forms 'sys.sig' or ('sys', 'sig') + are also recognized. Finally, for multivariable systems the signal + index can be given as a list, for example '(subsys_i, [inp_j1, ..., + inp_jn])'; as a slice, for example, 'sys.sig[i:j]'; or as a base + name `sys.sig` (which matches `sys.sig[i]`). + + Similarly, each output-spec should describe an output signal from + one of the subsystems. The lowest level representation is a tuple + of the form `(subsys_i, out_j, gain)`. The input will be + constructed by summing the listed outputs after multiplying by the + gain term. If the gain term is omitted, it is assumed to be 1. If + the subsystem index `subsys_i` is omitted, then all outputs of the + subsystem are used. If systems and signals are given names, then + the form 'sys.sig', ('sys', 'sig') or ('sys', 'sig', gain) are also + recognized, and the special form '-sys.sig' can be used to specify + a signal with gain -1. Lists, slices, and base namess can also be + used, as long as the number of elements for each output spec + mataches the input spec. + + If omitted, the `interconnect` function will attempt to create the + interconnection map by connecting all signals with the same base names + (ignoring the system name). Specifically, for each input signal name + in the list of systems, if that signal name corresponds to the output + signal in any of the systems, it will be connected to that input (with + a summation across all signals if the output name occurs in more than + one system). + + The `connections` keyword can also be set to `False`, which will leave + the connection map empty and it can be specified instead using the + low-level :func:`~control.InterconnectedSystem.set_connect_map` + method. + + inplist : list of input connections, optional + List of connections for how the inputs for the overall system are + mapped to the subsystem inputs. The input specification is similar to + the form defined in the connection specification, except that + connections do not specify an input-spec, since these are the system + inputs. The entries for a connection are thus of the form: + + [input-spec1, input-spec2, ...] + + Each system input is added to the input for the listed subsystem. + If the system input connects to a subsystem with a single input, a + single input specification can be given (without the inner list). + + If omitted the `input` parameter will be used to identify the list + of input signals to the overall system. + + outlist : list of output connections, optional + List of connections for how the outputs from the subsystems are + mapped to overall system outputs. The output connection + description is the same as the form defined in the inplist + specification (including the optional gain term). Numbered outputs + must be chosen from the list of subsystem outputs, but named + outputs can also be contained in the list of subsystem inputs. + + If an output connection contains more than one signal specification, + then those signals are added together (multiplying by the any gain + term) to form the system output. + + If omitted, the output map can be specified using the + :func:`~control.InterconnectedSystem.set_output_map` method. + + inputs : int, list of str or None, optional + Description of the system inputs. This can be given as an integer + count or as a list of strings that name the individual signals. If an + integer count is specified, the names of the signal will be of the + form `s[i]` (where `s` is one of `u`, `y`, or `x`). If this parameter + is not given or given as `None`, the relevant quantity will be + determined when possible based on other information provided to + functions using the system. + + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. The + default is `None`, in which case the states will be given names of the + form '.', for each subsys in syslist and each + state_name of each subsys. + + params : dict, optional + Parameter values for the systems. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + + dt : timebase, optional + The timebase for the system, used to specify whether the system is + operating in continuous or discrete time. It can have the following + values: + + * dt = 0: continuous time system (default) + * dt > 0: discrete time system with sampling period 'dt' + * dt = True: discrete time with unspecified sampling period + * dt = None: no timebase specified + + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. + + check_unused : bool, optional + If True, check for unused sub-system signals. This check is + not done if connections is False, and neither input nor output + mappings are specified. + + add_unused : bool, optional + If True, subsystem signals that are not connected to other components + are added as inputs and outputs of the interconnected system. + + ignore_inputs : list of input-spec, optional + A list of sub-system inputs known not to be connected. This is + *only* used in checking for unused signals, and does not + disable use of the input. + + Besides the usual input-spec forms (see `connections`), an + input-spec can be just the signal base name, in which case all + signals from all sub-systems with that base name are + considered ignored. + + ignore_outputs : list of output-spec, optional + A list of sub-system outputs known not to be connected. This + is *only* used in checking for unused signals, and does not + disable use of the output. + + Besides the usual output-spec forms (see `connections`), an + output-spec can be just the signal base name, in which all + outputs from all sub-systems with that base name are + considered ignored. + + warn_duplicate : None, True, or False, optional + Control how warnings are generated if duplicate objects or names are + detected. In `None` (default), then warnings are generated for + systems that have non-generic names. If `False`, warnings are not + generated and if `True` then warnings are always generated. + + debug : bool, default=False + Print out information about how signals are being processed that + may be useful in understanding why something is not working. + + + Examples + -------- + >>> P = ct.rss(2, 2, 2, strictly_proper=True, name='P') + >>> C = ct.rss(2, 2, 2, name='C') + >>> T = ct.interconnect( + ... [P, C], + ... connections=[ + ... ['P.u[0]', 'C.y[0]'], ['P.u[1]', 'C.y[1]'], + ... ['C.u[0]', '-P.y[0]'], ['C.u[1]', '-P.y[1]']], + ... inplist=['C.u[0]', 'C.u[1]'], + ... outlist=['P.y[0]', 'P.y[1]'], + ... ) + + This expression can be simplified using either slice notation or + just signal basenames: + + >>> T = ct.interconnect( + ... [P, C], connections=[['P.u[:]', 'C.y[:]'], ['C.u', '-P.y']], + ... inplist='C.u', outlist='P.y[:]') + + or further simplified by omitting the input and output signal + specifications (since all inputs and outputs are used): + + >>> T = ct.interconnect( + ... [P, C], connections=[['P', 'C'], ['C', '-P']], + ... inplist=['C'], outlist=['P']) + + A feedback system can also be constructed using the + :func:`~control.summing_block` function and the ability to + automatically interconnect signals with the same names: + + >>> P = ct.tf(1, [1, 0], inputs='u', outputs='y') + >>> C = ct.tf(10, [1, 1], inputs='e', outputs='u') + >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') + >>> T = ct.interconnect([P, C, sumblk], inputs='r', outputs='y') + + Notes + ----- + If a system is duplicated in the list of systems to be connected, + a warning is generated and a copy of the system is created with the + name of the new system determined by adding the prefix and suffix + strings in config.defaults['namedio.linearized_system_name_prefix'] + and config.defaults['namedio.linearized_system_name_suffix'], with the + default being to add the suffix '$copy' to the system name. + + In addition to explicit lists of system signals, it is possible to + lists vectors of signals, using one of the following forms:: + + (subsys, [i1, ..., iN], gain) signals with indices i1, ..., in + 'sysname.signal[i:j]' range of signal names, i through j-1 + 'sysname.signal[:]' all signals with given prefix + + While in many Python functions tuples can be used in place of lists, + for the interconnect() function the only use of tuples should be in the + specification of an input- or output-signal via the tuple notation + `(subsys_i, signal_j, gain)` (where `gain` is optional). If you get an + unexpected error message about a specification being of the wrong type + or not being found, check to make sure you are not using a tuple where + you should be using a list. + + In addition to its use for general nonlinear I/O systems, the + :func:`~control.interconnect` function allows linear systems to be + interconnected using named signals (compared with the + :func:`~control.connect` function, which uses signal indices) and to be + treated as both a :class:`~control.StateSpace` system as well as an + :class:`~control.InputOutputSystem`. + + The `input` and `output` keywords can be used instead of `inputs` and + `outputs`, for more natural naming of SISO systems. + + """ + from .statesp import StateSpace, LinearIOSystem, LinearICSystem, \ + _convert_to_statespace + from .xferfcn import TransferFunction + + dt = kwargs.pop('dt', None) # by pass normal 'dt' processing + name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) + + if not check_unused and (ignore_inputs or ignore_outputs): + raise ValueError('check_unused is False, but either ' + + 'ignore_inputs or ignore_outputs non-empty') + + if connections is False and not inplist and not outlist \ + and not inputs and not outputs: + # user has disabled auto-connect, and supplied neither input + # nor output mappings; assume they know what they're doing + check_unused = False + + # If connections was not specified, set up default connection list + if connections is None: + # For each system input, look for outputs with the same name + connections = [] + for input_sys in syslist: + for input_name in input_sys.input_labels: + connect = [input_sys.name + "." + input_name] + for output_sys in syslist: + if input_name in output_sys.output_labels: + connect.append(output_sys.name + "." + input_name) + if len(connect) > 1: + connections.append(connect) + + auto_connect = True + + elif connections is False: + check_unused = False + # Use an empty connections list + connections = [] + + elif isinstance(connections, list) and \ + all([isinstance(cnxn, (str, tuple)) for cnxn in connections]): + # Special case where there is a single connection + connections = [connections] + + # If inplist/outlist is not present, try using inputs/outputs instead + inplist_none, outlist_none = False, False + if inplist is None: + inplist = inputs or [] + inplist_none = True # use to rewrite inputs below + if outlist is None: + outlist = outputs or [] + outlist_none = True # use to rewrite outputs below + + # Define a local debugging function + dprint = lambda s: None if not debug else print(s) + + # + # Pre-process connecton list + # + # Support for various "vector" forms of specifications is handled here, + # by expanding any specifications that refer to more than one signal. + # This includes signal lists such as ('sysname', ['sig1', 'sig2', ...]) + # as well as slice-based specifications such as 'sysname.signal[i:j]'. + # + dprint(f"Pre-processing connections:") + new_connections = [] + for connection in connections: + dprint(f" parsing {connection=}") + if not isinstance(connection, list): + raise ValueError( + f"invalid connection {connection}: should be a list") + # Parse and expand the input specification + input_spec = _parse_spec(syslist, connection[0], 'input') + input_spec_list = [input_spec] + + # Parse and expand the output specifications + output_specs_list = [[]] * len(input_spec_list) + for spec in connection[1:]: + output_spec = _parse_spec(syslist, spec, 'output') + output_specs_list[0].append(output_spec) + + # Create the new connection entry + for input_spec, output_specs in zip(input_spec_list, output_specs_list): + new_connection = [input_spec] + output_specs + dprint(f" adding {new_connection=}") + new_connections.append(new_connection) + connections = new_connections + + # + # Pre-process input connections list + # + # Similar to the connections list, we now handle "vector" forms of + # specifications in the inplist parameter. This needs to be handled + # here because the InterconnectedSystem constructor assumes that the + # number of elements in `inplist` will match the number of inputs for + # the interconnected system. + # + # If inplist_none is True then inplist is a copy of inputs and so we + # also have to be careful that if we encounter any multivariable + # signals, we need to update the input list. + # + dprint(f"Pre-processing input connections: {inplist}") + if not isinstance(inplist, list): + dprint(f" converting inplist to list") + inplist = [inplist] + new_inplist, new_inputs = [], [] if inplist_none else inputs + + # Go through the list of inputs and process each one + for iinp, connection in enumerate(inplist): + # Check for system name or signal names without a system name + if isinstance(connection, str) and len(connection.split('.')) == 1: + # Create an empty connections list to store matching connections + new_connections = [] + + # Get the signal/system name + sname = connection[1:] if connection[0] == '-' else connection + gain = -1 if connection[0] == '-' else 1 + + # Look for the signal name as a system input + found_system, found_signal = False, False + for isys, sys in enumerate(syslist): + # Look for matching signals (returns None if no matches + indices = sys._find_signals(sname, sys.input_index) + + # See what types of matches we found + if sname == sys.name: + # System name matches => use all inputs + for isig in range(sys.ninputs): + dprint(f" adding input {(isys, isig, gain)}") + new_inplist.append((isys, isig, gain)) + found_system = True + elif indices: + # Signal name matches => store new connections + new_connection = [] + for isig in indices: + dprint(f" collecting input {(isys, isig, gain)}") + new_connection.append((isys, isig, gain)) + + if len(new_connections) == 0: + # First time we have seen this signal => initalize + for cnx in new_connection: + new_connections.append([cnx]) + if inplist_none: + # See if we need to rewrite the inputs + if len(new_connection) != 1: + new_inputs += [ + sys.input_labels[i] for i in indices] + else: + new_inputs.append(inputs[iinp]) + else: + # Additional signal match found =. add to the list + for i, cnx in enumerate(new_connection): + new_connections[i].append(cnx) + found_signal = True + + if found_system and found_signal: + raise ValueError( + f"signal '{sname}' is both signal and system name") + elif found_signal: + dprint(f" adding inputs {new_connections}") + new_inplist += new_connections + elif not found_system: + raise ValueError("could not find signal %s" % sname) + else: + # Regular signal specification + if not isinstance(connection, list): + dprint(f" converting item to list") + connection = [connection] + for spec in connection: + isys, indices, gain = _parse_spec(syslist, spec, 'input') + for isig in indices: + dprint(f" adding input {(isys, isig, gain)}") + new_inplist.append((isys, isig, gain)) + inplist, inputs = new_inplist, new_inputs + dprint(f" {inplist=}\n {inputs=}") + + # + # Pre-process output list + # + # This is similar to the processing of the input list, but we need to + # additionally take into account the fact that you can list subsystem + # inputs as system outputs. + # + dprint(f"Pre-processing output connections: {outlist}") + if not isinstance(outlist, list): + dprint(f" converting outlist to list") + outlist = [outlist] + new_outlist, new_outputs = [], [] if outlist_none else outputs + for iout, connection in enumerate(outlist): + # Create an empty connection list + new_connections = [] + + # Check for system name or signal names without a system name + if isinstance(connection, str) and len(connection.split('.')) == 1: + # Get the signal/system name + sname = connection[1:] if connection[0] == '-' else connection + gain = -1 if connection[0] == '-' else 1 + + # Look for the signal name as a system output + found_system, found_signal = False, False + for osys, sys in enumerate(syslist): + indices = sys._find_signals(sname, sys.output_index) + if sname == sys.name: + # Use all outputs + for osig in range(sys.noutputs): + dprint(f" adding output {(osys, osig, gain)}") + new_outlist.append((osys, osig, gain)) + found_system = True + elif indices: + new_connection = [] + for osig in indices: + dprint(f" collecting output {(osys, osig, gain)}") + new_connection.append((osys, osig, gain)) + if len(new_connections) == 0: + for cnx in new_connection: + new_connections.append([cnx]) + if outlist_none: + # See if we need to rewrite the outputs + if len(new_connection) != 1: + new_outputs += [ + sys.output_labels[i] for i in indices] + else: + new_outputs.append(outputs[iout]) + else: + # Additional signal match found =. add to the list + for i, cnx in enumerate(new_connection): + new_connections[i].append(cnx) + found_signal = True + + if found_system and found_signal: + raise ValueError( + f"signal '{sname}' is both signal and system name") + elif found_signal: + dprint(f" adding outputs {new_connections}") + new_outlist += new_connections + elif not found_system: + raise ValueError("could not find signal %s" % sname) + else: + # Regular signal specification + if not isinstance(connection, list): + dprint(f" converting item to list") + connection = [connection] + for spec in connection: + try: + # First trying looking in the output signals + osys, indices, gain = _parse_spec(syslist, spec, 'output') + for osig in indices: + dprint(f" adding output {(osys, osig, gain)}") + new_outlist.append((osys, osig, gain)) + except ValueError: + # If not, see if we can find it in inputs + isys, indices, gain = _parse_spec( + syslist, spec, 'input or output', + dictname='input_index') + for isig in indices: + # Use string form to allow searching input list + dprint(f" adding input {(isys, isig, gain)}") + new_outlist.append( + (syslist[isys].name, + syslist[isys].input_labels[isig], gain)) + outlist, outputs = new_outlist, new_outputs + dprint(f" {outlist=}\n {outputs=}") + + # Make sure inputs and outputs match inplist outlist, if specified + if inputs and ( + isinstance(inputs, (list, tuple)) and len(inputs) != len(inplist) + or isinstance(inputs, int) and inputs != len(inplist)): + raise ValueError("`inputs` incompatible with `inplist`") + if outputs and ( + isinstance(outputs, (list, tuple)) and len(outputs) != len(outlist) + or isinstance(outputs, int) and outputs != len(outlist)): + raise ValueError("`outputs` incompatible with `outlist`") + + newsys = InterconnectedSystem( + syslist, connections=connections, inplist=inplist, + outlist=outlist, inputs=inputs, outputs=outputs, states=states, + params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, + **kwargs) + + # See if we should add any signals + if add_unused: + # Get all unused signals + dropped_inputs, dropped_outputs = newsys.check_unused_signals( + ignore_inputs, ignore_outputs, warning=False) + + # Add on any unused signals that we aren't ignoring + for isys, isig in dropped_inputs: + inplist.append((isys, isig)) + inputs.append(newsys.syslist[isys].input_labels[isig]) + for osys, osig in dropped_outputs: + outlist.append((osys, osig)) + outputs.append(newsys.syslist[osys].output_labels[osig]) + + # Rebuild the system with new inputs/outputs + newsys = InterconnectedSystem( + syslist, connections=connections, inplist=inplist, + outlist=outlist, inputs=inputs, outputs=outputs, states=states, + params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, + **kwargs) + + # check for implicitly dropped signals + if check_unused: + newsys.check_unused_signals(ignore_inputs, ignore_outputs) + + # If all subsystems are linear systems, maintain linear structure + if all([isinstance(sys, LinearIOSystem) for sys in newsys.syslist]): + return LinearICSystem(newsys, None) + + return newsys + + +# Utility function to allow lists states, inputs +def _concatenate_list_elements(X, name='X'): + # If we were passed a list, concatenate the elements together + if isinstance(X, (tuple, list)): + X_list = [] + for i, x in enumerate(X): + x = np.array(x).reshape(-1) # convert everyting to 1D array + X_list += x.tolist() # add elements to initial state + return np.array(X_list) + + # Otherwise, do nothing + return X diff --git a/control/optimal.py b/control/optimal.py index 50145324f..8b7a54713 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -24,7 +24,7 @@ from . import config from .exception import ControlNotImplemented -from .namedio import _process_indices, _process_labels, \ +from .iosys import _process_indices, _process_labels, \ _process_control_disturbance_indices diff --git a/control/pzmap.py b/control/pzmap.py index 09f58b79c..5ee3d37c7 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -42,7 +42,7 @@ from numpy import real, imag, linspace, exp, cos, sin, sqrt from math import pi from .lti import LTI -from .namedio import isdtime, isctime +from .iosys import isdtime, isctime from .grid import sgrid, zgrid, nogrid from . import config diff --git a/control/rlocus.py b/control/rlocus.py index 60565d48d..c92535101 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -55,7 +55,7 @@ import matplotlib.pyplot as plt from numpy import array, poly1d, row_stack, zeros_like, real, imag import scipy.signal # signal processing toolbox -from .namedio import isdtime +from .iosys import isdtime from .xferfcn import _convert_to_transfer_function from .exception import ControlMIMONotImplemented from .sisotool import _SisotoolUpdate diff --git a/control/sisotool.py b/control/sisotool.py index e1cfbaf67..1a06ef60e 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -3,11 +3,11 @@ from control.exception import ControlMIMONotImplemented from .freqplot import bode_plot from .timeresp import step_response -from .namedio import common_timebase, isctime, isdtime +from .iosys import common_timebase, isctime, isdtime from .xferfcn import tf -from .iosys import ss +from .statesp import ss, tf2io, summing_junction from .bdalg import append, connect -from .iosys import ss, tf2io, summing_junction, interconnect +from .nlsys import interconnect from control.statesp import _convert_to_statespace from . import config import numpy as np diff --git a/control/statefbk.py b/control/statefbk.py index 50bad75c1..d2772fcb6 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -48,9 +48,9 @@ from .mateqn import care, dare, _check_shape from .statesp import StateSpace, _ssmatrix, _convert_to_statespace from .lti import LTI -from .namedio import isdtime, isctime, _process_indices, _process_labels -from .iosys import InputOutputSystem, NonlinearIOSystem, LinearIOSystem, \ - interconnect, ss +from .iosys import isdtime, isctime, _process_indices, _process_labels +from .nlsys import InputOutputSystem, NonlinearIOSystem, interconnect +from .statesp import LinearIOSystem, ss from .exception import ControlSlycot, ControlArgument, ControlDimension, \ ControlNotImplemented from .config import _process_legacy_keyword diff --git a/control/statesp.py b/control/statesp.py index ae2c32c50..30480f491 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -63,8 +63,9 @@ from .exception import ControlSlycot from .frdata import FrequencyResponseData from .lti import LTI, _process_frequency_response -from .namedio import common_timebase, isdtime, _process_namedio_keywords, \ - _process_dt_keyword, NamedIOSystem +from .iosys import NamedIOSystem, common_timebase, isdtime, \ + _process_namedio_keywords, _process_dt_keyword, _process_signal_list +from .nlsys import InputOutputSystem, NonlinearIOSystem, InterconnectedSystem from . import config from copy import deepcopy @@ -73,7 +74,9 @@ except ImportError: ab13dd = None -__all__ = ['StateSpace', 'tf2ss', 'ssdata', 'linfnorm'] +__all__ = ['StateSpace', 'LinearIOSystem', 'LinearICSystem', 'ss2io', + 'tf2io', 'tf2ss', 'ssdata', 'linfnorm', 'ss', 'rss', 'drss', + 'summing_junction'] # Define module default parameter values _statesp_defaults = { @@ -84,78 +87,6 @@ } -def _ssmatrix(data, axis=1): - """Convert argument to a (possibly empty) 2D state space matrix. - - The axis keyword argument makes it convenient to specify that if the input - is a vector, it is a row (axis=1) or column (axis=0) vector. - - Parameters - ---------- - data : array, list, or string - Input data defining the contents of the 2D array - axis : 0 or 1 - If input data is 1D, which axis to use for return object. The default - is 1, corresponding to a row matrix. - - Returns - ------- - arr : 2D array, with shape (0, 0) if a is empty - - """ - # Convert the data into an array - arr = np.array(data, dtype=float) - ndim = arr.ndim - shape = arr.shape - - # Change the shape of the array into a 2D array - if (ndim > 2): - raise ValueError("state-space matrix must be 2-dimensional") - - elif (ndim == 2 and shape == (1, 0)) or \ - (ndim == 1 and shape == (0, )): - # Passed an empty matrix or empty vector; change shape to (0, 0) - shape = (0, 0) - - elif ndim == 1: - # Passed a row or column vector - shape = (1, shape[0]) if axis == 1 else (shape[0], 1) - - elif ndim == 0: - # Passed a constant; turn into a matrix - shape = (1, 1) - - # Create the actual object used to store the result - return arr.reshape(shape) - - -def _f2s(f): - """Format floating point number f for StateSpace._repr_latex_. - - Numbers are converted to strings with statesp.latex_num_format. - - Inserts column separators, etc., as needed. - """ - fmt = "{:" + config.defaults['statesp.latex_num_format'] + "}" - sraw = fmt.format(f) - # significand-exponent - se = sraw.lower().split('e') - # whole-fraction - wf = se[0].split('.') - s = wf[0] - if wf[1:]: - s += r'.&\hspace{{-1em}}{frac}'.format(frac=wf[1]) - else: - s += r'\phantom{.}&\hspace{-1em}' - - if se[1:]: - s += r'&\hspace{{-1em}}\cdot10^{{{:d}}}'.format(int(se[1])) - else: - s += r'&\hspace{-1em}\phantom{\cdot}' - - return s - - class StateSpace(LTI): r"""StateSpace(A, B, C, D[, dt]) @@ -1503,322 +1434,397 @@ def output(self, t, x, u=None, params=None): + (self.D @ u).reshape((-1,)) # return as row vector -# TODO: add discrete time check -def _convert_to_statespace(sys, use_prefix_suffix=False): - """Convert a system to state space form (if needed). +class LinearIOSystem(InputOutputSystem, StateSpace): + """Input/output representation of a linear (state space) system. - If sys is already a state space, then it is returned. If sys is a - transfer function object, then it is converted to a state space and - returned. + This class is used to implement a system that is a linear state + space system (defined by the StateSpace system object). - Note: no renaming of inputs and outputs is performed; this should be done - by the calling function. + Parameters + ---------- + linsys : StateSpace or TransferFunction + LTI system to be converted. + inputs : int, list of str or None, optional + New system input labels (defaults to linsys input labels). + outputs : int, list of str or None, optional + New system output labels (defaults to linsys output labels). + states : int, list of str, or None, optional + New system input labels (defaults to linsys output labels). + dt : None, True or float, optional + System timebase. 0 (default) indicates continuous time, True indicates + discrete time with unspecified sampling time, positive number is + discrete time with specified sampling time, None indicates unspecified + timebase (either continuous or discrete time). + name : string, optional + System name (used for specifying signals). If unspecified, a + generic name is generated with a unique integer id. + params : dict, optional + Parameter values for the systems. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + + Attributes + ---------- + ninputs, noutputs, nstates, dt, etc + See :class:`InputOutputSystem` for inherited attributes. + + A, B, C, D + See :class:`~control.StateSpace` for inherited attributes. + + See Also + -------- + InputOutputSystem : Input/output system class. """ - from .xferfcn import TransferFunction - import itertools + def __init__(self, linsys, **kwargs): + """Create an I/O system from a state space linear system. - if isinstance(sys, StateSpace): - return sys + Converts a :class:`~control.StateSpace` system into an + :class:`~control.InputOutputSystem` with the same inputs, outputs, and + states. The new system can be a continuous or discrete time system. - elif isinstance(sys, TransferFunction): - # Make sure the transfer function is proper - if any([[len(num) for num in col] for col in sys.num] > - [[len(num) for num in col] for col in sys.den]): - raise ValueError("Transfer function is non-proper; can't " - "convert to StateSpace system.") + """ + from .xferfcn import TransferFunction + + if isinstance(linsys, TransferFunction): + # Convert system to StateSpace + linsys = _convert_to_statespace(linsys) - try: - from slycot import td04ad + elif not isinstance(linsys, StateSpace): + raise TypeError("Linear I/O system must be a state space " + "or transfer function object") - # Change the numerator and denominator arrays so that the transfer - # function matrix has a common denominator. - # matrices are also sized/padded to fit td04ad - num, den, denorder = sys.minreal()._common_den() + # Process keyword arguments + name, inputs, outputs, states, dt = _process_namedio_keywords( + kwargs, linsys) - # transfer function to state space conversion now should work! - ssout = td04ad('C', sys.ninputs, sys.noutputs, - denorder, den, num, tol=0) + # Create the I/O system object + # Note: don't use super() to override StateSpace MRO + InputOutputSystem.__init__( + self, inputs=inputs, outputs=outputs, states=states, + params=None, dt=dt, name=name, **kwargs) - states = ssout[0] - newsys = StateSpace( - ssout[1][:states, :states], ssout[2][:states, :sys.ninputs], - ssout[3][:sys.noutputs, :states], ssout[4], sys.dt) + # Initalize additional state space variables + StateSpace.__init__( + self, linsys, remove_useless_states=False, init_namedio=False) - except ImportError: - # No Slycot. Scipy tf->ss can't handle MIMO, but static - # MIMO is an easy special case we can check for here - maxn = max(max(len(n) for n in nrow) - for nrow in sys.num) - maxd = max(max(len(d) for d in drow) - for drow in sys.den) - if 1 == maxn and 1 == maxd: - D = empty((sys.noutputs, sys.ninputs), dtype=float) - for i, j in itertools.product(range(sys.noutputs), - range(sys.ninputs)): - D[i, j] = sys.num[i][j][0] / sys.den[i][j][0] - newsys = StateSpace([], [], [], D, sys.dt) - else: - if sys.ninputs != 1 or sys.noutputs != 1: - raise TypeError("No support for MIMO without slycot") + # When sampling a LinearIO system, return a LinearIOSystem + def sample(self, *args, **kwargs): + return LinearIOSystem(StateSpace.sample(self, *args, **kwargs)) - # TODO: do we want to squeeze first and check dimenations? - # I think this will fail if num and den aren't 1-D after - # the squeeze - A, B, C, D = \ - sp.signal.tf2ss(squeeze(sys.num), squeeze(sys.den)) - newsys = StateSpace(A, B, C, D, sys.dt) + sample.__doc__ = StateSpace.sample.__doc__ - # Copy over the signal (and system) names - newsys._copy_names( - sys, - prefix_suffix_name='converted' if use_prefix_suffix else None) - return newsys + # The following text needs to be replicated from StateSpace in order for + # this entry to show up properly in sphinx doccumentation (not sure why, + # but it was the only way to get it to work). + # + #: Deprecated attribute; use :attr:`nstates` instead. + #: + #: The ``state`` attribute was used to store the number of states for : a + #: state space system. It is no longer used. If you need to access the + #: number of states, use :attr:`nstates`. + states = property(StateSpace._get_states, StateSpace._set_states) - elif isinstance(sys, FrequencyResponseData): - raise TypeError("Can't convert FRD to StateSpace system.") + def _update_params(self, params=None, warning=True): + # Parameters not supported; issue a warning + if params and warning: + warn("Parameters passed to LinearIOSystems are ignored.") - # If this is a matrix, try to create a constant feedthrough - try: - D = _ssmatrix(np.atleast_2d(sys)) - return StateSpace([], [], [], D, dt=None) + def _rhs(self, t, x, u): + # Convert input to column vector and then change output to 1D array + xdot = self.A @ np.reshape(x, (-1, 1)) \ + + self.B @ np.reshape(u, (-1, 1)) + return np.array(xdot).reshape((-1,)) - except Exception: - raise TypeError("Can't convert given type to StateSpace system.") + def _out(self, t, x, u): + # Convert input to column vector and then change output to 1D array + y = self.C @ np.reshape(x, (-1, 1)) \ + + self.D @ np.reshape(u, (-1, 1)) + return np.array(y).reshape((-1,)) -# TODO: add discrete time option -def _rss_generate( - states, inputs, outputs, cdtype, strictly_proper=False, name=None): - """Generate a random state space. + def __repr__(self): + # Need to define so that I/O system gets used instead of StateSpace + return InputOutputSystem.__repr__(self) - This does the actual random state space generation expected from rss and - drss. cdtype is 'c' for continuous systems and 'd' for discrete systems. + def __str__(self): + return InputOutputSystem.__str__(self) + "\n\n" \ + + StateSpace.__str__(self) - """ - # Probability of repeating a previous root. - pRepeat = 0.05 - # Probability of choosing a real root. Note that when choosing a complex - # root, the conjugate gets chosen as well. So the expected proportion of - # real roots is pReal / (pReal + 2 * (1 - pReal)). - pReal = 0.6 - # Probability that an element in B or C will not be masked out. - pBCmask = 0.8 - # Probability that an element in D will not be masked out. - pDmask = 0.3 - # Probability that D = 0. - pDzero = 0.5 +class LinearICSystem(InterconnectedSystem, LinearIOSystem): - # Check for valid input arguments. - if states < 1 or states % 1: - raise ValueError("states must be a positive integer. states = %g." % - states) - if inputs < 1 or inputs % 1: - raise ValueError("inputs must be a positive integer. inputs = %g." % - inputs) - if outputs < 1 or outputs % 1: - raise ValueError("outputs must be a positive integer. outputs = %g." % - outputs) - if cdtype not in ['c', 'd']: - raise ValueError("cdtype must be `c` or `d`") + """Interconnection of a set of linear input/output systems. - # Make some poles for A. Preallocate a complex array. - poles = zeros(states) + zeros(states) * 0.j - i = 0 + This class is used to implement a system that is an interconnection of + linear input/output systems. It has all of the structure of an + :class:`~control.InterconnectedSystem`, but also maintains the requirement + elements of :class:`~control.LinearIOSystem`, including the + :class:`StateSpace` class structure, allowing it to be passed to functions + that expect a :class:`StateSpace` system. - while i < states: - if rand() < pRepeat and i != 0 and i != states - 1: - # Small chance of copying poles, if we're not at the first or last - # element. - if poles[i-1].imag == 0: - # Copy previous real pole. - poles[i] = poles[i-1] - i += 1 - else: - # Copy previous complex conjugate pair of poles. - poles[i:i+2] = poles[i-2:i] - i += 2 - elif rand() < pReal or i == states - 1: - # No-oscillation pole. - if cdtype == 'c': - poles[i] = -exp(randn()) + 0.j - else: - poles[i] = 2. * rand() - 1. - i += 1 - else: - # Complex conjugate pair of oscillating poles. - if cdtype == 'c': - poles[i] = complex(-exp(randn()), 3. * exp(randn())) - else: - mag = rand() - phase = 2. * math.pi * rand() - poles[i] = complex(mag * cos(phase), mag * sin(phase)) - poles[i+1] = complex(poles[i].real, -poles[i].imag) - i += 2 + This class is generated using :func:`~control.interconnect` and + not called directly. - # Now put the poles in A as real blocks on the diagonal. - A = zeros((states, states)) - i = 0 - while i < states: - if poles[i].imag == 0: - A[i, i] = poles[i].real - i += 1 - else: - A[i, i] = A[i+1, i+1] = poles[i].real - A[i, i+1] = poles[i].imag - A[i+1, i] = -poles[i].imag - i += 2 - # Finally, apply a transformation so that A is not block-diagonal. - while True: - T = randn(states, states) - try: - A = solve(T, A) @ T # A = T \ A @ T - break - except LinAlgError: - # In the unlikely event that T is rank-deficient, iterate again. - pass + """ - # Make the remaining matrices. - B = randn(states, inputs) - C = randn(outputs, states) - D = randn(outputs, inputs) + def __init__(self, io_sys, ss_sys=None): + if not isinstance(io_sys, InterconnectedSystem): + raise TypeError("First argument must be an interconnected system.") + + # Create the (essentially empty) I/O system object + InputOutputSystem.__init__( + self, name=io_sys.name, params=io_sys.params) + + # Copy over the named I/O system attributes + self.syslist = io_sys.syslist + self.ninputs, self.input_index = io_sys.ninputs, io_sys.input_index + self.noutputs, self.output_index = io_sys.noutputs, io_sys.output_index + self.nstates, self.state_index = io_sys.nstates, io_sys.state_index + self.dt = io_sys.dt + + # Copy over the attributes from the interconnected system + self.syslist_index = io_sys.syslist_index + self.state_offset = io_sys.state_offset + self.input_offset = io_sys.input_offset + self.output_offset = io_sys.output_offset + self.connect_map = io_sys.connect_map + self.input_map = io_sys.input_map + self.output_map = io_sys.output_map + self.params = io_sys.params + + # If we didnt' get a state space system, linearize the full system + # TODO: this could be replaced with a direct computation (someday) + if ss_sys is None: + ss_sys = self.linearize(0, 0) + + # Initialize the state space attributes + if isinstance(ss_sys, StateSpace): + # Make sure the dimensions match + if io_sys.ninputs != ss_sys.ninputs or \ + io_sys.noutputs != ss_sys.noutputs or \ + io_sys.nstates != ss_sys.nstates: + raise ValueError("System dimensions for first and second " + "arguments must match.") + StateSpace.__init__( + self, ss_sys, remove_useless_states=False, init_namedio=False) - # Make masks to zero out some of the elements. - while True: - Bmask = rand(states, inputs) < pBCmask - if any(Bmask): # Retry if we get all zeros. - break - while True: - Cmask = rand(outputs, states) < pBCmask - if any(Cmask): # Retry if we get all zeros. - break - if rand() < pDzero: - Dmask = zeros((outputs, inputs)) - else: - Dmask = rand(outputs, inputs) < pDmask + else: + raise TypeError("Second argument must be a state space system.") - # Apply masks. - B = B * Bmask - C = C * Cmask - D = D * Dmask if not strictly_proper else zeros(D.shape) + # The following text needs to be replicated from StateSpace in order for + # this entry to show up properly in sphinx doccumentation (not sure why, + # but it was the only way to get it to work). + # + #: Deprecated attribute; use :attr:`nstates` instead. + #: + #: The ``state`` attribute was used to store the number of states for : a + #: state space system. It is no longer used. If you need to access the + #: number of states, use :attr:`nstates`. + states = property(StateSpace._get_states, StateSpace._set_states) - if cdtype == 'c': - ss_args = (A, B, C, D) - else: - ss_args = (A, B, C, D, True) - return StateSpace(*ss_args, name=name) +# Define a state space object that is an I/O system +def ss(*args, **kwargs): + r"""ss(A, B, C, D[, dt]) -# Convert a MIMO system to a SISO system -# TODO: add discrete time check -def _mimo2siso(sys, input, output, warn_conversion=False): - # pylint: disable=W0622 - """ - Convert a MIMO system to a SISO system. (Convert a system with multiple - inputs and/or outputs, to a system with a single input and output.) + Create a state space system. - The input and output that are used in the SISO system can be selected - with the parameters ``input`` and ``output``. All other inputs are set - to 0, all other outputs are ignored. + The function accepts either 1, 2, 4 or 5 parameters: - If ``sys`` is already a SISO system, it will be returned unaltered. + ``ss(sys)`` + Convert a linear system into space system form. Always creates a + new system, even if sys is already a state space system. + + ``ss(updfcn, outfcn)`` + Create a nonlinear input/output system with update function ``updfcn`` + and output function ``outfcn``. See :class:`NonlinearIOSystem` for + more information. + + ``ss(A, B, C, D)`` + Create a state space system from the matrices of its state and + output equations: + + .. math:: + + dx/dt &= A x + B u \\ + y &= C x + D u + + ``ss(A, B, C, D, dt)`` + Create a discrete-time state space system from the matrices of + its state and output equations: + + .. math:: + + x[k+1] &= A x[k] + B u[k] \\ + y[k] &= C x[k] + D u[k] + + The matrices can be given as *array like* data types or strings. + + ``ss(args, inputs=['u1', ..., 'up'], outputs=['y1', ..., 'yq'], states=['x1', ..., 'xn'])`` + Create a system with named input, output, and state signals. Parameters ---------- - sys : StateSpace - Linear (MIMO) system that should be converted. - input : int - Index of the input that will become the SISO system's only input. - output : int - Index of the output that will become the SISO system's only output. - warn_conversion : bool, optional - If `True`, print a message when sys is a MIMO system, - warning that a conversion will take place. Default is False. + sys : StateSpace or TransferFunction + A linear system. + A, B, C, D : array_like or string + System, control, output, and feed forward matrices. + dt : None, True or float, optional + System timebase. 0 (default) indicates continuous + time, True indicates discrete time with unspecified sampling + time, positive number is discrete time with specified + sampling time, None indicates unspecified timebase (either + continuous or discrete time). + inputs, outputs, states : str, or list of str, optional + List of strings that name the individual signals. If this parameter + is not given or given as `None`, the signal names will be of the + form `s[i]` (where `s` is one of `u`, `y`, or `x`). See + :class:`InputOutputSystem` for more information. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. Returns - sys : StateSpace - The converted (SISO) system. + ------- + out: :class:`LinearIOSystem` + Linear input/output system. + + Raises + ------ + ValueError + If matrix sizes are not self-consistent. + + See Also + -------- + tf + ss2tf + tf2ss + + Examples + -------- + Create a Linear I/O system object from matrices. + + >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) + + Convert a TransferFunction to a StateSpace object. + + >>> sys_tf = ct.tf([2.], [1., 3]) + >>> sys2 = ct.ss(sys_tf) + """ - if not (isinstance(input, int) and isinstance(output, int)): - raise TypeError("Parameters ``input`` and ``output`` must both " - "be integer numbers.") - if not (0 <= input < sys.ninputs): - raise ValueError("Selected input does not exist. " - "Selected input: {sel}, " - "number of system inputs: {ext}." - .format(sel=input, ext=sys.ninputs)) - if not (0 <= output < sys.noutputs): - raise ValueError("Selected output does not exist. " - "Selected output: {sel}, " - "number of system outputs: {ext}." - .format(sel=output, ext=sys.noutputs)) - # Convert sys to SISO if necessary - if sys.ninputs > 1 or sys.noutputs > 1: - if warn_conversion: - warn("Converting MIMO system to SISO system. " - "Only input {i} and output {o} are used." - .format(i=input, o=output)) - # $X = A*X + B*U - # Y = C*X + D*U - new_B = sys.B[:, input] - new_C = sys.C[output, :] - new_D = sys.D[output, input] - sys = StateSpace(sys.A, new_B, new_C, new_D, sys.dt, - name=sys.name, - inputs=sys.input_labels[input], outputs=sys.output_labels[output]) + # See if this is a nonlinear I/O system + if len(args) > 0 and (hasattr(args[0], '__call__') or args[0] is None) \ + and not isinstance(args[0], (InputOutputSystem, LTI)): + # Function as first (or second) argument => assume nonlinear IO system + return NonlinearIOSystem(*args, **kwargs) + + elif len(args) == 4 or len(args) == 5: + # Create a state space function from A, B, C, D[, dt] + sys = LinearIOSystem(StateSpace(*args, **kwargs)) + + elif len(args) == 1: + sys = args[0] + if isinstance(sys, LTI): + # Check for system with no states and specified state names + if sys.nstates is None and 'states' in kwargs: + warn("state labels specified for " + "non-unique state space realization") + + # Create a state space system from an LTI system + sys = LinearIOSystem( + _convert_to_statespace( + sys, + use_prefix_suffix=not sys._generic_name_check()), + **kwargs) + + else: + raise TypeError("ss(sys): sys must be a StateSpace or " + "TransferFunction object. It is %s." % type(sys)) + else: + raise TypeError( + "Needs 1, 4, or 5 arguments; received %i." % len(args)) return sys -def _mimo2simo(sys, input, warn_conversion=False): - # pylint: disable=W0622 - """ - Convert a MIMO system to a SIMO system. (Convert a system with multiple - inputs and/or outputs, to a system with a single input but possibly - multiple outputs.) +# Convert a state space system into an input/output system (wrapper) +def ss2io(*args, **kwargs): + return LinearIOSystem(*args, **kwargs) +ss2io.__doc__ = LinearIOSystem.__init__.__doc__ - The input that is used in the SIMO system can be selected with the - parameter ``input``. All other inputs are set to 0, all other - outputs are ignored. - If ``sys`` is already a SIMO system, it will be returned unaltered. +# Convert a transfer function into an input/output system (wrapper) +def tf2io(*args, **kwargs): + """tf2io(sys[, ...]) + + Convert a transfer function into an I/O system + + The function accepts either 1 or 2 parameters: + + ``tf2io(sys)`` + Convert a linear system into space space form. Always creates + a new system, even if sys is already a StateSpace object. + + ``tf2io(num, den)`` + Create a linear I/O system from its numerator and denominator + polynomial coefficients. + + For details see: :func:`tf` Parameters ---------- - sys: StateSpace - Linear (MIMO) system that should be converted. - input: int - Index of the input that will become the SIMO system's only input. - warn_conversion: bool - If True: print a warning message when sys is a MIMO system. - Warn that a conversion will take place. + sys : LTI (StateSpace or TransferFunction) + A linear system. + num : array_like, or list of list of array_like + Polynomial coefficients of the numerator. + den : array_like, or list of list of array_like + Polynomial coefficients of the denominator. Returns ------- - sys: StateSpace - The converted (SIMO) system. + out : LinearIOSystem + New I/O system (in state space form). + + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals of the transformed + system. If not given, the inputs and outputs are the same as the + original system. + name : string, optional + System name. If unspecified, a generic name is generated + with a unique integer id. + + Raises + ------ + ValueError + if `num` and `den` have invalid or unequal dimensions, or if an + invalid number of arguments is passed in. + TypeError + if `num` or `den` are of incorrect type, or if sys is not a + TransferFunction object. + + See Also + -------- + ss2io + tf2ss + + Examples + -------- + >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] + >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] + >>> sys1 = ct.tf2ss(num, den) + + >>> sys_tf = ct.tf(num, den) + >>> G = ct.tf2ss(sys_tf) + >>> G.ninputs, G.noutputs, G.nstates + (2, 2, 8) + """ - if not (isinstance(input, int)): - raise TypeError("Parameter ``input`` be an integer number.") - if not (0 <= input < sys.ninputs): - raise ValueError("Selected input does not exist. " - "Selected input: {sel}, " - "number of system inputs: {ext}." - .format(sel=input, ext=sys.ninputs)) - # Convert sys to SISO if necessary - if sys.ninputs > 1: - if warn_conversion: - warn("Converting MIMO system to SIMO system. " - "Only input {i} is used." .format(i=input)) - # $X = A*X + B*U - # Y = C*X + D*U - new_B = sys.B[:, input:input+1] - new_D = sys.D[:, input:input+1] - sys = StateSpace(sys.A, new_B, sys.C, new_D, sys.dt, - name=sys.name, - inputs=sys.input_labels[input], outputs=sys.output_labels) + # Convert the system to a state space system + linsys = tf2ss(*args) - return sys + # Now convert the state space system to an I/O system + return LinearIOSystem(linsys, **kwargs) def tf2ss(*args, **kwargs): @@ -1982,3 +1988,626 @@ def linfnorm(sys, tol=1e-10): fpeak /= sys.dt return gpeak, fpeak + + +def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): + """Create a stable random state space object. + + Parameters + ---------- + inputs : int, list of str, or None + Description of the system inputs. This can be given as an integer + count or as a list of strings that name the individual signals. If an + integer count is specified, the names of the signal will be of the + form `s[i]` (where `s` is one of `u`, `y`, or `x`). + outputs : int, list of str, or None + Description of the system outputs. Same format as `inputs`. + states : int, list of str, or None + Description of the system states. Same format as `inputs`. + strictly_proper : bool, optional + If set to 'True', returns a proper system (no direct term). + dt : None, True or float, optional + System timebase. 0 (default) indicates continuous + time, True indicates discrete time with unspecified sampling + time, positive number is discrete time with specified + sampling time, None indicates unspecified timebase (either + continuous or discrete time). + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. + + Returns + ------- + sys : LinearIOSystem + The randomly created linear system. + + Raises + ------ + ValueError + if any input is not a positive integer. + + Notes + ----- + If the number of states, inputs, or outputs is not specified, then the + missing numbers are assumed to be 1. If dt is not specified or is given + as 0 or None, the poles of the returned system will always have a + negative real part. If dt is True or a postive float, the poles of the + returned system will have magnitude less than 1. + + """ + # Process keyword arguments + kwargs.update({'states': states, 'outputs': outputs, 'inputs': inputs}) + name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) + + # Figure out the size of the sytem + nstates, _ = _process_signal_list(states) + ninputs, _ = _process_signal_list(inputs) + noutputs, _ = _process_signal_list(outputs) + + sys = _rss_generate( + nstates, ninputs, noutputs, 'c' if not dt else 'd', name=name, + strictly_proper=strictly_proper) + + return LinearIOSystem( + sys, name=name, states=states, inputs=inputs, outputs=outputs, dt=dt, + **kwargs) + + +def drss(*args, **kwargs): + """ + drss([states, outputs, inputs, strictly_proper]) + + Create a stable, discrete-time, random state space system + + Create a stable *discrete time* random state space object. This + function calls :func:`rss` using either the `dt` keyword provided by + the user or `dt=True` if not specified. + + Examples + -------- + >>> G = ct.drss(states=4, outputs=2, inputs=1) + >>> G.ninputs, G.noutputs, G.nstates + (1, 2, 4) + >>> G.isdtime() + True + + + """ + # Make sure the timebase makes sense + if 'dt' in kwargs: + dt = kwargs['dt'] + + if dt == 0: + raise ValueError("drss called with continuous timebase") + elif dt is None: + warn("drss called with unspecified timebase; " + "system may be interpreted as continuous time") + kwargs['dt'] = True # force rss to generate discrete time sys + else: + dt = True + kwargs['dt'] = True + + # Create the system + sys = rss(*args, **kwargs) + + # Reset the timebase (in case it was specified as None) + sys.dt = dt + + return sys + + +# Summing junction +def summing_junction( + inputs=None, output=None, dimension=None, prefix='u', **kwargs): + """Create a summing junction as an input/output system. + + This function creates a static input/output system that outputs the sum of + the inputs, potentially with a change in sign for each individual input. + The input/output system that is created by this function can be used as a + component in the :func:`~control.interconnect` function. + + Parameters + ---------- + inputs : int, string or list of strings + Description of the inputs to the summing junction. This can be given + as an integer count, a string, or a list of strings. If an integer + count is specified, the names of the input signals will be of the form + `u[i]`. + output : string, optional + Name of the system output. If not specified, the output will be 'y'. + dimension : int, optional + The dimension of the summing junction. If the dimension is set to a + positive integer, a multi-input, multi-output summing junction will be + created. The input and output signal names will be of the form + `[i]` where `signal` is the input/output signal name specified + by the `inputs` and `output` keywords. Default value is `None`. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. + prefix : string, optional + If `inputs` is an integer, create the names of the states using the + given prefix (default = 'u'). The names of the input will be of the + form `prefix[i]`. + + Returns + ------- + sys : static LinearIOSystem + Linear input/output system object with no states and only a direct + term that implements the summing junction. + + Examples + -------- + >>> P = ct.tf2io(1, [1, 0], inputs='u', outputs='y') + >>> C = ct.tf2io(10, [1, 1], inputs='e', outputs='u') + >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') + >>> T = ct.interconnect([P, C, sumblk], inputs='r', outputs='y') + >>> T.ninputs, T.noutputs, T.nstates + (1, 1, 2) + + """ + # Utility function to parse input and output signal lists + def _parse_list(signals, signame='input', prefix='u'): + # Parse signals, including gains + if isinstance(signals, int): + nsignals = signals + names = ["%s[%d]" % (prefix, i) for i in range(nsignals)] + gains = np.ones((nsignals,)) + elif isinstance(signals, str): + nsignals = 1 + gains = [-1 if signals[0] == '-' else 1] + names = [signals[1:] if signals[0] == '-' else signals] + elif isinstance(signals, list) and \ + all([isinstance(x, str) for x in signals]): + nsignals = len(signals) + gains = np.ones((nsignals,)) + names = [] + for i in range(nsignals): + if signals[i][0] == '-': + gains[i] = -1 + names.append(signals[i][1:]) + else: + names.append(signals[i]) + else: + raise ValueError( + "could not parse %s description '%s'" + % (signame, str(signals))) + + # Return the parsed list + return nsignals, names, gains + + # Parse system and signal names (with some minor pre-processing) + if input is not None: + kwargs['inputs'] = inputs # positional/keyword -> keyword + if output is not None: + kwargs['output'] = output # positional/keyword -> keyword + name, inputs, output, states, dt = _process_namedio_keywords( + kwargs, {'inputs': None, 'outputs': 'y'}, end=True) + if inputs is None: + raise TypeError("input specification is required") + + # Read the input list + ninputs, input_names, input_gains = _parse_list( + inputs, signame="input", prefix=prefix) + noutputs, output_names, output_gains = _parse_list( + output, signame="output", prefix='y') + if noutputs > 1: + raise NotImplementedError("vector outputs not yet supported") + + # If the dimension keyword is present, vectorize inputs and outputs + if isinstance(dimension, int) and dimension >= 1: + # Create a new list of input/output names and update parameters + input_names = ["%s[%d]" % (name, dim) + for name in input_names + for dim in range(dimension)] + ninputs = ninputs * dimension + + output_names = ["%s[%d]" % (name, dim) + for name in output_names + for dim in range(dimension)] + noutputs = noutputs * dimension + elif dimension is not None: + raise ValueError( + "unrecognized dimension value '%s'" % str(dimension)) + else: + dimension = 1 + + # Create the direct term + D = np.kron(input_gains * output_gains[0], np.eye(dimension)) + + # Create a linear system of the appropriate size + ss_sys = StateSpace( + np.zeros((0, 0)), np.ones((0, ninputs)), np.ones((noutputs, 0)), D) + + # Create a LinearIOSystem + return LinearIOSystem( + ss_sys, inputs=input_names, outputs=output_names, name=name) + + +def _ssmatrix(data, axis=1): + """Convert argument to a (possibly empty) 2D state space matrix. + + The axis keyword argument makes it convenient to specify that if the input + is a vector, it is a row (axis=1) or column (axis=0) vector. + + Parameters + ---------- + data : array, list, or string + Input data defining the contents of the 2D array + axis : 0 or 1 + If input data is 1D, which axis to use for return object. The default + is 1, corresponding to a row matrix. + + Returns + ------- + arr : 2D array, with shape (0, 0) if a is empty + + """ + # Convert the data into an array + arr = np.array(data, dtype=float) + ndim = arr.ndim + shape = arr.shape + + # Change the shape of the array into a 2D array + if (ndim > 2): + raise ValueError("state-space matrix must be 2-dimensional") + + elif (ndim == 2 and shape == (1, 0)) or \ + (ndim == 1 and shape == (0, )): + # Passed an empty matrix or empty vector; change shape to (0, 0) + shape = (0, 0) + + elif ndim == 1: + # Passed a row or column vector + shape = (1, shape[0]) if axis == 1 else (shape[0], 1) + + elif ndim == 0: + # Passed a constant; turn into a matrix + shape = (1, 1) + + # Create the actual object used to store the result + return arr.reshape(shape) + + +def _f2s(f): + """Format floating point number f for StateSpace._repr_latex_. + + Numbers are converted to strings with statesp.latex_num_format. + + Inserts column separators, etc., as needed. + """ + fmt = "{:" + config.defaults['statesp.latex_num_format'] + "}" + sraw = fmt.format(f) + # significand-exponent + se = sraw.lower().split('e') + # whole-fraction + wf = se[0].split('.') + s = wf[0] + if wf[1:]: + s += r'.&\hspace{{-1em}}{frac}'.format(frac=wf[1]) + else: + s += r'\phantom{.}&\hspace{-1em}' + + if se[1:]: + s += r'&\hspace{{-1em}}\cdot10^{{{:d}}}'.format(int(se[1])) + else: + s += r'&\hspace{-1em}\phantom{\cdot}' + + return s + + +# TODO: add discrete time check +def _convert_to_statespace(sys, use_prefix_suffix=False): + """Convert a system to state space form (if needed). + + If sys is already a state space, then it is returned. If sys is a + transfer function object, then it is converted to a state space and + returned. + + Note: no renaming of inputs and outputs is performed; this should be done + by the calling function. + + """ + from .xferfcn import TransferFunction + import itertools + + if isinstance(sys, StateSpace): + return sys + + elif isinstance(sys, TransferFunction): + # Make sure the transfer function is proper + if any([[len(num) for num in col] for col in sys.num] > + [[len(num) for num in col] for col in sys.den]): + raise ValueError("Transfer function is non-proper; can't " + "convert to StateSpace system.") + + try: + from slycot import td04ad + + # Change the numerator and denominator arrays so that the transfer + # function matrix has a common denominator. + # matrices are also sized/padded to fit td04ad + num, den, denorder = sys.minreal()._common_den() + + # transfer function to state space conversion now should work! + ssout = td04ad('C', sys.ninputs, sys.noutputs, + denorder, den, num, tol=0) + + states = ssout[0] + newsys = StateSpace( + ssout[1][:states, :states], ssout[2][:states, :sys.ninputs], + ssout[3][:sys.noutputs, :states], ssout[4], sys.dt) + + except ImportError: + # No Slycot. Scipy tf->ss can't handle MIMO, but static + # MIMO is an easy special case we can check for here + maxn = max(max(len(n) for n in nrow) + for nrow in sys.num) + maxd = max(max(len(d) for d in drow) + for drow in sys.den) + if 1 == maxn and 1 == maxd: + D = empty((sys.noutputs, sys.ninputs), dtype=float) + for i, j in itertools.product(range(sys.noutputs), + range(sys.ninputs)): + D[i, j] = sys.num[i][j][0] / sys.den[i][j][0] + newsys = StateSpace([], [], [], D, sys.dt) + else: + if sys.ninputs != 1 or sys.noutputs != 1: + raise TypeError("No support for MIMO without slycot") + + # TODO: do we want to squeeze first and check dimenations? + # I think this will fail if num and den aren't 1-D after + # the squeeze + A, B, C, D = \ + sp.signal.tf2ss(squeeze(sys.num), squeeze(sys.den)) + newsys = StateSpace(A, B, C, D, sys.dt) + + # Copy over the signal (and system) names + newsys._copy_names( + sys, + prefix_suffix_name='converted' if use_prefix_suffix else None) + return newsys + + elif isinstance(sys, FrequencyResponseData): + raise TypeError("Can't convert FRD to StateSpace system.") + + # If this is a matrix, try to create a constant feedthrough + try: + D = _ssmatrix(np.atleast_2d(sys)) + return StateSpace([], [], [], D, dt=None) + + except Exception: + raise TypeError("Can't convert given type to StateSpace system.") + +# TODO: add discrete time option +def _rss_generate( + states, inputs, outputs, cdtype, strictly_proper=False, name=None): + """Generate a random state space. + + This does the actual random state space generation expected from rss and + drss. cdtype is 'c' for continuous systems and 'd' for discrete systems. + + """ + + # Probability of repeating a previous root. + pRepeat = 0.05 + # Probability of choosing a real root. Note that when choosing a complex + # root, the conjugate gets chosen as well. So the expected proportion of + # real roots is pReal / (pReal + 2 * (1 - pReal)). + pReal = 0.6 + # Probability that an element in B or C will not be masked out. + pBCmask = 0.8 + # Probability that an element in D will not be masked out. + pDmask = 0.3 + # Probability that D = 0. + pDzero = 0.5 + + # Check for valid input arguments. + if states < 1 or states % 1: + raise ValueError("states must be a positive integer. states = %g." % + states) + if inputs < 1 or inputs % 1: + raise ValueError("inputs must be a positive integer. inputs = %g." % + inputs) + if outputs < 1 or outputs % 1: + raise ValueError("outputs must be a positive integer. outputs = %g." % + outputs) + if cdtype not in ['c', 'd']: + raise ValueError("cdtype must be `c` or `d`") + + # Make some poles for A. Preallocate a complex array. + poles = zeros(states) + zeros(states) * 0.j + i = 0 + + while i < states: + if rand() < pRepeat and i != 0 and i != states - 1: + # Small chance of copying poles, if we're not at the first or last + # element. + if poles[i-1].imag == 0: + # Copy previous real pole. + poles[i] = poles[i-1] + i += 1 + else: + # Copy previous complex conjugate pair of poles. + poles[i:i+2] = poles[i-2:i] + i += 2 + elif rand() < pReal or i == states - 1: + # No-oscillation pole. + if cdtype == 'c': + poles[i] = -exp(randn()) + 0.j + else: + poles[i] = 2. * rand() - 1. + i += 1 + else: + # Complex conjugate pair of oscillating poles. + if cdtype == 'c': + poles[i] = complex(-exp(randn()), 3. * exp(randn())) + else: + mag = rand() + phase = 2. * math.pi * rand() + poles[i] = complex(mag * cos(phase), mag * sin(phase)) + poles[i+1] = complex(poles[i].real, -poles[i].imag) + i += 2 + + # Now put the poles in A as real blocks on the diagonal. + A = zeros((states, states)) + i = 0 + while i < states: + if poles[i].imag == 0: + A[i, i] = poles[i].real + i += 1 + else: + A[i, i] = A[i+1, i+1] = poles[i].real + A[i, i+1] = poles[i].imag + A[i+1, i] = -poles[i].imag + i += 2 + # Finally, apply a transformation so that A is not block-diagonal. + while True: + T = randn(states, states) + try: + A = solve(T, A) @ T # A = T \ A @ T + break + except LinAlgError: + # In the unlikely event that T is rank-deficient, iterate again. + pass + + # Make the remaining matrices. + B = randn(states, inputs) + C = randn(outputs, states) + D = randn(outputs, inputs) + + # Make masks to zero out some of the elements. + while True: + Bmask = rand(states, inputs) < pBCmask + if any(Bmask): # Retry if we get all zeros. + break + while True: + Cmask = rand(outputs, states) < pBCmask + if any(Cmask): # Retry if we get all zeros. + break + if rand() < pDzero: + Dmask = zeros((outputs, inputs)) + else: + Dmask = rand(outputs, inputs) < pDmask + + # Apply masks. + B = B * Bmask + C = C * Cmask + D = D * Dmask if not strictly_proper else zeros(D.shape) + + if cdtype == 'c': + ss_args = (A, B, C, D) + else: + ss_args = (A, B, C, D, True) + return StateSpace(*ss_args, name=name) + + +# Convert a MIMO system to a SISO system +# TODO: add discrete time check +def _mimo2siso(sys, input, output, warn_conversion=False): + # pylint: disable=W0622 + """ + Convert a MIMO system to a SISO system. (Convert a system with multiple + inputs and/or outputs, to a system with a single input and output.) + + The input and output that are used in the SISO system can be selected + with the parameters ``input`` and ``output``. All other inputs are set + to 0, all other outputs are ignored. + + If ``sys`` is already a SISO system, it will be returned unaltered. + + Parameters + ---------- + sys : StateSpace + Linear (MIMO) system that should be converted. + input : int + Index of the input that will become the SISO system's only input. + output : int + Index of the output that will become the SISO system's only output. + warn_conversion : bool, optional + If `True`, print a message when sys is a MIMO system, + warning that a conversion will take place. Default is False. + + Returns + sys : StateSpace + The converted (SISO) system. + """ + if not (isinstance(input, int) and isinstance(output, int)): + raise TypeError("Parameters ``input`` and ``output`` must both " + "be integer numbers.") + if not (0 <= input < sys.ninputs): + raise ValueError("Selected input does not exist. " + "Selected input: {sel}, " + "number of system inputs: {ext}." + .format(sel=input, ext=sys.ninputs)) + if not (0 <= output < sys.noutputs): + raise ValueError("Selected output does not exist. " + "Selected output: {sel}, " + "number of system outputs: {ext}." + .format(sel=output, ext=sys.noutputs)) + # Convert sys to SISO if necessary + if sys.ninputs > 1 or sys.noutputs > 1: + if warn_conversion: + warn("Converting MIMO system to SISO system. " + "Only input {i} and output {o} are used." + .format(i=input, o=output)) + # $X = A*X + B*U + # Y = C*X + D*U + new_B = sys.B[:, input] + new_C = sys.C[output, :] + new_D = sys.D[output, input] + sys = StateSpace(sys.A, new_B, new_C, new_D, sys.dt, + name=sys.name, + inputs=sys.input_labels[input], outputs=sys.output_labels[output]) + + return sys + + +def _mimo2simo(sys, input, warn_conversion=False): + # pylint: disable=W0622 + """ + Convert a MIMO system to a SIMO system. (Convert a system with multiple + inputs and/or outputs, to a system with a single input but possibly + multiple outputs.) + + The input that is used in the SIMO system can be selected with the + parameter ``input``. All other inputs are set to 0, all other + outputs are ignored. + + If ``sys`` is already a SIMO system, it will be returned unaltered. + + Parameters + ---------- + sys: StateSpace + Linear (MIMO) system that should be converted. + input: int + Index of the input that will become the SIMO system's only input. + warn_conversion: bool + If True: print a warning message when sys is a MIMO system. + Warn that a conversion will take place. + + Returns + ------- + sys: StateSpace + The converted (SIMO) system. + """ + if not (isinstance(input, int)): + raise TypeError("Parameter ``input`` be an integer number.") + if not (0 <= input < sys.ninputs): + raise ValueError("Selected input does not exist. " + "Selected input: {sel}, " + "number of system inputs: {ext}." + .format(sel=input, ext=sys.ninputs)) + # Convert sys to SISO if necessary + if sys.ninputs > 1: + if warn_conversion: + warn("Converting MIMO system to SIMO system. " + "Only input {i} is used." .format(i=input)) + # $X = A*X + B*U + # Y = C*X + D*U + new_B = sys.B[:, input:input+1] + new_D = sys.D[:, input:input+1] + sys = StateSpace(sys.A, new_B, sys.C, new_D, sys.dt, + name=sys.name, + inputs=sys.input_labels[input], outputs=sys.output_labels) + + return sys diff --git a/control/stochsys.py b/control/stochsys.py index 85e108336..94dee3a95 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -20,13 +20,13 @@ import scipy as sp from math import sqrt -from .iosys import InputOutputSystem, LinearIOSystem, NonlinearIOSystem +from .nlsys import InputOutputSystem, NonlinearIOSystem from .lti import LTI -from .namedio import isctime, isdtime -from .namedio import _process_indices, _process_labels, \ +from .iosys import isctime, isdtime +from .iosys import _process_indices, _process_labels, \ _process_control_disturbance_indices from .mateqn import care, dare, _check_shape -from .statesp import StateSpace, _ssmatrix +from .statesp import StateSpace, LinearIOSystem, _ssmatrix from .exception import ControlArgument, ControlNotImplemented from .config import _process_legacy_keyword diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 1547b7e22..1d3abe2c2 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -273,7 +273,7 @@ def test_change_default_dt(self, dt): ct.set_defaults('control', default_dt=dt) assert ct.ss(1, 0, 0, 1).dt == dt assert ct.tf(1, [1, 1]).dt == dt - nlsys = ct.iosys.NonlinearIOSystem( + nlsys = ct.nlsys.NonlinearIOSystem( lambda t, x, u: u * x * x, lambda t, x, u: x, inputs=1, outputs=1) assert nlsys.dt == dt diff --git a/control/tests/frd_test.py b/control/tests/frd_test.py index 1a383c2a7..db86a5e6b 100644 --- a/control/tests/frd_test.py +++ b/control/tests/frd_test.py @@ -492,7 +492,7 @@ def test_unrecognized_keyword(self): def test_named_signals(): - ct.namedio.NamedIOSystem._idCounter = 0 + ct.iosys.NamedIOSystem._idCounter = 0 h1 = TransferFunction([1], [1, 2, 2]) h2 = TransferFunction([1], [0.1, 1]) omega = np.logspace(-1, 2, 10) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 1fe57d577..649d38e66 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -16,7 +16,7 @@ from math import sqrt import control as ct -from control import iosys as ios +from control import nlsys as ios class TestIOSys: @@ -54,7 +54,7 @@ class TSys: def test_linear_iosys(self, tsys): # Create an input/output system from the linear system linsys = tsys.siso_linsys - iosys = ios.LinearIOSystem(linsys).copy() + iosys = ct.LinearIOSystem(linsys).copy() # Make sure that the right hand side matches linear system for x, u in (([0, 0], 0), ([1, 0], 0), ([0, 1], 0), ([0, 0], 1)): @@ -71,8 +71,8 @@ def test_linear_iosys(self, tsys): # Make sure that a static linear system has dt=None # and otherwise dt is as specified - assert ios.LinearIOSystem(tsys.staticgain).dt is None - assert ios.LinearIOSystem(tsys.staticgain, dt=.1).dt == .1 + assert ct.LinearIOSystem(tsys.staticgain).dt is None + assert ct.LinearIOSystem(tsys.staticgain, dt=.1).dt == .1 def test_tf2io(self, tsys): # Create a transfer function from the state space system @@ -194,7 +194,7 @@ def kincar_output(t, x, u, params): def test_linearize(self, tsys, kincar): # Create a single input/single output linear system linsys = tsys.siso_linsys - iosys = ios.LinearIOSystem(linsys) + iosys = ct.LinearIOSystem(linsys) # Linearize it and make sure we get back what we started with linearized = iosys.linearize([0, 0], 0) @@ -260,9 +260,9 @@ def test_linearize_named_signals(self, kincar): def test_connect(self, tsys): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys - iosys1 = ios.LinearIOSystem(linsys1, name='iosys1') + iosys1 = ct.LinearIOSystem(linsys1, name='iosys1') linsys2 = tsys.siso_linsys - iosys2 = ios.LinearIOSystem(linsys2, name='iosys2') + iosys2 = ct.LinearIOSystem(linsys2, name='iosys2') # Connect systems in different ways and compare to StateSpace linsys_series = linsys2 * linsys1 @@ -285,7 +285,7 @@ def test_connect(self, tsys): # Connect systems with different timebases linsys2c = tsys.siso_linsys linsys2c.dt = 0 # Reset the timebase - iosys2c = ios.LinearIOSystem(linsys2c) + iosys2c = ct.LinearIOSystem(linsys2c) iosys_series = ios.InterconnectedSystem( [iosys1, iosys2c], # systems [[1, 0]], # interconnection (series) @@ -336,9 +336,9 @@ def test_connect(self, tsys): def test_connect_spec_variants(self, tsys, connections, inplist, outlist): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys - iosys1 = ios.LinearIOSystem(linsys1, name="sys1") + iosys1 = ct.LinearIOSystem(linsys1, name="sys1") linsys2 = tsys.siso_linsys - iosys2 = ios.LinearIOSystem(linsys2, name="sys2") + iosys2 = ct.LinearIOSystem(linsys2, name="sys2") # Simple series connection linsys_series = linsys2 * linsys1 @@ -371,9 +371,9 @@ def test_connect_spec_variants(self, tsys, connections, inplist, outlist): def test_connect_spec_warnings(self, tsys, connections, inplist, outlist): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys - iosys1 = ios.LinearIOSystem(linsys1, name="sys1") + iosys1 = ct.LinearIOSystem(linsys1, name="sys1") linsys2 = tsys.siso_linsys - iosys2 = ios.LinearIOSystem(linsys2, name="sys2") + iosys2 = ct.LinearIOSystem(linsys2, name="sys2") # Simple series connection linsys_series = linsys2 * linsys1 @@ -396,7 +396,7 @@ def test_connect_spec_warnings(self, tsys, connections, inplist, outlist): def test_static_nonlinearity(self, tsys): # Linear dynamical system linsys = tsys.siso_linsys - ioslin = ios.LinearIOSystem(linsys) + ioslin = ct.LinearIOSystem(linsys) # Nonlinear saturation sat = lambda u: u if abs(u) < 1 else np.sign(u) @@ -417,11 +417,11 @@ def test_static_nonlinearity(self, tsys): np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=2) - @pytest.mark.filterwarnings("ignore:Duplicate name::control.iosys") + @pytest.mark.filterwarnings("ignore:Duplicate name::control.nlsys") def test_algebraic_loop(self, tsys): # Create some linear and nonlinear systems to play with linsys = tsys.siso_linsys - lnios = ios.LinearIOSystem(linsys) + lnios = ct.LinearIOSystem(linsys) nlios = ios.NonlinearIOSystem(None, \ lambda t, x, u, params: u*u, inputs=1, outputs=1) nlios1 = nlios.copy(name='nlios1') @@ -474,7 +474,7 @@ def test_algebraic_loop(self, tsys): # Algebraic loop due to feedthrough term linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], [[1]]) - lnios = ios.LinearIOSystem(linsys) + lnios = ct.LinearIOSystem(linsys) iosys = ios.InterconnectedSystem( [nlios, lnios], # linear system w/ nonlinear feedback [[0, 1], # feedback interconnection @@ -489,8 +489,8 @@ def test_algebraic_loop(self, tsys): def test_summer(self, tsys): # Construct a MIMO system for testing linsys = tsys.mimo_linsys1 - linio1 = ios.LinearIOSystem(linsys, name='linio1') - linio2 = ios.LinearIOSystem(linsys, name='linio2') + linio1 = ct.LinearIOSystem(linsys, name='linio1') + linio2 = ct.LinearIOSystem(linsys, name='linio2') linsys_parallel = linsys + linsys iosys_parallel = linio1 + linio2 @@ -513,7 +513,7 @@ def test_rmul(self, tsys): # Linear system with input and output nonlinearities # Also creates a nested interconnected system - ioslin = ios.LinearIOSystem(tsys.siso_linsys) + ioslin = ct.LinearIOSystem(tsys.siso_linsys) nlios = ios.NonlinearIOSystem(None, \ lambda t, x, u, params: u*u, inputs=1, outputs=1) sys1 = nlios * ioslin @@ -538,7 +538,7 @@ def test_neg(self, tsys): # Linear system with input nonlinearity # Also creates a nested interconnected system - ioslin = ios.LinearIOSystem(tsys.siso_linsys) + ioslin = ct.LinearIOSystem(tsys.siso_linsys) sys = (ioslin) * (-nlios) # Make sure we got the right thing (via simulation comparison) @@ -551,7 +551,7 @@ def test_feedback(self, tsys): T, U, X0 = tsys.T, tsys.U, tsys.X0 # Linear system with constant feedback (via "nonlinear" mapping) - ioslin = ios.LinearIOSystem(tsys.siso_linsys) + ioslin = ct.LinearIOSystem(tsys.siso_linsys) nlios = ios.NonlinearIOSystem(None, \ lambda t, x, u, params: u, inputs=1, outputs=1) iosys = ct.feedback(ioslin, nlios) @@ -570,9 +570,9 @@ def test_bdalg_functions(self, tsys): # Set up systems to be composed linsys1 = tsys.mimo_linsys1 - linio1 = ios.LinearIOSystem(linsys1) + linio1 = ct.LinearIOSystem(linsys1) linsys2 = tsys.mimo_linsys2 - linio2 = ios.LinearIOSystem(linsys2) + linio2 = ct.LinearIOSystem(linsys2) # Series interconnection linsys_series = ct.series(linsys1, linsys2) @@ -616,9 +616,9 @@ def test_algebraic_functions(self, tsys): # Set up systems to be composed linsys1 = tsys.mimo_linsys1 - linio1 = ios.LinearIOSystem(linsys1) + linio1 = ct.LinearIOSystem(linsys1) linsys2 = tsys.mimo_linsys2 - linio2 = ios.LinearIOSystem(linsys2) + linio2 = ct.LinearIOSystem(linsys2) # Multiplication linsys_mul = linsys2 * linsys1 @@ -669,13 +669,13 @@ def test_nonsquare_bdalg(self, tsys): linsys_2i3o = ct.StateSpace( [[-1, 1, 0], [0, -2, 0], [0, 0, -3]], [[1, 0], [0, 1], [1, 1]], [[1, 0, 0], [0, 1, 0], [0, 0, 1]], np.zeros((3, 2))) - iosys_2i3o = ios.LinearIOSystem(linsys_2i3o) + iosys_2i3o = ct.LinearIOSystem(linsys_2i3o) linsys_3i2o = ct.StateSpace( [[-1, 1, 0], [0, -2, 0], [0, 0, -3]], [[1, 0, 0], [0, 1, 0], [0, 0, 1]], [[1, 0, 1], [0, 1, -1]], np.zeros((2, 3))) - iosys_3i2o = ios.LinearIOSystem(linsys_3i2o) + iosys_3i2o = ct.LinearIOSystem(linsys_3i2o) # Multiplication linsys_multiply = linsys_3i2o * linsys_2i3o @@ -713,7 +713,7 @@ def test_discrete(self, tsys): # Create some linear and nonlinear systems to play with linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], [[0]], True) - lnios = ios.LinearIOSystem(linsys) + lnios = ct.LinearIOSystem(linsys) # Set up parameters for simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 @@ -727,7 +727,7 @@ def test_discrete(self, tsys): # Test MIMO system, converted to discrete time linsys = ct.StateSpace(tsys.mimo_linsys1) linsys.dt = tsys.T[1] - tsys.T[0] - lnios = ios.LinearIOSystem(linsys) + lnios = ct.LinearIOSystem(linsys) # Set up parameters for simulation T = tsys.T @@ -875,7 +875,7 @@ def test_find_eqpts_dfan(self, tsys): # Unobservable system linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[0, 0]], [[0]]) - lnios = ios.LinearIOSystem(linsys) + lnios = ct.LinearIOSystem(linsys) # If result is returned, user has to check xeq, ueq, result = ios.find_eqpt( @@ -938,7 +938,7 @@ def test_params(self, tsys): # Check for warning if we try to set params for LinearIOSystem linsys = tsys.siso_linsys - iosys = ios.LinearIOSystem(linsys) + iosys = ct.LinearIOSystem(linsys) T, U, X0 = tsys.T, tsys.U, tsys.X0 lti_t, lti_y = ct.forced_response(linsys, T, U, X0) with pytest.warns(UserWarning, match="LinearIOSystem.*ignored"): @@ -963,7 +963,7 @@ def test_named_signals(self, tsys): outputs = ['y[0]', 'y[1]'], states = tsys.mimo_linsys1.nstates, name = 'sys1') - sys2 = ios.LinearIOSystem(tsys.mimo_linsys2, + sys2 = ct.LinearIOSystem(tsys.mimo_linsys2, inputs = ['u[0]', 'u[1]'], outputs = ['y[0]', 'y[1]'], name = 'sys2') @@ -1063,7 +1063,7 @@ def test_sys_naming_convention(self, tsys): ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 # Create a system with a known ID - ct.namedio.NamedIOSystem._idCounter = 0 + ct.iosys.NamedIOSystem._idCounter = 0 sys = ct.ss( tsys.mimo_linsys1.A, tsys.mimo_linsys1.B, tsys.mimo_linsys1.C, tsys.mimo_linsys1.D) @@ -1131,7 +1131,7 @@ def test_signals_naming_convention_0_8_4(self, tsys): ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 # Create a system with a known ID - ct.namedio.NamedIOSystem._idCounter = 0 + ct.iosys.NamedIOSystem._idCounter = 0 sys = ct.ss( tsys.mimo_linsys1.A, tsys.mimo_linsys1.B, tsys.mimo_linsys1.C, tsys.mimo_linsys1.D) @@ -1471,10 +1471,10 @@ def test_duplicates(self, tsys): def test_linear_interconnection(): ss_sys1 = ct.rss(2, 2, 2, strictly_proper=True) ss_sys2 = ct.rss(2, 2, 2) - io_sys1 = ios.LinearIOSystem( + io_sys1 = ct.LinearIOSystem( ss_sys1, inputs = ('u[0]', 'u[1]'), outputs = ('y[0]', 'y[1]'), name = 'sys1') - io_sys2 = ios.LinearIOSystem( + io_sys2 = ct.LinearIOSystem( ss_sys2, inputs = ('u[0]', 'u[1]'), outputs = ('y[0]', 'y[1]'), name = 'sys2') nl_sys2 = ios.NonlinearIOSystem( @@ -1511,11 +1511,11 @@ def test_linear_interconnection(): ['sys2.y[1]'], ['sys2.u[1]']]) assert isinstance(nl_connect, ios.InterconnectedSystem) - assert not isinstance(nl_connect, ios.LinearICSystem) + assert not isinstance(nl_connect, ct.LinearICSystem) # Now take its linearization ss_connect = nl_connect.linearize(0, 0) - assert isinstance(ss_connect, ios.LinearIOSystem) + assert isinstance(ss_connect, ct.LinearIOSystem) io_connect = ios.interconnect( (io_sys1, io_sys2), @@ -1531,8 +1531,8 @@ def test_linear_interconnection(): ['sys2.y[1]'], ['sys2.u[1]']]) assert isinstance(io_connect, ios.InterconnectedSystem) - assert isinstance(io_connect, ios.LinearICSystem) - assert isinstance(io_connect, ios.LinearIOSystem) + assert isinstance(io_connect, ct.LinearICSystem) + assert isinstance(io_connect, ct.LinearIOSystem) assert isinstance(io_connect, ct.StateSpace) # Finally compare the linearization with the linear system @@ -1543,15 +1543,15 @@ def test_linear_interconnection(): # make sure interconnections of linear systems are linear and # if a nonlinear system is included then system is nonlinear - assert isinstance(ss_siso*ss_siso, ios.LinearIOSystem) - assert isinstance(tf_siso*ss_siso, ios.LinearIOSystem) - assert isinstance(ss_siso*tf_siso, ios.LinearIOSystem) - assert ~isinstance(ss_siso*nl_siso, ios.LinearIOSystem) - assert ~isinstance(nl_siso*ss_siso, ios.LinearIOSystem) - assert ~isinstance(nl_siso*nl_siso, ios.LinearIOSystem) - assert ~isinstance(tf_siso*nl_siso, ios.LinearIOSystem) - assert ~isinstance(nl_siso*tf_siso, ios.LinearIOSystem) - assert ~isinstance(nl_siso*nl_siso, ios.LinearIOSystem) + assert isinstance(ss_siso*ss_siso, ct.LinearIOSystem) + assert isinstance(tf_siso*ss_siso, ct.LinearIOSystem) + assert isinstance(ss_siso*tf_siso, ct.LinearIOSystem) + assert ~isinstance(ss_siso*nl_siso, ct.LinearIOSystem) + assert ~isinstance(nl_siso*ss_siso, ct.LinearIOSystem) + assert ~isinstance(nl_siso*nl_siso, ct.LinearIOSystem) + assert ~isinstance(tf_siso*nl_siso, ct.LinearIOSystem) + assert ~isinstance(nl_siso*tf_siso, ct.LinearIOSystem) + assert ~isinstance(nl_siso*nl_siso, ct.LinearIOSystem) def predprey(t, x, u, params={}): diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 83026391c..6dc46f7c4 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -239,8 +239,8 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): mutable_ok = { # initial and date control.flatsys.SystemTrajectory.__init__, # RMM, 18 Nov 2022 control.freqplot._add_arrows_to_line2D, # RMM, 18 Nov 2022 - control.namedio._process_dt_keyword, # RMM, 13 Nov 2022 - control.namedio._process_namedio_keywords, # RMM, 18 Nov 2022 + control.iosys._process_dt_keyword, # RMM, 13 Nov 2022 + control.iosys._process_namedio_keywords, # RMM, 18 Nov 2022 } @pytest.mark.parametrize("module", [control, control.flatsys]) diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index abd25f2d9..3139503aa 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -28,7 +28,7 @@ def test_named_ss(): A, B, C, D = sys.A, sys.B, sys.C, sys.D # Set up a named state space systems with default names - ct.namedio.NamedIOSystem._idCounter = 0 + ct.iosys.NamedIOSystem._idCounter = 0 sys = ct.ss(A, B, C, D) assert sys.name == 'sys[0]' assert sys.input_labels == ['u[0]', 'u[1]'] @@ -42,7 +42,7 @@ def test_named_ss(): A, B, C, D, name='system', inputs=['u1', 'u2'], outputs=['y1', 'y2'], states=['x1', 'x2']) assert sys.name == 'system' - assert ct.namedio.NamedIOSystem._idCounter == 1 + assert ct.iosys.NamedIOSystem._idCounter == 1 assert sys.input_labels == ['u1', 'u2'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2'] @@ -52,7 +52,7 @@ def test_named_ss(): # Do the same with rss sys = ct.rss(['x1', 'x2', 'x3'], ['y1', 'y2'], 'u1', name='random') assert sys.name == 'random' - assert ct.namedio.NamedIOSystem._idCounter == 1 + assert ct.iosys.NamedIOSystem._idCounter == 1 assert sys.input_labels == ['u1'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2', 'x3'] @@ -98,7 +98,7 @@ def test_named_ss(): ]) def test_io_naming(fun, args, kwargs): # Reset the ID counter to get uniform generic names - ct.namedio.NamedIOSystem._idCounter = 0 + ct.iosys.NamedIOSystem._idCounter = 0 # Create the system w/out any names sys_g = fun(*args, **kwargs) diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 83dc58b49..cc1327e1f 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -20,7 +20,7 @@ from control.lti import evalfr from control.statesp import StateSpace, _convert_to_statespace, tf2ss, \ _statesp_defaults, _rss_generate, linfnorm -from control.iosys import ss, rss, drss +from control.statesp import ss, rss, drss from control.tests.conftest import slycotonly from control.xferfcn import TransferFunction, ss2tf diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 91f4a1a08..8b846d4a0 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -467,12 +467,12 @@ def test_indices(ctrl_indices, dist_indices): # Create a system whose state we want to estimate if ctrl_indices is not None: - ctrl_idx = ct.namedio._process_indices( + ctrl_idx = ct.iosys._process_indices( ctrl_indices, 'control', sys.input_labels, sys.ninputs) dist_idx = [i for i in range(sys.ninputs) if i not in ctrl_idx] else: arg = -dist_indices if isinstance(dist_indices, int) else dist_indices - dist_idx = ct.namedio._process_indices( + dist_idx = ct.iosys._process_indices( arg, 'disturbance', sys.input_labels, sys.ninputs) ctrl_idx = [i for i in range(sys.ninputs) if i not in dist_idx] sysm = ct.ss(sys.A, sys.B[:, ctrl_idx], sys.C, sys.D[:, ctrl_idx]) diff --git a/control/timeresp.py b/control/timeresp.py index 2e25331d1..2fd8b22e5 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -80,7 +80,7 @@ from . import config from .exception import pandas_check -from .namedio import isctime, isdtime +from .iosys import isctime, isdtime from .statesp import StateSpace, _convert_to_statespace, _mimo2simo, _mimo2siso from .xferfcn import TransferFunction diff --git a/control/xferfcn.py b/control/xferfcn.py index 7303d5e73..895619b86 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -60,7 +60,7 @@ from itertools import chain from re import sub from .lti import LTI, _process_frequency_response -from .namedio import common_timebase, isdtime, _process_namedio_keywords +from .iosys import common_timebase, isdtime, _process_namedio_keywords from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData from . import config From b881b2256cde22c3982d8986c43b59a83e448de8 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 10 Jun 2023 14:57:27 -0700 Subject: [PATCH 0298/1025] initial refactoring of classes and modules --- control/__init__.py | 15 +- control/config.py | 6 +- control/dtime.py | 4 +- control/flatsys/linflat.py | 14 +- control/frdata.py | 8 +- control/iosys.py | 164 ++++-- control/lti.py | 84 +-- control/nlsys.py | 770 ++++++++++---------------- control/sisotool.py | 2 +- control/statefbk.py | 15 +- control/statesp.py | 277 +++------ control/stochsys.py | 14 +- control/tests/config_test.py | 2 +- control/tests/frd_test.py | 2 +- control/tests/interconnect_test.py | 28 +- control/tests/iosys_test.py | 344 ++++++------ control/tests/kwargs_test.py | 12 +- control/tests/namedio_test.py | 38 +- control/tests/statesp_test.py | 18 +- control/tests/timeresp_test.py | 8 +- control/tests/trdata_test.py | 2 +- control/tests/type_conversion_test.py | 18 +- control/xferfcn.py | 16 +- doc/classes.fig | 141 +---- doc/classes.pdf | Bin 12798 -> 6857 bytes 25 files changed, 809 insertions(+), 1193 deletions(-) diff --git a/control/__init__.py b/control/__init__.py index 3cc538c82..a9684c41b 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -68,32 +68,35 @@ # Import functions from within the control system library # Note: the functions we use are specified as __all__ variables in the modules + +# Input/output system modules +from .iosys import * +from .nlsys import * +from .lti import * +from .statesp import * +from .xferfcn import * +from .frdata import * + from .bdalg import * from .delay import * from .descfcn import * from .dtime import * from .freqplot import * -from .lti import * from .margins import * from .mateqn import * from .modelsimp import * -from .iosys import * from .nichols import * from .phaseplot import * from .pzmap import * from .rlocus import * from .statefbk import * -from .statesp import * from .stochsys import * from .timeresp import * -from .xferfcn import * from .ctrlutil import * -from .frdata import * from .canonical import * from .robust import * from .config import * from .sisotool import * -from .nlsys import * from .passivity import * # Exceptions diff --git a/control/config.py b/control/config.py index 50a92f8dc..033e7268c 100644 --- a/control/config.py +++ b/control/config.py @@ -123,8 +123,8 @@ def reset_defaults(): from .sisotool import _sisotool_defaults defaults.update(_sisotool_defaults) - from .iosys import _namedio_defaults - defaults.update(_namedio_defaults) + from .iosys import _iosys_defaults + defaults.update(_iosys_defaults) from .xferfcn import _xferfcn_defaults defaults.update(_xferfcn_defaults) @@ -300,7 +300,7 @@ def use_legacy_defaults(version): set_defaults('control', default_dt=None) # changed iosys naming conventions - set_defaults('namedio', state_name_delim='.', + set_defaults('iosys', state_name_delim='.', duplicate_system_name_prefix='copy of ', duplicate_system_name_suffix='', linearized_system_name_prefix='', diff --git a/control/dtime.py b/control/dtime.py index 3238419b2..0366f536b 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -96,8 +96,8 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, if `copy_names` is `False`, a generic name is generated with a unique integer id. If `copy_names` is `True`, the new system name is determined by adding the prefix and suffix strings in - config.defaults['namedio.sampled_system_name_prefix'] and - config.defaults['namedio.sampled_system_name_suffix'], with the + config.defaults['iosys.sampled_system_name_prefix'] and + config.defaults['iosys.sampled_system_name_suffix'], with the default being to add the suffix '$sampled'. copy_names : bool, Optional If True, copy the names of the input signals, output diff --git a/control/flatsys/linflat.py b/control/flatsys/linflat.py index 9ffd78ce7..2990c9f0f 100644 --- a/control/flatsys/linflat.py +++ b/control/flatsys/linflat.py @@ -38,10 +38,10 @@ import numpy as np import control from .flatsys import FlatSystem -from ..statesp import LinearIOSystem +from ..statesp import StateSpace -class LinearFlatSystem(FlatSystem, LinearIOSystem): +class LinearFlatSystem(FlatSystem, StateSpace): """Base class for a linear, differentially flat system. This class is used to create a differentially flat system representation @@ -94,7 +94,7 @@ def __init__(self, linsys, inputs=None, outputs=None, states=None, "only single input, single output systems are supported") # Initialize the object as a LinearIO system - LinearIOSystem.__init__( + StateSpace.__init__( self, linsys, inputs=inputs, outputs=outputs, states=states, name=name) @@ -143,10 +143,10 @@ def reverse(self, zflag, params): # Update function def _rhs(self, t, x, u): - # Use LinearIOSystem._rhs instead of default (MRO) NonlinearIOSystem - return LinearIOSystem._rhs(self, t, x, u) + # Use StateSpace._rhs instead of default (MRO) NonlinearIOSystem + return StateSpace._rhs(self, t, x, u) # output function def _out(self, t, x, u): - # Use LinearIOSystem._out instead of default (MRO) NonlinearIOSystem - return LinearIOSystem._out(self, t, x, u) + # Use StateSpace._out instead of default (MRO) NonlinearIOSystem + return StateSpace._out(self, t, x, u) diff --git a/control/frdata.py b/control/frdata.py index 23ede321f..4a369dca2 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -54,7 +54,7 @@ from .lti import LTI, _process_frequency_response from .exception import pandas_check -from .iosys import NamedIOSystem, _process_namedio_keywords +from .iosys import InputOutputSystem, _process_iosys_keywords from . import config __all__ = ['FrequencyResponseData', 'FRD', 'frd'] @@ -212,14 +212,14 @@ def __init__(self, *args, **kwargs): if self.squeeze not in (None, True, False): raise ValueError("unknown squeeze value") - # Process namedio keywords + # Process iosys keywords defaults = { 'inputs': self.fresp.shape[1], 'outputs': self.fresp.shape[0]} - name, inputs, outputs, states, dt = _process_namedio_keywords( + name, inputs, outputs, states, dt = _process_iosys_keywords( kwargs, defaults, end=True) # Process signal names - NamedIOSystem.__init__( + InputOutputSystem.__init__( self, name=name, inputs=inputs, outputs=outputs, dt=dt) # create interpolation functions diff --git a/control/iosys.py b/control/iosys.py index 02deb5afe..2a083e327 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1,7 +1,7 @@ -# namedio.py - named I/O system class and helper functions +# iosys.py - I/O system class and helper functions # RMM, 13 Mar 2022 # -# This file implements the NamedIOSystem class, which is used as a parent +# This file implements the InputOutputSystem class, which is used as a parent # class for FrequencyResponseData, InputOutputSystem, LTI, TimeResponseData, # and other similar classes to allow naming of signals. @@ -11,26 +11,105 @@ import re from . import config -__all__ = ['issiso', 'timebase', 'common_timebase', 'timebaseEqual', - 'isdtime', 'isctime'] +__all__ = ['InputOutputSystem', 'issiso', 'timebase', 'common_timebase', + 'timebaseEqual', 'isdtime', 'isctime'] # Define module default parameter values -_namedio_defaults = { - 'namedio.state_name_delim': '_', - 'namedio.duplicate_system_name_prefix': '', - 'namedio.duplicate_system_name_suffix': '$copy', - 'namedio.linearized_system_name_prefix': '', - 'namedio.linearized_system_name_suffix': '$linearized', - 'namedio.sampled_system_name_prefix': '', - 'namedio.sampled_system_name_suffix': '$sampled', - 'namedio.indexed_system_name_prefix': '', - 'namedio.indexed_system_name_suffix': '$indexed', - 'namedio.converted_system_name_prefix': '', - 'namedio.converted_system_name_suffix': '$converted', +_iosys_defaults = { + 'iosys.state_name_delim': '_', + 'iosys.duplicate_system_name_prefix': '', + 'iosys.duplicate_system_name_suffix': '$copy', + 'iosys.linearized_system_name_prefix': '', + 'iosys.linearized_system_name_suffix': '$linearized', + 'iosys.sampled_system_name_prefix': '', + 'iosys.sampled_system_name_suffix': '$sampled', + 'iosys.indexed_system_name_prefix': '', + 'iosys.indexed_system_name_suffix': '$indexed', + 'iosys.converted_system_name_prefix': '', + 'iosys.converted_system_name_suffix': '$converted', } -class NamedIOSystem(object): +class InputOutputSystem(object): + """A class for representing input/output systems. + + The InputOutputSystem class allows (possibly nonlinear) input/output + systems to be represented in Python. It is used as a parent class for + a set of subclasses that are used to implement specific structures and + operations for different types of input/output dynamical systems. + + Parameters + ---------- + inputs : int, list of str, or None + Description of the system inputs. This can be given as an integer + count or a list of strings that name the individual signals. If an + integer count is specified, the names of the signal will be of the + form `s[i]` (where `s` is given by the `input_prefix` parameter and + has default value 'u'). If this parameter is not given or given as + `None`, the relevant quantity will be determined when possible + based on other information provided to functions using the system. + outputs : int, list of str, or None + Description of the system outputs. Same format as `inputs`, with + the prefix given by output_prefix (defaults to 'y'). + states : int, list of str, or None + Description of the system states. Same format as `inputs`, with + the prefix given by state_prefix (defaults to 'x'). + dt : None, True or float, optional + System timebase. 0 (default) indicates continuous time, True + indicates discrete time with unspecified sampling time, positive + number is discrete time with specified sampling time, None indicates + unspecified timebase (either continuous or discrete time). + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name is generated with a unique integer id. + params : dict, optional + Parameter values for the system. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + + Attributes + ---------- + ninputs, noutputs, nstates : int + Number of input, output and state variables + input_index, output_index, state_index : dict + Dictionary of signal names for the inputs, outputs and states and the + index of the corresponding array + dt : None, True or float + System timebase. 0 (default) indicates continuous time, True indicates + discrete time with unspecified sampling time, positive number is + discrete time with specified sampling time, None indicates unspecified + timebase (either continuous or discrete time). + params : dict, optional + Parameter values for the systems. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + name : string, optional + System name (used for specifying signals) + + Other Parameters + ---------------- + input_prefix : string, optional + Set the prefix for input signals. Default = 'u'. + output_prefix : string, optional + Set the prefix for output signals. Default = 'y'. + state_prefix : string, optional + Set the prefix for state signals. Default = 'x'. + + Notes + ----- + The :class:`~control.InputOuputSystem` class (and its subclasses) makes + use of two special methods for implementing much of the work of the class: + + * _rhs(t, x, u): compute the right hand side of the differential or + difference equation for the system. This must be specified by the + subclass for the system. + + * _out(t, x, u): compute the output for the current state of the system. + The default is to return the entire system state. + + """ + + # Allow ndarray * InputOutputSystem to give IOSystem._rmul_() priority + __array_priority__ = 13 # override ndarray, SS, TF types + def __init__( self, name=None, inputs=None, outputs=None, states=None, input_prefix='u', output_prefix='y', state_prefix='x', **kwargs): @@ -58,15 +137,15 @@ def __init__( # Return system name def _name_or_default(self, name=None, prefix_suffix_name=None): if name is None: - name = "sys[{}]".format(NamedIOSystem._idCounter) - NamedIOSystem._idCounter += 1 + name = "sys[{}]".format(InputOutputSystem._idCounter) + InputOutputSystem._idCounter += 1 elif re.match(r".*\..*", name): raise ValueError(f"invalid system name '{name}' ('.' not allowed)") prefix = "" if prefix_suffix_name is None else config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_prefix'] + 'iosys.' + prefix_suffix_name + '_system_name_prefix'] suffix = "" if prefix_suffix_name is None else config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_suffix'] + 'iosys.' + prefix_suffix_name + '_system_name_suffix'] return prefix + name + suffix # Check if system name is generic @@ -151,10 +230,10 @@ def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): # Figure out the system name and assign it if prefix == "" and prefix_suffix_name is not None: prefix = config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_prefix'] + 'iosys.' + prefix_suffix_name + '_system_name_prefix'] if suffix == "" and prefix_suffix_name is not None: suffix = config.defaults[ - 'namedio.' + prefix_suffix_name + '_system_name_suffix'] + 'iosys.' + prefix_suffix_name + '_system_name_suffix'] self.name = prefix + sys.name + suffix # Name the inputs, outputs, and states @@ -170,8 +249,8 @@ def copy(self, name=None, use_prefix_suffix=True): A copy of the system is made, with a new name. The `name` keyword can be used to specify a specific name for the system. If no name is given and `use_prefix_suffix` is True, the name is constructed - by prepending config.defaults['namedio.duplicate_system_name_prefix'] - and appending config.defaults['namedio.duplicate_system_name_suffix']. + by prepending config.defaults['iosys.duplicate_system_name_prefix'] + and appending config.defaults['iosys.duplicate_system_name_suffix']. Otherwise, a generic system name of the form `sys[]` is used, where `` is based on an internal counter. @@ -346,7 +425,7 @@ def issiso(sys, strict=False): """ if isinstance(sys, (int, float, complex, np.number)) and not strict: return True - elif not isinstance(sys, NamedIOSystem): + elif not isinstance(sys, InputOutputSystem): raise ValueError("Object is not an I/O or LTI system") # Done with the tricky stuff... @@ -364,7 +443,7 @@ def timebase(sys, strict=True): # System needs to be either a constant or an I/O or LTI system if isinstance(sys, (int, float, complex, np.number)): return None - elif not isinstance(sys, NamedIOSystem): + elif not isinstance(sys, InputOutputSystem): raise ValueError("Timebase not defined") # Return the sample time, with converstion to float if strict is false @@ -469,7 +548,7 @@ def isdtime(sys, strict=False): return True if not strict else False # Check for a transfer function or state-space object - if isinstance(sys, NamedIOSystem): + if isinstance(sys, InputOutputSystem): return sys.isdtime(strict) # Check to see if object has a dt object @@ -503,7 +582,7 @@ def isctime(sys, strict=False): return True if not strict else False # Check for a transfer function or state space object - if isinstance(sys, NamedIOSystem): + if isinstance(sys, InputOutputSystem): return sys.isctime(strict) # Check to see if object has a dt object @@ -518,14 +597,14 @@ def isctime(sys, strict=False): # Utility function to parse nameio keywords -def _process_namedio_keywords( +def _process_iosys_keywords( keywords={}, defaults={}, static=False, end=False): - """Process namedio specification + """Process iosys specification This function processes the standard keywords used in initializing a named I/O system. It first looks in the `keyword` dictionary to see if a value is specified. If not, the `default` dictionary is used. The `default` - dictionary can also be set to a NamedIOSystem object, which is useful for + dictionary can also be set to a InputOutputSystem object, which is useful for copy constructors that change system and signal names. If `end` is True, then generate an error if there are any remaining @@ -533,7 +612,7 @@ def _process_namedio_keywords( """ # If default is a system, redefine as a dictionary - if isinstance(defaults, NamedIOSystem): + if isinstance(defaults, InputOutputSystem): sys = defaults defaults = { 'name': sys.name, 'inputs': sys.input_labels, @@ -680,7 +759,7 @@ def _process_indices(arg, name, labels, length): if isinstance(arg, int): # Return the start or end of the list of possible indices return list(range(arg)) if arg > 0 else list(range(length))[arg:] - + elif isinstance(arg, slice): # Return the indices referenced by the slice return list(range(length))[arg] @@ -755,7 +834,6 @@ def _process_labels(labels, name, default): return labels - # # Utility function for parsing input/output specifications # @@ -861,3 +939,19 @@ def _parse_spec(syslist, spec, signame, dictname=None): ValueError(f"signal index '{index}' is out of range") return system_index, signal_indices, gain + +# Utility function for creating an I/O system from a scalar or array +def _convert_static_iosystem(K, noutputs=1): + if isinstance(sys1, NonlinearIOSystem): + return sys # no action required + elif isinstance(K, (int, float, np.number)): + return NonlinearIOSystem( + None, lambda t, x, u, params: K * u, + outputs=noutputs, inputs=noutputs) + elif isinstance(K, np.ndarray): + # Assume that K is the right shape + return NonlinearIOSystem( + None, lambda t, x, u, params: K @ u, + outputs=K.shape[0], inputs=K.shape[1]) + + raise TypeError("Unknown I/O system object ", sys1) diff --git a/control/lti.py b/control/lti.py index f50945ad8..36aa10b7d 100644 --- a/control/lti.py +++ b/control/lti.py @@ -9,13 +9,13 @@ from numpy import real, angle, abs from warnings import warn from . import config -from .iosys import NamedIOSystem +from .iosys import InputOutputSystem __all__ = ['poles', 'zeros', 'damp', 'evalfr', 'frequency_response', - 'freqresp', 'dcgain', 'bandwidth', 'pole', 'zero'] + 'freqresp', 'dcgain', 'bandwidth'] -class LTI(NamedIOSystem): +class LTI(InputOutputSystem): """LTI is a parent class to linear time-invariant (LTI) system objects. LTI is the parent to the StateSpace and TransferFunction child classes. It @@ -35,7 +35,7 @@ class LTI(NamedIOSystem): with timebase None can be combined with a system having a specified timebase, and the result will have the timebase of the latter system. - Note: dt processing has been moved to the NamedIOSystem class. + Note: dt processing has been moved to the InputOutputSystem class. """ @@ -44,58 +44,6 @@ def __init__(self, inputs=1, outputs=1, states=None, name=None, **kwargs): super().__init__( name=name, inputs=inputs, outputs=outputs, states=states, **kwargs) - # - # Getter and setter functions for legacy state attributes - # - # For this iteration, generate a deprecation warning whenever the - # getter/setter is called. For a future iteration, turn it into a - # future warning, so that users will see it. - # - - def _get_inputs(self): - warn("The LTI `inputs` attribute will be deprecated in a future " - "release. Use `ninputs` instead.", - DeprecationWarning, stacklevel=2) - return self.ninputs - - def _set_inputs(self, value): - warn("The LTI `inputs` attribute will be deprecated in a future " - "release. Use `ninputs` instead.", - DeprecationWarning, stacklevel=2) - self.ninputs = value - - #: Deprecated - inputs = property( - _get_inputs, _set_inputs, doc=""" - Deprecated attribute; use :attr:`ninputs` instead. - - The ``inputs`` attribute was used to store the number of system - inputs. It is no longer used. If you need access to the number - of inputs for an LTI system, use :attr:`ninputs`. - """) - - def _get_outputs(self): - warn("The LTI `outputs` attribute will be deprecated in a future " - "release. Use `noutputs` instead.", - DeprecationWarning, stacklevel=2) - return self.noutputs - - def _set_outputs(self, value): - warn("The LTI `outputs` attribute will be deprecated in a future " - "release. Use `noutputs` instead.", - DeprecationWarning, stacklevel=2) - self.noutputs = value - - #: Deprecated - outputs = property( - _get_outputs, _set_outputs, doc=""" - Deprecated attribute; use :attr:`noutputs` instead. - - The ``outputs`` attribute was used to store the number of system - outputs. It is no longer used. If you need access to the number of - outputs for an LTI system, use :attr:`noutputs`. - """) - def damp(self): '''Natural frequency, damping ratio of system poles @@ -261,20 +209,6 @@ def ispassive(self): from control.passivity import ispassive return ispassive(self) - # - # Deprecated functions - # - - def pole(self): - warn("pole() will be deprecated; use poles()", - PendingDeprecationWarning) - return self.poles() - - def zero(self): - warn("zero() will be deprecated; use zeros()", - PendingDeprecationWarning) - return self.zeros() - def poles(sys): """ @@ -301,11 +235,6 @@ def poles(sys): return sys.poles() -def pole(sys): - warn("pole() will be deprecated; use poles()", PendingDeprecationWarning) - return poles(sys) - - def zeros(sys): """ Compute system zeros. @@ -331,11 +260,6 @@ def zeros(sys): return sys.zeros() -def zero(sys): - warn("zero() will be deprecated; use zeros()", PendingDeprecationWarning) - return zeros(sys) - - def damp(sys, doprint=True): """ Compute natural frequencies, damping ratios, and poles of a system diff --git a/control/nlsys.py b/control/nlsys.py index b4d7f8177..326ca57ca 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1,4 +1,4 @@ -# iosys.py - input/output system module +# nlsys.py - input/output system module # # RMM, 28 April 2019 # @@ -11,8 +11,8 @@ # """The :mod:`~control.nlsys` module contains the -:class:`~control.InputOutputSystem` class that represents (possibly nonlinear) -input/output systems. The :class:`~control.InputOutputSystem` class is a +:class:`~control.NonlinearIOSystem` class that represents (possibly nonlinear) +input/output systems. The :class:`~control.NonlinearIOSystem` class is a general class that defines any continuous or discrete time dynamical system. Input/output systems can be simulated and also used to compute equilibrium points and linearizations. @@ -32,373 +32,342 @@ from warnings import warn from . import config -from .iosys import NamedIOSystem, _process_signal_list, _parse_spec, \ - _process_namedio_keywords, isctime, isdtime, common_timebase +from .iosys import InputOutputSystem, _process_signal_list, \ + _process_iosys_keywords, isctime, isdtime, common_timebase, _parse_spec -__all__ = ['InputOutputSystem', 'NonlinearIOSystem', - 'InterconnectedSystem', 'input_output_response', - 'find_eqpt', 'linearize', 'interconnect'] +__all__ = ['NonlinearIOSystem', 'InterconnectedSystem', + 'input_output_response', 'find_eqpt', 'linearize', + 'interconnect'] # Define module default parameter values _iosys_defaults = {} -class InputOutputSystem(NamedIOSystem): - """A class for representing input/output systems. +class NonlinearIOSystem(InputOutputSystem): + """Nonlinear I/O system. - The InputOutputSystem class allows (possibly nonlinear) input/output - systems to be represented in Python. It is used as a parent class for - a set of subclasses that are used to implement specific structures and - operations for different types of input/output dynamical systems. + Creates an :class:`~control.InputOutputSystem` for a nonlinear system by + specifying a state update function and an output function. The new system + can be a continuous or discrete time system (Note: discrete-time systems + are not yet supported by most functions.) Parameters ---------- - inputs : int, list of str, or None + updfcn : callable + Function returning the state update function + + `updfcn(t, x, u, params) -> array` + + where `x` is a 1-D array with shape (nstates,), `u` is a 1-D array + with shape (ninputs,), `t` is a float representing the currrent + time, and `params` is a dict containing the values of parameters + used by the function. + + outfcn : callable + Function returning the output at the given state + + `outfcn(t, x, u, params) -> array` + + where the arguments are the same as for `upfcn`. + + inputs : int, list of str or None, optional Description of the system inputs. This can be given as an integer - count or a list of strings that name the individual signals. If an - integer count is specified, the names of the signal will be of the - form `s[i]` (where `s` is given by the `input_prefix` parameter and - has default value 'u'). If this parameter is not given or given as - `None`, the relevant quantity will be determined when possible - based on other information provided to functions using the system. - outputs : int, list of str, or None - Description of the system outputs. Same format as `inputs`, with - the prefix given by output_prefix (defaults to 'y'). - states : int, list of str, or None - Description of the system states. Same format as `inputs`, with - the prefix given by state_prefix (defaults to 'x'). - dt : None, True or float, optional - System timebase. 0 (default) indicates continuous time, True - indicates discrete time with unspecified sampling time, positive - number is discrete time with specified sampling time, None indicates - unspecified timebase (either continuous or discrete time). + count or as a list of strings that name the individual signals. + If an integer count is specified, the names of the signal will be + of the form `s[i]` (where `s` is one of `u`, `y`, or `x`). If + this parameter is not given or given as `None`, the relevant + quantity will be determined when possible based on other + information provided to functions using the system. + + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. + + dt : timebase, optional + The timebase for the system, used to specify whether the system is + operating in continuous or discrete time. It can have the + following values: + + * dt = 0: continuous time system (default) + * dt > 0: discrete time system with sampling period 'dt' + * dt = True: discrete time with unspecified sampling period + * dt = None: no timebase specified + name : string, optional - System name (used for specifying signals). If unspecified, a generic - name is generated with a unique integer id. - params : dict, optional - Parameter values for the system. Passed to the evaluation functions - for the system as default values, overriding internal defaults. + System name (used for specifying signals). If unspecified, a + generic name is generated with a unique integer id. - Attributes - ---------- - ninputs, noutputs, nstates : int - Number of input, output and state variables - input_index, output_index, state_index : dict - Dictionary of signal names for the inputs, outputs and states and the - index of the corresponding array - dt : None, True or float - System timebase. 0 (default) indicates continuous time, True indicates - discrete time with unspecified sampling time, positive number is - discrete time with specified sampling time, None indicates unspecified - timebase (either continuous or discrete time). params : dict, optional - Parameter values for the systems. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - name : string, optional - System name (used for specifying signals) + Parameter values for the systems. Passed to the evaluation + functions for the system as default values, overriding internal + defaults. - Other Parameters - ---------------- - input_prefix : string, optional - Set the prefix for input signals. Default = 'u'. - output_prefix : string, optional - Set the prefix for output signals. Default = 'y'. - state_prefix : string, optional - Set the prefix for state signals. Default = 'x'. + See Also + -------- + InputOutputSystem : Input/output system class. - Notes - ----- - The :class:`~control.InputOuputSystem` class (and its subclasses) makes - use of two special methods for implementing much of the work of the class: + """ + # Set priority for operators + __array_priority__ = 13 # override ndarray, SS and TF types - * _rhs(t, x, u): compute the right hand side of the differential or - difference equation for the system. This must be specified by the - subclass for the system. + def __init__(self, updfcn, outfcn=None, params=None, **kwargs): + """Create a nonlinear I/O system given update and output functions.""" + # Process keyword arguments + name, inputs, outputs, states, dt = _process_iosys_keywords(kwargs) - * _out(t, x, u): compute the output for the current state of the system. - The default is to return the entire system state. + # Initialize the rest of the structure + super().__init__( + inputs=inputs, outputs=outputs, states=states, dt=dt, name=name, + **kwargs + ) + self.params = {} if params is None else params.copy() - """ + # Store the update and output functions + self.updfcn = updfcn + self.outfcn = outfcn - # Allow ndarray * InputOutputSystem to give IOSystem._rmul_() priority - __array_priority__ = 12 # override ndarray, matrix, SS types + # Check to make sure arguments are consistent + if updfcn is None: + if self.nstates is None: + self.nstates = 0 + else: + raise ValueError("States specified but no update function " + "given.") + if outfcn is None: + # No output function specified => outputs = states + if self.noutputs is None and self.nstates is not None: + self.noutputs = self.nstates + elif self.noutputs is not None and self.noutputs == self.nstates: + # Number of outputs = number of states => all is OK + pass + elif self.noutputs is not None and self.noutputs != 0: + raise ValueError("Outputs specified but no output function " + "(and nstates not known).") - def __init__(self, params=None, **kwargs): - """Create an input/output system. + # Initialize current parameters to default parameters + self._current_params = {} if params is None else params.copy() - The InputOutputSystem constructor is used to create an input/output - object with the core information required for all input/output - systems. Instances of this class are normally created by one of the - input/output subclasses: :class:`~control.LinearICSystem`, - :class:`~control.LinearIOSystem`, :class:`~control.NonlinearIOSystem`, - :class:`~control.InterconnectedSystem`. + def __str__(self): + return f"{InputOutputSystem.__str__(self)}\n\n" + \ + f"Update: {self.updfcn}\n" + \ + f"Output: {self.outfcn}" - """ - # Store the system name, inputs, outputs, and states - name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) + # Return the value of a static nonlinear system + def __call__(sys, u, params=None, squeeze=None): + """Evaluate a (static) nonlinearity at a given input value - # Initialize the data structure - # Note: don't use super() to override LinearIOSystem/StateSpace MRO - NamedIOSystem.__init__( - self, inputs=inputs, outputs=outputs, - states=states, name=name, dt=dt, **kwargs) + If a nonlinear I/O system has no internal state, then evaluating the + system at an input `u` gives the output `y = F(u)`, determined by the + output function. - # default parameters - self.params = {} if params is None else params.copy() + Parameters + ---------- + params : dict, optional + Parameter values for the system. Passed to the evaluation function + for the system as default values, overriding internal defaults. + squeeze : bool, optional + If True and if the system has a single output, return the system + output as a 1D array rather than a 2D array. If False, return the + system output as a 2D array even if the system is SISO. Default + value set by config.defaults['control.squeeze_time_response']. - def __mul__(sys2, sys1): - """Multiply two input/output systems (series interconnection)""" - # Note: order of arguments is flipped so that self = sys2, - # corresponding to the ordering convention of sys2 * sys1 - from .statesp import StateSpace, LinearIOSystem, LinearICSystem - from .xferfcn import TransferFunction + """ + from .timeresp import _process_time_response - # Convert sys1 to an I/O system if needed - if isinstance(sys1, (int, float, np.number)): - sys1 = LinearIOSystem(StateSpace( - [], [], [], sys1 * np.eye(sys2.ninputs))) + # Make sure the call makes sense + if not sys._isstatic(): + raise TypeError( + "function evaluation is only supported for static " + "input/output systems") - elif isinstance(sys1, np.ndarray): - sys1 = LinearIOSystem(StateSpace([], [], [], sys1)) + # If we received any parameters, update them before calling _out() + if params is not None: + sys._update_params(params) - elif isinstance(sys1, (StateSpace, TransferFunction)) and \ - not isinstance(sys1, LinearIOSystem): - sys1 = LinearIOSystem(sys1) + # Evaluate the function on the argument + out = sys._out(0, np.array((0,)), np.asarray(u)) + _, out = _process_time_response( + None, out, issiso=sys.issiso(), squeeze=squeeze) + return out - elif not isinstance(sys1, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys1) + def __mul__(self, other): + """Multiply two input/output systems (series interconnection)""" + # Convert 'other' to an I/O system if needed + other = _convert_static_iosystem(other) + if not isinstance(other, InputOutputSystem): + return NotImplemented # Make sure systems can be interconnected - if sys1.noutputs != sys2.ninputs: - raise ValueError("Can't multiply systems with incompatible " - "inputs and outputs") + if other.noutputs != self.ninputs: + raise ValueError( + "can't multiply systems with incompatible inputs and outputs") # Make sure timebase are compatible - dt = common_timebase(sys1.dt, sys2.dt) + dt = common_timebase(other.dt, self.dt) # Create a new system to handle the composition - inplist = [(0, i) for i in range(sys1.ninputs)] - outlist = [(1, i) for i in range(sys2.noutputs)] + inplist = [(0, i) for i in range(other.ninputs)] + outlist = [(1, i) for i in range(self.noutputs)] newsys = InterconnectedSystem( - (sys1, sys2), inplist=inplist, outlist=outlist) + (other, self), inplist=inplist, outlist=outlist) # Set up the connection map manually newsys.set_connect_map(np.block( - [[np.zeros((sys1.ninputs, sys1.noutputs)), - np.zeros((sys1.ninputs, sys2.noutputs))], - [np.eye(sys2.ninputs, sys1.noutputs), - np.zeros((sys2.ninputs, sys2.noutputs))]] + [[np.zeros((other.ninputs, other.noutputs)), + np.zeros((other.ninputs, self.noutputs))], + [np.eye(self.ninputs, other.noutputs), + np.zeros((self.ninputs, self.noutputs))]] )) - # If both systems are linear, create LinearICSystem - if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): - ss_sys = StateSpace.__mul__(sys2, sys1) - return LinearICSystem(newsys, ss_sys) - # Return the newly created InterconnectedSystem return newsys - def __rmul__(sys1, sys2): + def __rmul__(self, other): """Pre-multiply an input/output systems by a scalar/matrix""" - from .statesp import StateSpace, LinearIOSystem, LinearICSystem - from .xferfcn import TransferFunction - - # Convert sys2 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.noutputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) + # Convert other to an I/O system if needed + other = _convert_static_iosystem(other) + if not isinstance(other, InputOutputSystem): + return NotImplemented - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) + # Make sure systems can be interconnected + if other.noutputs != self.ninputs: + raise ValueError("Can't multiply systems with incompatible " + "inputs and outputs") - return InputOutputSystem.__mul__(sys2, sys1) + # Make sure timebase are compatible + dt = common_timebase(self.dt, other.dt) - def __add__(sys1, sys2): - """Add two input/output systems (parallel interconnection)""" - from .statesp import StateSpace, LinearIOSystem, LinearICSystem - from .xferfcn import TransferFunction - - # Convert sys1 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.ninputs))) + # Create a new system to handle the composition + inplist = [(0, i) for i in range(self.ninputs)] + outlist = [(1, i) for i in range(other.noutputs)] + newsys = InterconnectedSystem( + (self, other), inplist=inplist, outlist=outlist) - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) + # Set up the connection map manually + newsys.set_connect_map(np.block( + [[np.zeros((self.ninputs, self.noutputs)), + np.zeros((self.ninputs, other.noutputs))], + [np.eye(self.ninputs, self.noutputs), + np.zeros((other.ninputs, other.noutputs))]] + )) - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) + # Return the newly created InterconnectedSystem + return newsys - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) + def __add__(self, other): + """Add two input/output systems (parallel interconnection)""" + # Convert other to an I/O system if needed + other = _convert_static_iosystem(other) + if not isinstance(other, InputOutputSystem): + return NotImplemented # Make sure number of input and outputs match - if sys1.ninputs != sys2.ninputs or sys1.noutputs != sys2.noutputs: + if self.ninputs != other.ninputs or self.noutputs != other.noutputs: raise ValueError("Can't add systems with incompatible numbers of " "inputs or outputs.") - ninputs = sys1.ninputs - noutputs = sys1.noutputs # Create a new system to handle the composition - inplist = [[(0, i), (1, i)] for i in range(ninputs)] - outlist = [[(0, i), (1, i)] for i in range(noutputs)] + inplist = [[(0, i), (1, i)] for i in range(self.ninputs)] + outlist = [[(0, i), (1, i)] for i in range(self.noutputs)] newsys = InterconnectedSystem( - (sys1, sys2), inplist=inplist, outlist=outlist) - - # If both systems are linear, create LinearICSystem - if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): - ss_sys = StateSpace.__add__(sys2, sys1) - return LinearICSystem(newsys, ss_sys) + (self, other), inplist=inplist, outlist=outlist) # Return the newly created InterconnectedSystem return newsys - def __radd__(sys1, sys2): + def __radd__(self, other): """Parallel addition of input/output system to a compatible object.""" - from .statesp import StateSpace, LinearIOSystem, LinearICSystem - from .xferfcn import TransferFunction - - # Convert sys2 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.noutputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) + # Convert other to an I/O system if needed + other = _convert_static_iosystem(other) + if not isinstance(other, InputOutputSystem): + return NotImplemented - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) + # Make sure number of input and outputs match + if self.ninputs != other.ninputs or self.noutputs != other.noutputs: + raise ValueError("Can't add systems with incompatible numbers of " + "inputs or outputs.") - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) + # Create a new system to handle the composition + inplist = [[(0, i), (1, i)] for i in range(other.ninputs)] + outlist = [[(0, i), (1, i)] for i in range(other.noutputs)] + newsys = InterconnectedSystem( + (other, self), inplist=inplist, outlist=outlist) - return InputOutputSystem.__add__(sys2, sys1) + # Return the newly created InterconnectedSystem + return newsys - def __sub__(sys1, sys2): + def __sub__(self, other): """Subtract two input/output systems (parallel interconnection)""" - from .statesp import StateSpace, LinearIOSystem, LinearICSystem - from .xferfcn import TransferFunction - - # Convert sys1 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.ninputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) - - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) + # Convert other to an I/O system if needed + other = _convert_static_iosystem(other) + if not isinstance(other, InputOutputSystem): + return NotImplemented # Make sure number of input and outputs match - if sys1.ninputs != sys2.ninputs or sys1.noutputs != sys2.noutputs: - raise ValueError("Can't add systems with incompatible numbers of " - "inputs or outputs.") - ninputs = sys1.ninputs - noutputs = sys1.noutputs + if self.ninputs != other.ninputs or self.noutputs != other.noutputs: + raise ValueError( + "Can't substract systems with incompatible numbers of " + "inputs or outputs.") + ninputs = self.ninputs + noutputs = self.noutputs # Create a new system to handle the composition inplist = [[(0, i), (1, i)] for i in range(ninputs)] outlist = [[(0, i), (1, i, -1)] for i in range(noutputs)] newsys = InterconnectedSystem( - (sys1, sys2), inplist=inplist, outlist=outlist) - - # If both systems are linear, create LinearICSystem - if isinstance(sys1, StateSpace) and isinstance(sys2, StateSpace): - ss_sys = StateSpace.__sub__(sys1, sys2) - return LinearICSystem(newsys, ss_sys) + (self, other), inplist=inplist, outlist=outlist) # Return the newly created InterconnectedSystem return newsys - def __rsub__(sys1, sys2): + def __rsub__(self, other): """Parallel subtraction of I/O system to a compatible object.""" - from .statesp import StateSpace, LinearIOSystem, LinearICSystem - from .xferfcn import TransferFunction - - # Convert sys2 to an I/O system if needed - if isinstance(sys2, (int, float, np.number)): - sys2 = LinearIOSystem(StateSpace( - [], [], [], sys2 * np.eye(sys1.noutputs))) - - elif isinstance(sys2, np.ndarray): - sys2 = LinearIOSystem(StateSpace([], [], [], sys2)) - - elif isinstance(sys2, (StateSpace, TransferFunction)) and \ - not isinstance(sys2, LinearIOSystem): - sys2 = LinearIOSystem(sys2) - - elif not isinstance(sys2, InputOutputSystem): - raise TypeError("Unknown I/O system object ", sys2) - - return InputOutputSystem.__sub__(sys2, sys1) + # Convert other to an I/O system if needed + other = _convert_static_iosystem(other) + if not isinstance(other, InputOutputSystem): + return NotImplemented + return other - self - def __neg__(sys): - """Negate an input/output systems (rescale)""" - from .statesp import StateSpace, LinearIOSystem, LinearICSystem - from .xferfcn import TransferFunction - - if sys.ninputs is None or sys.noutputs is None: + def __neg__(self): + """Negate an input/output system (rescale)""" + if self.ninputs is None or self.noutputs is None: raise ValueError("Can't determine number of inputs or outputs") - # Create a new system to hold the negation - inplist = [(0, i) for i in range(sys.ninputs)] - outlist = [(0, i, -1) for i in range(sys.noutputs)] + # Create a new selftem to hold the negation + inplist = [(0, i) for i in range(self.ninputs)] + outlist = [(0, i, -1) for i in range(self.noutputs)] newsys = InterconnectedSystem( - (sys,), dt=sys.dt, inplist=inplist, outlist=outlist) - - # If the system is linear, create LinearICSystem - if isinstance(sys, StateSpace): - ss_sys = StateSpace.__neg__(sys) - return LinearICSystem(newsys, ss_sys) + (self,), dt=self.dt, inplist=inplist, outlist=outlist) # Return the newly created system return newsys - def __truediv__(sys2, sys1): - """Division of input/output systems - - Only division by scalars and arrays of scalars is supported""" - from .lti import LTI - - # Note: order of arguments is flipped so that self = sys2, - # corresponding to the ordering convention of sys2 * sys1 - - if not isinstance(sys1, (LTI, NamedIOSystem)): - return sys2 * (1/sys1) + def __truediv__(self, other): + """Division of input/output system (by scalar or array)""" + if not isinstance(other, InputOutputSystem): + return self * (1/other) else: return NotImplemented - - # Update parameters used for _rhs, _out (used by subclasses) def _update_params(self, params, warning=False): - if warning: - warn("Parameters passed to InputOutputSystem ignored.") + # Update the current parameter values + self._current_params = self.params.copy() + if params: + self._current_params.update(params) def _rhs(self, t, x, u): """Evaluate right hand side of a differential or difference equation. Private function used to compute the right hand side of an - input/output system model. Intended for fast - evaluation; for a more user-friendly interface - you may want to use :meth:`dynamics`. + input/output system model. Intended for fast evaluation; for a more + user-friendly interface you may want to use :meth:`dynamics`. """ - raise NotImplementedError("Evaluation not implemented for system of type ", - type(self)) + xdot = self.updfcn(t, x, u, self._current_params) \ + if self.updfcn is not None else [] + return np.array(xdot).reshape((-1,)) def dynamics(self, t, x, u, params=None): """Compute the dynamics of a differential or difference equation. @@ -446,8 +415,9 @@ def _out(self, t, x, u): :meth:`output`. """ - # If no output function was defined in subclass, return state - return x + y = self.outfcn(t, x, u, self._current_params) \ + if self.outfcn is not None else x + return np.array(y).reshape((-1,)) def output(self, t, x, u, params=None): """Compute the output of the system @@ -502,19 +472,8 @@ def feedback(self, other=1, sign=-1, params=None): incompatible. """ - from .statesp import StateSpace, LinearIOSystem, LinearICSystem, \ - _convert_to_statespace - - # TODO: add conversion to I/O system when needed - if not isinstance(other, InputOutputSystem): - # Try converting to a state space system - try: - other = _convert_to_statespace(other) - except TypeError: - raise TypeError( - "Feedback around I/O system must be an I/O system " - "or convertable to an I/O system.") - other = LinearIOSystem(other) + # Convert sys2 to an I/O system if needed + other = _convert_static_iosystem(other) # Make sure systems can be interconnected if self.noutputs != other.ninputs or other.noutputs != self.ninputs: @@ -540,11 +499,6 @@ def feedback(self, other=1, sign=-1, params=None): np.zeros((other.ninputs, other.noutputs))]] )) - if isinstance(self, StateSpace) and isinstance(other, StateSpace): - # Special case: maintain linear systems structure - ss_sys = StateSpace.feedback(self, other, sign=sign) - return LinearICSystem(newsys, ss_sys) - # Return the newly created system return newsys @@ -557,8 +511,8 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, :func:`~control.linearize` for complete documentation. """ - from .statesp import StateSpace, LinearIOSystem - + from .statesp import StateSpace + # # If the linearization is not defined by the subclass, perform a # numerical linearization use the `_rhs()` and `_out()` member @@ -610,8 +564,7 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, D[:, i] = (self._out(t, x0, u0 + du) - H0) / eps # Create the state space system - linsys = LinearIOSystem( - StateSpace(A, B, C, D, self.dt, remove_useless_states=False)) + linsys = StateSpace(A, B, C, D, self.dt, remove_useless_states=False) # Set the system name, inputs, outputs, and states if 'copy' in kwargs: @@ -625,173 +578,10 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, linsys.name = name # re-init to include desired signal names if names were provided - return LinearIOSystem(linsys, **kwargs) - - -class NonlinearIOSystem(InputOutputSystem): - """Nonlinear I/O system. - - Creates an :class:`~control.InputOutputSystem` for a nonlinear system by - specifying a state update function and an output function. The new system - can be a continuous or discrete time system (Note: discrete-time systems - are not yet supported by most functions.) - - Parameters - ---------- - updfcn : callable - Function returning the state update function - - `updfcn(t, x, u, params) -> array` - - where `x` is a 1-D array with shape (nstates,), `u` is a 1-D array - with shape (ninputs,), `t` is a float representing the currrent - time, and `params` is a dict containing the values of parameters - used by the function. + return StateSpace(linsys, **kwargs) - outfcn : callable - Function returning the output at the given state - - `outfcn(t, x, u, params) -> array` - - where the arguments are the same as for `upfcn`. - - inputs : int, list of str or None, optional - Description of the system inputs. This can be given as an integer - count or as a list of strings that name the individual signals. - If an integer count is specified, the names of the signal will be - of the form `s[i]` (where `s` is one of `u`, `y`, or `x`). If - this parameter is not given or given as `None`, the relevant - quantity will be determined when possible based on other - information provided to functions using the system. - - outputs : int, list of str or None, optional - Description of the system outputs. Same format as `inputs`. - - states : int, list of str, or None, optional - Description of the system states. Same format as `inputs`. - - dt : timebase, optional - The timebase for the system, used to specify whether the system is - operating in continuous or discrete time. It can have the - following values: - - * dt = 0: continuous time system (default) - * dt > 0: discrete time system with sampling period 'dt' - * dt = True: discrete time with unspecified sampling period - * dt = None: no timebase specified - - name : string, optional - System name (used for specifying signals). If unspecified, a - generic name is generated with a unique integer id. - - params : dict, optional - Parameter values for the systems. Passed to the evaluation - functions for the system as default values, overriding internal - defaults. - - See Also - -------- - InputOutputSystem : Input/output system class. - - """ - def __init__(self, updfcn, outfcn=None, params=None, **kwargs): - """Create a nonlinear I/O system given update and output functions.""" - # Process keyword arguments - name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, end=True) - # Initialize the rest of the structure - super().__init__( - inputs=inputs, outputs=outputs, states=states, - params=params, dt=dt, name=name - ) - - # Store the update and output functions - self.updfcn = updfcn - self.outfcn = outfcn - - # Check to make sure arguments are consistent - if updfcn is None: - if self.nstates is None: - self.nstates = 0 - else: - raise ValueError("States specified but no update function " - "given.") - if outfcn is None: - # No output function specified => outputs = states - if self.noutputs is None and self.nstates is not None: - self.noutputs = self.nstates - elif self.noutputs is not None and self.noutputs == self.nstates: - # Number of outputs = number of states => all is OK - pass - elif self.noutputs is not None and self.noutputs != 0: - raise ValueError("Outputs specified but no output function " - "(and nstates not known).") - - # Initialize current parameters to default parameters - self._current_params = {} if params is None else params.copy() - - def __str__(self): - return f"{InputOutputSystem.__str__(self)}\n\n" + \ - f"Update: {self.updfcn}\n" + \ - f"Output: {self.outfcn}" - - # Return the value of a static nonlinear system - def __call__(sys, u, params=None, squeeze=None): - """Evaluate a (static) nonlinearity at a given input value - - If a nonlinear I/O system has no internal state, then evaluating the - system at an input `u` gives the output `y = F(u)`, determined by the - output function. - - Parameters - ---------- - params : dict, optional - Parameter values for the system. Passed to the evaluation function - for the system as default values, overriding internal defaults. - squeeze : bool, optional - If True and if the system has a single output, return the system - output as a 1D array rather than a 2D array. If False, return the - system output as a 2D array even if the system is SISO. Default - value set by config.defaults['control.squeeze_time_response']. - - """ - from .timeresp import _process_time_response - - # Make sure the call makes sense - if not sys._isstatic(): - raise TypeError( - "function evaluation is only supported for static " - "input/output systems") - - # If we received any parameters, update them before calling _out() - if params is not None: - sys._update_params(params) - - # Evaluate the function on the argument - out = sys._out(0, np.array((0,)), np.asarray(u)) - _, out = _process_time_response( - None, out, issiso=sys.issiso(), squeeze=squeeze) - return out - - def _update_params(self, params, warning=False): - # Update the current parameter values - self._current_params = self.params.copy() - if params: - self._current_params.update(params) - - def _rhs(self, t, x, u): - xdot = self.updfcn(t, x, u, self._current_params) \ - if self.updfcn is not None else [] - return np.array(xdot).reshape((-1,)) - - def _out(self, t, x, u): - y = self.outfcn(t, x, u, self._current_params) \ - if self.outfcn is not None else x - return np.array(y).reshape((-1,)) - - -class InterconnectedSystem(InputOutputSystem): +class InterconnectedSystem(NonlinearIOSystem): """Interconnection of a set of input/output systems. This class is used to implement a system that is an interconnection of @@ -808,9 +598,9 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, params=None, warn_duplicate=None, **kwargs): """Create an I/O system from a list of systems + connection info.""" from .statesp import _convert_to_statespace - from .statesp import StateSpace, LinearIOSystem, LinearICSystem + from .statesp import StateSpace, LinearICSystem from .xferfcn import TransferFunction - + # Convert input and output names to lists if they aren't already if inplist is not None and not isinstance(inplist, list): inplist = [inplist] @@ -821,7 +611,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, dt = kwargs.pop('dt', None) # Process keyword arguments (except dt) - name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) + name, inputs, outputs, states, _ = _process_iosys_keywords(kwargs) # Initialize the system list and index self.syslist = list(syslist) # insure modifications can be made @@ -838,10 +628,9 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, # Go through the system list and keep track of counts, offsets for sysidx, sys in enumerate(self.syslist): - # If we were passed a SS or TF system, convert to LinearIOSystem - if isinstance(sys, (StateSpace, TransferFunction)) and \ - not isinstance(sys, LinearIOSystem): - sys = LinearIOSystem(sys, name=sys.name) + # Convert transfer functions to state space + if isinstance(sys, TransferFunction): + sys = _convert_to_statespace(sys) self.syslist[sysidx] = sys # Make sure time bases are consistent @@ -900,7 +689,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, if states is None: states = [] - state_name_delim = config.defaults['namedio.state_name_delim'] + state_name_delim = config.defaults['iosys.state_name_delim'] for sys, sysname in sysobj_name_dct.items(): states += [sysname + state_name_delim + statename for statename in sys.state_index.keys()] @@ -922,7 +711,9 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, # Note: don't use super() to override LinearICSystem/StateSpace MRO InputOutputSystem.__init__( self, inputs=inputs, outputs=outputs, - states=states, params=params, dt=dt, name=name, **kwargs) + states=states, dt=dt, name=name, **kwargs) + # TODO: this should get initialized above + self.params = {} if params is None else params.copy() # Convert the list of interconnections to a connection map (matrix) self.connect_map = np.zeros((ninputs, noutputs)) @@ -1436,7 +1227,7 @@ def input_output_response( start with zero initial condition since this can be specified as [xsys_0, 0]. A warning is issued if the initial conditions are padded and and the final listed initial state is not zero. - + 2. If discontinuous inputs are given, the underlying SciPy numerical integration algorithms can sometimes produce erroneous results due to the default tolerances that are used. The `ivp_method` and @@ -1473,7 +1264,7 @@ def input_output_response( raise TypeError("unrecognized keyword(s): ", str(kwargs)) # Sanity checking on the input - if not isinstance(sys, InputOutputSystem): + if not isinstance(sys, NonlinearIOSystem): raise TypeError("System of type ", type(sys), " not valid") # Compute the time interval and number of steps @@ -1986,8 +1777,8 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): if `copy_names` is `False`, a generic name is generated with a unique integer id. If `copy_names` is `True`, the new system name is determined by adding the prefix and suffix strings in - config.defaults['namedio.linearized_system_name_prefix'] and - config.defaults['namedio.linearized_system_name_suffix'], with the + config.defaults['iosys.linearized_system_name_prefix'] and + config.defaults['iosys.linearized_system_name_suffix'], with the default being to add the suffix '$linearized'. copy_names : bool, Optional If True, Copy the names of the input signals, output signals, and @@ -1995,7 +1786,7 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): Returns ------- - ss_sys : LinearIOSystem + ss_sys : StateSpace The linearization of the system, as a :class:`~control.LinearIOSystem` object (which is also a :class:`~control.StateSpace` object. @@ -2249,8 +2040,8 @@ def interconnect( If a system is duplicated in the list of systems to be connected, a warning is generated and a copy of the system is created with the name of the new system determined by adding the prefix and suffix - strings in config.defaults['namedio.linearized_system_name_prefix'] - and config.defaults['namedio.linearized_system_name_suffix'], with the + strings in config.defaults['iosys.linearized_system_name_prefix'] + and config.defaults['iosys.linearized_system_name_suffix'], with the default being to add the suffix '$copy' to the system name. In addition to explicit lists of system signals, it is possible to @@ -2279,12 +2070,11 @@ def interconnect( `outputs`, for more natural naming of SISO systems. """ - from .statesp import StateSpace, LinearIOSystem, LinearICSystem, \ - _convert_to_statespace + from .statesp import StateSpace, LinearICSystem, _convert_to_statespace from .xferfcn import TransferFunction - - dt = kwargs.pop('dt', None) # by pass normal 'dt' processing - name, inputs, outputs, states, _ = _process_namedio_keywords(kwargs) + + dt = kwargs.pop('dt', None) # bypass normal 'dt' processing + name, inputs, outputs, states, _ = _process_iosys_keywords(kwargs) if not check_unused and (ignore_inputs or ignore_outputs): raise ValueError('check_unused is False, but either ' @@ -2582,7 +2372,7 @@ def interconnect( newsys.check_unused_signals(ignore_inputs, ignore_outputs) # If all subsystems are linear systems, maintain linear structure - if all([isinstance(sys, LinearIOSystem) for sys in newsys.syslist]): + if all([isinstance(sys, StateSpace) for sys in newsys.syslist]): return LinearICSystem(newsys, None) return newsys @@ -2600,3 +2390,21 @@ def _concatenate_list_elements(X, name='X'): # Otherwise, do nothing return X + + +# Utility function to create an I/O system from a static gain +def _convert_static_iosystem(sys): + # If we were given an I/O system, do nothing + if isinstance(sys, InputOutputSystem): + return sys + + # Convert sys1 to an I/O system if needed + if isinstance(sys, (int, float, np.number)): + return NonlinearIOSystem( + None, lambda t, x, u, params: sys * u, inputs=1, outputs=1) + + elif isinstance(sys, np.ndarray): + sys = np.atleast_2d(sys) + return NonlinearIOSystem( + None, lambda t, x, u, params: sys @ u, + outputs=sys.shape[0], inputs=sys.shape[1]) diff --git a/control/sisotool.py b/control/sisotool.py index 1a06ef60e..b9ee92c10 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -5,7 +5,7 @@ from .timeresp import step_response from .iosys import common_timebase, isctime, isdtime from .xferfcn import tf -from .statesp import ss, tf2io, summing_junction +from .statesp import ss, summing_junction from .bdalg import append, connect from .nlsys import interconnect from control.statesp import _convert_to_statespace diff --git a/control/statefbk.py b/control/statefbk.py index d2772fcb6..8f3e6be5a 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -46,11 +46,10 @@ from . import statesp from .mateqn import care, dare, _check_shape -from .statesp import StateSpace, _ssmatrix, _convert_to_statespace +from .statesp import StateSpace, _ssmatrix, _convert_to_statespace, ss from .lti import LTI from .iosys import isdtime, isctime, _process_indices, _process_labels -from .nlsys import InputOutputSystem, NonlinearIOSystem, interconnect -from .statesp import LinearIOSystem, ss +from .nlsys import NonlinearIOSystem, interconnect from .exception import ControlSlycot, ControlArgument, ControlDimension, \ ControlNotImplemented from .config import _process_legacy_keyword @@ -610,7 +609,7 @@ def create_statefbk_iosystem( Parameters ---------- - sys : InputOutputSystem + sys : NonlinearIOSystem The I/O system that represents the process dynamics. If no estimator is given, the output of this system should represent the full state. @@ -644,7 +643,7 @@ def create_statefbk_iosystem( multiplied by the current and desired state to generate the error for the internal integrator states of the control law. - estimator : InputOutputSystem, optional + estimator : NonlinearIOSystem, optional If an estimator is provided, use the states of the estimator as the system inputs for the controller. @@ -676,7 +675,7 @@ def create_statefbk_iosystem( Returns ------- - ctrl : InputOutputSystem + ctrl : NonlinearIOSystem Input/output system representing the controller. This system takes as inputs the desired state `xd`, the desired input `ud`, and either the system state `x` or the estimated state @@ -689,7 +688,7 @@ def create_statefbk_iosystem( (proportional and integral) are evaluated using the scheduling variables specified by `gainsched_indices`. - clsys : InputOutputSystem + clsys : NonlinearIOSystem Input/output system representing the closed loop system. This systems takes as inputs the desired trajectory `(xd, ud)` and outputs the system state `x` and the applied input `u` @@ -724,7 +723,7 @@ def create_statefbk_iosystem( """ # Make sure that we were passed an I/O system as an input - if not isinstance(sys, InputOutputSystem): + if not isinstance(sys, NonlinearIOSystem): raise ControlArgument("Input system must be I/O system") # Process (legacy) keywords diff --git a/control/statesp.py b/control/statesp.py index 30480f491..684ebb730 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -63,9 +63,9 @@ from .exception import ControlSlycot from .frdata import FrequencyResponseData from .lti import LTI, _process_frequency_response -from .iosys import NamedIOSystem, common_timebase, isdtime, \ - _process_namedio_keywords, _process_dt_keyword, _process_signal_list -from .nlsys import InputOutputSystem, NonlinearIOSystem, InterconnectedSystem +from .iosys import InputOutputSystem, common_timebase, isdtime, \ + _process_iosys_keywords, _process_dt_keyword, _process_signal_list +from .nlsys import NonlinearIOSystem, InterconnectedSystem from . import config from copy import deepcopy @@ -74,8 +74,8 @@ except ImportError: ab13dd = None -__all__ = ['StateSpace', 'LinearIOSystem', 'LinearICSystem', 'ss2io', - 'tf2io', 'tf2ss', 'ssdata', 'linfnorm', 'ss', 'rss', 'drss', +__all__ = ['StateSpace', 'LinearICSystem', 'ss2io', 'tf2io', 'tf2ss', + 'ssdata', 'linfnorm', 'ss', 'rss', 'drss', 'summing_junction'] # Define module default parameter values @@ -87,7 +87,7 @@ } -class StateSpace(LTI): +class StateSpace(NonlinearIOSystem, LTI): r"""StateSpace(A, B, C, D[, dt]) A class for representing state-space models. @@ -148,7 +148,7 @@ class StateSpace(LTI): The default value of dt can be changed by changing the value of ``control.config.defaults['control.default_dt']``. - Note: timebase processing has moved to namedio. + Note: timebase processing has moved to iosys. A state space system is callable and returns the value of the transfer function evaluated at a point in the complex plane. See @@ -175,9 +175,9 @@ class StateSpace(LTI): """ # Allow ndarray * StateSpace to give StateSpace._rmul_() priority - __array_priority__ = 11 # override ndarray and matrix types + __array_priority__ = 12 # override ndarray and TF types - def __init__(self, *args, init_namedio=True, **kwargs): + def __init__(self, *args, **kwargs): """StateSpace(A, B, C, D[, dt]) Construct a state space object. @@ -195,10 +195,6 @@ def __init__(self, *args, init_namedio=True, **kwargs): value is read from `config.defaults['statesp.remove_useless_states']` (default = False). - The `init_namedio` keyword can be used to turn off initialization of - system and signal names. This is used internally by the - :class:`LinearIOSystem` class to avoid renaming. - """ # # Process positional arguments @@ -261,23 +257,26 @@ def __init__(self, *args, init_namedio=True, **kwargs): 'remove_useless_states', config.defaults['statesp.remove_useless_states']) - # Initialize the instance variables - if init_namedio: - # Process namedio keywords - defaults = args[0] if len(args) == 1 else \ - {'inputs': D.shape[1], 'outputs': D.shape[0], - 'states': A.shape[0]} - name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, defaults, static=(A.size == 0), end=True) - - # Initialize LTI (NamedIOSystem) object - super().__init__( - name=name, inputs=inputs, outputs=outputs, - states=states, dt=dt) - elif kwargs: - raise TypeError("unrecognized keyword(s): ", str(kwargs)) - - # Reset shape if system is static + # Process iosys keywords + defaults = args[0] if len(args) == 1 else \ + {'inputs': D.shape[1], 'outputs': D.shape[0], + 'states': A.shape[0]} + name, inputs, outputs, states, dt = _process_iosys_keywords( + kwargs, defaults, static=(A.size == 0)) + + # Create updfcn and outfcn + updfcn = lambda t, x, u, params: \ + self.A @ np.atleast_1d(x) + self.B @ np.atleast_1d(u) + outfcn = lambda t, x, u, params: \ + self.C @ np.atleast_1d(x) + self.D @ np.atleast_1d(u) + + # Initialize NonlinearIOSystem object + super().__init__( + updfcn, outfcn, + name=name, inputs=inputs, outputs=outputs, + states=states, dt=dt, **kwargs) + + # Reset shapes (may not be needed once np.matrix support is removed) if self._isstatic(): A.shape = (0, 0) B.shape = (0, self.ninputs) @@ -405,7 +404,8 @@ def _remove_useless_states(self): def __str__(self): """Return string representation of the state space system.""" - string = "\n".join([ + string = f"{InputOutputSystem.__str__(self)}\n\n" + string += "\n".join([ "{} = {}\n".format(Mvar, "\n ".join(str(M).splitlines())) for Mvar, M in zip(["A", "B", "C", "D"], @@ -417,6 +417,7 @@ def __str__(self): # represent to implement a re-loadable version def __repr__(self): """Print state-space system in loadable form.""" + # TODO: add input/output names return "StateSpace({A}, {B}, {C}, {D}{dt})".format( A=self.A.__repr__(), B=self.B.__repr__(), C=self.C.__repr__(), D=self.D.__repr__(), @@ -704,7 +705,7 @@ def __rmul__(self, other): except Exception as e: print(e) pass - raise TypeError("can't interconnect systems") + return NotImplemented # TODO: general __truediv__, and __rtruediv__; requires descriptor system support def __truediv__(self, other): @@ -713,7 +714,7 @@ def __truediv__(self, other): Only division by TFs, FRDs, scalars, and arrays of scalars is supported. """ - if not isinstance(other, (LTI, NamedIOSystem)): + if not isinstance(other, (LTI, InputOutputSystem)): return self * (1/other) else: return NotImplemented @@ -957,8 +958,13 @@ def zeros(self): # Feedback around a state space system def feedback(self, other=1, sign=-1): """Feedback interconnection between two LTI systems.""" + try: + other = _convert_to_statespace(other) + except: + pass - other = _convert_to_statespace(other) + if not isinstance(other, StateSpace): + return NonlinearIOSystem.feedback(self, other, sign) # Check to make sure the dimensions are OK if self.ninputs != other.noutputs or self.noutputs != other.ninputs: @@ -1207,8 +1213,8 @@ def __getitem__(self, indices): raise IOError('must provide indices of length 2 for state space') outdx = indices[0] if isinstance(indices[0], list) else [indices[0]] inpdx = indices[1] if isinstance(indices[1], list) else [indices[1]] - sysname = config.defaults['namedio.indexed_system_name_prefix'] + \ - self.name + config.defaults['namedio.indexed_system_name_suffix'] + sysname = config.defaults['iosys.indexed_system_name_prefix'] + \ + self.name + config.defaults['iosys.indexed_system_name_suffix'] return StateSpace( self.A, self.B[:, inpdx], self.C[outdx, :], self.D[outdx, inpdx], self.dt, name=sysname, @@ -1249,8 +1255,8 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, if `copy_names` is `False`, a generic name is generated with a unique integer id. If `copy_names` is `True`, the new system name is determined by adding the prefix and suffix strings in - config.defaults['namedio.sampled_system_name_prefix'] and - config.defaults['namedio.sampled_system_name_suffix'], with the + config.defaults['iosys.sampled_system_name_prefix'] and + config.defaults['iosys.sampled_system_name_suffix'], with the default being to add the suffix '$sampled'. copy_names : bool, Optional If True, copy the names of the input signals, output @@ -1434,132 +1440,14 @@ def output(self, t, x, u=None, params=None): + (self.D @ u).reshape((-1,)) # return as row vector -class LinearIOSystem(InputOutputSystem, StateSpace): - """Input/output representation of a linear (state space) system. - - This class is used to implement a system that is a linear state - space system (defined by the StateSpace system object). - - Parameters - ---------- - linsys : StateSpace or TransferFunction - LTI system to be converted. - inputs : int, list of str or None, optional - New system input labels (defaults to linsys input labels). - outputs : int, list of str or None, optional - New system output labels (defaults to linsys output labels). - states : int, list of str, or None, optional - New system input labels (defaults to linsys output labels). - dt : None, True or float, optional - System timebase. 0 (default) indicates continuous time, True indicates - discrete time with unspecified sampling time, positive number is - discrete time with specified sampling time, None indicates unspecified - timebase (either continuous or discrete time). - name : string, optional - System name (used for specifying signals). If unspecified, a - generic name is generated with a unique integer id. - params : dict, optional - Parameter values for the systems. Passed to the evaluation functions - for the system as default values, overriding internal defaults. - - Attributes - ---------- - ninputs, noutputs, nstates, dt, etc - See :class:`InputOutputSystem` for inherited attributes. - - A, B, C, D - See :class:`~control.StateSpace` for inherited attributes. - - See Also - -------- - InputOutputSystem : Input/output system class. - - """ - def __init__(self, linsys, **kwargs): - """Create an I/O system from a state space linear system. - - Converts a :class:`~control.StateSpace` system into an - :class:`~control.InputOutputSystem` with the same inputs, outputs, and - states. The new system can be a continuous or discrete time system. - - """ - from .xferfcn import TransferFunction - - if isinstance(linsys, TransferFunction): - # Convert system to StateSpace - linsys = _convert_to_statespace(linsys) - - elif not isinstance(linsys, StateSpace): - raise TypeError("Linear I/O system must be a state space " - "or transfer function object") - - # Process keyword arguments - name, inputs, outputs, states, dt = _process_namedio_keywords( - kwargs, linsys) - - # Create the I/O system object - # Note: don't use super() to override StateSpace MRO - InputOutputSystem.__init__( - self, inputs=inputs, outputs=outputs, states=states, - params=None, dt=dt, name=name, **kwargs) - - # Initalize additional state space variables - StateSpace.__init__( - self, linsys, remove_useless_states=False, init_namedio=False) - - # When sampling a LinearIO system, return a LinearIOSystem - def sample(self, *args, **kwargs): - return LinearIOSystem(StateSpace.sample(self, *args, **kwargs)) - - sample.__doc__ = StateSpace.sample.__doc__ - - # The following text needs to be replicated from StateSpace in order for - # this entry to show up properly in sphinx doccumentation (not sure why, - # but it was the only way to get it to work). - # - #: Deprecated attribute; use :attr:`nstates` instead. - #: - #: The ``state`` attribute was used to store the number of states for : a - #: state space system. It is no longer used. If you need to access the - #: number of states, use :attr:`nstates`. - states = property(StateSpace._get_states, StateSpace._set_states) - - def _update_params(self, params=None, warning=True): - # Parameters not supported; issue a warning - if params and warning: - warn("Parameters passed to LinearIOSystems are ignored.") - - def _rhs(self, t, x, u): - # Convert input to column vector and then change output to 1D array - xdot = self.A @ np.reshape(x, (-1, 1)) \ - + self.B @ np.reshape(u, (-1, 1)) - return np.array(xdot).reshape((-1,)) - - def _out(self, t, x, u): - # Convert input to column vector and then change output to 1D array - y = self.C @ np.reshape(x, (-1, 1)) \ - + self.D @ np.reshape(u, (-1, 1)) - return np.array(y).reshape((-1,)) - - def __repr__(self): - # Need to define so that I/O system gets used instead of StateSpace - return InputOutputSystem.__repr__(self) - - def __str__(self): - return InputOutputSystem.__str__(self) + "\n\n" \ - + StateSpace.__str__(self) - - -class LinearICSystem(InterconnectedSystem, LinearIOSystem): - +class LinearICSystem(InterconnectedSystem, StateSpace): """Interconnection of a set of linear input/output systems. This class is used to implement a system that is an interconnection of linear input/output systems. It has all of the structure of an - :class:`~control.InterconnectedSystem`, but also maintains the requirement - elements of :class:`~control.LinearIOSystem`, including the - :class:`StateSpace` class structure, allowing it to be passed to functions - that expect a :class:`StateSpace` system. + :class:`~control.InterconnectedSystem`, but also maintains the required + elements of the :class:`StateSpace` class structure, allowing it to be + passed to functions that expect a :class:`StateSpace` system. This class is generated using :func:`~control.interconnect` and not called directly. @@ -1567,21 +1455,21 @@ class LinearICSystem(InterconnectedSystem, LinearIOSystem): """ def __init__(self, io_sys, ss_sys=None): - if not isinstance(io_sys, InterconnectedSystem): - raise TypeError("First argument must be an interconnected system.") - + # + # Because this is a "hybrid" object, the initialization proceeds in + # stages. We first create an empty InputOutputSystem of the + # appropriate size, then copy over the elements of the + # InterconnectedIOSystem class. From there we compute the + # linearization of the system (if needed) and then populate the + # StateSpace parameters. + # # Create the (essentially empty) I/O system object InputOutputSystem.__init__( - self, name=io_sys.name, params=io_sys.params) - - # Copy over the named I/O system attributes - self.syslist = io_sys.syslist - self.ninputs, self.input_index = io_sys.ninputs, io_sys.input_index - self.noutputs, self.output_index = io_sys.noutputs, io_sys.output_index - self.nstates, self.state_index = io_sys.nstates, io_sys.state_index - self.dt = io_sys.dt + self, name=io_sys.name, inputs=io_sys.ninputs, + outputs=io_sys.noutputs, states=io_sys.nstates, dt=io_sys.dt) # Copy over the attributes from the interconnected system + self.syslist = io_sys.syslist self.syslist_index = io_sys.syslist_index self.state_offset = io_sys.state_offset self.input_offset = io_sys.input_offset @@ -1596,19 +1484,14 @@ def __init__(self, io_sys, ss_sys=None): if ss_sys is None: ss_sys = self.linearize(0, 0) - # Initialize the state space attributes - if isinstance(ss_sys, StateSpace): - # Make sure the dimensions match - if io_sys.ninputs != ss_sys.ninputs or \ - io_sys.noutputs != ss_sys.noutputs or \ - io_sys.nstates != ss_sys.nstates: - raise ValueError("System dimensions for first and second " - "arguments must match.") - StateSpace.__init__( - self, ss_sys, remove_useless_states=False, init_namedio=False) + # Initialize the state space object + StateSpace.__init__( + self, ss_sys, name=io_sys.name, inputs=io_sys.input_labels, + outputs=io_sys.output_labels, states=io_sys.state_labels, + params=io_sys.params, remove_useless_states=False) - else: - raise TypeError("Second argument must be a state space system.") + # Use StateSpace.__call__ to evaluate at a given complex value + self.__call__ = StateSpace.__call__ # The following text needs to be replicated from StateSpace in order for # this entry to show up properly in sphinx doccumentation (not sure why, @@ -1658,6 +1541,8 @@ def ss(*args, **kwargs): y[k] &= C x[k] + D u[k] The matrices can be given as *array like* data types or strings. + Everything that the constructor of :class:`numpy.matrix` accepts is + permissible here too. ``ss(args, inputs=['u1', ..., 'up'], outputs=['y1', ..., 'yq'], states=['x1', ..., 'xn'])`` Create a system with named input, output, and state signals. @@ -1685,7 +1570,7 @@ def ss(*args, **kwargs): Returns ------- - out: :class:`LinearIOSystem` + out: :class:`StateSpace` Linear input/output system. Raises @@ -1719,7 +1604,7 @@ def ss(*args, **kwargs): elif len(args) == 4 or len(args) == 5: # Create a state space function from A, B, C, D[, dt] - sys = LinearIOSystem(StateSpace(*args, **kwargs)) + sys = StateSpace(*args, **kwargs) elif len(args) == 1: sys = args[0] @@ -1730,7 +1615,7 @@ def ss(*args, **kwargs): "non-unique state space realization") # Create a state space system from an LTI system - sys = LinearIOSystem( + sys = StateSpace( _convert_to_statespace( sys, use_prefix_suffix=not sys._generic_name_check()), @@ -1748,8 +1633,8 @@ def ss(*args, **kwargs): # Convert a state space system into an input/output system (wrapper) def ss2io(*args, **kwargs): - return LinearIOSystem(*args, **kwargs) -ss2io.__doc__ = LinearIOSystem.__init__.__doc__ + return StateSpace(*args, **kwargs) +ss2io.__doc__ = StateSpace.__init__.__doc__ # Convert a transfer function into an input/output system (wrapper) @@ -1824,7 +1709,7 @@ def tf2io(*args, **kwargs): linsys = tf2ss(*args) # Now convert the state space system to an I/O system - return LinearIOSystem(linsys, **kwargs) + return StateSpace(linsys, **kwargs) def tf2ss(*args, **kwargs): @@ -2018,7 +1903,7 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): Returns ------- - sys : LinearIOSystem + sys : StateSpace The randomly created linear system. Raises @@ -2037,7 +1922,7 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): """ # Process keyword arguments kwargs.update({'states': states, 'outputs': outputs, 'inputs': inputs}) - name, inputs, outputs, states, dt = _process_namedio_keywords(kwargs) + name, inputs, outputs, states, dt = _process_iosys_keywords(kwargs) # Figure out the size of the sytem nstates, _ = _process_signal_list(states) @@ -2048,7 +1933,7 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): nstates, ninputs, noutputs, 'c' if not dt else 'd', name=name, strictly_proper=strictly_proper) - return LinearIOSystem( + return StateSpace( sys, name=name, states=states, inputs=inputs, outputs=outputs, dt=dt, **kwargs) @@ -2131,7 +2016,7 @@ def summing_junction( Returns ------- - sys : static LinearIOSystem + sys : static StateSpace Linear input/output system object with no states and only a direct term that implements the summing junction. @@ -2180,7 +2065,7 @@ def _parse_list(signals, signame='input', prefix='u'): kwargs['inputs'] = inputs # positional/keyword -> keyword if output is not None: kwargs['output'] = output # positional/keyword -> keyword - name, inputs, output, states, dt = _process_namedio_keywords( + name, inputs, output, states, dt = _process_iosys_keywords( kwargs, {'inputs': None, 'outputs': 'y'}, end=True) if inputs is None: raise TypeError("input specification is required") @@ -2218,8 +2103,8 @@ def _parse_list(signals, signame='input', prefix='u'): ss_sys = StateSpace( np.zeros((0, 0)), np.ones((0, ninputs)), np.ones((noutputs, 0)), D) - # Create a LinearIOSystem - return LinearIOSystem( + # Create a StateSpace + return StateSpace( ss_sys, inputs=input_names, outputs=output_names, name=name) diff --git a/control/stochsys.py b/control/stochsys.py index 94dee3a95..0cfeb933a 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -20,13 +20,13 @@ import scipy as sp from math import sqrt -from .nlsys import InputOutputSystem, NonlinearIOSystem +from .statesp import StateSpace from .lti import LTI -from .iosys import isctime, isdtime -from .iosys import _process_indices, _process_labels, \ - _process_control_disturbance_indices +from .iosys import InputOutputSystem, isctime, isdtime, _process_indices, \ + _process_labels, _process_control_disturbance_indices +from .nlsys import NonlinearIOSystem from .mateqn import care, dare, _check_shape -from .statesp import StateSpace, LinearIOSystem, _ssmatrix +from .statesp import StateSpace, _ssmatrix from .exception import ControlArgument, ControlNotImplemented from .config import _process_legacy_keyword @@ -342,7 +342,7 @@ def create_estimator_iosystem( Parameters ---------- - sys : LinearIOSystem + sys : StateSpace The linear I/O system that represents the process dynamics. QN, RN : ndarray Disturbance and measurement noise covariance matrices. @@ -431,7 +431,7 @@ def create_estimator_iosystem( """ # Make sure that we were passed an I/O system as an input - if not isinstance(sys, LinearIOSystem): + if not isinstance(sys, StateSpace): raise ControlArgument("Input system must be a linear I/O system") # Process legacy keywords diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 1d3abe2c2..3d0548555 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -310,7 +310,7 @@ def test_system_indexing(self): # Reset the format ct.config.set_defaults( - 'namedio', indexed_system_name_prefix='PRE', + 'iosys', indexed_system_name_prefix='PRE', indexed_system_name_suffix='POST') sys2 = sys[1:, 1:] assert sys2.name == 'PRE' + sys.name + 'POST' diff --git a/control/tests/frd_test.py b/control/tests/frd_test.py index db86a5e6b..987121987 100644 --- a/control/tests/frd_test.py +++ b/control/tests/frd_test.py @@ -492,7 +492,7 @@ def test_unrecognized_keyword(self): def test_named_signals(): - ct.iosys.NamedIOSystem._idCounter = 0 + ct.iosys.InputOutputSystem._idCounter = 0 h1 = TransferFunction([1], [1, 2, 2]) h2 = TransferFunction([1], [0.1, 1]) omega = np.logspace(-1, 2, 10) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index b301d3c26..9fa876c27 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -170,9 +170,9 @@ def test_interconnect_docstring(): """Test the examples from the interconnect() docstring""" # MIMO interconnection (note: use [C, P] instead of [P, C] for state order) - P = ct.LinearIOSystem( + P = ct.StateSpace( ct.rss(2, 2, 2, strictly_proper=True), name='P') - C = ct.LinearIOSystem(ct.rss(2, 2, 2), name='C') + C = ct.StateSpace(ct.rss(2, 2, 2), name='C') T = ct.interconnect( [C, P], connections = [ @@ -208,9 +208,9 @@ def test_interconnect_exceptions(): assert (T.ninputs, T.noutputs, T.nstates) == (1, 1, 2) # Unrecognized arguments - # LinearIOSystem + # StateSpace with pytest.raises(TypeError, match="unrecognized keyword"): - P = ct.LinearIOSystem(ct.rss(2, 1, 1), output_name='y') + P = ct.StateSpace(ct.rss(2, 1, 1), output_name='y') # Interconnect with pytest.raises(TypeError, match="unrecognized keyword"): @@ -236,9 +236,9 @@ def test_interconnect_exceptions(): def test_string_inputoutput(): # regression test for gh-692 P1 = ct.rss(2, 1, 1) - P1_iosys = ct.LinearIOSystem(P1, inputs='u1', outputs='y1') + P1_iosys = ct.StateSpace(P1, inputs='u1', outputs='y1') P2 = ct.rss(2, 1, 1) - P2_iosys = ct.LinearIOSystem(P2, inputs='y1', outputs='y2') + P2_iosys = ct.StateSpace(P2, inputs='y1', outputs='y2') P_s1 = ct.interconnect( [P1_iosys, P2_iosys], inputs='u1', outputs=['y2'], debug=True) @@ -274,30 +274,30 @@ def test_linear_interconnect(): # Interconnections of linear I/O systems should be linear I/O system assert isinstance( ct.interconnect([tf_ctrl, tf_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) assert isinstance( ct.interconnect([ss_ctrl, ss_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) assert isinstance( ct.interconnect([tf_ctrl, ss_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) assert isinstance( ct.interconnect([ss_ctrl, tf_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) # Interconnections with nonliner I/O systems should not be linear assert ~isinstance( ct.interconnect([nl_ctrl, ss_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) assert ~isinstance( ct.interconnect([nl_ctrl, tf_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) assert ~isinstance( ct.interconnect([ss_ctrl, nl_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) assert ~isinstance( ct.interconnect([tf_ctrl, nl_plant, sumblk], inputs='r', outputs='y'), - ct.LinearIOSystem) + ct.StateSpace) # Implicit converstion of transfer function should retain name clsys = ct.interconnect( diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 649d38e66..5feee82e8 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -16,7 +16,6 @@ from math import sqrt import control as ct -from control import nlsys as ios class TestIOSys: @@ -65,7 +64,7 @@ def test_linear_iosys(self, tsys): # Make sure that simulations also line up T, U, X0 = tsys.T, tsys.U, tsys.X0 lti_t, lti_y = ct.forced_response(linsys, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys, T, U, X0) np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) @@ -83,7 +82,7 @@ def test_tf2io(self, tsys): # Verify correctness via simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 lti_t, lti_y = ct.forced_response(linsys, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys, T, U, X0) np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) @@ -118,7 +117,7 @@ def test_ss2io(self, tsys): def test_iosys_unspecified(self, tsys): """System with unspecified inputs and outputs""" - sys = ios.NonlinearIOSystem(secord_update, secord_output) + sys = ct.NonlinearIOSystem(secord_update, secord_output) np.testing.assert_raises(TypeError, sys.__mul__, sys) def test_iosys_print(self, tsys, capsys): @@ -130,27 +129,27 @@ def test_iosys_print(self, tsys, capsys): print(iosys) # I/O system without ninputs, noutputs - ios_unspecified = ios.NonlinearIOSystem(secord_update, secord_output) + ios_unspecified = ct.NonlinearIOSystem(secord_update, secord_output) print(ios_unspecified) # I/O system with derived inputs and outputs - ios_linearized = ios.linearize(ios_unspecified, [0, 0], [0]) + ios_linearized = ct.linearize(ios_unspecified, [0, 0], [0]) print(ios_linearized) - @pytest.mark.parametrize("ss", [ios.NonlinearIOSystem, ct.ss]) + @pytest.mark.parametrize("ss", [ct.NonlinearIOSystem, ct.ss]) def test_nonlinear_iosys(self, tsys, ss): # Create a simple nonlinear I/O system - nlsys = ios.NonlinearIOSystem(predprey) + nlsys = ct.NonlinearIOSystem(predprey) T = tsys.T # Start by simulating from an equilibrium point X0 = [0, 0] - ios_t, ios_y = ios.input_output_response(nlsys, T, 0, X0) + ios_t, ios_y = ct.input_output_response(nlsys, T, 0, X0) np.testing.assert_array_almost_equal(ios_y, np.zeros(np.shape(ios_y))) # Now simulate from a nonzero point X0 = [0.5, 0.5] - ios_t, ios_y = ios.input_output_response(nlsys, T, 0, X0) + ios_t, ios_y = ct.input_output_response(nlsys, T, 0, X0) # # Simulate a linear function as a nonlinear function and compare @@ -167,12 +166,12 @@ def test_nonlinear_iosys(self, tsys, ss): np.reshape(linsys.C @ np.reshape(x, (-1, 1)) + linsys.D @ np.reshape(u, (-1, 1)), (-1,)) - nlsys = ios.NonlinearIOSystem(nlupd, nlout, inputs=1, outputs=1) + nlsys = ct.NonlinearIOSystem(nlupd, nlout, inputs=1, outputs=1) # Make sure that simulations also line up T, U, X0 = tsys.T, tsys.U, tsys.X0 lti_t, lti_y = ct.forced_response(linsys, T, U, X0) - ios_t, ios_y = ios.input_output_response(nlsys, T, U, X0) + ios_t, ios_y = ct.input_output_response(nlsys, T, U, X0) np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.) @@ -185,7 +184,7 @@ def kincar_update(t, x, u, params): def kincar_output(t, x, u, params): return np.array([x[0], x[1]]) - return ios.NonlinearIOSystem( + return ct.NonlinearIOSystem( kincar_update, kincar_output, inputs = ['v', 'phi'], outputs = ['x', 'y'], @@ -266,7 +265,7 @@ def test_connect(self, tsys): # Connect systems in different ways and compare to StateSpace linsys_series = linsys2 * linsys1 - iosys_series = ios.InterconnectedSystem( + iosys_series = ct.InterconnectedSystem( [iosys1, iosys2], # systems [[1, 0]], # interconnection (series) 0, # input = first system @@ -276,7 +275,7 @@ def test_connect(self, tsys): # Run a simulation and compare to linear response T, U = tsys.T, tsys.U X0 = np.concatenate((tsys.X0, tsys.X0)) - ios_t, ios_y, ios_x = ios.input_output_response( + ios_t, ios_y, ios_x = ct.input_output_response( iosys_series, T, U, X0, return_x=True) lti_t, lti_y = ct.forced_response(linsys_series, T, U, X0) np.testing.assert_array_almost_equal(lti_t, ios_t) @@ -286,14 +285,14 @@ def test_connect(self, tsys): linsys2c = tsys.siso_linsys linsys2c.dt = 0 # Reset the timebase iosys2c = ct.LinearIOSystem(linsys2c) - iosys_series = ios.InterconnectedSystem( + iosys_series = ct.InterconnectedSystem( [iosys1, iosys2c], # systems [[1, 0]], # interconnection (series) 0, # input = first system 1 # output = second system ) assert ct.isctime(iosys_series, strict=True) - ios_t, ios_y, ios_x = ios.input_output_response( + ios_t, ios_y, ios_x = ct.input_output_response( iosys_series, T, U, X0, return_x=True) lti_t, lti_y = ct.forced_response(linsys_series, T, U, X0) np.testing.assert_array_almost_equal(lti_t, ios_t) @@ -301,14 +300,14 @@ def test_connect(self, tsys): # Feedback interconnection linsys_feedback = ct.feedback(linsys1, linsys2) - iosys_feedback = ios.InterconnectedSystem( + iosys_feedback = ct.InterconnectedSystem( [iosys1, iosys2], # systems [[1, 0], # input of sys2 = output of sys1 [0, (1, 0, -1)]], # input of sys1 = -output of sys2 0, # input = first system 0 # output = first system ) - ios_t, ios_y, ios_x = ios.input_output_response( + ios_t, ios_y, ios_x = ct.input_output_response( iosys_feedback, T, U, X0, return_x=True) lti_t, lti_y = ct.forced_response(linsys_feedback, T, U, X0) np.testing.assert_array_almost_equal(lti_t, ios_t) @@ -350,9 +349,9 @@ def test_connect_spec_variants(self, tsys, connections, inplist, outlist): linsys_series, T, U, X0, return_x=True) # Create the input/output system with different parameter variations - iosys_series = ios.InterconnectedSystem( + iosys_series = ct.InterconnectedSystem( [iosys1, iosys2], connections, inplist, outlist) - ios_t, ios_y, ios_x = ios.input_output_response( + ios_t, ios_y, ios_x = ct.input_output_response( iosys_series, T, U, X0, return_x=True) np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) @@ -386,9 +385,9 @@ def test_connect_spec_warnings(self, tsys, connections, inplist, outlist): # Set up multiple gainst and make sure a warning is generated with pytest.warns(UserWarning, match="multiple.*Combining"): - iosys_series = ios.InterconnectedSystem( + iosys_series = ct.InterconnectedSystem( [iosys1, iosys2], connections, inplist, outlist) - ios_t, ios_y, ios_x = ios.input_output_response( + ios_t, ios_y, ios_x = ct.input_output_response( iosys_series, T, U, X0, return_x=True) np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_allclose(lti_y, ios_y, atol=0.002, rtol=0.) @@ -401,7 +400,7 @@ def test_static_nonlinearity(self, tsys): # Nonlinear saturation sat = lambda u: u if abs(u) < 1 else np.sign(u) sat_output = lambda t, x, u, params: sat(u) - nlsat = ios.NonlinearIOSystem(None, sat_output, inputs=1, outputs=1) + nlsat = ct.NonlinearIOSystem(None, sat_output, inputs=1, outputs=1) # Set up parameters for simulation T, U, X0 = tsys.T, 2 * tsys.U, tsys.X0 @@ -411,7 +410,7 @@ def test_static_nonlinearity(self, tsys): # saturated input to nonlinear system with saturation composition lti_t, lti_y, lti_x = ct.forced_response( linsys, T, Usat, X0, return_x=True) - ios_t, ios_y, ios_x = ios.input_output_response( + ios_t, ios_y, ios_x = ct.input_output_response( ioslin * nlsat, T, U, X0, return_x=True) np.testing.assert_array_almost_equal(lti_t, ios_t) np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=2) @@ -422,46 +421,46 @@ def test_algebraic_loop(self, tsys): # Create some linear and nonlinear systems to play with linsys = tsys.siso_linsys lnios = ct.LinearIOSystem(linsys) - nlios = ios.NonlinearIOSystem(None, \ + nlios = ct.NonlinearIOSystem(None, \ lambda t, x, u, params: u*u, inputs=1, outputs=1) - nlios1 = nlios.copy(name='nlios1') - nlios2 = nlios.copy(name='nlios2') + nlios1 = nlct.copy(name='nlios1') + nlios2 = nlct.copy(name='nlios2') # Set up parameters for simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 # Single nonlinear system - no states - ios_t, ios_y = ios.input_output_response(nlios, T, U) + ios_t, ios_y = ct.input_output_response(nlios, T, U) np.testing.assert_array_almost_equal(ios_y, U*U, decimal=3) # Composed nonlinear system (series) - ios_t, ios_y = ios.input_output_response(nlios1 * nlios2, T, U) + ios_t, ios_y = ct.input_output_response(nlios1 * nlios2, T, U) np.testing.assert_array_almost_equal(ios_y, U**4, decimal=3) # Composed nonlinear system (parallel) - ios_t, ios_y = ios.input_output_response(nlios1 + nlios2, T, U) + ios_t, ios_y = ct.input_output_response(nlios1 + nlios2, T, U) np.testing.assert_array_almost_equal(ios_y, 2*U**2, decimal=3) # Nonlinear system composed with LTI system (series) -- with states - ios_t, ios_y = ios.input_output_response( + ios_t, ios_y = ct.input_output_response( nlios * lnios * nlios, T, U, X0) lti_t, lti_y = ct.forced_response(linsys, T, U*U, X0) np.testing.assert_array_almost_equal(ios_y, lti_y*lti_y, decimal=3) # Nonlinear system in feeback loop with LTI system - iosys = ios.InterconnectedSystem( + iosys = ct.InterconnectedSystem( [lnios, nlios], # linear system w/ nonlinear feedback [[1], # feedback interconnection (sig to 0) [0, (1, 0, -1)]], 0, # input to linear system 0 # output from linear system ) - ios_t, ios_y = ios.input_output_response(iosys, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys, T, U, X0) # No easy way to test the result # Algebraic loop from static nonlinear system in feedback # (error will be due to no states) - iosys = ios.InterconnectedSystem( + iosys = ct.InterconnectedSystem( [nlios1, nlios2], # two copies of a static nonlinear system [[0, 1], # feedback interconnection [1, (0, 0, -1)]], @@ -469,22 +468,22 @@ def test_algebraic_loop(self, tsys): ) args = (iosys, T, U) with pytest.raises(RuntimeError): - ios.input_output_response(*args) + ct.input_output_response(*args) # Algebraic loop due to feedthrough term linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], [[1]]) lnios = ct.LinearIOSystem(linsys) - iosys = ios.InterconnectedSystem( + iosys = ct.InterconnectedSystem( [nlios, lnios], # linear system w/ nonlinear feedback [[0, 1], # feedback interconnection [1, (0, 0, -1)]], 0, 0 ) args = (iosys, T, U, X0) - # ios_t, ios_y = ios.input_output_response(iosys, T, U, X0) + # ios_t, ios_y = ct.input_output_response(iosys, T, U, X0) with pytest.raises(RuntimeError): - ios.input_output_response(*args) + ct.input_output_response(*args) def test_summer(self, tsys): # Construct a MIMO system for testing @@ -501,7 +500,7 @@ def test_summer(self, tsys): X0 = 0 lin_t, lin_y = ct.forced_response(linsys_parallel, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_parallel, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_parallel, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) def test_rmul(self, tsys): @@ -514,13 +513,13 @@ def test_rmul(self, tsys): # Linear system with input and output nonlinearities # Also creates a nested interconnected system ioslin = ct.LinearIOSystem(tsys.siso_linsys) - nlios = ios.NonlinearIOSystem(None, \ + nlios = ct.NonlinearIOSystem(None, \ lambda t, x, u, params: u*u, inputs=1, outputs=1) sys1 = nlios * ioslin - sys2 = ios.InputOutputSystem.__rmul__(nlios, sys1) + sys2 = sys1 * nlios # Make sure we got the right thing (via simulation comparison) - ios_t, ios_y = ios.input_output_response(sys2, T, U, X0) + ios_t, ios_y = ct.input_output_response(sys2, T, U, X0) lti_t, lti_y = ct.forced_response(ioslin, T, U*U, X0) np.testing.assert_array_almost_equal(ios_y, lti_y*lti_y, decimal=3) @@ -531,9 +530,9 @@ def test_neg(self, tsys): T, U, X0 = tsys.T, tsys.U, tsys.X0 # Static nonlinear system - nlios = ios.NonlinearIOSystem(None, \ + nlios = ct.NonlinearIOSystem(None, \ lambda t, x, u, params: u*u, inputs=1, outputs=1) - ios_t, ios_y = ios.input_output_response(-nlios, T, U) + ios_t, ios_y = ct.input_output_response(-nlios, T, U) np.testing.assert_array_almost_equal(ios_y, -U*U, decimal=3) # Linear system with input nonlinearity @@ -542,7 +541,7 @@ def test_neg(self, tsys): sys = (ioslin) * (-nlios) # Make sure we got the right thing (via simulation comparison) - ios_t, ios_y = ios.input_output_response(sys, T, U, X0) + ios_t, ios_y = ct.input_output_response(sys, T, U, X0) lti_t, lti_y = ct.forced_response(ioslin, T, U*U, X0) np.testing.assert_array_almost_equal(ios_y, -lti_y, decimal=3) @@ -552,12 +551,12 @@ def test_feedback(self, tsys): # Linear system with constant feedback (via "nonlinear" mapping) ioslin = ct.LinearIOSystem(tsys.siso_linsys) - nlios = ios.NonlinearIOSystem(None, \ + nlios = ct.NonlinearIOSystem(None, \ lambda t, x, u, params: u, inputs=1, outputs=1) iosys = ct.feedback(ioslin, nlios) linsys = ct.feedback(tsys.siso_linsys, 1) - ios_t, ios_y = ios.input_output_response(iosys, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys, T, U, X0) lti_t, lti_y = ct.forced_response(linsys, T, U, X0) np.testing.assert_allclose(ios_y, lti_y,atol=0.002,rtol=0.) @@ -578,7 +577,7 @@ def test_bdalg_functions(self, tsys): linsys_series = ct.series(linsys1, linsys2) iosys_series = ct.series(linio1, linio2) lin_t, lin_y = ct.forced_response(linsys_series, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_series, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_series, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Make sure that systems don't commute @@ -590,21 +589,21 @@ def test_bdalg_functions(self, tsys): linsys_parallel = ct.parallel(linsys1, linsys2) iosys_parallel = ct.parallel(linio1, linio2) lin_t, lin_y = ct.forced_response(linsys_parallel, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_parallel, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_parallel, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Negation linsys_negate = ct.negate(linsys1) iosys_negate = ct.negate(linio1) lin_t, lin_y = ct.forced_response(linsys_negate, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_negate, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_negate, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Feedback interconnection linsys_feedback = ct.feedback(linsys1, linsys2) iosys_feedback = ct.feedback(linio1, linio2) lin_t, lin_y = ct.forced_response(linsys_feedback, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_feedback, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_feedback, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) def test_algebraic_functions(self, tsys): @@ -624,7 +623,7 @@ def test_algebraic_functions(self, tsys): linsys_mul = linsys2 * linsys1 iosys_mul = linio2 * linio1 lin_t, lin_y = ct.forced_response(linsys_mul, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_mul, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_mul, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Make sure that systems don't commute @@ -636,14 +635,14 @@ def test_algebraic_functions(self, tsys): linsys_add = linsys1 + linsys2 iosys_add = linio1 + linio2 lin_t, lin_y = ct.forced_response(linsys_add, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_add, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_add, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Subtraction linsys_sub = linsys1 - linsys2 iosys_sub = linio1 - linio2 lin_t, lin_y = ct.forced_response(linsys_sub, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_sub, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_sub, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Make sure that systems don't commute @@ -655,7 +654,7 @@ def test_algebraic_functions(self, tsys): linsys_negate = -linsys1 iosys_negate = -linio1 lin_t, lin_y = ct.forced_response(linsys_negate, T, U, X0) - ios_t, ios_y = ios.input_output_response(iosys_negate, T, U, X0) + ios_t, ios_y = ct.input_output_response(iosys_negate, T, U, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) def test_nonsquare_bdalg(self, tsys): @@ -681,26 +680,25 @@ def test_nonsquare_bdalg(self, tsys): linsys_multiply = linsys_3i2o * linsys_2i3o iosys_multiply = iosys_3i2o * iosys_2i3o lin_t, lin_y = ct.forced_response(linsys_multiply, T, U2, X0) - ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U2, X0) + ios_t, ios_y = ct.input_output_response(iosys_multiply, T, U2, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) linsys_multiply = linsys_2i3o * linsys_3i2o iosys_multiply = iosys_2i3o * iosys_3i2o lin_t, lin_y = ct.forced_response(linsys_multiply, T, U3, X0) - ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U3, X0) + ios_t, ios_y = ct.input_output_response(iosys_multiply, T, U3, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Right multiplication - # TODO: add real tests once conversion from other types is supported - iosys_multiply = ios.InputOutputSystem.__rmul__(iosys_3i2o, iosys_2i3o) - ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U3, X0) + iosys_multiply = iosys_2i3o * iosys_3i2o + ios_t, ios_y = ct.input_output_response(iosys_multiply, T, U3, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Feedback linsys_multiply = ct.feedback(linsys_3i2o, linsys_2i3o) iosys_multiply = iosys_3i2o.feedback(iosys_2i3o) lin_t, lin_y = ct.forced_response(linsys_multiply, T, U3, X0) - ios_t, ios_y = ios.input_output_response(iosys_multiply, T, U3, X0) + ios_t, ios_y = ct.input_output_response(iosys_multiply, T, U3, X0) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) # Mismatch should generate exception @@ -719,7 +717,7 @@ def test_discrete(self, tsys): T, U, X0 = tsys.T, tsys.U, tsys.X0 # Simulate and compare to LTI output - ios_t, ios_y = ios.input_output_response(lnios, T, U, X0) + ios_t, ios_y = ct.input_output_response(lnios, T, U, X0) lin_t, lin_y = ct.forced_response(linsys, T, U, X0) np.testing.assert_allclose(ios_t, lin_t,atol=0.002,rtol=0.) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) @@ -735,7 +733,7 @@ def test_discrete(self, tsys): X0 = 0 # Simulate and compare to LTI output - ios_t, ios_y = ios.input_output_response(lnios, T, U, X0) + ios_t, ios_y = ct.input_output_response(lnios, T, U, X0) lin_t, lin_y = ct.forced_response(linsys, T, U, X0) np.testing.assert_allclose(ios_t, lin_t,atol=0.002,rtol=0.) np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) @@ -759,7 +757,7 @@ def nlsys_output(t, x, u, params): T, U, X0 = tsys.T, tsys.U, tsys.X0 # Simulate and compare to LTI output - ios_t, ios_y = ios.input_output_response( + ios_t, ios_y = ct.input_output_response( nlsys, T, U, X0, params={'A': linsys.A, 'B': linsys.B, 'C': linsys.C}) lin_t, lin_y = ct.forced_response(linsys, T, U, X0) @@ -769,8 +767,8 @@ def nlsys_output(t, x, u, params): def test_find_eqpts_dfan(self, tsys): """Test find_eqpt function on dfan example""" # Simple equilibrium point with no inputs - nlsys = ios.NonlinearIOSystem(predprey) - xeq, ueq, result = ios.find_eqpt( + nlsys = ct.NonlinearIOSystem(predprey) + xeq, ueq, result = ct.find_eqpt( nlsys, [1.6, 1.2], None, return_result=True) assert result.success np.testing.assert_array_almost_equal(xeq, [1.64705879, 1.17923874]) @@ -778,10 +776,10 @@ def test_find_eqpts_dfan(self, tsys): nlsys._rhs(0, xeq, ueq), np.zeros((2,))) # Ducted fan dynamics with output = velocity - nlsys = ios.NonlinearIOSystem(pvtol, lambda t, x, u, params: x[0:2]) + nlsys = ct.NonlinearIOSystem(pvtol, lambda t, x, u, params: x[0:2]) # Make sure the origin is a fixed point - xeq, ueq, result = ios.find_eqpt( + xeq, ueq, result = ct.find_eqpt( nlsys, [0, 0, 0, 0], [0, 4*9.8], return_result=True) assert result.success np.testing.assert_array_almost_equal( @@ -789,14 +787,14 @@ def test_find_eqpts_dfan(self, tsys): np.testing.assert_array_almost_equal(xeq, [0, 0, 0, 0]) # Use a small lateral force to cause motion - xeq, ueq, result = ios.find_eqpt( + xeq, ueq, result = ct.find_eqpt( nlsys, [0, 0, 0, 0], [0.01, 4*9.8], return_result=True) assert result.success np.testing.assert_array_almost_equal( nlsys._rhs(0, xeq, ueq), np.zeros((4,)), decimal=5) # Equilibrium point with fixed output - xeq, ueq, result = ios.find_eqpt( + xeq, ueq, result = ct.find_eqpt( nlsys, [0, 0, 0, 0], [0.01, 4*9.8], y0=[0.1, 0.1], return_result=True) assert result.success @@ -806,7 +804,7 @@ def test_find_eqpts_dfan(self, tsys): nlsys._rhs(0, xeq, ueq), np.zeros((4,)), decimal=5) # Specify outputs to constrain (replicate previous) - xeq, ueq, result = ios.find_eqpt( + xeq, ueq, result = ct.find_eqpt( nlsys, [0, 0, 0, 0], [0.01, 4*9.8], y0=[0.1, 0.1], iy = [0, 1], return_result=True) assert result.success @@ -816,7 +814,7 @@ def test_find_eqpts_dfan(self, tsys): nlsys._rhs(0, xeq, ueq), np.zeros((4,)), decimal=5) # Specify inputs to constrain (replicate previous), w/ no result - xeq, ueq = ios.find_eqpt( + xeq, ueq = ct.find_eqpt( nlsys, [0, 0, 0, 0], [0.01, 4*9.8], y0=[0.1, 0.1], iu = []) np.testing.assert_array_almost_equal( nlsys._out(0, xeq, ueq), [0.1, 0.1], decimal=5) @@ -825,8 +823,8 @@ def test_find_eqpts_dfan(self, tsys): # Now solve the problem with the original PVTOL variables # Constrain the output angle and x velocity - nlsys_full = ios.NonlinearIOSystem(pvtol_full, None) - xeq, ueq, result = ios.find_eqpt( + nlsys_full = ct.NonlinearIOSystem(pvtol_full, None) + xeq, ueq, result = ct.find_eqpt( nlsys_full, [0, 0, 0, 0, 0, 0], [0.01, 4*9.8], y0=[0, 0, 0.1, 0.1, 0, 0], iy = [2, 3], idx=[2, 3, 4, 5], ix=[0, 1], return_result=True) @@ -837,8 +835,8 @@ def test_find_eqpts_dfan(self, tsys): nlsys_full._rhs(0, xeq, ueq)[-4:], np.zeros((4,)), decimal=5) # Same test as before, but now all constraints are in the state vector - nlsys_full = ios.NonlinearIOSystem(pvtol_full, None) - xeq, ueq, result = ios.find_eqpt( + nlsys_full = ct.NonlinearIOSystem(pvtol_full, None) + xeq, ueq, result = ct.find_eqpt( nlsys_full, [0, 0, 0.1, 0.1, 0, 0], [0.01, 4*9.8], idx=[2, 3, 4, 5], ix=[0, 1, 2, 3], return_result=True) assert result.success @@ -848,8 +846,8 @@ def test_find_eqpts_dfan(self, tsys): nlsys_full._rhs(0, xeq, ueq)[-4:], np.zeros((4,)), decimal=5) # Fix one input and vary the other - nlsys_full = ios.NonlinearIOSystem(pvtol_full, None) - xeq, ueq, result = ios.find_eqpt( + nlsys_full = ct.NonlinearIOSystem(pvtol_full, None) + xeq, ueq, result = ct.find_eqpt( nlsys_full, [0, 0, 0, 0, 0, 0], [0.01, 4*9.8], y0=[0, 0, 0.1, 0.1, 0, 0], iy=[3], iu=[1], idx=[2, 3, 4, 5], ix=[0, 1], return_result=True) @@ -861,7 +859,7 @@ def test_find_eqpts_dfan(self, tsys): nlsys_full._rhs(0, xeq, ueq)[-4:], np.zeros((4,)), decimal=5) # PVTOL with output = y velocity - xeq, ueq, result = ios.find_eqpt( + xeq, ueq, result = ct.find_eqpt( nlsys_full, [0, 0, 0, 0.1, 0, 0], [0.01, 4*9.8], y0=[0, 0, 0, 0.1, 0, 0], iy=[3], dx0=[0.1, 0, 0, 0, 0, 0], idx=[1, 2, 3, 4, 5], @@ -878,71 +876,71 @@ def test_find_eqpts_dfan(self, tsys): lnios = ct.LinearIOSystem(linsys) # If result is returned, user has to check - xeq, ueq, result = ios.find_eqpt( + xeq, ueq, result = ct.find_eqpt( lnios, [0, 0], [0], y0=[1], return_result=True) assert not result.success # If result is not returned, find_eqpt should return None - xeq, ueq = ios.find_eqpt(lnios, [0, 0], [0], y0=[1]) + xeq, ueq = ct.find_eqpt(lnios, [0, 0], [0], y0=[1]) assert xeq is None assert ueq is None def test_params(self, tsys): # Start with the default set of parameters - ios_secord_default = ios.NonlinearIOSystem( + ios_secord_default = ct.NonlinearIOSystem( secord_update, secord_output, inputs=1, outputs=1, states=2) - lin_secord_default = ios.linearize(ios_secord_default, [0, 0], [0]) + lin_secord_default = ct.linearize(ios_secord_default, [0, 0], [0]) w_default, v_default = np.linalg.eig(lin_secord_default.A) # New copy, with modified parameters - ios_secord_update = ios.NonlinearIOSystem( + ios_secord_update = ct.NonlinearIOSystem( secord_update, secord_output, inputs=1, outputs=1, states=2, params={'omega0':2, 'zeta':0}) # Make sure the default parameters haven't changed - lin_secord_check = ios.linearize(ios_secord_default, [0, 0], [0]) + lin_secord_check = ct.linearize(ios_secord_default, [0, 0], [0]) w, v = np.linalg.eig(lin_secord_check.A) np.testing.assert_array_almost_equal(np.sort(w), np.sort(w_default)) # Make sure updated system parameters got set correctly - lin_secord_update = ios.linearize(ios_secord_update, [0, 0], [0]) + lin_secord_update = ct.linearize(ios_secord_update, [0, 0], [0]) w, v = np.linalg.eig(lin_secord_update.A) np.testing.assert_array_almost_equal(np.sort(w), np.sort([2j, -2j])) # Change the parameters of the default sys just for the linearization - lin_secord_local = ios.linearize(ios_secord_default, [0, 0], [0], + lin_secord_local = ct.linearize(ios_secord_default, [0, 0], [0], params={'zeta':0}) w, v = np.linalg.eig(lin_secord_local.A) np.testing.assert_array_almost_equal(np.sort(w), np.sort([1j, -1j])) # Change the parameters of the updated sys just for the linearization - lin_secord_local = ios.linearize(ios_secord_update, [0, 0], [0], + lin_secord_local = ct.linearize(ios_secord_update, [0, 0], [0], params={'zeta':0, 'omega0':3}) w, v = np.linalg.eig(lin_secord_local.A) np.testing.assert_array_almost_equal(np.sort(w), np.sort([3j, -3j])) # Make sure that changes propagate through interconnections ios_series_default_local = ios_secord_default * ios_secord_update - lin_series_default_local = ios.linearize( + lin_series_default_local = ct.linearize( ios_series_default_local, [0, 0, 0, 0], [0]) w, v = np.linalg.eig(lin_series_default_local.A) np.testing.assert_array_almost_equal( np.sort(w), np.sort(np.concatenate((w_default, [2j, -2j])))) # Show that we can change the parameters at linearization - lin_series_override = ios.linearize( + lin_series_override = ct.linearize( ios_series_default_local, [0, 0, 0, 0], [0], params={'zeta':0, 'omega0':4}) w, v = np.linalg.eig(lin_series_override.A) np.testing.assert_array_almost_equal(w, [4j, -4j, 4j, -4j]) - # Check for warning if we try to set params for LinearIOSystem + # Check for warning if we try to set params for StateSpace linsys = tsys.siso_linsys iosys = ct.LinearIOSystem(linsys) T, U, X0 = tsys.T, tsys.U, tsys.X0 lti_t, lti_y = ct.forced_response(linsys, T, U, X0) - with pytest.warns(UserWarning, match="LinearIOSystem.*ignored"): - ios_t, ios_y = ios.input_output_response( + with pytest.warns(UserWarning, match="StateSpace.*ignored"): + ios_t, ios_y = ct.input_output_response( iosys, T, U, X0, params={'something':0}) # Check to make sure results are OK @@ -950,7 +948,7 @@ def test_params(self, tsys): np.testing.assert_allclose(lti_y, ios_y,atol=0.002,rtol=0.) def test_named_signals(self, tsys): - sys1 = ios.NonlinearIOSystem( + sys1 = ct.NonlinearIOSystem( updfcn = lambda t, x, u, params: np.array( tsys.mimo_linsys1.A @ np.reshape(x, (-1, 1)) \ + tsys.mimo_linsys1.B @ np.reshape(u, (-1, 1)) @@ -987,7 +985,7 @@ def test_named_signals(self, tsys): np.testing.assert_array_almost_equal(ss_series.D, lin_series.D) # Series interconnection (sys1 * sys2) using named + mixed signals - ios_connect = ios.InterconnectedSystem( + ios_connect = ct.InterconnectedSystem( [sys2, sys1], connections=[ [('sys1', 'u[0]'), 'sys2.y[0]'], @@ -1004,7 +1002,7 @@ def test_named_signals(self, tsys): # Try the same thing using the interconnect function # Since sys1 is nonlinear, we should get back the same result - ios_connect = ios.interconnect( + ios_connect = ct.interconnect( (sys2, sys1), connections=( [('sys1', 'u[0]'), 'sys2.y[0]'], @@ -1022,7 +1020,7 @@ def test_named_signals(self, tsys): # Try the same thing using the interconnect function # Since sys1 is nonlinear, we should get back the same result # Note: use a tuple for connections to make sure it works - ios_connect = ios.interconnect( + ios_connect = ct.interconnect( (sys2, sys1), connections=( [('sys1', 'u[0]'), 'sys2.y[0]'], @@ -1038,7 +1036,7 @@ def test_named_signals(self, tsys): np.testing.assert_array_almost_equal(ss_series.D, lin_series.D) # Make sure that we can use input signal names as system outputs - ios_connect = ios.InterconnectedSystem( + ios_connect = ct.InterconnectedSystem( [sys1, sys2], connections=[ ['sys2.u[0]', 'sys1.y[0]'], ['sys2.u[1]', 'sys1.y[1]'], @@ -1071,7 +1069,7 @@ def test_sys_naming_convention(self, tsys): assert sys.name == "sys[0]" assert sys.copy().name == "copy of sys[0]" - namedsys = ios.NonlinearIOSystem( + namedsys = ct.NonlinearIOSystem( updfcn=lambda t, x, u, params: x, outfcn=lambda t, x, u, params: u, inputs=('u[0]', 'u[1]'), @@ -1146,7 +1144,7 @@ def test_signals_naming_convention_0_8_4(self, tsys): assert len(sys.input_index) == sys.ninputs assert len(sys.output_index) == sys.noutputs - namedsys = ios.NonlinearIOSystem( + namedsys = ct.NonlinearIOSystem( updfcn=lambda t, x, u, params: x, outfcn=lambda t, x, u, params: u, inputs=('u0'), @@ -1210,7 +1208,7 @@ def outfcn(t, x, u, params): (('u[0]', 'u[1]', 'u[toomuch]'), ('y[0]', 'y[1]')), (('u[0]', 'u[1]'), ('y[0]')), # not enough y (('u[0]', 'u[1]'), ('y[0]', 'y[1]', 'y[toomuch]'))]: - sys1 = ios.NonlinearIOSystem(updfcn=updfcn, + sys1 = ct.NonlinearIOSystem(updfcn=updfcn, outfcn=outfcn, inputs=inputs, outputs=outputs, @@ -1219,7 +1217,7 @@ def outfcn(t, x, u, params): with pytest.raises(ValueError): sys1.linearize([0, 0], [0, 0]) - sys2 = ios.NonlinearIOSystem(updfcn=updfcn, + sys2 = ct.NonlinearIOSystem(updfcn=updfcn, outfcn=outfcn, inputs=('u[0]', 'u[1]'), outputs=('y[0]', 'y[1]'), @@ -1244,12 +1242,12 @@ def test_linearize_concatenation(self, kincar): np.testing.assert_array_almost_equal(linearized.D, np.zeros((2,2))) def test_lineariosys_statespace(self, tsys): - """Make sure that a LinearIOSystem is also a StateSpace object""" - iosys_siso = ct.LinearIOSystem(tsys.siso_linsys, name='siso') - iosys_siso2 = ct.LinearIOSystem(tsys.siso_linsys, name='siso2') + """Make sure that a StateSpace is also a StateSpace object""" + iosys_siso = ct.StateSpace(tsys.siso_linsys, name='siso') + iosys_siso2 = ct.StateSpace(tsys.siso_linsys, name='siso2') assert isinstance(iosys_siso, ct.StateSpace) - # Make sure that state space functions work for LinearIOSystems + # Make sure that state space functions work for StateSpaces np.testing.assert_allclose( iosys_siso.poles(), tsys.siso_linsys.poles()) omega = np.logspace(.1, 10, 100) @@ -1259,7 +1257,7 @@ def test_lineariosys_statespace(self, tsys): np.testing.assert_allclose(phase_io, phase_ss) np.testing.assert_allclose(omega_io, omega_ss) - # LinearIOSystem methods should override StateSpace methods + # StateSpace methods should override StateSpace methods io_mul = iosys_siso * iosys_siso2 assert isinstance(io_mul, ct.InputOutputSystem) @@ -1315,55 +1313,55 @@ def test_lineariosys_statespace(self, tsys): @pytest.mark.parametrize( "Pout, Pin, C, op, PCout, PCin", [ - (2, 2, 'rss', ct.LinearIOSystem.__mul__, 2, 2), - (2, 2, 2, ct.LinearIOSystem.__mul__, 2, 2), - (2, 3, 2, ct.LinearIOSystem.__mul__, 2, 3), - (2, 2, np.random.rand(2, 2), ct.LinearIOSystem.__mul__, 2, 2), - (2, 2, 'rss', ct.LinearIOSystem.__rmul__, 2, 2), - (2, 2, 2, ct.LinearIOSystem.__rmul__, 2, 2), - (2, 3, 2, ct.LinearIOSystem.__rmul__, 2, 3), - (2, 2, np.random.rand(2, 2), ct.LinearIOSystem.__rmul__, 2, 2), - (2, 2, 'rss', ct.LinearIOSystem.__add__, 2, 2), - (2, 2, 2, ct.LinearIOSystem.__add__, 2, 2), - (2, 2, np.random.rand(2, 2), ct.LinearIOSystem.__add__, 2, 2), - (2, 2, 'rss', ct.LinearIOSystem.__radd__, 2, 2), - (2, 2, 2, ct.LinearIOSystem.__radd__, 2, 2), - (2, 2, np.random.rand(2, 2), ct.LinearIOSystem.__radd__, 2, 2), - (2, 2, 'rss', ct.LinearIOSystem.__sub__, 2, 2), - (2, 2, 2, ct.LinearIOSystem.__sub__, 2, 2), - (2, 2, np.random.rand(2, 2), ct.LinearIOSystem.__sub__, 2, 2), - (2, 2, 'rss', ct.LinearIOSystem.__rsub__, 2, 2), - (2, 2, 2, ct.LinearIOSystem.__rsub__, 2, 2), - (2, 2, np.random.rand(2, 2), ct.LinearIOSystem.__rsub__, 2, 2), + (2, 2, 'rss', ct.StateSpace.__mul__, 2, 2), + (2, 2, 2, ct.StateSpace.__mul__, 2, 2), + (2, 3, 2, ct.StateSpace.__mul__, 2, 3), + (2, 2, np.random.rand(2, 2), ct.StateSpace.__mul__, 2, 2), + (2, 2, 'rss', ct.StateSpace.__rmul__, 2, 2), + (2, 2, 2, ct.StateSpace.__rmul__, 2, 2), + (2, 3, 2, ct.StateSpace.__rmul__, 2, 3), + (2, 2, np.random.rand(2, 2), ct.StateSpace.__rmul__, 2, 2), + (2, 2, 'rss', ct.StateSpace.__add__, 2, 2), + (2, 2, 2, ct.StateSpace.__add__, 2, 2), + (2, 2, np.random.rand(2, 2), ct.StateSpace.__add__, 2, 2), + (2, 2, 'rss', ct.StateSpace.__radd__, 2, 2), + (2, 2, 2, ct.StateSpace.__radd__, 2, 2), + (2, 2, np.random.rand(2, 2), ct.StateSpace.__radd__, 2, 2), + (2, 2, 'rss', ct.StateSpace.__sub__, 2, 2), + (2, 2, 2, ct.StateSpace.__sub__, 2, 2), + (2, 2, np.random.rand(2, 2), ct.StateSpace.__sub__, 2, 2), + (2, 2, 'rss', ct.StateSpace.__rsub__, 2, 2), + (2, 2, 2, ct.StateSpace.__rsub__, 2, 2), + (2, 2, np.random.rand(2, 2), ct.StateSpace.__rsub__, 2, 2), ]) def test_operand_conversion(self, Pout, Pin, C, op, PCout, PCin): - P = ct.LinearIOSystem( + P = ct.StateSpace( ct.rss(2, Pout, Pin, strictly_proper=True), name='P') if isinstance(C, str) and C == 'rss': # Need to generate inside class to avoid matrix deprecation error C = ct.rss(2, 2, 2) PC = op(P, C) - assert isinstance(PC, ct.LinearIOSystem) + assert isinstance(PC, ct.StateSpace) assert isinstance(PC, ct.StateSpace) assert PC.noutputs == PCout assert PC.ninputs == PCin @pytest.mark.parametrize( "Pout, Pin, C, op", [ - (2, 2, 'rss32', ct.LinearIOSystem.__mul__), - (2, 2, 'rss23', ct.LinearIOSystem.__rmul__), - (2, 2, 'rss32', ct.LinearIOSystem.__add__), - (2, 2, 'rss23', ct.LinearIOSystem.__radd__), - (2, 3, 2, ct.LinearIOSystem.__add__), - (2, 3, 2, ct.LinearIOSystem.__radd__), - (2, 2, 'rss32', ct.LinearIOSystem.__sub__), - (2, 2, 'rss23', ct.LinearIOSystem.__rsub__), - (2, 3, 2, ct.LinearIOSystem.__sub__), - (2, 3, 2, ct.LinearIOSystem.__rsub__), + (2, 2, 'rss32', ct.StateSpace.__mul__), + (2, 2, 'rss23', ct.StateSpace.__rmul__), + (2, 2, 'rss32', ct.StateSpace.__add__), + (2, 2, 'rss23', ct.StateSpace.__radd__), + (2, 3, 2, ct.StateSpace.__add__), + (2, 3, 2, ct.StateSpace.__radd__), + (2, 2, 'rss32', ct.StateSpace.__sub__), + (2, 2, 'rss23', ct.StateSpace.__rsub__), + (2, 3, 2, ct.StateSpace.__sub__), + (2, 3, 2, ct.StateSpace.__rsub__), ]) def test_operand_incompatible(self, Pout, Pin, C, op): - P = ct.LinearIOSystem( + P = ct.StateSpace( ct.rss(2, Pout, Pin, strictly_proper=True), name='P') if isinstance(C, str) and C == 'rss32': C = ct.rss(2, 3, 2) @@ -1374,22 +1372,22 @@ def test_operand_incompatible(self, Pout, Pin, C, op): @pytest.mark.parametrize( "C, op", [ - (None, ct.LinearIOSystem.__mul__), - (None, ct.LinearIOSystem.__rmul__), - (None, ct.LinearIOSystem.__add__), - (None, ct.LinearIOSystem.__radd__), - (None, ct.LinearIOSystem.__sub__), - (None, ct.LinearIOSystem.__rsub__), + (None, ct.StateSpace.__mul__), + (None, ct.StateSpace.__rmul__), + (None, ct.StateSpace.__add__), + (None, ct.StateSpace.__radd__), + (None, ct.StateSpace.__sub__), + (None, ct.StateSpace.__rsub__), ]) def test_operand_badtype(self, C, op): - P = ct.LinearIOSystem( + P = ct.StateSpace( ct.rss(2, 2, 2, strictly_proper=True), name='P') with pytest.raises(TypeError, match="Unknown"): op(P, C) def test_neg_badsize(self): # Create a system of unspecified size - sys = ct.InputOutputSystem() + sys = ct.NonlinearIOSystem(lambda t, x, u, params: -x) with pytest.raises(ValueError, match="Can't determine"): -sys @@ -1399,9 +1397,9 @@ def test_bad_signal_list(self): ct.InputOutputSystem(inputs=[1, 2, 3]) def test_docstring_example(self): - P = ct.LinearIOSystem( + P = ct.StateSpace( ct.rss(2, 2, 2, strictly_proper=True), name='P') - C = ct.LinearIOSystem(ct.rss(2, 2, 2), name='C') + C = ct.StateSpace(ct.rss(2, 2, 2), name='C') S = ct.InterconnectedSystem( [C, P], connections = [ @@ -1423,7 +1421,7 @@ def test_docstring_example(self): @pytest.mark.usefixtures("editsdefaults") def test_duplicates(self, tsys): - nlios = ios.NonlinearIOSystem(lambda t, x, u, params: x, + nlios = ct.NonlinearIOSystem(lambda t, x, u, params: x, lambda t, x, u, params: u * u, inputs=1, outputs=1, states=1, name="sys") @@ -1435,19 +1433,19 @@ def test_duplicates(self, tsys): # Nonduplicate objects with pytest.warns(UserWarning, match="NumPy matrix class no longer"): ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 - nlios1 = nlios.copy() - nlios2 = nlios.copy() + nlios1 = nlct.copy() + nlios2 = nlct.copy() with pytest.warns(UserWarning, match="duplicate name"): ios_series = nlios1 * nlios2 assert "copy of sys_1.x[0]" in ios_series.state_index.keys() assert "copy of sys.x[0]" in ios_series.state_index.keys() # Duplicate names - iosys_siso = ct.LinearIOSystem(tsys.siso_linsys) - nlios1 = ios.NonlinearIOSystem(None, + iosys_siso = ct.StateSpace(tsys.siso_linsys) + nlios1 = ct.NonlinearIOSystem(None, lambda t, x, u, params: u * u, inputs=1, outputs=1, name="sys") - nlios2 = ios.NonlinearIOSystem(None, + nlios2 = ct.NonlinearIOSystem(None, lambda t, x, u, params: u * u, inputs=1, outputs=1, name="sys") @@ -1456,10 +1454,10 @@ def test_duplicates(self, tsys): inputs=0, outputs=0, states=0) # Same system, different names => everything should be OK - nlios1 = ios.NonlinearIOSystem(None, + nlios1 = ct.NonlinearIOSystem(None, lambda t, x, u, params: u * u, inputs=1, outputs=1, name="nlios1") - nlios2 = ios.NonlinearIOSystem(None, + nlios2 = ct.NonlinearIOSystem(None, lambda t, x, u, params: u * u, inputs=1, outputs=1, name="nlios2") with warnings.catch_warnings(): @@ -1477,7 +1475,7 @@ def test_linear_interconnection(): io_sys2 = ct.LinearIOSystem( ss_sys2, inputs = ('u[0]', 'u[1]'), outputs = ('y[0]', 'y[1]'), name = 'sys2') - nl_sys2 = ios.NonlinearIOSystem( + nl_sys2 = ct.NonlinearIOSystem( lambda t, x, u, params: np.array( ss_sys2.A @ np.reshape(x, (-1, 1)) \ + ss_sys2.B @ np.reshape(u, (-1, 1)) @@ -1492,12 +1490,12 @@ def test_linear_interconnection(): name = 'sys2') tf_siso = ct.tf(1, [0.1, 1]) ss_siso = ct.ss(1, 2, 1, 1) - nl_siso = ios.NonlinearIOSystem( + nl_siso = ct.NonlinearIOSystem( lambda t, x, u, params: x*x, lambda t, x, u, params: u*x, states=1, inputs=1, outputs=1) # Create a "regular" InterconnectedSystem - nl_connect = ios.interconnect( + nl_connect = ct.interconnect( (io_sys1, nl_sys2), connections=[ ['sys1.u[1]', 'sys2.y[0]'], @@ -1510,14 +1508,14 @@ def test_linear_interconnection(): ['sys1.y[0]', '-sys2.y[0]'], ['sys2.y[1]'], ['sys2.u[1]']]) - assert isinstance(nl_connect, ios.InterconnectedSystem) + assert isinstance(nl_connect, ct.InterconnectedSystem) assert not isinstance(nl_connect, ct.LinearICSystem) # Now take its linearization ss_connect = nl_connect.linearize(0, 0) assert isinstance(ss_connect, ct.LinearIOSystem) - io_connect = ios.interconnect( + io_connect = ct.interconnect( (io_sys1, io_sys2), connections=[ ['sys1.u[1]', 'sys2.y[0]'], @@ -1530,7 +1528,7 @@ def test_linear_interconnection(): ['sys1.y[0]', '-sys2.y[0]'], ['sys2.y[1]'], ['sys2.u[1]']]) - assert isinstance(io_connect, ios.InterconnectedSystem) + assert isinstance(io_connect, ct.InterconnectedSystem) assert isinstance(io_connect, ct.LinearICSystem) assert isinstance(io_connect, ct.LinearIOSystem) assert isinstance(io_connect, ct.StateSpace) @@ -1619,11 +1617,11 @@ def secord_output(t, x, u, params={}): def test_interconnect_name(): - g = ct.LinearIOSystem(ct.ss(-1,1,1,0), + g = ct.StateSpace(ct.ss(-1,1,1,0), inputs=['u'], outputs=['y'], name='g') - k = ct.LinearIOSystem(ct.ss(0,10,2,0), + k = ct.StateSpace(ct.ss(0,10,2,0), inputs=['e'], outputs=['z'], name='k') @@ -1642,7 +1640,7 @@ def test_interconnect_name(): def test_interconnect_unused_input(): # test that warnings about unused inputs are reported, or not, # as required - g = ct.LinearIOSystem(ct.ss(-1,1,1,0), + g = ct.StateSpace(ct.ss(-1,1,1,0), inputs=['u'], outputs=['y'], name='g') @@ -1651,7 +1649,7 @@ def test_interconnect_unused_input(): outputs=['e'], name='s') - k = ct.LinearIOSystem(ct.ss(0,10,2,0), + k = ct.StateSpace(ct.ss(0,10,2,0), inputs=['e'], outputs=['u'], name='k') @@ -1712,7 +1710,7 @@ def test_interconnect_unused_input(): def test_interconnect_unused_output(): # test that warnings about ignored outputs are reported, or not, # as required - g = ct.LinearIOSystem(ct.ss(-1,1,[[1],[-1]],[[0],[1]]), + g = ct.StateSpace(ct.ss(-1,1,[[1],[-1]],[[0],[1]]), inputs=['u'], outputs=['y','dy'], name='g') @@ -1721,7 +1719,7 @@ def test_interconnect_unused_output(): outputs=['e'], name='s') - k = ct.LinearIOSystem(ct.ss(0,10,2,0), + k = ct.StateSpace(ct.ss(0,10,2,0), inputs=['e'], outputs=['u'], name='k') @@ -2039,10 +2037,10 @@ def test_find_eqpt(x0, ix, u0, iu, y0, iy, dx0, idx, dt, x_expect, u_expect): def test_iosys_sample(): csys = ct.rss(2, 1, 1) dsys = csys.sample(0.1) - assert isinstance(dsys, ct.LinearIOSystem) + assert isinstance(dsys, ct.StateSpace) assert dsys.dt == 0.1 csys = ct.rss(2, 1, 1) dsys = ct.sample_system(csys, 0.1) - assert isinstance(dsys, ct.LinearIOSystem) + assert isinstance(dsys, ct.StateSpace) assert dsys.dt == 0.1 diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 6dc46f7c4..01c81503e 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -100,8 +100,8 @@ def test_kwarg_search(module, prefix): (control.zpk, 0, 0, ([1], [2, 3], 4), {}), (control.InputOutputSystem, 0, 0, (), {'inputs': 1, 'outputs': 1, 'states': 1}), - (control.InputOutputSystem.linearize, 1, 0, (0, 0), {}), - (control.LinearIOSystem.sample, 1, 0, (0.1,), {}), + (control.NonlinearIOSystem.linearize, 1, 0, (0, 0), {}), + (control.StateSpace.sample, 1, 0, (0.1,), {}), (control.StateSpace, 0, 0, ([[-1, 0], [0, -1]], [[1], [1]], [[1, 1]], 0), {}), (control.TransferFunction, 0, 0, ([1], [1, 1]), {})] @@ -202,12 +202,12 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'InputOutputSystem.__init__': test_unrecognized_kwargs, - 'InputOutputSystem.linearize': test_unrecognized_kwargs, + 'NonlinearIOSystem.linearize': test_unrecognized_kwargs, 'InterconnectedSystem.__init__': interconnect_test.test_interconnect_exceptions, - 'LinearIOSystem.__init__': + 'StateSpace.__init__': interconnect_test.test_interconnect_exceptions, - 'LinearIOSystem.sample': test_unrecognized_kwargs, + 'StateSpace.sample': test_unrecognized_kwargs, 'NonlinearIOSystem.__init__': interconnect_test.test_interconnect_exceptions, 'StateSpace.__init__': test_unrecognized_kwargs, @@ -240,7 +240,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): control.flatsys.SystemTrajectory.__init__, # RMM, 18 Nov 2022 control.freqplot._add_arrows_to_line2D, # RMM, 18 Nov 2022 control.iosys._process_dt_keyword, # RMM, 13 Nov 2022 - control.iosys._process_namedio_keywords, # RMM, 18 Nov 2022 + control.iosys._process_iosys_keywords, # RMM, 18 Nov 2022 } @pytest.mark.parametrize("module", [control, control.flatsys]) diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index 3139503aa..0bb28b684 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -1,4 +1,4 @@ -"""namedio_test.py - test named input/output object operations +"""iosys_test.py - test named input/output object operations RMM, 13 Mar 2022 @@ -28,45 +28,45 @@ def test_named_ss(): A, B, C, D = sys.A, sys.B, sys.C, sys.D # Set up a named state space systems with default names - ct.iosys.NamedIOSystem._idCounter = 0 + ct.InputOutputSystem._idCounter = 0 sys = ct.ss(A, B, C, D) assert sys.name == 'sys[0]' assert sys.input_labels == ['u[0]', 'u[1]'] assert sys.output_labels == ['y[0]', 'y[1]'] assert sys.state_labels == ['x[0]', 'x[1]'] assert repr(sys) == \ - "['y[0]', 'y[1]']>" + "['y[0]', 'y[1]']>" # Pass the names as arguments sys = ct.ss( A, B, C, D, name='system', inputs=['u1', 'u2'], outputs=['y1', 'y2'], states=['x1', 'x2']) assert sys.name == 'system' - assert ct.iosys.NamedIOSystem._idCounter == 1 + assert ct.InputOutputSystem._idCounter == 1 assert sys.input_labels == ['u1', 'u2'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2'] assert repr(sys) == \ - "['y1', 'y2']>" + "['y1', 'y2']>" # Do the same with rss sys = ct.rss(['x1', 'x2', 'x3'], ['y1', 'y2'], 'u1', name='random') assert sys.name == 'random' - assert ct.iosys.NamedIOSystem._idCounter == 1 + assert ct.InputOutputSystem._idCounter == 1 assert sys.input_labels == ['u1'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2', 'x3'] assert repr(sys) == \ - "['y1', 'y2']>" + "['y1', 'y2']>" # List of classes that are expected fun_instance = { - ct.rss: (ct.InputOutputSystem, ct.LinearIOSystem, ct.StateSpace), - ct.drss: (ct.InputOutputSystem, ct.LinearIOSystem, ct.StateSpace), + ct.rss: (ct.NonlinearIOSystem, ct.StateSpace, ct.StateSpace), + ct.drss: (ct.NonlinearIOSystem, ct.StateSpace, ct.StateSpace), ct.FRD: (ct.lti.LTI), ct.NonlinearIOSystem: (ct.InputOutputSystem), - ct.ss: (ct.InputOutputSystem, ct.LinearIOSystem, ct.StateSpace), + ct.ss: (ct.NonlinearIOSystem, ct.StateSpace, ct.StateSpace), ct.StateSpace: (ct.StateSpace), ct.tf: (ct.TransferFunction), ct.TransferFunction: (ct.TransferFunction), @@ -74,9 +74,9 @@ def test_named_ss(): # List of classes that are not expected fun_notinstance = { - ct.FRD: (ct.InputOutputSystem, ct.LinearIOSystem, ct.StateSpace), - ct.StateSpace: (ct.InputOutputSystem, ct.TransferFunction), - ct.TransferFunction: (ct.InputOutputSystem, ct.StateSpace), + ct.FRD: (ct.NonlinearIOSystem, ct.StateSpace, ct.StateSpace), + ct.StateSpace: (ct.TransferFunction), + ct.TransferFunction: (ct.NonlinearIOSystem, ct.StateSpace), } @@ -98,7 +98,7 @@ def test_named_ss(): ]) def test_io_naming(fun, args, kwargs): # Reset the ID counter to get uniform generic names - ct.iosys.NamedIOSystem._idCounter = 0 + ct.InputOutputSystem._idCounter = 0 # Create the system w/out any names sys_g = fun(*args, **kwargs) @@ -201,18 +201,18 @@ def test_io_naming(fun, args, kwargs): assert sys_tf.output_labels == output_labels # - # Convert the system to a LinearIOSystem and make sure labels transfer + # Convert the system to a StateSpace and make sure labels transfer # if not isinstance( sys_r, (ct.FrequencyResponseData, ct.NonlinearIOSystem)) and \ ct.slycot_check(): - sys_lio = ct.LinearIOSystem(sys_r) + sys_lio = ct.StateSpace(sys_r) assert sys_lio != sys_r assert sys_lio.input_labels == input_labels assert sys_lio.output_labels == output_labels # Reassign system and signal names - sys_lio = ct.LinearIOSystem( + sys_lio = ct.StateSpace( sys_g, inputs=input_labels, outputs=output_labels, name='new') assert sys_lio.name == 'new' assert sys_lio.input_labels == input_labels @@ -234,7 +234,7 @@ def test_init_namedif(): # Call constructor without re-initialization sys_keep = sys.copy() - ct.StateSpace.__init__(sys_keep, sys, init_namedio=False) + ct.StateSpace.__init__(sys_keep, sys, init_iosys=False) assert sys_keep.name == sys_keep.name assert sys_keep.input_labels == sys_keep.input_labels assert sys_keep.output_labels == sys_keep.output_labels @@ -242,7 +242,7 @@ def test_init_namedif(): # Make sure that passing an unrecognized keyword generates an error with pytest.raises(TypeError, match="unrecognized keyword"): ct.StateSpace.__init__( - sys_keep, sys, inputs='u', outputs='y', init_namedio=False) + sys_keep, sys, inputs='u', outputs='y', init_iosys=False) # Test state space conversion def test_convert_to_statespace(): diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index cc1327e1f..60d7e8448 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -19,8 +19,7 @@ from control.dtime import sample_system from control.lti import evalfr from control.statesp import StateSpace, _convert_to_statespace, tf2ss, \ - _statesp_defaults, _rss_generate, linfnorm -from control.statesp import ss, rss, drss + _statesp_defaults, _rss_generate, linfnorm, ss, rss, drss from control.tests.conftest import slycotonly from control.xferfcn import TransferFunction, ss2tf @@ -49,7 +48,7 @@ def sys322ABCD(self): @pytest.fixture def sys322(self, sys322ABCD): """3-states square system (2 inputs x 2 outputs)""" - return StateSpace(*sys322ABCD) + return StateSpace(*sys322ABCD, name='sys322') @pytest.fixture def sys121(self): @@ -727,7 +726,12 @@ def test_repr(self, sys322): def test_str(self, sys322): """Test that printing the system works""" tsys = sys322 - tref = ("A = [[-3. 4. 2.]\n" + tref = (": sys322\n" + "Inputs (2): ['u[0]', 'u[1]']\n" + "Outputs (2): ['y[0]', 'y[1]']\n" + "States (3): ['x[0]', 'x[1]', 'x[2]']\n" + "\n" + "A = [[-3. 4. 2.]\n" " [-1. -3. 0.]\n" " [ 2. 5. 3.]]\n" "\n" @@ -741,9 +745,11 @@ def test_str(self, sys322): "D = [[-2. 4.]\n" " [ 0. 1.]]\n") assert str(tsys) == tref - tsysdtunspec = StateSpace(tsys.A, tsys.B, tsys.C, tsys.D, True) + tsysdtunspec = StateSpace( + tsys.A, tsys.B, tsys.C, tsys.D, True, name=tsys.name) assert str(tsysdtunspec) == tref + "\ndt = True\n" - sysdt1 = StateSpace(tsys.A, tsys.B, tsys.C, tsys.D, 1.) + sysdt1 = StateSpace( + tsys.A, tsys.B, tsys.C, tsys.D, 1., name=tsys.name) assert str(sysdt1) == tref + "\ndt = {}\n".format(1.) def test_pole_static(self): diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index ccd808169..efd07ca49 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -1070,8 +1070,8 @@ def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): # Shape should be squeezed assert yvec.shape == (8, ) - # For InputOutputSystems, also test input/output response - if isinstance(sys, ct.InputOutputSystem): + # For NonlinearIOSystem, also test input/output response + if isinstance(sys, ct.NonlinearIOSystem): _, yvec = ct.input_output_response(sys, tvec, uvec, squeeze=squeeze) assert yvec.shape == shape2 @@ -1101,8 +1101,8 @@ def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): if squeeze is not True or sys.noutputs > 1: assert yvec.shape == (sys.noutputs, 8) - # For InputOutputSystems, also test input_output_response - if isinstance(sys, ct.InputOutputSystem): + # For NonlinearIOSystems, also test input_output_response + if isinstance(sys, ct.NonlinearIOSystem): _, yvec = ct.input_output_response(sys, tvec, uvec) if squeeze is not True or sys.noutputs > 1: assert yvec.shape == (sys.noutputs, 8) diff --git a/control/tests/trdata_test.py b/control/tests/trdata_test.py index 028e53580..2f0608f9b 100644 --- a/control/tests/trdata_test.py +++ b/control/tests/trdata_test.py @@ -220,7 +220,7 @@ def test_response_copy(): def test_trdata_labels(): # Create an I/O system with labels sys = ct.rss(4, 3, 2) - iosys = ct.LinearIOSystem(sys) + iosys = ct.StateSpace(sys) T = np.linspace(1, 10, 10) U = [np.sin(T), np.cos(T)] diff --git a/control/tests/type_conversion_test.py b/control/tests/type_conversion_test.py index 0deb68f88..5631385fe 100644 --- a/control/tests/type_conversion_test.py +++ b/control/tests/type_conversion_test.py @@ -17,7 +17,7 @@ def sys_dict(): sdict['tf'] = ct.TransferFunction([1],[0.5, 1]) sdict['tfx'] = ct.TransferFunction([1, 1], [1]) # non-proper TF sdict['frd'] = ct.frd([10+0j, 9 + 1j, 8 + 2j, 7 + 3j], [1, 2, 3, 4]) - sdict['lio'] = ct.LinearIOSystem(ct.ss([[-1]], [[5]], [[5]], [[0]])) + sdict['lio'] = ct.StateSpace(ct.ss([[-1]], [[5]], [[5]], [[0]])) sdict['ios'] = ct.NonlinearIOSystem( lambda t, x, u, params: sdict['lio']._rhs(t, x, u), lambda t, x, u, params: sdict['lio']._out(t, x, u), @@ -46,7 +46,7 @@ def sys_dict(): # implemented properly). # # Note 1: some of the entries below are currently converted to to lower level -# types than needed. In particular, LinearIOSystems should combine with +# types than needed. In particular, StateSpaces should combine with # StateSpace and TransferFunctions in a way that preserves I/O system # structure when possible. # @@ -62,7 +62,7 @@ def sys_dict(): conversion_table = [ # op left ss tf frd lio ios arr flt ('add', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), - ('add', 'tf', ['tf', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), + ('add', 'tf', ['ss', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), ('add', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), ('add', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), ('add', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios', 'ios']), @@ -71,7 +71,7 @@ def sys_dict(): # op left ss tf frd lio ios arr flt ('sub', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), - ('sub', 'tf', ['tf', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), + ('sub', 'tf', ['ss', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), ('sub', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), ('sub', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), ('sub', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios', 'ios']), @@ -80,7 +80,7 @@ def sys_dict(): # op left ss tf frd lio ios arr flt ('mul', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), - ('mul', 'tf', ['tf', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), + ('mul', 'tf', ['ss', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), ('mul', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), ('mul', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), ('mul', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios', 'ios']), @@ -109,8 +109,8 @@ def test_operator_type_conversion(opname, ltype, rtype, expected, sys_dict): leftsys = sys_dict[ltype] rightsys = sys_dict[rtype] - # Get rid of warnings for InputOutputSystem objects by making a copy - if isinstance(leftsys, ct.InputOutputSystem) and leftsys == rightsys: + # Get rid of warnings for NonlinearIOSystem objects by making a copy + if isinstance(leftsys, ct.NonlinearIOSystem) and leftsys == rightsys: rightsys = leftsys.copy() # Make sure we get the right result @@ -172,8 +172,8 @@ def test_binary_op_type_conversions(opname, ltype, rtype, sys_dict): expected = \ conversion_table[type_list.index(ltype)][1][type_list.index(rtype)] - # Get rid of warnings for InputOutputSystem objects by making a copy - if isinstance(leftsys, ct.InputOutputSystem) and leftsys == rightsys: + # Get rid of warnings for NonlinearIOSystem objects by making a copy + if isinstance(leftsys, ct.NonlinearIOSystem) and leftsys == rightsys: rightsys = leftsys.copy() # Make sure we get the right result diff --git a/control/xferfcn.py b/control/xferfcn.py index 895619b86..58cc5e923 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -60,7 +60,7 @@ from itertools import chain from re import sub from .lti import LTI, _process_frequency_response -from .iosys import common_timebase, isdtime, _process_namedio_keywords +from .iosys import common_timebase, isdtime, _process_iosys_keywords from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData from . import config @@ -159,7 +159,7 @@ class TransferFunction(LTI): """ # Give TransferFunction._rmul_() priority for ndarray * TransferFunction - __array_priority__ = 11 # override ndarray and matrix types + __array_priority__ = 11 # override ndarray types def __init__(self, *args, **kwargs): """TransferFunction(num, den[, dt]) @@ -232,13 +232,13 @@ def __init__(self, *args, **kwargs): defaults = args[0] if len(args) == 1 else \ {'inputs': len(num[0]), 'outputs': len(num)} - name, inputs, outputs, states, dt = _process_namedio_keywords( + name, inputs, outputs, states, dt = _process_iosys_keywords( kwargs, defaults, static=static, end=True) if states: raise TypeError( "states keyword not allowed for transfer functions") - # Initialize LTI (NamedIOSystem) object + # Initialize LTI (InputOutputSystem) object super().__init__( name=name, inputs=inputs, outputs=outputs, dt=dt) @@ -806,8 +806,8 @@ def __getitem__(self, key): inputs = [self.input_labels[j] for j in range(start2, stop2, step2)] # Create the system name - sysname = config.defaults['namedio.indexed_system_name_prefix'] + \ - self.name + config.defaults['namedio.indexed_system_name_suffix'] + sysname = config.defaults['iosys.indexed_system_name_prefix'] + \ + self.name + config.defaults['iosys.indexed_system_name_suffix'] return TransferFunction( num, den, self.dt, inputs=inputs, outputs=outputs, name=sysname) @@ -1158,8 +1158,8 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, if `copy_names` is `False`, a generic name is generated with a unique integer id. If `copy_names` is `True`, the new system name is determined by adding the prefix and suffix strings in - config.defaults['namedio.sampled_system_name_prefix'] and - config.defaults['namedio.sampled_system_name_suffix'], with the + config.defaults['iosys.sampled_system_name_prefix'] and + config.defaults['iosys.sampled_system_name_suffix'], with the default being to add the suffix '$sampled'. copy_names : bool, Optional If True, copy the names of the input signals, output diff --git a/doc/classes.fig b/doc/classes.fig index 950510c01..dc3a1b556 100644 --- a/doc/classes.fig +++ b/doc/classes.fig @@ -7,143 +7,42 @@ Letter Single -2 1200 2 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 9750 3375 12075 3375 12075 4725 9750 4725 9750 3375 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 9750 6000 12075 6000 12075 7350 9750 7350 9750 6000 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 8925 3600 9750 3600 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 10875 3750 10875 4350 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 6375 3750 9975 6150 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 10875 6375 10875 6975 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 6750 6225 9975 6225 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 6000 6075 6000 6975 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 2700 5400 3075 5850 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 1650 4500 6750 4500 6750 7425 1650 7425 1650 4500 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 1650 7950 6150 7950 6150 8550 1650 8550 1650 7950 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 2775 8175 4200 8175 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 9075 8100 9675 8100 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 9075 8250 9675 8250 9675 8550 9075 8550 9075 8250 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 0 1 2 - 1 1 1.00 60.00 120.00 - 4725 5925 5175 5925 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 1 2 - 1 1 1.00 60.00 120.00 - 1 1 1.00 60.00 120.00 - 6525 3600 7275 3600 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 5775 8175 9975 6300 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 5400 3375 6600 3375 6600 3900 5400 3900 5400 3375 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 7050 2175 8100 2175 8100 2700 7050 2700 7050 2175 -2 2 1 1 1 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 4500 975 6525 975 6525 1500 4500 1500 4500 975 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 5250 1350 3825 4575 + 5925 3750 5250 4350 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 5775 1350 7575 2250 + 6900 2850 6300 3450 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 7875 2550 10875 3450 + 4725 2850 4050 3450 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 7575 2550 8025 3450 + 5700 1950 4950 2550 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 7350 2550 6225 3450 + 7200 2850 8250 3150 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 3300 4875 3000 5100 + 6525 2025 7050 2550 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 3825 4875 3825 5775 -2 1 0 2 4 7 50 -1 -1 0.000 0 0 7 1 0 2 - 1 1 1.00 60.00 120.00 - 4350 4875 5625 5775 -2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 - 7350 3375 8925 3375 8925 3900 7350 3900 7350 3375 -2 1 0 2 1 7 50 -1 -1 0.000 0 0 -1 0 1 2 - 1 0 1.00 60.00 90.00 - 9075 7800 9675 7800 -2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 - 1 0 1.00 60.00 90.00 - 4350 6075 5625 6975 -2 1 0 2 1 7 50 -1 -1 0.000 0 0 -1 0 1 2 - 1 0 1.00 60.00 90.00 - 2400 5400 2400 8025 + 7050 2850 7725 3450 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 5850 6075 5850 6975 + 5175 2850 5925 3450 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 - 4125 4875 5400 5775 -2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 + 4050 3750 4800 4350 +2 1 0 2 1 7 50 -1 -1 0.000 0 0 -1 0 1 2 1 0 1.00 60.00 90.00 - 5925 3750 5925 5775 -4 0 0 50 -1 0 12 0.0000 4 165 885 5400 3300 statesp.py\001 -4 0 0 50 -1 0 12 0.0000 4 195 420 8175 2325 lti.py\001 -4 2 0 50 -1 0 12 0.0000 4 195 885 8925 3300 xferfcn.py\001 -4 2 0 50 -1 0 12 0.0000 4 195 780 12075 3300 frdata.py\001 -4 2 0 50 -1 0 12 0.0000 4 195 780 12075 5925 trdata.py\001 -4 1 1 50 -1 0 12 0.0000 4 150 345 7575 2475 LTI\001 -4 1 1 50 -1 0 12 0.0000 4 195 1440 5925 6000 LinearIOSystem\001 -4 0 0 50 -1 0 12 0.0000 4 195 615 1650 7875 flatsys/\001 -4 0 0 50 -1 0 12 0.0000 4 195 705 1650 4425 iosys.py\001 -4 0 0 50 -1 0 12 0.0000 4 195 720 8700 7575 Legend:\001 -4 1 1 50 -1 16 12 0.0000 4 210 1590 5475 1275 NamedIOSystem\001 -4 1 1 50 -1 16 12 0.0000 4 210 1770 3975 4800 InputOutputSystem\001 -4 1 1 50 -1 16 12 0.0000 4 210 1830 2625 5325 NonlinearIOSystem\001 -4 0 0 50 -1 0 12 0.0000 4 195 1005 6600 1125 namedio.py\001 -4 0 4 50 -1 16 12 0.0000 4 210 945 4800 5100 linearize()\001 -4 1 1 50 -1 16 12 0.0000 4 210 2115 3750 6000 InterconnectedSystem\001 -4 0 4 50 -1 16 12 0.0000 4 210 1875 3000 6750 ic() = interconnect()\001 -4 1 1 50 -1 16 12 0.0000 4 210 1500 5925 7200 LinearICSystem\001 -4 1 1 50 -1 16 12 0.0000 4 210 1035 2250 8250 FlatSystem\001 -4 1 4 50 -1 16 12 0.0000 4 210 1500 3525 8400 point_to_point()\001 -4 1 1 50 -1 16 12 0.0000 4 210 1095 6000 3675 StateSpace\001 -4 1 1 50 -1 16 12 0.0000 4 165 1605 8100 3675 TransferFunction\001 -4 1 1 50 -1 16 12 0.0000 4 210 2400 10875 3675 FrequencyResponseData\001 -4 0 4 50 -1 16 12 0.0000 4 210 1155 10950 4050 to_pandas()\001 -4 1 1 50 -1 16 12 0.0000 4 210 1800 10875 4575 pandas.DataFrame\001 -4 0 4 50 -1 16 12 0.0000 4 210 1560 7950 4725 step_response()\001 -4 0 4 50 -1 16 12 0.0000 4 210 1635 8400 5025 initial_response()\001 -4 0 4 50 -1 16 12 0.0000 4 210 1755 8850 5325 forced_response()\001 -4 1 1 50 -1 16 12 0.0000 4 210 1875 10875 6300 TimeResponseData\001 -4 0 4 50 -1 16 12 0.0000 4 210 1155 10950 6675 to_pandas()\001 -4 1 1 50 -1 16 12 0.0000 4 210 1800 10875 7200 pandas.DataFrame\001 -4 0 1 50 -1 16 12 0.0000 4 210 1755 9750 7875 Class dependency\001 -4 0 4 50 -1 16 12 0.0000 4 210 2475 9750 8175 Conversion [via function()]\001 -4 0 0 50 -1 0 12 0.0000 4 150 1380 9750 8475 Source code file\001 -4 1 4 50 -1 16 12 0.0000 4 210 300 3150 5625 ic()\001 -4 0 4 50 -1 16 12 0.0000 4 210 300 6075 6600 ic()\001 -4 1 1 50 -1 16 12 0.0000 4 210 1650 4950 8250 SystemTrajectory\001 -4 1 4 50 -1 16 12 0.0000 4 210 945 9375 3825 freqresp()\001 -4 1 4 50 -1 16 12 0.0000 4 210 600 6975 3825 tf2ss()\001 -4 1 4 50 -1 16 12 0.0000 4 210 600 6975 3450 ss2tf()\001 -4 1 4 50 -1 16 12 0.0000 4 210 300 5025 6150 ic()\001 -4 1 4 50 -1 16 12 0.0000 4 210 2295 8325 6075 input_output_response()\001 -4 2 4 50 -1 16 12 0.0000 4 210 1035 8175 6975 response()\001 + 4350 2850 3450 3150 +4 1 1 50 -1 16 12 0.0000 4 210 2115 4050 3675 InterconnectedSystem\001 +4 1 1 50 -1 16 12 0.0000 4 165 1605 7950 3675 TransferFunction\001 +4 1 1 50 -1 0 12 0.0000 4 150 345 7050 2775 LTI\001 +4 1 1 50 -1 16 12 0.0000 4 210 1830 5175 2775 NonlinearIOSystem\001 +4 1 1 50 -1 16 12 0.0000 4 210 1095 6150 3675 StateSpace\001 +4 1 1 50 -1 16 12 0.0000 4 210 1770 6300 1800 InputOutputSystem\001 +4 1 1 50 -1 16 12 0.0000 4 210 1500 5175 4575 LinearICSystem\001 +4 2 1 50 -1 16 12 0.0000 4 210 1035 3375 3225 FlatSystem\001 +4 0 1 50 -1 16 12 0.0000 4 165 420 8400 3225 FRD\001 diff --git a/doc/classes.pdf b/doc/classes.pdf index 66ef25e1034a69cabf6d2fb7a6df7c55ae950752..031402fecb5e8d2c36b90b8461ab5e0df33e8481 100644 GIT binary patch delta 4404 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 Q0EvJg08&!Arh0(?0q>=ho&W#< delta 10321 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 BpaTE^ From 4afda82ae752df3fa3204731dd1ff201eec3fdd9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 14 Jun 2023 22:54:15 -0700 Subject: [PATCH 0299/1025] updated unit tests --- control/bdalg.py | 2 + control/iosys.py | 12 +- control/matlab/__init__.py | 1 - control/nlsys.py | 8 +- control/sisotool.py | 25 +- control/statefbk.py | 3 +- control/statesp.py | 371 ++++++++++++++++---------- control/tests/config_test.py | 5 - control/tests/interconnect_test.py | 34 +-- control/tests/iosys_test.py | 143 +++++----- control/tests/kwargs_test.py | 8 +- control/tests/lti_test.py | 39 +-- control/tests/namedio_test.py | 39 ++- control/tests/optimal_test.py | 22 +- control/tests/timeresp_test.py | 4 +- control/tests/type_conversion_test.py | 137 +++++----- control/tests/xferfcn_test.py | 10 +- control/timeresp.py | 22 +- control/xferfcn.py | 51 ++-- 19 files changed, 497 insertions(+), 439 deletions(-) diff --git a/control/bdalg.py b/control/bdalg.py index 0b1d481c8..d1835e4dc 100644 --- a/control/bdalg.py +++ b/control/bdalg.py @@ -202,6 +202,7 @@ def negate(sys): return -sys #! TODO: expand to allow sys2 default to work in MIMO case? +#! TODO: allow renaming of signals (for all bdalg operations) def feedback(sys1, sys2=1, sign=-1): """ Feedback interconnection between two I/O systems. @@ -254,6 +255,7 @@ def feedback(sys1, sys2=1, sign=-1): """ # Allow anything with a feedback function to call that function + # TODO: rewrite to allow __rfeedback__ try: return sys1.feedback(sys2, sign) except AttributeError: diff --git a/control/iosys.py b/control/iosys.py index 2a083e327..be164072b 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -599,13 +599,13 @@ def isctime(sys, strict=False): # Utility function to parse nameio keywords def _process_iosys_keywords( keywords={}, defaults={}, static=False, end=False): - """Process iosys specification + """Process iosys specification. - This function processes the standard keywords used in initializing a named - I/O system. It first looks in the `keyword` dictionary to see if a value - is specified. If not, the `default` dictionary is used. The `default` - dictionary can also be set to a InputOutputSystem object, which is useful for - copy constructors that change system and signal names. + This function processes the standard keywords used in initializing an + I/O system. It first looks in the `keyword` dictionary to see if a + value is specified. If not, the `default` dictionary is used. The + `default` dictionary can also be set to an InputOutputSystem object, + which is useful for copy constructors that change system/signal names. If `end` is True, then generate an error if there are any remaining keywords. diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index e0708c9ab..4b723c984 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -62,7 +62,6 @@ # Control system library from ..statesp import * -from ..statesp import ss, rss, drss # moved from .statesp from ..xferfcn import * from ..lti import * from ..iosys import * diff --git a/control/nlsys.py b/control/nlsys.py index 326ca57ca..42222dc83 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -34,6 +34,8 @@ from . import config from .iosys import InputOutputSystem, _process_signal_list, \ _process_iosys_keywords, isctime, isdtime, common_timebase, _parse_spec +from .timeresp import _check_convert_array, _process_time_response, \ + TimeResponseData __all__ = ['NonlinearIOSystem', 'InterconnectedSystem', 'input_output_response', 'find_eqpt', 'linearize', @@ -174,8 +176,6 @@ def __call__(sys, u, params=None, squeeze=None): value set by config.defaults['control.squeeze_time_response']. """ - from .timeresp import _process_time_response - # Make sure the call makes sense if not sys._isstatic(): raise TypeError( @@ -598,7 +598,6 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, params=None, warn_duplicate=None, **kwargs): """Create an I/O system from a list of systems + connection info.""" from .statesp import _convert_to_statespace - from .statesp import StateSpace, LinearICSystem from .xferfcn import TransferFunction # Convert input and output names to lists if they aren't already @@ -1238,9 +1237,6 @@ def input_output_response( results. """ - from .timeresp import _check_convert_array, _process_time_response, \ - TimeResponseData - # # Process keyword arguments # diff --git a/control/sisotool.py b/control/sisotool.py index b9ee92c10..bbb714a29 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -331,26 +331,21 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', u_summer = summing_junction(['ufb', 'uff', 'd'], 'u') if isctime(plant): - prop = tf(1, 1) - integ = tf(1, [1, 0]) - deriv = tf([1, 0], [tau, 1]) + prop = tf(1, 1, inputs='e', outputs='prop_e') + integ = tf(1, [1, 0], inputs='e', outputs='int_e') + deriv = tf([1, 0], [tau, 1], inputs='y', outputs='deriv') else: # discrete-time - prop = tf(1, 1, dt) - integ = tf([dt/2, dt/2], [1, -1], dt) - deriv = tf([1, -1], [dt, 0], dt) + prop = tf(1, 1, dt, inputs='e', outputs='prop_e') + integ = tf([dt/2, dt/2], [1, -1], dt, inputs='e', outputs='int_e') + deriv = tf([1, -1], [dt, 0], dt, inputs='y', outputs='deriv') - # add signal names by turning into iosystems - prop = tf2io(prop, inputs='e', outputs='prop_e') - integ = tf2io(integ, inputs='e', outputs='int_e') if derivative_in_feedback_path: - deriv = tf2io(-deriv, inputs='y', outputs='deriv') - else: - deriv = tf2io(deriv, inputs='e', outputs='deriv') + deriv = -deriv # create gain blocks - Kpgain = tf2io(tf(Kp0, 1), inputs='prop_e', outputs='ufb') - Kigain = tf2io(tf(Ki0, 1), inputs='int_e', outputs='ufb') - Kdgain = tf2io(tf(Kd0, 1), inputs='deriv', outputs='ufb') + Kpgain = tf(Kp0, 1, inputs='prop_e', outputs='ufb') + Kigain = tf(Ki0, 1, inputs='int_e', outputs='ufb') + Kdgain = tf(Kd0, 1, inputs='deriv', outputs='ufb') # for the gain that is varied, replace gain block with a special block # that has an 'input' and an 'output' that creates loop transfer function diff --git a/control/statefbk.py b/control/statefbk.py index 8f3e6be5a..ddcfaf037 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -754,7 +754,8 @@ def create_statefbk_iosystem( " output must include the full state") elif estimator == sys: # Issue a warning if we can't verify state output - if (isinstance(sys, NonlinearIOSystem) and sys.outfcn is not None) or \ + if (isinstance(sys, NonlinearIOSystem) and + not isinstance(sys, StateSpace) and sys.outfcn is not None) or \ (isinstance(sys, StateSpace) and not (np.all(sys.C[np.ix_(state_indices, state_indices)] == np.eye(sys_nstates)) and diff --git a/control/statesp.py b/control/statesp.py index 684ebb730..6cf343da1 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -74,9 +74,8 @@ except ImportError: ab13dd = None -__all__ = ['StateSpace', 'LinearICSystem', 'ss2io', 'tf2io', 'tf2ss', - 'ssdata', 'linfnorm', 'ss', 'rss', 'drss', - 'summing_junction'] +__all__ = ['StateSpace', 'LinearICSystem', 'tf2ss', 'ssdata', + 'linfnorm', 'ss', 'rss', 'drss', 'summing_junction'] # Define module default parameter values _statesp_defaults = { @@ -199,6 +198,8 @@ def __init__(self, *args, **kwargs): # # Process positional arguments # + # TODO: Move all of this into the ss() factory function + # TODO: Use standard processing order for I/O systems if len(args) == 4: # The user provided A, B, C, and D matrices. (A, B, C, D) = args @@ -222,6 +223,8 @@ def __init__(self, *args, **kwargs): B = args[0].B C = args[0].C D = args[0].D + dt = args[0].dt + # TODO: copy the remaining attributes else: raise TypeError( @@ -275,6 +278,7 @@ def __init__(self, *args, **kwargs): updfcn, outfcn, name=name, inputs=inputs, outputs=outputs, states=states, dt=dt, **kwargs) + self.params = {} # Reset shapes (may not be needed once np.matrix support is removed) if self._isstatic(): @@ -576,12 +580,17 @@ def _repr_latex_(self): # Negation of a system def __neg__(self): """Negate a state space system.""" - return StateSpace(self.A, self.B, -self.C, -self.D, self.dt) # Addition of two state space systems (parallel interconnection) def __add__(self, other): """Add two LTI systems (parallel connection).""" + from .xferfcn import TransferFunction + + # Convert transfer functions to state space + if isinstance(other, TransferFunction): + # Convert the other argument to state space + other = _convert_to_statespace(other) # Check for a couple of special cases if isinstance(other, (int, float, complex, np.number)): @@ -589,20 +598,24 @@ def __add__(self, other): A, B, C = self.A, self.B, self.C D = self.D + other dt = self.dt - else: - # Check to see if the right operator has priority - if getattr(other, '__array_priority__', None) and \ - getattr(self, '__array_priority__', None) and \ - other.__array_priority__ > self.__array_priority__: - return other.__radd__(self) - # Convert the other argument to state space - other = _convert_to_statespace(other) + elif isinstance(other, np.ndarray): + other = np.atleast_2d(other) + if self.ninputs != other.shape[0]: + raise ValueError("array has incompatible shape") + A, B, C = self.A, self.B, self.C + D = self.D + other + dt = self.dt + + elif not isinstance(other, StateSpace): + return NotImplemented # let other.__rmul__ handle it + else: # Check to make sure the dimensions are OK if ((self.ninputs != other.ninputs) or (self.noutputs != other.noutputs)): - raise ValueError("Systems have different shapes.") + raise ValueError( + "can't add systems with incompatible inputs and outputs") dt = common_timebase(self.dt, other.dt) @@ -621,47 +634,53 @@ def __add__(self, other): # Right addition - just switch the arguments def __radd__(self, other): """Right add two LTI systems (parallel connection).""" - return self + other # Subtraction of two state space systems (parallel interconnection) def __sub__(self, other): """Subtract two LTI systems.""" - return self + (-other) def __rsub__(self, other): """Right subtract two LTI systems.""" - return other + (-self) # Multiplication of two state space systems (series interconnection) def __mul__(self, other): """Multiply two LTI objects (serial connection).""" + from .xferfcn import TransferFunction + + # Convert transfer functions to state space + if isinstance(other, TransferFunction): + # Convert the other argument to state space + other = _convert_to_statespace(other) # Check for a couple of special cases if isinstance(other, (int, float, complex, np.number)): # Just multiplying by a scalar; change the output - A, B = self.A, self.B - C = self.C * other + A, C = self.A, self.C + B = self.B * other D = self.D * other dt = self.dt - else: - # Check to see if the right operator has priority - if getattr(other, '__array_priority__', None) and \ - getattr(self, '__array_priority__', None) and \ - other.__array_priority__ > self.__array_priority__: - return other.__rmul__(self) - # Convert the other argument to state space - other = _convert_to_statespace(other) + elif isinstance(other, np.ndarray): + other = np.atleast_2d(other) + if self.ninputs != other.shape[0]: + raise ValueError("array has incompatible shape") + A, C = self.A, self.C + B = self.B @ other + D = self.D @ other + dt = self.dt + + elif not isinstance(other, StateSpace): + return NotImplemented # let other.__rmul__ handle it + else: # Check to make sure the dimensions are OK if self.ninputs != other.noutputs: raise ValueError( - "C = A * B: A has %i column(s) (input(s)), " - "but B has %i row(s)\n(output(s))." % - (self.ninputs, other.noutputs)) + "can't multiply systems with incompatible" + " inputs and outputs") dt = common_timebase(self.dt, other.dt) # Concatenate the various arrays @@ -682,44 +701,38 @@ def __mul__(self, other): # TODO: __rmul__ only works for special cases (??) def __rmul__(self, other): """Right multiply two LTI objects (serial connection).""" + from .xferfcn import TransferFunction + + # Convert transfer functions to state space + if isinstance(other, TransferFunction): + # Convert the other argument to state space + other = _convert_to_statespace(other) # Check for a couple of special cases if isinstance(other, (int, float, complex, np.number)): # Just multiplying by a scalar; change the input - A, C = self.A, self.C - B = self.B * other - D = self.D * other - return StateSpace(A, B, C, D, self.dt) - - # is lti, and convertible? - if isinstance(other, LTI): - return _convert_to_statespace(other) * self + B = other * self.B + D = other * self.D + return StateSpace(self.A, B, self.C, D, self.dt) - # try to treat this as a matrix - try: - X = _ssmatrix(other) - C = X @ self.C - D = X @ self.D + elif isinstance(other, np.ndarray): + C = np.atleast_2d(other) @ self.C + D = np.atleast_2d(other) @ self.D return StateSpace(self.A, self.B, C, D, self.dt) - except Exception as e: - print(e) - pass - return NotImplemented + if not isinstance(other, StateSpace): + return NotImplemented - # TODO: general __truediv__, and __rtruediv__; requires descriptor system support - def __truediv__(self, other): - """Division of StateSpace systems + return other * self - Only division by TFs, FRDs, scalars, and arrays of scalars is - supported. - """ + # TODO: general __truediv__ requires descriptor system support + def __truediv__(self, other): + """Division of state space systems byTFs, FRDs, scalars, and arrays""" if not isinstance(other, (LTI, InputOutputSystem)): return self * (1/other) else: return NotImplemented - def __call__(self, x, squeeze=None, warn_infinite=True): """Evaluate system's frequency response at complex frequencies. @@ -1480,7 +1493,6 @@ def __init__(self, io_sys, ss_sys=None): self.params = io_sys.params # If we didnt' get a state space system, linearize the full system - # TODO: this could be replaced with a direct computation (someday) if ss_sys is None: ss_sys = self.linearize(0, 0) @@ -1631,87 +1643,6 @@ def ss(*args, **kwargs): return sys -# Convert a state space system into an input/output system (wrapper) -def ss2io(*args, **kwargs): - return StateSpace(*args, **kwargs) -ss2io.__doc__ = StateSpace.__init__.__doc__ - - -# Convert a transfer function into an input/output system (wrapper) -def tf2io(*args, **kwargs): - """tf2io(sys[, ...]) - - Convert a transfer function into an I/O system - - The function accepts either 1 or 2 parameters: - - ``tf2io(sys)`` - Convert a linear system into space space form. Always creates - a new system, even if sys is already a StateSpace object. - - ``tf2io(num, den)`` - Create a linear I/O system from its numerator and denominator - polynomial coefficients. - - For details see: :func:`tf` - - Parameters - ---------- - sys : LTI (StateSpace or TransferFunction) - A linear system. - num : array_like, or list of list of array_like - Polynomial coefficients of the numerator. - den : array_like, or list of list of array_like - Polynomial coefficients of the denominator. - - Returns - ------- - out : LinearIOSystem - New I/O system (in state space form). - - Other Parameters - ---------------- - inputs, outputs : str, or list of str, optional - List of strings that name the individual signals of the transformed - system. If not given, the inputs and outputs are the same as the - original system. - name : string, optional - System name. If unspecified, a generic name is generated - with a unique integer id. - - Raises - ------ - ValueError - if `num` and `den` have invalid or unequal dimensions, or if an - invalid number of arguments is passed in. - TypeError - if `num` or `den` are of incorrect type, or if sys is not a - TransferFunction object. - - See Also - -------- - ss2io - tf2ss - - Examples - -------- - >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] - >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] - >>> sys1 = ct.tf2ss(num, den) - - >>> sys_tf = ct.tf(num, den) - >>> G = ct.tf2ss(sys_tf) - >>> G.ninputs, G.noutputs, G.nstates - (2, 2, 8) - - """ - # Convert the system to a state space system - linsys = tf2ss(*args) - - # Now convert the state space system to an I/O system - return StateSpace(linsys, **kwargs) - - def tf2ss(*args, **kwargs): """tf2ss(sys) @@ -2440,9 +2371,10 @@ def _mimo2siso(sys, input, output, warn_conversion=False): new_B = sys.B[:, input] new_C = sys.C[output, :] new_D = sys.D[output, input] - sys = StateSpace(sys.A, new_B, new_C, new_D, sys.dt, - name=sys.name, - inputs=sys.input_labels[input], outputs=sys.output_labels[output]) + sys = StateSpace( + sys.A, new_B, new_C, new_D, sys.dt, + name=sys.name, + inputs=sys.input_labels[input], outputs=sys.output_labels[output]) return sys @@ -2496,3 +2428,166 @@ def _mimo2simo(sys, input, warn_conversion=False): inputs=sys.input_labels[input], outputs=sys.output_labels) return sys + + +def tf2ss(*args, **kwargs): + """tf2ss(sys) + + Transform a transfer function to a state space system. + + The function accepts either 1 or 2 parameters: + + ``tf2ss(sys)`` + Convert a linear system into space space form. Always creates + a new system, even if sys is already a StateSpace object. + + ``tf2ss(num, den)`` + Create a state space system from its numerator and denominator + polynomial coefficients. + + For details see: :func:`tf` + + Parameters + ---------- + sys : LTI (StateSpace or TransferFunction) + A linear system + num : array_like, or list of list of array_like + Polynomial coefficients of the numerator + den : array_like, or list of list of array_like + Polynomial coefficients of the denominator + + Returns + ------- + out : StateSpace + New linear system in state space form + + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals of the transformed + system. If not given, the inputs and outputs are the same as the + original system. + name : string, optional + System name. If unspecified, a generic name is generated + with a unique integer id. + + Raises + ------ + ValueError + if `num` and `den` have invalid or unequal dimensions, or if an + invalid number of arguments is passed in + TypeError + if `num` or `den` are of incorrect type, or if sys is not a + TransferFunction object + + See Also + -------- + ss + tf + ss2tf + + Examples + -------- + >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] + >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] + >>> sys1 = ct.tf2ss(num, den) + + >>> sys_tf = ct.tf(num, den) + >>> sys2 = ct.tf2ss(sys_tf) + + """ + + from .xferfcn import TransferFunction + if len(args) == 2 or len(args) == 3: + # Assume we were given the num, den + return StateSpace( + _convert_to_statespace(TransferFunction(*args)), **kwargs) + + elif len(args) == 1: + sys = args[0] + if not isinstance(sys, TransferFunction): + raise TypeError("tf2ss(sys): sys must be a TransferFunction " + "object.") + return StateSpace( + _convert_to_statespace( + sys, + use_prefix_suffix=not sys._generic_name_check()), + **kwargs) + else: + raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) + + +def ssdata(sys): + """ + Return state space data objects for a system + + Parameters + ---------- + sys : LTI (StateSpace, or TransferFunction) + LTI system whose data will be returned + + Returns + ------- + (A, B, C, D): list of matrices + State space data for the system + """ + ss = _convert_to_statespace(sys) + return ss.A, ss.B, ss.C, ss.D + + +def linfnorm(sys, tol=1e-10): + """L-infinity norm of a linear system + + Parameters + ---------- + sys : LTI (StateSpace or TransferFunction) + system to evalute L-infinity norm of + tol : real scalar + tolerance on norm estimate + + Returns + ------- + gpeak : non-negative scalar + L-infinity norm + fpeak : non-negative scalar + Frequency, in rad/s, at which gpeak occurs + + For stable systems, the L-infinity and H-infinity norms are equal; + for unstable systems, the H-infinity norm is infinite, while the + L-infinity norm is finite if the system has no poles on the + imaginary axis. + + See also + -------- + slycot.ab13dd : the Slycot routine linfnorm that does the calculation + """ + + if ab13dd is None: + raise ControlSlycot("Can't find slycot module 'ab13dd'") + + a, b, c, d = ssdata(_convert_to_statespace(sys)) + e = np.eye(a.shape[0]) + + n = a.shape[0] + m = b.shape[1] + p = c.shape[0] + + if n == 0: + # ab13dd doesn't accept empty A, B, C, D; + # static gain case is easy enough to compute + gpeak = scipy.linalg.svdvals(d)[0] + # max svd is constant with freq; arbitrarily choose 0 as peak + fpeak = 0 + return gpeak, fpeak + + dico = 'C' if sys.isctime() else 'D' + jobe = 'I' + equil = 'S' + jobd = 'Z' if all(0 == d.flat) else 'D' + + gpeak, fpeak = ab13dd(dico, jobe, equil, jobd, n, m, p, a, e, b, c, d, tol) + + if dico=='D': + fpeak /= sys.dt + + return gpeak, fpeak diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 3d0548555..584d0a806 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -284,11 +284,6 @@ def test_change_default_dt_static(self): assert ct.tf(1, 1).dt is None assert ct.ss([], [], [], 1).dt is None - # Make sure static gain is preserved for the I/O system - sys = ct.ss([], [], [], 1) - sys_io = ct.ss2io(sys) - assert sys_io.dt is None - def test_get_param_last(self): """Test _get_param last keyword""" kwargs = {'first': 1, 'second': 2} diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 9fa876c27..40b074551 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -65,7 +65,7 @@ def test_interconnect_implicit(dim): pytest.xfail("slycot not installed") # System definition - P = ct.ss2io(ct.rss(2, dim, dim, strictly_proper=True), name='P') + P = ct.rss(2, dim, dim, strictly_proper=True, name='P') # Controller defintion: PI in each input/output pair kp = ct.tf(np.ones((dim, dim, 1)), np.ones((dim, dim, 1))) \ @@ -76,14 +76,14 @@ def test_interconnect_implicit(dim): num[i, j] = ki den[i, j] = np.array([1, 0]) ki = ct.tf(num, den) - C = ct.tf2io(kp + ki, name='C', - inputs=[f'e[{i}]' for i in range(dim)], - outputs=[f'u[{i}]' for i in range(dim)]) + C = ct.tf(kp + ki, name='C', + inputs=[f'e[{i}]' for i in range(dim)], + outputs=[f'u[{i}]' for i in range(dim)]) # same but static C2 - C2 = ct.tf2io(kp * random.uniform(1, 10), name='C2', - inputs=[f'e[{i}]' for i in range(dim)], - outputs=[f'u[{i}]' for i in range(dim)]) + C2 = ct.tf(kp * random.uniform(1, 10), name='C2', + inputs=[f'e[{i}]' for i in range(dim)], + outputs=[f'u[{i}]' for i in range(dim)]) # Block diagram computation Tss = ct.feedback(P * C, np.eye(dim)) @@ -127,10 +127,10 @@ def test_interconnect_implicit(dim): np.testing.assert_allclose(empty.connect_map, np.zeros((4*dim, 3*dim))) # Implicit summation across repeated signals (using updated labels) - kp_io = ct.tf2io( + kp_io = ct.tf( kp, inputs=dim, input_prefix='e', outputs=dim, output_prefix='u', name='kp') - ki_io = ct.tf2io( + ki_io = ct.tf( ki, inputs=dim, input_prefix='e', outputs=dim, output_prefix='u', name='ki') Tio_sum = ct.interconnect( @@ -188,21 +188,23 @@ def test_interconnect_docstring(): np.testing.assert_almost_equal(T.D, T_ss.D) # Implicit interconnection (note: use [C, P, sumblk] for proper state order) - P = ct.tf2io(ct.tf(1, [1, 0]), inputs='u', outputs='y') - C = ct.tf2io(ct.tf(10, [1, 1]), inputs='e', outputs='u') + P = ct.tf(1, [1, 0], inputs='u', outputs='y') + C = ct.tf(10, [1, 1], inputs='e', outputs='u') sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') T = ct.interconnect([C, P, sumblk], inplist='r', outlist='y') - T_ss = ct.feedback(P * C, 1) + T_ss = ct.ss(ct.feedback(P * C, 1)) + + # Test in a manner that recognizes that recognizes non-unique realization np.testing.assert_almost_equal(T.A, T_ss.A) - np.testing.assert_almost_equal(T.B, T_ss.B) - np.testing.assert_almost_equal(T.C, T_ss.C) + np.testing.assert_almost_equal(T.C @ T.B, T_ss.C @ T_ss.B) + np.testing.assert_almost_equal(T.C @ T. A @ T.B, T_ss.C @ T_ss.A @ T_ss.B) np.testing.assert_almost_equal(T.D, T_ss.D) def test_interconnect_exceptions(): # First make sure the docstring example works - P = ct.tf2io(ct.tf(1, [1, 0]), input='u', output='y') - C = ct.tf2io(ct.tf(10, [1, 1]), input='e', output='u') + P = ct.tf(1, [1, 0], input='u', output='y') + C = ct.tf(10, [1, 1], input='e', output='u') sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') T = ct.interconnect((P, C, sumblk), input='r', output='y') assert (T.ninputs, T.noutputs, T.nstates) == (1, 1, 2) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 5feee82e8..7a75ebf3b 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -53,13 +53,13 @@ class TSys: def test_linear_iosys(self, tsys): # Create an input/output system from the linear system linsys = tsys.siso_linsys - iosys = ct.LinearIOSystem(linsys).copy() + iosys = ct.StateSpace(linsys).copy() # Make sure that the right hand side matches linear system for x, u in (([0, 0], 0), ([1, 0], 0), ([0, 1], 0), ([0, 0], 1)): np.testing.assert_array_almost_equal( - np.reshape(iosys._rhs(0, x, u), (-1, 1)), - linsys.A @ np.reshape(x, (-1, 1)) + linsys.B * u) + iosys._rhs(0, x, u), + linsys.A @ np.array(x) + linsys.B @ np.array(u, ndmin=1)) # Make sure that simulations also line up T, U, X0 = tsys.T, tsys.U, tsys.X0 @@ -70,14 +70,14 @@ def test_linear_iosys(self, tsys): # Make sure that a static linear system has dt=None # and otherwise dt is as specified - assert ct.LinearIOSystem(tsys.staticgain).dt is None - assert ct.LinearIOSystem(tsys.staticgain, dt=.1).dt == .1 + assert ct.StateSpace(tsys.staticgain).dt is None + assert ct.StateSpace(tsys.staticgain, dt=.1).dt == .1 def test_tf2io(self, tsys): # Create a transfer function from the state space system linsys = tsys.siso_linsys tfsys = ct.ss2tf(linsys) - iosys = ct.tf2io(tfsys) + iosys = ct.ss(tfsys) # Verify correctness via simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 @@ -89,19 +89,14 @@ def test_tf2io(self, tsys): # Make sure that non-proper transfer functions generate an error tfsys = ct.tf('s') with pytest.raises(ValueError): - iosys=ct.tf2io(tfsys) + iosys=ct.ss(tfsys) def test_ss2io(self, tsys): # Create an input/output system from the linear system linsys = tsys.siso_linsys - iosys = ct.ss2io(linsys) - np.testing.assert_allclose(linsys.A, iosys.A) - np.testing.assert_allclose(linsys.B, iosys.B) - np.testing.assert_allclose(linsys.C, iosys.C) - np.testing.assert_allclose(linsys.D, iosys.D) # Try adding names to things - iosys_named = ct.ss2io(linsys, inputs='u', outputs='y', + iosys_named = ct.ss(linsys, inputs='u', outputs='y', states=['x1', 'x2'], name='iosys_named') assert iosys_named.find_input('u') == 0 assert iosys_named.find_input('x') is None @@ -125,7 +120,7 @@ def test_iosys_print(self, tsys, capsys): # Send the output to /dev/null # Simple I/O system - iosys = ct.ss2io(tsys.siso_linsys) + iosys = ct.ss(tsys.siso_linsys) print(iosys) # I/O system without ninputs, noutputs @@ -193,7 +188,7 @@ def kincar_output(t, x, u, params): def test_linearize(self, tsys, kincar): # Create a single input/single output linear system linsys = tsys.siso_linsys - iosys = ct.LinearIOSystem(linsys) + iosys = ct.StateSpace(linsys) # Linearize it and make sure we get back what we started with linearized = iosys.linearize([0, 0], 0) @@ -259,9 +254,9 @@ def test_linearize_named_signals(self, kincar): def test_connect(self, tsys): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys - iosys1 = ct.LinearIOSystem(linsys1, name='iosys1') + iosys1 = ct.StateSpace(linsys1, name='iosys1') linsys2 = tsys.siso_linsys - iosys2 = ct.LinearIOSystem(linsys2, name='iosys2') + iosys2 = ct.StateSpace(linsys2, name='iosys2') # Connect systems in different ways and compare to StateSpace linsys_series = linsys2 * linsys1 @@ -284,7 +279,7 @@ def test_connect(self, tsys): # Connect systems with different timebases linsys2c = tsys.siso_linsys linsys2c.dt = 0 # Reset the timebase - iosys2c = ct.LinearIOSystem(linsys2c) + iosys2c = ct.StateSpace(linsys2c) iosys_series = ct.InterconnectedSystem( [iosys1, iosys2c], # systems [[1, 0]], # interconnection (series) @@ -335,9 +330,9 @@ def test_connect(self, tsys): def test_connect_spec_variants(self, tsys, connections, inplist, outlist): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys - iosys1 = ct.LinearIOSystem(linsys1, name="sys1") + iosys1 = ct.StateSpace(linsys1, name="sys1") linsys2 = tsys.siso_linsys - iosys2 = ct.LinearIOSystem(linsys2, name="sys2") + iosys2 = ct.StateSpace(linsys2, name="sys2") # Simple series connection linsys_series = linsys2 * linsys1 @@ -370,9 +365,9 @@ def test_connect_spec_variants(self, tsys, connections, inplist, outlist): def test_connect_spec_warnings(self, tsys, connections, inplist, outlist): # Define a couple of (linear) systems to interconnection linsys1 = tsys.siso_linsys - iosys1 = ct.LinearIOSystem(linsys1, name="sys1") + iosys1 = ct.StateSpace(linsys1, name="sys1") linsys2 = tsys.siso_linsys - iosys2 = ct.LinearIOSystem(linsys2, name="sys2") + iosys2 = ct.StateSpace(linsys2, name="sys2") # Simple series connection linsys_series = linsys2 * linsys1 @@ -395,7 +390,7 @@ def test_connect_spec_warnings(self, tsys, connections, inplist, outlist): def test_static_nonlinearity(self, tsys): # Linear dynamical system linsys = tsys.siso_linsys - ioslin = ct.LinearIOSystem(linsys) + ioslin = ct.StateSpace(linsys) # Nonlinear saturation sat = lambda u: u if abs(u) < 1 else np.sign(u) @@ -420,11 +415,11 @@ def test_static_nonlinearity(self, tsys): def test_algebraic_loop(self, tsys): # Create some linear and nonlinear systems to play with linsys = tsys.siso_linsys - lnios = ct.LinearIOSystem(linsys) + lnios = ct.StateSpace(linsys) nlios = ct.NonlinearIOSystem(None, \ lambda t, x, u, params: u*u, inputs=1, outputs=1) - nlios1 = nlct.copy(name='nlios1') - nlios2 = nlct.copy(name='nlios2') + nlios1 = nlios.copy(name='nlios1') + nlios2 = nlios.copy(name='nlios2') # Set up parameters for simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 @@ -473,7 +468,7 @@ def test_algebraic_loop(self, tsys): # Algebraic loop due to feedthrough term linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], [[1]]) - lnios = ct.LinearIOSystem(linsys) + lnios = ct.StateSpace(linsys) iosys = ct.InterconnectedSystem( [nlios, lnios], # linear system w/ nonlinear feedback [[0, 1], # feedback interconnection @@ -488,8 +483,8 @@ def test_algebraic_loop(self, tsys): def test_summer(self, tsys): # Construct a MIMO system for testing linsys = tsys.mimo_linsys1 - linio1 = ct.LinearIOSystem(linsys, name='linio1') - linio2 = ct.LinearIOSystem(linsys, name='linio2') + linio1 = ct.StateSpace(linsys, name='linio1') + linio2 = ct.StateSpace(linsys, name='linio2') linsys_parallel = linsys + linsys iosys_parallel = linio1 + linio2 @@ -505,14 +500,14 @@ def test_summer(self, tsys): def test_rmul(self, tsys): # Test right multiplication - # TODO: replace with better tests when conversions are implemented + # Note: this is also tested in types_conversion_test.py # Set up parameters for simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 # Linear system with input and output nonlinearities # Also creates a nested interconnected system - ioslin = ct.LinearIOSystem(tsys.siso_linsys) + ioslin = ct.StateSpace(tsys.siso_linsys) nlios = ct.NonlinearIOSystem(None, \ lambda t, x, u, params: u*u, inputs=1, outputs=1) sys1 = nlios * ioslin @@ -537,7 +532,7 @@ def test_neg(self, tsys): # Linear system with input nonlinearity # Also creates a nested interconnected system - ioslin = ct.LinearIOSystem(tsys.siso_linsys) + ioslin = ct.StateSpace(tsys.siso_linsys) sys = (ioslin) * (-nlios) # Make sure we got the right thing (via simulation comparison) @@ -550,7 +545,7 @@ def test_feedback(self, tsys): T, U, X0 = tsys.T, tsys.U, tsys.X0 # Linear system with constant feedback (via "nonlinear" mapping) - ioslin = ct.LinearIOSystem(tsys.siso_linsys) + ioslin = ct.StateSpace(tsys.siso_linsys) nlios = ct.NonlinearIOSystem(None, \ lambda t, x, u, params: u, inputs=1, outputs=1) iosys = ct.feedback(ioslin, nlios) @@ -569,9 +564,9 @@ def test_bdalg_functions(self, tsys): # Set up systems to be composed linsys1 = tsys.mimo_linsys1 - linio1 = ct.LinearIOSystem(linsys1) + linio1 = ct.StateSpace(linsys1) linsys2 = tsys.mimo_linsys2 - linio2 = ct.LinearIOSystem(linsys2) + linio2 = ct.StateSpace(linsys2) # Series interconnection linsys_series = ct.series(linsys1, linsys2) @@ -615,9 +610,9 @@ def test_algebraic_functions(self, tsys): # Set up systems to be composed linsys1 = tsys.mimo_linsys1 - linio1 = ct.LinearIOSystem(linsys1) + linio1 = ct.StateSpace(linsys1) linsys2 = tsys.mimo_linsys2 - linio2 = ct.LinearIOSystem(linsys2) + linio2 = ct.StateSpace(linsys2) # Multiplication linsys_mul = linsys2 * linsys1 @@ -668,13 +663,13 @@ def test_nonsquare_bdalg(self, tsys): linsys_2i3o = ct.StateSpace( [[-1, 1, 0], [0, -2, 0], [0, 0, -3]], [[1, 0], [0, 1], [1, 1]], [[1, 0, 0], [0, 1, 0], [0, 0, 1]], np.zeros((3, 2))) - iosys_2i3o = ct.LinearIOSystem(linsys_2i3o) + iosys_2i3o = ct.StateSpace(linsys_2i3o) linsys_3i2o = ct.StateSpace( [[-1, 1, 0], [0, -2, 0], [0, 0, -3]], [[1, 0, 0], [0, 1, 0], [0, 0, 1]], [[1, 0, 1], [0, 1, -1]], np.zeros((2, 3))) - iosys_3i2o = ct.LinearIOSystem(linsys_3i2o) + iosys_3i2o = ct.StateSpace(linsys_3i2o) # Multiplication linsys_multiply = linsys_3i2o * linsys_2i3o @@ -711,7 +706,7 @@ def test_discrete(self, tsys): # Create some linear and nonlinear systems to play with linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], [[0]], True) - lnios = ct.LinearIOSystem(linsys) + lnios = ct.StateSpace(linsys) # Set up parameters for simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 @@ -725,7 +720,7 @@ def test_discrete(self, tsys): # Test MIMO system, converted to discrete time linsys = ct.StateSpace(tsys.mimo_linsys1) linsys.dt = tsys.T[1] - tsys.T[0] - lnios = ct.LinearIOSystem(linsys) + lnios = ct.StateSpace(linsys) # Set up parameters for simulation T = tsys.T @@ -873,7 +868,7 @@ def test_find_eqpts_dfan(self, tsys): # Unobservable system linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[0, 0]], [[0]]) - lnios = ct.LinearIOSystem(linsys) + lnios = ct.StateSpace(linsys) # If result is returned, user has to check xeq, ueq, result = ct.find_eqpt( @@ -936,12 +931,13 @@ def test_params(self, tsys): # Check for warning if we try to set params for StateSpace linsys = tsys.siso_linsys - iosys = ct.LinearIOSystem(linsys) + iosys = ct.StateSpace(linsys) T, U, X0 = tsys.T, tsys.U, tsys.X0 lti_t, lti_y = ct.forced_response(linsys, T, U, X0) - with pytest.warns(UserWarning, match="StateSpace.*ignored"): - ios_t, ios_y = ct.input_output_response( - iosys, T, U, X0, params={'something':0}) + # TODO: add back something along these lines + # with pytest.warns(UserWarning, match="StateSpace.*ignored"): + ios_t, ios_y = ct.input_output_response( + iosys, T, U, X0, params={'something':0}) # Check to make sure results are OK np.testing.assert_array_almost_equal(lti_t, ios_t) @@ -961,7 +957,7 @@ def test_named_signals(self, tsys): outputs = ['y[0]', 'y[1]'], states = tsys.mimo_linsys1.nstates, name = 'sys1') - sys2 = ct.LinearIOSystem(tsys.mimo_linsys2, + sys2 = ct.StateSpace(tsys.mimo_linsys2, inputs = ['u[0]', 'u[1]'], outputs = ['y[0]', 'y[1]'], name = 'sys2') @@ -1061,7 +1057,7 @@ def test_sys_naming_convention(self, tsys): ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 # Create a system with a known ID - ct.iosys.NamedIOSystem._idCounter = 0 + ct.InputOutputSystem._idCounter = 0 sys = ct.ss( tsys.mimo_linsys1.A, tsys.mimo_linsys1.B, tsys.mimo_linsys1.C, tsys.mimo_linsys1.D) @@ -1129,7 +1125,7 @@ def test_signals_naming_convention_0_8_4(self, tsys): ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 # Create a system with a known ID - ct.iosys.NamedIOSystem._idCounter = 0 + ct.InputOutputSystem._idCounter = 0 sys = ct.ss( tsys.mimo_linsys1.A, tsys.mimo_linsys1.B, tsys.mimo_linsys1.C, tsys.mimo_linsys1.D) @@ -1296,10 +1292,8 @@ def test_lineariosys_statespace(self, tsys): # Make sure series interconnections are done in the right order ss_sys1 = ct.rss(2, 3, 2) - io_sys1 = ct.ss2io(ss_sys1) ss_sys2 = ct.rss(2, 2, 3) - io_sys2 = ct.ss2io(ss_sys2) - io_series = io_sys2 * io_sys1 + io_series = ss_sys2 * ss_sys1 assert io_series.ninputs == 2 assert io_series.noutputs == 2 assert io_series.nstates == 4 @@ -1350,15 +1344,16 @@ def test_operand_conversion(self, Pout, Pin, C, op, PCout, PCin): @pytest.mark.parametrize( "Pout, Pin, C, op", [ (2, 2, 'rss32', ct.StateSpace.__mul__), + (2, 3, np.array([[2]]), ct.StateSpace.__mul__), (2, 2, 'rss23', ct.StateSpace.__rmul__), (2, 2, 'rss32', ct.StateSpace.__add__), (2, 2, 'rss23', ct.StateSpace.__radd__), - (2, 3, 2, ct.StateSpace.__add__), - (2, 3, 2, ct.StateSpace.__radd__), + (2, 3, np.array([[2]]), ct.StateSpace.__add__), + (2, 3, np.array([[2]]), ct.StateSpace.__radd__), (2, 2, 'rss32', ct.StateSpace.__sub__), (2, 2, 'rss23', ct.StateSpace.__rsub__), - (2, 3, 2, ct.StateSpace.__sub__), - (2, 3, 2, ct.StateSpace.__rsub__), + (2, 3, np.array([[2]]), ct.StateSpace.__sub__), + (2, 3, np.array([[2]]), ct.StateSpace.__rsub__), ]) def test_operand_incompatible(self, Pout, Pin, C, op): P = ct.StateSpace( @@ -1382,8 +1377,11 @@ def test_operand_incompatible(self, Pout, Pin, C, op): def test_operand_badtype(self, C, op): P = ct.StateSpace( ct.rss(2, 2, 2, strictly_proper=True), name='P') - with pytest.raises(TypeError, match="Unknown"): - op(P, C) + try: + assert op(P, C) == NotImplemented + except TypeError: + # Also OK if Python can't find a matching type + pass def test_neg_badsize(self): # Create a system of unspecified size @@ -1433,8 +1431,8 @@ def test_duplicates(self, tsys): # Nonduplicate objects with pytest.warns(UserWarning, match="NumPy matrix class no longer"): ct.config.use_legacy_defaults('0.8.4') # changed delims in 0.9.0 - nlios1 = nlct.copy() - nlios2 = nlct.copy() + nlios1 = nlios.copy() + nlios2 = nlios.copy() with pytest.warns(UserWarning, match="duplicate name"): ios_series = nlios1 * nlios2 assert "copy of sys_1.x[0]" in ios_series.state_index.keys() @@ -1469,10 +1467,10 @@ def test_duplicates(self, tsys): def test_linear_interconnection(): ss_sys1 = ct.rss(2, 2, 2, strictly_proper=True) ss_sys2 = ct.rss(2, 2, 2) - io_sys1 = ct.LinearIOSystem( + io_sys1 = ct.StateSpace( ss_sys1, inputs = ('u[0]', 'u[1]'), outputs = ('y[0]', 'y[1]'), name = 'sys1') - io_sys2 = ct.LinearIOSystem( + io_sys2 = ct.StateSpace( ss_sys2, inputs = ('u[0]', 'u[1]'), outputs = ('y[0]', 'y[1]'), name = 'sys2') nl_sys2 = ct.NonlinearIOSystem( @@ -1513,7 +1511,7 @@ def test_linear_interconnection(): # Now take its linearization ss_connect = nl_connect.linearize(0, 0) - assert isinstance(ss_connect, ct.LinearIOSystem) + assert isinstance(ss_connect, ct.StateSpace) io_connect = ct.interconnect( (io_sys1, io_sys2), @@ -1530,7 +1528,6 @@ def test_linear_interconnection(): ['sys2.u[1]']]) assert isinstance(io_connect, ct.InterconnectedSystem) assert isinstance(io_connect, ct.LinearICSystem) - assert isinstance(io_connect, ct.LinearIOSystem) assert isinstance(io_connect, ct.StateSpace) # Finally compare the linearization with the linear system @@ -1541,15 +1538,15 @@ def test_linear_interconnection(): # make sure interconnections of linear systems are linear and # if a nonlinear system is included then system is nonlinear - assert isinstance(ss_siso*ss_siso, ct.LinearIOSystem) - assert isinstance(tf_siso*ss_siso, ct.LinearIOSystem) - assert isinstance(ss_siso*tf_siso, ct.LinearIOSystem) - assert ~isinstance(ss_siso*nl_siso, ct.LinearIOSystem) - assert ~isinstance(nl_siso*ss_siso, ct.LinearIOSystem) - assert ~isinstance(nl_siso*nl_siso, ct.LinearIOSystem) - assert ~isinstance(tf_siso*nl_siso, ct.LinearIOSystem) - assert ~isinstance(nl_siso*tf_siso, ct.LinearIOSystem) - assert ~isinstance(nl_siso*nl_siso, ct.LinearIOSystem) + assert isinstance(ss_siso*ss_siso, ct.StateSpace) + assert isinstance(tf_siso*ss_siso, ct.TransferFunction) + assert isinstance(ss_siso*tf_siso, ct.StateSpace) + assert ~isinstance(ss_siso*nl_siso, ct.StateSpace) + assert ~isinstance(nl_siso*ss_siso, ct.StateSpace) + assert ~isinstance(nl_siso*nl_siso, ct.StateSpace) + assert ~isinstance(tf_siso*nl_siso, ct.StateSpace) + assert ~isinstance(nl_siso*tf_siso, ct.StateSpace) + assert ~isinstance(nl_siso*nl_siso, ct.StateSpace) def predprey(t, x, u, params={}): diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 01c81503e..36e8ca17c 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -91,11 +91,9 @@ def test_kwarg_search(module, prefix): (control.rss, 0, 0, (2, 1, 1), {}), (control.set_defaults, 0, 0, ('control',), {'default_dt': True}), (control.ss, 0, 0, (0, 0, 0, 0), {'dt': 1}), - (control.ss2io, 1, 0, (), {}), (control.ss2tf, 1, 0, (), {}), (control.summing_junction, 0, 0, (2,), {}), (control.tf, 0, 0, ([1], [1, 1]), {}), - (control.tf2io, 0, 1, (), {}), (control.tf2ss, 0, 1, (), {}), (control.zpk, 0, 0, ([1], [2, 3], 4), {}), (control.InputOutputSystem, 0, 0, (), @@ -183,11 +181,9 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'set_defaults': test_unrecognized_kwargs, 'singular_values_plot': test_matplotlib_kwargs, 'ss': test_unrecognized_kwargs, - 'ss2io': test_unrecognized_kwargs, 'ss2tf': test_unrecognized_kwargs, 'summing_junction': interconnect_test.test_interconnect_exceptions, 'tf': test_unrecognized_kwargs, - 'tf2io' : test_unrecognized_kwargs, 'tf2ss' : test_unrecognized_kwargs, 'sample_system' : test_unrecognized_kwargs, 'c2d' : test_unrecognized_kwargs, @@ -239,8 +235,8 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): mutable_ok = { # initial and date control.flatsys.SystemTrajectory.__init__, # RMM, 18 Nov 2022 control.freqplot._add_arrows_to_line2D, # RMM, 18 Nov 2022 - control.iosys._process_dt_keyword, # RMM, 13 Nov 2022 - control.iosys._process_iosys_keywords, # RMM, 18 Nov 2022 + control.iosys._process_dt_keyword, # RMM, 13 Nov 2022 + control.iosys._process_iosys_keywords, # RMM, 18 Nov 2022 } @pytest.mark.parametrize("module", [control, control.flatsys]) diff --git a/control/tests/lti_test.py b/control/tests/lti_test.py index e0f7f35bf..e1d7b51a6 100644 --- a/control/tests/lti_test.py +++ b/control/tests/lti_test.py @@ -21,28 +21,26 @@ def test_poles(self, fun, args): np.testing.assert_allclose(sys.poles(), 42) np.testing.assert_allclose(poles(sys), 42) - with pytest.warns(PendingDeprecationWarning): + with pytest.raises(AttributeError, match="no attribute 'pole'"): pole_list = sys.pole() - assert pole_list == sys.poles() - with pytest.warns(PendingDeprecationWarning): + with pytest.raises(AttributeError, match="no attribute 'pole'"): pole_list = ct.pole(sys) - assert pole_list == sys.poles() @pytest.mark.parametrize("fun, args", [ [tf, (126, [-1, 42])], [ss, ([[42]], [[1]], [[1]], 0)] ]) - def test_zero(self, fun, args): + def test_zeros(self, fun, args): sys = fun(*args) np.testing.assert_allclose(sys.zeros(), 42) np.testing.assert_allclose(zeros(sys), 42) - with pytest.warns(PendingDeprecationWarning): - sys.zero() + with pytest.raises(AttributeError, match="no attribute 'zero'"): + zero_list = sys.zero() - with pytest.warns(PendingDeprecationWarning): - ct.zero(sys) + with pytest.raises(AttributeError, match="no attribute 'zero'"): + zero_list = ct.zero(sys) def test_issiso(self): assert issiso(1) @@ -91,7 +89,8 @@ def test_damp(self): np.testing.assert_almost_equal(sys_dt.damp(), expected_dt) np.testing.assert_almost_equal(damp(sys_dt), expected_dt) - #also check that for a discrete system with a negative real pole the damp function can extract wn and zeta. + # also check that for a discrete system with a negative real pole + # the damp function can extract wn and zeta. p2_zplane = -0.2 sys_dt2 = tf(1, [1, -p2_zplane], dt) wn2, zeta2, p2 = sys_dt2.damp() @@ -129,7 +128,7 @@ def test_bandwidth(self): np.testing.assert_raises(TypeError, bandwidth, 1) # test exception for system other than SISO system - sysMIMO = tf([[[-1, 41], [1]], [[1, 2], [3, 4]]], + sysMIMO = tf([[[-1, 41], [1]], [[1, 2], [3, 4]]], [[[1, 10], [1, 20]], [[1, 30], [1, 40]]]) np.testing.assert_raises(TypeError, bandwidth, sysMIMO) @@ -218,7 +217,7 @@ def test_isdtime(self, objfun, arg, dt, ref, strictref): assert isctime(obj, strict=True) == strictref @pytest.mark.usefixtures("editsdefaults") - @pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd, ct.ss2io]) + @pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd]) @pytest.mark.parametrize("nstate, nout, ninp, omega, squeeze, shape", [ [1, 1, 1, 0.1, None, ()], # SISO [1, 1, 1, [0.1], None, (1,)], @@ -312,7 +311,7 @@ def test_squeeze(self, fcn, nstate, nout, ninp, omega, squeeze, shape, assert ct.evalfr(sys, s).shape == \ (sys.noutputs, sys.ninputs, len(omega)) - @pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd, ct.ss2io]) + @pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd]) def test_squeeze_exceptions(self, fcn): if fcn == ct.frd: sys = fcn(ct.rss(2, 1, 1), [1e-2, 1e-1, 1, 1e1, 1e2]) @@ -332,17 +331,3 @@ def test_squeeze_exceptions(self, fcn): sys([[0.1j, 1j], [1j, 10j]]) with pytest.raises(ValueError, match="must be 1D"): evalfr(sys, [[0.1j, 1j], [1j, 10j]]) - - with pytest.warns(DeprecationWarning, match="LTI `inputs`"): - ninputs = sys.inputs - assert ninputs == sys.ninputs - - with pytest.warns(DeprecationWarning, match="LTI `outputs`"): - noutputs = sys.outputs - assert noutputs == sys.noutputs - - if isinstance(sys, ct.StateSpace): - with pytest.warns( - DeprecationWarning, match="StateSpace `states`"): - nstates = sys.states - assert nstates == sys.nstates diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index 0bb28b684..c98223bfb 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -1,8 +1,8 @@ -"""iosys_test.py - test named input/output object operations +"""namedio_test.py - test named input/output object operations RMM, 13 Mar 2022 -This test suite checks to make sure that named input/output class +This test suite checks to make sure that (named) input/output class operations are working. It doesn't do exhaustive testing of operations on input/output objects. Separate unit tests should be created for that purpose. @@ -34,7 +34,7 @@ def test_named_ss(): assert sys.input_labels == ['u[0]', 'u[1]'] assert sys.output_labels == ['y[0]', 'y[1]'] assert sys.state_labels == ['x[0]', 'x[1]'] - assert repr(sys) == \ + assert ct.InputOutputSystem.__repr__(sys) == \ "['y[0]', 'y[1]']>" # Pass the names as arguments @@ -46,7 +46,7 @@ def test_named_ss(): assert sys.input_labels == ['u1', 'u2'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2'] - assert repr(sys) == \ + assert ct.InputOutputSystem.__repr__(sys) == \ "['y1', 'y2']>" # Do the same with rss @@ -56,7 +56,7 @@ def test_named_ss(): assert sys.input_labels == ['u1'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2', 'x3'] - assert repr(sys) == \ + assert ct.InputOutputSystem.__repr__(sys) == \ "['y1', 'y2']>" @@ -74,9 +74,9 @@ def test_named_ss(): # List of classes that are not expected fun_notinstance = { - ct.FRD: (ct.NonlinearIOSystem, ct.StateSpace, ct.StateSpace), - ct.StateSpace: (ct.TransferFunction), - ct.TransferFunction: (ct.NonlinearIOSystem, ct.StateSpace), + ct.FRD: (ct.NonlinearIOSystem, ct.StateSpace), + ct.StateSpace: (ct.TransferFunction, ct.FRD), + ct.TransferFunction: (ct.NonlinearIOSystem, ct.StateSpace, ct.FRD), } @@ -206,13 +206,13 @@ def test_io_naming(fun, args, kwargs): if not isinstance( sys_r, (ct.FrequencyResponseData, ct.NonlinearIOSystem)) and \ ct.slycot_check(): - sys_lio = ct.StateSpace(sys_r) + sys_lio = ct.ss(sys_r) assert sys_lio != sys_r assert sys_lio.input_labels == input_labels assert sys_lio.output_labels == output_labels # Reassign system and signal names - sys_lio = ct.StateSpace( + sys_lio = ct.ss( sys_g, inputs=input_labels, outputs=output_labels, name='new') assert sys_lio.name == 'new' assert sys_lio.input_labels == input_labels @@ -232,17 +232,10 @@ def test_init_namedif(): assert sys_new.input_labels == ['u'] assert sys_new.output_labels == ['y'] - # Call constructor without re-initialization - sys_keep = sys.copy() - ct.StateSpace.__init__(sys_keep, sys, init_iosys=False) - assert sys_keep.name == sys_keep.name - assert sys_keep.input_labels == sys_keep.input_labels - assert sys_keep.output_labels == sys_keep.output_labels - # Make sure that passing an unrecognized keyword generates an error with pytest.raises(TypeError, match="unrecognized keyword"): ct.StateSpace.__init__( - sys_keep, sys, inputs='u', outputs='y', init_iosys=False) + sys_new, sys, inputs='u', outputs='y', init_iosys=False) # Test state space conversion def test_convert_to_statespace(): @@ -280,8 +273,11 @@ def test_convert_to_statespace(): # Duplicate name warnings def test_duplicate_sysname(): - # Start with an unnamed system + # Start with an unnamed (nonlinear) system sys = ct.rss(4, 1, 1) + sys = ct.NonlinearIOSystem( + sys.updfcn, sys.outfcn, inputs=sys.ninputs, outputs=sys.noutputs, + states=sys.nstates) # No warnings should be generated if we reuse an an unnamed system with warnings.catch_warnings(): @@ -292,7 +288,10 @@ def test_duplicate_sysname(): res = sys * sys # Generate a warning if the system is named - sys = ct.rss(4, 1, 1, name='sys') + sys = ct.rss(4, 1, 1) + sys = ct.NonlinearIOSystem( + sys.updfcn, sys.outfcn, inputs=sys.ninputs, outputs=sys.noutputs, + states=sys.nstates, name='sys') with pytest.warns(UserWarning, match="duplicate object found"): res = sys * sys diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 340f59391..0ee4b7dfe 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -60,7 +60,7 @@ def test_finite_horizon_simple(method): # Source: https://www.mpt3.org/UI/RegulationProblem # LTI prediction model (discrete time) - sys = ct.ss2io(ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1)) + sys = ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1) # State and input constraints constraints = [ @@ -113,7 +113,7 @@ def test_discrete_lqr(): D = [[0]] # Linear discrete-time model with sample time 1 - sys = ct.ss2io(ct.ss(A, B, C, D, 1)) + sys = ct.ss(A, B, C, D, 1) # Include weights on states/inputs Q = np.eye(2) @@ -125,7 +125,7 @@ def test_discrete_lqr(): terminal_cost = opt.quadratic_cost(sys, S, None) # Solve the LQR problem - lqr_sys = ct.ss2io(ct.ss(A - B @ K, B, C, D, 1)) + lqr_sys = ct.ss(A - B @ K, B, C, D, 1) # Generate a simulation of the LQR controller time = np.arange(0, 5, 1) @@ -178,10 +178,10 @@ def test_mpc_iosystem_aircraft(): [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 0, 0]] - model = ct.ss2io(ct.ss(A, B, C, 0, 0.2)) + model = ct.ss(A, B, C, 0, 0.2) # For the simulation we need the full state output - sys = ct.ss2io(ct.ss(A, B, np.eye(5), 0, 0.2)) + sys = ct.ss(A, B, np.eye(5), 0, 0.2) # compute the steady state values for a particular value of the input ud = np.array([0.8, -0.3]) @@ -279,7 +279,7 @@ def test_mpc_iosystem_continuous(): lambda x, u: np.array([x[0], x[1], u[0]]), [-5, -5, -1], [5, 5, 1])], ]) def test_constraint_specification(constraint_list): - sys = ct.ss2io(ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1)) + sys = ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1) """Test out different forms of constraints on a simple problem""" # Parse out the constraint @@ -326,7 +326,7 @@ def test_constraint_specification(constraint_list): def test_terminal_constraints(sys_args): """Test out the ability to handle terminal constraints""" # Create the system - sys = ct.ss2io(ct.ss(*sys_args)) + sys = ct.ss(*sys_args) # Shortest path to a point is a line Q = np.zeros((2, 2)) @@ -427,7 +427,7 @@ def test_terminal_constraints(sys_args): def test_optimal_logging(capsys): """Test logging functions (mainly for code coverage)""" - sys = ct.ss2io(ct.ss(np.eye(2), np.eye(2), np.eye(2), 0, 1)) + sys = ct.ss(np.eye(2), np.eye(2), np.eye(2), 0, 1) # Set up the optimal control problem cost = opt.quadratic_cost(sys, 1, 1) @@ -481,13 +481,13 @@ def test_optimal_logging(capsys): ]) def test_constraint_constructor_errors(fun, args, exception, match): """Test various error conditions for constraint constructors""" - sys = ct.ss2io(ct.rss(2, 2, 2)) + sys = ct.rss(2, 2, 2) with pytest.raises(exception, match=match): fun(sys, *args) def test_ocp_argument_errors(): - sys = ct.ss2io(ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1)) + sys = ct.ss([[1, 1], [0, 1]], [[1], [0.5]], np.eye(2), 0, 1) # State and input constraints constraints = [ @@ -603,7 +603,7 @@ def test_optimal_basis_simple(basis): def test_equality_constraints(): """Test out the ability to handle equality constraints""" # Create the system (double integrator, continuous time) - sys = ct.ss2io(ct.ss(np.zeros((2, 2)), np.eye(2), np.eye(2), 0)) + sys = ct.ss(np.zeros((2, 2)), np.eye(2), np.eye(2), 0) # Shortest path to a point is a line Q = np.zeros((2, 2)) diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index efd07ca49..ceb451476 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -978,7 +978,7 @@ def test_time_series_data_convention_2D(self, tsystem): assert t.shape == y.shape # Allows direct plotting of output @pytest.mark.usefixtures("editsdefaults") - @pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.ss2io]) + @pytest.mark.parametrize("fcn", [ct.ss, ct.tf]) @pytest.mark.parametrize("nstate, nout, ninp, squeeze, shape1, shape2", [ # state out in squeeze in/out out-only [1, 1, 1, None, (8,), (8,)], @@ -1107,7 +1107,7 @@ def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): if squeeze is not True or sys.noutputs > 1: assert yvec.shape == (sys.noutputs, 8) - @pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.ss2io]) + @pytest.mark.parametrize("fcn", [ct.ss, ct.tf]) def test_squeeze_exception(self, fcn): sys = fcn(ct.rss(2, 1, 1)) with pytest.raises(ValueError, match="Unknown squeeze value"): diff --git a/control/tests/type_conversion_test.py b/control/tests/type_conversion_test.py index 5631385fe..d00e857b1 100644 --- a/control/tests/type_conversion_test.py +++ b/control/tests/type_conversion_test.py @@ -17,10 +17,9 @@ def sys_dict(): sdict['tf'] = ct.TransferFunction([1],[0.5, 1]) sdict['tfx'] = ct.TransferFunction([1, 1], [1]) # non-proper TF sdict['frd'] = ct.frd([10+0j, 9 + 1j, 8 + 2j, 7 + 3j], [1, 2, 3, 4]) - sdict['lio'] = ct.StateSpace(ct.ss([[-1]], [[5]], [[5]], [[0]])) sdict['ios'] = ct.NonlinearIOSystem( - lambda t, x, u, params: sdict['lio']._rhs(t, x, u), - lambda t, x, u, params: sdict['lio']._out(t, x, u), + lambda t, x, u, params: sdict['ss']._rhs(t, x, u), + lambda t, x, u, params: sdict['ss']._out(t, x, u), inputs=1, outputs=1, states=1) sdict['arr'] = np.array([[2.0]]) sdict['flt'] = 3. @@ -28,8 +27,8 @@ def sys_dict(): type_dict = { 'ss': ct.StateSpace, 'tf': ct.TransferFunction, - 'frd': ct.FrequencyResponseData, 'lio': ct.LinearICSystem, - 'ios': ct.InterconnectedSystem, 'arr': np.ndarray, 'flt': float} + 'frd': ct.FrequencyResponseData, 'ios': ct.NonlinearIOSystem, + 'arr': np.ndarray, 'flt': float} # # Current table of expected conversions @@ -45,56 +44,43 @@ def sys_dict(): # should eventually generate a useful result (when everything is # implemented properly). # -# Note 1: some of the entries below are currently converted to to lower level -# types than needed. In particular, StateSpaces should combine with -# StateSpace and TransferFunctions in a way that preserves I/O system -# structure when possible. -# -# Note 2: eventually the operator entry for this table can be pulled out and -# tested as a separate parameterized variable (since all operators should -# return consistent values). -# -# Note 3: this table documents the current state, but not actually the desired -# state. See bottom of the file for the (eventual) desired behavior. +# Note: this test should be redundant with the (parameterized) +# `test_binary_op_type_conversions` test below. # -rtype_list = ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt'] +rtype_list = ['ss', 'tf', 'frd', 'ios', 'arr', 'flt'] conversion_table = [ - # op left ss tf frd lio ios arr flt - ('add', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), - ('add', 'tf', ['ss', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), - ('add', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), - ('add', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), - ('add', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios', 'ios']), - ('add', 'arr', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'arr']), - ('add', 'flt', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt']), + # op left ss tf frd ios arr flt + ('add', 'ss', ['ss', 'ss', 'frd', 'ios', 'ss', 'ss' ]), + ('add', 'tf', ['tf', 'tf', 'frd', 'ios', 'tf', 'tf' ]), + ('add', 'frd', ['frd', 'frd', 'frd', 'E', 'frd', 'frd']), + ('add', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios']), + ('add', 'arr', ['ss', 'tf', 'frd', 'ios', 'arr', 'arr']), + ('add', 'flt', ['ss', 'tf', 'frd', 'ios', 'arr', 'flt']), - # op left ss tf frd lio ios arr flt - ('sub', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), - ('sub', 'tf', ['ss', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), - ('sub', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), - ('sub', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), - ('sub', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios', 'ios']), - ('sub', 'arr', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'arr']), - ('sub', 'flt', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt']), + # op left ss tf frd ios arr flt + ('sub', 'ss', ['ss', 'ss', 'frd', 'ios', 'ss', 'ss' ]), + ('sub', 'tf', ['tf', 'tf', 'frd', 'ios', 'tf', 'tf' ]), + ('sub', 'frd', ['frd', 'frd', 'frd', 'E', 'frd', 'frd']), + ('sub', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios']), + ('sub', 'arr', ['ss', 'tf', 'frd', 'ios', 'arr', 'arr']), + ('sub', 'flt', ['ss', 'tf', 'frd', 'ios', 'arr', 'flt']), - # op left ss tf frd lio ios arr flt - ('mul', 'ss', ['ss', 'ss', 'frd', 'lio', 'ios', 'ss', 'ss' ]), - ('mul', 'tf', ['ss', 'tf', 'frd', 'lio', 'ios', 'tf', 'tf' ]), - ('mul', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), - ('mul', 'lio', ['lio', 'lio', 'xrd', 'lio', 'ios', 'lio', 'lio']), - ('mul', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios', 'ios']), - ('mul', 'arr', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'arr']), - ('mul', 'flt', ['ss', 'tf', 'frd', 'lio', 'ios', 'arr', 'flt']), + # op left ss tf frd ios arr flt + ('mul', 'ss', ['ss', 'ss', 'frd', 'ios', 'ss', 'ss' ]), + ('mul', 'tf', ['tf', 'tf', 'frd', 'ios', 'tf', 'tf' ]), + ('mul', 'frd', ['frd', 'frd', 'frd', 'E', 'frd', 'frd']), + ('mul', 'ios', ['ios', 'ios', 'E', 'ios', 'ios', 'ios']), + ('mul', 'arr', ['ss', 'tf', 'frd', 'ios', 'arr', 'arr']), + ('mul', 'flt', ['ss', 'tf', 'frd', 'ios', 'arr', 'flt']), - # op left ss tf frd lio ios arr flt - ('truediv', 'ss', ['xs', 'tf', 'frd', 'xio', 'xos', 'ss', 'ss' ]), - ('truediv', 'tf', ['tf', 'tf', 'xrd', 'tf', 'xos', 'tf', 'tf' ]), - ('truediv', 'frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), - ('truediv', 'lio', ['xio', 'tf', 'frd', 'xio', 'xio', 'lio', 'lio']), - ('truediv', 'ios', ['xos', 'xos', 'E', 'xos', 'xos', 'ios', 'ios']), - ('truediv', 'arr', ['xs', 'tf', 'frd', 'xio', 'xos', 'arr', 'arr']), - ('truediv', 'flt', ['xs', 'tf', 'frd', 'xio', 'xos', 'arr', 'flt'])] + # op left ss tf frd ios arr flt + ('truediv', 'ss', ['E', 'tf', 'frd', 'E', 'ss', 'ss' ]), + ('truediv', 'tf', ['tf', 'tf', 'xrd', 'E', 'tf', 'tf' ]), + ('truediv', 'frd', ['frd', 'frd', 'frd', 'E', 'frd', 'frd']), + ('truediv', 'ios', ['E', 'xos', 'E', 'E', 'ios', 'ios']), + ('truediv', 'arr', ['E', 'tf', 'frd', 'E', 'arr', 'arr']), + ('truediv', 'flt', ['E', 'tf', 'frd', 'E', 'arr', 'flt'])] # Now create list of the tests we actually want to run test_matrix = [] @@ -149,22 +135,20 @@ def test_operator_type_conversion(opname, ltype, rtype, expected, sys_dict): # Note: tfx = non-proper transfer function, order(num) > order(den) # -type_list = ['ss', 'tf', 'tfx', 'frd', 'lio', 'ios', 'arr', 'flt'] +type_list = ['ss', 'tf', 'tfx', 'frd', 'ios', 'arr', 'flt'] conversion_table = [ - ('ss', ['ss', 'ss', 'tf' 'frd', 'lio', 'ios', 'ss', 'ss' ]), - ('tf', ['tf', 'tf', 'tf' 'frd', 'lio', 'ios', 'tf', 'tf' ]), - ('tfx', ['tf', 'tf', 'tf', 'frd', 'E', 'E', 'tf', 'tf' ]), - ('frd', ['frd', 'frd', 'frd', 'frd', 'E', 'E', 'frd', 'frd']), - ('lio', ['lio', 'lio', 'E', 'E', 'lio', 'ios', 'lio', 'lio']), - ('ios', ['ios', 'ios', 'E', 'E', 'ios', 'ios', 'ios', 'ios']), - ('arr', ['ss', 'tf', 'tf' 'frd', 'lio', 'ios', 'arr', 'arr']), - ('flt', ['ss', 'tf', 'tf' 'frd', 'lio', 'ios', 'arr', 'flt'])] - -@pytest.mark.skip(reason="future test; conversions not yet fully implemented") + ('ss', ['ss', 'ss', 'E', 'frd', 'ios', 'ss', 'ss' ]), + ('tf', ['tf', 'tf', 'tf', 'frd', 'ios', 'tf', 'tf' ]), + ('tfx', ['tf', 'tf', 'tf', 'frd', 'E', 'tf', 'tf' ]), + ('frd', ['frd', 'frd', 'frd', 'frd', 'E', 'frd', 'frd']), + ('ios', ['ios', 'ios', 'E', 'E', 'ios', 'ios', 'ios']), + ('arr', ['ss', 'tf', 'tf', 'frd', 'ios', 'arr', 'arr']), + ('flt', ['ss', 'tf', 'tf', 'frd', 'ios', 'arr', 'flt'])] + # @pytest.mark.parametrize("opname", ['add', 'sub', 'mul', 'truediv']) -# @pytest.mark.parametrize("opname", ['add', 'sub', 'mul']) -# @pytest.mark.parametrize("ltype", type_list) -# @pytest.mark.parametrize("rtype", type_list) +@pytest.mark.parametrize("opname", ['add', 'sub', 'mul']) +@pytest.mark.parametrize("ltype", type_list) +@pytest.mark.parametrize("rtype", type_list) def test_binary_op_type_conversions(opname, ltype, rtype, sys_dict): op = getattr(operator, opname) leftsys = sys_dict[ltype] @@ -179,7 +163,7 @@ def test_binary_op_type_conversions(opname, ltype, rtype, sys_dict): # Make sure we get the right result if expected == 'E' or expected[0] == 'x': # Exception expected - with pytest.raises(TypeError): + with pytest.raises((TypeError, ValueError)): op(leftsys, rightsys) else: # Operation should work and return the given type @@ -189,25 +173,24 @@ def test_binary_op_type_conversions(opname, ltype, rtype, sys_dict): assert isinstance(result, type_dict[expected]) # Make sure that input, output, and state names make sense - assert len(result.input_labels) == result.ninputs - assert len(result.output_labels) == result.noutputs - if result.nstates is not None: - assert len(result.state_labels) == result.nstates + if isinstance(result, ct.InputOutputSystem): + assert len(result.input_labels) == result.ninputs + assert len(result.output_labels) == result.noutputs + if result.nstates is not None: + assert len(result.state_labels) == result.nstates @pytest.mark.parametrize( "typelist, connections, inplist, outlist, expected", [ - (['lio', 'lio'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), - (['lio', 'ss'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), - (['ss', 'lio'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), - (['ss', 'ss'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), - (['lio', 'tf'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'lio'), - (['lio', 'frd'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'E'), + (['ss', 'ss'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ss'), + (['ss', 'tf'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ss'), + (['tf', 'ss'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ss'), + (['ss', 'frd'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'E'), (['ios', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), - (['lio', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), + (['ss', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), (['ss', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), (['tf', 'ios'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ios'), - (['lio', 'ss', 'tf'], - [[(1, 0), (0, 0)], [(2, 0), (1, 0)]], [[(0, 0)]], [[(2, 0)]], 'lio'), + (['ss', 'ss', 'tf'], + [[(1, 0), (0, 0)], [(2, 0), (1, 0)]], [[(0, 0)]], [[(2, 0)]], 'ss'), (['ios', 'ss', 'tf'], [[(1, 0), (0, 0)], [(2, 0), (1, 0)]], [[(0, 0)]], [[(2, 0)]], 'ios'), ]) diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index fd1076db0..5fa9b3769 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -890,7 +890,7 @@ def test_printing(self): ]) def test_printing_polynomial_const(self, args, output): """Test _tf_polynomial_to_string for constant systems""" - assert str(TransferFunction(*args)) == output + assert str(TransferFunction(*args)).partition('\n\n')[2] == output @pytest.mark.parametrize( "args, outputfmt", @@ -904,7 +904,7 @@ def test_printing_polynomial_const(self, args, output): ("z", 1, '\ndt = 1\n')]) def test_printing_polynomial(self, args, outputfmt, var, dt, dtstring): """Test _tf_polynomial_to_string for all other code branches""" - assert str(TransferFunction(*(args + (dt,)))) == \ + assert str(TransferFunction(*(args + (dt,)))).partition('\n\n')[2] == \ outputfmt.format(var=var, dtstring=dtstring) @slycotonly @@ -976,7 +976,7 @@ def test_printing_zpk(self, zeros, poles, gain, output): """Test _tf_polynomial_to_string for constant systems""" G = zpk(zeros, poles, gain, display_format='zpk') res = str(G) - assert res == output + assert res.partition('\n\n')[2] == output @pytest.mark.parametrize( "zeros, poles, gain, format, output", @@ -1004,7 +1004,7 @@ def test_printing_zpk_format(self, zeros, poles, gain, format, output): res = str(G) reset_defaults() - assert res == output + assert res.partition('\n\n')[2] == output @pytest.mark.parametrize( "num, den, output", @@ -1034,7 +1034,7 @@ def test_printing_zpk_mimo(self, num, den, output): """Test _tf_polynomial_to_string for constant systems""" G = tf(num, den, display_format='zpk') res = str(G) - assert res == output + assert res.partition('\n\n')[2] == output @slycotonly def test_size_mismatch(self): diff --git a/control/timeresp.py b/control/timeresp.py index 2fd8b22e5..198bc754a 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -78,11 +78,11 @@ from scipy.linalg import eig, eigvals, matrix_balance, norm from copy import copy +# TODO: see what is causing MRO issues with .statesp, .xferfcn from . import config from .exception import pandas_check from .iosys import isctime, isdtime -from .statesp import StateSpace, _convert_to_statespace, _mimo2simo, _mimo2siso -from .xferfcn import TransferFunction + __all__ = ['forced_response', 'step_response', 'step_info', 'initial_response', 'impulse_response', 'TimeResponseData'] @@ -927,6 +927,10 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, :ref:`package-configuration-parameters`. """ + from .statesp import StateSpace, _convert_to_statespace, \ + _mimo2simo, _mimo2siso + from .xferfcn import TransferFunction + if not isinstance(sys, (StateSpace, TransferFunction)): raise TypeError('Parameter ``sys``: must be a ``StateSpace`` or' ' ``TransferFunction``)') @@ -1211,6 +1215,9 @@ def _get_ss_simo(sys, input=None, output=None, squeeze=None): If the output is not specified, report on all outputs. """ + from .statesp import _convert_to_statespace # TODO: move to top? + from .statesp import _mimo2simo, _mimo2siso + # If squeeze was not specified, figure out the default if squeeze is None: squeeze = config.defaults['control.squeeze_time_response'] @@ -1339,6 +1346,9 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, >>> T, yout = ct.step_response(G) """ + from .xferfcn import TransferFunction # TODO: move to top? + from .statesp import _convert_to_statespace # TODO: move to top? + # Create the time and input vectors if T is None or np.asarray(T).size == 1: T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=True) @@ -1495,6 +1505,10 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, PeakTime: 4.242 SteadyStateValue: -1.0 """ + # TODO: See if there is a better way to do this + from .statesp import StateSpace + from .xferfcn import TransferFunction + if isinstance(sysdata, (StateSpace, TransferFunction)): if T is None or np.asarray(T).size == 1: T = _default_time_vector(sysdata, N=T_num, tfinal=T, is_step=True) @@ -1826,6 +1840,8 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, >>> T, yout = ct.impulse_response(G) """ + from .statesp import _convert_to_statespace # TODO: move to top? + # Convert to state space so that we can simulate sys = _convert_to_statespace(sys) @@ -1946,7 +1962,9 @@ def _ideal_tfinal_and_dt(sys, is_step=True): By Ilhan Polat, with modifications by Sawyer Fuller to integrate into python-control 2020.08.17 + """ + from .statesp import _convert_to_statespace # TODO: move to top? sqrt_eps = np.sqrt(np.spacing(1.)) default_tfinal = 5 # Default simulation horizon diff --git a/control/xferfcn.py b/control/xferfcn.py index 58cc5e923..e0ac8cadd 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -60,7 +60,8 @@ from itertools import chain from re import sub from .lti import LTI, _process_frequency_response -from .iosys import common_timebase, isdtime, _process_iosys_keywords +from .iosys import InputOutputSystem, common_timebase, isdtime, \ + _process_iosys_keywords from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData from . import config @@ -75,11 +76,6 @@ } -def _float2str(value): - _num_format = config.defaults.get('xferfcn.floating_point_format', ':.4g') - return f"{value:{_num_format}}" - - class TransferFunction(LTI): """TransferFunction(num, den[, dt]) @@ -233,14 +229,14 @@ def __init__(self, *args, **kwargs): {'inputs': len(num[0]), 'outputs': len(num)} name, inputs, outputs, states, dt = _process_iosys_keywords( - kwargs, defaults, static=static, end=True) + kwargs, defaults, static=static) if states: raise TypeError( "states keyword not allowed for transfer functions") # Initialize LTI (InputOutputSystem) object super().__init__( - name=name, inputs=inputs, outputs=outputs, dt=dt) + name=name, inputs=inputs, outputs=outputs, dt=dt, **kwargs) # # Check to make sure everything is consistent @@ -463,7 +459,7 @@ def __str__(self, var=None): mimo = not self.issiso() if var is None: var = 's' if self.isctime() else 'z' - outstr = "" + outstr = f"{InputOutputSystem.__str__(self)}\n" for ni in range(self.ninputs): for no in range(self.noutputs): @@ -562,31 +558,27 @@ def _repr_latex_(self, var=None): def __neg__(self): """Negate a transfer function.""" - num = deepcopy(self.num) for i in range(self.noutputs): for j in range(self.ninputs): num[i][j] *= -1 - return TransferFunction(num, self.den, self.dt) def __add__(self, other): """Add two LTI objects (parallel connection).""" from .statesp import StateSpace - # Check to see if the right operator has priority - if getattr(other, '__array_priority__', None) and \ - getattr(self, '__array_priority__', None) and \ - other.__array_priority__ > self.__array_priority__: - return other.__radd__(self) - # Convert the second argument to a transfer function. + #! TODO: update processing (here and elsewhere) if isinstance(other, StateSpace): other = _convert_to_transfer_function(other) - elif not isinstance(other, TransferFunction): + elif isinstance(other, (int, float, complex, np.number, np.ndarray)): other = _convert_to_transfer_function(other, inputs=self.ninputs, outputs=self.noutputs) + if not isinstance(other, TransferFunction): + return NotImplemented + # Check that the input-output sizes are consistent. if self.ninputs != other.ninputs: raise ValueError( @@ -625,18 +617,16 @@ def __rsub__(self, other): def __mul__(self, other): """Multiply two LTI objects (serial connection).""" - # Check to see if the right operator has priority - if getattr(other, '__array_priority__', None) and \ - getattr(self, '__array_priority__', None) and \ - other.__array_priority__ > self.__array_priority__: - return other.__rmul__(self) - + from .statesp import StateSpace + # Convert the second argument to a transfer function. - if isinstance(other, (int, float, complex, np.number)): - other = _convert_to_transfer_function(other, inputs=self.ninputs, - outputs=self.ninputs) - else: + if isinstance(other, StateSpace): other = _convert_to_transfer_function(other) + elif isinstance(other, (int, float, complex, np.number, np.ndarray)): + other = _convert_to_transfer_function(other, inputs=self.ninputs, + outputs=self.noutputs) + if not isinstance(other, TransferFunction): + return NotImplemented # Check that the input-output sizes are consistent. if self.ninputs != other.noutputs: @@ -1906,3 +1896,8 @@ def _clean_part(data): # Define constants to represent differentiation, unit delay TransferFunction.s = TransferFunction([1, 0], [1], 0) TransferFunction.z = TransferFunction([1, 0], [1], True) + + +def _float2str(value): + _num_format = config.defaults.get('xferfcn.floating_point_format', ':.4g') + return f"{value:{_num_format}}" From 31f65742ecd5bb551969f51ed2f51dc84dae9fad Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 17 Jun 2023 14:03:16 -0700 Subject: [PATCH 0300/1025] updated documentation, examples, unit tests --- control/nlsys.py | 19 ++- control/statesp.py | 163 ------------------- control/tests/interconnect_test.py | 3 +- doc/classes.fig | 8 +- doc/classes.pdf | Bin 6857 -> 6858 bytes doc/classes.rst | 23 +-- doc/control.rst | 6 +- doc/iosys.rst | 3 - examples/cruise-control.py | 5 +- examples/cruise.ipynb | 133 ++++++++------- examples/describing_functions.ipynb | 95 +++++------ examples/interconnect_tutorial.ipynb | 4 +- examples/kincar-fusion.ipynb | 105 ++++++------ examples/mhe-pvtol.ipynb | 77 +++++---- examples/mpc_aircraft.ipynb | 52 +++--- examples/simulating_discrete_nonlinear.ipynb | 4 +- 16 files changed, 270 insertions(+), 430 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index 42222dc83..136c07fa3 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -706,13 +706,18 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, if outputs is None and outlist is not None: outputs = len(outlist) - # Create the I/O system - # Note: don't use super() to override LinearICSystem/StateSpace MRO - InputOutputSystem.__init__( - self, inputs=inputs, outputs=outputs, - states=states, dt=dt, name=name, **kwargs) - # TODO: this should get initialized above - self.params = {} if params is None else params.copy() + # Create updfcn and outfcn + def updfcn(t, x, u, params): + self.update_params(params) + return self._rhs(t, x, u) + def outfcn(t, x, u, params): + self.update_params(params) + return self._out(t, x, u) + + # Initialize NonlinearIOSystem object + super().__init__( + updfcn, outfcn, inputs=inputs, outputs=outputs, + states=states, dt=dt, name=name, params=params, **kwargs) # Convert the list of interconnections to a connection map (matrix) self.connect_map = np.zeros((ninputs, noutputs)) diff --git a/control/statesp.py b/control/statesp.py index 6cf343da1..29674f8db 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -2428,166 +2428,3 @@ def _mimo2simo(sys, input, warn_conversion=False): inputs=sys.input_labels[input], outputs=sys.output_labels) return sys - - -def tf2ss(*args, **kwargs): - """tf2ss(sys) - - Transform a transfer function to a state space system. - - The function accepts either 1 or 2 parameters: - - ``tf2ss(sys)`` - Convert a linear system into space space form. Always creates - a new system, even if sys is already a StateSpace object. - - ``tf2ss(num, den)`` - Create a state space system from its numerator and denominator - polynomial coefficients. - - For details see: :func:`tf` - - Parameters - ---------- - sys : LTI (StateSpace or TransferFunction) - A linear system - num : array_like, or list of list of array_like - Polynomial coefficients of the numerator - den : array_like, or list of list of array_like - Polynomial coefficients of the denominator - - Returns - ------- - out : StateSpace - New linear system in state space form - - Other Parameters - ---------------- - inputs, outputs : str, or list of str, optional - List of strings that name the individual signals of the transformed - system. If not given, the inputs and outputs are the same as the - original system. - name : string, optional - System name. If unspecified, a generic name is generated - with a unique integer id. - - Raises - ------ - ValueError - if `num` and `den` have invalid or unequal dimensions, or if an - invalid number of arguments is passed in - TypeError - if `num` or `den` are of incorrect type, or if sys is not a - TransferFunction object - - See Also - -------- - ss - tf - ss2tf - - Examples - -------- - >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] - >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] - >>> sys1 = ct.tf2ss(num, den) - - >>> sys_tf = ct.tf(num, den) - >>> sys2 = ct.tf2ss(sys_tf) - - """ - - from .xferfcn import TransferFunction - if len(args) == 2 or len(args) == 3: - # Assume we were given the num, den - return StateSpace( - _convert_to_statespace(TransferFunction(*args)), **kwargs) - - elif len(args) == 1: - sys = args[0] - if not isinstance(sys, TransferFunction): - raise TypeError("tf2ss(sys): sys must be a TransferFunction " - "object.") - return StateSpace( - _convert_to_statespace( - sys, - use_prefix_suffix=not sys._generic_name_check()), - **kwargs) - else: - raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) - - -def ssdata(sys): - """ - Return state space data objects for a system - - Parameters - ---------- - sys : LTI (StateSpace, or TransferFunction) - LTI system whose data will be returned - - Returns - ------- - (A, B, C, D): list of matrices - State space data for the system - """ - ss = _convert_to_statespace(sys) - return ss.A, ss.B, ss.C, ss.D - - -def linfnorm(sys, tol=1e-10): - """L-infinity norm of a linear system - - Parameters - ---------- - sys : LTI (StateSpace or TransferFunction) - system to evalute L-infinity norm of - tol : real scalar - tolerance on norm estimate - - Returns - ------- - gpeak : non-negative scalar - L-infinity norm - fpeak : non-negative scalar - Frequency, in rad/s, at which gpeak occurs - - For stable systems, the L-infinity and H-infinity norms are equal; - for unstable systems, the H-infinity norm is infinite, while the - L-infinity norm is finite if the system has no poles on the - imaginary axis. - - See also - -------- - slycot.ab13dd : the Slycot routine linfnorm that does the calculation - """ - - if ab13dd is None: - raise ControlSlycot("Can't find slycot module 'ab13dd'") - - a, b, c, d = ssdata(_convert_to_statespace(sys)) - e = np.eye(a.shape[0]) - - n = a.shape[0] - m = b.shape[1] - p = c.shape[0] - - if n == 0: - # ab13dd doesn't accept empty A, B, C, D; - # static gain case is easy enough to compute - gpeak = scipy.linalg.svdvals(d)[0] - # max svd is constant with freq; arbitrarily choose 0 as peak - fpeak = 0 - return gpeak, fpeak - - dico = 'C' if sys.isctime() else 'D' - jobe = 'I' - equil = 'S' - jobd = 'Z' if all(0 == d.flat) else 'D' - - gpeak, fpeak = ab13dd(dico, jobe, equil, jobd, n, m, p, a, e, b, c, d, tol) - - if dico=='D': - fpeak /= sys.dt - - return gpeak, fpeak diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 40b074551..3a333aef5 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -195,7 +195,8 @@ def test_interconnect_docstring(): T_ss = ct.ss(ct.feedback(P * C, 1)) # Test in a manner that recognizes that recognizes non-unique realization - np.testing.assert_almost_equal(T.A, T_ss.A) + np.testing.assert_almost_equal( + np.sort(np.linalg.eig(T.A)[0]), np.sort(np.linalg.eig(T_ss.A)[0])) np.testing.assert_almost_equal(T.C @ T.B, T_ss.C @ T_ss.B) np.testing.assert_almost_equal(T.C @ T. A @ T.B, T_ss.C @ T_ss.A @ T_ss.B) np.testing.assert_almost_equal(T.D, T_ss.D) diff --git a/doc/classes.fig b/doc/classes.fig index dc3a1b556..4e63b8bff 100644 --- a/doc/classes.fig +++ b/doc/classes.fig @@ -22,9 +22,6 @@ Single 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 7200 2850 8250 3150 -2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 - 1 0 1.00 60.00 90.00 - 6525 2025 7050 2550 2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 1 0 1.00 60.00 90.00 7050 2850 7725 3450 @@ -37,12 +34,15 @@ Single 2 1 0 2 1 7 50 -1 -1 0.000 0 0 -1 0 1 2 1 0 1.00 60.00 90.00 4350 2850 3450 3150 +2 1 0 2 1 7 50 -1 -1 0.000 0 0 7 0 1 2 + 1 0 1.00 60.00 90.00 + 6525 1950 7050 2550 4 1 1 50 -1 16 12 0.0000 4 210 2115 4050 3675 InterconnectedSystem\001 4 1 1 50 -1 16 12 0.0000 4 165 1605 7950 3675 TransferFunction\001 4 1 1 50 -1 0 12 0.0000 4 150 345 7050 2775 LTI\001 4 1 1 50 -1 16 12 0.0000 4 210 1830 5175 2775 NonlinearIOSystem\001 4 1 1 50 -1 16 12 0.0000 4 210 1095 6150 3675 StateSpace\001 -4 1 1 50 -1 16 12 0.0000 4 210 1770 6300 1800 InputOutputSystem\001 4 1 1 50 -1 16 12 0.0000 4 210 1500 5175 4575 LinearICSystem\001 4 2 1 50 -1 16 12 0.0000 4 210 1035 3375 3225 FlatSystem\001 4 0 1 50 -1 16 12 0.0000 4 165 420 8400 3225 FRD\001 +4 1 1 50 -1 16 12 0.0000 4 210 1770 6300 1875 InputOutputSystem\001 diff --git a/doc/classes.pdf b/doc/classes.pdf index 031402fecb5e8d2c36b90b8461ab5e0df33e8481..2c51b0193526ed7ea4e25451efff85e51fec8a72 100644 GIT binary patch delta 1354 zcmX?UddhUdntJd2+Xg(x-~SV_TE_aQbJB|ArTu)eUA);mZvx&3EO~cpVc~6)qZ{(= zClx(%-+S7Ir9=1hufQcgmj7H*!s+#S{ocH7tnm(S>qPunPfW?upS`v!S~Ope*;Zrm zs=Tf}Y$7Vr#~jY@)o)(4?dYRDl{Gi(D{o%@|LXhaefQ>t*mv`X)_fVp6-h5xvb?`H^13a4_wwGWOBYWhyi8pqd$+-D!SU}$b3eWfF?9{vf6F(%&Spb~ z?Z!E5qCAVkQY0&uzqv8tw3%S5^q(bjKicJW&%S(Us>K%T={sj}@mhS@i>dN_W|(Xz{g!7fTfVBI z$)zdgbBaXF*3M*kF}X)E(BOo^GJ|ik3=VJ~&0g}O@gw{8b_ug2%?)z5V*3{)FMjkR z=E#=UC!@;dK32bwviFGgv(&KcDL*rc!j>N4eCWjec8>o$4d!mfkW1|M+j+Je5 zzWHl{4`7<4I(N8+F zP{A}>Z^5_Fwe^c#+nwfry|4YnmgTYK%^hCb<)1PZW$1C&9s6{3e@W04*@&zq2G8tX zbxEzP-Fw@{#CPw_>(_Jjx3WxbuoLOd+MYKr|JB`_-kWdUw>43}zuNzZulu@%-wp+} zTwM8TS42$6^E(}1b@e?BQ<>bK{p>x@fA()|@cQ!S@w<-c7KlYJub-xywl)6!>#L8e zfI_0gNU+6?aLYARgndgt`+pMLlMmP%7eP>k%3 z1FkCb7l=-0Jf7RyUC9u*Y9bB|j;P%S^#Q0YqC^7)~}}F<>&c*qp{9F34pbVrXV% zYHnp@Ik{cb5Se>O^tg(NiHSj?SyHO5iK&ITuAyO?rLF-G=o*@*rI;947$hZ|m~CDw z_JWb!+|bO_9B9ZK328WcpG2;$xdKRofkK`F7nosSW@LmRW@uz+fv(Qbz`}HLhNOBu z(B-Hm7#dp`Vu%6#g&}5UiJ{lT$OO}NV-q8Ey+($nmJl%|gwst-%uLZ0npm0{PBxIT zi8XO`H8XcIH!(FeHE?kfcyYfx zP2;xE;=EN#4XRyFcFuYDp^e|``T~>xU(bKt_K1DO-RrLwGQAA?o4hx4{j66{eHZYT zhMbL^`n+M&y~}?(N(0Vrv)a9*viRPg75B`px;K3gn61;>{bh5ucD=BTfKubFOVtT= zCRxt!!>;#5v1RM$zJ0-J!c==Nyj0 z+oZOrpn3ik&Fdf6?y3&lDRq2T@yydJuQWL8UskbvU{h2e$#{-o>0E({(PplUi?k;n zp5W|P!FYHMkHi`Gx#F@}#s_8UwY{XCF{&k--IAQed(X=;V~Jk=jzb!`QO2AX)H9tI zrA$y*7U1S9@t{-4H0a-fAI>+DdAcLK*0k4MW!)k&^}utbWzPQBieAjIZ&Z7&8gJ;o zIco72_sOfZRP{K-t6pgSc+z+LKoY~$FN)s`n@wZRsmgd*JNTtG>ZX2PcD~K0U2d-B zob1TTZEUL|&n@k{Y4J(W$naUttfJGZ59&^5DmDk(rFArkxBi>aH*;xHUyWMQt-DMu zF{Vj!2Q4(qI;EKyk6L}=Y&TYW? zV*atn&C#X(ZEJ@eIz|uh1&@jzX*8m7~(~K;PlatI-Obkp7H?I?W!N_iCU}P&zxp8ODKf+4z$k)f#tx|oTHnF)rNrJ2EGLn)hBS7T#CV?$>rLqjt|Lq|sw yS2tG!b4Q^0PG+WtPG-h-HUw3~a@pB&6_+Fyl~fd^rg52>7?^OWs=E5SaRC5eXcZ>_ diff --git a/doc/classes.rst b/doc/classes.rst index 8564533b3..df72b1ab7 100644 --- a/doc/classes.rst +++ b/doc/classes.rst @@ -14,11 +14,13 @@ user should normally not need to instantiate these directly. :toctree: generated/ :template: custom-class-template.rst + InputOutputSystem StateSpace TransferFunction - InputOutputSystem FrequencyResponseData - TimeResponseData + NonlinearIOSystem + InterconnectedSystem + LinearICSystem The following figure illustrates the relationship between the classes and some of the functions that can be used to convert objects from one class to @@ -27,23 +29,6 @@ another: .. image:: classes.pdf :width: 800 -| - -Input/output system subclasses -============================== -Input/output systems are accessed primarily via a set of subclasses -that allow for linear, nonlinear, and interconnected elements: - -.. autosummary:: - :template: custom-class-template.rst - :nosignatures: - - InputOutputSystem - InterconnectedSystem - LinearICSystem - LinearIOSystem - NonlinearIOSystem - Additional classes ================== .. autosummary:: diff --git a/doc/control.rst b/doc/control.rst index ca46043db..3d7b9df04 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -70,8 +70,10 @@ Time domain simulation impulse_response initial_response input_output_response - step_response phase_plot + step_response + TimeResponseData + Control system analysis ======================= @@ -147,9 +149,7 @@ Nonlinear system support find_eqpt linearize input_output_response - ss2io summing_junction - tf2io flatsys.point_to_point Stochastic system support diff --git a/doc/iosys.rst b/doc/iosys.rst index dddcb00c9..304f17779 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -465,7 +465,6 @@ Module classes and functions ~control.InputOutputSystem ~control.InterconnectedSystem ~control.LinearICSystem - ~control.LinearIOSystem ~control.NonlinearIOSystem .. autosummary:: @@ -475,6 +474,4 @@ Module classes and functions ~control.linearize ~control.input_output_response ~control.interconnect - ~control.ss2io ~control.summing_junction - ~control.tf2io diff --git a/examples/cruise-control.py b/examples/cruise-control.py index 08439b1a4..7c2e562a1 100644 --- a/examples/cruise-control.py +++ b/examples/cruise-control.py @@ -131,9 +131,8 @@ def motor_torque(omega, params={}): # Construct a PI controller with rolloff, as a transfer function Kp = 0.5 # proportional gain Ki = 0.1 # integral gain -control_tf = ct.tf2io( - ct.TransferFunction([Kp, Ki], [1, 0.01*Ki/Kp]), - name='control', inputs='u', outputs='y') +control_tf =ct.TransferFunction( + [Kp, Ki], [1, 0.01*Ki/Kp], name='control', inputs='u', outputs='y') # Construct the closed loop control system # Inputs: vref, gear, theta diff --git a/examples/cruise.ipynb b/examples/cruise.ipynb index c3e76aec1..4f1c152f9 100644 --- a/examples/cruise.ipynb +++ b/examples/cruise.ipynb @@ -154,14 +154,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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8+bNhUqlEj4+PmLChAni3LlzxnN++OEH0a5dO6FWq0XLli3FO++8I77//vty49KcqAWlVDWuzp49K0aPHi1cXFyEu7u7uPPOO8WVK1fK7fovjVqQmppq1n2FMO+ZKI1a8N5775X7/o11EEKIZcuWidatWws7OzvRtm1b8cMPP4jJkyeLkJCQSr9bGrXgyJEjZc4rHUs7d+4sc3z9+vVi+PDhwtXVVajVahEUFCTuuOMOsX37drPbLyFxMyATogaRriUkJGqNFStWMGvWLGJiYuo0XaqEdXLq1Cm6devGF198wdy5c8t9PnPmTH7//fdybiUSDUtWVhZt27ZlypQpLFu2rKGrIyFx0yG5FkhISEg0INHR0cTGxvLiiy/StGlTk9nTJKyDpKQk3nrrLYYPH46npyexsbF89NFH5Obm8tRTTzV09SQkbkokQ1ZCQkKiAXnjjTdYuXIlHTp04LfffrM40oJE/aFWq7l8+TJz584lIyPDuAHw66+/Nob1kpCQqF8k1wIJCQkJCQkJCQmbREqIICEhISEhISEhYZNIhqyEhISEhISEhIRNIhmyEhISEhISEhISNolkyEpISEhISEhISNgkkiErISEhISEhISFhk0iGrISEhISEhISEhE0iGbISEhISEhISEhI2iWTISkhISEhISEhI2CSSISshISEhISEhIWGTSIashISEhISEhISETSIZshISEhISEhISEjaJZMhKSEhISEhISEjYJJIhKyEhISEhISEhYZNIhqyEhISEhISEhIRNIhmyEhISEhISEhISNolkyEpISEhISEhISNgkkiErISEhISEhISFhk0iGrISEhISEhISEhE0iGbISEhISEhISEhI2iWTISkhISEhISEhI2CSSISshISEhISEhIWGTSIashISEhISEhISETSIZshISEhISEhISEjaJZMhKSEhISEhISEjYJJIhKyEhIdGIeeedd+jduzcuLi74+PgwZcoUzp8/X+YcIQSvvfYa/v7+ODg4MGzYMM6cOVPmnOLiYubNm4eXlxdOTk5MmjSJ+Pj4+myKhISERDkkQ1ZCQkKiEbN7924ef/xxDh06xLZt29BqtYwZM4b8/HzjOUuXLuXDDz/k888/58iRI/j5+TF69Ghyc3ON58yfP59169axZs0a9u3bR15eHrfeeis6na4hmiUhISEBgEwIIRq6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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -359,14 +357,12 @@ "outputs": [ { "data": { - "image/png": "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2mu4vG8DFPprkyaq06erZmTk6vzTcZLKPffcow899JCqqv7hD3/QQYMGqarqBx98oBdddJGqqu7cuVNPPPHEHGmfeeYZveqqq1TVvOVec8012qdPH23Tpo2++uqrqqrau3dvrVWrlnbp0kXvv/9+TU9P1+uuu0579uypnTp10scff1xVVTMyMvTKK6/UDh066LBhw3To0KGH82jVqpXeeuut2rdvX50yZYpOmjRJe/bsqZ07d9Zf//rX+ssvv6hqVo/CkcyYMUN79eqlXbt21cGDB+vPP/+squb5eMyYMXrcccdpp06ddNq0aXr99ddrSkqKdunSRS+88EJVVa1evbqqqmZmZup1112nHTt21OOOO06nTp2qqqozZ87UAQMG6Lnnnqvt2rXTCy+8MG5vwRSx999SR6dO8NZbWcNq1IDUVGvaOXgwq0zE5CImP3Qo50im6tUt7OBBm8iXnerVbR8pj8wjNNnv4MFwTSPy+lWq2PGhQ1nlIrZVrBiWZ89bxGo9ItaMFWL58idITYUOHXLq6zi58Yc/wIIFhZtn1642dykWJ510Evfddx+///3vmTdvHgcOHODQoUN8+umn9O/fH4APPviAwYPzntq2YcMGPv30U5YuXcpZZ53Feeedx913352lRjJp0iRq167N3LlzOXDgAH379uXUU08lLS2NVatWsXDhQjZt2sSxxx7L7373u8N5V6lShU8//RSArVu38j9BZ+NNN93EU089xTXXXBNTr379+jFnzhxEhMmTJ3Pvvfdy3333cfvtt1O7dm0WLlwIwPbt2zn33HP5xz/+wYIoP8Rrr73GggUL+Oabb9iyZQvHH388JwXNIl9//TWLFy+madOm9O3bl88++4x+/frlyKMwKNOGpFIlaN48uqxmzdzT1qiRuzxkMGKR1+zwkMGIRV5rpIcMSiwia9qdOrXLPbLjlCB69OhBWloau3fvpnLlynTv3p158+bxySef8PDDDwO2iNQll1ySZ15nn302KSkpdOjQgY0bN0aN89577/Htt98eXsZ2586drFixgk8//ZQRI0aQkpJC48aNDy94FeKCCy44fLxo0SJuuukmduzYwZ49ezjttNNy1Wvt2rVccMEFbNiwgYMHD9KmTRvADOTUqVMPx6tbt26u+Xz66aeMGjWK1NRUGjVqxIABA5g7dy61atWiV69eNA9egF27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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -424,21 +420,27 @@ "name": "stdout", "output_type": "stream", "text": [ - "system: a = 0.010124405669387215 , b = 1.3203061238159202\n", - "pzcancel: kp = 0.5 , ki = 0.005062202834693608 , 1/(kp b) = 1.5148002148317266\n", + "system: a = (0.010124405669387215-0j) , b = (1.3203061238159202+0j)\n", + "pzcancel: kp = 0.5 , ki = (0.005062202834693608+0j) , 1/(kp b) = (1.5148002148317266+0j)\n", "sfb_int: K = 0.5 , ki = 0.1\n" ] }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/src/python-control/murrayrm/control/xferfcn.py:1109: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly\n" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -448,11 +450,11 @@ "\n", "# Construction a controller that cancels the pole\n", "kp = 0.5\n", - "a = -P.pole()[0]\n", + "a = -P.poles()[0]\n", "b = np.real(P(0)) * a\n", "ki = a * kp\n", - "C = ct.tf2ss(ct.TransferFunction([kp, ki], [1, 0]))\n", - "control_pz = ct.LinearIOSystem(C, name='control', inputs='u', outputs='y')\n", + "control_pz = ct.TransferFunction(\n", + " [kp, ki], [1, 0], name='control', inputs='u', outputs='y')\n", "print(\"system: a = \", a, \", b = \", b)\n", "print(\"pzcancel: kp =\", kp, \", ki =\", ki, \", 1/(kp b) = \", 1/(kp * b))\n", "print(\"sfb_int: K = \", K, \", ki = 0.1\")\n", @@ -508,16 +510,26 @@ "execution_count": 9, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/src/python-control/murrayrm/control/xferfcn.py:1109: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly\n", + "/Users/murray/src/python-control/murrayrm/control/xferfcn.py:1109: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly\n", + "/Users/murray/src/python-control/murrayrm/control/xferfcn.py:1109: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly\n" + ] + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEOCAYAAACjJpHCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+TUlEQVR4nO3dd5xU9dX48c/ZQnFh6RhEkCKIRARlFRViFBtgjV1jYkgiMZFEw8/6aGzPY2L30URJULG3RLHEiMpjQ0WkCFKkoyBdemfb+f1x7nWGZXZ3ZmdmZ3Y579frvnZn5t47Zy/MPfPtoqo455xzNZWT6QCcc87VbZ5InHPOJcUTiXPOuaR4InHOOZcUTyTOOeeS4onEOedcUmotkYhIBxH5QETmiMhsEbkyeL6liIwTkQXBzxaVHP+NiMwUkekiMqW24nbOOVc1qa1xJCLSDminql+ISFNgKnAW8AtgvareKSLXAy1U9boYx38DFKnq2loJ2DnnXFxqrUSiqitV9Yvg9y3AHKA9cCbwVLDbU1hycc45V0dkpI1ERDoBhwGfA/uq6kqwZAO0reQwBd4VkakiMqxWAnXOOVetvNp+QxFpArwCXKWqm0Uk3kP7q+oKEWkLjBORuao6Psb5hwHDAAoKCvr26NEjVaGn3NSpUwHo27dvhiNxzjkzderUtaraJpFjaq2NBEBE8oE3gXdU9f7guXnAcaq6MmhH+VBVD6rmPLcCW1X13qr2Kyoq0ilTsrddPi/P8nhpaWmGI3HOOSMiU1W1KJFjarPXlgCPA3PCJBJ4A7g0+P1S4PUYxxYEDfSISAFwMjArvRGnX7du3ejWrVumw3DOuaTUZtVWf+BnwEwRmR4891/AncA/ReRXwFLgPAAR2Q94TFWHAPsCrwbVYHnA86r6di3GnhZz5szJdAjOOZe0WkskqvoJUFmDyAkx9l8BDAl+Xwz0Tl90zjnnaspHtmdQXl7e9+0kzjlXV3kicc45lxRPJM4555LiicQ551xSPJE455xLirf0ZlDv3t4RzTlX91WbSESkZRznKVfVjcmHs3cJp0hxzrm6LJ4SyYpgq2pSrFygY0oi2ossXboUgI4d/dI55+queBLJHFU9rKodRGRaiuLZq3Tp0gXwubacc3VbPI3tR6doH+ecc/VQtYlEVXcCiMh5URMn/klExojI4dH7OOec2/sk0v33T6q6RUQGYLPvPgWMTE9Yzjnn6opEEklZ8PNUYKSqvg40SH1Izjnn6pJExpEsF5F/ACcCd4lIQ3xAY1KOOeaYTIfgnHNJSySRnA8MAu5V1Y3BaobXpCesvcP48XusFOycc3VOPAMSjwYmqup2YEz4vKquBFamMbZ6b+LEiQAcddRRGY7EOedqLp4SyaXAwyIyH3gbeFtVV6U3rL3DgAEDAB9HkkqqsGMH5OZCgwYgVQ2jdc6lRLWJRFUvBxCRHsBg4EkRaQZ8gCWWT1W1rIpTOJdS27bBxx/D1KmwYIFt33wDW7bA1q2WTMCSyD77QGEh7Lefbe3bQ7ducNBB0KMHdOpkScc5V3Nxt5Go6lxgLvCAiDQGjsfWV78fKEpPeM6Zb7+FZ56Bt9+GiROhpMSe328/SwynnALNm0NBgW3l5VYy2b4dNm6ElSth6VL49FNYvz5y3oICOPRQOPxw2446yhJMjncjcS5ucScSESkCbgQOCI4TQFX10DTF5vZypaXw+uvw2GPwzjtW0ujbF/74RzjhBDjmGGjSJPHzrl0L8+bB3LkwYwZ88QU89RQ8/LC93qwZ9OsH/fvb1q9fzd7Hub1FIr22nsN6ac0EyhN9IxHpADwN/CA4fpSqPhjMLvwS0An4BjhfVTfEOH4Q8CA2QeRjqnpnojG4uqG8HF55Bf70J7vht28PN90EQ4dC587Jn791a9v699/9PefPh88/txLPhAlw662WvHJzoXfvSGLp3x/23z/5OJyrL0TDCuXqdhT5RFUH1PiNrLtwO1X9IphqZSpwFvALYL2q3iki1wMtVPW6CsfmAvOBk4BlwGTgIlX9qqr3LCoq0ilTptQ05LQbPHgwAGPHjs1wJNnjgw/g//0/mDYNevaE22+Hs87KTDvGpk2WVD75xKrEPv/cqsrAklu/flYVVlRk1WLNmtV+jM6lmohMVdWEmisSSSQnABcB7wG7wudVdUylB1V9vteBvwXbcaq6Mkg2H6rqQRX2PRq4VVVPCR7fELz3X6p6j65di/TBB6fQqJE1ujZpYnXiTZtCw4aQn283KJHIVlJiN4sdO2zbtQuKi23Lz4dGjWxr2NB6BeXnQ16efaMtK7OtuBh27rSfZWV23pwc27dFC3v/Bj4nwG62boXrroNHHrEG8Ntvh4svzq6G8JISqwqbMMESzMSJsHhx5PVu3eCww6zN5dBDoVcv6NjR21tc7Sgrs89RYWFivRWLi60auXHj8D6Y3kTyLNADmE2kaktV9ZeJvGFwrk7AeOAQYKmqNo96bYOqtqiw/7nAIFX9dfD4Z0A/VR1e9fs0VehbyasabN/vTdVLrqRaObAeWEtu7gYiM9DsfVQtEUMk6dYlqpEtouL/Jfn+w737h7yy/3NV/V+MvBZ5z1j7V/9c7I9/uE/kxT1vTNXdN6Jfzwm26G7ulf99FlMDIJw8IzxXGVBc4TzR8oPj8qLeMzyuJDju+1tXEENesOVW2MqD40qDn+XBpsF5w/3C4/OjYtVg39LgfUvY/fOdExVrg6jf84PXS6K2Yux7e3EQb/h3NQAaAY2D6xTGQ/DeO6OOC/8OjYq14vuH16QM+DThRJJIG0lvVe2VyMljEZEmwCvAVaq6WeJLnbF2iv0REBkGDLNH+cBiIkki/EeQCptW2ML/ROUVnot1jpwK5yDG+cLwhd3/Ay4Hcigr6wesITd3YTzXol4pL4/czHJyMj3uw/5NVSXq98jzQNRrVPEztvDvjPO7W4pU/LIUPldZEOFNLvpmk4994QxvpuGNKbzJhp+BHOymFm7hTSq8zZQTuUGWRm3h5yK8yTUiclOs7G+qmJRyqe76p1d4v6h4X6hOeE2KgW1EkltjoJCqr0MZljC2Evk3KceuYUNgn0rOEV73YmBz8DM6QSYukUQyUUR6VtcuURURyceSyHNRVWKrRaRdVNXWmhiHLgM6RD3eH1u1cQ+qOgoYBdndRqIKeXn5lJc3wwpncOaZ1si8NyguhiuusB5ZP/kJPP10enpGFRfDsmW7b6tWWXfgVatgzRrb1q2r+gbfpIm1gRQWWtVk06aRrsb77GPVAmG1Z4MGkS0/P7KJwIYNsHq1dUFet856kK1bZ12U16+3KtF4hCW36BJcWLKLLuFlQm6uXavwejVrZtdl+3aretm82cYChRtErmnz5taRoWNH+9mokb2uaseH12vTJns+rJJu3tw6ULRpY+cJr7mqjS/auNG2sBonrHLeZx/boqus8/J2r+Levt0el5TYsQ0a2H6NGtn/iyZN9qyqDgfGbt5ssZaURP5/hdenefNIdVJ4TEU7d9r/mY0bbb/w72ra1M4hUv0Xk/JyO09pqf1/ra66eMSIxBNyIlVbc4CuwNdYmSmh7r9iRY+nsIb1q6KevwdYF9XY3lJVr61wbB7W2H4C9jV+MnCxqs6u6j2zOZEA5OVZHn/44VIuv9yeu/tuuKaez2C2fj2cfTZ89JH1xrrttuSqs4qLrcfVvHm2zZ9vbRdffw3Ll+/5QSsogHbt4Ac/gH33tZtPuLVqZVvLltae1aKFfWDzKnzl2rEjkoAKCuym0KKFfchLS23bvDkyYDJ6W7jQbk6NGtmNpHHjyA0iJ8duHOvX2zkqqu7GkZNjN7XCwshNvKAg8l65uZE2v+Jie5yXZ8e1bGnXpH17u5F37Wq95MJOBGVlFveGDfa3r15tiSG8qe6zj+3fvn38/57RbYguO6S7jeSAWM+r6pI4jx8AfMzu3Yf/C/gc+Ce25vtS4DxVXS8i+2HdfIcExw8B/hcre41W1Tuqe8+6kkhKSko57jgYP94+VG++CUOGZDa2dFm7Fk480cZwjB5tDeqJ2L7denRNmmTjP2bMgDlzIgMUwQYpHnigNdp37gwHHAAdOtg33Pbt7dtcPMrL7Yb57bcwcyZMmWLb3Ln2LTcReXkWS7duthUWRjp07Nix+zfe5s0jiW2//Sz+Aw6wpBdd+igpsc4gO3fa/5uwE4dPC+OSkdZEUhfVlURSWlrKkiV28wuLzrNn2+P6ZM0aSyILFsAbb8BJJ1V/zOrVNh1KuM2YYd9iwW6yvXvb1quXjUjv3j12FdnatXbszJmWCObOtdLL9u12k8/N3X1Ttaqv4uLIOZo2tQGRvXpFSjMtW1oi2LjRvqmXlkbOV1Bg/4bdullSq1iqcS4b1SSRxDP77xeqeniy+7g9nXPOOd//fsAB8D//A9dfbzev3/8e6tPwktWrYeBAq256800bmR7Ltm1W5TVunG2zg8rLxo1tzMb118MRR1jpIqw/DquCPvgA3n3Xrt/atZG2kEWL7GeoZUuba+uUU6xkUFYWqTcPN1Wr/urQwbYePSwheBWMc3uqtkQiIjuABVXtAjRT1Y6pDCwVsr1EUlFJCRxyiNXxA3z4Ifz4xxkNKSU2boRjj7Ub+n/+A8cdt/vrK1fCv/9tpZT33rME0bAhDBhg06D84Ad2o583z0oUs2ZZ8qhKYaElgnbtLEkfemik5NK2bbr+UufqvrRUbVXWNlJBmaouS+SNa0O2J5JHH30UgMsuu+z75/7v/6zKRwT69LE6+br8LXjXLhg0yEaHjx1rVVtgEyiOHm291GbNsucKCy1p7LOPlUxWrIj06glf79XLkm2vXtYYHDaKhz2Dwp5S2TSQ0bm6xNtIKsj2RBLdRhIqL7dvzOvW2eOnnoKf/zwT0SWvvBwuuQReeAGuvtoakceOhenTd08QoWbNrMdU27aRxvEOHWyqlB/+0BrKvSHZufTyRFJBXUwkACNGwAMP2DfwJk2sqqugIBMRJmbzZmvEnj3btjFjrE2kooYNbX6qIUPgRz+CLl0seeTn77mvc652paWx3dW+iy+2RLJ5s2233WbjS7LFypVWHfXVV5YwwvEbq1dH9snLs3aNwkIrfZSVWZXd734Hp57qScO5+iSR9UgmADeq6gdpjMdhXUw7drR2hMMPh3vuscbq006r/VjWrYPJkyPblCm794Bq1cp6NJ16qvWE6t7dSiU33GCvl5bC5ZfDlVdaryfnXP2TSIlkGHCbiNwE3KSqn6Uppr2eiLUt/PnP1uDcpw/87Gc2AC8V63FUZssWG+w3ZUokcSxaFImpRw9rLC8qsl5QPXvu3gNq0iSbwffDD62DwDXXwLXXWoO4c67+SmSp3VnAOSJyOHB7MNniTao6PU2x1XtDhw6t9LULL7REsmqVLbB03XVw7rm2LkY4/1AyysuteuqzzywBfP65VVWFTWYdOljCuOwyOPJIKyUVFsY+1+zZNtXJa69ZlVZ+viWTY45JPk7nXPZLuLFdRAqBg4GhwK9VNWvbWbK9sb0qqtZTadEiG0tyxRW2wNMFF8B991kPpkRs3GgljUmTLBl9+mlk4rtWrWyRpiOOiCSNffet/pwrVsCNN1rPsqZNrcQyaRK89BKcf36if7FzLhuktbFdRN4HumHzFn8VbL9I5M3c7u666y4Arrvuuj1eE7FSyS232Ajv++6zRvdbb7WxF+edZ8nl4IOtW21OjiWfTZtshttFi2zw3owZ8OWXkUGOYDf888+3AX/9+1uvqUS61W7fDvfeC3fdZW0gI0ZYHL/+ta2n7knEub1LIpM2Hg7MUdUd6Q0pdbK9RFJZ99/QvHl202/QwHpyPfGEzWr717/C449HJg7MzbVSRfS03KGuXW3w3hFH2FZUZAP4akIVXn7ZEseyZVbVdtdd1iOrb18rQY0f7z2ynKvLfBxJBXU9kYA1tK9ebb2nliyxKT/Akshbb1kPqrVr4bvvbKxJ+/Y2kK9TJ7uxp2qNj/nzYfhwKx316QMPPWRjQHbsgKOPthlyp02z3mbOubrLx5HUQ+ecAzffbFVPjzwC//3f9nzTptZekm47d8Jf/gJ33mkTJ/71r9adN5zJ9qqrrOrsP//xJOLc3qoOz+K0dwgnCO7VC0aOtPaJ2vLhhzbR4e23W5vMvHlWKgmTyL/+BaNGWRff+rp+inOuenEnEhEZLiI1rF13NXXwwTbQLy/Pqreefjr977l+vTWcH3+8Naa/+y48++zuPbm++ca6BvfrZ9PfO+f2XomUSH4ATBaRf4rIoGDpXJeEESNGMGLEiCr3EbFSyfTp1jZx992Jr84XL1WbYPHgg+HJJ62kMXPmngtQlZTARRdF9vfGdef2bnEnElW9Cev++zjW7XeBiPxZRLqmKbZ67+677+buOCbROuccG0B48snW4P6b31S9bndNLFxo1VMXX2zrd0ydaj2y9tlnz31vuQUmTrRqrXSOtHfO1Q0JtZGodfFaFWylQAvgZRHJoikF645rr72Wa6+9ttr9DjvMemHNnGntFS+8AI89lpoYtm+3Uek//KENUnzwQRvt3rt37P3fe88a3n/1q9pp7HfOZb9ExpH8AbgUWAs8BrymqiUikgMsUNWsK5nUh+6/oauvti63q1fbDXz8eJvWpLIbfnXKy20E+vXX2+SQl1xi1WZh9+JYvvvO3q9ZMxslXxemtnfOJaYm3X8TKZG0Bs5W1VNU9V+qWgKgquVAtfPSishoEVkjIrOinustIp+JyEwR+Xcw/UqsY78J9pkuItmbGdLonHOsbeKtt6zhu2VLG0G+YkVi51G1NdMPO8yqsVq0sKT0zDNVJxFVGDrUGvxffNGTiHMuIpFE0lBVl0Q/ISJ3AajqnDiOfxIYVOG5x4DrVbUX8CpwTRXHH6+qfRLNlPVFv36w3342PUrbtnYzX7rUGsZHjrQSRlW2b7eR8f36wemn2+Pnn7cZhX/0o+rf/69/tbEi995b81KQc65+SiSRnBTjucHxHqyq44H1FZ4+CBgf/D4OOCeBePYqOTk2luM//7EZgY891tpMjjjCFosaMMCSy/TpliRKSmx23+eft9f32w9++Uvr8fWPf9hMvxddFN968NOn25Twp51m40iccy5atbcREfmtiMwEDhKRGVHb18CMJN9/FnBG8Pt5QIdK9lPgXRGZKiLDknzPOut3v7MEMXKkPT7wQJuy5OmnYcECSwyHHWbVTgUFNojxpz+F0aNt4amPPrIEMmxY/F12N2+2BNa6tZVovNO3c66ieKZIeR4YC/wFuD7q+S2qWrGEkahfAg+JyM3AG0BxJfv1V9UVItIWGCcic4MSzh6CRDMMoGOWz9lxxx13JLR/9+5WKnjkEWskb9zYbuw/+5m1l4RL3s6dC1u3WiLp3dsmfqzJWA9VG5j49dfwwQeWTJxzrqJanbRRRDoBb6rqITFe6w48q6pHVnOOW4Gtqnpvde+X7b22auLDD23E+aOP2k0+nR5+2Kqy7rzTFtZyztV/aem1JSKfBD+3iMjmqG2LiGyuabDBOdsGP3OAm4C/x9inQESahr8DJ2NVYnXeZZddxmWXXZbQMT/+sY1wf+CB1A9KjDZlik0XP2SItY8451xlaq1EIiIvAMdh3YhXA7cATYArgl3GADeoqorIfsBjqjpERLpgPbrAquKeV9W46oSyvUSSyDiSaM88Az//Obz9NpxySurjWrPGVkosL7ep4Vu1Sv17OOeyk69HUkF9TSTFxTbSvVcveOed1Ma0axcMHGjdgj/+2BbCcs7tPdI6IFFEnhKR5lGPW4jI6ETezKVGgwbWdvHuu1YFlSqq1qNrwgRbh92TiHMuHomMIzlUVTeGD1R1A3BYyiNycQnHhgwdaqWIVLjnHutKfOutvu66cy5+iSSSnOj1SESkJb7CYsY0b24TN86aBbfdlvz5Ro+2LsUXXGArMjrnXLwSSQT3ARNE5OXg8XlAYgMh3G5GhiMLa2jwYJuF96674MwzbfqTmhg1yqamP/lkH3TonEtcQo3tItITGBg8fF9Vv0pLVCmS7Y3tqbB5MxxyiK0bMm2aDVJMRDhWZMgQm8erUaP0xOmcqxvSPfsvQD4gUb+7JFxwwQVckOSiHoWFVi01b551Cd62Lb7jiottHZLhw20SxzFjPIk452omkV5bVwLPYeNA2gLPisjv0xXY3uCVV17hlVdeSfo8J54I991nJYpjjoFFi6ref8YMqwa74w74xS/g5ZehYcOkw3DO7aUSKZH8Cuinqreo6s3AUUBiw7Jd2owYYQMUv/3Wuu2++CJs2BB5vazMlse99lp7fcUKeO01axNp0CBjYTvn6oFEGtsFKIt6XEakmstlgZNPtrXWf/ITmwkYbIbgbt1g0iRblConx7r2/vWvPgmjcy41EkkkTwCfi0g4XclZwOMpj8glpXNnW4J3/HhLKlOm2GzAp50GgwbBSSf5lCfOudRKtNdWX6A/VhIZr6rT0hVYKmR7r62aTpHinHPpUpNeWwkNKFTVqcDUhKJylRozZkymQ3DOuaRVm0hEZAu2QiFYSWS331W1ME2x1XtnnHFG9Ts551yWqzaRqGrT2ghkbzR4sC15P3bs2AxH4pxzNRd31ZaICPBToLOq/reIdADaqeqktEVXz40bNy7TITjnXNISGUfyCHA0cHHweCvwcMojcs45V6ck0tjeT1UPF5FpYNPIi4gPZXPOub1cIiWSEhHJJWhsF5E2QHlaonLOOVdnJJJIHsLWTm8rIncAnwB/TktUzjnn6ox4uv/+DXheVZ8TkanACVjX37NUdU66A6zPPvnkk0yH4JxzSYunjWQBcJ+ItANeAl5Q1emJvlGwvvtpwBpVPSR4rjfwd6AJ8A3wU1XdHOPYQcCDQC7wmKremej7Z6Ojjjoq0yE451zSqq3aUtUHVfVo4MfAeuAJEZkjIjeLSPcE3utJYFCF5x4DrlfVXli12TUVDwraZR4GBgM9gYuCBbbqvGOPPZZjjz0202E451xS4m4jUdUlqnqXqh6GdQH+CRB31ZaqjscSUbSDgPHB7+OAc2IceiSwUFUXq2ox8CJwZrzvm80mTJjAhAkTMh2Gc84lJZGFrfJF5HQReQ4YC8wn9o0/EbOAcJ6Q84AOMfZpD3wb9XhZ8JxzzrksUG0iEZGTgvaNZcAw4C2gq6peoKqvJfn+vwSuCBrxmwLFsUKI8VylUxaLyDARmSIiU7777rskw3POOVedeBrb/wt4HrhaVStWTSVFVecCJwME7S2nxthtGbuXVPYHVlRxzlHAKLBp5FMWrHPOuZjimbTx+HS9uYi0VdU1IpID3IT14KpoMtBNRDoDy4ELiUzT4pxzLsMSWo8kGSLyAnAc0FpElgG3AE1E5IpglzHYKoyIyH5YN98hqloqIsOBd7Duv6NVdXZtxZ1OixcvznQIzjmXtIRWSKxrsn2FROecyzY1WSExkSlSXIr17duXvn37ZjoM55xLSq1Vbbk9ffnll5kOwTnnkuYlEuecc0nxROKccy4pnkicc84lxROJc865pNTr7r8isgWYl+k4qtEaWJvpIOLgcaaWx5laHmfqHKSqTRM5oL732pqXaH/o2iYiU7I9RvA4U83jTC2PM3VEJOHBd1615ZxzLimeSJxzziWlvieSUZkOIA51IUbwOFPN40wtjzN1Eo6xXje2O+ecS7/6XiJxzjmXZp5InHPOJaVeJhIRGSQi80RkoYhcn+l4KiMi34jITBGZXpMud+kiIqNFZI2IzIp6rqWIjBORBcHPFpmMMYgpVpy3isjy4JpOF5EhGY6xg4h8ICJzRGS2iFwZPJ9V17OKOLPtejYSkUki8mUQ523B89l2PSuLM6uuZxBTrohME5E3g8cJX8t610YiIrnAfOAkbJneycBFqvpVRgOLQUS+AYpUNasGKInIscBW4GlVPSR47m5gvareGSTnFqp6XRbGeSuwVVXvzWRsIRFpB7RT1S9EpCkwFTgL+AVZdD2riPN8sut6ClCgqltFJB/4BLgSOJvsup6VxTmILLqeACIyAigCClX1tJp81utjieRIYKGqLlbVYuBF4MwMx1SnqOp4YH2Fp88Engp+fwq7yWRUJXFmFVVdqapfBL9vAeYA7cmy61lFnFlFzdbgYX6wKdl3PSuLM6uIyP7AqcBjUU8nfC3rYyJpD3wb9XgZWfiBCCjwrohMFZFhmQ6mGvuq6kqwmw7QNsPxVGW4iMwIqr4yXgUXEpFOwGHA52Tx9awQJ2TZ9QyqYqYDa4BxqpqV17OSOCG7ruf/AtcC5VHPJXwt62MikRjPZd03gUB/VT0cGAxcEVTVuOSMBLoCfYCVwH0ZjSYgIk2AV4CrVHVzpuOpTIw4s+56qmqZqvYB9geOFJFDMhxSTJXEmTXXU0ROA9ao6tRkz1UfE8kyoEPU4/2BFRmKpUqquiL4uQZ4FauWy1arg3r0sD59TYbjiUlVVwcf4HLgUbLgmgZ15K8Az6nqmODprLueseLMxusZUtWNwIdYu0PWXc9QdJxZdj37A2cEbbUvAgNF5FlqcC3rYyKZDHQTkc4i0gC4EHgjwzHtQUQKgkZNRKQAOBmYVfVRGfUGcGnw+6XA6xmMpVLhByDwEzJ8TYNG18eBOap6f9RLWXU9K4szC69nGxFpHvzeGDgRmEv2Xc+YcWbT9VTVG1R1f1XthN0n31fVS6jJtVTVercBQ7CeW4uAGzMdTyUxdgG+DLbZ2RQn8AJW7C7BSni/AloB7wELgp8tszTOZ4CZwIzgA9EuwzEOwKpWZwDTg21Itl3PKuLMtut5KDAtiGcWcHPwfLZdz8rizKrrGRXvccCbNb2W9a77r3POudpVa1VbEmPwWIXXRUQeEhtEOENEDo96rU4MMHTOub1RbbaRPIk1ilVmMNAt2IZhvRvCAYYPB6/3BC4SkZ5pjdQ551zcai2RaPWDx87ERiirqk4EmgcNUz7A0Dnnslg2LbVb2UDCWM/3q+wkwcC+YQAFBQV9e/TokfpIU2TqVOu+3bdv3wxH4pxzZurUqWtVtU0ix2RTIqlsIGFCAwxVdRTBwixFRUU6ZUrWzIW4h7w8u/zZHKNzbu8iIksSPSabEkllAwkbVPK8c865LJBNieQNbA6aF7Gqq02qulJEviMYYAgsxwbOXJzBOFOmW7dumQ7BOeeSVmuJRERewAa9tBaRZcAt2IyYqOrfgbewAVALge3A0OC1UhEZDrwD5AKjVXV2bcWdTnPmzMl0CM45l7RaSySqelE1rytwRSWvvYUlGuecc1mmPs61VWfk5eV93+DunHN1lScS55xzSfFE4pxzLimeSJxzziXFE4lzzrmkeEtvBvXu3TvTITjnXNI8kWRQONeWc87VZV61lUFLly5l6dKlmQ7DOeeS4iWSDOrSpQsApaWlGY7EOedqzhOJq9b69TBlCqxaZdvatdC0KbRta1u3btCzJ+R4+da5vZInEhfTkiXw8svw73/DJ59AWVnktQYNoLh49/2bNYOjj4Yf/QjOPRe6d6/deJ1zmePfId1uvvsOrrzSShlXXw0bNsD118MHH8DChbBlC+zaZdvy5fDFF/DUU3DhhbBsGdx4Ixx0EBx+ONx1F6xcmem/yDmXbmJzJdZPdWVhq2xoIykthXvvhb/8BbZuhV//2hJI586JnWf5cvjXv+DFF+HzzyEvz0oow4fDMceAxFqmzDmXNURkqqoWJXKMl0gy6JhjjuGYY47JdBisXw+DBsENN8Bxx8GsWfCPfySeRADat4erroKJE2H+fPj972HsWBgwAI44Av75z92ryZxzdZ+XSPZyc+bAGWfA0qXw97/D0KGpf49t2+DZZ+H++y25HHggXHMNXHopNGyY+vdzztWcl0jqmIkTJzJx4sSMvf/778NRR8HmzdYGko4kAlBQAL/5DXz1lTXgt2hhj7t0gQcfhO3b0/O+zrnaUauJREQGicg8EVkoItfHeP0aEZkebLNEpExEWgavfSMiM4PX6kUxY8CAAQwYMCAj7/3FF3DmmdChA0yebO0X6ZabC+ecY20n48ZZz66rroJOnaxtZtOm9MfgnEu9WqvaEpFcYD5wErAMmAxcpKpfVbL/6cAfVXVg8PgboEhV18b7ntletZWpxvavv7auug0bwmefQbt2Nj5k4UIrnWzfDjt2WMN4kyZWoigshH33tW2ffVIXyyefwB13wNtvWxfi3//eeo21bp2693DOxa8mVVu1OY7kSGChqi4GEJEXgTOBmIkEuAh4oZZi22usXQunnGLJ4vTT4eyzYe7cxEoDTZtaSaZjRzjgAGuUP/BA27p2teQTrwEDrDF+6lQrldxxB9x3H/zqVzBiRM0a/J1ztas2SyTnAoNU9dfB458B/VR1eIx998FKLQeq6vrgua+BDYAC/1DVUZW8zzBgGEDHjh37LlmyJB1/TkrUdonku+9sfMeyZfY4N9eqtHr1gh49bPxHixbQuLFtqtYVeNs2SzSrV9u2ciV8+60NWlyyBNat2/192re3c3Xvbj8POsjO37GjvWdV5syxbsjPPGO9u847D/74R+jXLz3XxDm3u2wvkcQaQVBZFjsd+DRMIoH+qrpCRNoC40RkrqqO3+OElmBGgVVtJRt0fbBzJ/ztb3DzzVZl1aePVR+dcQa0bJn8+TdvhkWLbFuwAObNs1LOiy/Cxo2R/Ro0sBJLt25WeunSxbbOna1k07gxHHwwPP443H47PPSQ9SR76SVLJFddZW0s+fnJx+ycS53aTCTLgA5Rj/cHVlSy74VUqNZS1RXBzzUi8ipWVbZHIqlLTjrppLS/x6RJcP75VnIAGDwY3norte9RWAiHHWZbNFUrBc2bZ9v8+ZZoFiyAd9+1BBetbVtLKB072tahgyXA6dNhzBi46CJroxk61AZMdu2a2r/DOVczCVdtichkYAYwM/ypqt/FcVwe1th+ArAca2y/WFVnV9ivGfA10EFVtwXPFQA5qrol+H0ccLuqvl3Ve2Z7Y3u6bNtmAwKff96mL8nLs2qi8nJrYA9/Nmhg3+6j/wuI2OSLubm2T9Om1ubRtKkljGbN7Hewc5aV2bxbO3ZYYigtteMaNbISxr77WlXX/vvb1rGjNd6Xl1s12eLF1vi/ZIk19s+fb1Vvq1btOZ+XiMW8a5c9btfOSlf9+9t5W7WyElZOjsXQsqW9V9OmiZdiNm6046qrinOuvqmtqq0zgUOD7XLgVBFZq6oHVHWQqpaKyHDgHSAXGK2qs0Xk8uD1vwe7/gR4N0wigX2BV8Xm18gDnq8uidQFb7zxBgBnnHFG0ucqL4ePPrLE8fLLlkzAkkjz5nbTHjLEqo5yc+0mvWsXlJTYDTqcukQ1kiB27bK5tbZsgRUrrLpq82Z7DHaeMOE0amRbXp6de+dOiyG6aivUurUlgXC24PJySxzfVfF1JCfHkliTJhZr2GYzdqxt1WnUyBJh69ZW8mnTxhJFQYGdb/16WLPG2n+WLrXz5+RYctp3X2tHOvVU6+1WUGAJrWFD23JyrC3p//7PrtHKlZFEWFRkxxx5ZCQBV6Rq+8+bZ8m0oAD228+uUceOFntlNm2y99y4MdK2VVhoVYZVJc/t2+249evt2I0b7br88IfWHbu6BLpypY09WrDA/s3z8603349+BIceWv1UOKWlMGMGfPqp/ft3727bAQfY+eJRVmbnKStLbU/CyuzaZderVSv794+Hqn1JWrXKPhO7dlmsRUX2bxXP8XPnwocf2jVu0cK+IB1yiP0fjjeG776ztsxu3eK/volIurFdRA4GzlXV/05NSKmT7SWSVDW2L14MZ50FM2fazerAA2HaNDjtNOtOe8op1mB9//0pCDpBO3daElq+fPcG+lWrdt9v330jvcBat7YPTX6+3Si++cbaXxYutA/V3Ll7llaitWoFP/iBXYuGDW3iyeXL7SYQ/ncPS11hSS3VopNkKLzhNmhgN9qSkshW1ccwPCY/P5Lky8rsuKpiz8219xSJnL+8PP6/OUwG0V8yon9WdVz4JSPcwhhKSy3uyv7Li9iNtkkT+xkeK2L/5tu2WdLesWP348JEVlBg/+a5uZF/g+3bbQtLzOHfL7L7tc3Pt+uVm2v77dpl71lcHDmu4rWN/kKRlxe5vqWlFuOOHbH/VpFIqT3cwutcVhY5dts2u16xhN3ywy9DIdXIl8CdOy3+8N87fN/o947+0qAKCxYkXiKpSdVWR1VdWuG5F1X1woROVAv2hkQyYYINLCwrs1HijRtbT6dLL4VHH7VG6rVr7dtuPN+A6oLSUkssmzZZ0mnTxj5MX35p097/5z+2fkp5uX24+/Sx9psf/tCuwZYtVp02e7Z9u+vXD/r2td5lubl209m2LfJh3r7dktHEibYtWmTPhVVsbdpYCaBTJ/tWH52gduyIrOMS9noL/7lzcuzmF974wI4Jv7lWdgOpKKyOrFiyLC+3nxU/4hUTQ6LC9wlv1tE3sfBGGn3TDfePvpmFCSI64YZbNs7aFKuEFW+clZXOEjm+4jkS+XeNdWw171grieQzrNH8a6ydZCcwUFX7JHSiWlDfE8lLL1nC6NDBbp55eda9t2tXqzJ44QX45S/t54VZl+bTa/NmS7IffWQdDqZNs2QQKiy0kluHDlaF1K6dJYRmzey1Jk0i31TDqoDwBhl+29y61ZJZWVmkCnDTJqsm2rDBtvXrrUph3brKp4IJq9DatLHEGG5hm0+LFlY9WVBgiaqw0EpbTZvu/k22pqJLKeENKrwthO1W++9vVU/x9vLbscNmT5g0ybb1661kfPrpVr1SlZ07rUNIUPNLs2a2de9u56isSkfV4v36a/v3D/9tDjsMeveuujqquNiq65YvtxJ0WJ3ZvHn1f+u6ddYhZPVquz6tWtm/U8eO1f/bbN1qg4I//tg+s/vsY21+/ftXX/1VWgrvvGPXauFCq2b89lub9uinP7UvlK1axT521y77UvT++7Zt3hwZB3bPPbWQSL4/UORAoBfQEnhHVZfV6ERpVJ8Tybvv2odqwAB49VW7yRxzjFUDffGF3Yi6d7eutZ9+6tO3q1oj/pdf2ocu3JYvtxtIxbEwNdW4sd18wpt/mAxatdo9SYQlqTZtbF9fXdKlgmryn/VaHUeiqguBhTU93tVcSUlk8alx46y+87LL7FvRm29a8rjxRqtOef11TyJg16BDB9tiKS62ZLJlS6RDQVg3HlYxhfX9eXmR+uVGjSKlg5r0DnMulTL1WfeldjPonHPOqdFxI0dag/Mbb9iN7PPP4bHH4NprrWfRkiU2zcgll1hvIVe9Bg0iVVzOucT4eiR1TNiFr29fq94COP54m1pk4UL7VnzppbZKYVi37Zxz8aqV9UjEXCIiNwePO4qIf++tgUcffZRHH300oWNuucUaER94wIqxY8dag/LNN1sSWbwYnnsOfvtbTyLOudpRk15bI4FyrKfWwSLSAhtAeEQ6AkxGtpdIEm1snz3bep/85jfw8MORHinbt9uiUQ0a2GtPPmk9V/bbL43BO+fqpdpqbO+nqoeLyDQAVd0gInGO83TJuOce65112232+LnnbBDiSy9ZElm2DJ54wuah8iTinKstNel0WBIsUqUAItIGK6G4NFK1HlqDB1vX0Z074U9/sr7m555r+9x7r+137bWZjdU5t3epSYnkIeBVoK2I3AGcC9yU0qjcHubPt4FSAwfa4xdftDmhHnvMxiCsXg2jRllPrU6dMhqqc24vk3AiUdXnRGQqNouvAGep6pyUR+Z289579vOEE+znE09Y760TT7THDzxgpZQbbshMfM65vVeNxpGo6lxgbopj2esMHTo07n3ff9+mXOjSxbr5jh8Pf/6z9dzasgUeecTWHenePY0BO+dcDHEnEhHZgrWLCLuvbCiAqmphimOr9+Lt+lteblN2n3mmJY4nn7TqrJ//3F5/+mlLJn/8Y/pidc65ysSdSFS1ktUUXE3dddddAFx33XVV7jd9uk16N3Cgdfl96imbZ6t9e2tc/9vf4IgjfF1z51xm1GRA4l3xPFfJsYNEZJ6ILBSR62O8fpyIbBKR6cF2c7zH1kU33ngjN954Y7X7vf++/Rw40BZPWrbMlpsFazuZOxeGD09joM45V4WadP+NtdD44OoOCroMPxzs2xO4SER6xtj1Y1XtE2y3J3hsvfTee9Cjh40NeeIJm002XFTxb3+zGWTPPz+zMTrn9l5xJxIR+a2IzAR6iMiMqC1cl6Q6RwILVXWxqhYDL2LL9sYjmWPrtOJiW6vghBOseuvVV22tgYYNbcr4f//bZv6tajlW55xLp0R6bT0PjAX+AkRXLW1R1fVxHN8e+Dbq8TIgVq3+0SLyJbACuFpVZydwbL0zaZKt1jdwoC1QVVwcqdYaOdIa3y+/PLMxOuf2bnGXSFR1k6p+AyxV1SVR2/o420hizZRfcaKvL4ADVLU38FfgtQSOtR1FhonIFBGZ8t1338URVnZ7/31LFscdB2PGQM+eNr/Wjh02GPGssypfY8M552pDrbWRYKWI6Fve/lip43uqullVtwa/vwXki0jreI6NOscoVS1S1aI2la3JmSVGjBjBiBEjqtznvfcscTRoYFVcp55qz7/8slV1XXFFLQTqnHNVSGQcyW+B3wFdRWRG1EtNgU/jOMVkoJuIdAaWAxcCF1d4jx8Aq1VVg6npc4B1wMbqjq2L7r777ipfD9dVHj7cxpGUlMCgQfba6NG2xvJxx6U/Tuecq0qttZGoaqmIDAfeAXKB0ao6W0QuD17/OzZv129FpBTYAVyoNs99zGMTiD0rXRvMrlhZQpkxw9pEjjoK3nnHZv7t3x8WLYIPP4Q77vBldJ1zmVejFRJFpDfwo+Dhx6r6ZUqjSpG6vh7JyJHwu9/Z2iInnmjtI2+8YbP+/vnPtqSuL17lnEul2loh8Q/Ac0DbYHtWRH6f6Hlc9SZPtinjS0qsFDJokI1sf/JJG9nuScQ5lw1qMmnjr7HFrbbB96PaP8N6WbkUmjzZ1ht55x17PGhQZGT7Aw9kNjbnnAvVpNeWAGVRj8uI3T3XJWHbNls+94gj4O23bcr4Ll2skb1VKzj99ExH6JxzpiaJ5AngcxG5VURuBSYCj6c0Kse0aTbrb+/e1mNr0CBYtw5ee80Wr2rYMNMROuecSahqS0QE+BfwITAAK4kMVdVpqQ+t/rvjjjsqfW3yZPtZVgbbt1sief753Ue2O+dcNkgokQTjO15T1b7YKHSXhKqmj5882RrTJ02y0sePfwy33GKDE3v3rsUgnXOuGjWp2pooIkekPJK90GWXXcZll10W87XJkyPtI8ceaw3sU6ZYtZZzzmWTmiSS47FksiiY/XdmhZHuLk5PPPEETzzxxB7Pb9hgy+l26wazZ1tX3+ees1URL7wwA4E651wVatL9N555tVwSpk61n+E4xVNOsWV2Bw60NUmccy6b1CSRrALOATpVOP72VATkIg3tixbZcrpbtsDixTai3Tnnsk1NEsnrwCZgKrArteE4sERy4IHw0Udw9tlWrdWokf3unHPZpiaJZH9VHZTySNz3Jk+Ggw+2dpITT4Q//MGW1i0szHRkzjm3p5okkgki0ktV41le11Vh5MiRezy3apX10OrZ0xrXc3Jg7VpbXtc557JRIuuRzMRWJcwDhorIYqxqS7AhJoemJ8T6K1bX388+s5/LlkG/fvD669CyZWQdEuecyzaJlEjOBorTFcje6IILLgDgpZde+v65V1+F5s1tnq3rroOHHoJLL7UVEp1zLhslkkheUtXD0xbJXuiVV17Z7XFxsa03cthhtnDVli22NvvvfpeZ+JxzLh6JDEhMeoZfERkkIvNEZKGIXB/j9Z8GgxxniMiEYAGt8LVvgsGP00Uke1erSsJ778GmTZCbCy1aWLXWwIHQq1emI3POucolUiJpIyIjKntRVe+v6mARyQUeBk4ClgGTReQNVf0qarevgR+r6gYRGQyMAvpFvX68qq5NIOY65eWXrWfWV19Bjx7WXhKjPd4557JKIiWSXKAJ0LSSrTpHAgtVdbGqFgMvAmdG76CqE1R1Q/BwIrDXrAFYUmJTxA8YACtXwpo10LUrnHpqpiNzzrmqJVIiWamqyYxebw98G/V4GbuXNir6FTA26rEC74qIAv9Q1VGxDhKRYcAwgI4dOyYRbu366CNYv96mjG/Y0Ea1P/SQdf91zrlslkgiSbaNJNbxGnNHkeOxRDIg6un+qrpCRNoC40RkrqqO3+OElmBGARQVFcU8f7YYM2bM97+//DI0bmyN7AcfDMuXwy9+kbHQnHMubokkkhOSfK9lQIeox/sDKyruJCKHAo8Bg1V1Xfi8qq4Ifq4RkVexqrI9EkldcsYZZwC2eNWrr9oSuhs3wvz5Npq9aTwVhs45l2FxV5yo6vok32sy0E1EOotIA+BC4I3oHUSkIzAG+Jmqzo96vkBEmoa/AycDs5KMJ+MGDx7M4MGD+eQTaxNZtgyaNbOqrT/8IdPROedcfGoyRUqNqGqpiAwH3sEa7ker6mwRuTx4/e/AzUAr4BFb1ZdSVS0C9gVeDZ7LA55X1bdrK/Z0GTduHCAUFFhbSG6uVWm9+ip06pTp6JxzLj6imtXNCEkpKirSKVOyd8hJXl4+5eXdUZ39/XN33w3XXJPBoJxzezURmRp8gY9brZVI3O527ICysp5AC0RAFX7+c7j66kxH5pxzianXieTrr+G882yMxq5d1rV2xw77vbjYni8psWqlvDyrWmrQAPbZx3pQNWxoj/Pz7fWSEti5M3J8eI7SUjuHSORc+fmR43Jz7bWSEli9Gtatsw1aAN+iatPFP/qo7eecc3VJvU4k69dbt9rstRCR1SxcCF26ZDoW55yrmXqdSNq1g9/+1koVBQXQpImVNMKG7XC9j9zc3R9v327dcDdssBLM9u2wbZuVVJo3t62w0LrnNmliqxeWl0dKJ9u3w9atdszOnfaaqpVQ+vSBzp3tuC+/tCznScQ5V5d5Y7tzzrnv1aSx3SfgyKBjjz2WY489NtNhOOdcUup11Va2mzBhQqZDcM65pHmJxDnnXFI8kTjnnEuKJxLnnHNJ8UTinHMuKd7YnkGLFy/OdAjOOZc0TyQZVJdWcHTOucp41VYG9e3bl759+2Y6DOecS4qXSDLoyy+/zHQIzjmXNC+ROOecS0qtJhIRGSQi80RkoYhcH+N1EZGHgtdniMjh8R7rnHMuM2otkYhILvAwMBjoCVwkIj0r7DYY6BZsw4CRCRzrnHMuA2qzRHIksFBVF6tqMfAicGaFfc4EnlYzEWguIu3iPNY551wG1GZje3vg26jHy4B+cezTPs5jARCRYVhpBmCXiMxKIuba0FpE1mY6iDi0BjzO1PE4U8vjTJ2DEj2gNhNJrEVkKy6GUtk+8RxrT6qOAkYBiMiUROfVr211IUbwOFPN40wtjzN1RCThRZxqM5EsAzpEPd4fWBHnPg3iONY551wG1GYbyWSgm4h0FpEGwIXAGxX2eQP4edB76yhgk6qujPNY55xzGVBrJRJVLRWR4cA7QC4wWlVni8jlwet/B94ChgALge3A0KqOjeNtR6X+L0m5uhAjeJyp5nGmlseZOgnHWK/XbHfOOZd+PrLdOedcUjyROOecS0q9TCR1ZToVEflGRGaKyPSadLlLFxEZLSJrosfgiEhLERknIguCny0yGWMQU6w4bxWR5cE1nS4iQzIcYwcR+UBE5ojIbBG5Mng+q65nFXFm2/VsJCKTROTLIM7bguez7XpWFmdWXc8gplwRmSYibwaPE76W9a6NJJhOZT5wEtadeDJwkap+ldHAYhCRb4AiVc2qAUoiciywFZtl4JDgubuB9ap6Z5CcW6jqdVkY563AVlW9N5OxhYKZGdqp6hci0hSYCpwF/IIsup5VxHk+2XU9BShQ1a0ikg98AlwJnE12Xc/K4hxEFl1PABEZARQBhap6Wk0+6/WxROLTqSRJVccD6ys8fSbwVPD7U9hNJqMqiTOrqOpKVf0i+H0LMAebqSGrrmcVcWaVYPqkrcHD/GBTsu96VhZnVhGR/YFTgceink74WtbHRFLZNCvZSIF3RWRqMLVLNts3GNND8LNthuOpynCx2aNHZ7qKI5qIdAIOAz4ni69nhTghy65nUBUzHVgDjFPVrLyelcQJ2XU9/xe4FiiPei7ha1kfE0nc06lkgf6qejg2q/EVQVWNS85IoCvQB1gJ3JfRaAIi0gR4BbhKVTdnOp7KxIgz666nqpapah9shosjReSQDIcUUyVxZs31FJHTgDWqOjXZc9XHRBLPVCxZQVVXBD/XAK9i1XLZanVQjx7Wp6/JcDwxqerq4ANcDjxKFlzToI78FeA5VR0TPJ111zNWnNl4PUOquhH4EGt3yLrrGYqOM8uuZ3/gjKCt9kVgoIg8Sw2uZX1MJHViOhURKQgaNRGRAuBkIJtnKn4DuDT4/VLg9QzGUqnwAxD4CRm+pkGj6+PAHFW9P+qlrLqelcWZhdezjYg0D35vDJwIzCX7rmfMOLPpeqrqDaq6v6p2wu6T76vqJdTkWqpqvduwaVbmA4uAGzMdTyUxdgG+DLbZ2RQn8AJW7C7BSni/AloB7wELgp8tszTOZ4CZwIzgA9EuwzEOwKpWZwDTg21Itl3PKuLMtut5KDAtiGcWcHPwfLZdz8rizKrrGRXvccCbNb2W9a77r3POudpVH6u2nHPO1SJPJM4555LiicQ551xSPJE455xLiicS55xzSfFE4pxzLimeSJyrQERaRU3zvarCtN8NRGRCmt53fxG5IMbznURkRzBvU2XHNg7iKxaR1umIz7nK1Nqa7c7VFaq6DpsLqbJp6Y9J01ufAPQEXorx2iK1eZtiUtUdQJ9gugvnapWXSJxLkIhsDUoJc0XkMRGZJSLPiciJIvJpsCDQkVH7XxIscjRdRP4RrJlT8ZwDgPuBc4P9Olfx/gUi8h+xRZNmxSrFOFebPJE4V3MHAg9i02H0AC7Gphq5GvgvABE5GLgAm+m5D1AG/LTiiVT1E2yeuDNVtY+qfl3F+w4CVqhqb7UFvd5O2V/kXA141ZZzNfe1qs4EEJHZwHuqqiIyE+gU7HMC0BeYbPMi0pjKZ1M9CJgXx/vOBO4Vkbuw+ZE+rvmf4FzyPJE4V3O7on4vj3pcTuSzJcBTqnpDVScSkVbAJlUtqe5NVXW+iPTFJlX8i4i8q6q3Jxy9cyniVVvOpdd7WLtHWwARaSkiB8TYrzNxrpsjIvsB21X1WeBe4PBUBetcTXiJxLk0UtWvROQmbEnlHGzK+yuAJRV2nQu0FpFZwDBVraqLcS/gHhEpD8732zSE7lzcfBp557JcsIb6m0HDenX7fgMUqeradMflXMirtpzLfmVAs3gGJAL5WBuNc7XGSyTOOeeS4iUS55xzSfFE4pxzLimeSJxzziXFE4lzzrmkeCJxzjmXFE8kzjnnkuKJxDnnXFI8kTjnnEvK/wcUtyehmcFffgAAAABJRU5ErkJggg==\n", + "image/png": "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0WDr1q0YO3Zsufu89NJL2L59O06dOqXfNmXKFBw9ehQ///xzmZ/Jz883WhW6uLgY169fR+PGjaHRaMxWfyICtFpthe8/+uijWLhwIRwdHeHp6VlLtTJ46aWXkJycjC+++KLcfR544AG0bdsWc+fORePGjeHg4HDX42ZkZCAvLw/t27fHZ599hlGjRpmz2kQEQCmFrKws+Pn5wc7ODO1E5lkazzIAqK1bt1a4z4ABA9SMGTOMtm3ZskU5ODiogoKCMj8zf/78che6ZGFhYWFhYbGukpKSYpa44+5/Dlm5tLQ0eHt7G23z9vZGYWEhrl69Cl9f31KfmTNnDiIjI/WvMzIy4O/vj5SUFHh5edV4neuCc+fOITg4GABw9OhRtGrVyrIVIiIiqqTMzEy0bNnSbK3UNh80ASjVpab+6JEsr6vN2dkZzs7OpbZ7eXnVm6ApICAAAwYM0D+vL+dNRES2x1xDa2w+aPLx8UFaWprRtvT0dDg4OKBx48YWqlXdp9VqERsba+lqEBER1RlWN3uuskJDQxEdHW20befOnejZsyccHR0tVCsiIiKyNlYXNGVnZyM+Pl4/rTcpKQnx8fFITk4GIOORwsPD9ftPmTIF58+fR2RkJE6dOoU1a9Zg9erVeOGFFyxRfauRnZ2Nxx57DI899hiys7MtXR0iIiKLs7qUA7t378Z9991XavuECROwbt06TJw4EefOncPu3bv178XExGDWrFlISEiAn58fXnrpJUyZMsXk78zMzIRWq0VGRka9GduTlJSE1q1bAwASExMRGBho4RoRERFVjrnv31YXNFkCgyYGTUREZH3Mff+2uu45IiIiIktg0ERERERkAgZNRERERCZg0ERERERkAgZNRERERCaw+YzgVDWNGjVC9+7d9c+JiIjqOwZNVCatVosjR45YuhpERER1BrvniIiIiEzAoInKlJubi2nTpmHatGnIzc21dHWIiIgsjhnBTcCM4MwITkRE1ocZwYmIiIgsgEETERERkQkYNBERERGZgEETERERkQkYNBERERGZgEETERERkQmYEZzKpNVq0bFjR/1zIiKi+o5BE5WpUaNGOHXqlKWrQUREVGcwaCKqQGYmcPGilJwcwNsb8PUFfHwAZ2dL146IiGoTgyYqU25uLhYtWgQAmD17NlxdXS1co5pXVATExABffAHs3QtcuABkZ5e/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+/btw9y5c6HRaNCnT59KndumTZvQtWtXuLq6onHjxhg6dChycnIq/TMiorqBQRMRWaVPP/0UTZo0wS+//ILp06fjueeew8MPP4x+/frhyJEjGD58OMaPH49bt24BAF555RWsXbsWK1euREJCAmbNmoUnnngCMTExZR7f3t4ee/fuBQDEx8cjNTUV3333ncn1S01NxaOPPoqnnnoKp06dwu7du/HQQw9BKVX9kycii2D3HBFZpeDgYLzyyisAgDlz5mDRokVo0qQJnn76aQDAvHnzsHLlShw7dgxdu3bF4sWL8eOPPyI0NBQA0Lp1a+zduxcfffQRBg0aVOr4dnZ2uHTpEho3bozg4OBK1y81NRWFhYV46KGHEBAQAADo2rVrVU+XiOoABk1EZJW6deumf25vb4/GjRsbBSXe3t4AgPT0dJw8eRJ5eXkYNmyY0TEKCgrQvXv3cr8jLi6uSgETIEHdkCFD0LVrVwwfPhxhYWH461//ioYNG1bpeERkeQyaiMgqOTo6Gr3WaDRG2zQaDQCguLgYxcXFAID//e9/aN68udHnnJ2dy/2O+Pj4KgdN9vb2iI6Oxr59+7Bz5068//77mDt3Lg4cOIDAwMAqHZOILItjmojI5nXu3BnOzs5ITk5G27ZtjUrLli3L/dzx48eNWrQqS6PR4N5778WCBQsQFxcHJycnbN26tcrHIyLLYksTEdk8T09PvPDCC5g1axaKi4vRv39/ZGZmYt++ffDw8MCECRPK/FxxcTGOHTuGS5cuwd3dvVIpAg4cOIAffvgBYWFhaNasGQ4cOIArV66gU6dO5jotIqplbGkionrhjTfewLx58xAVFYVOnTph+PDh+M9//lNhV9mbb76JjRs3onnz5nj99dcr9X1eXl6IjY3FAw88gPbt2+OVV17Bu+++i5EjR1b3VIjIQjSK81+JiKpl8ODBuOeee/Dee+9V+rMajQZbt241Kes4EVkWW5qIiMxgxYoV8PDwwPHjx03af8qUKfDw8KjhWhGRObGliYiomi5evIjc3FwAgL+/P5ycnO76mfT0dGRmZgIAfH194e7uXqN1JKLqY9BEREREZAJ2zxERERGZgEETERERkQkYNBERERGZgEETERERkQkYNBERERGZgEETERERkQkYNBERERGZgEETERERkQkYNBERERGZ4P8BYSFq+AUKo0oAAAAASUVORK5CYII=\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -540,9 +552,8 @@ " # Create the controller transfer function (as an I/O system)\n", " kp = (2*zeta*w0 - a)/b\n", " ki = w0**2 / b\n", - " control_tf = ct.tf2io(\n", - " ct.TransferFunction([kp, ki], [1, 0.01*ki/kp]),\n", - " name='control', inputs='u', outputs='y')\n", + " control_tf = ct.TransferFunction(\n", + " [kp, ki], [1, 0.01*ki/kp], name='control', inputs='u', outputs='y')\n", " \n", " # Construct the closed loop system by interconnecting process and controller\n", " cruise_tf = ct.InterconnectedSystem(\n", @@ -566,16 +577,26 @@ "execution_count": 10, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/src/python-control/murrayrm/control/xferfcn.py:1109: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly\n", + "/Users/murray/src/python-control/murrayrm/control/xferfcn.py:1109: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly\n", + "/Users/murray/src/python-control/murrayrm/control/xferfcn.py:1109: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly\n" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "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/v37SEhI0EzrTUpKQkJCApKTkwGI8UjDhw/XvH7s2LG4evUqoqKicOHCBaxduxZr1qzBlClTLFF9q3H//n289NJLeOmll3D//n1LV4eIiMjirC7lwN69e/HUU08VOz5ixAisX78eI0eOxJUrV7B3717Nc3FxcZg8eTLOnTuHgIAATJs2DWPHjjX4M7OysqBUKpGZmVllxvYkJSWhfv36AIDExEQEBwdbuEZERERlY+zvb6sLmiyBQRODJiIisj7G/v62uu45IiIiIktg0ERERERkAAZNRERERAZg0ERERERkAAZNRERERAaw+YzgVD5eXl5o3bq1Zp+IiKiqY9BEeimVSpw8edLS1SAiIqo02D1HREREZAAGTaRXbm4uxo8fj/HjxyM3N9fS1SEiIrI4ZgQ3ADOCMyM4ERFZH2YEJyIiIrIABk1EREREBmDQRERERGQABk1EREREBmDQRERERGQABk1EREREBmBGcNJLqVSiadOmmn0iIqKqjkET6eXl5YULFy5YuhpERESVBrvniIiIiAzAlibSKzc3F/PnzwcATJ8+Ha6urhauERERkWVxGRUDcBkVLqNCRETWh8uoEBEREVmAVQZNK1asQHBwMFxcXBAWFob9+/eX+vrvvvsOoaGhqFatGvz9/fHqq6/izp07ZqotERER2QKrC5o2bdqEyMhIzJw5E/Hx8ejSpQv69u2L5ORkva8/cOAAhg8fjlGjRuHcuXP44YcfcOzYMYwePdrMNSciIiJrZnVB06JFizBq1CiMHj0azZo1w6effoq6deti5cqVel9/+PBh1KtXDxMnTkRwcDA6d+6MMWPG4Pjx42auOREREVkzqwqa8vPzceLECUREROgcj4iIwMGDB/W+p1OnTrh27Rp27NgBSZJw8+ZNbN68Gc8++2yJn5OXl4esrCydQkRERFWbVQVNt2/fhkqlgq+vr85xX19fpKWl6X1Pp06d8N1332HIkCFwcnKCn58fqlevjmXLlpX4OdHR0VAqlZpSt25do14HERERWR+rCppkCoVC57EkScWOyc6fP4+JEydi1qxZOHHiBH777TckJSVh7NixJZ5/xowZyMzM1JSUlBSj1t8aKJVKBAUFISgoiMuoEBERwcqSW9aqVQv29vbFWpXS09OLtT7JoqOj8eSTT+K///0vAKBVq1Zwc3NDly5dMG/ePPj7+xd7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W7di9+7dCA4O1nneVu/3465bH1u43/pIkoS8vDybvdclka9bH1u51z169MCZM2eQkJCgKW3btsXLL7+MhIQE1K9f33j3vMLD1W3cxo0bJUdHR2nNmjXS+fPnpcjISMnNzU26cuWKpatmMm+99Za0d+9eKTExUTp8+LDUr18/ycPDw+auOTs7W4qPj5fi4+MlANKiRYuk+Ph46erVq5IkSdL8+fMlpVIpbd26VTpz5ow0dOhQyd/fX8rKyrJwzSumtOvOzs6W3nrrLengwYNSUlKStGfPHik8PFyqXbu2VV/3G2+8ISmVSmnv3r1Samqqpjx48EDzGlu834+7blu93zNmzJD27dsnJSUlSadPn5befvttyc7OToqJiZEkyTbvtSSVft22eq9Loj17TpKMd88ZNBngs88+k4KCgiQnJyepTZs2OtN1bdGQIUMkf39/ydHRUQoICJAGDRoknTt3ztLVMro9e/ZIAIqVESNGSJIkpqnOnj1b8vPzk5ydnaWuXbtKZ86csWyljaC0637w4IEUEREheXt7S46OjlJgYKA0YsQIKTk52dLVrhB91wtAWrduneY1tni/H3fdtnq/X3vtNc3/2d7e3lKPHj00AZMk2ea9lqTSr9tW73VJigZNxrrnCkmSpHK2iBERERFVGRzTRERERGQABk1EREREBmDQRERERGQABk1EREREBmDQRERERGQABk1EREREBmDQRERERGQABk1EREREBmDQRERERGQABk1EVOl1794dkZGRlq5Gibp37w6FQgGFQoGEhASD3jNy5EjNe3788UeT1o+IjINBExFZlBw4lFRGjhyJrVu34v3337dI/SIjIzFw4MDHvu71119HamoqQkJCDDrvkiVLkJqaWsHaEZE5OVi6AkRUtWkHDps2bcKsWbNw8eJFzTFXV1colUpLVA0AcOzYMTz77LOPfV21atXg5+dn8HmVSqVFr4uIyo4tTURkUX5+fpqiVCqhUCiKHSvaPde9e3dMmDABkZGRqFGjBnx9fbF69Wrk5OTg1VdfhYeHBxo0aIBff/1V8x5JkrBw4ULUr18frq6uCA0NxebNm0us16NHj+Dk5ISDBw9i5syZUCgU6NChQ5mubfPmzWjZsiVcXV1Rs2ZN9OzZEzk5OWX+GRFR5cCgiYis0ldffYVatWrh6NGjmDBhAt544w0MHjwYnTp1wsmTJ9G7d28MGzYMDx48AAC88847WLduHVauXIlz585h8uTJeOWVVxAXF6f3/Pb29jhw4AAAICEhAampqdi5c6fB9UtNTcXQoUPx2muv4cKFC9i7dy8GDRoESZIqfvFEZBHsniMiqxQaGop33nkHADBjxgzMnz8ftWrVwuuvvw4AmDVrFlauXInTp0+jZcuWWLRoEXbv3o3w8HAAQP369XHgwAF8/vnn6NatW7Hz29nZ4caNG6hZsyZCQ0PLXL/U1FQUFBRg0KBBCAoKAgC0bNmyvJdLRJUAgyYiskqtWrXS7Nvb26NmzZo6QYmvry8AID09HefPn8fDhw/Rq1cvnXPk5+ejdevWJX5GfHx8uQImQAR1PXr0QMuWLdG7d29ERETg3//+N2rUqFGu8xGR5TFoIiKr5OjoqPNYoVDoHFMoFAAAtVoNtVoNAPjll19Qu3Ztnfc5OzuX+BkJCQnlDprs7e0RGxuLgwcPIiYmBsuWLcPMmTNx5MgRBAcHl+ucRGRZHNNERDavefPmcHZ2RnJyMho2bKhT6tatW+L7zpw5o9OiVVYKhQJPPvkk5s6di/j4eDg5OWHbtm3lPh8RWRZbmojI5nl4eGDKlCmYPHky1Go1OnfujKysLBw8eBDu7u4YMWKE3vep1WqcPn0aN27cgJubW5lSBBw5cgS7du1CREQEfHx8cOTIEdy6dQvNmjUz1mURkZmxpYmIqoT3338fs2bNQnR0NJo1a4bevXvj559/LrWrbN68edi0aRNq166N9957r0yf5+npiX379uGZZ55B48aN8c477+CTTz5B3759K3opRGQhConzX4mIKqR79+544okn8Omnn5b5vQqFAtu2bTMo6zgRWRZbmoiIjGDFihVwd3fHmTNnDHr92LFj4e7ubuJaEZExsaWJiKiCrl+/jtzcXABAYGAgnJycHvue9PR0ZGVlAQD8/f3h5uZm0joSUcUxaCIiIiIyALvniIiIiAzAoImIiIjIAAyaiIiIiAzAoImIiIjIAAyaiIiIiAzAoImIiIjIAAyaiIiIiAzAoImIiIjIAAyaiIiIiAzw/6vvi1UVy7V/AAAAAElFTkSuQmCC\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -587,9 +608,8 @@ " # Create the controller transfer function (as an I/O system)\n", " kp = (2*zeta*w0 - a)/b\n", " ki = w0**2 / b\n", - " control_tf = ct.tf2io(\n", - " ct.TransferFunction([kp, ki], [1, 0.01*ki/kp]),\n", - " name='control', inputs='u', outputs='y')\n", + " control_tf = ct.TransferFunction(\n", + " [kp, ki], [1, 0.01*ki/kp], name='control', inputs='u', outputs='y')\n", " \n", " # Construct the closed loop system by interconnecting process and controller\n", " cruise_tf = ct.InterconnectedSystem(\n", @@ -625,9 +645,8 @@ "# Construct a PI controller with rolloff, as a transfer function\n", "Kp = 0.5 # proportional gain\n", "Ki = 0.1 # integral gain\n", - "control_tf = ct.tf2io(\n", - " ct.TransferFunction([Kp, Ki], [1, 0.01*Ki/Kp]),\n", - " name='control', inputs='u', outputs='y')\n", + "control_tf = ct.TransferFunction(\n", + " [Kp, Ki], [1, 0.01*Ki/Kp], name='control', inputs='u', outputs='y')\n", "\n", "cruise_tf = ct.InterconnectedSystem(\n", " [vehicle, control_tf], name='cruise',\n", @@ -643,14 +662,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHgCAYAAACxe/mPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAACqcklEQVR4nOzdd3hT1f/A8Xe6d+igC2gpQzZlb2TJUhBcoCjDCQooIg5UliI4vuL4OQAVEERARYaIQJEtQzbIHoVCaSmU7t3m/P64JG1oCi20TYDP63nOc5Nzb+49N2nIhzN1SimFEEIIIYQwY2ftAgghhBBC2CIJkoQQQgghLJAgSQghhBDCAgmShBBCCCEskCBJCCGEEMICCZKEEEIIISyQIEkIIYQQwgIJkoQQQgghLJAgSQghhBDCAgmSxG1jzpw56HQ6U3JwcCAoKIjHH3+cEydOWLt4t6X09HQmTpzIhg0brHJ9nU7HiBEjrHLt8jJkyBCqVq1q7WKUKuN38cyZM7d8ro4dO9KxY8dbPo8QZcHB2gUQoqRmz55N7dq1yczM5J9//uGDDz5g/fr1HD16FG9vb2sX77aSnp7OpEmTAOSHqoyMGzeOV155xdrFEELcBAmSxG2nfv36NGvWDNB+2PPy8pgwYQJLly7l6aeftnLphDBXvXr1Mr9GTk6OqXZVCFF6pLlN3PaMAdPFixfN8nft2sWDDz6Ij48PLi4uNG7cmF9++cXsmPT0dMaMGUNYWBguLi74+PjQrFkzFixYYDpmyJAheHh4cOjQIbp06YK7uzsVK1ZkxIgRpKenm50vMzOTsWPHEhYWhpOTE5UqVWL48OEkJiaaHVe1alV69erFqlWraNKkCa6urtSuXZtZs2aVuHzFvddrnTlzhooVKwIwadIkUzPmkCFDTMds2bKFLl264OnpiZubG23atOHPP/+87nmNsrKyeO+996hTpw4uLi74+vrSqVMntm7dWujYefPmUadOHdzc3AgPD2fFihVm+0+ePMnTTz9NzZo1cXNzo1KlSvTu3ZuDBw+aHbdhwwZ0Oh0LFizgnXfeITg4GC8vL+677z6OHTtmdqxSiilTphAaGoqLiwvNmjUjIiLCYvNPcnKy6XMwfq6jRo0iLS3thu+DpeY2YzPjje7bEuM9zps3j9dee41KlSrh7OzMyZMnAZg1axbh4eGmv5eHHnqII0eOmJ1j165dPP7441StWhVXV1eqVq3KE088wdmzZwtdb/v27bRt2xYXFxeCg4MZO3YsOTk5NywnwOnTp3n88ccJDg7G2dmZgIAAunTpwr59+677uitXrvDSSy9RqVIlnJycqFatGu+88w5ZWVlmxxnfxxkzZnDPPffg7OxM3bp1WbhwYaFzxsbGMnToUCpXroyTkxNhYWFMmjSJ3NzcYt2LuEspIW4Ts2fPVoDauXOnWf5XX32lALV48WJT3rp165STk5Nq3769WrRokVq1apUaMmSIAtTs2bNNxw0dOlS5ubmpadOmqfXr16sVK1aoDz/8UP3f//2f6ZjBgwcrJycnFRISoj744AO1Zs0aNXHiROXg4KB69eplOs5gMKju3bsrBwcHNW7cOLVmzRr1v//9T7m7u6vGjRurzMxM07GhoaGqcuXKqm7dumru3Llq9erV6rHHHlOA2rhxY4nKV9x7vVZmZqZatWqVAtSzzz6rtm3bprZt26ZOnjyplFJqw4YNytHRUTVt2lQtWrRILV26VHXr1k3pdDq1cOHC635WOTk5qlOnTsrBwUGNGTNGrVy5Ui1fvly9/fbbasGCBabjAFW1alXVokUL9csvv6iVK1eqjh07KgcHB3Xq1CnTcRs3blSvvfaa+u2339TGjRvVkiVLVN++fZWrq6s6evSo6bj169ebzvnkk0+qP//8Uy1YsECFhISomjVrqtzcXNOxY8eOVYB64YUX1KpVq9R3332nQkJCVFBQkOrQoYPpuLS0NNWoUSPl5+enpk2bptauXau++OILpdfrVefOnZXBYLjuezF48GAVGhpqllfc+7bEeI+VKlVSjz76qFq+fLlasWKFio+PV1OmTFGAeuKJJ9Sff/6p5s6dq6pVq6b0er06fvy46Ry//vqrGj9+vFqyZInauHGjWrhwoerQoYOqWLGiunTpkum4Q4cOKTc3N1W3bl21YMECtWzZMtW9e3cVEhKiABUZGXndstaqVUvVqFFDzZs3T23cuFEtXrxYvfbaa2r9+vWmYzp06GD2fmdkZKiGDRsqd3d39b///U+tWbNGjRs3Tjk4OKj777+/0PtYpUoVU/mWL1+uevTooQD166+/mo6LiYlRVapUUaGhoWrGjBlq7dq16v3331fOzs5qyJAh170HcXeTIEncNoxB0vbt21VOTo5KSUlRq1atUoGB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58417S+oqPJVr16dypUrA9pn+N9//1G9enWLn6EESaIoUpMkbnve3t6MHTuWN954g59//pmnnnqKGTNm0LNnT7p3786QIUOoVKkSV65c4ciRI+zZs4dff/0V0H4se/XqRcOGDfH29ubIkSPMmzeP1q1b4+bmZrqGk5MTn376KampqTRv3pytW7cyefJkevbsSbt27QDo2rUr3bt358033yQ5OZm2bdty4MABJkyYQOPGjRk4cGCJ76045SvuvVri6elJaGgoy5Yto0uXLvj4+ODn50fVqlWZOnUqXbt2pVOnTowZMwYnJye++eYb/vvvPxYsWFCoJqOgJ554gtmzZzNs2DCOHTtGp06dMBgM7Nixgzp16vD444+X6H3o1asXc+bMoXbt2jRs2JDdu3fzySefmH4ES8rHx4fRo0czdepUvL29eeihhzh//jyTJk0iKCjIrPZr1KhRLF68mHvvvZdXX32Vhg0bYjAYiIqKYs2aNbz22mu0bNnypspRmipUqMC4ceN4++23GTRoEE888QTx8fFMmjQJFxcXJkyYAICXlxf33nsvn3zyiemz3rhxIz/88EOhWrl3332X5cuX07lzZ8aPH4+bmxtff/11saY+OHDgACNGjOCxxx6jZs2aODk5sW7dOg4cOGBWg3WtQYMG8fXXXzN48GDOnDlDgwYN2LJlC1OmTOH+++/nvvvuMzvez8+Pzp07M27cONzd3fnmm284evSo2TQA7733HhEREbRp04aXX36ZWrVqkZmZyZkzZ1i5ciXTp0+/6b8lcYezardxIUqgqCkAlNJGhl07zHv//v2qX79+yt/fXzk6OqrAwEDVuXNnNX36dNPr3nrrLdWsWTPl7e2tnJ2dVbVq1dSrr76qLl++bDpm8ODByt3dXR04cEB17NhRubq6Kh8fH/Xiiy+q1NTUQuV48803VWhoqHJ0dFRBQUHqxRdfVAkJCWbHhYaGqgceeKDQfVw70qc45SvuvRZl7dq1qnHjxsrZ2VkBavDgwaZ9mzdvVp07d1bu7u7K1dVVtWrVSv3xxx83PKfxvRg/fryqWbOmcnJyUr6+vqpz585q69atpmMANXz48EKvDQ0NNStHQkKCevbZZ5W/v79yc3NT7dq1U5s3by70fhlHfhUc/q2UUpGRkYWmRDAYDGry5MmqcuXKysnJSTVs2FCtWLFChYeHq4ce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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -774,14 +791,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -819,14 +834,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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z12+fFn0799fVKlSRdjY2AgnJyfRpEkTsWbNmlyvsWrVKtG0aVNhZ2cnbGxsRJUqVcTgwYPF2bNnX/gew8PDxZtvvinKlCkjrKyshKenpxg6dKhIS0tTH3Pp0iXRo0cP4eTkJKysrISvr2+uHoE5PXi2bNmisT2vHoSPHj0Sffr0EaVKlRIKhULk/MrnHPv111/nGeuOHTtE06ZNhbW1tbCzsxPt27cXx44d0zhG295zQgjx+PFjYWZmJuzs7DR6feUMb/DGG2/kOufZnktCyF5YDRo0EEqlUgBQ93jK6T13//79QsWYX++5MWPG5Do2r55WU6dOFR4eHsLMzCxXz6wdO3aIdu3aCUdHR6FUKoWXl5fo06eP+OuvvzSusWLFClG1alVhZWUlqlevLlatWiV69uyp0fPtRfdt7ty5olKlSkKpVIpatWqJH3/8Uf3ZPC00NFS0aNFC2NraCgAan/PL/Ay+yOuvvy4AiJ9//lm9LSMjQ9jZ2QkzMzPx+PFjjePz6z1Xu3btXNfO6x6Gh4eLjh07Cmtra+Hs7CxGjBghdu7cmeseqVQqMX/+fFG5cmVhbW0tGjVqJA4ePJhv77n169eLDz74QJQrV04olUrRqlUrrf4GkOlTCPFUGSMRERmFuLg4VK9eHb169cKKFSsMHQ5BDm7Zrl07bNmyBX369DF0OGQArJ4jIjKwmJgYzJkzB+3atUOZMmVw+/ZtfPfdd0hMTMT48eMNHR4R/YdJExGRgSmVSty6dQujR4/Go0eP1I2uly1blmu6GSIyHFbPEREREWmBQw4QERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWmDQRERERaYFJExEREZEWjCppCggIQOPGjeHg4AAXFxf06tULV65c0ThGCIGZM2fCw8MDNjY2aNu2LcLCwp573TVr1kChUORa0tLSivLtEBERUTFiVElTcHAwxowZg5MnTyIwMBBZWVno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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -862,14 +875,12 @@ "outputs": [ { "data": { - "image/png": "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0YNu3bpx8803U1RUBMBbb71Fu3bt6NOnDzNmzIhaWZawRBJFe/fuZe/evfEOw5iqLSfnyMdLL7lle/cGXj5ihFu+ZcuRyyqwcOFCTjnllCPmjx8/nry8PL777js+//xz7rrrLjZscB1ofPfddzz77LMsWLCAd955hx9++IHZs2dz44038vzzz5fuY/v27UyePJl//OMfDBw4kD/84Q8sWrSIBQsWkJeXB8DDDz/M3Llz+f7775k6dSrff/996faZmZnMnz+fwYMH8+STTwLw4IMP0rt3b7799lvOP/981qxZA8CSJUsYM2YMM2bMIC8vj9TUVEaOHMmGDRsYOnQoM2bMYNKkSSxe7DsiR3RYIomi3NxccnNz4x2GMSYI06dP58orryQ1NZUmTZrQp08f5syZA8Cpp57KcccdR61atWjTpg19+/YFoEuXLqxatap0HwMHDkRE6NKlC02aNKFLly6kpKTQuXPn0vXGjh1LVlYW3bt3Z9GiRYd90f/qV78C4JRTTildf9q0aVx99dUA9O/fn4YNGwLwxRdfMG/ePE499VS6devGF198wYoVK/jmm2/IycmhUaNG1KxZk8svvzyaxQZYHYkxJt7K6x27Tp3yl2dmlr88gM6dOzNu3Lgj5pc37HitWrVKX6ekpJROp6SkUFhYeMR6vuv4rrdy5UqefPJJ5syZQ8OGDbnuuuvYv3//EdunpqYetl/XJeGR8V577bU8+uijh83/4IMPAq4fTXZGYoxJKmeddRYFBQW89tprpfNKvtjHjBlDUVERmzdvZtq0afTo0SOix961axcZGRnUr1+fjRs38sknn1S4zZlnnsnIkSMB+OSTT9i+fTsAZ599NuPGjWPTpk0AbNu2jdWrV3PaaacxZcoUtm7dysGDB3n//fcj+jcEYmckxpikIiJMmDCBIUOG8Nhjj5Genk7Lli155plnyM/Pp2vXrogITzzxBMcee2xppXckdO3ale7du9O5c2dat27NGWecUeE2Q4cO5corryQrK4s+ffrQokULADp16sSwYcPo27cvxcXFpKWl8eKLL9KzZ0/+9re/0atXL4477jiysrJKK+GjRco7navubGArY4wJjYjMU9XsULaxM5Io8m3yZ4wxicoSSRRZIjHGJIMqUdkuIm+KyCYRWVjG8hwR2Skied7jgVjHWBlbtmwJqSsDY4ypjqrK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\n", + "image/png": "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KtIxici02KeJiMo9Hx8fKJVKREVFoU6dOjpLjRo18t3v/PnzOi1ahSVJEtq1a4dZs2YhPDwclpaW2Lp1a5GPR0SmxZYmIir37OzsMGnSJEycOBEajQbt27dHYmIijh49CltbWwwdOjTP/TQaDc6dO4c7d+7AxsamUEMEnDhxAvv27UNAQACqVq2KEydO4N69e2jQoIGhXhYRGRlbmoioQpg9ezamT5+OoKAgNGjQAD169MDOnTsLvFT2+eefY9OmTahWrRo+++yzQp3P3t4eBw8eRK9evVCvXj1MmzYN33zzDXr27Fncl0JEJiIJ3v9KRFQsnTt3RtOmTfHdd98Vel9JkrB161a9Rh0nItNiSxMRkQEsWbIEtra2OH/+vF7lR44cCVtb2xKOiogMiS1NRETFdPv2baSkpAAAPDw8YGlp+dx94uLikJiYCABwc3ODjY1NicZIRMXHpImIiIhID7w8R0RERKQHJk1EREREemDSRERERKQHJk1EREREemDSRERERKQHJk1EREREemDSRERERKQHJk1EREREemDSRERERKQHJk1EREREevh/yZyV8OmKCtcAAAAASUVORK5CYII=\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -893,7 +904,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:control-dev]", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -907,7 +918,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.6" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/examples/describing_functions.ipynb b/examples/describing_functions.ipynb index 766feb2e2..fc7185901 100644 --- a/examples/describing_functions.ipynb +++ b/examples/describing_functions.ipynb @@ -46,14 +46,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAHFCAYAAADxOP3DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABfCElEQVR4nO3deVhUZfsH8O+wDCDCKCKbIuAKprgvoOaOa6YtahpqqUW5+7Zo/Uy03kxbXEMtTVPJrETTNJRU1BLcQs1wwQVZBBHEARfWeX5/IPM6zgAzODDMzPdzXXNdzDPPOed+OMPMzX2ec45ECCFAREREZKYsDB0AERERkSExGSIiIiKzxmSIiIiIzBqTISIiIjJrTIaIiIjIrDEZIiIiIrPGZIiIiIjMGpMhIiIiMmtMhoiIiMisMRkibNy4ERKJBKdOnTJ0KEqffvopdu7cWW6f9u3bY8aMGVWy/QcPHiA0NBTR0dFVsv4nxcfHIzQ0FImJidWyveqUmJiIIUOGwMnJCRKJBDNnzjR0SNXi2LFjCA0Nxd27dw0ax82bNxEaGoozZ86ovRYaGgqJRFL9QRlYr1690KtXL5U2iUSC0NBQg8Sji9LP68c/K3744QcsW7bMYDGZAiZDVCNVlAxdv34dcXFxePHFF6tk+w8ePMCCBQuqNRlasGCBSSZDs2bNwvHjx/Hdd98hJiYGs2bNMnRI1eLYsWNYsGBBjUiGFixYoDEZmjRpEmJiYqo/qBooJiYGkyZNMnQYFRoyZAhiYmLg7u6ubGMy9PSsDB0AUWX88ssvcHFxQffu3Q0dClXg/Pnz6Ny5M4YPH66X9RUXF6OoqAg2NjZ6WZ+xefjwIWxtbfVS0WnYsCEaNmyoh6iMX9euXQ0dQrlK93v9+vVRv359Q4djegSZvQ0bNggA4uTJk8q28ePHC3t7e5GQkCAGDRok7O3tRcOGDcXs2bNFXl6est/169cFALF48WLxySefCE9PT2FjYyM6dOgg/vjjD5XtjB8/Xnh5ealtf/78+eLxtyIAtUfPnj1VlunSpYt48803VdrWr18v/P39hY2Njahbt64YPny4iI+PV+nTs2dPtXU9GVvpmJ58jB8/XiXev//+W4wYMUI4ODgIR0dHMXbsWJGRkaGyXgBi/vz5atvz8vJSrq/09//kY8OGDWrLPfk7O3v2rHjppZeEo6OjqFu3rpg1a5YoLCwUFy9eFAMGDBC1a9cWXl5eYvHixSrLP3z4UMyePVu0adNGuWzXrl3Fzp071bYFQEyZMkWsWbNGNGvWTEilUuHn5ye2bt1aZnxCCHHo0CGN47p+/boQQogbN26IsWPHivr16wupVCp8fX3FF198IYqLi5XrePz99fHHHwtvb29haWkpfv/99zK3u2rVKtGjRw9Rv359UatWLdGqVSuxePFiUVBQUG68QgiRkZEhJk+eLBo2bCikUqlwdnYWgYGBIioqStln//79YtiwYaJBgwbCxsZGNGnSRLzxxhvi9u3byj6l++fJx6FDh5S/04reF0L8772xb98+8dprrwlnZ2cBQDx8+FAkJCSICRMmiKZNmwo7Ozvh4eEhhg4dKs6dO1fhPijd9pN/e0IIUVxcLBYvXixatGghpFKpqF+/vggODhbJyckq/Xr27CmeeeYZceLECdG9e3dhZ2cnfHx8xKJFi1T2YVlK31ebNm0Svr6+ws7OTvj7+4vdu3er9T169Kjo06ePqF27trCzsxMBAQHit99+U+lT+rs6ePCgCAkJEfXq1RNOTk5ixIgRIjU1VS32Jz8HntwnuqxPCCF+/PFH0bVrV1GrVi1hb28vgoKCxN9//63S5+TJk2LUqFHCy8tL2NraCi8vLzF69GiRmJiocSya9nvpa6V/Rz179tS4jxUKhWjatKkICgpSizU3N1c4OjqKt99+W+01c8XDZFSmwsJCDBs2DH379sWvv/6K119/HUuXLsXixYvV+q5atQqRkZFYtmwZtmzZAgsLCwwaNKhSJfiYmBjY2dlh8ODBiImJQUxMDMLCwpSvp6Sk4MSJEyqHyBYtWoSJEyfimWeeQUREBJYvX45z584hICAACQkJOm3f3d0dkZGRAICJEycqY5g3b55KvxEjRqBp06b45ZdfEBoaip07d2LAgAEoLCzUaXtDhgzBp59+CgD4+uuvldsbMmRIhcuOHDkSbdq0wfbt2zF58mQsXboUs2bNwvDhwzFkyBDs2LEDffr0wfvvv4+IiAjlcvn5+bhz5w7eeecd7Ny5E1u3bkX37t3xwgsvYNOmTWrb2bVrF1asWIGFCxfil19+gZeXF1555RX88ssvZcbWvn17xMTEwM3NDd26dVOOy93dHbdv30ZgYCD279+Pjz/+GLt27UK/fv3wzjvvYOrUqWrrWrFiBQ4ePIgvvvgCv//+O3x9fcvc7tWrVzFmzBhs3rwZv/32GyZOnIjPP/8cb775ZoW/z+DgYOzcuRMfffQR9u/fj3Xr1qFfv37IyspSWX9AQABWr16N/fv346OPPsLx48fRvXt35b6fNGkSpk2bBgCIiIhQjr19+/YVxqDJ66+/Dmtra2zevBm//PILrK2tcfPmTdSrVw+fffYZIiMj8fXXX8PKygpdunTBpUuXAJTsgw0bNgAA/u///k8ZR3mHg9566y28//776N+/P3bt2oWPP/4YkZGRCAwMRGZmpkrf9PR0jB07Fq+++ip27dqFQYMGYe7cudiyZYtW49qzZw9WrVqFhQsXYvv27XBycsKIESNw7do1ZZ/Dhw+jT58+kMvlWL9+PbZu3QoHBwc899xz2LZtm9o6J02aBGtra/zwww9YsmQJoqOj8eqrr2oVjybarO/TTz/FK6+8gpYtW+Knn37C5s2bkZubix49eiA+Pl7ZLzExES1atMCyZcuwb98+LF68GGlpaejUqZPa7xbQvN+fFBYWhm7dusHNzU25f2NiYiCRSDBt2jRERUWpfQZu2rQJOTk5mDJlSqV/LybH0NkYGV5ZlSEA4qefflLpO3jwYNGiRQvl89L/3D08PMTDhw+V7Tk5OcLJyUn069dPZZ3aVIaEEMLe3l7lP+THLVu2TNStW1cUFhYKIYTIzs4WdnZ2YvDgwSr9kpKShI2NjRgzZoyyTZvKkBBC3L59u8z/3kvjnTVrlkp7eHi4ACC2bNmibCtrHU9WAH7++WeVykFFSmP48ssvVdrbtm0rAIiIiAhlW2Fhoahfv7544YUXylxfUVGRKCwsFBMnThTt2rVTeQ2AsLOzE+np6Sr9fX19RdOmTSuM1cvLSwwZMkSlbc6cOQKAOH78uEr7W2+9JSQSibh06ZIQ4n/vryZNmmhV2XlScXGxKCwsFJs2bRKWlpbizp075favXbu2mDlzptbrVygUorCwUNy4cUMAEL/++qvytc8//1zlP/jHafu+KP3bHDduXIWxFBUViYKCAtGsWTOV9+bJkyfLrDQ++bd34cIFAUCtYnD8+HEBQHzwwQfKttKKxJP7sGXLlmLAgAEVxgtAuLq6ipycHGVbenq6sLCwEIsWLVK2de3aVbi4uIjc3FyVsbZq1Uo0bNhQKBQKIcT/fldPxr5kyRIBQKSlpanErm1lqKL1JSUlCSsrKzFt2jSVfrm5ucLNzU2MHDmyzN9BUVGRuHfvnrC3txfLly9X27am/f5kZUgIIYYMGaLxszUnJ0c4ODiIGTNmqLS3bNlS9O7du8y4zBErQ1QmiUSC5557TqXN398fN27cUOv7wgsvwNbWVvm89D+3I0eOoLi4WK9xbd++Hc8//zysrEqmvMXExODhw4eYMGGCSj9PT0/06dMHBw4c0Ov2S40dO1bl+ciRI2FlZYVDhw5VyfY0GTp0qMpzPz8/SCQSDBo0SNlmZWWFpk2bqu23n3/+Gd26dUPt2rVhZWUFa2trrF+/HhcuXFDbTt++feHq6qp8bmlpiVGjRuHKlStISUnROe6DBw+iZcuW6Ny5s0r7hAkTIITAwYMHVdqHDRum8b9iTeLi4jBs2DDUq1cPlpaWsLa2xrhx41BcXIzLly+Xu2znzp2xceNGfPLJJ4iNjdVY5cvIyEBISAg8PT2VvzcvLy8A0Pi70wdNJwoUFRXh008/RcuWLSGVSmFlZQWpVIqEhIRKx1H63n3yb6lz587w8/NT+1tyc3NT24dlfUZo0rt3bzg4OCifu7q6wsXFRbn8/fv3cfz4cbz00kuoXbu2sp+lpSWCg4ORkpKirIKVGjZsmFo8ALSO6UkVrW/fvn0oKirCuHHjUFRUpHzY2tqiZ8+eKidh3Lt3D++//z6aNm0KKysrWFlZoXbt2rh//77Gffa0J4g4ODjgtddew8aNG3H//n0AJX978fHxGiuw5ozJEJWpVq1aKgkOANjY2CAvL0+tr5ubm8a2goIC3Lt3T28xpaen46+//lL5kCg9hPH42RWlPDw8VA5x6NOTY7ayskK9evWqbHuaODk5qTyXSqUa95tUKlXZbxERERg5ciQaNGiALVu2ICYmBidPnsTrr7+u0/4FUKnxZmVllbm/NK1TU19NkpKS0KNHD6SmpmL58uU4evQoTp48ia+//hpAySTU8mzbtg3jx4/HunXrEBAQACcnJ4wbNw7p6ekAAIVCgaCgIEREROC9997DgQMHcOLECcTGxmq1/srSNP7Zs2dj3rx5GD58OHbv3o3jx4/j5MmTaNOmTaXj0PVvqV69emr9bGxstN5+RctnZ2dDCKHTe+XJdZZOtK/s76Si9d26dQsA0KlTJ1hbW6s8tm3bpnL4a8yYMVi1ahUmTZqEffv24cSJEzh58iTq16+vMT5t3/flmTZtGnJzcxEeHg6gZEpDw4YN8fzzzz/1uk0JzyYjvSj9sniyTSqVKv+js7W1RX5+vlo/TcfKy7Jjxw7Y29ujf//+yrbSD6u0tDS1/jdv3oSzs7Pyua2tLeRy+VPFUCo9PR0NGjRQPi8qKkJWVpbKh6eNjY3GMVdnwqTJli1b4OPjg23btqmclaQpVqDs/Qto/kKrSL169crcXwBU9hkArc+c2rlzJ+7fv4+IiAhltQaAxtPKNXF2dsayZcuwbNkyJCUlYdeuXZgzZw4yMjIQGRmJ8+fP4+zZs9i4cSPGjx+vXO7KlStarb+Uru8LTePfsmULxo0bp5xvViozMxN16tTRKZ5Sj/8tPXmW2ZN/S9Whbt26sLCw0Om9Ut1Kt186l64scrkcv/32G+bPn485c+Yo20vn72mijzMGmzZtikGDBuHrr7/GoEGDsGvXLixYsACWlpZPvW5TwsoQ6UVERIRKRSE3Nxe7d+9Gjx49lH903t7eyMjIUP4nBQAFBQXYt2+f2vrK+u9y+/btGDp0qMpp1QEBAbCzs1ObtJmSkoKDBw+ib9++yjZvb29cvnxZ5YsoKysLx44dU9s+UP5/k6X/aZX66aefUFRUpHIxN29vb5w7d06l38GDB9WqZU/736uuJBIJpFKpyodteno6fv31V439Dxw4oLLfiouLsW3bNjRp0qRSp2b37dsX8fHx+Pvvv1XaN23aBIlEgt69e+u8TuB/Xx6Pvz+EEPj22291XlejRo0wdepU9O/fXxmnpvUDwNq1a9WWL2+favu+KI9EIlGLY8+ePUhNTdU6jif16dMHANT+lk6ePIkLFy6o/C1VB3t7e3Tp0gUREREq8SsUCmzZsgUNGzZE8+bNqzWmJw0YMABWVla4evUqOnbsqPEBlOwvIYTaPlu3bt1TTyWoqBo3Y8YMnDt3DuPHj4elpSUmT578VNszRawMkV5YWlqif//+mD17NhQKBRYvXoycnBwsWLBA2WfUqFH46KOPMHr0aLz77rvIy8vDihUrNH4QtG7dGtHR0di9ezfc3d3h4OAAZ2dnHD58GD/++KNK3zp16mDevHn44IMPMG7cOLzyyivIysrCggULYGtri/nz5yv7BgcHY+3atXj11VcxefJkZGVlYcmSJXB0dFRZp4ODA7y8vPDrr7+ib9++cHJygrOzM7y9vZV9IiIiYGVlhf79++Pff//FvHnz0KZNG4wcOVJle/PmzcNHH32Enj17Ij4+HqtWrYJMJlPZXqtWrQAA33zzDRwcHGBrawsfH59KVV20MXToUERERODtt9/GSy+9hOTkZHz88cdwd3fXePads7Mz+vTpg3nz5sHe3h5hYWG4ePGi2r7Q1qxZs7Bp0yYMGTIECxcuhJeXF/bs2YOwsDC89dZblf6C69+/P6RSKV555RW89957yMvLw+rVq5GdnV3hsnK5HL1798aYMWPg6+sLBwcHnDx5EpGRkXjhhRcAAL6+vmjSpAnmzJkDIQScnJywe/duREVFqa2vdevWAIDly5dj/PjxsLa2RosWLeDg4KD1+6I8Q4cOxcaNG+Hr6wt/f3+cPn0an3/+uVpy2qRJE9jZ2SE8PBx+fn6oXbs2PDw8lIeZHteiRQu88cYbWLlypfKM0MTERMybNw+enp4GuWDmokWL0L9/f/Tu3RvvvPMOpFIpwsLCcP78eWzdutXgV9D29vbGwoUL8eGHH+LatWsYOHAg6tati1u3buHEiROwt7fHggUL4OjoiGeffRaff/658rPk8OHDWL9+faUreaVat26NiIgIrF69Gh06dICFhYUyCQNK/i5atmyJQ4cO4dVXX4WLi8tTjtoEGXT6NtUI5V1n6ElPnn3y+HVgFixYoLw+S7t27cS+ffvUlt+7d69o27atsLOzE40bNxarVq3SeDbZmTNnRLdu3UStWrWU1xlat26dqFWrlrh//77Gcaxbt074+/sLqVQqZDKZeP7558W///6r1u/7778Xfn5+wtbWVrRs2VJs27ZN45luf/zxh2jXrp2wsbHReJ2h06dPi+eee07Url1bODg4iFdeeUXcunVLZR35+fnivffeE56ensLOzk707NlTnDlzRu2sISFKzpLz8fERlpaWWl9n6PFr2whR9n4rvSbM4z777DPh7e0tbGxshJ+fn/j222817gs8uh5MWFiYaNKkibC2tha+vr4iPDy8zPgep+lsMiFKrjM0ZswYUa9ePWFtbS1atGghPv/8c43XGfr888+12pYQQuzevVu0adNG2NraigYNGoh3331X/P777xWerZeXlydCQkKEv7+/cHR0FHZ2dqJFixZi/vz5Ku+5+Ph40b9/f+Hg4CDq1q0rXn75ZZGUlKTxDLG5c+cKDw8PYWFh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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -71,16 +69,22 @@ "execution_count": 3, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/anaconda3/envs/python3.10-slycot/lib/python3.10/site-packages/matplotlib/cbook/__init__.py:1298: ComplexWarning: Casting complex values to real discards the imaginary part\n", + " return np.asarray(x, float)\n" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABnMUlEQVR4nO3dd1QUV/8G8GeAhQWlSAdFQFTADtjAgi0oVhJNNCZ2k6gxFsybqHkTS4oxxRiNJUbUmGg01hRbiCL2jh3FhqCCCCgIKPX+/vB1f66A7uLCsMvzOWfPYe9OeYbdYb/M3LkjCSEEiIiIiAyEkdwBiIiIiHSJxQ0REREZFBY3REREZFBY3BAREZFBYXFDREREBoXFDRERERkUFjdERERkUFjcEBERkUFhcUNEREQGhcWNnlqxYgUkSVI9lEolnJ2d0bFjR8yaNQspKSlyR3ym6dOnQ5IktTYPDw/07NnzufPGx8dDkiSsWLGinNI9W0xMDIKDg2FtbQ1JkjB37lxZcgDArVu3MH36dJw8ebLYayX9jitKeno6BgwYAEdHR0iShLCwMFlyVLTz589j+vTpiI+PlzVHTk4Opk+fjt27dxd77fHfDrkzVrShQ4fCw8NDrc3DwwNDhw6VJY82du/eDUmS1N7PrVu3Yvr06bJlquxM5A5AL2b58uXw8fFBfn4+UlJSsG/fPsyePRvffPMN1q5diy5dusgdsUQjR45Et27dyjSvi4sLDh48CC8vLx2n0szw4cORnZ2NNWvWoEaNGsX+YFakW7duYcaMGfDw8ECzZs3UXnuR3/GL+vTTT7Fp0yYsW7YMXl5esLW1lSVHRTt//jxmzJiBDh06yPq5yMnJwYwZMwAAHTp0UHutR48eOHjwIFxcXGRIVrls2rQJVlZWcsd4Ln9/fxw8eBANGjRQtW3duhULFixggVMKFjd6rlGjRmjevLnqed++fTFx4kS0bdsWr7zyCi5dugQnJycZE6rLycmBhYUFatWqhVq1apVpGWZmZmjdurWOk2nu7NmzeOuttxAaGipbBk28yO/4RZ09exZeXl544403dLI8IQQePnwIc3NznSxP3+Tn50OSJJiYvPifbAcHBzg4OOgglf7z8/OTO8IzPX7fraysZP2bp5cE6aXly5cLAOLo0aMlvv77778LAGLGjBlq7UePHhW9evUSNWrUEGZmZqJZs2Zi7dq1atNkZ2eLSZMmCQ8PD2FmZiZq1KghAgICxOrVq9WmO3TokOjZs6ewtbUVZmZmok6dOmL8+PGq16dNmyYAiOPHj4u+ffsKGxsb4ezsrPbak9zd3UWPHj3Exo0bRePGjYWZmZnw9PQU33//vdp0165dEwDE8uXLi63r7NmzYsCAAcLKyko4OjqKYcOGiXv37qnNf/fuXTF8+HBRo0YNUa1aNdG9e3dx5coVAUBMmzbtub/zpx+lbc+T81y7dq3Ydm7btk34+fkJpVIpvL29RURERLH5b9y4Id566y1Rq1YtoVAohIuLi+jbt69ITk4WUVFRJeZ5vA0lZSosLBSzZ88W3t7ewtTUVDg4OIhBgwaJxMREtemCg4NFw4YNxZEjR0Tbtm2Fubm58PT0FLNmzRKFhYWl/o4evzdPP6KiooQQQqSlpYnRo0cLV1dXoVAohKenp5g6dap4+PCh2nIAiHfffVcsWrRI+Pj4CIVCIRYtWlTqetesWSNeeukl4ezsLJRKpfDx8REffvihyMrKKnWexzT5vB89elT0799fuLu7C6VSKdzd3cWAAQNEfHy8aprSPh+PP6fu7u5iyJAhxdYfHBwsgoODVc8fv68rV64U4eHhwtXVVUiSJGJjY0VKSooYPXq08PX1FdWqVRMODg6iY8eOYs+ePc99Dx6vu6TPpBBCREREiCZNmqh+B2FhYeL8+fNq0wwZMkRUq1ZNXLp0SYSGhopq1aqJWrVqifDw8GLvYUm0+eyfOXNG9O7dW9jY2AgzMzPRtGlTsWLFCrVpHv+uVq9eLaZOnSpcXFyEpaWl6Ny5s7hw4UKx7O7u7sXyPPmeaLM8IYSIjIwUnTp1EpaWlsLc3FwEBQWJf//9V22aS5cuiaFDh4q6desKc3Nz4erqKnr27ClOnz5d4raU9L4/fu3xfjRkyJAS3+Nr166JTp06CW9vb1FUVKS2/KKiIuHl5SW6d+9e4ntjaHjkxkB1794dxsbG2LNnj6otKioK3bp1Q6tWrbB48WJYW1tjzZo16N+/P3JyclTnnsPDw/HLL7/gs88+g5+fH7Kzs3H27FmkpaWplrVjxw706tULvr6+mDNnDmrXro34+Hj8888/xbK88sorGDBgAEaNGoXs7Oxn5j558iQmTJiA6dOnw9nZGatWrcL48eORl5eH999//7nb3bdvX/Tv3x8jRozAmTNnMGXKFADAsmXLAABFRUXo1asXjh07hunTp6sO92py+ubx4fzAwED069cPkyZNeu48pTl16hQmTZqEyZMnw8nJCUuXLsWIESNQt25dtG/fHgBw8+ZNtGjRAvn5+Zg6dSqaNGmCtLQ07NixA3fv3oW/vz+WL1+OYcOG4b///S969OgBAM88WjN69GgsWbIEY8eORc+ePREfH4+PP/4Yu3fvxokTJ2Bvb6+aNjk5GW+88QYmTZqEadOmYdOmTZgyZQpcXV0xePDgEpf/+JThmDFjkJGRgVWrVgEAGjRogIcPH6Jjx464cuUKZsyYgSZNmmDv3r2YNWsWTp48iS1btqgta/Pmzdi7dy8++eQTODs7w9HRsdTtunTpErp3744JEyagWrVquHDhAmbPno0jR45g165dz3wvNPm8x8fHw9vbGwMGDICtrS2SkpKwaNEitGjRAufPn4e9vT169OiBL774AlOnTsWCBQvg7+8PAGU+fTplyhQEBgZi8eLFMDIygqOjI+7cuQMAmDZtGpydnZGVlYVNmzahQ4cO2LlzJzp06AAXFxds374d3bp1w4gRIzBy5EgAeObRmlmzZmHq1Kl4/fXXMWvWLKSlpWH69OkIDAzE0aNHUa9ePdW0+fn56N27N0aMGIFJkyZhz549+PTTT2FtbY1PPvnkudulyWf/4sWLCAoKgqOjI+bNmwc7Ozv8+uuvGDp0KG7fvo0PPvhAbZlTp05FmzZtsHTpUmRmZuLDDz9Er169EBsbC2NjY61/95os79dff8XgwYPRp08f/Pzzz1AoFPjxxx/RtWtX7NixA507dwbw6NSxnZ0dvvzySzg4OCA9PR0///wzWrVqhZiYGHh7e6utu6T3PTk5WW2ajz/+GNnZ2Vi/fj0OHjyoandxccH48ePRp08f7Ny5U61bwrZt23DlyhXMmzdP69+HXpK7uqKyed6RGyGEcHJyEr6+vqrnPj4+ws/PT+Tn56tN17NnT+Hi4qL6j7xRo0YiLCzsmev38vISXl5e4sGDB6VO8/jIwSeffFLqa09yd3cXkiSJkydPqrW/9NJLwsrKSmRnZwshnn3k5quvvlKbd8yYMUKpVKr+i9myZYsAUOwowKxZs5575OYx/O+owvO2R4jSj9wolUpx/fp1VduDBw+Era2teOedd1Rtw4cPFwqFoth/z086evRosd9FaZliY2MFADFmzBi16Q4fPiwAiKlTp6ragoODBQBx+PBhtWkbNGggunbtWmqeJ+dv2LChWtvixYsFAPH777+rtc+ePVsAEP/884+qDYCwtrYW6enpz13X04qKikR+fr6Ijo4WAMSpU6eeOb0mn/enFRQUiKysLFGtWjW1I4vr1q1T+w/7SdoeuWnfvr1GOfLz80Xnzp3Fyy+/rGq/c+dOqZ/npz+Td+/eFebm5sX+o09ISBBmZmZi4MCBqrbHRwyefg+7d+8uvL29n5tX08/+gAEDhJmZmUhISFCbPzQ0VFhYWKiOxj7+XT2d/fGR64MHD6pl1/TIzfOWl52dLWxtbUWvXr3UpissLBRNmzYVLVu2LPV3UFBQIPLy8kS9evXExIkTi627pPf96SM3Qgjx7rvvlvg3p7CwUNSpU0f06dNHrT00NFR4eXkVO6JjqHi1lAETQqh+vnz5Mi5cuKDqA1FQUKB6dO/eHUlJSbh48SIAoGXLlti2bRsmT56M3bt348GDB2rLjYuLw5UrVzBixAgolcrn5ujbt6/GmRs2bIimTZuqtQ0cOBCZmZk4ceLEc+fv3bu32vMmTZrg4cOHqqvHoqOjAQCvvfaa2nSvv/66xhl1oVmzZqhdu7bquVKpRP369XH9+nVV27Zt29CxY0f4+vrqZJ1RUVEAUOzqkJYtW8LX1xc7d+5Ua3d2dkbLli3V2po0aaKWURu7du1CtWrV0K9fP7X2x3meXn+nTp1Qo0YNjZZ99epVDBw4EM7OzjA2NoZCoUBwcDAAIDY29pnzPu/zDgBZWVn48MMPUbduXZiYmMDExATVq1dHdnb2c5dfVqXtN4sXL4a/vz+USiVMTEygUCiwc+fOMuc4ePAgHjx4UOxz4ebmhk6dOhV7XyRJQq9evdTatPlcaPLZ37VrFzp37gw3Nze1eYcOHYqcnBy1oxVAyfs9gDJ/Vp+3vAMHDiA9PR1DhgxR+1taVFSEbt264ejRo6qj1AUFBfjiiy/QoEEDmJqawsTEBKamprh06VKJ75k2fy9LYmRkhLFjx+Lvv/9GQkICAODKlSvYvn07xowZI9sVlBWNxY2Bys7ORlpaGlxdXQEAt2/fBgC8//77UCgUao8xY8YAAFJTUwEA8+bNw4cffojNmzejY8eOsLW1RVhYGC5dugQAqkPjmnZW1eaqDGdn51LbnjxNUBo7Ozu152ZmZgCg+sJKS0uDiYlJsat3KrrT9dM5gUdZn/xivXPnjk47BD/+/ZX0fri6uhb7/WqSUdv1Ozs7F/vj6ujoCBMTk2Lr1/Rzk5WVhXbt2uHw4cP47LPPsHv3bhw9ehQbN24EgOfmfd7nHXhUYP/www8YOXIkduzYgSNHjuDo0aNwcHAo8+/jeUra/jlz5mD06NFo1aoVNmzYgEOHDuHo0aPo1q3bC70vpa2vpM+FhYVFsX9qzMzM8PDhQ43Wp8nnKi0trdQ8T2YubZlP7/faet7yHv897devX7G/p7Nnz4YQAunp6QAenfb8+OOPERYWhr/++guHDx/G0aNH0bRp0xLz6eIqtuHDh8Pc3ByLFy8GACxYsADm5uYYPnz4Cy9bX7DPjYHasmULCgsLVZeBPu5LMWXKFLzyyislzvP43G+1atUwY8YMzJgxA7dv31b9V9urVy9cuHBBde7+xo0bGmXR5j+Fp88tP9lW0h9FbdnZ2aGgoADp6elqBU5J69XG4z/2ubm5qj+EwP8XjGXh4OCg8e9YE49/f0lJScWKplu3bqn1tykPdnZ2OHz4MIQQap+JlJQUFBQUFFu/pp+bXbt24datW9i9e7fqaA0A3Lt3T6P5n/d5z8jIwN9//41p06Zh8uTJqvlyc3NVX2CaUCqVyM3NLdaemppa4u++pO3/9ddf0aFDByxatEit/f79+xrneNqTn4unVcTnoiR2dnal5gEgS6YnPV7//PnzS72K6fE/TI/75nzxxRdqr6empsLGxqbYfLo4smJtbY0hQ4Zg6dKleP/997F8+XIMHDiwxPUZKh65MUAJCQl4//33YW1tjXfeeQfAo8KlXr16OHXqFJo3b17iw9LSstiynJycMHToULz++uu4ePEicnJyUL9+fXh5eWHZsmUl/rF+EefOncOpU6fU2lavXg1LS0tVB80X8fjLb+3atWrta9aseaHlPh7T5PTp02rtf/31V5mXGRoaiqioKNXpwpJo8x9qp06dADz6Y/uko0ePIjY2VtUBsrx07twZWVlZ2Lx5s1r7ypUrVa+XxeMvgyeLSgD48ccftV5WSZ93SZIghCi2/KVLl6KwsFCt7Vnvh4eHR7HPR1xc3DPf36dJklQsx+nTp4udptHmcxEYGAhzc/Nin4sbN26oTg9VtM6dO6uK1ietXLkSFhYWsl8W3aZNG9jY2OD8+fOl/j01NTUFUPJ7tmXLFty8efOFMjzvPR43bhxSU1PRr18/3Lt3D2PHjn2h9ekbHrnRc2fPnlWd701JScHevXuxfPlyGBsbY9OmTWpXSPz4448IDQ1F165dMXToUNSsWRPp6emIjY3FiRMnsG7dOgBAq1at0LNnTzRp0gQ1atRAbGwsfvnlFwQGBsLCwgLAo8OcvXr1QuvWrTFx4kTUrl0bCQkJ2LFjh+oKmbJwdXVF7969MX36dLi4uODXX39FZGQkZs+erVr3i+jWrRvatGmDSZMmITMzEwEBATh48KDqC9bIqGz1fvfu3WFra4sRI0Zg5syZMDExwYoVK5CYmFjmrDNnzsS2bdvQvn17TJ06FY0bN8a9e/ewfft2hIeHw8fHB15eXjA3N8eqVavg6+uL6tWrw9XVVXX4/kne3t54++23MX/+fBgZGSE0NFR1tZSbmxsmTpxY5qyaGDx4MBYsWIAhQ4YgPj4ejRs3xr59+/DFF1+ge/fuZR5wMigoCDVq1MCoUaMwbdo0KBQKrFq1qliRXBpNPu/t27fH119/DXt7e3h4eCA6OhoRERHF/hNu1KgRAGDJkiWwtLSEUqmEp6cn7OzsMGjQILz55psYM2YM+vbti+vXr+Orr77SasyZnj174tNPP8W0adMQHByMixcvYubMmfD09ERBQYFqOktLS7i7u+OPP/5A586dYWtrq8r+NBsbG3z88ceYOnUqBg8ejNdffx1paWmYMWMGlEolpk2bpnE+XZk2bRr+/vtvdOzYEZ988glsbW2xatUqbNmyBV999RWsra0rPNOTqlevjvnz52PIkCFIT09Hv379VFeznTp1Cnfu3FEdXevZsydWrFgBHx8fNGnSBMePH8fXX3/9wqecGzduDACYPXs2QkNDYWxsjCZNmqiKqvr166Nbt27Ytm0b2rZtW6wvo8GTtz8zldXTY2qYmpoKR0dHERwcLL744guRkpJS4nynTp0Sr732mnB0dBQKhUI4OzuLTp06icWLF6ummTx5smjevLlqLJw6deqIiRMnitTUVLVlHTx4UISGhgpra2thZmYmvLy81Hr/P75a586dO8VyPGucm/Xr14uGDRsKU1NT4eHhIebMmaM23bOulnp6XSVdrZSeni6GDRsmbGxshIWFhXjppZfEoUOHBIBiY+qUBCVcLSWEEEeOHBFBQUGiWrVqombNmmLatGli6dKlpY5z87Snr5oRQojExEQxfPhw4ezsLBQKhXB1dRWvvfaauH37tmqa3377TTUWDDQc56Z+/fpCoVAIe3t78eabb5Y6zs3TSrripCSlzZ+WliZGjRolXFxchImJiXB3dxdTpkwpdZwbTR04cEAEBgYKCwsL4eDgIEaOHClOnDhR6pVkT9Lk837jxg3Rt29fUaNGDWFpaSm6desmzp49W+IVUHPnzhWenp7C2NhYbf1FRUXiq6++EnXq1BFKpVI0b95c7Nq1q9SrpdatW1csa25urnj//fdFzZo1hVKpFP7+/mLz5s0lvi///vuv8PPzE2ZmZhqNc7N06VLRpEkTYWpqKqytrUWfPn3EuXPn1KZ5PM7N00q7WvBp2nz2z5w5I3r16iWsra2FqampaNq0abH3srTfVUl/I7S5WkqT5QkhRHR0tOjRo4ewtbUVCoVC1KxZU/To0UNt/rt374oRI0YIR0dHYWFhIdq2bSv27t2r1fte0tVSubm5YuTIkcLBwUFIklTie7pixQoBQKxZs6bYMg2dJMQTl9QQVVGrV6/GG2+8gf379yMoKEjuOEREL6xv3744dOgQ4uPjoVAo5I5ToXhaiqqc3377DTdv3kTjxo1hZGSEQ4cO4euvv0b79u1Z2BCRXsvNzcWJEydw5MgRbNq0CXPmzKlyhQ0A8MgNVTl///03pk+fjsuXLyM7OxsuLi4ICwvDZ599phc30SMiKk18fDw8PT1hZWWlGsKgLKM06zsWN0RERGRQeCk4ERERGRQWN0RERGRQWNwQERGRQalyV0sVFRXh1q1bsLS0rDI3ECMiItJ3Qgjcv38frq6uzx1wtcoVN7du3Sp2p1kiIiLSD4mJic8d4bnKFTeP75+UmJjIy36JiIj0RGZmJtzc3Eq8D+LTqlxx8/hUlJWVFYsbIiIiPaNJlxJ2KCYiIiKDwuKGiIiIDAqLGyIiIjIoLG6IiIjIoLC4ISIiIoPC4oaIiIgMCosbIiIiMigsboiIiMigsLghIiIig8LihoiIiAyKrMXNnj170KtXL7i6ukKSJGzevPm580RHRyMgIABKpRJ16tTB4sWLyz8oERER6Q1Zi5vs7Gw0bdoUP/zwg0bTX7t2Dd27d0e7du0QExODqVOnYty4cdiwYUM5JyUiIiJ9IeuNM0NDQxEaGqrx9IsXL0bt2rUxd+5cAICvry+OHTuGb775Bn379i2nlJopLBJIynggawaikpgYGcHJykyjm80RERkCvbor+MGDBxESEqLW1rVrV0RERCA/Px8KhaLYPLm5ucjNzVU9z8zMLJdsadm5aDs7qlyWTfSimtSyxtiOdfFSAycWOURk8PSquElOToaTk5Nam5OTEwoKCpCamgoXF5di88yaNQszZsyokHxmJuyfTZVPfmERTt/IwNu/HIePsyXe61QPoY2cYWTEIoeIDJNeFTcAiv3XKYQosf2xKVOmIDw8XPU8MzMTbm5uOs/laKnExc80P8VGVFHSsnKxdN81rDwQjwvJ9/Hu6hOo61gd73b0Qq8mrjAxZlFORIZFr/6qOTs7Izk5Wa0tJSUFJiYmsLOzK3EeMzMzWFlZqT2IqhK76mb4sJsP9k/uhPGd68FKaYLLKVmYuPYUOs+Jxu9HE5FXUCR3TCIindGr4iYwMBCRkZFqbf/88w+aN29eYn8bIvp/NhammPhSfeyb3An/6eoN22qmuJ6Wgw82nEbHb3Yj8vxtuSMSEemErMVNVlYWTp48iZMnTwJ4dKn3yZMnkZCQAODRKaXBgwerph81ahSuX7+O8PBwxMbGYtmyZYiIiMD7778vR3wivWSlVODdjnWx78OO+Ki7L+yrm+HmvQd4d/UJXEgunw73REQVSdbi5tixY/Dz84Ofnx8AIDw8HH5+fvjkk08AAElJSapCBwA8PT2xdetW7N69G82aNcOnn36KefPmyX4ZOJE+sjA1wVvt62Dfhx3RwdsBeQVFGPdbDB7mF8odjYjohUjicY/cKiIzMxPW1tbIyMhg/xui/0nNykW3uXuRmpWLwYHumNmnkdyRiIjUaPP9rVd9boiofNhXN8O3rzUFAKw8eB3/sv8NEekxFjdEBAAIru+AkW09AQD/WX8KtzMfypyIiKhsWNwQkcp/unmjgYsV7ubkY9Lvp1BUVKXOWhORgWBxQ0QqZibGmPe6H5QKI+y7nIql+67KHYmISGssbohITV3H6pjWqyEA4OsdF3HmRobMiYiItMPihoiKGdDCDaGNnJFfKDBuTQyycwvkjkREpDEWN0RUjCRJmPVKY7hYK3EtNRsz/jondyQiIo2xuCGiEtlYmOK7/s0gScDvx27g79O35I5ERKQRFjdEVKrWdezwboe6AIApG8/gxt0cmRMRET0fixsieqbxXeqhmZsN7j8sQPhaXh5ORJUfixsieiaFsRHmDfBDNVNjHIlPx/oTN+SORET0TCxuiOi5attZYEKX+gCA2dsuICMnX+ZERESlY3FDRBoZ2sYDdR2rIy07D9/9Gyd3HCKiUrG4ISKNKIyNMKP3o8H9Vh6MR2xSpsyJiIhKxuKGiDTWpq49ejR2QZEApv1xDkKwczERVT4sbohIK1N7+MJc8ahz8R8nOfYNEVU+LG6ISCs1bcwxttOjsW8+3xqL+w/ZuZiIKhcWN0SktZHtPOFhZ4E793Mxf9dlueMQEalhcUNEWjMzMca0/3UuXrbvGi7dvi9zIiKi/8fihojKpKO3I7r4OqGgSGD6X+xcTESVB4sbIiqzab0awNTECPsvp2Hb2WS54xARAWBxQ0QvwM3WAqODvQAAn/19Hjl5BTInIiJicUNEL2h0By/UqmGOWxkPsSCKnYuJSH4sbojohSgVxvi4ZwMAwE97ruFaarbMiYioqmNxQ0QvLKSBE4LrOyCvsAgz2LmYiGTG4oaIXpgkSZjWqwEUxhJ2X7yDqIspckcioiqMxQ0R6UQdh+oY3sYTAPDF1gsoKCySORERVVUsbohIZ8Z0rIsaFgpcTsnCmqOJcschoiqKxQ0R6Yy1uQITutQHAHwXGcf7ThGRLFjcEJFODWxVG3XsqyEtOw+Lo6/IHYeIqiAWN0SkUwpjI0wO9QEALN17DbfuPZA5ERFVNSxuiEjnXmrghFaetsgtKMLXOy7KHYeIqhgWN0Skc5Ik4aMevgCATTE3cfrGPXkDEVGVwuKGiMpFk1o2eNmvJgDg8y2xHNiPiCoMixsiKjf/6eoNMxMjHL6Wjsjzt+WOQ0RVBIsbIio3rjbmGNnu0cB+X267gHwO7EdEFYDFDRGVq1HBXrCvboqrqdlYdei63HGIqApgcUNE5cpS+f8D+32/8xIyHnBgPyIqXyxuiKjcDWjhhrqO1XE3Jx8Loy7LHYeIDByLGyIqdybGRpja/dHAfsv3xyMxPUfmRERkyFjcEFGF6OjtiDZ17ZBXWITZ2y/IHYeIDBiLGyKqEJIk4aPuDSBJwN+nk3Ai4a7ckYjIQLG4IaIK08DVCv38awEAZm3lwH5EVD5Y3BBRhQoPqQ+lwghH4+/iHw7sR0TlgMUNEVUoF2tzjGj7aGC/2RzYj4jKAYsbIqpwo4K9YFvt0cB+a44myh2HiAwMixsiqnCWSgXGd64HAPj+3zhk5RbInIiIDAmLGyKSxcBWteFpXw2pWXlYEn1F7jhEZEBY3BCRLBTGRvigqzcA4Ke913A786HMiYjIULC4ISLZdGvkDP/aNniQX4jvIuPkjkNEBoLFDRHJRpIkfNTDFwDw+7FExN2+L3MiIjIELG6ISFYB7rbo1tAZRQL4chtvy0BEL0724mbhwoXw9PSEUqlEQEAA9u7d+8zpFyxYAF9fX5ibm8Pb2xsrV66soKREVF4+6OYNEyMJuy6k4MCVVLnjEJGek7W4Wbt2LSZMmICPPvoIMTExaNeuHUJDQ5GQkFDi9IsWLcKUKVMwffp0nDt3DjNmzMC7776Lv/76q4KTE5Eu1XGojoGtagMAZm29gKIi3paBiMpOEjLe3KVVq1bw9/fHokWLVG2+vr4ICwvDrFmzik0fFBSENm3a4Ouvv1a1TZgwAceOHcO+ffs0WmdmZiasra2RkZEBKyurF98IItKJ1KxcdPh6N7JyC/D9gGbo06ym3JGIqBLR5vtbtiM3eXl5OH78OEJCQtTaQ0JCcODAgRLnyc3NhVKpVGszNzfHkSNHkJ+fX+o8mZmZag8iqnzsq5thVHAdAMDXOy4it6BQ5kREpK9kK25SU1NRWFgIJycntXYnJyckJyeXOE/Xrl2xdOlSHD9+HEIIHDt2DMuWLUN+fj5SU0s+Tz9r1ixYW1urHm5ubjrfFiLSjRFt68DJygw37j7ALwevyx2HiPSU7B2KJUlSey6EKNb22Mcff4zQ0FC0bt0aCoUCffr0wdChQwEAxsbGJc4zZcoUZGRkqB6JibyPDVFlZW5qjEkvPRrYb/6uy8jIKfmILBHRs8hW3Njb28PY2LjYUZqUlJRiR3MeMzc3x7Jly5CTk4P4+HgkJCTAw8MDlpaWsLe3L3EeMzMzWFlZqT2IqPLqG1AL3k6WyHiQjx+iLskdh4j0kGzFjampKQICAhAZGanWHhkZiaCgoGfOq1AoUKtWLRgbG2PNmjXo2bMnjIxkPwhFRDpgbCRhcncfAMDPB64jMT1H5kREpG9krQjCw8OxdOlSLFu2DLGxsZg4cSISEhIwatQoAI9OKQ0ePFg1fVxcHH799VdcunQJR44cwYABA3D27Fl88cUXcm0CEZWDDvUd0LauPfIKi/DVjotyxyEiPWMi58r79++PtLQ0zJw5E0lJSWjUqBG2bt0Kd3d3AEBSUpLamDeFhYX49ttvcfHiRSgUCnTs2BEHDhyAh4eHTFtAROVBkiRM6e6DnvP34a9TtzC8jQf8ateQOxYR6QlZx7mRA8e5IdIf7687hfXHb6CFRw38/k5gqRcbEJHh04txboiInmdSSH0oFUY4Gn8XO87dljsOEekJFjdEVGm5WJvjrXaPBvabvf0C8guLZE5ERPqAxQ0RVWrvBHvBvroprqVmY/Xhku87R0T0JBY3RFSpVTczwYQu9QEAc/+NQ+ZDDuxHRM/G4oaIKr0BLdzg5VANd3PysTDqitxxiKiSY3FDRJWeibERpnb3BQAs238NN+5yYD8iKh2LGyLSC518HBFYxw55BUX49p84ueMQUSXG4oaI9IIkSfiox6OjN5tibuLMjQyZExFRZcXihoj0RqOa1njFryYA4POt51HFxiAlIg2xuCEivTKpqzfMTIxw6Go6dsamyB2HiCohFjdEpFdq2phjeFtPAMAX22I5sB8RFcPihoj0zugOXrCtZoqrd7Kx5mii3HGIqJLR+q7gubm5OHLkCOLj45GTkwMHBwf4+fnB09OzPPIRERVjpVRgQpd6+OSPc5gbGYc+zVxhpVTIHYuIKgmNi5sDBw5g/vz52Lx5M/Ly8mBjYwNzc3Okp6cjNzcXderUwdtvv41Ro0bB0tKyPDMTEeH1lrXx84F4XLmTjQW7LmPK/8bBISLS6LRUnz590K9fP9SsWRM7duzA/fv3kZaWhhs3biAnJweXLl3Cf//7X+zcuRP169dHZGRkeecmoipOYWykujR8+f54JKRxYD8iekSjIzchISFYt24dTE1NS3y9Tp06qFOnDoYMGYJz587h1q1bOg1JRFSSjt6OaFfPHnsvpWLWtlgsejNA7khEVAlIQocDRRQUFMDEROtuPBUqMzMT1tbWyMjIgJWVldxxiOgFXUy+j9Dv96BIAGvfbo1WdezkjkRE5UCb72+dXC11/vx5hIeHo2bNmrpYHBGRxrydLfF6y9oAgE+3nEdREQf2I6rqylzcZGVlYenSpQgMDESTJk1w5MgRTJ48WZfZiIg0Ev5SfViameDszUxsOHFD7jhEJDOtzyHt27cPS5cuxYYNG+Dp6Ynz588jOjoabdq0KY98RETPZVfdDO91rosvtl7A1zsuontjF1Qzq9ynyImo/Gh85Oarr76Cj48PBgwYAAcHB+zbtw+nT5+GJEmoUaNGeWYkInquIUEecLezQMr9XCyOviJ3HCKSkcbFzdSpU9G3b19cv34dX3/9NZo2bVqeuYiItGJmYowpoT4AgCV7ruLmvQcyJyIiuWhc3MycORPr1q2Dp6cnPvzwQ5w9e7Y8cxERaa1rQ2e08rRFbkERvtp+Qe44RCQTrY7cxMXF4ZdffkFycjJat26Npk2bQgiBu3fvlmdGIiKNSJKEj3s2gCQBf5y8hRMJ/NtEVBVpfbVUcHAwfv75ZyQlJWH06NEICAhAcHAwgoKCMGfOnPLISESksUY1rdHPvxYA4NO/z0OHQ3kRkZ4o86XglpaWGDVqFA4fPoyYmBi0bNkSX375pS6zERGVyX+6esPC1BgxCffw5ymOmE5U1ehkEL/GjRtj7ty5uHnzpi4WR0T0QhytlBgd7AUAmL3tAh7mF8qciIgqkkbFzZo1azRamEKhQGJiIvbv3/9CoYiIXtRb7evA1VqJWxkPsXTvVbnjEFEF0qi4WbRoEXx8fDB79mzExsYWez0jIwNbt27FwIEDERAQgPT0dJ0HJSLShlJhjA//d2n4wt1XkJzxUOZERFRRNCpuoqOj8c0332DXrl1o1KgRrKysUK9ePTRu3Bi1atWCnZ0dRowYAQ8PD5w9exa9evUq79xERM/Vu6kr/GvbICevEF9uK/6PGREZJq3vCp6WloZ9+/YhPj4eDx48gL29Pfz8/ODn5wcjI5104SlXvCs4UdVy+sY99FmwH0IA60cFormHrdyRiKgMtPn+1rq40XcsboiqnskbTmPN0UQ0dLXCn2PbwthIkjsSEWlJm+/vyn+ohYjoBb3f1RuWShOcu5WJtUcT5Y5DROVM49vmenp6QpKe/d+OJEm4coU3rCOiysW+uhnCX6qPGX+dx9c7LqBHYxdYWyjkjkVE5UTj4mbChAmlvhYfH48ff/wRubm5ushERKRzb7Z2x29HEhB3Owvf/RuH6b0byh2JiMrJC/W5SU9Px6effopFixahVatWmD17Nlq3bq3LfDrHPjdEVdf+y6l4Y+lhGBtJ2DKuLXyc+TeASF+Ue5+bBw8e4PPPP0edOnUQFRWFjRs3Ijo6utIXNkRUtbWpa4/QRs4oLBKY8SfvO0VkqLQqbgoLC7F48WLUqVMHS5cuxfz58xETE4Pu3buXVz4iIp2a2t0XZiZGOHg1DdvOJssdh4jKgcbFze+//w5fX19MmzYNkydPxsWLFzFo0KDndjImIqpM3GwtMOp/9536fEssHuTxvlNEhkbjPjdGRkYwNzfH66+//sxzXXPmzNFZuPLAPjdE9CCvEF3mROPmvQcY17kewl+qL3ckInoObb6/Nb5aqn379s+91JtHcYhIH5ibGuOjHr4Ys+oEFkdfwasBteBmayF3LCLSEY2Lm927d5djDCKiihXayBlBXnY4cCUNn2+JxeJBAXJHIiId4QjFRFQlSZKEab0awthIwvZzydh3KVXuSESkIyxuiKjK8na2xKDW7gCA6X+dQ35hkcyJiEgXWNwQUZU2sUt92FYzxeWULPx8IF7uOESkAyxuiKhKs7ZQYHI3HwDAd5FxSMp4IHMiInpRLG6IqMrrF1ALAe41kJ1XiM/+jpU7DhG9IJ0WNwkJCSgs5IBYRKRfjIwkfBbW6NE9p84kITrujtyRiOgF6LS48fDwQIMGDbBx40ZdLpaIqNz5ulhhaJAHAGDaH2fxMJ//qBHpK50WN1FRUZgyZQrWr1+vy8USEVWICV3qwcnKDPFpOfgx+qrccYiojDS+/YKh4O0XiOhZ/j59C2NXx8DUxAiRE9vD3a6a3JGICNp9f8veoXjhwoXw9PSEUqlEQEAA9u7d+8zpV61ahaZNm8LCwgIuLi4YNmwY0tLSKigtERm6Ho1d0K6ePfIKivDJH+dQxf7/IzIIWhc3t2/fxqBBg+Dq6goTExMYGxurPbSxdu1aTJgwAR999BFiYmLQrl07hIaGIiEhocTp9+3bh8GDB2PEiBE4d+4c1q1bh6NHj2LkyJHabgYRUYkkScKM3g1hamyE6Lg72HEuWe5IRKQlrU9LPS4+xo4dCxcXl2I3y+zTp4/Gy2rVqhX8/f2xaNEiVZuvry/CwsIwa9asYtN/8803WLRokdrNO+fPn4+vvvoKiYmJGq2Tp6WISBNz/rmIebsuw8VaiX/Dg1HNTONb8RFROSiXu4I/tm/fPuzduxfNmjUraz4AQF5eHo4fP47JkyertYeEhODAgQMlzhMUFISPPvoIW7duRWhoKFJSUrB+/Xr06NHjhbIQET1tTMe62HTyJhLTH2DezkuY0t1X7khEpCGtT0u5ubnp5Bx0amoqCgsL4eTkpNbu5OSE5OSSDwMHBQVh1apV6N+/P0xNTeHs7AwbGxvMnz+/1PXk5uYiMzNT7UFE9DxKhTFm9G4IAIjYdw0Xk+/LnIiINKV1cTN37lxMnjwZ8fHxOgnw9GktIUSxtsfOnz+PcePG4ZNPPsHx48exfft2XLt2DaNGjSp1+bNmzYK1tbXq4ebmppPcRGT4Ovk4IaSBEwqKBD7efJadi4n0hNZ9bmrUqIGcnBwUFBTAwsICCoVC7fX09HSNlpOXlwcLCwusW7cOL7/8sqp9/PjxOHnyJKKjo4vNM2jQIDx8+BDr1q1Tte3btw/t2rXDrVu34OLiUmye3Nxc5Obmqp5nZmbCzc2NfW6ISCM37ubgpTl78CC/EN++2hR9A2rJHYmoSirXPjdz584tay41pqamCAgIQGRkpFpxExkZWWqn5JycHJiYqEd+fIVWaTWamZkZzMzMdJKZiKqeWjUsMK5zPczefgFfbI1FF18nWFsonj8jEclG6+JmyJAhOlt5eHg4Bg0ahObNmyMwMBBLlixBQkKC6jTTlClTcPPmTaxcuRIA0KtXL7z11ltYtGgRunbtiqSkJEyYMAEtW7aEq6urznIRET1pRFtPbDhxA5dTsvDl9ljMeqWJ3JGI6BnKdG1jYWEhNm/ejNjYWEiShAYNGqB3795aj3PTv39/pKWlYebMmUhKSkKjRo2wdetWuLu7AwCSkpLUxrwZOnQo7t+/jx9++AGTJk2CjY0NOnXqhNmzZ5dlM4iINGJqYoTPwxqh/5JD+O1IIsKa1USrOnZyxyKiUmjd5+by5cvo3r07bt68CW9vbwghEBcXBzc3N2zZsgVeXl7llVUnOM4NEZXVlI2n8duRRNRxqIat49pBqdDuHzoiKrtyvf3CuHHj4OXlhcTERJw4cQIxMTFISEiAp6cnxo0bV+bQRESV3eRQXzhYmuHqnWwsjLosdxwiKoXWxU10dDS++uor2Nraqtrs7Ozw5ZdflniFExGRobA2V6jGvlkUfQVxtzn2DVFlpHVxY2Zmhvv3i+/QWVlZMDU11UkoIqLKKrSRM7r4OiK/UGDKxjMoKuLYN0SVjdbFTc+ePfH222/j8OHDEEJACIFDhw5h1KhR6N27d3lkJCKqNCRJwsw+jVDN1BjHr9/FqsPX5Y5ERE/RuriZN28evLy8EBgYCKVSCaVSiTZt2qBu3br4/vvvyyMjEVGl4mpjjg+6+QAAZm+/iOSMhzInIqInaX211GOXLl3ChQsXIIRAgwYNULduXV1nKxe8WoqIdKGwSKDvogM4mXgPIQ2csGRwc7kjERk0bb6/y1zc6CsWN0SkKxeSM9Fz3j4UFAksftMf3RoVvwUMEemGzm+/EB4ejk8//RTVqlVDeHj4M6edM2eO5kmJiPSYj7MVRgV74Yeoy/jkj3MIqmsPKyVvzUAkN42Km5iYGOTn56t+JiKiR8Z2qostZ5JwLTUbs7ddwOcvN5Y7ElGVx9NSREQv6OCVNLz+0yEAwLpRgWjhYfucOYhIW+U6QvHw4cNLHOcmOzsbw4cP13ZxRER6L9DLDv2buwEApmw8g9yCQpkTEVVtWhc3P//8Mx48eFCs/cGDB6q7dxMRVTVTuvvAvropLqdkYWHUFbnjEFVpGhc3mZmZyMjIgBAC9+/fR2Zmpupx9+5dbN26FY6OjuWZlYio0rKxMMX0/92aYUHUZZy/lSlzIqKqS6MOxQBgY2MDSZIgSRLq169f7HVJkjBjxgydhiMi0ic9Grvg74ZJ2H4uGe+vO4U/xraBwljrA+RE9II0Lm6ioqIghECnTp2wYcMGtRtnmpqawt3dHa6uruUSkohIH0iShE/DGuHQtTScT8rEot1XMK5zPbljEVU5Wl8tdf36ddSuXRuSJJVXpnLFq6WIqLz9cfImxq85CYWxhD/HtoWvC//WEL2ocr1aateuXVi/fn2x9nXr1uHnn3/WdnFERAand1NXhDRwQn6hwH/Wn0J+YZHckYiqFK2Lmy+//BL29vbF2h0dHfHFF1/oJBQRkT6TJAmfvdwI1uYKnL2ZiR+jefUUUUXSuri5fv06PD09i7W7u7sjISFBJ6GIiPSdo6USM/539dT3Oy/hYnLx8cGIqHxoXdw4Ojri9OnTxdpPnToFOzs7nYQiIjIEfZq5oovvo9NT7687hQKeniKqEFoXNwMGDMC4ceMQFRWFwsJCFBYWYteuXRg/fjwGDBhQHhmJiPSSJEn44uVGsFKa4MzNDPy456rckYiqBK2Lm88++wytWrVC586dYW5uDnNzc4SEhKBTp07sc0NE9BRHK6VqcL/v/72EuNs8PUVU3sp848y4uDicOnUK5ubmaNy4Mdzd3XWdrVzwUnAiqmhCCIz8+Rh2XkhB01rW2DA6CCYc3I9IK9p8f/Ou4EREFeB25kO8NCcamQ8L8GE3H4zu4CV3JCK9os33t8YjFD9WWFiIFStWYOfOnUhJSUFRkXoHuV27dmm7SCIig+dkpcQnvRri/XWn8F1kHLr4OqKek6XcsYgMktbFzfjx47FixQr06NEDjRo10tuRiomIKlpf/5rYcvoWoi7ewfvrTvH0FFE50fq0lL29PVauXInu3buXV6ZyxdNSRCSn5IyHCPnu0empiV3qY3wX3nuKSBPlevsFU1NT1K1bt8zhiIiqMmdrJT57uTEAYN6uSziVeE/eQEQGSOviZtKkSfj+++9RxfohExHpTO+mrujd1BWFRQIT157Eg7xCuSMRGRSt+9zs27cPUVFR2LZtGxo2bAiFQqH2+saNG3UWjojIUH3apxGOXEvH1dRszNoWi5l9GskdichgaF3c2NjY4OWXXy6PLEREVYa1hQLfvNoUb0YcxsqD19HJxxEdvB3ljkVkEDjODRGRjGb8dQ7L98fD0dIMOya0R41qpnJHIqqUyrVDMRER6c6H3XxQ17E6Uu7n4qPNZ9ifkUgHtD4t5enp+cyxba5e5Y3hiIg0pVQY47vXmuHlhfux9UwyNp+8iZf9askdi0ivaV3cTJgwQe15fn4+YmJisH37dvznP//RVS4ioiqjcS1rTOhSD9/8E4dPNp9DS0871LQxlzsWkd4q0wjFJVmwYAGOHTv2woGIiKqiUcFe2HUhBScS7mHS7yexemRrGBlxBHiistBZn5vQ0FBs2LBBV4sjIqpSTIyNMOe1ZrAwNcahq+lYtv+a3JGI9JbOipv169fD1tZWV4sjIqpyPOyr4eOeDQAAX22/iIvJ92VORKSftD4t5efnp9ahWAiB5ORk3LlzBwsXLtRpOCKiqmZACzf8e/42dl5Iwfg1Mdj8bhsoFcZyxyLSK1oXN2FhYWrPjYyM4ODggA4dOsDHx0dXuYiIqiRJkvBl3yboNncPLiTfx5fbLmB674ZyxyLSKxoVN+Hh4fj0009RrVo1dOzYEYGBgcVuu0BERLrhYGmGb15timErjmLFgXi0rWuPLg2c5I5FpDc06nMzf/58ZGVlAQA6duyIu3fvlmsoIqKqrqOPI0a09QQA/Gf9KSRnPJQ5EZH+0OjIjYeHB+bNm4eQkBAIIXDw4EHUqFGjxGnbt2+v04BERFXVB928cehqGs7dysTEtSfx68hWMObl4UTPpdG9pTZv3oxRo0YhJSUFkiSVOjy4JEkoLCzUeUhd4r2liEifXL2ThZ7z9yEnrxDvh9TH2E715I5EJAud31sqLCwMycnJyMzMhBACFy9exN27d4s90tPTdbIBRET0SB2H6pjZpxEA4Lt/L+H4df6dJXoerca5qV69OqKiouDp6Qlra+sSH0REpFt9/WsirJkrCosExv12EhkP8uWORFSpaT2IX3BwMExMtL6CnIiIykiSJHwa1gjudha4ee8Bpm7k3cOJnkVnIxQTEVH5sVQqMG+AH0yMJGw5k4S1RxPljkRUabG4ISLSE03dbPCfrt4AgOl/ncOl27w9A1FJWNwQEemRt9rVQbt69niYX4T3fovBw/zKfYUqkRxY3BAR6REjIwnfvtYU9tVNcSH5Pr7YGit3JKJKR+uewS+//LLajTMfkyQJSqUSdevWxcCBA+Ht7a2TgEREpM7RUolvX2uGIcuOYOXB6wisY4fQxi5yxyKqNLQ+cmNtbY1du3bhxIkTqiInJiYGu3btQkFBAdauXYumTZti//79Gi1v4cKF8PT0hFKpREBAAPbu3VvqtEOHDoUkScUeDRvypnJEVLUE13fAO8F1AAAfrD+N+NRsmRMRVR5aFzfOzs4YOHAgrl69ig0bNmDjxo24cuUK3nzzTXh5eSE2NhZDhgzBhx9++NxlrV27FhMmTMBHH32EmJgYtGvXDqGhoUhISChx+u+//x5JSUmqR2JiImxtbfHqq69quxlERHrv/RBvtPCogfu5BRi96gT73xD9j0a3X3iSg4MD9u/fj/r166u1x8XFISgoCKmpqThz5gzatWuHe/fuPXNZrVq1gr+/PxYtWqRq8/X1RVhYGGbNmvXcLJs3b8Yrr7yCa9euwd3dXaP8vP0CERmS25kP0WPeXqRm5aF/czfM7tdE7khE5ULnt194UkFBAS5cuFCs/cKFC6r7SimVyhL75TwpLy8Px48fR0hIiFp7SEgIDhw4oFGWiIgIdOnSRePChojI0DhZKfH9AD9IErD2WCLWHeP4N0RadygeNGgQRowYgalTp6JFixaQJAlHjhzBF198gcGDBwMAoqOjn9sPJjU1FYWFhXByclJrd3JyQnJy8nNzJCUlYdu2bVi9evUzp8vNzUVubq7qeWZm5nOXTUSkT9rUtUd4l/r4NjIOH/9xFo1rWcPHmUemqerSurj57rvv4OTkhK+++gq3b98G8KggmThxoqqfTUhICLp166bR8p4+wiOEeO5RHwBYsWIFbGxsEBYW9szpZs2ahRkzZmiUhYhIX73bsS6OXb+L6Lg7GPPrCfwxtg0slQq5YxHJQus+N096fBSkLH1X8vLyYGFhgXXr1uHll19WtY8fPx4nT55EdHR0qfMKIVC/fn307NkT33333TPXU9KRGzc3N/a5ISKDk56dhx7z9iIp4yF6NHHBD6/7afTPIpE+KNc+N0+ysrIqc4FgamqKgIAAREZGqrVHRkYiKCjomfNGR0fj8uXLGDFixHPXY2Zmpsr5InmJiCo722qmWPCG/6P7T51Ows8H4uWORCQLrYub27dvY9CgQXB1dYWJiQmMjY3VHtoIDw/H0qVLsWzZMsTGxmLixIlISEjAqFGjAABTpkxR9eN5UkREBFq1aoVGjRppG5+IyKD5166Bqd19AQCfb41FTMJdmRMRVTyt+9wMHToUCQkJ+Pjjj+Hi4vJChzz79++PtLQ0zJw5E0lJSWjUqBG2bt2quvopKSmp2Jg3GRkZ2LBhA77//vsyr5eIyJANa+OBY9fTsfVMMt5ddQJbxrVDjWqmcsciqjBa97mxtLTE3r170axZs3KKVL44zg0RVQX3H+aj9w/7cS01Gx28HbBsSAsYGbH/Demvcu1z4+bmhhfog0xERBXAUqnAwjf8YWZihN0X72D+rstyRyKqMFoXN3PnzsXkyZMRHx9fDnGIiEhXfF2s8PnLjQEA3/0bh3/P35Y5EVHF0Pq0VI0aNZCTk4OCggJYWFhAoVAfRyE9PV2nAXWNp6WIqKr55I+zWHnwOizNTLB5bBt4OVSXOxKR1rT5/ta6Q/HcuXPLmouIiGTwcc8GuJB0H0fi0/H2ymPY/C4H+CPD9kKD+OkjHrkhoqrozv1c9P5hH5IyHqKLrxOWDApgB2PSKzrvUPzk/ZgyMzOf+SAiosrHwdIMi98MgKmJEf6NvY15uy7JHYmo3GhU3NSoUQMpKSkAABsbG9SoUaPY43E7ERFVTk3dbPB52KPBT+f+ewmR7GBMBkqjPje7du2Cra0tACAqKqpcAxERUfl5tbkbzt7MwM8HryN87Ul2MCaDxD43RERVTH5hEd5YehhHrqXDy6EaOxiTXtDm+7tMxc3du3cRERGB2NhYSJIEX19fDBs2THV0pzJjcUNEBKRm5aLXfHYwJv1RriMUR0dHw8PDA/PmzcPdu3eRnp6OefPmwdPTE9HR0WUOTUREFce+uhl+HMQOxmSYtD5y06hRIwQFBWHRokWqu4AXFhZizJgx2L9/P86ePVsuQXWFR26IiP7f+uM38P66UwCAJYMCENLQWeZERCUr1yM3V65cwaRJk1SFDQAYGxsjPDwcV65c0T4tERHJpl9ALQwN8gAATFx7ErFJHNKD9J/WxY2/vz9iY2OLtcfGxurtncKJiKqyj3r4ok1dO2TnFWLkz8dw536u3JGIXohGl4KfPn1a9fO4ceMwfvx4XL58Ga1btwYAHDp0CAsWLMCXX35ZPimJiKjcKIyNsHBgAF5euB9XU7Px9i/H8NtbraFUGD9/ZqJKSKM+N0ZGRpAkCc+bVJIkFBYW6ixceWCfGyKikl1LzUbYgv3IeJCPPs1cMbd/M0gSr6CiykHnN868du2aToIREVHl5WlfDYve9MfgiCP44+Qt1HWojvc615M7FpHWNCpu3N3dyzsHERFVAkFe9vg0rBGmbDyDbyPjUMehOno0cZE7FpFWNCpu/vzzT4SGhkKhUODPP/985rS9e/fWSTAiIpLH6y1r43JKFiL2XcOkdSfhZmuOJrVs5I5FpDGN+9wkJyfD0dERRkalX2DFPjdERIahsEhg5M9HEXXxDhwtzfDn2LZwtlbKHYuqMJ2Pc1NUVARHR0fVz6U9KnthQ0REmjE2kjDvdT94O1ki5X4uRq48ipy8ArljEWlEq3Fu8vPz0bFjR8TFxZVXHiIiqiQslQosHdIcdtVMcfZmJsLXnkJRUZW61zLpKa2KG4VCgbNnz/LSQCKiKsLN1uLRPaiMjbD9XDK++eei3JGInkvrEYoHDx6MiIiI8shCRESVUHMPW3zZtzEAYOHuK1h9OEHmRETPptHVUk/Ky8vD0qVLERkZiebNm6NatWpqr8+ZM0dn4YiIqHJ4xb8Wrqfl4Pudl/DxH2fhYq1ERx9HuWMRlUjr4ubs2bPw9/cHgGJ9b3i6iojIcE3oUg837z3A+uM38O7qE1j7diAa17KWOxZRMRpdCm5IeCk4EVHZ5RcWYfiKo9h7KRX21c2waUwQ3Gwt5I5FVYDOLwV/UkZGBtLT04u1p6enIzMzU9vFERGRHlEYG2HhG/7wdbFCalYuhiw/gns5eXLHIlKjdXEzYMAArFmzplj777//jgEDBugkFBERVV6WSgWWD20BF2slrt7Jxlsrj+FhPsc5o8pD6+Lm8OHD6NixY7H2Dh064PDhwzoJRURElZuztRIrhrWEpdIER+PvYtI6joFDlYfWxU1ubi4KCoqPUpmfn48HDx7oJBQREVV+3s6W+HFQABTGEracTsKsbbFyRyICUIbipkWLFliyZEmx9sWLFyMgIEAnoYiISD8Eednj635NAQA/7b2GFfuvyZyIqAyXgn/++efo0qULTp06hc6dOwMAdu7ciaNHj+Kff/7ReUAiIqrcwvxq4ua9B/h6x0XM+Ps8nK3N0a2Rs9yxqArT+shNmzZtcPDgQbi5ueH333/HX3/9hbp16+L06dNo165deWQkIqJKbkwHLwxsVRtCAOPXxODw1TS5I1EVxnFuiIhIJwoKizDq1+P4NzYFlmYmWPNOazR05SB/pBvlOs7NiRMncObMGdXzP/74A2FhYZg6dSry8jjWARFRVWVibIQfBvqjpYct7ucWYMiyo4hPzZY7FlVBWhc377zzjuq2C1evXkX//v1hYWGBdevW4YMPPtB5QCIi0h9KhTF+GtJcNcjfoGWHkZL5UO5YVMVoXdzExcWhWbNmAIB169YhODgYq1evxooVK7BhwwZd5yMiIj1jba7Az8NbwN3OAonpDzB42RFk5OTLHYuqEK2LGyEEioqKAAD//vsvunfvDgBwc3NDamqqbtMREZFecrRU4pfhreBgaYYLyfcx/OejeJDHUYypYmhd3DRv3hyfffYZfvnlF0RHR6NHjx4AgGvXrsHJyUnnAYmISD/VtrPAyuEtYaU0wfHrdzF61XHkFxbJHYuqAK2Lm7lz5+LEiRMYO3YsPvroI9StWxcAsH79egQFBek8IBER6S9fFyssG9oCSoURdl+8g//wNg1UAXR2KfjDhw9hbGwMhUKhi8WVG14KTkRU8aIupOCtlcdQUCQwNMgD03o1gCRJcsciPVKul4IDwL1797B06VJMmTIF6enpAIDz588jJSWlLIsjIiID19HHEd+8+ug2DSsOxGP+rssyJyJDpvXtF06fPo3OnTvDxsYG8fHxeOutt2Bra4tNmzbh+vXrWLlyZXnkJCIiPRfmVxN3c/Iw46/zmBMZh+pmJhje1lPuWGSAtD5yEx4ejmHDhuHSpUtQKpWq9tDQUOzZs0en4YiIyLAMa+OJ8Z3rAQBm/n0eqw8nyJyIDJHWxc3Ro0fxzjvvFGuvWbMmkpOTdRKKiIgM14Qu9fBO+zoAgI82n8HGEzdkTkSGRuviRqlUIjMzs1j7xYsX4eDgoJNQRERkuCRJwuRQHwwJdIcQwPvrTuHv07fkjkUGROvipk+fPpg5cyby8x+NNilJEhISEjB58mT07dtX5wGJiMjwSJKEab0aYkALNxQJYMKak4g8f1vuWGQgtC5uvvnmG9y5cweOjo548OABgoODUbduXVhaWuLzzz8vj4xERGSAjIwkfP5yY4Q1c0VBkcC7q04gOu6O3LHIAJR5nJtdu3bhxIkTKCoqgr+/P7p06aLrbOWC49wQEVUuBYVFeO+3GGw7mwwzEyOsGNYSgV52cseiSkab72+dDeKnL1jcEBFVPnkFRRj963HsvJACC1Nj/DKiFQLca8gdiyqRchvEr6ioCMuWLUPPnj3RqFEjNG7cGL1798bKlStRxWokIiLSIVMTIyx4wx9t69ojJ68QQ5cdwZkbGXLHIj2lcXEjhEDv3r0xcuRI3Lx5E40bN0bDhg1x/fp1DB06FC+//HKZAixcuBCenp5QKpUICAjA3r17nzl9bm4uPvroI7i7u8PMzAxeXl5YtmxZmdZNRESVh1JhjCWDA9DSwxb3cwswaNlhxCYVvzqX6Hk0HqF4xYoV2LNnD3bu3ImOHTuqvbZr1y6EhYVh5cqVGDx4sMYrX7t2LSZMmICFCxeiTZs2+PHHHxEaGorz58+jdu3aJc7z2muv4fbt24iIiEDdunWRkpKCgoICjddJRESVl4WpCZYNa4E3lx7GycR7GPjTIfw6shUaulrLHY30iMZ9bkJCQtCpUydMnjy5xNe/+OILREdHY8eOHRqvvFWrVvD398eiRYtUbb6+vggLC8OsWbOKTb99+3YMGDAAV69eha2trcbreRL73BARVX4ZD/IxeNkRnEq8BxsLBX4d0QqNarLAqcrKpc/N6dOn0a1bt1JfDw0NxalTpzQOmZeXh+PHjyMkJEStPSQkBAcOHChxnj///BPNmzfHV199hZo1a6J+/fp4//338eDBA43XS0RElZ+1uQK/jGiJZm42uJeTjzeWHsbZm+yDQ5rRuLhJT0+Hk5NTqa87OTnh7t27Gq84NTUVhYWFxZbp5ORU6m0crl69in379uHs2bPYtGkT5s6di/Xr1+Pdd98tdT25ubnIzMxUexARUeVnpXxU4PjXtkHGg3wM/OkQOxmTRjQubgoLC2FiUnoXHWNj4zL1fZEkSe25EKJY22NFRUWQJAmrVq1Cy5Yt0b17d8yZMwcrVqwo9ejNrFmzYG1trXq4ublpnZGIiORhqVTg5+EtEeBeA5kPC/DG0kM4lXhP7lhUyWncoVgIgaFDh8LMzKzE13Nzc7Vasb29PYyNjYsdpUlJSSn1CJGLiwtq1qwJa+v/P+/q6+sLIQRu3LiBevXqFZtnypQpCA8PVz3PzMxkgUNEpEceFzhDlx3Bset38WbEYawc3hJ+tTkODpVM4yM3Q4YMgaOjo9pRkCcfjo6OWl0pZWpqioCAAERGRqq1R0ZGIigoqMR52rRpg1u3biErK0vVFhcXByMjI9SqVavEeczMzGBlZaX2ICIi/VLdzAQrhrd8dJn4wwIMjjiCEwmad4WgqkXWEYrXrl2LQYMGYfHixQgMDMSSJUvw008/4dy5c3B3d8eUKVNw8+ZNrFy5EgCQlZUFX19ftG7dGjNmzEBqaipGjhyJ4OBg/PTTTxqtk1dLERHpr+zcAgxbcRRHrqWjupmJ6pQVGb5yG6FY1/r374+5c+di5syZaNasGfbs2YOtW7fC3d0dAJCUlISEhATV9NWrV0dkZCTu3buH5s2b44033kCvXr0wb948uTaBiIgqUDUzE6wY1gKt69giK7cAgyMO41h8utyxqJLhvaWIiEjv5OQVYMSKYzh4NQ3mCmP8NLg52tazlzsWlSO9OXJDRERUFhamJlg2tAXa13fAg/xCDF9xFP+cK3kYEap6WNwQEZFeMjc1xk+DA9C1oRPyCoswetUJ/HHyptyxqBJgcUNERHrLzMQYCwb64xW/migsEpiw9iR+O5Lw/BnJoLG4ISIivWZibIRvXm2KN1rVhhDAlI1nsHTvVbljkYxY3BARkd4zMpLwWVgjvNO+DgDgsy2x+P7fS6hi18zQ/7C4ISIigyBJEiaH+mDSS/UBAN/9G4dZ2y6wwKmCWNwQEZHBkCQJ73Wuh497NgAALNlzFR9tPouiIhY4VQmLGyIiMjgj2npidt/GkCRg9eEETPz9JPIKiuSORRWExQ0RERmk/i1qY94AP5gYSfjj5C2MXHkM2bkFcseiCsDihoiIDFavpq74aUhzmCuMsSfuDgYuPYz07Dy5Y1E5Y3FDREQGraO3I1a91Qo2FgqcSryHfosP4MbdHLljUTlicUNERAbPv3YNrB8VCFdrJa7eyUbfRQdwMfm+3LGonLC4ISKiKqGuoyU2jAlCPcfquJ2Zi1cXH8BR3lHcILG4ISKiKsPF2hzrRgUiwL0GMh8W4M2lhxF5/rbcsUjHWNwQEVGVYmNhil9HtEJnH0fkFhThnV+OYe1R3o/KkLC4ISKiKsfc1Bg/DgrAqwG1UCSADzecwQ+7eLsGQ8HihoiIqiQTYyN81a8JRnfwAgB8808cpm46i4JCDvan71jcEBFRlSVJEj7s5oNpvRpAkoDfjiRgxM/HkMXB/vQaixsiIqryhrXxxOI3A6BUGCE67g5eW3wQyRkP5Y5FZcTihoiICEDXhs5Y83Yg7Kub4nxSJl5euB+xSZlyx6IyYHFDRET0P83cbLBpTBvUcaiGpIyHeHXxQeyJuyN3LNISixsiIqInuNlaYOPoILTytEVWbgGGrziK348myh2LtMDihoiI6Ck2FqZYOaIlwpq5oqBI4IMNp/HtPxd5qbieYHFDRERUAjMTY3zXvxne61QXADB/12VMXHsSuQWFMiej52FxQ0REVApJkjApxBuz+zaGsZGEzSdv4Y2fDiM1K1fuaPQMLG6IiIieo3+L2lgxrAUslSY4dv0u+vzAK6kqMxY3REREGmhXzwGb320DT/tquHnvAfouOsCbblZSLG6IiIg05OVQHZvGBKFNXTvk5BXi7V+OYXH0FXY0rmRY3BAREWnBxsIUK4a1xJuta0MI4MttFzBp3Sl2NK5EWNwQERFpSWFshM/CGmNmn4YwNpKw8cRNDGRH40qDxQ0REVEZDQ70wIphLWClNMFxdjSuNFjcEBERvYB29Ryw6amOxtvPJssdq0pjcUNERPSCvByqY/OYNmhb1x45eYUY9etxfPvPRRQWsaOxHFjcEBER6YC1hQIrhrXAiLaeAB6NaDzy56PIeJAvc7Kqh8UNERGRjpgYG+Hjng0wt38zmJkYIeriHfT5YR/ibt+XO1qVwuKGiIhIx8L8amLD6CDUtDFHfFoOXl6wH9vPJskdq8pgcUNERFQOGtW0xl/vtUWQlx2y8wox6tcT+HrHBfbDqQAsboiIiMqJbTVTrBzeEiP/1w9nQdQVjPj5KDJy2A+nPLG4ISIiKkcmxkb4b88G+H5AMygVRth98Q56L9iHC8kcD6e8sLghIiKqAH2a/X8/nOtpOQhbsB8bT9yQO5ZBYnFDRERUQRq6PuqH066ePR7mFyH891OYsvEMHubzvlS6xOKGiIioAtlWe3TjzQld6kGSgN+OJKDvogNISMuRO5rBYHFDRERUwYyNJEzoUh8/D2uJGhYKnLuViZ7z9yLy/G25oxkEFjdEREQyaV/fAVvGtYNfbRtkPizAWyuP4cttF1BQWCR3NL3G4oaIiEhGrjbmWPt2IIa18QAALI6+goFLDyMl86G8wfQYixsiIiKZmZoYYVqvhlgw0B/VTI1x5Fo6us/bh4NX0uSOppdY3BAREVUSPZq44M/32qK+U3WkZuXijaWH8F1kHEc11hKLGyIiokrEy6E6Nr/bBv0CaqFIAN/vvISBPx1CcgZPU2mKxQ0REVElY2Fqgm9ebYrv+jeFhakxDl9LR+j3e7DrAq+m0gSLGyIiokrqZb9a+Pu9tmjoaoW7OfkYvuIYPv37PPIKeDXVs7C4ISIiqsTqOFTHxjFBGBrkAQCI2HcNfRcdwPW0bHmDVWIsboiIiCo5MxNjTO/dED8Nbg4bCwXO3MxAj3n78OepW3JHq5RkL24WLlwIT09PKJVKBAQEYO/evaVOu3v3bkiSVOxx4cKFCkxMREQkj5caOGHruHZo6WGLrNwCjPstBh+sP4Xs3AK5o1UqshY3a9euxYQJE/DRRx8hJiYG7dq1Q2hoKBISEp4538WLF5GUlKR61KtXr4ISExERycvVxhyr32qFcZ0f3Zvq92M30GPeXpxMvCd3tEpDEkLIdvF8q1at4O/vj0WLFqnafH19ERYWhlmzZhWbfvfu3ejYsSPu3r0LGxubMq0zMzMT1tbWyMjIgJWVVVmjExERye7glTRM+v0kbmU8fHS/qs71MKZjXRgbSXJH0zltvr9lO3KTl5eH48ePIyQkRK09JCQEBw4ceOa8fn5+cHFxQefOnREVFVWeMYmIiCqtQC87bBvfHj2buKCwSODbyDj0//EgEtOr9h3GZStuUlNTUVhYCCcnJ7V2JycnJCcnlziPi4sLlixZgg0bNmDjxo3w9vZG586dsWfPnlLXk5ubi8zMTLUHERGRobC2UGD+636Y81pTVDczwbHrdxH6/V5sOH4DMp6ckZWJ3AEkSf3QmRCiWNtj3t7e8Pb2Vj0PDAxEYmIivvnmG7Rv377EeWbNmoUZM2boLjAREVElI0kSXvGvhRYetpi49iSOXb+LSetOYdfFFHwR1hjWFgq5I1Yo2Y7c2Nvbw9jYuNhRmpSUlGJHc56ldevWuHTpUqmvT5kyBRkZGapHYmJimTMTERFVZm62FljzdmtMeqk+jI0kbDmdhG7f78GBK6lyR6tQshU3pqamCAgIQGRkpFp7ZGQkgoKCNF5OTEwMXFxcSn3dzMwMVlZWag8iIiJDZWJshPc618OG0UHwsLNAUsZDvLH0MD79+zwe5hfKHa9CyHpaKjw8HIMGDULz5s0RGBiIJUuWICEhAaNGjQLw6KjLzZs3sXLlSgDA3Llz4eHhgYYNGyIvLw+//vorNmzYgA0bNsi5GURERJVOMzcbbBnXDp/+fR5rjiYiYt81RF1MwZzXmqGZm43c8cqVrMVN//79kZaWhpkzZyIpKQmNGjXC1q1b4e7uDgBISkpSG/MmLy8P77//Pm7evAlzc3M0bNgQW7ZsQffu3eXaBCIiokqrmpkJvuzbBCENnTB5wxlcvZONVxbux5gOdTGucz2Ymsg+lm+5kHWcGzlwnBsiIqqK7uXk4ZM/zqlu2eDrYoVvX22KBq768V2oF+PcEBERUcWxsTDFvNf9sGCgP2pYKBCblIk+C/ZhQdRlFBQa1l3GWdwQERFVIT2auOCficF4qYET8gsFvt5xEX0XH8TllCy5o+kMixsiIqIqxsHSDEsGBeDbV5vCUmmCU4n30GPeXvy05yoKi/S/twqLGyIioipIkiT0DaiFHRPao109e+QWFOHzrbF4ZdEBxN2+L3e8F8LihoiIqApztTHHyuEt8eUrjWFp9v9HcebtvIR8Pe2Lw+KGiIioipMkCQNa1kZkeDA6+zgiv1BgTmQcev+wH2dvZsgdT2ssboiIiAgA4GytxNIhzfH9gGZPXFG1H7O3X9Cr0Y1Z3BAREZGKJEno06wmIsOD0aOJCwqLBBbtvoLu8/bi+PV0ueNphMUNERERFWNf3QwLBvrjx0EBcLA0w9U72ei3+CCm/3kO9x/myx3vmVjcEBERUam6NnTGvxOD0S+gFoQAVhyIx0tz9mDHuWS5o5WKxQ0RERE9k7WFAt+82hS/jmgFdzsLJGc+xDu/HMfbK48hKeOB3PGKYXFDREREGmlbzx47JrTHmA5eMDGS8M/523hpzh6s2H+tUg3+x+KGiIiINKZUGOODbj74e1xb+NW2QVZuAab/dR6vLDqA87cy5Y4HgMUNERERlYGPsxU2jArCp30aqgb/6/XDPszaFosHefJeNs7ihoiIiMrEyEjCoEAP/DspGKGNnFFYJPBj9FW89F00UjIfypdLtjUTERGRQXCyUmLRmwFYOrg5XK2V8LSvBgdLM9nymMi2ZiIiIjIoXRo4obWXHXJyCyBJkmw5WNwQERGRzlQ3M0F1M3nLC56WIiIiIoPC4oaIiIgMCosbIiIiMigsboiIiMigsLghIiIig8LihoiIiAwKixsiIiIyKCxuiIiIyKCwuCEiIiKDwuKGiIiIDAqLGyIiIjIoLG6IiIjIoLC4ISIiIoNS5e4KLoQAAGRmZsqchIiIiDT1+Hv78ff4s1S54ub+/fsAADc3N5mTEBERkbbu378Pa2vrZ04jCU1KIANSVFSEW7duwdLSEpIk6XTZmZmZcHNzQ2JiIqysrHS67MrA0LcPMPxt5PbpP0PfRm6f/iuvbRRC4P79+3B1dYWR0bN71VS5IzdGRkaoVatWua7DysrKYD+0gOFvH2D428jt03+Gvo3cPv1XHtv4vCM2j7FDMRERERkUFjdERERkUFjc6JCZmRmmTZsGMzMzuaOUC0PfPsDwt5Hbp/8MfRu5ffqvMmxjletQTERERIaNR26IiIjIoLC4ISIiIoPC4oaIiIgMCosbIiIiMigsbp5h4cKF8PT0hFKpREBAAPbu3fvM6aOjoxEQEAClUok6depg8eLFxabZsGEDGjRoADMzMzRo0ACbNm0qr/ga0WYbN27ciJdeegkODg6wsrJCYGAgduzYoTbNihUrIElSscfDhw/Le1NKpM327d69u8TsFy5cUJuuMr2H2mzf0KFDS9y+hg0bqqapTO/fnj170KtXL7i6ukKSJGzevPm58+jbPqjtNurbPqjt9unjPqjtNurTfjhr1iy0aNEClpaWcHR0RFhYGC5evPjc+SrDfsjiphRr167FhAkT8NFHHyEmJgbt2rVDaGgoEhISSpz+2rVr6N69O9q1a4eYmBhMnToV48aNw4YNG1TTHDx4EP3798egQYNw6tQpDBo0CK+99hoOHz5cUZulRttt3LNnD1566SVs3boVx48fR8eOHdGrVy/ExMSoTWdlZYWkpCS1h1KprIhNUqPt9j128eJFtez16tVTvVaZ3kNtt+/7779X267ExETY2tri1VdfVZuusrx/2dnZaNq0KX744QeNptfHfVDbbdS3fVDb7XtMX/ZBQPtt1Kf9MDo6Gu+++y4OHTqEyMhIFBQUICQkBNnZ2aXOU2n2Q0ElatmypRg1apRam4+Pj5g8eXKJ03/wwQfCx8dHre2dd94RrVu3Vj1/7bXXRLdu3dSm6dq1qxgwYICOUmtH220sSYMGDcSMGTNUz5cvXy6sra11FfGFaLt9UVFRAoC4e/duqcusTO/hi75/mzZtEpIkifj4eFVbZXr/ngRAbNq06ZnT6OM++CRNtrEklXkffJIm26dv++DTyvIe6tN+mJKSIgCI6OjoUqepLPshj9yUIC8vD8ePH0dISIhae0hICA4cOFDiPAcPHiw2fdeuXXHs2DHk5+c/c5rSllmeyrKNTysqKsL9+/dha2ur1p6VlQV3d3fUqlULPXv2LPZfZUV4ke3z8/ODi4sLOnfujKioKLXXKst7qIv3LyIiAl26dIG7u7tae2V4/8pC3/ZBXajM++CL0Id9UFf0aT/MyMgAgGKftydVlv2QxU0JUlNTUVhYCCcnJ7V2JycnJCcnlzhPcnJyidMXFBQgNTX1mdOUtszyVJZtfNq3336L7OxsvPbaa6o2Hx8frFixAn/++Sd+++03KJVKtGnTBpcuXdJp/ucpy/a5uLhgyZIl2LBhAzZu3Ahvb2907twZe/bsUU1TWd7DF33/kpKSsG3bNowcOVKtvbK8f2Whb/ugLlTmfbAs9Gkf1AV92g+FEAgPD0fbtm3RqFGjUqerLPthlbsruDYkSVJ7LoQo1va86Z9u13aZ5a2seX777TdMnz4df/zxBxwdHVXtrVu3RuvWrVXP27RpA39/f8yfPx/z5s3TXXANabN93t7e8Pb2Vj0PDAxEYmIivvnmG7Rv375MyyxvZc2yYsUK2NjYICwsTK29sr1/2tLHfbCs9GUf1IY+7oMvQp/2w7Fjx+L06dPYt2/fc6etDPshj9yUwN7eHsbGxsWqyJSUlGLV5mPOzs4lTm9iYgI7O7tnTlPaMstTWbbxsbVr12LEiBH4/fff0aVLl2dOa2RkhBYtWlT4fxwvsn1Pat26tVr2yvIevsj2CSGwbNkyDBo0CKamps+cVq73ryz0bR98EfqwD+pKZd0HX5Q+7Yfvvfce/vzzT0RFRaFWrVrPnLay7IcsbkpgamqKgIAAREZGqrVHRkYiKCioxHkCAwOLTf/PP/+gefPmUCgUz5ymtGWWp7JsI/Dov8WhQ4di9erV6NGjx3PXI4TAyZMn4eLi8sKZtVHW7XtaTEyMWvbK8h6+yPZFR0fj8uXLGDFixHPXI9f7Vxb6tg+Wlb7sg7pSWffBF6UP+6EQAmPHjsXGjRuxa9cueHp6PneeSrMf6qxrsoFZs2aNUCgUIiIiQpw/f15MmDBBVKtWTdWjffLkyWLQoEGq6a9evSosLCzExIkTxfnz50VERIRQKBRi/fr1qmn2798vjI2NxZdffiliY2PFl19+KUxMTMShQ4cqfPuE0H4bV69eLUxMTMSCBQtEUlKS6nHv3j3VNNOnTxfbt28XV65cETExMWLYsGHCxMREHD58uNJv33fffSc2bdok4uLixNmzZ8XkyZMFALFhwwbVNJXpPdR2+x578803RatWrUpcZmV6/+7fvy9iYmJETEyMACDmzJkjYmJixPXr14UQhrEParuN+rYPart9+rYPCqH9Nj6mD/vh6NGjhbW1tdi9e7fa5y0nJ0c1TWXdD1ncPMOCBQuEu7u7MDU1Ff7+/mqXvw0ZMkQEBwerTb97927h5+cnTE1NhYeHh1i0aFGxZa5bt054e3sLhUIhfHx81HZaOWizjcHBwQJAsceQIUNU00yYMEHUrl1bmJqaCgcHBxESEiIOHDhQgVukTpvtmz17tvDy8hJKpVLUqFFDtG3bVmzZsqXYMivTe6jtZ/TevXvC3NxcLFmypMTlVab37/FlwaV93gxhH9R2G/VtH9R2+/RxHyzL51Rf9sOStguAWL58uWqayrofSv/bACIiIiKDwD43REREZFBY3BAREZFBYXFDREREBoXFDRERERkUFjdERERkUFjcEBERkUFhcUNEREQGhcUNEekNDw8PzJ07V/VckiRs3ry5QtZFRPqDxQ0Rae3AgQMwNjZGt27dZM2RlJSE0NBQAEB8fDwkScLJkydlzVSSt99+G8bGxlizZo3cUYiqBBY3RKS1ZcuW4b333sO+ffuQkJAgWw5nZ2eYmZnJtn5N5OTkYO3atfjPf/6DiIgIueMQVQksbohIK9nZ2fj9998xevRo9OzZEytWrFB7fffu3ZAkCTt27ICfnx/Mzc3RqVMnpKSkYNu2bfD19YWVlRVef/115OTkqObr0KEDxo4di7Fjx8LGxgZ2dnb473//i2fdIebJ01KP71js5+cHSZLQoUMH1XInTJigNl9YWBiGDh2qep6SkoJevXrB3Nwcnp6eWLVqVbF1ZWRk4O2334ajoyOsrKzQqVMnnDp16rm/r3Xr1qFBgwaYMmUK9u/fj/j4+OfOQ0QvhsUNEWll7dq18Pb2hre3N958800sX768xAJk+vTp+OGHH3DgwAEkJibitddew9y5c7F69Wps2bIFkZGRmD9/vto8P//8M0xMTHD48GHMmzcP3333HZYuXapRriNHjgAA/v33XyQlJWHjxo0ab9PQoUMRHx+PXbt2Yf369Vi4cCFSUlJUrwsh0KNHDyQnJ2Pr1q04fvw4/P390blzZ6Snpz9z2REREXjzzTdhbW2N7t27Y/ny5RrnIqKyYXFDRFp5/GUNAN26dUNWVhZ27txZbLrPPvsMbdq0gZ+fH0aMGIHo6GgsWrQIfn5+aNeuHfr164eoqCi1edzc3PDdd9/B29sbb7zxBt577z189913GuVycHAAANjZ2cHZ2Rm2trYazRcXF4dt27Zh6dKlCAwMREBAACIiIvDgwQPVNFFRUThz5gzWrVuH5s2bo169evjmm29gY2OD9evXl7rsS5cu4dChQ+jfvz8AqIrBoqIijbIRUdmwuCEijV28eBFHjhzBgAEDAAAmJibo378/li1bVmzaJk2aqH52cnKChYUF6tSpo9b25NERAGjdujUkSVI9DwwMxKVLl1BYWKjrTVGJjY2FiYkJmjdvrmrz8fGBjY2N6vnx48eRlZUFOzs7VK9eXfW4du0arly5UuqyIyIi0LVrV9jb2wMAunfvjuzsbPz777/ltj1EBJjIHYCI9EdERAQKCgpQs2ZNVZsQAgqFAnfv3kWNGjVU7QqFQvWzJElqzx+3VcQRDCMjo2KnzfLz81U/P37tyaLqaUVFRXBxccHu3buLvfZkEfSkwsJCrFy5EsnJyTAxMVFrj4iIQEhIiBZbQUTaYHFDRBopKCjAypUr8e233xb7Yu7bty9WrVqFsWPHvtA6Dh06VOx5vXr1YGxs/Nx5TU1NAaDYUR4HBwckJSWpnhcWFuLs2bPo2LEjAMDX1xcFBQU4duwYWrZsCeDREap79+6p5vH391cVKR4eHhpty9atW3H//n3ExMSo5b9w4QLeeOMNpKWlwc7OTqNlEZF2eFqKiDTy999/4+7duxgxYgQaNWqk9ujXr59OLnNOTExEeHg4Ll68iN9++w3z58/H+PHjNZrX0dER5ubm2L59O27fvo2MjAwAQKdOnbBlyxZs2bIFFy5cwJgxY9QKF29vb3Tr1g1vvfUWDh8+jOPHj2PkyJEwNzdXTdOlSxcEBgYiLCwMO3bsQHx8PA4cOID//ve/OHbsWIl5IiIi0KNHDzRt2lTtd9W3b184ODjg119/LfsvioieicUNEWkkIiICXbp0gbW1dbHX+vbti5MnT+LEiRMvtI7BgwfjwYMHaNmyJd5991289957ePvttzWa18TEBPPmzcOPP/4IV1dX9OnTBwAwfPhwDBkyBIMHD0ZwcDA8PT1VR20eW758Odzc3BAcHIxXXnlFdcn3Y5IkYevWrWjfvj2GDx+O+vXrY8CAAYiPj4eTk1OxLLdv38aWLVvQt2/fYq9JkoRXXnmFY94QlSNJPGsQCSKiCtKhQwc0a9aMtzwgohfGIzdERERkUFjcEBERkUHhaSkiIiIyKDxyQ0RERAaFxQ0REREZFBY3REREZFBY3BAREZFBYXFDREREBoXFDRERERkUFjdERERkUFjcEBERkUFhcUNEREQG5f8AfW3t3fTRr0QAAAAASUVORK5CYII=\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -107,14 +111,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -135,26 +137,22 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -191,14 +189,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABxoklEQVR4nO3dd1RU1/428GeAgQGkdxQBG8WCiBXsGhR7NFdMYkExiWnWFDXFkkTE5BpLoiavIDEx9hITK/aGDQGjYBdBBRFREAt1v394mZ8joDM4eBh4PmvNWrJnnzPPZuYwX0/ZRyaEECAiIiKqQfSkDkBERET0qrEAIiIiohqHBRARERHVOCyAiIiIqMZhAUREREQ1DgsgIiIiqnFYABEREVGNwwKIiIiIahwWQERERFTjsACqxqKioiCTyZQPhUIBR0dHdOnSBWFhYcjIyJA64nNNnz4dMplMpc3NzQ19+vR54bLJycmQyWSIioqqpHTPFxcXh06dOsHCwgIymQzz5s2TJAcA3Lx5E9OnT0d8fHyp58r6Hb8qWVlZGDJkCOzt7SGTyTBgwABJcrxqiYmJmD59OpKTkyXN8fDhQ0yfPh379u0r9VzJ3w6pM75qISEhcHNzU2lzc3NDSEiIJHk0sW/fPshkMpX3c+vWrZg+fbpkmao6A6kDUOVbtmwZPD09UVBQgIyMDBw6dAjh4eH44YcfsHr1anTv3l3qiGUaPXo0evbsWaFlnZycEBMTg/r162s5lXpGjRqFBw8eYNWqVbCysir1R/VVunnzJmbMmAE3Nzc0b95c5bmX+R2/rG+++QYbN25EZGQk6tevD2tra0lyvGqJiYmYMWMGOnfuLOnn4uHDh5gxYwYAoHPnzirP9e7dGzExMXBycpIgWdWyceNGmJubSx3jhVq0aIGYmBh4e3sr27Zu3Yqff/6ZRVA5WADVAE2aNEHLli2VPw8aNAgTJkxA+/btMXDgQFy8eBEODg4SJlT18OFDmJiYoE6dOqhTp06F1mFkZIS2bdtqOZn6zpw5g3feeQdBQUGSZVDHy/yOX9aZM2dQv359vP3221pZnxACjx8/hrGxsVbWp2sKCgogk8lgYPDyf9bt7OxgZ2enhVS6z9fXV+oIz1Xyvpubm0v6N08nCaq2li1bJgCIEydOlPn8mjVrBAAxY8YMlfYTJ06Ivn37CisrK2FkZCSaN28uVq9erdLnwYMHYtKkScLNzU0YGRkJKysr4efnJ/7880+VfkePHhV9+vQR1tbWwsjISNSrV0+MGzdO+fy0adMEABEbGysGDRokLC0thaOjo8pzT3N1dRW9e/cWGzZsEE2bNhVGRkbC3d1dzJ8/X6Xf1atXBQCxbNmyUq915swZMWTIEGFubi7s7e3FyJEjxb1791SWv3v3rhg1apSwsrISpqamolevXuLy5csCgJg2bdoLf+fPPsobz9PLXL16tdQ4t23bJnx9fYVCoRAeHh4iIiKi1PLXr18X77zzjqhTp46Qy+XCyclJDBo0SKSnp4u9e/eWmadkDGVlKioqEuHh4cLDw0MYGhoKOzs7MWzYMJGamqrSr1OnTqJx48bi+PHjon379sLY2Fi4u7uLsLAwUVRUVO7vqOS9efaxd+9eIYQQd+7cEe+//75wdnYWcrlcuLu7i6lTp4rHjx+rrAeA+PDDD8XixYuFp6enkMvlYvHixeW+7qpVq8Rrr70mHB0dhUKhEJ6enuLzzz8Xubm55S5TQp3P+4kTJ0RwcLBwdXUVCoVCuLq6iiFDhojk5GRln/I+HyWfU1dXVzFixIhSr9+pUyfRqVMn5c8l7+vy5cvFxIkThbOzs5DJZCIpKUlkZGSI999/X3h5eQlTU1NhZ2cnunTpIg4cOPDC96Dktcv6TAohREREhGjWrJnydzBgwACRmJio0mfEiBHC1NRUXLx4UQQFBQlTU1NRp04dMXHixFLvYVk0+ez/+++/ol+/fsLS0lIYGRkJHx8fERUVpdKn5Hf1559/iqlTpwonJydhZmYmunXrJs6dO1cqu6ura6k8T78nmqxPCCGio6NF165dhZmZmTA2Nhb+/v5i165dKn0uXrwoQkJCRIMGDYSxsbFwdnYWffr0EadPny5zLGW97yXPlWxHI0aMKPM9vnr1qujatavw8PAQxcXFKusvLi4W9evXF7169SrzvaluuAeoBuvVqxf09fVx4MABZdvevXvRs2dPtGnTBkuWLIGFhQVWrVqF4OBgPHz4UHksfOLEifj999/x7bffwtfXFw8ePMCZM2dw584d5bp27NiBvn37wsvLC3PnzkXdunWRnJyMnTt3lsoycOBADBkyBGPGjMGDBw+emzs+Ph7jx4/H9OnT4ejoiBUrVmDcuHHIz8/HJ5988sJxDxo0CMHBwQgNDcW///6LKVOmAAAiIyMBAMXFxejbty9OnjyJ6dOnK3ctq3OoqOTQQbt27fDGG29g0qRJL1ymPAkJCZg0aRImT54MBwcHLF26FKGhoWjQoAE6duwIALhx4wZatWqFgoICTJ06Fc2aNcOdO3ewY8cO3L17Fy1atMCyZcswcuRIfPnll+jduzcAPHevz/vvv49ff/0VH330Efr06YPk5GR89dVX2LdvH06dOgVbW1tl3/T0dLz99tuYNGkSpk2bho0bN2LKlClwdnbG8OHDy1x/yeHJDz74ANnZ2VixYgUAwNvbG48fP0aXLl1w+fJlzJgxA82aNcPBgwcRFhaG+Ph4bNmyRWVdmzZtwsGDB/H111/D0dER9vb25Y7r4sWL6NWrF8aPHw9TU1OcO3cO4eHhOH78OPbs2fPc90Kdz3tycjI8PDwwZMgQWFtbIy0tDYsXL0arVq2QmJgIW1tb9O7dG7NmzcLUqVPx888/o0WLFgBQ4UO1U6ZMQbt27bBkyRLo6enB3t4et2/fBgBMmzYNjo6OyM3NxcaNG9G5c2fs3r0bnTt3hpOTE7Zv346ePXsiNDQUo0ePBoDn7vUJCwvD1KlT8eabbyIsLAx37tzB9OnT0a5dO5w4cQINGzZU9i0oKEC/fv0QGhqKSZMm4cCBA/jmm29gYWGBr7/++oXjUuezf/78efj7+8Pe3h4LFiyAjY0N/vjjD4SEhODWrVv47LPPVNY5depUBAQEYOnSpcjJycHnn3+Ovn37IikpCfr6+hr/7tVZ3x9//IHhw4ejf//++O233yCXy/HLL7+gR48e2LFjB7p16wbgyWFqGxsbzJ49G3Z2dsjKysJvv/2GNm3aIC4uDh4eHiqvXdb7np6ertLnq6++woMHD7Bu3TrExMQo252cnDBu3Dj0798fu3fvVjkFYtu2bbh8+TIWLFig8e9DJ0ldgVHledEeICGEcHBwEF5eXsqfPT09ha+vrygoKFDp16dPH+Hk5KT8n32TJk3EgAEDnvv69evXF/Xr1xePHj0qt0/JHoivv/663Oee5urqKmQymYiPj1dpf+2114S5ubl48OCBEOL5e4DmzJmjsuwHH3wgFAqF8n9DW7ZsEQBK7U0ICwt74R6gEvjf3okXjUeI8vcAKRQKce3aNWXbo0ePhLW1tXjvvfeUbaNGjRJyubzU/8KfduLEiVK/i/IyJSUlCQDigw8+UOl37NgxAUBMnTpV2dapUycBQBw7dkylr7e3t+jRo0e5eZ5evnHjxiptS5YsEQDEmjVrVNrDw8MFALFz505lGwBhYWEhsrKyXvhazyouLhYFBQVi//79AoBISEh4bn91Pu/PKiwsFLm5ucLU1FRlD+XatWtV/qf+NE33AHXs2FGtHAUFBaJbt27i9ddfV7bfvn273M/zs5/Ju3fvCmNj41J7BlJSUoSRkZF46623lG0lex6efQ979eolPDw8XphX3c/+kCFDhJGRkUhJSVFZPigoSJiYmCj36pb8rp7NXrIHPCYmRiW7unuAXrS+Bw8eCGtra9G3b1+VfkVFRcLHx0e0bt263N9BYWGhyM/PFw0bNhQTJkwo9dplve/P7gESQogPP/ywzL85RUVFol69eqJ///4q7UFBQaJ+/fql9gxVV7wKrIYTQij/fenSJZw7d055TkZhYaHy0atXL6SlpeH8+fMAgNatW2Pbtm2YPHky9u3bh0ePHqms98KFC7h8+TJCQ0OhUChemGPQoEFqZ27cuDF8fHxU2t566y3k5OTg1KlTL1y+X79+Kj83a9YMjx8/Vl4Vt3//fgDA4MGDVfq9+eabamfUhubNm6Nu3brKnxUKBRo1aoRr164p27Zt24YuXbrAy8tLK6+5d+9eACh11Uvr1q3h5eWF3bt3q7Q7OjqidevWKm3NmjVTyaiJPXv2wNTUFG+88YZKe0meZ1+/a9eusLKyUmvdV65cwVtvvQVHR0fo6+tDLpejU6dOAICkpKTnLvuizzsA5Obm4vPPP0eDBg1gYGAAAwMD1KpVCw8ePHjh+iuqvO1myZIlaNGiBRQKBQwMDCCXy7F79+4K54iJicGjR49KfS5cXFzQtWvXUu+LTCZD3759Vdo0+Vyo89nfs2cPunXrBhcXF5VlQ0JC8PDhQ5W9HkDZ2z2ACn9WX7S+I0eOICsrCyNGjFD5W1pcXIyePXvixIkTyr3dhYWFmDVrFry9vWFoaAgDAwMYGhri4sWLZb5nmvy9LIuenh4++ugj/PPPP0hJSQEAXL58Gdu3b8cHH3wg2ZWhrxoLoBrswYMHuHPnDpydnQEAt27dAgB88sknkMvlKo8PPvgAAJCZmQkAWLBgAT7//HNs2rQJXbp0gbW1NQYMGICLFy8CgHI3vLon2GpytYmjo2O5bU8fkiiPjY2Nys9GRkYAoPxSu3PnDgwMDEpdlfSqTxR/NifwJOvTX763b9/W6knMJb+/st4PZ2fnUr9fdTJq+vqOjo6l/gDb29vDwMCg1Our+7nJzc1Fhw4dcOzYMXz77bfYt28fTpw4gQ0bNgDAC/O+6PMOPCnCf/rpJ4wePRo7duzA8ePHceLECdjZ2VX49/EiZY1/7ty5eP/999GmTRusX78eR48exYkTJ9CzZ8+Xel/Ke72yPhcmJial/uNjZGSEx48fq/V66nyu7ty5U26epzOXt85nt3tNvWh9JX9P33jjjVJ/T8PDwyGEQFZWFoAnh1i/+uorDBgwAH///TeOHTuGEydOwMfHp8x82rg6b9SoUTA2NsaSJUsAAD///DOMjY0xatSol163ruA5QDXYli1bUFRUpLwEtuTcjilTpmDgwIFlLlNyLNrU1BQzZszAjBkzcOvWLeX/jvv27Ytz584pzyW4fv26Wlk0+R/Hs8e6n24r6w+npmxsbFBYWIisrCyVIqis19VEyRdCXl6e8o8l8H9FZUXY2dmp/TtWR8nvLy0trVRhdfPmTZXzfyqDjY0Njh07BiGEymciIyMDhYWFpV5f3c/Nnj17cPPmTezbt0+51wcA7t27p9byL/q8Z2dn459//sG0adMwefJk5XJ5eXnKLzl1KBQK5OXllWrPzMws83df1vj/+OMPdO7cGYsXL1Zpv3//vto5nvX05+JZr+JzURYbG5ty8wCQJNPTSl5/4cKF5V6dVfKfqpJzhWbNmqXyfGZmJiwtLUstp409NBYWFhgxYgSWLl2KTz75BMuWLcNbb71V5utVV9wDVEOlpKTgk08+gYWFBd577z0AT4qbhg0bIiEhAS1btizzYWZmVmpdDg4OCAkJwZtvvonz58/j4cOHaNSoEerXr4/IyMgy/6C/jLNnzyIhIUGl7c8//4SZmZnypNKXUfIFuXr1apX2VatWvdR6S+Z8OX36tEr733//XeF1BgUFYe/evcpDk2XR5H+6Xbt2BfDkD/LTTpw4gaSkJOVJm5WlW7duyM3NxaZNm1Taly9frny+Ikq+MJ4uPAHgl19+0XhdZX3eZTIZhBCl1r906VIUFRWptD3v/XBzcyv1+bhw4cJz399nyWSyUjlOnz5d6pCQJp+Ldu3awdjYuNTn4vr168pDUa9at27dlIXt05YvXw4TExPJLwkPCAiApaUlEhMTy/17amhoCKDs92zLli24cePGS2V40Xs8duxYZGZm4o033sC9e/fw0UcfvdTr6RruAaoBzpw5ozz+nJGRgYMHD2LZsmXQ19fHxo0bVa78+OWXXxAUFIQePXogJCQEtWvXRlZWFpKSknDq1CmsXbsWANCmTRv06dMHzZo1g5WVFZKSkvD777+jXbt2MDExAfBkl2rfvn3Rtm1bTJgwAXXr1kVKSgp27NihvPKnIpydndGvXz9Mnz4dTk5O+OOPPxAdHY3w8HDla7+Mnj17IiAgAJMmTUJOTg78/PwQExOj/BLW06vY/xt69eoFa2trhIaGYubMmTAwMEBUVBRSU1MrnHXmzJnYtm0bOnbsiKlTp6Jp06a4d+8etm/fjokTJ8LT0xP169eHsbExVqxYAS8vL9SqVQvOzs7KQwVP8/DwwLvvvouFCxdCT08PQUFByqvAXFxcMGHChApnVcfw4cPx888/Y8SIEUhOTkbTpk1x6NAhzJo1C7169arwpJ3+/v6wsrLCmDFjMG3aNMjlcqxYsaJUIV0edT7vHTt2xPfffw9bW1u4ublh//79iIiIKPU/6iZNmgAAfv31V5iZmUGhUMDd3R02NjYYNmwYhg4dig8++ACDBg3CtWvXMGfOHI3m5OnTpw+++eYbTJs2DZ06dcL58+cxc+ZMuLu7o7CwUNnPzMwMrq6u+Ouvv9CtWzdYW1srsz/L0tISX331FaZOnYrhw4fjzTffxJ07dzBjxgwoFApMmzZN7XzaMm3aNPzzzz/o0qULvv76a1hbW2PFihXYsmUL5syZAwsLi1ee6Wm1atXCwoULMWLECGRlZeGNN95QXqWXkJCA27dvK/fS9enTB1FRUfD09ESzZs0QGxuL77///qUPbzdt2hQAEB4ejqCgIOjr66NZs2bKwqtRo0bo2bMntm3bhvbt25c6t7Lak/YcbKpMz845YmhoKOzt7UWnTp3ErFmzREZGRpnLJSQkiMGDBwt7e3shl8uFo6Oj6Nq1q1iyZImyz+TJk0XLli2VcwXVq1dPTJgwQWRmZqqsKyYmRgQFBQkLCwthZGQk6tevr3JVQ8lVSLdv3y6V43nzAK1bt040btxYGBoaCjc3NzF37lyVfs+7CuzZ1yrrKqysrCwxcuRIYWlpKUxMTMRrr70mjh49KgCUmnOoLCjjKjAhhDh+/Ljw9/cXpqamonbt2mLatGli6dKl5c4D9KxnrwYSQojU1FQxatQo4ejoKORyuXB2dhaDBw8Wt27dUvZZuXKlcq4cqDkPUKNGjYRcLhe2trZi6NCh5c4D9KyyrqQpS3nL37lzR4wZM0Y4OTkJAwMD4erqKqZMmVLuPEDqOnLkiGjXrp0wMTERdnZ2YvTo0eLUqVPlXiH3NHU+79evXxeDBg0SVlZWwszMTPTs2VOcOXOmzCu75s2bJ9zd3YW+vr7K6xcXF4s5c+aIevXqCYVCIVq2bCn27NlT7lVga9euLZU1Ly9PfPLJJ6J27dpCoVCIFi1aiE2bNpX5vuzatUv4+voKIyMjteYBWrp0qWjWrJkwNDQUFhYWon///uLs2bMqfUrmAXpWeVdBPkuTz/6///4r+vbtKywsLIShoaHw8fEp9V6W97sq62+EJleBqbM+IYTYv3+/6N27t7C2thZyuVzUrl1b9O7dW2X5u3fvitDQUGFvby9MTExE+/btxcGDBzV638u6CiwvL0+MHj1a2NnZCZlMVuZ7GhUVJQCIVatWlVpndScT4qnLgIioXH/++SfefvttHD58GP7+/lLHISJ6aYMGDcLRo0eRnJwMuVwudZxXiofAiMqwcuVK3LhxA02bNoWenh6OHj2K77//Hh07dmTxQ0Q6LS8vD6dOncLx48exceNGzJ07t8YVPwDAPUBEZfjnn38wffp0XLp0CQ8ePICTkxMGDBiAb7/9VidujEhEVJ7k5GS4u7vD3NxcOX1DRWbD1nUsgIiIiKjG4WXwREREVOOwACIiIqIahwUQERER1Ti8CqwMxcXFuHnzJszMzGrMTeGIiIh0nRAC9+/fh7Oz8wsnrWUBVIabN2+WusMwERER6YbU1NQXzqTNAqgMJfe7Sk1N5SXPREREOiInJwcuLi5l3rfyWSyAylBy2Mvc3JwFEBERkY5R5/QVngRNRERENQ4LICIiIqpxWAARERFRjcMCiIiIiGocFkBERERU47AAIiIiohqHBRARERHVOCyAiIiIqMZhAUREREQ1DgsgIiIiqnEkLYAOHDiAvn37wtnZGTKZDJs2bXrhMvv374efnx8UCgXq1auHJUuWlOqzfv16eHt7w8jICN7e3ti4cWMlpCciIiJdJWkB9ODBA/j4+OCnn35Sq//Vq1fRq1cvdOjQAXFxcZg6dSrGjh2L9evXK/vExMQgODgYw4YNQ0JCAoYNG4bBgwfj2LFjlTUMIiIi0jEyIYSQOgTw5MZlGzduxIABA8rt8/nnn2Pz5s1ISkpSto0ZMwYJCQmIiYkBAAQHByMnJwfbtm1T9unZsyesrKywcuVKtbLk5OTAwsIC2dnZWr0Zal5hEW7fz9Pa+ojoxfRkMjiaK6Cn9+KbIxKRbtPk+1un7gYfExODwMBAlbYePXogIiICBQUFkMvliImJwYQJE0r1mTdvXrnrzcvLQ17e/xUmOTk5Ws1d4uzNHAxcdKRS1k1E5bOtZYTXvB3Qo7ED/OvbwtCApz8S1XQ6VQClp6fDwcFBpc3BwQGFhYXIzMyEk5NTuX3S09PLXW9YWBhmzJhRKZmfJgNgxD+8RK9UUbFAZm4eVh5PwcrjKTAzMkAXT3sENnZAZw971DLSqT+DRKQlOrfly2Squ7FLjuA93V5Wn2fbnjZlyhRMnDhR+XNOTg5cXFy0EVeFb10rnP82SOvrJaLy5RcWI+bKHew8m46dibdw+34eNifcxOaEmzA00EP7BrYI9HZAUFMnWBjLpY5LRK+IThVAjo6OpfbkZGRkwMDAADY2Ns/t8+xeoacZGRnByMhI+4GJSHKGBnro1MgOnRrZ4Zv+TRCXeg87z6Zjx9l0JN95iD3nMrDnXAZ+3ncJmz4IgE0t/i0gqgl06nhMu3btEB0drdK2c+dOtGzZEnK5/Ll9/P39X1lOIqqa9PRk8HO1wpReXtj7SWfsnNARk15rBCcLBVKzHuH9FadQUFQsdUwiegUkLYByc3MRHx+P+Ph4AE8uc4+Pj0dKSgqAJ4emhg8fruw/ZswYXLt2DRMnTkRSUhIiIyMRERGBTz75RNln3Lhx2LlzJ8LDw3Hu3DmEh4dj165dGD9+/KscGhFVcTKZDI0czPBxt4b4PbQ1ahkZ4PjVLMz8O1HqaET0CkhaAJ08eRK+vr7w9fUFAEycOBG+vr74+uuvAQBpaWnKYggA3N3dsXXrVuzbtw/NmzfHN998gwULFmDQoEHKPv7+/li1ahWWLVuGZs2aISoqCqtXr0abNm1e7eCISGc0sDfDvODmkMmA349ew5/HUl68EBHptCozD1BVUlnzABFR1fbz3kv4fsd5yPVl+POdtmjlZi11JCLSgCbf3zp1DhARUWX6oHN99G7qhIIigff/iMXNe4+kjkRElYQFEBHR/8hkMnz/n2bwcjJHZm4+3v39JB7lF0kdi4gqAQsgIqKnmBga4NdhfrA2NcSZGzn4fP1p8EwBouqHBRAR0TNcrE2w6O0WMNCTYXPCTfxy4IrUkYhIy1gAERGVoW09G0zr6w0ACN9+DnvPZUiciIi0iQUQEVE5hrZ1xZutXSAEMHZVHC7fzpU6EhFpCQsgIqJyyGQyzOjXBC1drXD/cSHeWX4SD/MLpY5FRFrAAoiI6DkMDfSweKgfHM0VuHL7Aebtuih1JCLSAhZAREQvYGdmhFkDmwAAlh68gn+vZ0uciIheFgsgIiI1dPV0QD8fZxQL4PP1p3nTVCIdxwKIiEhNX/f1hqWJHIlpOVh68KrUcYjoJbAAIiJSk20tI3zV+8ml8fN2XcDVzAcSJyKiimIBRESkgYEtaqNDQ1vkFRZjygbOEk2kq1gAERFpQCaTYdbrTWEs18fRK1lYczJV6khEVAEsgIiINORibYJJgY0AAN9tSUJGzmOJExGRplgAERFVQIi/G5rVsUDO40JM//us1HGISEMsgIiIKsBAXw+zBzaDvp4MW/9Nx46z6VJHIiINsAAiIqogb2dzvNexHgDg67/OIOdxgcSJiEhdLICIiF7C2G4N4W5rils5eZi97ZzUcYhITSyAiIhegkKuj7CBTQEAfx5LwbErdyRORETqYAFERPSS2tazwZutXQAAUzb8i8cFRRInIqIXYQFERKQFk4O8YGdmhCuZD7D04BWp4xDRC7AAIiLSAgtjOb7s7QUAWLTvMm5xbiCiKo0FEBGRlvTzcUaLupZ4mF+E8O08IZqoKmMBRESkJTKZDNP6NgYAbDh1A/Gp96QNRETlYgFERKRFPi6WGNiiNgBg5t9nebNUoiqKBRARkZZ93tMTJob6OJVyD5sTbkodh4jKwAKIiEjLHMwV+LBLAwBA2NZzeJhfKHEiInoWCyAiokoQ2t4ddayMkZ7zGEv287J4oqqGBRARUSVQyPUxtdeTy+J/2X8ZN+49kjgRET2NBRARUSUJauKI1u7WyCss5n3CiKoYFkBERJVEJpPh6z7ekMmAvxNu4mRyltSRiOh/JC+AFi1aBHd3dygUCvj5+eHgwYPP7f/zzz/Dy8sLxsbG8PDwwPLly1Wej4qKgkwmK/V4/JizshLRq9ektgWCWz65T9iMvxNRXMzL4omqAkkLoNWrV2P8+PH44osvEBcXhw4dOiAoKAgpKSll9l+8eDGmTJmC6dOn4+zZs5gxYwY+/PBD/P333yr9zM3NkZaWpvJQKBSvYkhERKVMCvRALSMD/HsjG+tPXZc6DhFB4gJo7ty5CA0NxejRo+Hl5YV58+bBxcUFixcvLrP/77//jvfeew/BwcGoV68ehgwZgtDQUISHh6v0k8lkcHR0VHkQEUnFzswIH3d9cln8nB3nkZvHy+KJpCZZAZSfn4/Y2FgEBgaqtAcGBuLIkSNlLpOXl1dqT46xsTGOHz+OgoICZVtubi5cXV1Rp04d9OnTB3Fxcc/NkpeXh5ycHJUHEZE2hQS4wdXGBLfv52HR3ktSxyGq8SQrgDIzM1FUVAQHBweVdgcHB6Snp5e5TI8ePbB06VLExsZCCIGTJ08iMjISBQUFyMzMBAB4enoiKioKmzdvxsqVK6FQKBAQEICLFy+WmyUsLAwWFhbKh4uLi/YGSkQEwMhAH1/877L4pYeuIjXrocSJiGo2yU+ClslkKj8LIUq1lfjqq68QFBSEtm3bQi6Xo3///ggJCQEA6OvrAwDatm2LoUOHwsfHBx06dMCaNWvQqFEjLFy4sNwMU6ZMQXZ2tvKRmpqqncERET3lNW8HBDSwQX5hMWbzbvFEkpKsALK1tYW+vn6pvT0ZGRml9gqVMDY2RmRkJB4+fIjk5GSkpKTAzc0NZmZmsLW1LXMZPT09tGrV6rl7gIyMjGBubq7yICLSNplMhi97P7ksfsvpNN4tnkhCkhVAhoaG8PPzQ3R0tEp7dHQ0/P39n7usXC5HnTp1oK+vj1WrVqFPnz7Q0yt7KEIIxMfHw8nJSWvZiYgqysvJHINa1AEAzNqaxLvFE0nEQMoXnzhxIoYNG4aWLVuiXbt2+PXXX5GSkoIxY8YAeHJo6saNG8q5fi5cuIDjx4+jTZs2uHv3LubOnYszZ87gt99+U65zxowZaNu2LRo2bIicnBwsWLAA8fHx+PnnnyUZIxHRsya+1gh/J9zE8atZ2J2Uge7eZe/1JqLKI2kBFBwcjDt37mDmzJlIS0tDkyZNsHXrVri6ugIA0tLSVOYEKioqwn//+1+cP38ecrkcXbp0wZEjR+Dm5qbsc+/ePbz77rtIT0+HhYUFfH19ceDAAbRu3fpVD4+IqEzOlsYY1d4di/ddxuzt59DZww4G+pKfkklUo8gE97+WkpOTAwsLC2RnZ/N8ICKqFDmPC9Bpzl7cfViAsIFN8WbrulJHItJ5mnx/878cREQSMFfI8XHXhgCAudEX8ICTIxK9UiyAiIgkMrStK+paP5kccenBq1LHIapRWAAREUnE0EAPn/X0AAD8cuAybt/PkzgRUc3BAoiISEK9mzrBp44FHuYXYf7uC1LHIaoxWAAREUlIJpNhyv9ukbHyeCou386VOBFRzcACiIhIYm3r2aC7lz2KigXCt/EWGUSvAgsgIqIq4POentCTATsTb+FEcpbUcYiqPRZARERVQEMHMwS3cgHAW2QQvQosgIiIqogJ3RvBWK6PuJR72H4m/cULEFGFsQAiIqoi7M0VeKdjPQBA+PZzKCgqljgRUfXFAoiIqAp5t2M92NYyRPKdh/jzWMqLFyCiCmEBRERUhdQyMsC47o0AAAt2X0Qub5FBVClYABERVTFDWrnAzcYEdx7kI/IQb5FBVBlYABERVTFyfT1MCnxyi4xfD1zBnVzeIoNI21gAERFVQb2bOqGxszly8wqxaN9lqeMQVTssgIiIqiA9PRk+6+kJAPg95hpu3HskcSKi6oUFEBFRFdWxoS3a1bNBflEx5kXzRqlE2sQCiIioipLJZPis55Nzgdafuo6Lt+5LnIio+mABRERUhfnWtUKPxg4oFsD3O85LHYeo2mABRERUxX3aw0N5o9RTKXeljkNULbAAIiKq4hrYm+ENvzoAgPBt53ijVCItYAFERKQDxnVvBEMDPRy7moUDFzOljkOk81gAERHpgNqWxhje1hXAk71AxcXcC0T0MlgAERHpiA+7NICZkQES03Lwz79pUsch0mksgIiIdISVqSHe7VgPAPDfnedRUFQscSIi3cUCiIhIh4xq7w7bWka4duchVp9IlToOkc5iAUREpENMjQwwtlsDAMD83RfxML9Q4kREuokFEBGRjhnSqi5crI1x+34elh1OljoOkU5iAUREpGMMDfQw6bUnt8hYsv8y7j7IlzgRke5hAUREpIP6+TjD09EM9x8XYsn+y1LHIdI5LICIiHSQnp4Mn/f0BABEHUlGWvYjiRMR6RYWQEREOqqzhx1au1sjr7AY83ddlDoOkU7RuADKy8vDwYMH8fvvv+OXX37Bhg0bcPXq1QoHWLRoEdzd3aFQKODn54eDBw8+t//PP/8MLy8vGBsbw8PDA8uXLy/VZ/369fD29oaRkRG8vb2xcePGCucjIqqqZLL/2wu05mQqLmXkSpyISIcINR0+fFgMGTJEKBQKoaenJ6ytrUXt2rWFsbGx0NPTEw0aNBBz5swROTk56q5SrFq1SsjlcvH//t//E4mJiWLcuHHC1NRUXLt2rcz+ixYtEmZmZmLVqlXi8uXLYuXKlaJWrVpi8+bNyj5HjhwR+vr6YtasWSIpKUnMmjVLGBgYiKNHj6qdKzs7WwAQ2dnZai9DRCSV0b+dEK6f/yPeW35S6ihEktLk+1smxItvK9y/f3+cOHECb731Fvr164eWLVvCxMRE+fyVK1dw8OBBrFy5EgkJCVi+fDlee+21FxZfbdq0QYsWLbB48WJlm5eXFwYMGICwsLBS/f39/REQEIDvv/9e2TZ+/HicPHkShw4dAgAEBwcjJycH27ZtU/bp2bMnrKyssHLlyhdmAoCcnBxYWFggOzsb5ubmai1DRCSVC7fuo+e8AygWwKYPA9DcxVLqSESS0OT7W61DYIGBgUhOTsYPP/yAjh07qhQ/AFCvXj2MGDEC27dvx65du9QKmZ+fj9jYWAQGBpZ6rSNHjpS5TF5eHhQKhUqbsbExjh8/joKCAgBATExMqXX26NGj3HWWrDcnJ0flQUSkKxo5mGFgizoAntwoVY3/1xLVeGoVQB9++CEMDQ1f2K+wsBCNGzdWa+9PZmYmioqK4ODgoNLu4OCA9PT0Mpfp0aMHli5ditjYWAghcPLkSURGRqKgoACZmZkAgPT0dI3WCQBhYWGwsLBQPlxcXF6Yn4ioKpnwWiMY6ush5sodHLyYKXUcoipPK1eBJSYmYuLEiahdu7bGy8pkMpWfhRCl2kp89dVXCAoKQtu2bSGXy9G/f3+EhIQAAPT19Su0TgCYMmUKsrOzlY/UVN5fh4h0S21LYwxr5woACN9+DsXF3AtE9DwVLoByc3OxdOlStGvXDs2aNcPx48cxefJktZe3tbWFvr5+qT0zGRkZpfbglDA2NkZkZCQePnyI5ORkpKSkwM3NDWZmZrC1tQUAODo6arROADAyMoK5ubnKg4hI13zYpQHMjAxw9mYO/vk3Teo4RFWaxgXQoUOHEBISAicnJyxYsAAnTpzA/v37cejQIUyYMEHt9RgaGsLPzw/R0dEq7dHR0fD393/usnK5HHXq1IG+vj5WrVqFPn36QE/vyVDatWtXap07d+584TqJiHSdtakh3u1YDwDw353nUVBULHEioqpL7QJozpw58PT0xJAhQ2BnZ4dDhw7h9OnTkMlksLKyqtCLT5w4EUuXLkVkZCSSkpIwYcIEpKSkYMyYMQCeHJoaPny4sv+FCxfwxx9/4OLFizh+/DiGDBmCM2fOYNasWco+48aNw86dOxEeHo5z584hPDwcu3btwvjx4yuUkYhIl4xq7w7bWka4duchVp3g4Xyi8qhdAE2dOhWDBg3CtWvX8P3338PHx+elXzw4OBjz5s3DzJkz0bx5cxw4cABbt26Fq+uT49hpaWlISUlR9i8qKsJ///tf+Pj44LXXXsPjx49x5MgRuLm5Kfv4+/tj1apVWLZsGZo1a4aoqCisXr0abdq0eem8RERVnamRAcZ2awAAWLD7Ih7mF0qciKhqUmseIACYNWsWoqKi8PjxY7z55psYNmwYmjRpArlcjoSEBHh7e1d21leG8wARkS7LLyxG97n7kZL1EJ/28MCHXRpIHYnoldD6PEDAkz1AFy5cwO+//4709HS0bdsWPj4+EELg7t27Lx2aiIi0w9BAD5MCGwEAluy7jLsP8iVORFT1aHwSdKdOnfDbb78hLS0N77//Pvz8/NCpUyf4+/tj7ty5lZGRiIg01LeZM7yczHE/rxCL91+WOg5RlVPhy+DNzMwwZswYHDt2DHFxcWjdujVmz56tzWxERFRBenoyfNbTAwAQdSQZN+49kjgRUdWilYkQmzZtinnz5uHGjRvaWB0REWlB50Z2aFvPGvmFxZi784LUcYiqFLUKoFWrVqm1MrlcjtTUVBw+fPilQhER0cuTyWSYEuQFANgQdx2JN3mfQ6ISahVAixcvhqenJ8LDw5GUlFTq+ezsbGzduhVvvfUW/Pz8kJWVpfWgRESkOR8XS/T1cYYQwOzt56SOQ1RlqFUA7d+/Hz/88AP27NmDJk2awNzcHA0bNkTTpk1Rp04d2NjYIDQ0FG5ubjhz5gz69u1b2bmJiEhNnwZ6QK4vw4ELt3Hw4m2p4xBVCWrPA1Tizp07OHToEJKTk/Ho0SPY2trC19cXvr6+yttR6DrOA0RE1c3MvxMRefgqvJ3M8c/H7aGnV/4Nool0lSbf3xoXQDUBCyAiqm7uPshHx+/34v7jQswd7IOBLepIHYlI6yplIkQiItJdVqaG+KDzkxmhf9hxHo8LiiRORCQtA3U7uru7QyZ7/i5TmUyGy5c54RYRUVU0MsANy2OScTP7MX47koz3OtWXOhKRZNQugJ53N/Xk5GT88ssvyMvL00YmIiKqBAq5PiYFeuCTtQn4ae8lDG7pAitTQ6ljEUlC7QJo3LhxpdqysrLwzTffYPHixWjTpg3Cw8O1Go6IiLTrdd/aWHrwCs6l38fPey/hyz7V50bWRJqo0DlAjx49wnfffYd69eph79692LBhA/bv34+2bdtqOx8REWmRvp4MU3o9mRxxecw1pGY9lDgRkTQ0KoCKioqwZMkS1KtXD0uXLsXChQsRFxeHXr16VVY+IiLSso4NbdG+gS3yi4rxw87zUschkoTaBdCaNWvg5eWFadOmYfLkyTh//jyGDRv2whOjiYioapHJZJgc5AkA+Cv+Jv69ni1xIqJXT+15gPT09GBsbIw333zzudfWz507V2vhpMJ5gIioJpiwOh4b426gXT0b/PlOG/6HlnSeJt/fap8E3bFjxxde5s6Nh4hId0wKbIQtp9MQc+UO9l24jS4e9lJHInpl1C6A9u3bV4kxiIjoVatjZYKQADf8euAKZm89h44N7aDPW2RQDcGZoImIarAPOzeAhbEc52/dx/rY61LHIXplWAAREdVgFiZyfNTlyS0y/ht9Ho/yeYsMqhlYABER1XDD2rmitqUxbuXkIfLwVanjEL0SLICIiGo4hVwfn/bwAAAs3ncZmbm8rRFVfyyAiIgI/Xyc0aS2OXLzCrFw90Wp4xBVOq0WQCkpKSgq4vFjIiJdo6cnw9SgJ7fIWHEsBVczH0iciKhyabUAcnNzg7e3NzZs2KDN1RIR0Svg38AWXTzsUFgsMGf7OanjEFUqrRZAe/fuxZQpU7Bu3TptrpaIiF6RyUFe0JMB286kI/baXanjEFUatW+FUZPwVhhEVJN9ti4Ba05eR0tXK6wd046z/JPO0OT7mydBExGRiomveUAh18PJa3ex4+wtqeMQVQqNC6Bbt25h2LBhcHZ2hoGBAfT19VUeRESk2xwtFBjdvh4AYM72cygoKpY4EZH2qX0vsBIhISFISUnBV199BScnJ+4aJSKqht7rVA8rj6fgSuYDrDqRimFtXaWORKRVGhdAhw4dwsGDB9G8efNKiENERFWBmUKOcd0b4uu/zmL+rgt43bc2ahlp/JVBVGVpfAjMxcUF2jxvetGiRXB3d4dCoYCfnx8OHjz43P4rVqyAj48PTExM4OTkhJEjR+LOnTvK56OioiCTyUo9Hj9+rLXMREQ1wZut68Ld1hSZufn4df9lqeMQaZXGBdC8efMwefJkJCcnv/SLr169GuPHj8cXX3yBuLg4dOjQAUFBQUhJSSmz/6FDhzB8+HCEhobi7NmzWLt2LU6cOIHRo0er9DM3N0daWprKQ6FQvHReIqKaRK6vh8/+d4uM/3fwKm7l8D+SVH1oXAAFBwdj3759qF+/PszMzGBtba3y0MTcuXMRGhqK0aNHw8vLC/PmzYOLiwsWL15cZv+jR4/Czc0NY8eOhbu7O9q3b4/33nsPJ0+eVOknk8ng6Oio8iAiIs31bOKIFnUt8aigCD9GX5A6DpHWaHxAd968eVp54fz8fMTGxmLy5Mkq7YGBgThy5EiZy/j7++OLL77A1q1bERQUhIyMDKxbtw69e/dW6ZebmwtXV1cUFRWhefPm+Oabb+Dr61tulry8POTl/d/N/3Jycl5iZERE1YdMJsPUXl54Y0kM1pxMxaj27mjkYCZ1LKKXpnEBNGLECK28cGZmJoqKiuDg4KDS7uDggPT09DKX8ff3x4oVKxAcHIzHjx+jsLAQ/fr1w8KFC5V9PD09ERUVhaZNmyInJwfz589HQEAAEhIS0LBhwzLXGxYWhhkzZmhlXERE1U1LN2v0aOyAHWdvYdbWJESNbC11JKKXVqGJEIuKirB+/Xp8++23+O6777Bx48YK3wT12cvohRDlXlqfmJiIsWPH4uuvv0ZsbCy2b9+Oq1evYsyYMco+bdu2xdChQ+Hj44MOHTpgzZo1aNSokUqR9KwpU6YgOztb+UhNTa3QWIiIqqvJQV6Q68uw7/xt7DufIXUcopem8R6gS5cuoVevXrhx4wY8PDwghMCFCxfg4uKCLVu2oH79+mqtx9bWFvr6+qX29mRkZJTaK1QiLCwMAQEB+PTTTwEAzZo1g6mpKTp06IBvv/0WTk5OpZbR09NDq1atcPHixXKzGBkZwcjISK3cREQ1kbutKYa3c0PEoav4bksS2jewhYE+byZAukvjT+/YsWNRv359pKam4tSpU4iLi0NKSgrc3d0xduxYtddjaGgIPz8/REdHq7RHR0fD39+/zGUePnwIPT3VyCWzT5d3ab4QAvHx8WUWR0REpL6xXRvCykSOixm5WHm87Kt1iXSFxgXQ/v37MWfOHJUrvmxsbDB79mzs379fo3VNnDgRS5cuRWRkJJKSkjBhwgSkpKQoD2lNmTIFw4cPV/bv27cvNmzYgMWLF+PKlSs4fPgwxo4di9atW8PZ2RkAMGPGDOzYsQNXrlxBfHw8QkNDER8fr3KYjIiINGdhIseE1xoBAOZGX0D2owKJExFVnMaHwIyMjHD//v1S7bm5uTA0NNRoXcHBwbhz5w5mzpyJtLQ0NGnSBFu3boWr65Mp19PS0lTmBAoJCcH9+/fx008/YdKkSbC0tETXrl0RHh6u7HPv3j28++67SE9Ph4WFBXx9fXHgwAG0bs2T9oiIXtZbretiecw1XMrIxU97LuKL3t5SRyKqEJnQcFrn4cOH49SpU4iIiFAWFceOHcM777wDPz8/REVFVUbOVyonJwcWFhbIzs6Gubm51HGIiKqUfeczELLsBOT6MkRP6AQ3W1OpIxEB0Oz7W+NDYAsWLED9+vXRrl07KBQKKBQKBAQEoEGDBpg/f36FQxMRkW7o7GGPTo3sUFAkMGtrktRxiCpE40NglpaW+Ouvv3Dx4kWcO3cOQgh4e3ujQYMGlZGPiIiqoC97e+HQpUzsTLyFI5cz4V/fVupIRBrR+BBYTcBDYEREL/bVpjP4/eg1eDuZ4++P20Nfr+w53IheFU2+v9XaAzRx4kR88803MDU1xcSJE5/bd+7cueonJSIinTXhtUbYFH8DiWk5WB97HYNbuUgdiUhtahVAcXFxKCgoUP6biIjI2tQQ47o1xLdbkvD9zvPo1cwJtYw0PrOCSBI8BFYGHgIjIlJPfmExAn/cj+Q7D/Fhl/r4tIen1JGoBqvUq8BGjRpV5jxADx48wKhRozRdHRER6TBDAz1M7eUFAPh/B6/i+t2HEiciUo/GBdBvv/2GR48elWp/9OgRli9frpVQRESkO17zdkC7ejbILyxG+PbzUschUovaBVBOTg6ys7MhhMD9+/eRk5OjfNy9exdbt26Fvb19ZWYlIqIqSCaT4cs+XpDJgL8TbiL2WpbUkYheSO2z1SwtLSGTySCTydCoUaNSz8tkMsyYMUOr4YiISDc0drbAYD8XrD6Zipl/J2LjBwHQ42XxVIWpXQDt3bsXQgh07doV69evV7kZqqGhIVxdXZU3JCUioppnUo9G2PJvGhKuZ2Nj3A0M8qsjdSSicqldAHXq1AkAcPXqVdStWxcyGSt7IiL6P/ZmCnzctQHCtp1D+PZz6NHEkZfFU5Wl8UnQe/bswbp160q1r127Fr/99ptWQhERkW4KCXCDq40JMu7nYdHeS1LHISqXxgXQ7NmzYWtb+p4v9vb2mDVrllZCERGRbjIy0MeXvb0BAEsPXkXKHV4WT1WTxgXQtWvX4O7uXqrd1dUVKSkpWglFRES6q7uXPTo0tEV+UTG+25oodRyiMmlcANnb2+P06dOl2hMSEmBjY6OVUEREpLtkMhm+6uMNfT0Zdpy9hcOXMqWORFSKxgXQkCFDMHbsWOzduxdFRUUoKirCnj17MG7cOAwZMqQyMhIRkY5p5GCGYW1dAQAz/05EYVGxxImIVGlcAH377bdo06YNunXrBmNjYxgbGyMwMBBdu3blOUBERKQ0vntDWJrIcf7Wfaw8kSp1HCIVFb4Z6oULF5CQkABjY2M0bdoUrq6u2s4mGd4MlYhIO36PScZXf52FlYkcez/pDEsTQ6kjUTWmyfc37wZfBhZARETaUVhUjN4LDuH8rfsI8XfD9H6NpY5E1Zgm398az1BVVFSEqKgo7N69GxkZGSguVj2uu2fPHk1XSURE1ZSBvh6+7uuNt5cew+9Hr+HtNnXR0MFM6lhEmhdA48aNQ1RUFHr37o0mTZpwRmgiInqugAa2CPR2wM7EW5j5TyKWj2rN7w6SnMYF0KpVq7BmzRr06tWrMvIQEVE19EVvL+w7fxsHL2Zid1IGuns7SB2JajiNrwIzNDREgwYNKiMLERFVU642pgjt8GQS3W+3JCKvsEjiRFTTaVwATZo0CfPnzwfPnSYiIk182KUB7MyMkHznIaIOJ0sdh2o4jQ+BHTp0CHv37sW2bdvQuHFjyOVylec3bNigtXBERFR91DIywOc9PfHJ2gQs2H0RA3xrw8FcIXUsqqE0LoAsLS3x+uuvV0YWIiKq5gb61sYfR68hPvUevtuShAVv+kodiWoozgNUBs4DRERUec7cyEa/nw6hWAB/jm4D/wa2UkeiakKT72+NzwEiIiJ6GU1qW2Do/+4T9tVfZ5BfyPuE0aun8SEwd3f3587fcOXKlZcKRERE1d+k1zyw5XQaLt9+gMjDVzGmU32pI1ENo3EBNH78eJWfCwoKEBcXh+3bt+PTTz/VVi4iIqrGLEzkmNLLC5+sTcD8XRfRz8cZzpbGUseiGkTjQ2Djxo1TeXzyySdYsWIFZs6cifPnz2scYNGiRXB3d4dCoYCfnx8OHjz43P4rVqyAj48PTExM4OTkhJEjR+LOnTsqfdavXw9vb28YGRnB29sbGzdu1DgXERFVrkEtaqOVmxUeFRThm38SpY5DNYzWzgEKCgrC+vXrNVpm9erVGD9+PL744gvExcWhQ4cOCAoKQkpKSpn9Dx06hOHDhyM0NBRnz57F2rVrceLECYwePVrZJyYmBsHBwRg2bBgSEhIwbNgwDB48GMeOHXup8RERkXbJZDLM7N8E+noybDuTjv0XbksdiWoQrV0FNmfOHCxatAjJyclqL9OmTRu0aNECixcvVrZ5eXlhwIABCAsLK9X/hx9+wOLFi3H58mVl28KFCzFnzhykpqYCAIKDg5GTk4Nt27Yp+/Ts2RNWVlZYuXKlWrl4FRgR0asz8+9ERB6+CndbU2wf3wFGBvpSRyIdValXgfn6+qJFixbKh6+vL5ycnDB16lRMnTpV7fXk5+cjNjYWgYGBKu2BgYE4cuRImcv4+/vj+vXr2Lp1K4QQuHXrFtatW4fevXsr+8TExJRaZ48ePcpdJxERSWvCaw1hZ2aEq5kP8Ot+XkhDr4bGJ0EPGDBA5Wc9PT3Y2dmhc+fO8PT0VHs9mZmZKCoqgoOD6g3xHBwckJ6eXuYy/v7+WLFiBYKDg/H48WMUFhaiX79+WLhwobJPenq6RusEgLy8POTl5Sl/zsnJUXscRET0cswUcnzZ2wvjVsXjp72XMMC3NlysTaSORdWcWgXQxIkT8c0338DU1BRdunRBu3btSt0Co6KevaReCFHuZfaJiYkYO3Ysvv76a/To0QNpaWn49NNPMWbMGERERFRonQAQFhaGGTNmvMQoiIjoZfTzccaq46mIuXIHM/5OxNIRLaWORNWcWofAFi5ciNzcXABAly5dcPfu3Zd+YVtbW+jr65faM5ORkVFqD06JsLAwBAQE4NNPP0WzZs3Qo0cPLFq0CJGRkUhLSwMAODo6arROAJgyZQqys7OVj5LziYiI6NV4ckJ0YxjoybAr6RZ2J92SOhJVc2rtAXJzc8OCBQsQGBgIIQRiYmJgZWVVZt+OHTuq9cKGhobw8/NDdHS0yr3FoqOj0b9//zKXefjwIQwMVCPr6z85Wa7kXO527dohOjoaEyZMUPbZuXMn/P39y81iZGQEIyMjtXITEVHlaOhghtD27vjlwBVM//ssAhrYQiHnCdFUSYQaNm7cKBwcHIRMJhN6enpCJpOV+dDT01NndUqrVq0ScrlcREREiMTERDF+/HhhamoqkpOThRBCTJ48WQwbNkzZf9myZcLAwEAsWrRIXL58WRw6dEi0bNlStG7dWtnn8OHDQl9fX8yePVskJSWJ2bNnCwMDA3H06FG1c2VnZwsAIjs7W6PxEBHRy8l9XCDafLdLuH7+j/jvzvNSxyEdo8n3t0aXwefm5sLc3Bznz5+Hvb19mX0sLCw0KsAWLVqEOXPmIC0tDU2aNMGPP/6o3IsUEhKC5ORk7Nu3T9l/4cKFWLJkCa5evQpLS0t07doV4eHhqF27trLPunXr8OWXX+LKlSuoX78+vvvuOwwcOFDtTLwMnohIOltOp+HDP0/B0EAPO8d3hJutqdSRSEdo8v2t8TxA+/fvR0BAQKlDUdUJCyAiIukIITA88jgOXsxEx0Z2+G1kq+deyEJUolLnAerUqVO1Ln6IiEhaJTNEG+rr4cCF29h2pvxpTIgqSmu3wiAiItIWd1tTjOn85A7xM/9ORG5eocSJqLphAURERFXSB53ro661CdJzHmP+rgtSx6FqhgUQERFVSQq5Pmb0bwwAiDycjHPpnKWftIcFEBERVVldPOzRs7EjiooFvtx4BsXFWrl/N5Hm9wJ7/fXXyzwbXyaTQaFQoEGDBnjrrbfg4eGhlYBERFSzfd3XGwcu3sbJa3ex/tR1/Keli9SRqBrQeA+QhYUF9uzZg1OnTikLobi4OOzZsweFhYVYvXo1fHx8cPjwYa2HJSKimsfZ0hjjujUEAIRtO4d7D/MlTkTVgcYFkKOjI9566y1cuXIF69evx4YNG3D58mUMHToU9evXR1JSEkaMGIHPP/+8MvISEVENNKq9Oxra10LWg3zM2XFe6jhUDWg8EaKdnR0OHz6MRo0aqbRfuHAB/v7+yMzMxL///osOHTrg3r172sz6ynAiRCKiqufYlTsI/vUoZDJgw/v+8K1b9j0pqeaq1IkQCwsLce7cuVLt586dQ1FREQBAoVBw1k4iItKqNvVsMKhFHQgBfLnpDIp4QjS9BI0LoGHDhiE0NBQ//vgjDh06hMOHD+PHH39EaGgohg8fDuDJ7TIaN26s9bBERFSzTenlCXOFAc7ezMEfR69JHYd0mMaHwIqKijB79mz89NNPuHXrFgDAwcEBH3/8MT7//HPo6+sjJSUFenp6qFOnTqWErmw8BEZEVHX9cfQavtx0BmZGBtj9SSfYmymkjkRVRKXeDPXZFwJQ7YoEFkBERFVXUbHAwEWHkXA9G/2bO2P+EF+pI1EVUannAD3N3NycBQIREb1S+noyfDugKWQy4K/4mzh0MVPqSKSDNC6Abt26hWHDhsHZ2RkGBgbQ19dXeRAREVW2pnUsMLytKwBg6sZ/8Si/SOJEpGs0ngk6JCQEKSkp+Oqrr+Dk5MSrvYiISBKf9vTEzsRbSMl6iB93XcDUXl5SRyIdovE5QGZmZjh48CCaN29eSZGkx3OAiIh0w55ztzAq6iT0ZMCmDwPQrI6l1JFIQpV6DpCLiwte4rxpIiIirenq6YB+Ps4oFsBn606joKhY6kikIzQugObNm4fJkycjOTm5EuIQERFpZlpfb1iZyHEu/T5+PXBF6jikIzQ+BGZlZYWHDx+isLAQJiYmkMvlKs9nZWVpNaAUeAiMiEi3bIy7jgmrE2BooIdt4zqgvl0tqSORBDT5/tb4JOh58+ZVNBcREVGlGNC8NjbG3cSBC7cxZf2/WPVuW+jp8SIdKt9LTYRYXXEPEBGR7rl+9yECfzyAh/lF+HZAEwz932XyVHNo/STokhmfS/79vAcREZEU6liZ4NMeHgCA2dvOIT37scSJqCpTqwCysrJCRkYGAMDS0hJWVlalHiXtREREUhnezg2+dS2Rm1eILzed4VXLVC61zgHas2cPrK2tAQB79+6t1EBEREQVpa8nQ/igZui94CB2Jd3Cln/T0KeZs9SxqAriOUBl4DlARES67cfoC5i/+yJsaxli18ROsDQxlDoSvQKVehUYANy9excRERFISkqCTCaDl5cXRo4cqdxLREREJKUPutTH1n/TcDEjF99uScIP//GROhJVMRpPhLh//364ublhwYIFuHv3LrKysrBgwQK4u7tj//79lZGRiIhII0YG+pg9qBlkMmBd7HUcvHhb6khUxWh8CKxJkybw9/fH4sWLlXd/LyoqwgcffIDDhw/jzJkzlRL0VeIhMCKi6mH65rOIOpKM2pbG2DGhI2oZVejAB+mISr0X2OXLlzFp0iRl8QMA+vr6mDhxIi5fvqx5WiIiokryaQ8PuFgb48a9R5iz/ZzUcagK0bgAatGiBZKSkkq1JyUlVes7xBMRke4xNTLA7IHNAADLY67h6JU7EieiqkKtfYGnT59W/nvs2LEYN24cLl26hLZt2wIAjh49ip9//hmzZ8+unJREREQVFNDAFm+2rouVx1Pw+frT2D6uI4wN9V+8IFVrap0DpKenB5lM9sIJpWQyGYqKijQKsGjRInz//fdIS0tD48aNMW/ePHTo0KHMviEhIfjtt99KtXt7e+Ps2bMAgKioKIwcObJUn0ePHkGhUKiViecAERFVL/cfFyDwxwNIy36M0Pbu+KqPt9SRqBJo/TL4q1evaiXYs1avXo3x48dj0aJFCAgIwC+//IKgoCAkJiaibt26pfrPnz9fZS9TYWEhfHx88J///Eeln7m5Oc6fP6/Spm7xQ0RE1Y+ZQo6wgU0RsuwEIg9fRa+mjvBz5dQtNZmkEyG2adMGLVq0wOLFi5VtXl5eGDBgAMLCwl64/KZNmzBw4EBcvXoVrq5PbnoXFRWF8ePH4969exXOxT1ARETV0ydrE7Au9jrq2Zli69gOUMh5KKw60foeoM2bNyMoKAhyuRybN29+bt9+/fqpFTI/Px+xsbGYPHmySntgYCCOHDmi1joiIiLQvXt3ZfFTIjc3F66urigqKkLz5s3xzTffwNfXV611EhFR9fVVb28cuHAbV24/wLxdFzE5yFPqSCQRtQqgAQMGID09Hfb29hgwYEC5/TQ5BygzMxNFRUVwcHBQaXdwcEB6evoLl09LS8O2bdvw559/qrR7enoiKioKTZs2RU5ODubPn4+AgAAkJCSgYcOGZa4rLy8PeXl5yp95V3siourJwkSO715vineWn8SvBy4jqIkjfFwspY5FElDrMvji4mLY29sr/13eQ9MToIEnRdPThBCl2soSFRUFS0vLUgVZ27ZtMXToUPj4+KBDhw5Ys2YNGjVqhIULF5a7rrCwMFhYWCgfLi4uGo+DiIh0w2veDujn44xiAXy6LgF5hZp/d5Hu02geoIKCAnTp0gUXLlx46Re2tbWFvr5+qb09GRkZpfYKPUsIgcjISAwbNgyGhs+/wZ2enh5atWqFixcvlttnypQpyM7OVj5SU1PVHwgREemc6f0aw7aWIS7cysXPey5JHYckoFEBJJfLcebMGbX20LyIoaEh/Pz8EB0drdIeHR0Nf3//5y67f/9+XLp0CaGhoS98HSEE4uPj4eTkVG4fIyMjmJubqzyIiKj6sjY1xMz+TQAAi/Zdxtmb2RInoldN45mghw8fjoiICK28+MSJE7F06VJERkYiKSkJEyZMQEpKCsaMGQPgyZ6Z4cOHl1ouIiICbdq0QZMmTUo9N2PGDOzYsQNXrlxBfHw8QkNDER8fr1wnERERAPRq6oSgJo4oLBb4dO1pFBQVSx2JXiGN7wqXn5+PpUuXIjo6Gi1btoSpqanK83PnzlV7XcHBwbhz5w5mzpyJtLQ0NGnSBFu3blVe1ZWWloaUlBSVZbKzs7F+/XrMnz+/zHXeu3cP7777LtLT02FhYQFfX18cOHAArVu31nCkRERU3c3s3wQxV+4gMS0Hi/ddxthuZV8sQ9WPxvMAdenSpfyVyWTYs2fPS4eSGucBIiKqOTbF3cD41fGQ68vw14ft4e3Mv/u6SpPvb0knQqyqWAAREdUcQgi893ssdibegqejGTZ/1B6GBhqfIUJVgCbf3xq/w9nZ2cjKyirVnpWVxflziIhI58hkMnz3elNYmxriXPp9LNhd/lXDVH1oXAANGTIEq1atKtW+Zs0aDBkyRCuhiIiIXiU7MyN8O+DJhTWL919GfOo9aQNRpdO4ADp27FiZ5wF17twZx44d00ooIiKiV61XUyf083FGUbHApDXxeFzACRKrM40LoLy8PBQWFpZqLygowKNHj7QSioiISAoz+zeGnZkRLt9+gB92nJc6DlUijQugVq1a4ddffy3VvmTJEvj5+WklFBERkRQsTQwxe2BTAEDE4as4frX0Oa9UPWg8D9B3332H7t27IyEhAd26dQMA7N69GydOnMDOnTu1HpCIiOhV6ublgP/41cHa2Ov4ZG0Cto3rAFMjjb8uqYrTeA9QQEAAYmJi4OLigjVr1uDvv/9GgwYNcPr0aXTo0KEyMhIREb1SX/X1hrOFAilZDzF72zmp41Al4DxAZeA8QEREdOhiJoZGPLm454/QNmjf0FbiRPQilToP0KlTp/Dvv/8qf/7rr78wYMAATJ06Ffn5+ZqnJSIiqoLaN7TFsLZPbs302boE5DwukDgRaZPGBdB7772HCxcuAACuXLmC4OBgmJiYYO3atfjss8+0HpCIiEgqk4M84WpjgpvZj/HN34lSxyEt0rgAunDhApo3bw4AWLt2LTp16oQ///wTUVFRWL9+vbbzERERScbUyAA//McHMhmwNvY6difdkjoSaYnGBZAQAsXFxQCAXbt2oVevXgAAFxcXZGZmajcdERGRxFq5WWN0e3cAwOfr/8Wd3DyJE5E2aFwAtWzZEt9++y1+//137N+/H7179wYAXL16FQ4ODloPSEREJLVJgR5oaF8Lmbl5+Hz9afD6Id2ncQE0b948nDp1Ch999BG++OILNGjQAACwbt06+Pv7az0gERGR1BRyfcwf4gtDfT3sSsrAimMpUkeil6S1y+AfP34MfX19yOVybaxOUrwMnoiIyrL04BV8uyUJCrke/vm4PRrYm0kdiZ5SqZfBA8C9e/ewdOlSTJkyBVlZT6YJT0xMREZGRkVWR0REpBNGBbijQ0NbPC4oxtiV8cgr5A1TdZXGBdDp06fRsGFDhIeH44cffsC9e/cAABs3bsSUKVO0nY+IiKjK0NOT4b//8YGViRyJaTn4784LUkeiCtK4AJo4cSJGjhyJixcvQqFQKNuDgoJw4MABrYYjIiKqauzNFQgf1AwA8OuBKzh0kVdA6yKNC6ATJ07gvffeK9Veu3ZtpKenayUUERFRVRbY2BFvtakLAJi4Jh53H/BOCLpG4wJIoVAgJyenVPv58+dhZ2enlVBERERV3Ve9vVHPzhQZ9/MweQMvjdc1GhdA/fv3x8yZM1FQ8OSeKDKZDCkpKZg8eTIGDRqk9YBERERVkbGhPhYM8YVcX4YdZ29h1YlUqSORBjQugH744Qfcvn0b9vb2ePToETp16oQGDRrAzMwM3333XWVkJCIiqpKa1LbApz08AAAz/07E5du5EicidVV4HqA9e/bg1KlTKC4uRosWLdC9e3dtZ5MM5wEiIiJ1FRcLDI04hiOX76BpbQusf98fhgYVmmWGXpIm399amwixOmEBREREmkjPfoye8w/g3sMCjOlUH5ODPKWOVCNV2kSIxcXFiIyMRJ8+fdCkSRM0bdoU/fr1w/Lly3nyFxER1ViOFgrMHvjk0vhfDlzmpfE6QO0CSAiBfv36YfTo0bhx4waaNm2Kxo0b49q1awgJCcHrr79emTmJiIiqtJ5NHPFm67oQAhi/Oh637/Ou8VWZ2gVQVFQUDhw4gN27dyMuLg4rV67EqlWrkJCQgF27dmHPnj1Yvnx5ZWYlIiKq0r7u441GDk/uGj9xTTyKi3l0pKpSuwBauXIlpk6dii5dupR6rmvXrpg8eTJWrFih1XBERES6xNhQHz+91QIKuR4OXszELweuSB2JyqF2AXT69Gn07Nmz3OeDgoKQkJCglVBERES6qpGDGab3bQwA+GHnecReuytxIiqL2gVQVlYWHBwcyn3ewcEBd+/yTSYiIgpu5YK+Ps4oKhYYuzIO2Q8LpI5Ez1C7ACoqKoKBgUG5z+vr66OwsFAroYiIiHSZTCbDrNebwNXGBDfuPcLn63mrjKpGo6vAQkJCMHDgwDIfo0aNqlCARYsWwd3dHQqFAn5+fjh48GC5fUNCQiCTyUo9GjdurNJv/fr18Pb2hpGREby9vbFx48YKZSMiIqooM4UcC998cquM7WfT8cfRa1JHoqeoXQCNGDEC9vb2sLCwKPNhb2+P4cOHa/Tiq1evxvjx4/HFF18gLi4OHTp0QFBQEFJSUsrsP3/+fKSlpSkfqampsLa2xn/+8x9ln5iYGAQHB2PYsGFISEjAsGHDMHjwYBw7dkyjbERERC+rWR1LfN7zyaSI32xJwtmb2RInohKSzgTdpk0btGjRAosXL1a2eXl5YcCAAQgLC3vh8ps2bcLAgQNx9epVuLq6AgCCg4ORk5ODbdu2Kfv17NkTVlZWWLlypVq5OBM0ERFpixACo387id3nMlDPzhR/f9Qepkbln1JCFVdpM0FrU35+PmJjYxEYGKjSHhgYiCNHjqi1joiICHTv3l1Z/ABP9gA9u84ePXqovU4iIiJtkslk+P4/PnA0V+DK7Qf4+q+zUkciSFgAZWZmoqioqNSVZQ4ODkhPT3/h8mlpadi2bRtGjx6t0p6enq7xOvPy8pCTk6PyICIi0hZrU0PMH9IcejJg/anr2HDqutSRajzJb1crk8lUfhZClGorS1RUFCwtLTFgwICXXmdYWJjK+UwuLi7qhSciIlJTm3o2GNetEQDgy01ncPl2rsSJajbJCiBbW1vo6+uX2jOTkZHx3PmGgCcFTWRkJIYNGwZDQ0OV5xwdHTVe55QpU5Cdna18pKamajgaIiKiF/uoawO0q2eDh/lF+HDFKTwuKJI6Uo0lWQFkaGgIPz8/REdHq7RHR0fD39//ucvu378fly5dQmhoaKnn2rVrV2qdO3fufO46jYyMYG5urvIgIiLSNn09GeYPaQ7bWoY4l34fM/5OlDpSjSXpIbCJEydi6dKliIyMRFJSEiZMmICUlBSMGTMGwJM9M2VdWh8REYE2bdqgSZMmpZ4bN24cdu7cifDwcJw7dw7h4eHYtWsXxo8fX9nDISIieiF7cwV+DG4OmQxYeTwFf8XfkDpSjSRpARQcHIx58+Zh5syZaN68OQ4cOICtW7cqr+pKS0srNSdQdnY21q9fX+beHwDw9/fHqlWrsGzZMjRr1gxRUVFYvXo12rRpU+njISIiUkeHhnb4uEsDAMDUDf/yfCAJSDoPUFXFeYCIiKiyFRULvL30KI5eyYKnoxk2fRgAhVxf6lg6TSfmASIiIqrJ9PVkWDDEV3k+0Mx/eD7Qq8QCiIiISCJPnw/05zGeD/QqsQAiIiKS0LPnA13h+UCvBAsgIiIiiY3r3ght61njQX4RPvwzjvMDvQIsgIiIiCT2ZH4gX9iYGiIpLYfnA70CLICIiIiqAAeeD/RKsQAiIiKqIjo2ssNHPB/olWABREREVIWM69YQbdyfnA/0/h+n8DC/UOpI1RILICIioirEQF8PC9/0hZ2ZEc7fuo/P1/8LzlmsfSyAiIiIqhh7cwUWvd0CBnoy/J1wE5GHk6WOVO2wACIiIqqCWrlZ44veXgCAWVuTcPTKHYkTVS8sgIiIiKqoEH839G/ujKJigY/+PIX07MdSR6o2WAARERFVUTKZDGEDm8LT0QyZufl4f0Us8guLpY5VLbAAIiIiqsJMDA2wZKgfzBQGiEu5h284SaJWsAAiIiKq4txsTTEvuDkA4Pej17A+9rq0gaoBFkBEREQ6oJuXA8Z2awgAmLrxX5y5kS1xIt3GAoiIiEhHjO/WEF087JBXWIz3V8Ti3sN8qSPpLBZAREREOkJPT4Z5wb6oa22C1KxHGLcqHkXFnCSxIlgAERER6RALEzmWDPWDQq6H/RduY96uC1JH0kksgIiIiHSMt7M5wgY2BQAs3HMJW06nSZxI97AAIiIi0kGv+9bB6PbuAIBJa+N5UrSGWAARERHpqCm9vNCpkR0eFxTj3eUncft+ntSRdAYLICIiIh2lryfDgjd9Uc/WFDezH2PMH7HIKyySOpZOYAFERESkwyyM5fh/I1rCTGGA2Gt38eXGMxCCV4a9CAsgIiIiHVffrhZ+eqsF9GTA2tjriDycLHWkKo8FEBERUTXQqZEdpvbyAgB8tyURBy7cljhR1cYCiIiIqJoIbe+O//jVQbEAPvrzFK7czpU6UpXFAoiIiKiakMlk+Pb1JvBztULO40KMXn4S2Y8KpI5VJbEAIiIiqkaMDPSxZKgfnCwUuHL7AcaujOPtMsrAAoiIiKiasTMzwv8b3lJ5u4zZ25KkjlTlsAAiIiKqhprUtsAP//EBAPy/g1ex6niKxImqFhZARERE1VSfZs4Y370hAODLTWdw+FKmxImqDskLoEWLFsHd3R0KhQJ+fn44ePDgc/vn5eXhiy++gKurK4yMjFC/fn1ERkYqn4+KioJMJiv1ePz4cWUPhYiIqMoZ160h+jd3RmGxwJg/YnEpg1eGAYCBlC++evVqjB8/HosWLUJAQAB++eUXBAUFITExEXXr1i1zmcGDB+PWrVuIiIhAgwYNkJGRgcLCQpU+5ubmOH/+vEqbQqGotHEQERFVVTKZDOGDmuH63UeIvXYXo6JOYNOHAbA2NZQ6mqRkQsL5stu0aYMWLVpg8eLFyjYvLy8MGDAAYWFhpfpv374dQ4YMwZUrV2BtbV3mOqOiojB+/Hjcu3evwrlycnJgYWGB7OxsmJubV3g9REREVcWd3DwMWHQYqVmP0MrNCn+MbgMjA32pY2mVJt/fkh0Cy8/PR2xsLAIDA1XaAwMDceTIkTKX2bx5M1q2bIk5c+agdu3aaNSoET755BM8evRIpV9ubi5cXV1Rp04d9OnTB3FxcZU2DiIiIl1gU8sIy0JawUxhgBPJdzF5/b81+p5hkhVAmZmZKCoqgoODg0q7g4MD0tPTy1zmypUrOHToEM6cOYONGzdi3rx5WLduHT788ENlH09PT0RFRWHz5s1YuXIlFAoFAgICcPHixXKz5OXlIScnR+VBRERU3TSwN8Pit/2gryfDxrgbWLjnktSRJCP5SdAymUzlZyFEqbYSxcXFkMlkWLFiBVq3bo1evXph7ty5iIqKUu4Fatu2LYYOHQofHx906NABa9asQaNGjbBw4cJyM4SFhcHCwkL5cHFx0d4AiYiIqpD2DW3xTf8mAIC50RewOeGmxImkIVkBZGtrC319/VJ7ezIyMkrtFSrh5OSE2rVrw8LCQtnm5eUFIQSuX79e5jJ6enpo1arVc/cATZkyBdnZ2cpHampqBUZERESkG95qUxfvdHAHAHyyNgGx1+5KnOjVk6wAMjQ0hJ+fH6Kjo1Xao6Oj4e/vX+YyAQEBuHnzJnJz/+8SvgsXLkBPTw916tQpcxkhBOLj4+Hk5FRuFiMjI5ibm6s8iIiIqrPJQV7o7uWA/MJivLv8JFKzHkod6ZWS9BDYxIkTsXTpUkRGRiIpKQkTJkxASkoKxowZA+DJnpnhw4cr+7/11luwsbHByJEjkZiYiAMHDuDTTz/FqFGjYGxsDACYMWMGduzYgStXriA+Ph6hoaGIj49XrpOIiIgAfT0Z5g9pjsbO5rjzIB+jok7UqBunSloABQcHY968eZg5cyaaN2+OAwcOYOvWrXB1dQUApKWlISXl/6burlWrFqKjo3Hv3j20bNkSb7/9Nvr27YsFCxYo+9y7dw/vvvsuvLy8EBgYiBs3buDAgQNo3br1Kx8fERFRVWZqZICIEa3gYG6Eixm5+HDFKRQUFUsd65WQdB6gqorzABERUU1y5kY2Bv8Sg4f5RRjcsg7CBzUr94Kkqkwn5gEiIiKiqqFJbQv89JYv9GTAmpPXsWjfZakjVToWQERERISung6Y3q8xAOD7Heer/eXxLICIiIgIADC8nRtC2//f5fEnk7MkTlR5WAARERGR0tReXnjN+8nl8e8sP4nkzAdSR6oULICIiIhIqeTy+GZ1LHD3YQFGRp3A3Qf5UsfSOhZAREREpMLE0ABLR7REbUtjXM18gPd+j0VeYZHUsbSKBRARERGVYm+mwLKRrWBmZIDjyVn4bN3panX3eBZAREREVKZGDmZYPNQPBnoy/BV/Ez9GX5A6ktawACIiIqJytW9oi1mvNwUALNhzCatPpLxgCd3AAoiIiIiea3ArF3zUpQEAYMqGf7Er8ZbEiV4eCyAiIiJ6oUmBjfCGXx0UC+CjlacQe+2u1JFeCgsgIiIieiGZTIawgU3RxcMOjwuKEfrbCVzKuC91rApjAURERERqkevr4ee3W6C5iyXuPSzAiMgTSM9+LHWsCmEBRERERGozMTRAZEgr1LM1xY17jzAi8jiyHxVIHUtjLICIiIhII9amhvhtVGvYmRnh/K37eGf5STwu0K2JElkAERERkcZcrE3w28jWTyZKvJqFCavjUVSsOxMlsgAiIiKiCvF2Nscvw/1gqK+HbWfSMX3zWZ2ZLZoFEBEREVWYf31bzA32gUwG/H70Gn7ee0nqSGphAUREREQvpU8zZ0zr4w0A+GHnBaw6XvVni2YBRERERC8tJMAd73euDwCYsvFf/HP6psSJno8FEBEREWnFZz088GbruhACmLA6HnvPZ0gdqVwsgIiIiEgrZDIZvh3QBH19nFFQJPD+H7E4fjVL6lhlYgFEREREWqOvJ8PcwT7o6mn/5JYZUSdw5ka21LFKYQFEREREWiXX18Oit1ugtbs17ucVYnjk8Sp33zAWQERERKR1Crk+Ika0RNPaFsh6kI+hS48jNeuh1LGUWAARERFRpTBTyPHbqNZoYF8L6TmPMTTiGDJyqsbNU1kAERERUaWxNjXEH6FtUMfKGNfuPMSwiOO49zBf6lgsgIiIiKhyOVoosGJ0G9j/7+apIctO4EFeoaSZWAARERFRpXO1McXvoW1gaSJHfOo9ye8gzwKIiIiIXgkPRzNEjWwNU0N9OFsaw0BPJlkWA8lemYiIiGqc5i6W2Pxxe7jbmEKPBRARERHVFPXtakkdQfpDYIsWLYK7uzsUCgX8/Pxw8ODB5/bPy8vDF198AVdXVxgZGaF+/fqIjIxU6bN+/Xp4e3vDyMgI3t7e2LhxY2UOgYiIiHSMpAXQ6tWrMX78eHzxxReIi4tDhw4dEBQUhJSUlHKXGTx4MHbv3o2IiAicP38eK1euhKenp/L5mJgYBAcHY9iwYUhISMCwYcMwePBgHDt27FUMiYiIiHSATAghpHrxNm3aoEWLFli8eLGyzcvLCwMGDEBYWFip/tu3b8eQIUNw5coVWFtbl7nO4OBg5OTkYNu2bcq2nj17wsrKCitXrlQrV05ODiwsLJCdnQ1zc3MNR0VERERS0OT7W7I9QPn5+YiNjUVgYKBKe2BgII4cOVLmMps3b0bLli0xZ84c1K5dG40aNcInn3yCR48eKfvExMSUWmePHj3KXScRERHVPJKdBJ2ZmYmioiI4ODiotDs4OCA9Pb3MZa5cuYJDhw5BoVBg48aNyMzMxAcffICsrCzleUDp6ekarRN4cl5RXl6e8uecnJyKDouIiIh0gOQnQctkqpfACSFKtZUoLi6GTCbDihUr0Lp1a/Tq1Qtz585FVFSUyl4gTdYJAGFhYbCwsFA+XFxcXmJEREREVNVJVgDZ2tpCX1+/1J6ZjIyMUntwSjg5OaF27dqwsLBQtnl5eUEIgevXrwMAHB0dNVonAEyZMgXZ2dnKR2pqakWHRURERDpAsgLI0NAQfn5+iI6OVmmPjo6Gv79/mcsEBATg5s2byM3NVbZduHABenp6qFOnDgCgXbt2pda5c+fOctcJAEZGRjA3N1d5EBERUfUl6SGwiRMnYunSpYiMjERSUhImTJiAlJQUjBkzBsCTPTPDhw9X9n/rrbdgY2ODkSNHIjExEQcOHMCnn36KUaNGwdjYGAAwbtw47Ny5E+Hh4Th37hzCw8Oxa9cujB8/XoohEhERURUk6UzQwcHBuHPnDmbOnIm0tDQ0adIEW7duhaurKwAgLS1NZU6gWrVqITo6Gh9//DFatmwJGxsbDB48GN9++62yj7+/P1atWoUvv/wSX331FerXr4/Vq1ejTZs2r3x8REREVDVJOg9QVcV5gIiIiHSPTswDRERERCQVFkBERERU4/Bu8GUoOSrICRGJiIh0R8n3tjpn97AAKsP9+/cBgBMiEhER6aD79++rzBlYFp4EXYbi4mLcvHkTZmZmz51BuiJycnLg4uKC1NTUanmCdXUfH1D9x8jx6b7qPkaOT/dV1hiFELh//z6cnZ2hp/f8s3y4B6gMT0+sWFmq+4SL1X18QPUfI8en+6r7GDk+3VcZY3zRnp8SPAmaiIiIahwWQERERFTjsAB6xYyMjDBt2jQYGRlJHaVSVPfxAdV/jByf7qvuY+T4dF9VGCNPgiYiIqIah3uAiIiIqMZhAUREREQ1DgsgIiIiqnFYABEREVGNwwLoJS1atAju7u5QKBTw8/PDwYMHn9t///798PPzg0KhQL169bBkyZJSfdavXw9vb28YGRnB29sbGzdurKz4atFkjBs2bMBrr70GOzs7mJubo127dtixY4dKn6ioKMhkslKPx48fV/ZQyqTJ+Pbt21dm9nPnzqn0q0rvoSbjCwkJKXN8jRs3VvapSu/fgQMH0LdvXzg7O0Mmk2HTpk0vXEbXtkFNx6hr26Cm49O1bVDT8enaNhgWFoZWrVrBzMwM9vb2GDBgAM6fP//C5arCdsgC6CWsXr0a48ePxxdffIG4uDh06NABQUFBSElJKbP/1atX0atXL3To0AFxcXGYOnUqxo4di/Xr1yv7xMTEIDg4GMOGDUNCQgKGDRuGwYMH49ixY69qWCo0HeOBAwfw2muvYevWrYiNjUWXLl3Qt29fxMXFqfQzNzdHWlqaykOhULyKIanQdHwlzp8/r5K9YcOGyueq0nuo6fjmz5+vMq7U1FRYW1vjP//5j0q/qvL+PXjwAD4+Pvjpp5/U6q+L26CmY9S1bVDT8ZXQlW1Q0/Hp2ja4f/9+fPjhhzh69Ciio6NRWFiIwMBAPHjwoNxlqsx2KKjCWrduLcaMGaPS5unpKSZPnlxm/88++0x4enqqtL333nuibdu2yp8HDx4sevbsqdKnR48eYsiQIVpKrRlNx1gWb29vMWPGDOXPy5YtExYWFtqK+FI0Hd/evXsFAHH37t1y11mV3sOXff82btwoZDKZSE5OVrZVpffvaQDExo0bn9tHF7fBp6kzxrJU5W3waeqMT9e2wadV5P3TpW1QCCEyMjIEALF///5y+1SV7ZB7gCooPz8fsbGxCAwMVGkPDAzEkSNHylwmJiamVP8ePXrg5MmTKCgoeG6f8tZZmSoyxmcVFxfj/v37sLa2VmnPzc2Fq6sr6tSpgz59+pT63+mr8DLj8/X1hZOTE7p164a9e/eqPFdV3kNtvH8RERHo3r07XF1dVdqrwvtXEbq2DWpDVd4GX4YubIPaoGvbYHZ2NgCU+rw9rapshyyAKigzMxNFRUVwcHBQaXdwcEB6enqZy6Snp5fZv7CwEJmZmc/tU946K1NFxvis//73v3jw4AEGDx6sbPP09ERUVBQ2b96MlStXQqFQICAgABcvXtRq/hepyPicnJzw66+/Yv369diwYQM8PDzQrVs3HDhwQNmnqryHL/v+paWlYdu2bRg9erRKe1V5/ypC17ZBbajK22BF6NI2+LJ0bRsUQmDixIlo3749mjRpUm6/qrId8m7wL0kmk6n8LIQo1fai/s+2a7rOylbRPCtXrsT06dPx119/wd7eXtnetm1btG3bVvlzQEAAWrRogYULF2LBggXaC64mTcbn4eEBDw8P5c/t2rVDamoqfvjhB3Ts2LFC66xsFc0SFRUFS0tLDBgwQKW9qr1/mtLFbbCidGUb1IQuboMVpWvb4EcffYTTp0/j0KFDL+xbFbZD7gGqIFtbW+jr65eqRjMyMkpVrSUcHR3L7G9gYAAbG5vn9ilvnZWpImMssXr1aoSGhmLNmjXo3r37c/vq6emhVatWr/x/Ly8zvqe1bdtWJXtVeQ9fZnxCCERGRmLYsGEwNDR8bl+p3r+K0LVt8GXowjaoLVV1G3wZurYNfvzxx9i8eTP27t2LOnXqPLdvVdkOWQBVkKGhIfz8/BAdHa3SHh0dDX9//zKXadeuXan+O3fuRMuWLSGXy5/bp7x1VqaKjBF48r/OkJAQ/Pnnn+jdu/cLX0cIgfj4eDg5Ob10Zk1UdHzPiouLU8leVd7Dlxnf/v37cenSJYSGhr7wdaR6/ypC17bBitKVbVBbquo2+DJ0ZRsUQuCjjz7Chg0bsGfPHri7u79wmSqzHWrtdOoaaNWqVUIul4uIiAiRmJgoxo8fL0xNTZVn60+ePFkMGzZM2f/KlSvCxMRETJgwQSQmJoqIiAghl8vFunXrlH0OHz4s9PX1xezZs0VSUpKYPXu2MDAwEEePHn3l4xNC8zH++eefwsDAQPz8888iLS1N+bh3756yz/Tp08X27dvF5cuXRVxcnBg5cqQwMDAQx44dq/Lj+/HHH8XGjRvFhQsXxJkzZ8TkyZMFALF+/Xpln6r0Hmo6vhJDhw4Vbdq0KXOdVen9u3//voiLixNxcXECgJg7d66Ii4sT165dE0JUj21Q0zHq2jao6fh0bRvUdHwldGUbfP/994WFhYXYt2+fyuft4cOHyj5VdTtkAfSSfv75Z+Hq6ioMDQ1FixYtVC79GzFihOjUqZNK/3379glfX19haGgo3NzcxOLFi0utc+3atcLDw0PI5XLh6empsmFLQZMxdurUSQAo9RgxYoSyz/jx40XdunWFoaGhsLOzE4GBgeLIkSOvcESqNBlfeHi4qF+/vlAoFMLKykq0b99ebNmypdQ6q9J7qOln9N69e8LY2Fj8+uuvZa6vKr1/JZdEl/d5qw7boKZj1LVtUNPx6do2WJHPqC5tg2WNDYBYtmyZsk9V3Q5l/xsAERERUY3Bc4CIiIioxmEBRERERDUOCyAiIiKqcVgAERERUY3DAoiIiIhqHBZAREREVOOwACIiIqIahwUQEVUrbm5umDdvnvJnmUyGTZs2vZLXIiLdwQKIiCrFkSNHoK+vj549e0qaIy0tDUFBQQCA5ORkyGQyxMfHS5qpLO+++y709fWxatUqqaMQ1QgsgIioUkRGRuLjjz/GoUOHkJKSIlkOR0dHGBkZSfb66nj48CFWr16NTz/9FBEREVLHIaoRWAARkdY9ePAAa9aswfvvv48+ffogKipK5fl9+/ZBJpNhx44d8PX1hbGxMbp27YqMjAxs27YNXl5eMDc3x5tvvomHDx8ql+vcuTM++ugjfPTRR7C0tISNjQ2+/PJLPO+OPk8fAiu5U7Wvry9kMhk6d+6sXO/48eNVlhswYABCQkKUP2dkZKBv374wNjaGu7s7VqxYUeq1srOz8e6778Le3h7m5ubo2rUrEhISXvj7Wrt2Lby9vTFlyhQcPnwYycnJL1yGiF4OCyAi0rrVq1fDw8MDHh4eGDp0KJYtW1ZmkTJ9+nT89NNPOHLkCFJTUzF48GDMmzcPf/75J7Zs2YLo6GgsXLhQZZnffvsNBgYGOHbsGBYsWIAff/wRS5cuVSvX8ePHAQC7du1CWloaNmzYoPaYQkJCkJycjD179mDdunVYtGgRMjIylM8LIdC7d2+kp6dj69atiI2NRYsWLdCtWzdkZWU9d90REREYOnQoLCws0KtXLyxbtkztXERUMSyAiEjrSr7QAaBnz57Izc3F7t27S/X79ttvERAQAF9fX4SGhmL//v1YvHgxfH190aFDB7zxxhvYu3evyjIuLi748ccf4eHhgbfffhsff/wxfvzxR7Vy2dnZAQBsbGzg6OgIa2trtZa7cOECtm3bhqVLl6Jdu3bw8/NDREQEHj16pOyzd+9e/Pvvv1i7di1atmyJhg0b4ocffoClpSXWrVtX7rovXryIo0ePIjg4GACUBWNxcbFa2YioYlgAEZFWnT9/HsePH8eQIUMAAAYGBggODkZkZGSpvs2aNVP+28HBASYmJqhXr55K29N7WQCgbdu2kMlkyp/btWuHixcvoqioSNtDUUpKSoKBgQFatmypbPP09ISlpaXy59jYWOTm5sLGxga1atVSPq5evYrLly+Xu+6IiAj06NEDtra2AIBevXrhwYMH2LVrV6WNh4gAA6kDEFH1EhERgcLCQtSuXVvZJoSAXC7H3bt3YWVlpWyXy+XKf8tkMpWfS9pexZ4QPT29UofoCgoKlP8uee7pwutZxcXFcHJywr59+0o993Sh9LSioiIsX74c6enpMDAwUGmPiIhAYGCgBqMgIk2wACIirSksLMTy5cvx3//+t9SX96BBg7BixQp89NFHL/UaR48eLfVzw4YNoa+v/8JlDQ0NAaDU3iI7OzukpaUpfy4qKsKZM2fQpUsXAICXlxcKCwtx8uRJtG7dGsCTPV337t1TLtOiRQtlIePm5qbWWLZu3Yr79+8jLi5OJf+5c+fw9ttv486dO7CxsVFrXUSkGR4CIyKt+eeff3D37l2EhoaiSZMmKo833nhDK5d4p6amYuLEiTh//jxWrlyJhQsXYty4cWota29vD2NjY2zfvh23bt1CdnY2AKBr167YsmULtmzZgnPnzuGDDz5QKW48PDzQs2dPvPPOOzh27BhiY2MxevRoGBsbK/t0794d7dq1w4ABA7Bjxw4kJyfjyJEj+PLLL3Hy5Mky80RERKB3797w8fFR+V0NGjQIdnZ2+OOPPyr+iyKi52IBRERaExERge7du8PCwqLUc4MGDUJ8fDxOnTr1Uq8xfPhwPHr0CK1bt8aHH36Ijz/+GO+++65ayxoYGGDBggX45Zdf4OzsjP79+wMARo0ahREjRmD48OHo1KkT3N3dlXt/SixbtgwuLi7o1KkTBg4cqLzcvYRMJsPWrVvRsWNHjBo1Co0aNcKQIUOQnJwMBweHUllu3bqFLVu2YNCgQaWek8lkGDhwIOcEIqpEMvG8CTSIiKqQzp07o3nz5rz9BBG9NO4BIiIiohqHBRARERHVODwERkRERDUO9wARERFRjcMCiIiIiGocFkBERERU47AAIiIiohqHBRARERHVOCyAiIiIqMZhAUREREQ1DgsgIiIiqnFYABEREVGN8/8BX/h81P8YGbkAAAAASUVORK5CYII=\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -234,8 +230,7 @@ "Consider a nonlinear feedback system consisting of a third-order linear system with transfer function $H(s)$ and a saturation nonlinearity having describing function $N(a)$. Stability can be assessed by looking for points at which \n", "\n", "$$\n", - "H(j\\omega) N(a) = -1", - "$$\n", + "H(j\\omega) N(a) = -1$$\n", "\n", "The `describing_function_plot` function plots $H(j\\omega)$ and $-1/N(a)$ and prints out the the amplitudes and frequencies corresponding to intersections of these curves. " ] @@ -248,7 +243,7 @@ { "data": { "text/plain": [ - "[(3.343977839598768, 1.4142156916757294)]" + "[(3.343977839541308, 1.4142156916816762)]" ] }, "execution_count": 7, @@ -257,14 +252,12 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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XFwc7u7utGrViunTp2MymdQuTXUffPABcXFxuLm50b17d1avXq12SQ7nxRdfpGfPnnh7exMSEsINN9xAcnKy2mU5vBdffBGNRsPDDz+sdikOJz09ndtvv53AwEA8PDzo0qULW7ZsUbssh2M2m/nvf/9b87e7ZcuWPPvss1it1kavRUJNI3rssceIiIhQuwyHtW/fPqxWK7Nnz2b37t28+eabfPTRRzz11FNql6aqb7/9locffpinn36apKQkBg4cyLBhw0hNTVW7NIeycuVKHnzwQdavX8/SpUsxm80MGTKE8vJytUtzWJs2bWLOnDkkJiaqXYrDKSwspH///ri4uLBw4UL27NnD66+/jp+fn9qlOZyXX36Zjz76iPfee4+9e/fyyiuv8Oqrr/Luu+82fjGKaBR//vmn0rZtW2X37t0KoCQlJaldklN45ZVXlLi4OLXLUFWvXr2UCRMm1DrWtm1b5YknnlCpIueQk5OjAMrKlSvVLsUhlZaWKq1bt1aWLl2qXHrppcqUKVPULsmhPP7448qAAQPULsMpDB8+XBk/fnytYzfeeKNy++23N3ot0lPTCLKzs7n33nv5/PPP8fDwULscp1JcXExAQIDaZajGZDKxZcsWhgwZUuv4kCFDWLt2rUpVOYfi4mKAZv37cy4PPvggw4cP54orrlC7FIf022+/0aNHD0aOHElISAhdu3Zl7ty5apflkAYMGMCyZctISUkBYPv27axZs4arr7660WtpVhtaqkFRFMaNG8eECRPo0aMHR44cUbskp3Hw4EHeffddXn/9dbVLUU1eXh4Wi4XQ0NBax0NDQ8nKylKpKsenKArTpk1jwIABdOzYUe1yHM4333zD1q1b2bRpk9qlOKxDhw7x4YcfMm3aNJ566ik2btzI5MmTMRgM3HHHHWqX51Aef/xxiouLadu2LTqdDovFwvPPP8/o0aMbvRbpqblAM2bMQKPRnPNj8+bNvPvuu5SUlPDkk0+qXbJq7G2rU2VkZDB06FBGjhzJPffco1LljkOj0dS6rSjKacfESZMmTWLHjh18/fXXapficNLS0pgyZQpffPEFbm5uapfjsKxWK926deOFF16ga9eu3H///dx77718+OGHapfmcL799lu++OILvvrqK7Zu3cqnn37Ka6+9xqefftrotcg2CRcoLy+PvLy8cz4mNjaWUaNG8fvv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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -295,14 +288,12 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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QnLXXXdBUZQZX21tbbwvSwief/55XHvttejo6ICiKPjtb3874/uqquKuu+5CR0cHKioqcOmll2LXrl18LpYzC92rT37ykye9z84//3w+F8uRzZs345xzzkFNTQ1aWlrw/ve/H3v37p3xGHpfZcnnftF7S+Pee+/F6aefboSWbdy4EY8//rjxfd7vq7ITIg899BBuvfVWfO1rX8O2bdtw0UUX4ZprrkFPTw/vSxOS0047Df39/cbXjh07eF+SEESjUaxfvx7f/e53Z/3+N77xDdxzzz347ne/i9dffx1tbW248sorjf1J5cRC9woArr766hnvs8cee8zGKxSD5557Dp///OexZcsWPPXUU0ilUrjqqqsQjUaNx9D7Kks+9wug9xYAdHZ24u6778bWrVuxdetWXH755bjuuusMscH9faWWGeeee6560003zfizU045Rf3KV77C6YrE5c4771TXr1/P+zKEB4D66KOPGv+dyWTUtrY29e677zb+LBaLqcFgUP3BD37A4QrF4cR7paqqeuONN6rXXXcdl+sRmaGhIRWA+txzz6mqSu+rhTjxfqkqvbfmo76+Xv3JT34ixPuqrCoiiUQCb7zxBq666qoZf37VVVfh5Zdf5nRVYrN//350dHSgu7sbN9xwAw4dOsT7koTn8OHDGBgYmPE+8/v9uOSSS+h9NgfPPvssWlpasGrVKnz2s5/F0NAQ70viTigUAgA0NDQAoPfVQpx4vxj03ppJOp3Ggw8+iGg0io0bNwrxviorITIyMoJ0Oo3W1tYZf97a2oqBgQFOVyUu5513Hv7zP/8TTz75JH784x9jYGAAmzZtwujoKO9LExr2XqL3WX5cc801+PnPf46nn34a3/72t/H666/j8ssvRzwe531p3FBVFbfddhsuvPBCrF27FgC9r+ZjtvsF0Hsrlx07dqC6uhp+vx833XQTHn30UaxZs0aI95XQ23etQlGUGf+tqupJf0Zo/4gZ69atw8aNG7F8+XL89Kc/xW233cbxyuSA3mf5cf311xv/e+3atTj77LOxZMkS/OEPf8AHP/hBjlfGj1tuuQVvv/02XnzxxZO+R++rk5nrftF7K8vq1auxfft2TExM4OGHH8aNN96I5557zvg+z/dVWVVEmpqa4Ha7T1J5Q0NDJ6lB4mSqqqqwbt067N+/n/elCA2bLKL3WXG0t7djyZIlZfs++8IXvoDf//73eOaZZ9DZ2Wn8Ob2vZmeu+zUb5fze8vl8WLFiBc4++2xs3rwZ69evx3e+8x0h3ldlJUR8Ph/OOussPPXUUzP+/KmnnsKmTZs4XZU8xONxvPPOO2hvb+d9KULT3d2Ntra2Ge+zRCKB5557jt5neTA6Oore3t6ye5+pqopbbrkFjzzyCJ5++ml0d3fP+D69r2ay0P2ajXJ9b82GqqqIx+NivK9sscQKxIMPPqh6vV71vvvuU3fv3q3eeuutalVVlXrkyBHelyYcX/rSl9Rnn31WPXTokLplyxb1ve99r1pTU0P3SlXVSCSibtu2Td22bZsKQL3nnnvUbdu2qUePHlVVVVXvvvtuNRgMqo888oi6Y8cO9WMf+5ja3t6uhsNhzlduP/Pdq0gkon7pS19SX375ZfXw4cPqM888o27cuFFdtGhR2d2rm2++WQ0Gg+qzzz6r9vf3G19TU1PGY+h9lWWh+0XvrSy33367+vzzz6uHDx9W3377bfWrX/2q6nK51D/+8Y+qqvJ/X5WdEFFVVf3e976nLlmyRPX5fOqZZ545Y9yLyHL99der7e3tqtfrVTs6OtQPfvCD6q5du3hflhA888wzKoCTvm688UZVVbVRyzvvvFNta2tT/X6/evHFF6s7duzge9GcmO9eTU1NqVdddZXa3Nyser1edfHixeqNN96o9vT08L5s25ntHgFQ77//fuMx9L7KstD9ovdWlk996lPGmdfc3KxeccUVhghRVf7vK0VVVdWe2gtBEARBEMRMysojQhAEQRCEWJAQIQiCIAiCGyRECIIgCILgBgkRgiAIgiC4QUKEIAiCIAhukBAhCIIgCIIbJEQIgiAIguAGCRGCIAiCILhBQoQgCIIgCG6QECEIgiAIghskRAiCIAiC4AYJEYIgCIIguPH/A5r+KlqyxXkRAAAAAElFTkSuQmCC\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -314,7 +305,7 @@ " inputs=1, outputs=1\n", ")\n", "\n", - "sys = ct.feedback(ct.tf2io(H_simple), io_saturation)\n", + "sys = ct.feedback(ct.ss(H_simple), io_saturation)\n", "T = np.linspace(0, 30, 200)\n", "t, y = ct.input_output_response(sys, T, 0.1, 0)\n", "plt.plot(t, y);" @@ -337,8 +328,8 @@ { "data": { "text/plain": [ - "[(0.6260158833531679, 0.31026194979692245),\n", - " (0.8741930326842812, 1.215641094477062)]" + "[(0.6260158833534124, 0.3102619497970334),\n", + " (0.8741930326860968, 1.2156410944770426)]" ] }, "execution_count": 9, @@ -347,14 +338,12 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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XqK8vJyAgADGjBnDTz/9hJOT+QpMheU4OWh47Ir2XNszgOdXHGF7Yj5fbEnmiy3JuDhq8Pdypo27E208TF++7tr6y23cneno74FWVwhHl5tO2G8qO2a9x4gRI874G7nqqquYNWsWJ0+eJDw8/Kw49u/fT3p6Omq1mt69e5OVlUWvXr14++236dq16zljz8jIYNmyZYwYMeKCbXz44YeZO3cu1157LXFxcUyfPp3Dhw/Tr18/Bg8eTFpaGp9++ildu3Zl586dDBw48KxzVFdXs2/fPp555pkzrh89ejTbt2+/2MNcLyYmhu3btzN37twG30YIW6coCuuOZfPKqmOkFZj2phsQ7s3c8d1oL4vo2QWbSGq6d+/Ohg0bLB2GaAYRbdz54d4BfLUtmVdWxgJQWWMgOa+c5Lzyc96me5AXK6YPgZjvwFANgb0hqA9ZWVmEhYWdcayfn6noLysr65xJTVJSEmAqYn/33XcJCwvjnXfeYcSIESQkJODt/U+39KRJk/j111+prKzk2muv5csvvzxvu06cOEFSUhL33nsvBoOBCRMmMGjQIN5++20OHTrE9OnTmThxIlqtlltvvZUVK1acM6nJy8vDYDDUt+P0dmVlZZ33/uuEhoaSm5uLXq9n9uzZ3HvvvRe9jRD2ICG7lLmrYtmckAuAv6czz43rzDU9AmSLAztiMysKi5ZDpVIxdWgEj17W/qLHqlXw2oTuaDDC3q9MV/b754363y9WSm0t1vlexIxG02rHzz33HDfeeCPR0dF8/fXXqFQqlixZcsax8+bNY//+/axYsYLExERmzpx53jgPHTpEv379cHBwID4+ntTUVD777DN69+7NnXfeya233lp/bEBAAIWFF95S4lztasgL88aNG9m7dy+ffvop7733Hj/++ONFbyOELcst1fHs8sOMeW8zmxNy0WrUPDQykvX/G8G1PQMlobEzNtFTI1qmhy+LYvWRTI7nlJ33mCmDwuge7AUJa6EoBZxbQdcbAPD39z+r9yInx1QQ+O+ejjoBAQEAdOnSpf46JycnIiIiSE1NPeNYf39//P396dSpEz4+PgwbNowXXnih/hyn0+v1ODs7A6YhJK1We8bCke7u7hQVFQFw8OBBIiMjzxmfr68vGo3mnO06X5tOFx4ejkajoXv37mRnZzN79mwmTZp00dsJYWuqagws2JrM/I2J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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -382,7 +371,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -396,7 +385,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/examples/interconnect_tutorial.ipynb b/examples/interconnect_tutorial.ipynb index 1fc7f7d07..afaa37018 100644 --- a/examples/interconnect_tutorial.ipynb +++ b/examples/interconnect_tutorial.ipynb @@ -5,7 +5,7 @@ "id": "76a6ed14", "metadata": {}, "source": [ - "## Interconnect Tutorial\n", + "# Interconnect Tutorial\n", "\n", "Sawyer B. Fuller 2023.04" ] @@ -355,7 +355,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.15" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/examples/kincar-fusion.ipynb b/examples/kincar-fusion.ipynb index d8e680b81..3444ac95a 100644 --- a/examples/kincar-fusion.ipynb +++ b/examples/kincar-fusion.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 1, "id": "107a6613", "metadata": {}, "outputs": [], @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 2, "id": "a04106f8", "metadata": {}, "outputs": [ @@ -71,10 +71,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Object: vehicle\n", - "Inputs (2): v, delta, \n", - "Outputs (3): x, y, theta, \n", - "States (3): x, y, theta, \n" + ": vehicle\n", + "Inputs (2): ['v', 'delta']\n", + "Outputs (3): ['x', 'y', 'theta']\n", + "States (3): ['x', 'y', 'theta']\n", + "\n", + "Update: \n", + "Output: \n", + "\n", + "Forward: \n", + "Reverse: \n" ] } ], @@ -100,20 +106,18 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 3, "id": "69c048ed", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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b3R5cnIyHn30UeTm5uLTTz/Fl19+icDAQLzwwgtIT0/HggULbur9wsPDcfjwYbzxxhv4v//7P+Tm5sLe3h6dO3eudyHAtaxZswa9evXCF198gTVr1sDS0hLh4eF48cUXm13LSy+9hIqKCnzxxRdYtmwZwsPD8emnn2L9+vVNunihMf/5z38gkUiwbNky3HnnnfD398cLL7yA33//Hampqfp2MpkMGzZswAcffIBvvvkGixcvhpmZGby9vTF48GB069btpt6/qVqj7/3798dXX32FJUuWYMKECQgMDMSrr76Kv//+u942m9t3pVKJO++8E99//z369++P4ODgBu+9cuVK9O3bFytXrsTy5cuh1Wrh6emJ/v37o0+fPjfVHyJqGRIhhDB0EURELaWoqAjBwcGYOHEiVq1aZehyiIjaFEfsiMhoZWdn480338TQoUPh5OSElJQUvPfeeygtLcXs2bMNXR4RUZtjsCMio6VQKHDx4kXMmjULhYWFsLKyQt++ffHpp5+iS5cuhi6PiKjN8VAsERERkYngBMVEREREJoLBjoiIiMhEMNgRERERmQgGOyIiIiITwWBHREREZCIY7IiIiIhMBIMdERERkYlgsCMiIiIyEQx2RERERCaCwY6IiIjIRDDYEREREZkIBjsiIiIiE8FgR0RERGQiGOyIiIiITASDHREREZGJYLAjIiIiMhEMdkREREQmgsGOiIiIyEQw2BERERGZCDNDF2AMFi9ejHXr1uH06dOwtLREv379sHTpUoSEhDR5G1qtFpmZmbC1tYVEImnFaomIiMiUCCFQWloKT09PSKXXH5OTCCFEG9VltEaNGoX7778ft912G9RqNV566SUcP34cp06dgrW1dZO2kZ6eDh8fn1aulIiIiExVWloavL29r9uGwe4m5OXlwdXVFfHx8Rg0aFCTXlNcXAx7e3ukpaXBzs6ulSskIiIiU1FSUgIfHx8UFRVBqVRety0Pxd6E4uJiAICjo+M126hUKqhUKv3z0tJSAICdnR2DHRER0XUIIVCjEVCpNaiq0UKl1kCl1kJ1xfc1Gi3UWgGNRkCtFVBrtdBoBdQa3fdqrYBGq9uORquFRgsICAgBaLUCWqF7rhW699OK2nW1z68e9bp6HOzqYTGpVIIXx4S16s+lKadyMdg1kxACc+fOxYABA9C1a9drtlu8eDEWLFjQ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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -148,7 +152,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 4, "id": "2469c60e", "metadata": {}, "outputs": [ @@ -156,10 +160,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "Object: sys[6]\n", - "Inputs (2): u[0], u[1], \n", - "Outputs (3): y[0], y[1], y[2], \n", - "States (3): x[0], x[1], x[2], \n", + ": sys[3]\n", + "Inputs (2): ['u[0]', 'u[1]']\n", + "Outputs (3): ['y[0]', 'y[1]', 'y[2]']\n", + "States (3): ['x[0]', 'x[1]', 'x[2]']\n", "\n", "A = [[ 1.0000000e+00 0.0000000e+00 -5.0004445e-07]\n", " [ 0.0000000e+00 1.0000000e+00 1.0000000e+00]\n", @@ -193,7 +197,7 @@ "# Create a discrete time model by hand\n", "Ad = np.eye(linsys.nstates) + linsys.A * Ts\n", "Bd = linsys.B * Ts\n", - "discsys = ct.LinearIOSystem(ct.ss(Ad, Bd, np.eye(linsys.nstates), 0, dt=Ts))\n", + "discsys = ct.ss(Ad, Bd, np.eye(linsys.nstates), 0, dt=Ts)\n", "print(discsys)" ] }, @@ -209,20 +213,18 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 5, "id": "0a19d109", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbIAAAEYCAYAAAA59HOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABeeElEQVR4nO3dd3hUZfbA8e9JIUAChCT0ktC7tNAEBDsqiiIqiIqLilhW17KyFkjyAwu2de2LrKLiKqigLkWK0puE3gk99IRQkpA+5/fHTGKAJCQwSSZwPs8zT2buvfPeMxcyJ+973yKqijHGGFNWeZV2AMYYY8zFsERmjDGmTLNEZowxpkyzRGaMMaZMs0RmjDGmTLNEZowxpkyzRGaMMaZMs0RmjBuJSA8RWSoiJ0UkQUSWiEin0o6rsETkDxFpIiINRWT1WfueFJFoEUkTkQmlFKIx5/Ap7QCMuVSISGVgGvAYMBkoB/QE0kozrmwiIoCoqiOf/b5AKLADGACsPuuQg8AY4EagQjGGakyRWI3MGPdpCqCq36pqlqqmqOpsVV2ffYCIDBWRLSJyXERmiUhorn0qIsNFJMa1/yNX8kFEGovIAldNL15EJuV635UistK1b6WIXJlr33wReVVElgCngYYFxN8a2KzO6X7COSuRqeoUVf0JOHYxF8kYd7NEZoz7bAeyRORLEblJRKrm3ikitwMvAf2BasAi4NuzyugLdALaAnfjrP0AjAZmA1WBusAHrjKDgOnA+0Aw8C4wXUSCc5V5PzAMqATsPTtoEfmLiJwAlgDdXM+fA8aKyAkRaVDUC2FMSbJEZoybqOopoAegwGdAnIj8IiI1XIc8CryuqltUNRN4DWiXu1YGvKGqJ1R1HzAPaOfanoGz2a+2qqaq6mLX9luAGFX9WlUzVfVbYCtwa64yJ6jqJtf+jDzi/kJVA4FVQFfgCmAjUFlVA1V198VdGWOKlyUyY9zIlaQeVNW6OJvqagPvuXaHAv9y1XJOAAmAAHVyFXE41/PTQIDr+QuuY/8QkU0iMtS1vTbn1rL2nlVmbH7xikiQK56TwJXAfGAb0Aw4LiJ/O99nNqa0WSIzppio6lZgAs6EBs6E8qirlpP9qKCqSwtR1mFVfURVa+Os2X0sIo1xdsAIPevw+sCB3G8voNwEV23sUWC86/mvwK2u+N4rxEc1plRZIjPGTUSkuYg8JyJ1Xa/rAYOA5a5DPgVeFJFWrv1VROSuQpZ9V3a5wHGcySkLmAE0FZF7RcRHRO4BWuLsPVkUHfmzc0d7nM2MZ8fgIyLlAW/AW0TKi4j1fDalzhKZMe6TCHQBVohIMs4EthFnxwlUdSowFvhORE659t1UyLI7ucpNAn4BnlbV3ap6DGcHkedw9iZ8AeirqvFFjL0jsNrVSSRLVY/nccwrQArwD+A+1/NXingeY9xObGFNY4wxZZnVyIwxxpRplsiMMcaUaZbIjDHGlGmWyIwxxpRpl0XX2ZCQEA0LCyvtMIwxxlygVatWxatqtbz2XRaJLCwsjOjo6NIOwxhjzAUSkXPmCc1mTYvGGGPKNEtkxhjjYU6ezmDQuOVsOXSqtEMpEyyRGWOMh5mx8RDLdh1jyur9pR1KmWCJzBhjPMz09YcAWBRT1JnGLk/n7ezhWrjvfByqeuLiwzHGmNJ1Oj2TiuVKrx9cQnI6y3YdI9i/HFsPJ3LkVCo1KpcvtXjKgsLUyA4C0Thnw87vsT7fdxtjTBnx8fwddBg9p1TvTc3adJgsh/LizS0AWLg9rtRiKSsKk8i2qGpDVW2Q3wPnrNvGGFNmRe9J4J3Z20nNcPDO7G2lFsf09YcIC65I//Z1CAnws+bFQihMIuvmpmOMMcYjnUzJ4Onv1lI7sDzDezVi7pajrNqb10o2xSu7WfHmNrXw8hKuahLC4h3xOBy2SklBzpvIVDUVQETCRWSqiKwWkfUiskFE1uc+xhhjyhpV5aUpGzhyKpX3B7bnqWsbExJQjrdmbaWkl7nKbla85YpaAFzVtBoJyelsOmjd8AtSlF6L3wBfAHcCt+JczO/W4gjKGGNKyqSVsUzfcIjnbmhG+/pVqVjOhyevbszyXQks2VGyd02ymxVb1qoMQI8mIQAsjLH7ZAUpSiKLU9VfXKvS7s1+FFtkxhhTzHYcTSTyf5vo0TiER69qmLN9UJf61AmsUKK1smNJaSzbdYxbrqiFiAAQEuBHq9qVrcPHeRQlkUWIyHgRGSQi/bMfxRaZMcYUo9SMLJ787xoqlvPh3bvb4uUlOfv8fLx5+romrNt/klmbjpRIPLM2HSHLodzcptYZ23s2qcaqvcdJSssskTjKoqIksr8A7YA+OJsUs5sX3UJE6onIPBHZIiKbROTpPI7pLSInRWSt6zHKXec3xlxe3pi5la2HE3nnrrZUz2OcVv/2dWhYzZ93Zm8jqwQ6W8zYcGazYrarmoaQ6VCW7bTO4fkpyqi/tqraptgigUzgOVVdLSKVgFUiMkdVN5913CJVdVsCNcZcfuZuPsKEpXsY2r0BVzevnucxPt5ePHd9M57472p+XnuA/h3qFls82c2Kw3s1zGlWzNYxtCoVfL1ZFBPH9S1rFFsMZVlRamTLRaRlcQWiqodUdbXreSKwBahTXOczxrjHqr3H6f3WPBaXkfFOh0+m8vcf1tGyVmVG3NSswGNval2T1nUq88+520nPdBRbTPk1K4KzmbNbo2C7T1aAoiSyHsBaEdl2dvd7dxORMKA9sCKP3d1EZJ2IzBSRVgWUMUxEokUkOi7O/gMYU1y++2Mfe46dZuiElczZXDL3ky5UlkN5ZtJaUjMcfHBve/x8vAs83stLeP6GZsQmpDApOrbY4sqvWTHbVU1C2HPsNPuOnS62GM7H4VC2Hj7FV8v28MR/V9P51bnc8+9lHE9OL7WYshWlabFPsUWRi4gEAD8Cf1PVswdPrAZCVTVJRG4GfgKa5FWOqo4DxgGEh4fbaEJjikFmloO5W45wbfPqxCenM3ziKt69uy392nlmY8qr07ewbNcx3hxwBY2qBRTqPb2aVqNzWBAf/BbDgA51qVCu4ORXVAU1K2br2dS5MPLCmDjuCw516/nzo6rsjEti3tY4Vuw+xso9xzmZkgFArSrl6RQWxJwtR7h3/AomPtSZ4AC/EokrL4VOZCXR1V5EfHEmsW9UdUoeMZzK9XyGiHwsIiGqWjbaNIy5xKzcc5zjpzMY0LEuPZtW46EJK/nbpLUkp2Vxb5f6pR3eGb5etofPl+zmwSvDuDu8XqHfJyI8f2Mz7v73Mr5ctofhvRq5Na6CmhWzNQzxp05gBRbFxHFf1+JLZJlZDlbtPc7cLUeYu+Uou+OTc85/U+uadG4QRKewIOpWrYCIsCgmjoe/jObez1bwzSNdCCmlZHbepkURWe2OYwpRhgD/wTm347v5HFPTdRwi0hln/NaVx5hSMmvTYfx8vOjVrBoBfj58ObQzvZtW46WpG/hs4a5Cl+NwaLGO15q/7SiR/9vMtc2rM7Jv0W/1d24QRO9m1fhk/k5OpWa4NbYZGw7RIMQ/32ZFcCbTq5qGsHTHMTKynPfqIiMjz1v2+Y6JjIwkOS2TXzce4tnJa+n06lzuGbecL5fupX5QRUbf3po7Wcrvz/fmjTuvoH+HutQLqphTc+zZpBo9Ts1jX8JpBo5bztHEcyd5KkycF0vO959HRFKAmIIOAaqo6kX9+SUiPYBFwAYg+67qS0B9AFX9VESeBB7D2cMxBXhWVZeer+zw8HCNjo6+mPCMMWdRVbq/8Tsta1dh/JDwnO3pmQ6embSW6RsO8dS1TXjmuiZ5NpnFJ6Uxf1scv289wsLt8XRvHMyn93XMt3ntQm09fIoBnyyjflBFvh/eDX+/C1uiZeOBk/T9YDFPXdOYZ28ouJNIYURGRvLX51+k06tzeax3I/5+Y/Nz9udOAjM3HOKxb1bz/fBudAoLQkTyTP4OhwNV5YvfN/LIDe3oHvUL3mmJVA0KRlJP4J2VSt0GTTmxdwtfjnyI0OHjOH10H8GhzWlW7jjNg30Yfu/tLJg7iwYNGtCrVy/GjRvHjTfeyPz588nMzOSGG27g559/plWrVlx99dU8G/EGv5ysi9e+aIZf05zb+lzHjBkz6NChAz169HDLHykiskpVw/PaV5h/0ebnP4SsooV0LlVdjDMpFnTMh8CHF3suY8zF23DgJAdPpp7zpV7Ox4v3B7XH38+b93+LISk1k5F9nUuSbDp4it+3HuX3rUdZt/8EqlCjsh8dQqsya9MRPlu0i2FXua/p7mhiKg9NiMbfz5v/PBh+wUkMoHWdKtxyRS3GL95Ni1qVua5lDXy9827UOjsJ5SUqKoqmNw0lKyuLK+v4kZCQQEJCArt27aJTp05ERUURGhpKeHg4P/74Ix27dOf05vkMvC2KXRtWAs6a2iOPPELt2rW54YYb2LZtG7Gxsew9FM/nn34AwJKI2wjt2JtKdzxBwtGjJCefZulvMzm0cBIAez8dRr97HuCzl/7G8YRjZGVlUTM4kNWrV/Pggw8CMGzYMF5++WWefPJJAIKCgtizZ0/O63ej/sHQJ59jcYNu/BBfnjsqhRAbG8tTTz2VE2dERESx1c7OWyO7FFiNzFyo1Iwsjp5Ko35wxdIOxeO8NWsrny7YxapXriOwYrlz9jscyujpm/liyR46hwWxNyGZI6fSEIG2dQO5pnl1rmlenVa1nU1qj3+zmtmbjzBpWFfCwwqznm/BUtKzGDhuGduPJPH98G60rlPlosvceyyZweNXsPF/42ly01AGdqrHwM7O6azAWUs9deoUgYGBrFixggMHDtCtWzc+//xzmjdvTvny5Rk7diwLFy7MKbNO9/78/a6r6NKlCxUrVuS9997jiy++yNmfOwH0/3gJWQo/P9E93xpZZpaDOz9Zyr6E06yNuLHA2lB+ZRTlmNz7V+87zpD//EGgvy/fPtKVulUrFuochVFQjQxVveQfHTt2VGMuxF//u1pbjfpVU9IzSzsUj3PtO/N10LhlBR7jcDj0vTnbtcurc/WxidH6fXSsxiWm5nnsyZR0verN37XLq3P1WFLaRcWWleXQ4V9Ha9g/pumsjYeK9N6IiIg8t2dkZGh8fLzOnjNXAb3qkUit0n2Q1ntigra77WH9xxsf6gMPDFEg5/Hoo49qRkaGpqae+5kBbfCPafrmr1vyPJ/z6/lM787epmH/mKbHk9PyjfOD37Zr6IhpOm3dwXyPOd9nLcoxZ+9fu++4ton4Va98/Tfddyy5UOcoDCBa8/mOL/UkUxIPS2TmQvyx+5iGjpimoSOm6crdx0o7HI+y42iiho6YphOW7HZruRv2n9AmL83QB/6zQrOyHBdczusztmjoiGn62cKd5+zL74v11KlTGhcXp4AuWbJEJ02apKNGjdL9+/frqFGjdNy4cfrUU0+dkaieeeElfXvWVg0fM0dDR0zTbq/N1X/N3Z5nEjpb/4f+pqEjpummAyfz3J9XnNF7EjR0xDT937oDeb5n04GT2vil6frEN6vOe/7itGH/Cb0icpZ2e22u7o5LckuZBSUya1o0Jg8Oh9LvoyUcOplKfFIaI/o057He7u12XZZ9PH8Hb/66jWUvXkOtKhXcWvbE5Xt55aeN/P3GZjxxdeMiv3/AI88QHXwdg7vUZ8ztrXM6j2RlZZGWloa/vz/z5s0jLS2NpUuXMnjwYKZOncrChQuZMWNGTjkF3dM5u7ksI8vBb1uO8M2KfSyKiefUkv8y5Mm/83DPBrSqnXeT5n3jV3DgRAq/P9er0B1cMrMctB89h5tb12LsgCvO2Jee6aDfR0uIS0xjzjNXUdX/3ObekrT54CkGj1+On483/32kCw0LOW4vPwU1LRZ6Zg8R8RORe0XkJREZlf24qMiM8VA/rN7PhgMnGdm3BQ2r+RO9J6G0Q/IoszYepm29QLcnMYDBXepza9vavDN7G8t3FX50jaryyfwd/Dj+PdpUPEn/0EwiIyNZsWIFn376Kddeey3+/v4AXH311SxbtszZ4aJpU0aMGMH06dNzkpOqFtgxISIi4ozXvt5e9Gldi68f6sL853vz9AsvMWvTYW55fzGDxy9n/rajZyS+Y0lpLN0Zz81tahapl6aPtxc9GoewMCaOsyshH/4ew5ZDp3i9f5tST2IALWtX5tthXcnIcjBw3PKcMWnFoShTVP0M9MPZ9T0518OYS0pSWiZvzdpGh/qB3Na2Np1Cg4jee9yWm3c5dDKFdftPcmOr4pnAVkR4vX8bwoL9eerbNcQlpuXsy04uqs5OFTNnzmTJkiV88+0k6rYM5/GrnRP9TIsYzNQpPxIREUGXLl0YPnw48+fPL1SiOjtJ5aWgJBcW4k/Era1Y9uK1/OOm5uw4msSDX6ykz3uLmBwdS1pmFrM2HcGhcEub2oW7KLn0bFKNQydT2XE0KWfb+v0n+Gj+Tvp3qONREws3r1mZ74Z1pX39QKpVKr7B0kXpi1pXVUtkmipjStNH83YQl5jG+AfCERHCw6oyKTqWHXFJNK1RqbTDK3WzXetz3diqptvLzu62HuDnw0eDO9Dvw8U8MWExr/SuwaxfZxIVFUWlSpVIS0vj4YcfpmrVqgTXacjYNYpvv//jg4+a8tdrm55TW8ntfInKXV3Eq1TwZXivRgzt3oD/rTvIZ4t28cIP63lr1jYq+HrTIMSfFrWK/v+pZ86q0fE0qVGJ1Iwsnpu8jmoBfkTcmu/0s6WmSY1K/Pv+vDsbuktREtlSEWmjqhuKLRpjStneY8n8Z9Fu+neoQ9t6gQB0cnUFX7knwRIZztk8GlcPKPRchYWVmJhIVFQU7du3Jzo6mkcffZQ2R2Yxf0sl4hYeYv4PnwPw/PPPExERQfXq1TmQ6svgr1aRnJbJuPs7ckOrmsSXUKIqrHI+XtzZsS79O9RhyY5jjFu0i4Xb43jmuqYXNPi7XlBFGob4s3B7HA/1aMA/524n5mgSE/7SiSoVfIvhE3i+oiSyHsCDIrIbSMM5eFlV9YqC32ZM2fHajC34eAsj+vw5D0BocEWqVfIjes9xBncpmQlbPdXx5HRW7E5geK+GRX5v7kHChw4domLFinzxxRdkZGSwZ88ePv74YwBuv/12Ro0aRd26dfnhs/d4bvI6pq49wOKYsfRoUi2ntvXjqv28OHUDNSr78fVD3WlWs1LOeTyRiNCjSQg9moRw+GQqIQEXfh/rqqbV+G7lPpbujOezhbsY1LkevZvlva7a5aAoieymYovCGA+wdGc8szYd4e83NqNGrhWDRYROYVVZaR0+mLvFOcFtXs2Kec1moars3r2bKlWqEBUVRbNmzQgJCSEmJob+/fszfPhwypd3XuuPPvronN6AIsKYO1qz4cBJnv5uDc//42WyHMrYX7cybuEuujUM5uPBHTyic0NR1Kxy7orURdGzSQgTlu5h2FerqFWlAi/fUmxLRZYJhe7soc7Z7wOBW12PQC2BGfGNKQlZDuX//reZulUr8FCPBufsDw8NYv/xFA6dTCmF6DzHrE1HqF2lPG3ymCUjKiqKAwcOsGPHDiIjI5k/fz5fffUVzzzzDCEhzvs69957L0uWLOHxxx+nZs2aOUksW173ryqW8+HjwR1ITstib9gtDJ2wknELd/FAt1C+eqhzmUti7tC1YTC+3uLsmHTXFQRcxNRbl4JCf3oReRp4BMheXmWiiIxT1Q+KJTJjStB3K/ex9XAiHw/uQHnfc9ebyr5PFr3nOLe2dX+X87Lg5ZGjWKTdGNTZOT94YmIi27dv57nnnmPBggUA1K1bl5dffpnIyEh8fJxfL0OGDAEKNx1Sfs2CTWpUYsztrXnu+3X4eAmv3tH6sm7m9ffz4f6uYVSp4MuVjUJKO5xSV5Q0/hDQRVWTAURkLLAMsERmyrSTKRm8M3s7nRsEcVPrvHvitahViYrlvInek8CtbYveZbqsy8rK4rUxowm86gHa3fgco0aNIjw8nJ49ezJnzhx8fX3Pm6gK0629IHd2rEuWQ2lUPYCOoVUvqqxLwahbL+/mxNyKMo5MOHOW+yzOM1u9MWXB+7/FcPx0OqP6tsy3F5mPtxcd6ldl5Z7jJRxdyTi7JrRy5Uo+//xztm7dylVXXZVTuzqx8CtWz/mR0aNH069fP4KCgvD1dfaUK4lu7Xd3qmdJzJyjKDWyL4AVIjLV9fp2nAthGlNm7YxL4sule7gnvN55Z0cPD6vKv36L4VRqBpXLXxrdnFWVnTt3EhUVRa9evfjtt98YNGgQSUlJ9O3bl+rVq7Nw4ULSMx34+Xrz/OS1/N9dbfMsy1N7C5pLX1E6e7wLDAUSgOPAX1T1PXcGIyJ9RGSbiOwQkX/ksV9E5H3X/vUi0sGd5zeXn1enb6GCrzfPFWKhxE5hQajC6r1lr1aWnWROnjxJbGwskydPZuTIkTz77LM0aeKcDeOaa67Bx8cnZ7HE6tX/7M69bNcxqnQfVCyDoI25WEXq6qKqq4BVxRGIiHgDHwHXA/uBlSLyi6puznXYTUAT16ML8InrpzFFtmB7HL9vPcpLNzcv1PQ57eoF4u0lRO85XibG7DgcDtLS0pg6dSpRUVE88MAD/Pjjj9x0000MGDCAu+++G4B//vOfBd7fcjiccxjWu24IPZpYxwLjec5bIxORxa6fiSJyKtcjUUROuTGWzsAOVd2lqunAdzjndsytH/CVa1b/5UCgiNRyYwzmMpGR5WD0tM2EBVfkwSvP7W6fF38/H1rVruxx48mya1tZWVnMnDmTCRMm5EyI+/zzzzN48GAAGjVqRHJyMq1bt8bL68xf/YLub32+ZDfLdyUw8paWefboNKa0nbdGpqo9XD+Le26eOkBsrtf7Obe2ldcxdYBDxRuaudRMXL6XHUeT+OyBcMr5FL7PU3hoEN+s2Et6pqNI77tQy3cd486Hn+GDt1+jf4e6OduzsrLYuHEjKSkpREVFkZWVxaOPPkqVKlXo3bs3FSpUoFu3bkDeA43Plt/9rZgjibw5axvXtajOXeF18zzGmNJWlGVcxhZm20XIq7vY2b95hTnGeaDIMBGJFpHouLi4iw7uUvDz2gPM2GA5/3hyOu/NjaFH4xCua1G0JsJOYVVJy3Sw8eDJfI/JcijvzN7G6n0Xdy8ty6FE/rKJg/O+5ukJC3nlvwv59NN/M3LkSA4fPsyYMWNyktWYMWMYP348V155JRUqnDvO7UK6vqdnOnhm8loC/Hx4vf8VFzQvoDEloSh/Ul6fxzZ3Tlu1H6iX63Vd4OAFHAOAqo5T1XBVDa9WrZobwyybVJXR0zYz9tetpR1KqZu65gAnUzJ4+ZYWRf5y7hjm7Ppd0PpkH83bwQe/7+DZSWtJz3Sct8yza0MZGRmkpaUR3vNaZj3TC4D9HwzmX+++zeoK7XlxZAR16tTh+++/L/T6WRfSo/DD32PYeOAUr93RpliX4DDmYhXmHtljIrIBaO7qKbjB9dgDuHMm/JVAExFpICLlgIHAL2cd8wvwgKv3YlfgpKqWmSrG5OhYft1YOuFuO5JIfFI6e4+d5uCJy3uapUUxca4lNCoX+b3VK5UnLLhivuPJVuw6xntzt9OqdmX2HDvNNyvOP4tbVFQUP/74I99//z2//vorr732GvsOHEJ6P06/DxcDzo4b7733L+ZujWPAJ8vO+De82IHGeVmz7zgfzd/JnR3q0iefQeLGeIrC1Mi+wTm34k9AX9fjFqC9qg52VyCqmgk8CcwCtgCTVXWTiAwXkeGuw2YAu4AdwGfA4+46f3E7lZrBqJ838spPGwv1V7q7Ldnx50q7RVl191KTnulgxe6EnDWdLkR4WBDRexLOueeUkJzO09+tpX5QRSY92o3ujYN58ZVRnEzJyDnm9OnTLFiwgFWrVnH77bfn1AgHDBjAhg0b6NOnDxEREczcnUFCVgVeuaUFERERiAgP9WjAf4Z0Yl/Cafp9tIS1sScA94/fSkl3rm9Vs3J5Im6z2SOM5ytM9/sZqtpDRG7DmcSyiYioqhb9z9p8qOoMnMkq97ZPcz1X4Al3na8kTVt3iNQMB6kZ6fy66TC3lfA0R0t2xBMWXJHjpzNYvuvYGR0HLier9x3ndHoWPRpfeCLrHBbED6v2szMumcbVnWtyqSp//34dCcnpTHn8SgL8fBhxY1P++8hExk55hCr7lyEi3H333WRkZNCkSRN++ukn4Nw5CI8mpvLpgp3c1Lom4WFBhOdKVFc3r86Ux6/koS9Xcs+/l/HWXW3d/n/pjZlb2BWfzH8f6XLJDPw2l7bz1shy9VoMUNXKuR6V3JnELnWTomNpWiOA+kEVmbi8ZBcNyMhysGLXMXo0CaFLgyCW7/Ks7uMlaXFMPN5eQtdGwRdcRniu+2TZtaHxi3bx67J1PNWjJj989k/uuOMO2tZ3nuP1+3pxOOEUL7zwAmFhYVx33XVUrvznr87ZTYP/nLOd9EzHGWui5da0RiV+erw7V9StwlPfruHdOdvPOxlvYS2KiePLZXsZ2r2BTUZryozLe+7/ErLtcCLrYk8wsm9LMrIcvDFzK9uPJJbYasPrYk+Q7KqFHDyRyuzNRzhwIoU6gZffLO6LdsTTrl7gRdU0woIrUlmT+T16C59FRVGzSVsiv19Gs5DyPNhzIBVuGIm3t3O8lYjQ9OUZOAq4z5S7aXDb4UQmrYxlyJVhhIX45/ue4AA/Jj7chZembOT932L4ITqWqv7lCPDzoVJ5XyqX9yGgvA+VyjtfB1Usx7UtqhMckH+njZOnM/j79+tpXD2AF/qcf6YTYzxFUZZxuQv4VVUTRWQk0B4Yo6qriy26S8Tk6Fh8vYU72tdBVXl39na+Wb6XqH6tS+T8i3fEI+Jcw+jQyVQAlu88xp0dL6/mxROn01m//wRPXdOkUMdHRkYSERHBqVOn2LNnD7/88gt33HEHv/76Kydn/8JnaxcB8Nh9/al77QP8/N/PCKh45tpYERERBHRryIfzdjC0ewPa1gss8Jyvz9yCv59PoWL08/Hm7buuoGNoVf7YfYzE1EwSUzM5cCKFrakZJKU5X2c5nLW1ct5e3NSmJvd1DSU8tOo5PTZH/bKR+KQ0Pnsg3AY+mzKlKDWykar6vYj0AG4A3samiDqv9EwHU9cc4PqWNQhyLQB4c5uaTFl9gBf6NMe/BBbEW7rjGG3qVCGwYjkql/clsKIvy3YVPZEdTUzlq6V7Gd67UZlcyG/pzmOoktPR4+wVjR0OB8nJyaxcuZJFixblDDRu3749V199NS+88AJ+fn60bt2awC79GTN9C3vH9qXhi9OZ/GhXAiueu8BjZGQkSWmZfLdyH6/O2MKkYV3z7fK/KCaO+dvieOnm5oVeLFJEuLdLfe7tUj/P/apKSkYWe4+dZtLKWH5ctZ+f1x6kec1KDO4ayh3t6xDg58O09Qf5ee1Bnr2+KW3qFjx5sjGepijjyLKXcLkF+ERVfwYuv6VZi+i3LUdISE7n7vA/h7/d1zWUxLRMflmX5xA4t0pOy2T1vuM59zu8vMR1n6zoPRc/mb+TD+ft4LnJa3E43HNPpiQtioknwM+HtvUCSU1NJSoqiq+//prXX3+d7du3ExUVxcaNG5k+fXpOghszZgzr16+natWq+Pn92SwX7lpos0r3QTx7fVM6hgble94APx+evq4pf+xOYM7mI3kek+VQXp2+hbpVK/BAtzC3fWYRoWI5H1rUqkzkba1Y8fK1vNG/Dd5ewsifNtLl1bm8NHUDr/y0kbb1Anm8dyO3nduYklKUP6sPiMi/geuAsSLiR9ES4WVpUnQstaqUp2eTPwdldwytSvOalZi4fC8DO9Ur1hkT/tiTQKZDz+il161hMLM2HSE24TT1gioWqpy0zCymrjlA9Up+zNp0hI/n7+DJQjbRFdaSHfEM/3oVKRlZ+HgLvl5e+Pp44eMl+Hp74est+Hg7X5fz8aJrw2BeurlFvuVFRkYyatQo9uzZQ9WqVfl23HuE1g/l4aH/5auvvgLggQceYNSoUTRt2pSoqCgAunXrxjvvvFPgtE6talemcnkfev7laR7rdf4v/4Gd6jFhyW7emLmVq5tXx9f7zF+dKav3s/VwIh8Mal+szXoVy/kwsHN97ulUj7WxJ5i4fB8/rtqPCLx7d1t8vO1X2pQ9RUlkdwN9gLdV9YRrst6/F09Yl4ZDJ1NYuD2OJ65ujLfXn8lKRBjcNZSRP21kbewJ2tcvvoUCl8TEU87HK6enHZDTY2/5rmOFTmSzNx3hxOkMvhramSmr9/POnO20ql2Fq5u7Zxb41IwsXpyygaCAcvS9ohYZWUpGloNM18+MLCXT4ch5Pv/bj1jfdgCDOtengatTRGxsLHv37iUoKIjvvvuO0aNH07hxYzIzM+l89U04Wt3CQwM68EC3ML788suLWtHY19uL6U/1pFolP7y8zv+HiK+3Fy/e1IKHv4rmuz/2cX+uWldKehZvz95Gu3qB9L2iZObAFhHa169K+/pVGdm3BYmpmYX+v2CMpyl0IlPV0yKyE7hRRG4EFqnq7OILrez7cdV+HAp3dax3zr472tfhjRlbmLh8X7EmssU74gkPrXrGX/lNq1ciyL8cy3Yd467wc2PLy+ToWOoEVqBH4xA6hQWx/UgST323hl+e7JGTSC7GJ/N3si/hNN883IXujUPOuX+VLTMzk7S0NAKGTKBm5QZEfryf0MwDDBkyhCVLltC0aVMmTZrE6NGjAbj//vuJiIjA51AqXr5+Z9RML3ZF46J+8V/bojpdGwbxz7kx9GtfJ6fn5PhFuzhyKo0P7+1QKvMZBlYsl+f9PWPKiqJMGvw0zlk+qrseE0Xkr8UVWFnncCiTo/fTrWEw9YPP/cIL8PPh9vZ1mLb+ICdOpxdLDPFJaWw9nEj3swb/Zt8nW7Hr3Nkp8hKbcJrFO+K5K7wuXl5ChXLe/Pv+jvh4CcO+iiYpLbNIcZ2dIHbHJ/PJgp3c1rY23RuHoKpERUWxbt061qxZQ0REBH/88Qeffvop119/PQEBzkHIhydHMGveYl4eFUGjRo144IEH6Nq1K1FRUefMQbg4Jp46gRXOSLolvaKxiPDyzS1JSE7n0/k7AWcHmk8W7KRPq5p0Csv/PpsxJn9FaRB/COiiqqNUdRTQFXikeMIq+1bsTmBfwmnu7pR/z8D7uoaSlungh1X7iyWGpTudHTrOTmQA3RoFc+BECvuPn3/exe9d8eWuvdULqsiH93ZgZ1wSf/9+3RkJ8XwJIioqitOnTxMTE0NsbCx3/3Uk6XvW0Dp1I7169cpZK6tdu3ZMmTKFyMhIOnfuzPDhw5k3b17OuRZuP0r5LgP5dePhPM+TXePKzHKwZGc8PRqHlPoM7m3qVuGO9nX4z+LdHDiRwj/nxDgHP9+U9+BnY8z5FSWRCX/2XMT13NZ1yMfk6Fgqlffhptb53/NoUasyHUOr8s2KfcXSC3DpjngqlfehTZ1zu1N3bei8T7ZsZ8G9F7Mcyg/RsfRsUi1nAHV2oureOIQXb2rBzI2H+WTBzpz3REVFERcXR3R0NMeOHeO9997j+++/57777stJJP7+/rzyyiusPJjG4eqdGPnoQIb95X4WLFhwRm1q9OjReSafiIgIujcKITS4It8s35dn7Nlxrj9wksTUTI9Z3fj5G5uhwLOT1jJp5T7u6xrqluZZYy5XRUlkXwArRCRSRKKA5cB/iicsz5Ge6WDa+oNFmgLoVGoGMzYc4ra2tc/bA+2+rvXZHZ/Mkp3xFxvqGVSVRTHxdGsYfEZHk+wv9ybVAwj2L3dON/yza1OLYuI4eDKVe8Lr4XA4OHbsGFFRUfzxxx98+eWX9G1SgRoxvzDqrQ+56c57c5JO9erVeeedd/D392fIkCEMGDCAiRMnnpGk/vPVN7z5215aN6zLkCvDzjhvYe5feXkJgzrX5489CcQcScz32MUxzgHhedVMS0OdwAo81KMBK3YnOAc/X+ve3p/GXG4KnchU9V3gL0ACcAz4i6q+V0xxeYypa/Zz3+PPM3fL0QKPy50Afll7kLRMB/d0qpfn/txual2LqhV9mbh873mb5Iqyf1/CaQ6cSDmnFpLdxTwzM5MrgoUl2w6ycuVK5s+fT2xsLFFRUcyZM4cffviBiIgIPp+9irQV3xEz73ueeOIJQkKc5XXp0oXVq1dTvXp15n/7MZ1uuJMDbYawJz4JcCaqb7/9lvLly1O16pmzSGQnqfd/i+HwqVTG3N76nG7fhb1/dVfHuvh6C9+syLtWBs5E1qp25ZwB6Z7gsd6NaFmrMi/f3MKj4jKmLJLC1jREpDzOZVN6Ag5gMc6B0anFF557hIeHa3R09AW9NyPLQTkfb65683dmP3MVfj5517Byd+Xu9+Fi0jIdzHy6Z84XeEFdvV+fsYXxi3ez6/VbUFVUlaysLFJSUvD19SU5OZnk5GRCQ0NZu3Ytfn5+VKhQgU2bNtGqVSs2btzIwYMHGTZsGGPGjKFhw4ZsTICPvv0f377+DNtWLeHnn39m/vz5Oee877778KrRlN9S6vPmdcHMm/Ez48ePz9kfERHBX59/ka6v/8YD3cIY2ffP5Tzy+iyxCae59cPFZGYp/pumEBUZSa+m1alQLu/rte1wIje/v4i7OtbljTuvOP8/RAH++u0aFmw7yoqXrjvnfElpmbSLms0jVzXMdxJeY4znE5FVqhqe587sL87zPYDJOJsSr3Y9xgHfF/b9pfno2LGjXoiIiAgFch69br9f33rrLX311Vd1165dGhERoQMHDjzjmC7dr9KqVw/VV7+ZqxEREXrfffedsf+qq67S999/X9etW6cRERE6b948vfGW2844pm/fvrp69Wp9++23ddWqVXrPPfecsf+hhx7S2NhYXb58ucbFxenf/va3M/ZHRETo4xNXaZdX56rD4TjjMzn/yZ1ijpzS0BHT9NsVe/Pc/9nCnRo6YppuO3zqnOuSl80HT+oL36/TdlGzNHTENG3+ykwd/nW0/rRmv55KSc85zuFw6F2fLNV2UbM0ISntgv5tclu2M15DR0zTySv3nbNv7ubDGjpimi6Jibvo8xhjSg8Qrfl8xxelRrZOVdueb5snupgaGThrIA9NWMmynfHMe7431SuXz/MYVeX//reZicv3suKla8+YL+98g28f+PwPvn6oC+mZWefM+lDYMrL3OxxKxzFzuKZ5Dd65+8x/ntzjs1SVTq/+Ro/Gwbw3sP0Z+1WVG/65kIDyPkx9vHu+58xLZpaDP3YnMHPjYX7ddJi4xDTKeXvRs0kIfVrX5HR6FhG/bGLsnW24p1PecwQWhapy3bsLqFzB95xYI3/ZxHcr97Eu4oZ8a9PGGM9XUI2sKJ091ohI11yFdgGWXGxwrrLeEpGtIrJeRKaKSGA+x+0RkQ0islZELjwzFVFERASv3NKCjCzlzVnb8j3GOY3Tfq5vWeOcSV/P13nh/q6hVOk+iN+25D0XX2HKyN6/+dApjp/OoHvjc9fcyn3vSUTo2tC5Pll2gszev3rfCWKOJnFPIQdM5+bj7cWVjUMYfXtrVrx4LT8M78b93ULZejiRv/+wnohfNtGhfmCeA8UvhHPi3FDW7DvB5oOnzti3KCaOzg2CLYkZcynLr6p29gPYgvPe2B7XwwFsAjYA6wtbTj5l3wD4uJ6PBcbmc9weIKSo5V9o0+LZXp+xRUNHTNM1+47nuX/auoMaOmKazt92tMhlZ2Y59MrXf9MO/zdbZ286fFFx/nvBDg0dMU0Pn0w577FfL9ujoSOm6a64pDO2v/D9Om0xcqYmpmZcVCy5ORwOXRd7XN+fu133xCed/w1FcDw5TZu+PENfnro+Z9vBE6c1dMQ0Hbdgp1vPZYwpeRTQtFiUGlkfoAHQy/VoANwM9AVuvchkOltVs6eHWA545EJZT17TmGqV/Ij8ZVOe474mR8dSu0r5M6ZBKixvL2HCXzpRvXJ5HvkqmhE/rC/yjBnZFu84RuPqAdTIown0bN1yzbuYLSktk/+tP0jfK2q5dbkWEeGKuoH89domhAa7d9xUYMVy3HJFLX5ac5Bk13VbFOMc0uAp48eMMcWjKN3v9xb0cGNMQ4GZ+YUBzBaRVSIyrKBCRGSYiESLSHRcXJxbAgvw8+GFG5uxNvYEP687cMa+gydSWBgTx4COdc8Yt1UUTWpU4ucnuvN470Z8vyqWm/61kJV7EopURlpmFn/sPlboZNowxJ9qlfzOGBg9ff1BTqdnnTF8oCwY3CWUpFzL4yyOiSckwI/mNUtmJW5jTOkosTUbRGSuiGzM49Ev1zEvA5k453TMS3dV7QDcBDwhIlfldz5VHaeq4aoaXq1atfwOK7I7O9Slbd0qvDFza85f/uCcIFgVBlzkfZ9yPl680Kc5kx/thiDc/e9lvDFzK2mZWed/M7Bm3wlSMxyFHvwrInRrGMzyXcdy7pNNWhlLo2r+dCjGyYyLQ4f6gTSvWYlvVuzF4VCW7IinR+PgUp+WyhhTvEoskanqdaraOo/HzwAiMgRnM+Vgzf5GPbeMg66fR4GpQOeSij+bl5cw6tZWHDmVxsfzdwCuCYJXxXJlo7wnCL4Q4WFBzHi6J/eE1+PTBTvp9+ESNh08ed73LdkRj5dAl4aFn4C2a8NgjiamsSs+mZgjiazed4KBneqXuQQgIgzuUp+NB04xKTqWY8npZ6wDZ4y5NBVl9vu5IlIsXe1FpA8wArhNVU/nc4y/iFTKfo6zg8jG4ojnfDqGVuWO9nX4bNFu9h07zfJdx4hNSDljFWh3CPDz4Y07r+CzB8KJT0rjlvcX8+jX0WzYn39CW7Ijnrb1AnOWCCmM3PfJJq2MxcdLuKNDnYuOvzTc3r4OFct5M2baZsDujxlzOShKjewF4J8i8oVrUU13+hCoBMxxda3/FEBEaovIDNcxNYDFIrIO+AOYrqq/ujmOQhvRpzk+XsKrMzbnTBDcp3XNYjnX9S1rMPfZXjx1TWOW7TzGrR8u5oHP/+CP3WfePzuVmsG6/Sfp3qhoX95hwRWpUdmPRdvjmbLmANe1qEFIgJ87P0KJqVTel9va1iY5PYumNQrX4cUYU7YVZWHN1cA1InIn8KuITAHeVNXzrwNy/rIb57P9IM6ekajqLsBjBl/XrFKeJ65uzFuztuHjmry2OJeoD6xYjmdvaMYjVzXk6+V7+c+i3dz972V0DgviiWsac1WTEFbsSiDLoUWeHNc5niyYn9c6O0nc07lsdfI42+AuoXy3MpYeja1Z0ZjLQZHukYnzpsk24BPgr0CMiNxfHIGVBQ/1aEC9oApkOtTtzYr5qVTel8d7N2bxiGsY1bcl+xJOM+TzP+j30RK+XLqH8r5edAgNLHK53VzLutSqUp6ryvh9pTZ1q/Cvge0Y3qthaYdijCkBha6RichioCHOQdDLgQeBrcDTItJTVQvsDn8pKu/rzbt3t2PBtjha16lcoueuUM6boT0aMLhrfaasPsAn83eyfv9JejYJuaBZLK50NUfedRHDBzxJv3Zl8x6fMaboijLXYmtgU149CkVki6q2cHdw7nKxcy2WBZlZDn7bepQm1QNoWC3ggsqI3pNA6zpVirWJ1BhjLkRBcy0W5R5ZQT0EbylyVMatfLy9uLHVxXU2CQ8rfJd9Y4zxFG4ZR+bqiGGMMcaUuEI3LZZlIhIHXMw0WiFAvJvCKU4Wp3tZnO5lcbrX5RZnqKrm2RPtskhkF0tEovNrm/UkFqd7WZzuZXG6l8X5pxKbosoYY4wpDpbIjDHGlGmWyApnXGkHUEgWp3tZnO5lcbqXxeli98iMMcaUaVYjM8YYU6ZZIjPGGFOmWSI7DxHpIyLbRGSHiPyjtOPJj4jsEZENrmVwPGY+LhH5XESOisjGXNuCRGSOiMS4fpb6UtT5xBkpIgdc13StiNxcmjG6YqonIvNEZIuIbBKRp13bPeqaFhCnR11TESkvIn+IyDpXnFGu7Z52PfOL06OuZzYR8RaRNSIyzfW6WK+n3SMrgIh4A9uB64H9wEpgkKpuLtXA8iAie4BwVfWoAZIichWQBHylqq1d294EElT1DdcfB1VVdYQHxhkJJKnq26UZW26utQBrqepq10Kzq4DbcU7i7THXtIA478aDrqlrRQ9/VU0SEV9gMfA00B/Pup75xdkHD7qe2UTkWSAcqKyqfYv7d95qZAXrDOxQ1V2qmg58B/Qr5ZjKFFVdCCSctbkf8KXr+Zc4v+BKVT5xehxVPeRaGxBVTQS2AHXwsGtaQJweRZ2SXC99XQ/F865nfnF6HBGpi3P+3fG5Nhfr9bREVrA6QGyu1/vxwF9GFwVmi8gqEfH0JXVqqOohcH7hAdVLOZ6CPCki611Nj6XeBJqbiIQB7YEVePA1PStO8LBr6moGWwscBeaoqkdez3ziBA+7nsB7wAuAI9e2Yr2elsgKltfCXB75VxDQXVU7ADcBT7iayszF+QRoBLQDDgHvlGo0uYhIAPAj8DdVPVXa8eQnjzg97pqqapaqtgPqAp3FuWSVx8knTo+6niLSFziqqqtK8ryWyAq2H8i99HNd4GApxVIgVT3o+nkUmIqzWdRTHXHdQ8m+l3K0lOPJk6oecX15OIDP8JBr6rpH8iPwjapOcW32uGuaV5yeek0BVPUEMB/nfSePu57ZcsfpgdezO3Cb6579d8A1IjKRYr6elsgKthJoIiINRKQcMBD4pZRjOoeI+LtuqCMi/sANQEHrx5W2X4AhrudDgJ9LMZZ8Zf/iudyBB1xT103//wBbVPXdXLs86prmF6enXVMRqSYiga7nFYDrcK5872nXM884Pe16quqLqlpXVcNwfl/+rqr3UczXs9ALa16OVDVTRJ4EZgHewOequqmUw8pLDWCq87sDH+C/qvpr6YbkJCLfAr2BEBHZD0QAbwCTReQhYB9wV+lF6JRPnL1FpB3O5uQ9wKOlFV8u3YH7gQ2u+yUAL+F51zS/OAd52DWtBXzp6qHsBUxW1WkisgzPup75xfm1h13P/BTr/0/rfm+MMaZMs6ZFY4wxZZolMmOMMWWaJTJjjDFlmiUyY4wxZZolMmOMMWWaJTJjjDFlmiUyY4wxZZolMmPKCBFZKiKBIvL42dvdVH6YiKTkGsBcmPdUcK2DlS4iIe6Iw5iiskRmTBmhqlcCgcDjeWx3l52uiWkLG1OK63iPnIPUXB4skRlzEcS5CvL1rudjROT9s/aHichWEfnStdTGDyJS0bXvWRHZ6Hr8zbXNX0Smi3Ml4I0ick+uspJwTvXTyFULeivXdgooM0ycKzV/Js7VhWe75us732fLjn28q7xvROQ6EVkizpV+S3uCWmMAm2vRmIsVAfyfiFTHuebWbXkc0wx4SFWXiMjnwOMiMg/4C9AF53JBK0RkAdAQOKiqtwCISJWzyvoH0DqvWpOIdMynzONAE5yrmz8iIpOBO4GJhfh8jXHOizcM5yTa9wI9XJ/zJTxgUVRjrEZmzEVwrSwtwLPAQFXNyuOwWFVd4no+EWci6AFMVdVk18q/U4CewAbgOhEZKyI9VfVkEcLJr0yA3aq61vV8FRBWyDJ3q+oG1zIhm4Df1DlB64YilGFMsbJEZsxFEJE2OGcmT1PVxHwOO3tmbiXvRVtR1e1AR5yJ4nURGVWUcArYl5breRaFb43J/T5HrteOIpRhTLGyRGbMBXKtBfUN0A9IFpEb8zm0voh0cz0fBCwGFgK3i0hF1xpydwCLRKQ2cFpVJwJvAx3OKisRqJTPefIs8wI/njFlhiUyYy6Aq8PGFOA5Vd0CjAYi8zl8CzBERNYDQcAnqroamAD8AawAxqvqGqAN8IerC/zLwJjcBanqMWCJq/PFW2fty69MYy5pth6ZMcVIRMKAaaraurRjOZ+LidW1tH24qsa7Oy5jzsdqZMaYbFlAlQsZEA344rxvZkyJsxqZMcaYMs1qZMYYY8o0S2TGGGPKNEtkxhhjyjRLZMYYY8o0S2TGGGPKNEtkxhhjyjRLZMYYY8o0S2TGGGPKNEtkxhhjyjRLZMYYY8o0S2TGGGPKNEtkxhhjyjRLZMYYY8o0S2TGuJGI9BCRpSJyUkQSRGSJiHQq7bgKS0T+EJEmItJQRFbn2u4nIv8Rkb0ikigia0TkptKM1ZhslsiMcRMRqQxMAz7AuRJ0HSAKSCvNuLKJU76/8yLiC4QCO4COwOpcu32AWKAXUAUYCUx2LcZpTKmyRGaM+zQFUNVvVTVLVVNUdbaqrs8+QESGisgWETkuIrNEJDTXPhWR4SIS49r/kYiIa19jEVngqunFi8ikXO+7UkRWuvatFJErc+2bLyKvisgS4DTQsID4WwOb1blIYTi5EpmqJqtqpKruUVWHqk4DduNMeMaUKktkxrjPdiBLRL4UkZtEpGrunSJyO/AS0B+oBiwCvj2rjL5AJ6AtcDdwo2v7aGA2UBWoi7PWh4gEAdOB94Fg4F1guogE5yrzfmAYUAnYe3bQIvIXETkBLAG6uZ4/B4wVkRMi0iCP99TAmbg3ne+iGFPcLJEZ4yaqegroASjwGRAnIr+4vvQBHgVeV9UtqpoJvAa0y10rA95Q1ROqug+YB7Rzbc/A2exXW1VTVXWxa/stQIyqfq2qmar6LbAVuDVXmRNUdZNrf0YecX+hqoHAKqArcAWwEaisqoGqujv38a4myG+AL1V1a9GvlDHuZYnMGDdyJakHVbUuzqa62sB7rt2hwL9ctZwTQAIgOO+lZTuc6/lpIMD1/AXXsX+IyCYRGeraXptza1l7zyozNr94RSTIFc9J4EpgPrANaAYcF5G/nXW8F/A1kA48mV+5xpQkS2TGFBNXbWUCzoQGzoTyqKuWk/2ooKpLC1HWYVV9RFVr46zZfSwijYGDOBNkbvWBA7nfXkC5Ca7a2KPAeNfzX4FbXfG9l32s637df4AawJ151e6MKQ2WyIxxExFpLiLPiUhd1+t6wCBgueuQT4EXRaSVa38VEbmrkGXflV0ucBxncsoCZgBNReReEfERkXuAljh7TxZF7l6K7XE2M57tE6AFziSXUsTyjSk2lsiMcZ9EoAuwQkSScSawjTg7TqCqU4GxwHcicsq1r7BjsTq5yk0CfgGeVtXdqnoMZweR54BjOJsg+6pqfBFj7wisdnUSyVLV47l3uu7jPYrznt1hEUlyPQYX8TzGuJ04e9oaY4wxZZPVyIwxxpRplsiMMcaUaZbIjDHGlGmWyIwxxpRpPqUdQEkICQnRsLCw0g7DGGPMBVq1alW8qlbLa1+ZS2SusTlfATUBBzBOVf9V0HvCwsKIjo4uifCMMcYUAxE5Z57QbGUukQGZwHOqulpEKgGrRGSOqm4u7cCMMaYsSsvM4vDJVI4lp9OqdmX8fLxLO6QiKXOJTFUPAYdczxNFZAvOeeUskRljLgmqimsFnwLN33aU+dvi8PUWfL298PH2opzr+fQv3+euR57J2e7rLThUOXwyjUMnU5j2xfvUvvZ+Dp1wJrBsDUP8GXN7a2ZP/JDIyMgCzx8ZGVngMefb7y5lLpHl5lrUrz2wopRDMcaYIjmVmsG+Y6eJTTjNvoTT7E348/mGX8bT/e7HuKN9HW5rV5uQAL8z3hsREUG1Xvfx9uztVPD1RgQyshxkZCmqiqYlE/vF+6wL6k16/D7E2wfxLU/G0d34VgvD52Qs+37+jCa976BKzByuCA0ltG4ttqxezo60lvR97DuOz/03AwYP4YdvvqR169ZUrlyZpUuXMnDgQKZPn05qaipRUVEAdOjQgfQsZeHSFfS8+U5++vF7TmfCT/8ey/4Gt3DoZCpfP9SFIP9yxXIty+zMHiISACwAXlXVKXnsH4ZzDSbq16/fce/efJtXjTHG7bIcyqGTKexzJai9x07nPF/x478p32XgGcdXrehL/aCK1AuqyEeDO3LTu7+x6WAiWQmxtK3hxx09riBh82Jat27NLTf1oUr3QQy4dwg1Dy2hdq2adOvWjalTp7JvXyxffjkhp9x+/Qfw0PC/ElKrNnFHjzBv+k+89+7bOftffPFFoqKi8PHxQUR4ZeQoXh0zOmd//4f/xvj3xnL4VKrzcTKVCR+8xeyJH+YcU63XYCp2HZTz+sTibzi55M+l9tre9jAzv3qfWlUqXPD1FJFVqhqe5z53JTLXAn/n41DVE244ly/OSVFnqeq75zs+PDxcrbOHMaa4HTyRwi0PPkVgj8HsP36ajKw/v199vIQ6VStQP6giEx/uysjPp9OyYX32rF9GcsIhHvnLg9x///0sXLgw5z0PDnsCR61WrDqaxakKtUhZPon4pd/n7B81alROrehsIkJB3++F2X/3p0tZsTshj31QLcCPla9czyNfrqRWlfLUrFKBmlX8qFm5gut1eSqU8ynwHEVRUCJzZ9PiQdejoIZdb5xLTFywXEtJbClMEjPGmJKSkpHF2p/HU7/prWQlxtO9SQ3a+sVzdO82nnn8MR64/z4muhLV6KG38Nxzz/HCCy8QFBSEj48PCxYsAM5NMlkOZfmuY0zp0piNA55k9rO9zpsgIiIiLnp/xLCuzNx4mIMnUqhVpQI1XQmqeiU/fL29iMyIIPKBPHNLoc7hLu6ska1R1fYXe0whztMD5xLxG3B2vwd4SVVn5Pceq5EZY9wldwcGVWXnzp2sWLGC1atX8+67f/5tXbVFNyr0HErjejV54sYruKNDXXy9nXNQnK825CmdKDxJSTUtllfV1Is9pjhYIjPGFEZ+CcLhcJCens7s2bPp168fe/fuZfz48YSHh9OwYUN8fX1p1KhRzn0mVSUzy8H0DYf4ZP5Oth5OpHaV8jzcsyEDO9fjzdfGXHaJ6GKVSCLLdbJw4GWcq9b64GxqVFW9wq0nKgJLZMaYwhARMjIyyMzMZPLkyaSlpRHauBmTpvxCQsIxfvrvhJxj73rkGfo//DfSsxykZzp7DKZnOpg+4V9cfe8TpGU6yHDtWxgTx5FTaYCzU8d7A9vTq2mek1SYfJR0ItsG/J0zm/5Q1VLrNmiJzBgDede4EhMTGTp0KD/88EPOtqGPPUW9breyMbE8q2NP4sj1Nbl3bF9CR+S/ALe3l+SM6/Lz8cLXO/shlPPxppyPF3+7tglXN6/u7o93SSvpRLZYVXu4tdCLZInMGAPOGteyZcuoWrUqc+fO5ciRIzz99NOs2ryDE341uadLGFe+/hsHTqQA0Kp2Za5tXp3wsCAqlvPG19uLce+N5ZkRL1PO2wtfH2fCKufj5Xzt7YW31/kHMpuiK+lEdi0wCPgNSMventdYr5JiicyYy8PZNa6UFGdC6tu3L7///nvO9hdeeIEhT7/MT2sPMH39oZzElbL8O24b+jTXNK/O1c2qU7NK+RKN3+SvpBPZRKA5sIk/mxZVVYe69URFYInMmMuDiDBv3jyOHz9OxYoVWblyJUOHDiUoKIjy5csjInw0L4af1xxk25FEfLyEXk2r0btZNTo1CKJp9Up4WY3KI5V0Itugqm3cWuhFskRmzKXJ4XBw4sQJhg0bxo8//piz/aWXXuLVV18FnIOU52w+wowNh5j19QcE9hhMx9Cq3N6+Dre0qVVs0yYZ9yqpAdHZlotIS5uN3hjjTtnNhgcPHmTu3Ln07NmTzz//nJtvvplJkybh7e2NiOBwOIg5msSHv8cwe/MR1u8/CUCjav6MjoqiX7s61A+uWMqfxrhTcdTItgCNgN0475FZ93tjzAVzOBzs3buXhg0bsmjRIhISEmjRogWNGzfGoRCflMahk6kcPpnCW6+PIavdAPYcOw1A+/qB3NCyJte3rEHj6gGl/EnMxSjpGlmfYijTGHOJy91R49ixY6SkZfDJZ/9hzpzZrFzinNapZ8+ehN/xCHWvC+bwD/s4mphGVq6+8b5ht9At2J9HrmrI9S1qUL2ydda4HLg9kZXmeDFjTNngcCh7jiXnzKZ+8EQKUVFRzD/kRUZADfZtXo02vBKfSu2gRztCe7zA3rF9aTlyJpWrlMe/nA/dG4fkTE5bs7LzZ2iwPwF+ZXp1KnMB3PYvLiKrVbXDxR5jjLn0jf11K/9euIuMY7Ecm/URabEbAVgwLoK2tz3MfY/89YxZ1GtVKc/nPq/w+v9Zg485lzv/dGkhIusL2C9AFTeezxhThkRGRvLyyy+TmZnJgd8mUOOocKBKKxoMHsM/bm3Lg90bFDiR7uu51sgyJjd3JrLmhTgmy43nM8aUAampqWzfvp2oqCgcDgfDhw/nX2++hre3N/O2HuWFH9cT8csmwq4fwsYDJ2ldx/7eNUXjtkRm98aMMdlSU1OZPXs2bdq04S9/+UvOOlujR49mxe7jNLzxQbYdSWRPfHLOPIY+ne5m6+FES2SmyOyuqDHmokVGRvLKK68wY8ZMdh04Qnq5yhxNgd+SEqhwx2iadE8i5rWbCR0xje0C6YcTaVojgL5tatG0ZiWa1ahEWIh/znpdxhSFJTJjTJGpKnFJaWw/nMTM3xfxWlQUS73bsH3nbrRGM0ScCal24gma1qzEVU1CWPPIM4z6aw8aVw+gvK93KX8CcymxRGaMKdD+46eZtv4Q/1t3kOPJ6dQNLM/W/fHsm/8d6XF7SYlZBsCcUQPoNfAxhvW/m2Y1A2hSoxKVy/v+WdDN7+ZzBmMujtsTmYj4AXcCYbnLV9X/c/e5jDHul5CcTviYOWeswXV80TdUDr+NtP2bOJa0hxsHDqXN9ZG0qhtM05qVqFapfIE9Do0pTsVRI/sZOAmsItcyLsaYsmH9/hM5SSzz5FEqB1Rk79JvKV+7GQP6387Hgzue856IiIgSjtKYPxVHIqurqjZq0Zgyql2NcnzbL4ijR48ybtwPzJgxA4CjP0RyqPJxyCORnb3qsjElqTi6CC0VEY9axsUYU7CRI0fy888/s2vXLj755BOqVatGv379mD59ek6TYeiIabzxqg1KNp6nOGpkPYAHRcRjZr83xpxLVVmxYgW7d+9mzJgxLFmyhCrV63DdoEdZFZfE5Blb2Hk0iZ1xSQT2uJcg/3I0sRnkjQcqjkR2UzGUaYxxk9179jJuwkRadL2O998czap5zqbD7t27U6X7IAJ7DAbAz8eLBiH+tKpThdtGjqJXs2q2erLxSG5fjwxARNoCPV0vF6nqOrefpAhsPTJzOTqZksGuuCReHzOa9v2GMuvn7zl6MoWkymFohUC8Kzpn0AgJ8GPVyOt5ccp6GlULoFE1fxpVC6B2YAW8LXEZD1Gi65GJyNPAI8AU16aJIjJOVT9w97mMudw5HMqBEynsiEti88FTHDiRwq64JHbGJROXmEba4R0c/vKfrPBpTe2qjejZsyUNqwXkJKyG1QKoUsGXyMwIIu+wW9umbCqOFaLXA91UNdn12h9Y5s57ZCLSB/gX4A2MV9U3CjreamTmUrEnPpnr/7mAjKz8f2871KtM3OJJnNizmY3L5+Vsj4iIsN6Fpswq6RWihTNnuc9ybXNP4SLewEfA9cB+YKWI/KKqm911DmM81bcr952TxE4s/oYq3e6hY/k46iRu4ekbH6PWg2Px9/cHQERssLK5pBVHIvsCWCEiU12vbwf+48byOwM7VHUXgIh8B/QDLJGZS5aqsungKbKylErlfUhMzaSiD1zbNIgPx37L6/ddxbBHHsHb+9w5DG2wsrnUFVdnj45Ad5w1sYWqusaNZQ8A+qjqw67X9wNdVPXJs44bBgwDqF+/fse9e22VGVP2HDiRwg/R+/l53QF2xSXj6y10qi60rZLGL+PfZumSJTnHWtOhuZSVdNMiqroK5xRVxSGvZspzsrGqjgPGgfMeWTHFYkyx6j3wcTLaDSDr9ElQB+V3zSO1ZQuC2vfn1f9MoVfTanh5eVnTobmsuW1mDxFZ7PqZKCKncj0SReSUu86D875YvVyv6wIH3Vi+MR4hPT2dHbMm8FCTDK44vZYO9auS2qY/q71b8OqMLTz4xUo2HTxlTYfmslcsTYvFSUR8gO3AtcABYCVwr6puyu891mvRlBWqSnR0NBMmTODjjz/O2d785qGkXtEfVagTWIHrW9agT+uadG0YXIrRGlNySnoc2VhVHXG+bRdKVTNF5ElgFs7u958XlMSM8WSRkZFERkYSGxvLnDlzaNW6DfNXbaLGDY9wdcO7mPf81YSOmEbD2pW5oWVNrm9Zgxa1KiFiA5WNyVYc48hWq2qHs7atL825Fq1GZjxRcnIyAQEBLFq6jBmL1nAquDnLD2USn5SOj5fQtWEwScu+5aN3XqdOYIXSDteYUlUiNTIReQx4HGjkGhSd/SdjJWBJvm805jIzd+5c/m/Mayxa4Bys3PPKblTpPoi61zakd7NqXN+yBr2bVadKBV94uEspR2uM53NbjUxEKgNBwGvAP3DNeg8kqupxt5zkAlmNzJSW7KbDffv28c+P/k35Bh1ZtT+JmIxAVLzZO7Yvr0zdwPUta9C1YTDlfIpjZSVjyr6Sukc2Q1V7iMhtQN8zzy+qqpXdeC5jPFqWQ9l2+CRRUVHM3RoPrfqwL7MjXnv8aF4zhCdb1uD6ljX40W8UUbe3Lu1wjSnTylyvxQthNTJT3JLSMonek8DSrftZtm4rv332Kin7/5xspn2/h3ni+Ze4vkUN6gdXLMVIjSmbSnxAtDGXg5deGUXDGx9k5ppdrNpxmFObFiAidOp7H8+8/x0d6ldlQHg9HA6H9TI0phgVR/f7u4BfVTVRREYC7YExqrra3ecypjRkOZRvlsTw+qujqXWoBgGH13LPXQO57anXaVsvkAC/P3+tIiIiLIkZU8yK487ySFcS6wHcAHwJfFIM5zGmRKWmpvL6pxMJvfJWhlzVDIBDnz/JvZ3qMPbBa+neOOSMJAbY3IfGlIDiaFrMXsLlFuATVf1ZRCKL4TzGFKvsHoezZs1i1sLlxJRvxspth2h6xzOM++wzbrmits1xaIwHKI5EdkBE/g1cB4wVET+Kp+ZnTLFwOBxs376dqKgouva+jm83JrIgqwOB6sdrw7twX9dQyvl42RyHxniI4kgwd+OcPqqPqp7AObbs78VwHmMuSu5mv8TERBISEnj99dfp06cPLVq0AOCmq3sy7aepDLuqMQuev5qhPRrkjPWyZkNjPENxrUfWFujperlIVde5/SRFYN3vTV5EhJkzZ1KlShXmzZvH/fffT63adfhuZSzvzd3OqpE38Nf/rubvNzajXpB1mTemNBXU/b445lp8GngEmOLadAcwTlU/cOuJisAS2eXndHomWw4lkpqRRUp6FikZzseB2H2Mf/1FNq9clHPslXcNJ7z/MFLSs4g5msTu+GQ6hwURtO1nPv3nG6X4KYwx2Uo6ka0Huqlqsuu1P7DMJg02JSE1I4uJy/cyclQEfl0GolmZqCOTUyt+xDsgmPKhV+BVrgLe/lXZO7YvV0TOooKvNxXKeVPe15vACr482D2MG1rWsG7zxniQkh4QLfzZcxHXc/tGMMUqI8vBD6v28/5vMew/eJjD8ycSNeAG9m3bwH1/eYTqz/SmUsUKVCjnTQVfZ9IaXT6CyIgbSjt0Y8xFKo5E9gWwQkSm4kxg/YD/FMN5zGUsu2u8w6H8b/1Boj7/hV1rlhDsk87++d8DEPHkA0RERNC7fZN8yzDGlH3F1dmjA9DD9XKRqq5x+0mKwJoWLy2qipeXFxPnRDNq7HskBjaiWdOmvDjgSm5qF4qIICI2xsuYS0hBTYtu734vIuWB3sDVQC+gt2ubMYWSV00pLi6OL774gqFDh+Ll5fxve9/14WSJN+NfGcaC0YO4uX1Yzn0tG+NlzOWjODp7TAYSgYmuTYOAqqp6l1tPVARWIytbRIRdu3YREBDAZ599hp+fH4MGDWLlzsN8tyWNZbsS2Du2L9/9sZc7O9TFx9vG2xtzqSvpzh7NVLVtrtfzRKRUx5EZz5J9fytbRkYG6enpDBgwgF9//RWAhg0b8ve//50333yT2ITTvDpzK9M3HCLYvxyj+rZkl+9I7ulUv5Q+gTHGkxRHjWwC8KmqLne97gIMUdXH3XqiIrAamWcREaZOnUpAQADx8fFs27aNJ598kszMTGrUqJFzf0tVmbQylohfNuElwrCrGjLsqob4+9nqQ8Zcbkr0HhnQBVgqIntEZA+wDOglIhtcY8zMJS53bSshIYEZM2awdetW+vTpk3MP64477mDBggUMHDiQiIgIgoODqVGjBuC8v5Wclskzk9byjykb6NwgiHnP9+aZ65taEjPGnKM4vhX6FEOZxkOMGhXBMyNe5lRqBqdSMl0/MziVmsGuXXvYunEtX42J4tcNBylftQbtwrsQXC6LiqEBfDn5J6pX8sPLy6vAHoUDhz/LrR8uZk98Ms9d35Qnrm6Ml5cNRTTG5K1Yut97GmtaLLxRoyLo99DfWLIjnvX7T3Ay5cyEtXn0TdR/biope9aQmXCACk26kLzxd/zqtCB52xKS18/OKSvs+iH4dr6H9ExHzraK5bzJ+GMSNzzwVxqG+BMW7E+Dav40CPYnsKIvk6NjGfXzJipX8OX9ge3p1ii4NC6DMcbDlOgUVZ7IEtmfzu5ooarsik9myY54FsXEM35IJ0JHTCPz5GGqZx0jtGlr9i2ewqmDu9mx8vec9/W5awhP/COSaoGVqFzB1/ko74N/OR+8vf+scWU5lEMnU9gdn8ye+GR2xSfnPI89nkKW48//f5X8fEhMy6R742Deu6c91Sr5ldh1McZ4tksmkYnIW8CtQDqwE/iLa6mYAl0uiezsJJUXESE27gTTlm5g1pJV7PetR8y8H0g7tJ3U3atyjrtn0GCe/usThIeH4+Pjk3NvqzADjQsTB0B6poP9x0+z25Xcdscn07BaAA9eGYa3NSUaY3Ip0e73IjIXeK6Ylm6ZA7yoqpkiMhZ4ERhRDOc5Q2G+mM93TGRkJC+PHMWOo0nEHE2iaY0AmtWodMbEtPmVsTMuiWcmrWXP7Anc8uBTpGU4SM3MwtvLiwq+XkhaMppxmreiokjwDyUwMBDNSGXH+mi697md/WsWMGfObFYvc874Xq9aIAFt+1CzS1+u7lqTp295jauaVqd+cMXzJqrCDDQu7NRP5Xy8aFgtgIbVAgp1vDHG5KU4ut93AN4G9gIvqeoht57gz/PcAQxQ1cHnO/Zia2Qiwv79+wkODub48eMAVK1alfj4ePz9/XE4HISEhJCamsqBAwfw8vLCv3IgC9ds5XCaL5v2xfHJYzfR6O9TSDq4A/H2xTugKpVPH+DaLu1oVimDSo5TPPjAA/zrX/8iODiYxo0bM3PmTG6++WY+nfo7Uxau5+TSb6nSfRA+VWvjUymYrAObqNW2F3vnfMGprcty4q0U3o+qvR8EL58zEmU5by9iXruZD3+PoWeTEFrVrnJOzaewtSljjClJpdK0KCJ3AqNwrkv2pqqmuLn8/wGTVHViPvuHAcMA6tev33Hv3r1FPkdkZCRRUVE5r5955hnatWsHwDXXXMOvv/7KsmXL+Pzzz3OOadTpagJaX0NChbqk7N9C6r4NJK2dmbO/1839efSxJzjpE8iMpevZdMqXuMWTSVz1S84xz73wD94e+3q+cVTpPojAHs783bxmJcbdH55Tm0pKzWDSylj+b9rmnOP7XlGLu8Pr0SksiLGvjbZEZYwpc0o8kYmzGtAK58TBY4BUnE2CXxfivXOBmnnsellVf3Yd8zIQDvTXQnwAd9TI8jvN7R8tYW3sCfaO7UvoiGnUqOxHq9pVaF27Mi1rV6F1ncrUCayQb5fz0+mZLI6JZ+6WI7x1VztCR0zDx0vo3CCIjqFVOXwylT3Hktkdf5pVI68ndMS0nPfWqOxHk+qVeOPONtStWjGnNnXydAZT1+znxtY1qVWlwgV/bmOM8RQlfY9sMdAQ2AQsBx4EtgJPi0hPVR1W0PtV9brzlD8E6AtcW5gk5g4F3Re6tnl1rm9Zg5VJz/PWy9fl29MuvzIqlvPhhlY1uaFVTcqPGkW/oVcyd8sR5m4+wge/76BaJT8aBPtzTfNq1BjyV54c3IHQYH/CQipSsdyZ/3zZNa0qFX15sHuDC/uwxhhTxhTHPbLWwKa8koyIbFHVFhdRdh/gXaCXqsYV9n1ltddieqaDcj42Ia4xxpRojUxVNxaw+5aLLP5DwA+Y4+rEsFxVh19kmR7LkpgxxpxfiU5cp6q7LvL9jd0VizHGmEtDmRoQfaFEJA7ncIALFQLEuymc4mRxupfF6V5lIc6yECNcnnGGqmq1vHZcFonsYolIdH5ts57E4nQvi9O9ykKcZSFGsDjPZjdhjDHGlGmWyIwxxpRplsgKZ1xpB1BIFqd7WZzuVRbiLAsxgsV5BrtHZowxpkyzGpkxxpgyzRKZMcaYMs0S2XmISB8R2SYiO0TkH6UdT35EZI+IbBCRtSLiMfNxicjnInJURDbm2hYkInNEJMb1s2ppxuiKKa84I0XkgOuarhWRm0s5xnoiMk9EtojIJhF52rXdo65nAXF62vUsLyJ/iMg6V5xRru2edj3zi9OjrqcrJm8RWSMi01yvS+Ra2j2yAoiIN7AduB7YD6wEBqnq5gLfWApEZA8QrqoeNUhSRK4CkoCvVLW1a9ubQIKqvuH646Cqqhb7AqkXEGckkKSqb5dmbNlEpBZQS1VXi0glYBVwO86JuT3mehYQ59141vUUwF9Vk0TEF1gMPA30x7OuZ35x9sGDrieAiDyLc2WSyqrat6R+161GVrDOwA5V3aWq6cB3QL9SjqlMUdWFQMJZm/sBX7qef4nzS65U5ROnR1HVQ6q62vU8EdgC1MHDrmcBcXoUdUpyvfR1PRTPu575xelRRKQuzvl0x+faXCLX0hJZweoAsble78cDfyFdFJgtIqtci4p6shrZK4e7flYv5XgK8qSIrHc1PZZ6E2g2EQkD2gMr8ODreVac4GHX09UUthY4CsxRVY+8nvnECZ51Pd8DXgAcubaVyLW0RFYwyWObx/0l5NJdVTsANwFPuJrKzMX5BGgEtAMOAe+UajQuIhIA/Aj8TVVPlXY8+ckjTo+7nqqapartgLpAZ3EuQ+Vx8onTY66niPQFjqrqqtI4vyWygu0H6uV6XRc4WEqxFEhVD7p+HgWm4mwW9VRHXPdRsu+nHC3lePKkqkdcXyAO4DM84Jq67pH8CHyjqlNcmz3ueuYVpydez2yqegKYj/O+k8ddz2y54/Sw69kduM11r/474BoRmUgJXUtLZAVbCTQRkQYiUg4YCPxSyjGdQ0T8XTfVERF/4AagoHXhStsvwBDX8yHAz6UYS76yfwFd7qCUr6nrpv9/gC2q+m6uXR51PfOL0wOvZzURCXQ9rwBch3M1e0+7nnnG6UnXU1VfVNW6qhqG83vyd1W9jxK6liW6HllZo6qZIvIkMAvwBj5X1U2lHFZeagBTnd8f+AD/VdVfSzckJxH5FugNhIjIfiACeAOYLCIPAfuAu0ovQqd84uwtIu1wNifvAR4trfhcugP3Axtc90sAXsLzrmd+cQ7ysOtZC/jS1TvZC5isqtNEZBmedT3zi/NrD7ueeSmR/5vW/d4YY0yZZk2LxhhjyjRLZMYYY8o0S2TGGGPKNEtkxhhjyjRLZMYYY8o0S2TGGGPKNEtkxhhjyjRLZMaUESKyVEQCReTxs7e7qfwwEUnJNYi5MO+p4FoLK11EQtwRhzFFZYnMmDJCVa8EAoHH89juLjtdk9MWNqYU1/EeOQepuTxYIjPmIohzJeTrXc/HiMj7Z+0PE5GtIvKla7mNH0SkomvfsyKy0fX4m2ubv4hMF+dqwBtF5J5cZSXhnPKnkasW9Fau7RRQZpg4V2v+TJwrDM92zdl3vs+WHft4V3nfiMh1IrJEnCv+esykv+byZnMtGnNxIoD/E5HqONfdui2PY5oBD6nqEhH5HHhcROYBfwG64FwuaIWILAAaAgdV9RYAEalyVln/AFrnVWsSkY75lHkcaIJzdfNHRGQycCcwsRCfrzHO+fGG4ZxE+16gh+tzvoQHLIpqjNXIjLkIrpWlBXgWGKiqWXkcFquqS1zPJ+JMBD2Aqaqa7Fr9dwrQE9gAXCciY0Wkp6qeLEI4+ZUJsFtV17qerwLCClnmblXd4FoqZBPwmzonaN1QhDKMKVaWyIy5CCLSBufs5GmqmpjPYWfPzK3kvWgrqrod6IgzUbwuIqOKEk4B+9JyPc+i8K0xud/nyPXaUYQyjClWlsiMuUCu9aC+AfoBySJyYz6H1heRbq7ng4DFwELgdhGp6FpD7g5gkYjUBk6r6kTgbaDDWWUlApXyOU+eZV7gxzOmzLBEZswFcHXYmAI8p6pbgNFAZD6HbwGGiMh6IAj4RFVXAxOAP4AVwHhVXQO0Af5wdYF/GRiTuyBVPQYscXW+eOusffmVacwlzdYjM6YYiUgYME1VW5d2LOdzMbG6lrgPV9V4d8dlzPlYjcwYky0LqHIhA6IBX5z3zYwpcVYjM8YYU6ZZjcwYY0yZZonMGGNMmWaJzBhjTJlmicwYY0yZZonMGGNMmWaJzBhjTJlmicwYY0yZ9v8zoOoawhc+CgAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -268,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 6, "id": "993601a2", "metadata": {}, "outputs": [ @@ -276,10 +278,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Object: sys[7]\n", - "Inputs (6): y[0], y[1], y[2], y[3], u[0], u[1], \n", - "Outputs (3): xhat[0], xhat[1], xhat[2], \n", - "States (12): xhat[0], xhat[1], xhat[2], P[0,0], P[0,1], P[0,2], P[1,0], P[1,1], P[1,2], P[2,0], P[2,1], P[2,2], \n" + ": sys[4]\n", + "Inputs (6): ['y[0]', 'y[1]', 'y[2]', 'y[3]', 'u[0]', 'u[1]']\n", + "Outputs (3): ['xhat[0]', 'xhat[1]', 'xhat[2]']\n", + "States (12): ['xhat[0]', 'xhat[1]', 'xhat[2]', 'P[0,0]', 'P[0,1]', 'P[0,2]', 'P[1,0]', 'P[1,1]', 'P[1,2]', 'P[2,0]', 'P[2,1]', 'P[2,2]']\n", + "\n", + "Update: ._estim_update at 0x166ac1120>\n", + "Output: ._estim_output at 0x166ac0dc0>\n" ] } ], @@ -313,20 +318,18 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 7, "id": "3d02ec33", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -381,20 +384,18 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 8, "id": "44f69f79", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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9cK8efP0DI2IiIhMqq5eT5yRkYGNGzciLS0NPXv2BAC88847iImJwZEjR9CuXTu3X6cmN8ePH9crNCIiIjIx3Sovu3btgtVqLU5cAOD222+H1WrFzp07Nfs+eXl5yM3NdbkQERGR79ItecnOzkZwcHCp48HBwcjOztbs+yQnJxf31FitVrRs2VKz5yYiIiLv43HyMnv2bFgslnIve/fuBQBYLJZSX68oitvjVTVjxgzk5OQUX7KysjR7biIiIvI+Hve8TJ48GcOGDSv3nNatW+PAgQM4depUqcfOnDmDkJAQT79tmQICAhAQEKDZ8xEREZF38zh5CQoKQlBQUIXnxcTEICcnB7t370aPHj0AAN999x1ycnIQGxvreaRERERE0LHnpUOHDrj//vsxfvx4pKWlIS0tDePHj8eDDz7oMtOoffv2WLduXfH98+fPw2az4fDhwwCAI0eOwGazadonQ0REROal6zovq1atQufOnREXF4e4uDh06dIFH330kcs5R44cQU5OTvH99evXo3v37hgwYAAAYNiwYejevTuWLl2qZ6hERERkEhZFURSjg9BSbm4urFYrcnJy0LhxY82ff9AgYP16zZ+WiIioVvPk/Zt7GxEREZGpMHkhIiIiU2HyQkRERKbC5IWIiIhMhckLERERmQqTFyIiIjIVJi9ERERkKkxeiIiIyFSYvBAREZGpMHkhIiIiU2HyQkRERKbC5IWIiIhMhckLERERmQqTFyIiIjIVJi9ERERkKkxeiIiIyFSYvBAREZGpMHkhIiIiU2HyQkRERKbC5IWIiIhMhckLERERmQqTFyIiIjIVJi9ERERkKkxeiIiIyFSYvBAREZGpMHkhIiIiU2HyQkRERKbC5IWIiIhMhckLERERmQqTFyIiIjIVJi9ERERkKromLxcuXEB8fDysViusVivi4+Nx8eLFMs+/du0apk2bhs6dO6Nhw4YICwvDqFGj8Ouvv+oZJhEREZmIrsnL8OHDYbPZsHHjRmzcuBE2mw3x8fFlnv/bb79h3759+POf/4x9+/Zh7dq1+OmnnzBo0CA9wyQiIiITqavXE2dkZGDjxo1IS0tDz549AQDvvPMOYmJicOTIEbRr167U11itVqSmprocW7BgAXr06IHMzEyEh4frFS4RERGZhG7Jy65du2C1WosTFwC4/fbbYbVasXPnTrfJizs5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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -444,20 +445,18 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 9, "id": "fa488d51", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -510,20 +509,18 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 10, "id": "4eda4729", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -573,7 +570,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.1" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/examples/mhe-pvtol.ipynb b/examples/mhe-pvtol.ipynb index 14d29e142..0886f7172 100644 --- a/examples/mhe-pvtol.ipynb +++ b/examples/mhe-pvtol.ipynb @@ -70,19 +70,19 @@ "Outputs (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", "\n", - "Update: \n", - "Output: \n", + "Update: \n", + "Output: \n", "\n", - "Forward: \n", - "Reverse: \n", + "Forward: \n", + "Reverse: \n", "\n", ": pvtol_noisy\n", "Inputs (7): ['F1', 'F2', 'Dx', 'Dy', 'Nx', 'Ny', 'Nth']\n", "Outputs (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", "\n", - "Update: \n", - "Output: \n" + "Update: \n", + "Output: \n" ] } ], @@ -133,14 +133,17 @@ ": sys[4]\n", "Inputs (13): ['xd[0]', 'xd[1]', 'xd[2]', 'xd[3]', 'xd[4]', 'xd[5]', 'ud[0]', 'ud[1]', 'Dx', 'Dy', 'Nx', 'Ny', 'Nth']\n", "Outputs (8): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'F1', 'F2']\n", - "States (6): ['pvtol_noisy_x0', 'pvtol_noisy_x1', 'pvtol_noisy_x2', 'pvtol_noisy_x3', 'pvtol_noisy_x4', 'pvtol_noisy_x5']\n" + "States (6): ['pvtol_noisy_x0', 'pvtol_noisy_x1', 'pvtol_noisy_x2', 'pvtol_noisy_x3', 'pvtol_noisy_x4', 'pvtol_noisy_x5']\n", + "\n", + "Update: .updfcn at 0x167b58dc0>\n", + "Output: .outfcn at 0x167b58e50>\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/murray/src/python-control/murrayrm/control/statefbk.py:784: UserWarning: cannot verify system output is system state\n", + "/Users/murray/src/python-control/murrayrm/control/statefbk.py:783: UserWarning: cannot verify system output is system state\n", " warnings.warn(\"cannot verify system output is system state\")\n" ] } @@ -197,7 +200,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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QqFTkVAjiiKWLl2KadOmYeTIkUofR5X27duH6OhoGI1GLF68GJ999hnOOOMMpY+lSh9++CF2795NN8N9mDRpEt5++22sXr0ar7zyCioqKjBlyhTU1tYqfTTVOXbsGF544QUMGTIEq1evxuLFi3H33Xfj7bffVuQ8IbdVWi6CIHT6b1EUu7yOEF/deeed+Pnnn7Fp0yalj6Jaw4YNw969e9HQ0IBPPvkEN910E9avX08BzGnKyspwzz334LvvvkNERITSx1G1uXPnSv8+atQoFBQUYNCgQXjrrbewdOlSBU+mPg6HAxMmTMDjjz8OABg3bhz279+PF154AQsWLAj4eejmpQ/JycnQarVdblmqqqq63MYQ4ou77roLX375JdauXYusrCylj6NaBoMBgwcPxoQJE7Bs2TKMGTMGTz/9tNLHUp1du3ahqqoK48ePh06ng06nw/r16/HMM89Ap9PBbrcrfUTVioqKwqhRo3D48GGlj6I6AwYM6PJEYcSIEYo1rlDw0geDwYDx48djzZo1nV6/Zs0aTJkyRaFTkVAgiiLuvPNOfPrpp/jhhx+Qn5+v9JGCiiiKMJvNSh9Ddc477zzs27cPe/fulV4mTJiAG264AXv37oVWq1X6iKplNptx8OBBDBgwQOmjqM7UqVO7jHIoKipCbm6uIuehtJEHli5divnz52PChAkoKCjAyy+/jNLSUixevFjpo6lOS0sLjhw5Iv13cXEx9u7di8TEROTk5Ch4MvW544478P777+OLL75ATEyMdLsXFxeHyMhIhU+nLg899BDmzp2L7OxsNDc348MPP8S6deuwatUqpY+mOjExMV3qpqKiopCUlET1VKe5//77cemllyInJwdVVVV47LHH0NTUhJtuuknpo6nOfffdhylTpuDxxx/HNddcgx07duDll1/Gyy+/rMyBROKR559/XszNzRUNBoN41llnievXr1f6SKq0du1aEUCXl5tuuknpo6lOd58nAOIbb7yh9NFU59Zbb5W+/1JSUsTzzjtP/O6775Q+VtCYMWOGeM899yh9DNW59tprxQEDBoh6vV7MyMgQr7rqKnH//v1KH0u1vvrqK3HkyJGi0WgUhw8fLr788suKnYXmvBBCCCEkqFDNCyGEEEKCCgUvhBBCCAkqFLwQQgghJKhQ8EIIIYSQoELBCyGEEEKCCgUvhBBCCAkqFLwQQgghJKhQ8EIIIYSQoELBCyGEEEKCCgUvhBBCCAkqFLwQQgghJKhQ8EIIIYSQoPL/AbUslDAHC1zNAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -230,7 +233,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAGzCAYAAAAlqLNlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABWgUlEQVR4nO3dd3RU1d7G8e+kh5LQCUgoKtJraAFBBKRKUzoG0GvBhoj6CioIWFCvBa8KohQFMSBVEAQiSJOiNFFBxBrAxBCEJLTU8/6xSWbGBCSQZGaS57NW1kzO2efMb5w7Nw/77LO3zbIsCxEREREBwMvVBYiIiIi4E4UjEREREQcKRyIiIiIOFI5EREREHCgciYiIiDhQOBIRERFxoHAkIiIi4kDhSERERMSBj6sL8DQZGRn8+eeflCxZEpvN5upyRERE5DJYlkVSUhKVK1fGy+vSfUMKR7n0559/Ehoa6uoyRERE5AocOXKEKlWqXLKNwlEulSxZEjD/cYOCglxcjYiIiFyOxMREQkNDs/6OX4rCUS5lXkoLCgpSOBIREfEwlzMkRgOyRURERBwoHImIiIg4UDgSERERcaBwJCIiIuJA4UhERETEgcKRiIiIiAOFIxEREREHCkciIiIiDhSORERERBwoHImIiIg4UDgSt2ez2Vi+fLmryxARkSJC4UicbNu2DW9vb7p27Zqr46pXr87UqVPzpygREZECpHAkTmbPns3DDz/M1q1biY6OdnU5IiIiBU7hKL9ZFpw5U/A/lpXrUs+cOcMnn3zC/fffz6233soHH3zgtH/FihU0a9aMgIAAypUrx2233QZA+/bt+eOPP3j00Uex2WxZKx5PnDiRxo0bO51j6tSpVK9ePev3b775hltuuYVy5coRHBzMTTfdxJ49e3Jdu4iISF5ROMpvZ89CiRIF/3P2bK5LXbhwIbVq1aJWrVrccccdzJkzB+tCyFq1ahW33XYbPXr0YO/evaxfv55mzZoBsHTpUqpUqcLkyZOJiYkhJibmsl8zKSmJ4cOHs2XLFnbs2EHNmjXp3r07SUlJua5fREQkL/i4ugBxH7NmzeKOO+4AoGvXrpw+fZr169fTqVMnXnjhBQYNGsSkSZOy2jdq1AiAMmXK4O3tTcmSJQkJCcnVa3bo0MHp9xkzZlC6dGk2bdrErbfeepXvSEREJPcUjvJbsWJw+rRrXjcXDh06xNdff83SpUsB8PHxYeDAgcyePZtOnTqxb98+7rnnnjwvMy4ujgkTJrBhwwb++usv0tPTOXv2rMY7iYiIyygc5TebDYoXd3UV/2rWrFmkpaVxzTXXZG2zLAtfX19OnjxJYGBgrs/p5eWVdVkuU2pqqtPvI0aM4Pjx40ydOpVq1arh7+9PeHg4KSkpV/ZGRERErpLGHAlpaWnMnTuX1157jX379mX9fPvtt1SrVo358+fTsGFD1q9ff9Fz+Pn5kZ6e7rStfPnyxMbGOgWkffv2ObXZsmULo0aNonv37tSrVw9/f3/i4+Pz9P2JiIjkhnqOhM8++4yTJ0/yn//8h+DgYKd9/fr1Y9asWbzxxht07NiR6667jkGDBpGWlsbnn3/O//3f/wFmnqPNmzczaNAg/P39KVeuHO3bt+f48eO88sor9OvXjzVr1vD5558TFBSUdf7rr7+eefPm0axZMxITE3niiSeuqJdKREQkr6jnSJg1axadOnXKFowAbr/9dvbt20dQUBCLFi1ixYoVNG7cmA4dOrBz586sdpMnT+b333/nuuuuo3z58gDUqVOHadOm8c4779CoUSO+/vprHn/8cafzz549m5MnT9KkSRMiIiIYNWoUFSpUyN83LCIicgk265+DQuSSEhMTCQ4OJiEhwakHRERERNxXbv5+q+dIRERExIHCkYiIiIgDhSMRERERBwpHIiIiIg4UjkREREQcKByJiIiIOFA4EhEREXGgcCQiIiLiQOFI8lT16tWZOnWqq8sQERG5YgpHAsCIESOw2Wy89NJLTtuXL1+OzWa77PN888033HvvvXldnoiISIHx6HC0efNmevbsSeXKlbHZbCxfvvxfj9m0aRNhYWEEBARw7bXX8u677+Z/oR4iICCAl19+mZMnT17xOcqXL0+xYsXysCoREZGC5dHh6MyZMzRq1Ii33377str/9ttvdO/enbZt27J3716eeuopRo0axZIlS/K5Us/QqVMnQkJCmDJlykXbLFmyhHr16uHv70/16tV57bXXnPb/87LaxIkTqVq1Kv7+/lSuXJlRo0YBZqHaBg0aZDt/WFgYEyZMyJs3JCIicgV8XF3A1ejWrRvdunW77PbvvvsuVatWzfrjXadOHXbt2sWrr77K7bffni81WhacPZsvp76kYsUgF1fDAPD29ubFF19kyJAhjBo1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XTQcgbmdH8zIbREREQ+lcCR2P/xgHhs2dNr8yCPmStuOHfDTT2ab04BsMCO1jx83z6tVy986RURE8pHCkdj98Yd5vPZap80hITB8uHmeucxItp6jdevMY4UKUKpUvpUoIiKS3zw2HJ08eZKIiAiCg4MJDg4mIiKCU1mLfv27++67D5vNxtSpU/OtRo+TufJs6dLZdj32mLljP5NTOLIseOst83z4cOeGIiIiHsZjw9GQIUPYt28fa9asYc2aNezbt4+IiIjLOnb58uXs3LmTypUr53OVHsbPzzxmTmbkoFYt6NXL/rtTOJoxA9avN4vU3ndf/tYoIiKSzzwyHB08eJA1a9Ywc+ZMwsPDCQ8P5/333+ezzz7j0KFDlzz22LFjPPTQQ8yfPx9fDRx2dt115nHPnhx3/9//mceyZe05irlzYdQo8/zll+3nEBER8VAeGY62b99OcHAwLR3uqmrVqhXBwcFs27btosdlZGQQERHBE088Qb169QqiVM/So4d5fO01yOESZevWZvm0JUsw8yHddZe5jJaaCkOHwqOPFmi5IiIi+cEjw1FsbCwVKlTItr1ChQrExsZe9LiXX34ZHx8fRmX2dFyG5ORkEhMTnX4KrZEjoXJl+Plnczv/xx9DfLwZU2RZcOwYt9uWctN7Q00P0Zw55rinnjI9SBprJCIihYCPqwtwNHHiRCZNmnTJNt988w0Athz+EFuWleN2gN27d/Pmm2+yZ8+ei7bJyZQpU/61pkIjKAhWr4auXc09+0OHmu3+/qZ3KCPDuX3LlvDGGxAeXvC1ioiI5BObZbnPQljx8fHEx8dfsk316tX5+OOPGTNmTLa700qVKsUbb7zBnXfeme24qVOnMmbMGLy87J1l6enpeHl5ERoayu+//57j6yUnJ5OcnJz1e2JiIqGhoSQkJBCUbbKfQuLUKXj9dVi0CH780b7dywvq14ebboKICDOTtnqLRETEAyQmJhIcHHxZf7/dKhxdroMHD1K3bl127txJixYtANi5cyetWrXixx9/pFatWtmOOXHiBDExMU7bunTpQkREBHfeeWeOx+QkN/9xC4WzZyEuzvQelSljHkVERDxMbv5+u9VltctVp04dunbtyj333MOMGTMAuPfee7n11ludQk7t2rWZMmUKffv2pWzZspQtW9bpPL6+voSEhFx2MCqSihWD6tVdXYWI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ASIirlSsWDFCQkKu+jzBwcEEBwfnQUUi4mrqORKRQiMyMpKAgACOHTuWte3uu++mYcOGJCQkXPZ52rdvz8MPP8zo0aMpXbo0FStW5L333uPMmTPceeedlCxZkuuuu47PP/88P96GiLiYwpGIFBqDBg2iVq1aTJkyBYBJkyaxdu1aPv/881z36nz44YeUK1eOr7/+mocffpj777+f/v3707p1a/bs2UOXLl2IiIjg7Nmz+fFWRMSFFI5EpNCw2Wy88MILzJw5kxdffJE333yTNWvWcM011+T6XI0aNeKZZ56hZs2ajBs3jsDAQMqVK8c999xDzZo1mTBhAidOnGD//v358E5ExJU05khECpVbb72VunXrMmnSJNatW0e9evWu6DwNGzbMeu7t7U3ZsmVp0KBB1raKFSsCEBcXd3UFi4jbUc+RiBQqa9eu5ccffyQ9PT0rwFwJX19fp99tNpvTNpvNBkBGRsYVv4aIuCeFIxEpNPbs2UP//v2ZMWMGXbp0Yfz48a4uSUQ8kC6riUih8Pvvv9OjRw/Gjh1LREQEdevWpXnz5uzevZuwsDBXlyciHkQ9RyLi8f7++2+6detGr169eOqppwAICwujZ8+ePP300y6uTkQ8jXqORMTjlSlThoMHD2bb/umnn17R+TZu3Jht2++//55tm2VZV3R+EXFv6jkSkSJt2rRplChRgu++++6qzjNy5EhKlCiRR1WJiCvZLP3TR0SKqGPHjnHu3DkAqlatip+f3xWfKy4ujsTERAAqVapE8eLF86RGESl4CkciIiIiDnRZTURERMSBwpGIiIiIA4UjEREREQcKRyIiIiIOFI5EREREHCgciYiIiDhQOBIRERFxoHAkIiIi4kDhSERERMSBwpGIiIiIg/8HVGMWVjCz2KIAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAGzCAYAAAAlqLNlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABbRElEQVR4nO3dd3hUVeLG8e+k0xJ66EWkd4JUERWk95YsGgEVRVF+iOsu4OqKrrJ2bCAogiDCSBUVA0hXehUWRFQQiAmhJqGl3t8fh2QSkwAJSWYmeT/PM88k555754zjmNdzT7FZlmUhIiIiIgB4OLsBIiIiIq5E4UhEREQkDYUjERERkTQUjkRERETSUDgSERERSUPhSERERCQNhSMRERGRNBSORERERNLwcnYD3E1ycjJ//vknJUqUwGazObs5IiIichMsyyI2NpZKlSrh4XH9viGFo2z6888/qVq1qrObISIiIjlw4sQJqlSpct06CkfZVKJECcD8w/X393dya0RERORmxMTEULVq1dS/49ejcJRNKbfS/P39FY5ERETczM0MidGAbBEREZE0FI5ERERE0lA4EhEREUlD4UhEREQkDYUjERERkTQUjkRERETSUDgSERERSUPhSERERCQNhSMRERGRNBSORERERNJQOBKXZ7PZWLZsmbObISIihYTCkaSzefNmPD096datW7bOq1GjBlOmTMmbRomIiOQjhSNJ59NPP+Wpp57ihx9+4Pjx485ujoiISL5TOMprlgWXLuX/w7Ky3dRLly7x5Zdf8vjjj9OrVy9mz56d7vjy5ctp2bIlfn5+lC1blgEDBgBw991388cff/D0009js9lSdzx+8cUXadasWbprTJkyhRo1aqT+vmPHDu677z7Kli1LQEAAHTt2ZPfu3dluu4iISG5ROMprly9D8eL5/7h8OdtNtdvt1K1bl7p16/LAAw8wa9YsrGsh69tvv2XAgAH07NmTPXv2sGbNGlq2bAnAkiVLqFKlCi+99BIRERFERETc9GvGxsYybNgwNm3axNatW6lduzY9evQgNjY22+0XERHJDV7OboC4jpkzZ/LAAw8A0K1bNy5evMiaNWvo3Lkzr7zyCiEhIUyaNCm1ftOmTQEoXbo0np6elChRggoVKmTrNe+99950v0+fPp1SpUqxYcMGevXqdYvvSEREJPsUjvJa0aJw8aJzXjcbDh8+zPbt21myZAkAXl5eBAcH8+mnn9K5c2f27t3LyJEjc72ZUVFRvPDCC6xdu5ZTp06RlJTE5cuXNd5JREScRuEor9lsUKyYs1txQzNnziQxMZHKlSunllmWhbe3N+fPn6dIkSLZvqaHh0fqbbkUCQkJ6X4fPnw4p0+fZsqUKVSvXh1fX1/atm1LfHx8zt6IiIjILdKYIyExMZE5c+bw1ltvsXfv3tTHvn37qF69OvPmzaNJkyasWbMmy2v4+PiQlJSUrqxcuXJERkamC0h79+5NV2fTpk2MGTOGHj160LBhQ3x9fTlz5kyuvj8REZHsUM+R8M0333D+/HkefvhhAgIC0h0bNGgQM2fO5J133qFTp07UqlWLkJAQEhMT+e677/jHP/4BmHWONm7cSEhICL6+vpQtW5a7776b06dP8/rrrzNo0CDCwsL47rvv8Pf3T73+7bffzty5c2nZsiUxMTE8++yzOeqlEhERyS3qORJmzpxJ586dMwQjgIEDB7J37178/f1ZuHAhy5cvp1mzZtx7771s27Yttd5LL73EsWPHqFWrFuXKlQOgfv36TJ06lQ8//JCmTZuyfft2/v73v6e7/qeffsr58+dp3rw5oaGhjBkzhvLly+ftGxYREbkOm/XXQSFyXTExMQQEBBAdHZ2uB0RERERcV3b+fqvnSERERCQNhSMRERGRNBSORERERNJQOBIRERFJQ+FIREREJA2FIxEREZE0FI5ERERE0lA4EhEREUlD4UhyVY0aNZgyZYqzmyEiIpJjbh2ONm7cSO/evalUqRI2m41ly5bd8JwNGzYQFBSEn58ft912Gx999FHeN9QNDB8+HJvNxn//+9905cuWLcNms930dXbs2MGjjz6a280TERHJN24dji5dukTTpk354IMPbqr+0aNH6dGjBx06dGDPnj1MnDiRMWPGsHjx4jxuqXvw8/Pjtdde4/z58zm+Rrly5ShatGgutkpERCR/uXU46t69O//5z38YMGDATdX/6KOPqFatGlOmTKF+/fo88sgjPPTQQ7z55pt53FL30LlzZypUqMDkyZOzrLN48WIaNmyIr68vNWrU4K233kp3/K+31V588UWqVauGr68vlSpVYsyYMYDZqLZx48YZrh8UFMQLL7yQO29IRERcztSpsHKls1txfW4djrJry5YtdOnSJV1Z165d2blzJwkJCXnympYFly7l/yMn2wl7enry6quv8v7773Py5MkMx3ft2sWQIUMICQlh//79vPjiizz//PPMnj070+stWrSId955h+nTp3PkyBGWLVuWGogeeughDh48yI4dO1Lr//TTT+zZs4fhw4dnv/EiIuLyli+HJ5+Enj1h376/HIyLg5kzc/YHLJd5ObsB+SkyMpLAwMB0ZYGBgSQmJnLmzBkqVqyY4Zy4uDji4uJSf4+JicnWa16+DMWL56y9t+LiRShWLPvn9e/fn2bNmvHvf/+bmTNnpjv29ttv06lTJ55//nkA6tSpw8GDB3njjTcyDTTHjx+nQoUKdO7cGW9vb6pVq0arVq0AqFKlCl27dmXWrFnccccdAMyaNYuOHTty2223Zb/hIiLi0vbsgaFDTfYZORKaNElz0LJgxAiYPx927jTdS9kY75rbClXPEZBhcLF1LaFmNeh48uTJBAQEpD6qVq2a5210ttdee43PPvuMgwcPpis/dOgQ7du3T1fWvn17jhw5QlJSUobrDB48mCtXrnDbbbcxcuRIli5dSmJiYurxkSNHMn/+fK5evUpCQgLz5s3joYceyps3JSIiThMeDr17mzsb990H7733l+xjs5kDHh7w0UewZInT2gqFLBxVqFCByMjIdGVRUVF4eXlRpkyZTM+ZMGEC0dHRqY8TJ05k6zWLFjW9OPn9uJUx0XfddRddu3Zl4sSJ6coty8oyXGamatWqHD58mA8//JAiRYrwxBNPcNddd6Xewuzduze+vr4sXbqUr7/+mri4OAYOHJjzhouIiMu5dMkEo/BwaNAAvvwSvL0zqThiBKT8Ddi7Nz+bmEGhuq3Wtm1bvv7663Rlq1atomXLlnhn+kmBr68vvr6+OX5Nmy1nt7ec7b///S/NmjWjTp06qWUNGjTghx9+SFdv8+bN1KlTB09Pz0yvU6RIEfr06UOfPn0YPXo09erVY//+/bRo0QIvLy+GDRvGrFmz8PX1JSQkRDPdREQKkKQkuP9+c0utXDn45hsoWTKLyseOwcaN5udSpfKphZlz63B08eJFfv3119Tfjx49yt69eyldujTVqlVjwoQJhIeHM2fOHABGjRrFBx98wLhx4xg5ciRbtmxh5syZzJ8/31lvwWU1btyY+++/n/fffz+17JlnnuGOO+7g5ZdfJjg4mC1btvDBBx8wderUTK8xe/ZskpKSaN26NUWLFmXu3LkUKVKE6tWrp9Z55JFHqF+/PgA//vhj3r4pERHJV+PHw1dfga8vLFsGNWtmUTEyEnr0gFOnzGCkRx7Jz2ZmZLmxdevWWUCGx7BhwyzLsqxhw4ZZHTt2THfO+vXrrebNm1s+Pj5WjRo1rGnTpmXrNaOjoy3Aio6OzqV34RqGDRtm9e3bN13ZsWPHLF9fXyvtvyaLFi2yGjRoYHl7e1vVqlWz3njjjXTnVK9e3XrnnXcsy7KspUuXWq1bt7b8/f2tYsWKWW3atLG+//77DK/doUMHq0GDBrn+nkREJP8lJVnW8uWWdffdlmVGWlvWF19kUTk52bI+/9yySpc2FStVsqwTJ/KkXdn5+22zLBeYM+dGYmJiCAgIIDo6Gn9/f2c3x+1ZlkW9evV47LHHGDdunLObIyIiOXT5Mnz2GUyZAr/8Ysq8vGDyZPj73zM5ISICRo0y8/sBmjeHL76AevXypH3Z+fvt1rfVxL1FRUUxd+5cwsPDGTFihLObIyIiORARAR9+CNOmwblzpqxkSXjsMbOmUZUqfzkhORnmzoWxY+HCBTM6+4UX4J//zGKkdv5TOBKnCQwMpGzZssyYMYNSTh58JyIi2fPTT/DOO6azJz7elN12m8k8I0ZkssafZcF338HEiY4VIFu2hFmzoFGj/Gz6DSkcidPojq6IiHuxLAgLg7ffhu+/d5S3bw/PPAN9+kCmk5d/+AEmTDDPAP7+8NxzMG6cuffmYlyvRSIiIuJSrl6Fzz83PUUp6wN7esKgQfD009C6dRYn7t1rQtCKFeZ3Pz946ilzCy2L9QVdgcKRiIiIZCoqyuzkMXUqnD5tykqUMNt/jBkDaVZmSe/XX+H552HBAvO7pyc8/LAZW1S5cr60/VYoHImIiEg6Bw+aXqK5c81+sADVqsH//Z9ZgijLyV6HDsHrr5tuppTtokJC4KWXoHbtfGl7blA4EhERESwL1qyBt94y44pStGplxhMNGHCd4UHbt8N//2tWekwZT9q9O7zyipmi72YUjkRERAqxuDiYP98Mst6/35TZbNC/vxkv3a7dXzaJTWFZZlT2f/8La9c6yvv1M2OK2rTJj+bnCYUjERGRQujsWfjoI/jgA7N7B5i9QB9+2IwnqlUrixOTkmDpUhOKdu0yZV5eZhO1f/zD7C7r5hSORERECpFffjGrWM+eDVeumLLKlU0gGjnyOnu+xsWZQUivvw5HjpiyIkXMSc88YwYlFRAKRyIiIgWcZZkN7996C775xjEsqEULc+tsyJDrLE4dGwszZpj7bn/+acpKlTJT8p96CsqWzZf3kJ8UjkRERAqohAT48kuTa3bvdpT37m06e+66K4vxRAB//GH2Bfn4Y7PNB0ClSubEkSPNnP4CSuFIRESkgDl/3mSa996D8HBTVqQIDB9utveoUyeLEy0LfvzR3HdbutTsgwZmGv4//wkPPAC+vnn/BpxM4UhERKSA+O03ePdd+PRTuHTJlFWoYDaAHTXqOotSx8WB3W5OTtvF1KmTWdyoR48s9gUpmBSORERE3JhlwebN5tbZ0qWO8USNG5s7YCEh1+nsOXXKTFmbNs38DGaLjwceMCO0GzfOl/fgahSORERE3FBiIixZYgZZb9/uKO/e3Qyy7tTpOuOJ9uwxvUTz50N8vCmrVAlGj4ZHHy2Qg6yzQ+FIRETEjURHw8yZJtscP27KfH0hNNRsApvlMkNJSfDVV+bEjRsd5W3amFtnAwdeZ8pa4aJwJCIi4gb++MMMsP74YzO7HqBcOdPZ8/jjUL58FideuACffGJWe/zjD1Pm5QWDB5tQ1Lp1fjTfrSgciYiIuLBt28x4osWLTecPQP365tbZAw+YIUKZOnDAjCX67DPH6OwyZeCxx+CJJ8zKj5IphSMREREXk3IH7O23zcz6FPfdZ0JRly7g4ZHJiVevwqJFZpB12hMbNTJz+IcONXP65boUjkRERFzExYswa5ZZZuj3302Zt7fZtuzpp6FJkyxOPHLErGI9a5bZNA3M1Pt+/Uwv0T33XGd0tvyVwpGIiIiTnTwJ778P06ebAdcApUubsUSjR0PFipmclJAAy5ebXqLvv3eUV61qZpw99JCZgSbZpnAkIiLiJLt3m1tndruZmg9m9eqnn4YHH4SiRTM56fhxMyr7k08gMtKU2WxmocZRo8xc/kK0YGNeUDgSERHJR8nJZvPXt9+GDRsc5XffbcYT9eyZyXiipCQICzO9RCtWOLb1CAyERx4xjxo18ukdFHwKRyIiIvng8mUzceydd8wQITAz6oODTU9RUFAmJ0VGmkWNZsxwLGoEZoXHUaOgTx/w8cmX9hcmCkciIiJ5KCLCbG4/bRqcO2fKSpY0M+qffBKqVPnLCZYF69aZXqKlSx3320qXNjvHPvbYdXaOldygcCQiIpIHfvrJ3Dr74gszdhrgttvMjPoRI6B48b+ccPas6VqaPh1++cVR3q6d6SUaNEjT8POJwpGIiEguSU6GlStNKEo7gax9e7MJbJ8+fxkrnZQEa9aYKfhLl0JcnCkvUcLsB/LYY9eZvy95ReFIRETkFl29Cp9/bkLRoUOmzNPTdPY8/XQmO3T89hvMnm16ik6ccJQ3b27m7//tb5l0LUl+UTgSERHJoagomDrVPE6fNmUlSsDIkTBmDFSvnqbyxYtm9epZs9Jv/FqqlFm5esQIaNFCizW6AIUjERGRbDp40Mw6mzvXcSesWjWzj+sjj4C//7WKlmW28fj0U1i40AQkMAGoSxezUGOfPtfZIE2cIbOdWdzK1KlTqVmzJn5+fgQFBbFp06br1p83bx5NmzalaNGiVKxYkREjRnA2Zal1ERGRLFiWGUfUvTs0bGjWYIyLg1atzCKOv/1m1iny98csef3qq1C3LnToYHqLLl6E22+HV14x0/LDwmDIEAUjF+TW4chutzN27Fiee+459uzZQ4cOHejevTvH064FkcYPP/zAgw8+yMMPP8z//vc/Fi5cyI4dO3jkkUfyueUiIuIu4uLM8KCmTc3Gr2FhpuNnwAD44QfYutVkHK/EqyYldetm7qc995xZ0KhYMXPLbNMmMwtt4sRM5u+LK7FZlmU5uxE51bp1a1q0aMG0adNSy+rXr0+/fv2YPHlyhvpvvvkm06ZN47fffkste//993n99dc5kXZA3HXExMQQEBBAdHQ0/qn9piIiUtCcPWuWGvrgA8cuHcWKwcMPm/FEtWphupN27zY9Q198AefPOy5w110mFA0apMHVLiA7f7/ddsxRfHw8u3btYvz48enKu3TpwubNmzM9p127djz33HOsWLGC7t27ExUVxaJFi+jZs2eWrxMXF0dcyg1lzD9cEREpuH75xYwn+uwzuHLFlFWubALRyJFm/DSnT8M7n5tQtH+/4+QqVcxCjcOHX0tP4o7cNhydOXOGpKQkAgMD05UHBgYSmRLx/6Jdu3bMmzeP4OBgrl69SmJiIn369OH999/P8nUmT57MpEmTcrXtIiLiWizL7HP29tvw9deO8hYtzDiiIUPAmwT47jsTiL75xrFyta8v9O9veok6ddKmrwWAW485ArD9ZcqjZVkZylIcPHiQMWPG8MILL7Br1y7CwsI4evQoo0aNyvL6EyZMIDo6OvVxs7ffRETE9SUkwLx50LIl3HOPIxj17g3r18POnXB/0wN4T3wWqlaFvn1h2TITjO64w8zhj4iA+fPN7DMFowLBbXuOypYti6enZ4ZeoqioqAy9SSkmT55M+/btefbZZwFo0qQJxYoVo0OHDvznP/+hYsWKGc7x9fXF19c399+AiIg4zfnzZi/X99+H8HBTVqSIuRs2dizU8f0DFiyAp+alv21Wvjw88IDpJWrUyBlNl3zgtuHIx8eHoKAgVq9eTf/+/VPLV69eTd++fTM95/Lly3h5pX/LntdSvhuPSxcRkZtw5Yq5K2a3mx6ilPFEFSqYDWBHDT5LmbUL4eF5ZhpaCm9v6NHDBKIePczvUqC5bTgCGDduHKGhobRs2ZK2bdsyY8YMjh8/nnqbbMKECYSHhzNnzhwAevfuzciRI5k2bRpdu3YlIiKCsWPH0qpVKypVquTMtyIiInkgLg5WrTKB6KuvHGswAjRuDM88GUeI3zJ8v5wLL650jCOy2aBjR7j/fhg48NoobCks3DocBQcHc/bsWV566SUiIiJo1KgRK1asoPq19dojIiLSrXk0fPhwYmNj+eCDD3jmmWcoWbIk9957L6+99pqz3oKIiOSyhASzWKPdboYHRUc7jlWrBkMGJRFcbStB26Zie3oZXL7sqNC8uQlEwcFai6gQc+t1jpxB6xyJiLiexEQzgNpuhyVL4Nw5x7FKlWDwIIvg+j/RZt90bAu/NIsYpahVy+xt9re/Qf36+d52yR+FYp0jEREp3JKSzNAgux0WLzabwKYoXx4GD4bgO36n/aFP8FjwBbz3R/oKISEmFLVqpc1eJR2FIxERcRvJyWa7Drvd7OMaEeE4VqaMGR4UfPcpOh6djeeCefBhmplmJUqYPT+GDoV77wUv/QmUzOnfDBERcWmWBTt2OAJR2uXmSpY06y8Gd4vm3qgFeNs/hxlpZpr5+JgZZkOHQq9eZr6+yA0oHImIiMuxLNi71wSiL7+Eo0cdx0qUMGsxBve9SpfLy/D58nO4/y8zze6+2wQizTSTHFA4EhERl3HggAlEdrvZ0D5F0aLQpw8ED0igm9f3+C36HIYtSz/TrEULE4hCQsxmaCI5pHAkIiJOdfiwIxAdPOgo9/ODnj1NIOrps5qi33wJj34FFy44KqXMNBs6FOrVy/e2S8GkcCQiIvnut9/M7TK7Hfbtc5T7+EC3bhDcP57ePispscIOo5ZDbKyjUmCgWYfo/vvN/maaaSa5TOFIRETyxR9/OALRrl2Oci8vuO8+CO4XR1+f7yj53Xx48lu4dMlRqXJlM35o0CBo104bvEqeUjgSEZE8Ex5uZpjZ7WYKfgpPTzObPrjPFfr5rKDMyi9g7HeODc/ALGc9aJB5tG4NHh75/wakUFI4EhGRXHXqFCxaZALRDz+YmWfg2K4suPdlBvp+Q7lV8+DvK80GaCluu80RiFq21C0zcQqFIxERuWVnzphtO+x2s41HcrLjWPv2ENzrEoN8llNxzecwfrXZAC1FnTqOQNSsmQKROJ3CkYiI5Mj587B0qQlEa9aY7TxStGoFwT1jGeyznKprP4N/rU1foWFDRyBq2FCBSFyKwpGIiNy0mBj46isTiFatSt8B1KIFBHePYbDPV9RcPwsmbUjfhdS0qQlDAwdqg1dxaQpHIiJyXRcvwjffmED03Xfphwg1bmy27hjis4zaG2fCq2kGGQEEBTkCUe3a+d94kRxQOBIRkQyuXIEVK0wg+uab9JPI6tWD4K4XCPZZSv1NM+CNrelPbtPGhKGBA6FmzfxtuEguUDgSERHA9AiFhZlAtHx5+mWGatWyCL47imDfZTTe+jG2d9MsVGSzmVHXgwaZXe+rVs3/xovkIoUjEZFCLD4evv/eBKJly8yYohTVq1sEt/6DIbaFtNjyIbaZfzgOenjAXXeZQNS/P1SqlO9tF8krCkciIoVMYiKsW2cC0ZIlZtZZisqVkhnS9BeCEz6n1bb3sX2ZJi0VKWKWsu7TB3r1Mtt4iBRACkciIoVAUhJs2mQC0eLFcPq041hg2UQG1z9A8KVZtNs3DY/v0kxBK18eevc2gahzZyhaNP8bL5LPFI5ERAqo5GTYvNkEokWLIDLScaxsyQQG1txD8IXp3HV0Np6b0ky5b9DAhKG+fc2CRdq2QwoZhSMRkQLEsmD7dhOIFi6Ekycdx0oVj2dA5e0MOf0h955biNeea4syenpCh7tNIOrdG26/3SltF3EVCkciIm7OsmDPHhOIvvwSjh1zHPMvEk+/sj8SHPU+nS9+g8/ha7fMiheH7t1NIOreHcqUcUrbRVyRwpGIiBuyLDhwwAQiux1+/dVxrJhPPH38NxB85kO6XgnD78S1VRurVHHcLuvYEXx9ndN4ERencCQi4kYOHXL0EB065Cgv4hVPT7+1BF/8hB7xKyh65tqqjc2bmzDUp482dRW5SQpHIiIu7tdfHT1E+/c7yn09EujuuYohCZ/TO/Fril+8BN7ecO+9jvFDWpBRJNsUjkREXNCxY6Z3yG6H3bsd5d62BLqwmmBrPn2SlxOQHAOlSkHP/iYQde0K/v5Oa7dIQaBwJCLiIk6eNDPM7HbYts1R7kkinVhDMHb6W0spxQWoVQv6PmICUfv24KX/nIvkFn2bREScKDLSEYh+/NFR7kESHdlAMHYGsIRynufhzjuh+3hzu6x+fY0fEskjCkciIvns9GmzSrV9QTIbNtqwLEfIuZNNBGNnEIuoEAj06AE9ppnVqUuWdFqbRQoThSMRkXxw7hwsXQr2ufGs3eRFUrIHYFaebsMWgrEzmEVUblMVevaEHivM7DKtTi2S7xSORETySHQ0fLU0GfvHMazaWoLEZE/AB4AgdhKMnSElV1O9R0PTQ9T1X1C2rHMbLSK4/f+STJ06lZo1a+Ln50dQUBCbNm26bv24uDiee+45qlevjq+vL7Vq1eLTTz/Np9aKSEF38SJ8MeMi/e44SfnSCQwb4cGKzSVJTPakCft4hYkcadCXnf/6imc3D6D6mV0wbx7cf7+CkYiLcOueI7vdztixY5k6dSrt27dn+vTpdO/enYMHD1KtWrVMzxkyZAinTp1i5syZ3H777URFRZGYmJjPLReRguTyJYtvpx7D/lkc3x6qydXk4kBxAOpzkGDfZQR3PEW9kGbQ7SmoWNGp7RWR67NZlmU5uxE51bp1a1q0aMG0adNSy+rXr0+/fv2YPHlyhvphYWGEhITw+++/U7p06Ry9ZkxMDAEBAURHR+OvtURECq2rUTGEvfU/7Is8+PpoIy5ZxVKP1eYXgsutI7jXJRo+GIStfTuzOKOIOE12/n67bc9RfHw8u3btYvz48enKu3TpwubNmzM9Z/ny5bRs2ZLXX3+duXPnUqxYMfr06cPLL79MkSJFMj0nLi6OuLi41N9jYmJy702IiPuwLOL3HWL1+z9j/7Y4X51qTQxtUw/XsB0juNYugodYNHu0FbbqjzmxsSJyK9w2HJ05c4akpCQCAwPTlQcGBhIZGZnpOb///js//PADfn5+LF26lDNnzvDEE09w7ty5LMcdTZ48mUmTJuV6+0XEDcTEkLBqHWtn/cGXGwJZeuk+ztMg9XAVrwiGNPmZ4OFFuWNkM2x+A53YWBHJLW4bjlLY/rIImmVZGcpSJCcnY7PZmDdvHgEBAQC8/fbbDBo0iA8//DDT3qMJEyYwbty41N9jYmKoqr2KRAqm5GTYu5ekFSvZ8OUp7Acastjqz1n6plap4HuOwa1PEPxEGdoOroKHh8YPiRQ0bhuOypYti6enZ4ZeoqioqAy9SSkqVqxI5cqVU4MRmDFKlmVx8uRJateuneEcX19ffH19c7fxIuI6Tp+GVatI/m4lP357AfuFLixiBKeokFqlXJFYBt1zjuAxgdzZuTSenjkbsygi7sFtw5GPjw9BQUGsXr2a/v37p5avXr2avn37ZnpO+/btWbhwIRcvXqR4cTOT5JdffsHDw4MqVarkS7tFxMkSEmDrVli5Euu7MLbt9sbOEBbyKuE4/jtQuthVBvSMJ3ikP3ffXQIvrxJObLSI5Ce3DUcA48aNIzQ0lJYtW9K2bVtmzJjB8ePHGTVqFGBuiYWHhzNnzhwAhg4dyssvv8yIESOYNGkSZ86c4dlnn+Whhx7KckC2iBQAf/wBK1dCWBjW92vYFVubLxnClyziD2qkVgsolki/ATaC/+ZJ585+eHv7Oa/NIuI0bh2OgoODOXv2LC+99BIRERE0atSIFStWUL16dQAiIiI4fvx4av3ixYuzevVqnnrqKVq2bEmZMmUYMmQI//nPf5z1FkQkL1y5Ahs3QliYCUQ//8xPNMFOMF/yOr9xe2rV4sWS6dPXg+Bg6NrVC91FFxG3XufIGbTOkYgLsiz4+WcThlauhA0b4OpVDlIfO8HYCeYw9VKrFyli0bu3jeBg6N4d1HEsUvAVinWORKSQi46GNWscgehaL/ERbsfOM9i9HuBAoiMQ+fqa7cuCg6FXLxvFimV1YREp7BSORMQ9JCfD7t2pY4fYsgWSkgA4Sg2+9JyIvehw9sRem3WaaBal7trVBKI+fUCdvSJyMxSORMR1nToFq1aZQLRqlZl2f80JqvBl2dHYPf/GjlPVIQmIBU9P6NzZBKJ+/aBUKae1XkTclMKRiLiOhATYvNnRO7RnT7rDEUVrsbDWeOyXerH59wpwxpR7eMA995hA1L+/NrcXkVujcCQiznX0qCMMrV0LsbHpDkc1upfFlcdgj+zIxp8CsPabFfBtNujQwQSigQMhi7VfRUSyTeFIRPLX5cuwfr0jEP3yS/rjZcty9u6BLPUfhv3XFqz9wZfkA47DbduaQDRoEFSunK8tF5FCQuFIRPKWZcH//ucIQ5s2QVyc47inJ7Rrx4W7+rDMaxD2rdX5fpmNxERHlZYtTSAaMgSqVcv/tyAihYvCkYjkvvPn4fvvHdPsw8PTH69WDbp1I7ZjL5Zf6oT966KsfAPi4x1VmjUzgWjwYKhVK19bLyKFnMKRiNy6pCTYudPRO7Rtm5l6n8LPD+6+G7p141KHbnx7pA72L22seBiuXnVUa9jQ0UNUt26+vwsREUDhSERy6s8/zfT6sDBYvRrOnUt/vEED6NYNunblSssOhG0ogt0OX080w45S1KljAlFwsAlHIiLOpnAkIjcnLg5+/NFxq+ynn9IfDwiA++4zqy527Upc+aqsWgX2ObB8UPpJaDVrOgJR06Zm5pmIiKtQOBKRrP32W+rmraxbB5cuOY7ZbHDHHSYMdesGrVqRYHmxZg3YX4ClS80OHymqVjW3y4KDzQBrBSIRcVUKRyLiEBdndrNfsQK+/RaOHEl/vEIFRxjq3BnKliUx0ezzan8CliyBs2cd1StVMgOqg4OhdWuzWKOIiKtTOBIp7MLDHWHo++/T9w55e8Odd6aOHaJJE7DZSE6GH34Aux0WLYKoKMcp5cubNYiCg82pCkQi4m4UjkQKm6Qk2LrVEYj27Ut/vGJFs319z57QqVPqbq2WZSah2e3w5ZdmPHaK0qXNKtXBwdCxI3jpvywi4sb0nzCRwuDMGTOI+ttvzXPamWU2G7Rp4whEzZqlDgiyLNizGxYsMIHojz8cpwUEmH3MgoNNhvL2zt+3JCKSVxSORAoiy4K9e00YWrHC9BRZluN4qVLmVlmPHub5Lzu1HjhgApHdDr/+6igvXhz69IGQEOjSBXx98+ftiIjkJ4UjkYIiNtaMGUoJRBER6Y83beroHWrdOsO9r8OHTRiy2+HgQUd5kSLQq5fpIerRw/wuIlKQKRyJuCvLMpu2poShjRshIcFxvFgxM6OsZ0/o3h2qVMlwiaNHHYFo715HuY+POSU4GHr3Nj1GIiKFhcKRiDu5etXsaJ8ymPr339Mfr13b0Tt0112Z3vc6edKMH7LbYft2R7mXl1nDMTgY+vaFkiXz9J2IiLgshSMRV3f8uCMMrVkDV644jvn4mOlhPXuaUFS7dqaXiIw0U+7tdjMFP4WHB9xzjwlEAwZAmTJ5/F5ERNyAwpGIq7EsOHTIrKi4dCns3p3+eOXK6afaZ3HP68wZcwm73XQ2pd0HtkMHE4gGDYLAwLx7KyIi7kjhSMQVWBbs2GHC0JIlZixRCg8PaNvW0Tt0bSHGzFy4AMuWmUD0/feQmOg41rq1CUSDB2c6/EhERK5ROBJxlsREM4h66VKTaE6edBzz8TGDqQcMMHPny5XL8jIXL8Ly5SYQhYVBfLzjWPPmJhANGWI2exURkRtTOBLJT1evwurVpnfo66/Tb0RWvLjpGerf3zxfW5k6M1eumCFIdjt88425bIqGDR073tepk4fvRUSkgFI4Eslr0dFmQPWSJfDdd+n3LitTxkwN69/f9BT5+WV5mbg4s7i13W56ii5edByrXdsRiBo1ysP3IiJSCCgcieSFqCj46itzy+z779OvP1Slirld1r+/2Zn1OhuRJSSYCWp2u7lUdLTjWPXqjkDUvHmWw5BERCSbFI5EcsuxYybBLF1q5sun3a6jXj0ThgYMgKCg6yaZpCTYsMEEosWL0995q1TJjB8KCYFWrRSIRETygsKRSE5ZltlnI2XK/Z496Y+3bGkCUf/+UL/+dS+VnAybN5tAtHAhnDrlOFa+vJlyHxxsOpo8PPLgvYiISCqFI5HsSE5OP+X+yBHHMQ8Ps4DQgAHQrx9Uq3bdS6XM3rfbzYrVaSerlS5tLhMSYtZ4vM6dNxERyWVu/5/cqVOn8sYbbxAREUHDhg2ZMmUKHTp0uOF5P/74Ix07dqRRo0bsTbuplEhmDh+Gzz83j2PHHOU+PmbPjQEDzCZk15lyDyYQ7dvn2M/s6FHHMX9/k6lCQszYbG/vPHknIiJyA24djux2O2PHjmXq1Km0b9+e6dOn0717dw4ePEi16/xfe3R0NA8++CCdOnXiVNr7FyJpnT4NCxbA3LmmiydF8eJmQcb+/c3urNeZcp/i4EEThhYsSL++Y9GiZhmjkBDo2vW6k9VERCSf2Cwr7ahR99K6dWtatGjBtGnTUsvq169Pv379mDx5cpbnhYSEULt2bTw9PVm2bFm2eo5iYmIICAggOjoa/5v4oyhu5soVs/7Q3LlmRcWUJaY9PU16CQ01aaZo0Rte6tdfHYHowAFHuZ+fWcYoJMRkrJu4lIiI3KLs/P12256j+Ph4du3axfjx49OVd+nShc2bN2d53qxZs/jtt9/4/PPP+c9//pPXzRR3kJxsVqqeO9fszhoT4zjWsiU88IBJMjexCdkff5jxQwsWpN8SzdvbZKuQEJOtSpTIg/chIiK5wm3D0ZkzZ0hKSiLwL3+wAgMDiYyMzPScI0eOMH78eDZt2oTXTY5wjYuLIy4uLvX3mLR/OMW9HTxoxhDNm2d2vk9RrZoJRA88cMNZZgB//mlmmC1YAFu3Oso9Pc2+sCEhZixRqVK5/xZERCT3uW04SmH7y0IvlmVlKANISkpi6NChTJo0iTrZ2FNh8uTJTJo06ZbbKS7i1CmYP9/0EqXt2gkIMDuyhobe1Hz5qCjTyWS3w6ZNjiWNbDYzuywkxIzRvsH4bBERcUFuO+YoPj6eokWLsnDhQvr3759a/n//93/s3buXDRs2pKt/4cIFSpUqhaenZ2pZcnIylmXh6enJqlWruPfeezO8TmY9R1WrVtWYI3dy+bLZ2HXuXLOvWVKSKffyMgOqQ0PNTLMbjIY+d87M4F+wANauNXfjUrRrZwLRoEFQsWLevRUREcmZQjHmyMfHh6CgIFavXp0uHK1evZq+fftmqO/v78/+/fvTlU2dOpW1a9eyaNEiamaxZbmvry++vr6523jJe0lJsH69CUSLF6ffiKx1axOIgoOhbNnrXiY62uwCYrfDqlWO8dlghiOFhJgOpxssaSQiIm7EbcMRwLhx4wgNDaVly5a0bduWGTNmcPz4cUaNGgXAhAkTCA8PZ86cOXh4eNDoLztyli9fHj8/vwzl4sb27zeB6IsvIDzcUV6zpmMc0Q1uq166ZCas2e1mn9g0HYc0aWIC0ZAhUKtWHr0HERFxqmyFo+XLl2f7Be677z6KFCmS7fNuRnBwMGfPnuWll14iIiKCRo0asWLFCqpXrw5AREQEx9MOtJWC6epVc6/r/ffTjyMqWdL0DoWGmvte19mI7MoVE4TsdvjmG3MnLkW9eiYQBQebn0VEpGDL1pgjj2xu6mSz2Thy5Ai33XZbthvmqrTOkQsJD4dp02D6dDhzxpR5e5vFg0JDzfN1bonGx5tbZXa7uXUWG+s4dtttjkDUuLE2eBURcXd5OuYoMjKS8uXL31TdElrMRXKbZcGWLfDee2YsUcogoKpV4ckn4aGHrjuOKDHRDKa2283g6vPnHceqVjVhKDgYgoIUiERECqtshaNhw4Zl6xbZAw88oN4VyR1xcSbRvPce7NrlKO/YEcaMMSsrZrF2VVKSmW5vt5s8dfq041iFCmb8UHAwtGmjHe9FRMSNp/I7i26r5bM//4SPPjK3zqKiTJmfH9x/Pzz1FDRtmulpyclmQUa73SzQGBHhOFa2rJlyHxwMHTqYxRpFRKRgy7ep/FevXuWnn34iKiqK5LSLvgB9+vS5lUtLYbd1q+klWrjQceusShUYPRoeeSTTW2eWZTqV7HazhUfasfglS5pFGYOD4d57s+xkEhERyXk4CgsL48EHH+RMykDYNGw2G0kpC+2J3Ky4OBOG3nsPduxwlN95p7l11q+fGXCdhmWZ2ft2u3n89pvjWIkS0LevCURduoCPT/68DRERcW85DkdPPvkkgwcP5oUXXsiwv5lItkRGmttm06aZ7T3AzDIbOtTcOmvePMMpP//sCESHDjnKixQxi10HB5vFr/NoFQkRESnAchyOoqKiGDdunIKR5NyOHaaXyG6HhARTVqkSPPEEPPpoho3Jfv/dEYj27XOU+/qaIBQcDL16QfHi+fgeRESkwMlxOBo0aBDr16+nlpYJluxITjY7tr7zTvot7Nu1M7fOBgxId+vsxAkzfmjBAti501Hdy8vcKgsONrfOAgLy8T2IiEiBluPZapcvX2bw4MGUK1eOxo0b4/2XsSBjxozJlQa6Gs1WyyHLgrAwmDDB0e3j42NWWnzqKbNR2TURESY/LVgAmzc7LuHhYQZTBwdD//5Qpkw+vwcREXFb+TJb7YsvvmDlypUUKVKE9evXY0uzYp7NZiuw4UhyYPNmE4o2bjS/+/vD00/D44/DtduyZ86YNYgWLIANG0yWArMQY4cOJhANHJhaXUREJM/kuOeoQoUKjBkzhvHjx2d7WxF3pp6jbDhwAJ57DlL25PP1Nb1E48dDmTKcPw/LlplAtGaNWawxRZs2JhANHgyVKzul9SIiUoDkS89RfHw8wcHBhSoYyU06dgz+/W+YO9d0AXl6mm09XniB2IAqLF9uAtHKlY5x2AAtWphANGQI1KjhrMaLiEhhl+NwNGzYMOx2OxMnTszN9og7O3UKXnnFrGidknoGD+byxP/w7ZE6LPg/WLECrl51nNKokWM/s9q1ndNsERGRtHIcjpKSknj99ddZuXIlTZo0yTAg++23377lxombiImBN9+Et9+GS5cAiOvUg7Du77Jg5+18fWdqMQB16jgCUcOGTmqziIhIFnIcjvbv30/za4vzHThwIN0xm7YzLxyuXoWpU+HVV+HsWRLw4vvaY1hQYzzLtlUkZo2jao0aJgyFhJjt0PSviIiIuKoch6N169blZjvEnSQmwpw58O9/k3TyT9ZzNwsCRrEkqQ/njvjCEVOtcmVHD9EddygQiYiIe9D2m3LzLAuWLjUz0H7+mViK08l7FzsSmkG0qRIYaGaYBQebdR01Xl9ERNxNtsLRTz/9RKNGjW56htr//vc/6tati5e2QHd/u3aZbT22bwcgqXQ5/ha4lR2HbsPf39wuCw6Gjh3N5DQRERF3la3/r2/evDlnz5696fpt27bl+PHj2W6UuJCEBJg0ySw8tH07FCsGzz/PM0NO8O2h2/Dzg9Wrzb6x996rYCQiIu4vW106lmXx/PPPU7Ro0ZuqHx8fn6NGiYs4eBAefND0GgEMGgQffMCHiwJ592VTNHcutGrlvCaKiIjktmyFo7vuuovDhw/fdP22bdtSpEiRbDdKnCwpCaZMMWOL4uKgVCn48EMICSFspY2UnWFefdXkJRERkYIkW+Fo/fr1edQMcRm//w7Dh8OmTeb37t3hk0+gUiUOHDCrVycnmyrjxzuzoSIiInlDc4nEsCwzcKhJExOMiheHGTPg22+hUiUiI6FnT4iNNYOup0/X1HwRESmYNI1MIDwcHnkEwsLM73fdBbNnQ82aAFy5Av36wfHjZouPJUvAx8dprRUREclT6jkqzCwLvvjCbHAWFga+vvDWW7BuXWowSk6GYcNg2zYoXdp0JJUu7eR2i4iI5KEch6MTJ07kZjskv505YwYQ3X8/XLgAQUGwezeMG5du5cYXXoCFC8Hb2/QYaXNYEREp6HIcjurVq8fzzz/PpbQ7iop7+Ppr01u0aBF4eZl1jLZsgQYN0lWbMwdeecX8PGOGGWskIiJS0OU4HK1evZpVq1ZRu3ZtZs2alZttkrwSFwcPPwx9+sCpUyYMbd1quoe8vdNV3bjRDEMCmDjRzE4TEREpDHIcjtq1a8e2bdv473//ywsvvEDz5s011d+VxcZCjx7w6admmtmzz5rFHYOCMlQ9cgT69zeLYw8aBC+/7IT2ioiIOMktD8h+8MEH+eWXX+jduzc9e/akf//+/Prrr7nRNsktp0+bvT3WrjVT9FeuhNdfBz+/DFXPnYNevcxzq1bm1po2jxURkcIkV/7sWZZFly5dePTRR1m+fDmNGjXimWeeITY2NjcuL7fi+HHo0AF27oSyZc1MtPvuy7RqfDwMHAi//ALVqsFXX4EWOBcRkcImx+Hoo48+4uGHH6ZJkyYEBATQuXNnfvzxR0aPHs3UqVPZu3cvDRo0YOfOnbnZ3gymTp1KzZo18fPzIygoiE0pKztnYsmSJdx3332UK1cOf39/2rZty8qVK/O0fU516BC0bw+HD0PVqmZxx5YtM61qWfD447B+PZQoAd98AxUq5G9zRUREXIHNsiwrJydWrVqVNm3apD5atmyJr69vujqvvvoqX3zxBQcOHMiVxv6V3W4nNDSUqVOn0r59e6ZPn84nn3zCwYMHqVatWob6Y8eOpVKlStxzzz2ULFmSWbNm8eabb7Jt2zaaN29+U68ZExNDQEAA0dHR+Pv75/Zbyj3bt5sxRmfPQr16sGqVCUhZeO01sx2Ih4cJRt2752NbRURE8lh2/n7nOBzdjFOnTlGpUiWSkpLy5PqtW7emRYsWTJs2LbWsfv369OvXj8mTJ9/UNRo2bEhwcDAvvPDCTdV3i3D0/fdmSetLl8zAoW+/NbfUsrB4sWMD2fffhyefzJ9mioiI5Jfs/P3O06G25cuXZ+3atXly7fj4eHbt2kWXLl3SlXfp0oXNmzff1DWSk5OJjY2l9HWWfI6LiyMmJibdw6UtWmR6jC5dMmOL1qy5bjDasQNCQ83PTz2lYCQiIpKn4chms9Exj1YOPHPmDElJSQQGBqYrDwwMJDIy8qau8dZbb3Hp0iWGDBmSZZ3JkycTEBCQ+qh6nVtTTjd9uln1OiEBBg82iz0WL55l9ePHzZJHV66Y22hvv52PbRUREXFRbj9J2/aXreEty8pQlpn58+fz4osvYrfbKV++fJb1JkyYQHR0dOrDJbdNsSyzlPWoUebnxx6D+fPNXmlZiI01U/YjI6FxY1iwwCyWLSIiUti57Z/DsmXL4unpmaGXKCoqKkNv0l/Z7XYefvhhFi5cSOfOna9b19fXN8NAc5diWWY/tClTzO//+he89JJZ6DELiYkQEgL790NgoBmA7arDp0RERPKb2/Yc+fj4EBQUxOrVq9OVr169mnbt2mV53vz58xk+fDhffPEFPXv2zOtm5r233nIEo3feMctZ36Dn7JlnYMUKswbk8uVmTSMREREx3LbnCGDcuHGEhobSsmVL2rZty4wZMzh+/DijRo0CzC2x8PBw5syZA5hg9OCDD/Luu+/Spk2b1F6nIkWKEBAQ4LT3kWObN5v593DT08w+/BDee8/8PHeumcwmIiIiDm4djoKDgzl79iwvvfQSERERNGrUiBUrVlC9enUAIiIiOH78eGr96dOnk5iYyOjRoxk9enRq+bBhw5g9e3Z+N//WnD1r7o0lJcHf/gZp3k9WwsJgzBjz86uvOqbvi4iIiEOernNUELnEOkfJyWaa2bffQu3aZgPZEiWue8qBA9CunRmIPXy4Y/9ZERGRwsBl1jmSPPL22yYY+frCwoU3DEaRkdCzpwlGHTuaGf8KRiIiIplTOHI3accZvfceNG163epXrkDfvmZNo9q1YckS8PHJh3aKiIi4KYUjd/LXcUYjR163enIyDBtmtlkrXdp0Nl1nMXARERFB4ch9pCSdEydMF9BN3Bt74QVz183b2/QY1a6dT20VERFxYwpH7iKb44w++8wsmg0wY4YZayQiIiI3pnDkDrI5zmjjRscdt4kTzew0ERERuTkKR64uLg6GDr3pcUZHjkD//mbv2UGDzILZIiIicvMUjlzdF1/AH39ApUo3HGd07pyZsn/unFn5es4c8NAnLCIiki360+nKLMuMNQIYO/a644zi42HgQNNzVK0afPUVFCmSP80UEREpSBSOXNmqVWZp6+LFr3s7zbJg1ChYv97kp2++gQoV8q+ZIiIiBYnCkSt7803z/MgjULJkltVeew1mzTK30Ox2aNw4f5onIiJSECkcuap9++D778HTE/7v/7KstmgRTJhgfn73XejePZ/aJyIiUkApHLmqlLFGgwZBjRqZVtmxA0JDzc9PPQVPPpk/TRMRESnIFI5cUXi4maUG8Pe/Z1rl+HHo0weuXjW9RSlZSkRERG6NwpErev99SEyEu+6Cli0zHI6JgV69IDLSjC9asAC8vJzQThERkQJI4cjVxMaa9YwAnnkmw+HERLMW5P79EBhoZqb5++dzG0VERAowhSNXM3s2XLgAdeqY7qG/eOYZWLEC/Pxg+XKzppGIiIjkHoUjVxMWZp5HjcqwvPWHH5qt1QDmzjWrYIuIiEjuUjhyNfv2mefWrdMVh4XBmDHm51dfNZPYREREJPcpHLmSM2fMTDVIt5Lj/v0wZAgkJ8Pw4TB+vHOaJyIiUhgoHLmSlF6jWrVS91GLjDRDj2JjoWPHG+49KyIiIrdI4ciVpISjZs0AuHIF+vY1axrVrg1LloCPj/OaJyIiUhgoHLmSvXvNc9OmJCfDsGGwfTuULg3ffmueRUREJG8pHLmSlJ6jpk15/nlYuBC8vU2PUe3azm2aiIhIYaFw5Cri4+HQIQA+O9KOV181xTNmmLFGIiIikj8UjlzFwYOQkMCG4j0YOaEMABMnmtlpIiIikn+0I5er2LePI9zOgKtfkJBoY9AgePllZzdKRESk8FHPkYuIPh5NT77lXGIArVrBnDkZFsgWERGRfKA/vy5i9Yl6HKEOfh5xfPUVFCni7BaJiIgUTgpHLuKeoBj8uMLVZF+OHnV2a0RERAovhSMXUaayHyEsAMwGsyIiIuIcbh+Opk6dSs2aNfHz8yMoKIhNmzZdt/6GDRsICgrCz8+P2267jY8++iifWnoDJUowGpOKFi6EqCgnt0dERKSQcutwZLfbGTt2LM899xx79uyhQ4cOdO/enePHj2da/+jRo/To0YMOHTqwZ88eJk6cyJgxY1i8eHE+tzwT/v60ZBetvHcTHw8zZzq7QSIiIoWTzbIsy9mNyKnWrVvTokULpk2bllpWv359+vXrx+TJkzPU/+c//8ny5cs5dG2xRYBRo0axb98+tmzZclOvGRMTQ0BAANHR0fj7+9/6m0jx669QuzZzfEcyLG4G1arB77+Dp2fuvYSIiEhhlZ2/327bcxQfH8+uXbvo0qVLuvIuXbqwefPmTM/ZsmVLhvpdu3Zl586dJCQkZHpOXFwcMTEx6R55okQJAIbEzaFMGYvjx+Gbb/LmpURERCRrbhuOzpw5Q1JSEoGBgenKAwMDiYyMzPScyMjITOsnJiZy5syZTM+ZPHkyAQEBqY+qVavmzhv4q2sp1o84Hn4gHtDAbBEREWdw23CUwmazpfvdsqwMZTeqn1l5igkTJhAdHZ36OHHixC22OAt+fuBlFiwfNSAKmw1Wr4ZffsmblxMREZHMuW04Klu2LJ6enhl6iaKiojL0DqWoUKFCpvW9vLwoU6ZMpuf4+vri7++f7pEnbDZo0gSAmic20rOnKZ46NW9eTkRERDLntuHIx8eHoKAgVq9ena589erVtGvXLtNz2rZtm6H+qlWraNmyJd7e3nnW1pvWqZN5XrOG0aPNj7Nnw6VLTmuRiIhIoeO24Qhg3LhxfPLJJ3z66accOnSIp59+muPHjzNq1CjA3BJ78MEHU+uPGjWKP/74g3HjxnHo0CE+/fRTZs6cyd///ndnvYX00oSjLvdZ3H47REfDvHnObZaIiEhh4tbhKDg4mClTpvDSSy/RrFkzNm7cyIoVK6hevToAERER6dY8qlmzJitWrGD9+vU0a9aMl19+mffee4+BAwc66y2kd+ed4O0Nx4/jcfQ3Hn/cFH/4IeTbggtRUXDuHCQn59MLioiIuBa3XufIGfJsnaMUHTvCxo3w0UecH/IYlSvDlSuwaZPJTnnO09MEoz//hIoV8+EFRURE8l6hWOeowEpza61UKRg61PyaL9P6LQuSkzlEPYY/XZLY2Hx4TRERERejcORqOnc2z2vXQnJy6sDsxYshi+Wbck9iIhYwkMV8Zi/CO+/k8euJiIi4IIUjV3PHHVC8OJw9C/v20bw5tG0LCQnw8cd5/NoJCdiAfzMJgDffhCzWxhQRESmwFI5cjbe3GXcE8N13AKm9R9OnQ2JiHr72tS1UBrOQ5s2SiY2F//43D19PRETEBSkcuaJBg8zztGmQkMCgQVCuHISHw/Llefi68WbbEg8sXn3VrBj+wQfmdUVERAoLhSNX9Le/QWAgnDwJixbh6wsjR5pDeTow+1o4wsuLrt1sVK0KcXGwd28evqaIiIiLUThyRb6+8OST5ue33gLL4rHHwMPDjNM+dCiPXjclHHl7c+oUpGwjd8cdefR6IiIiLkjhyFWNGgVFisCuXbBpE9WqQZ8+5lCe7beWEo58fFi1yvwYFATly+fR64mIiLgghSNXVbYsDBtmfn7rLQCeeML8+tln5M0aRNcGZOPjQ1iY+bFr1zx4HRERERemcOTKxo41z19/Db/8QqdOUKeOCUaff54Hr3ctHCV5+ab2HHXrlgevIyIi4sIUjlxZ3brQu7dZuXrKFDw8HL1HebLf2rV1AnYnN+PsWfD3hzZtcvk1REREXJzCkasbN848z54NZ84wbBgULQr/+5/Zgi1XJSUBEBZ3D2AW6/b2zuXXEBERcXEKR66uY0do0cLsPvvii5QsCQ88YA7l+rT+lHB01SxCqfFGIiJSGCkcuTqbzezjAWZRyN27U1fMXroU/vwzF1/LsrhAAFuvNgMUjkREpHBSOHIH99xjFoZMTobRo2nSKJk77zRDhGbMyL2XiU+wMYzPSMaTBg2gevXcu7aIiIi7UDhyF2++aTak3boVZs1K7T2aMcMxA/9WxMfDkH/XYzl98bXF8d57t35NERERd6Rw5C4qVYJJk8zP//wnA+4+R2AgRESY22u3Ij4egoPhq01l8OUqy8uPpFOnW2+yiIiIO1I4cidPPQUNG8LZs/hMeo5HHzXFt7JitmWZAd7LloGvTzLL6UMXn/W50VoRERG3pHDkTry9HVPUpk/nsTb78PSEDRvgwIGcXfLXX2HhQvDygq+mHKMLq3PnPp2IiIibUjhyNx07wv33g2VR+cWR9OubDOS89ygy0jzXqAFd77m2t1pc3K23U0RExE0pHLmjN94wy1fv2MHo4nMAmDsXYmKyf6mzZ81zmTKAr6/5ReFIREQKMYUjd1SxolnzCLh77sM0qHGJixdhzpzsXypdOCpSxPxy5Uoe7E0iIiLiHhSO3NXQoTBsGDYrmScuTAbMrbXsZpp04ahoUfOLZcHVq7nXVhERETeicOTOPvgAatcm9MJ7FPe6wqFDsG5d9i6RLhwVK+Y4cOlSrjVTRETEnSgcubPixWHBAvy9rxKaOAvI/n5r6cKRpyf4+ZmCixdzr50iIiJuROHI3bVoAa+9xmhMKvrqK4uTJ2/+9HThCKBECfOck9HdIiIiBYDCUUHwf/9Hw+7V6ch6kpJsTP/g5tcpyhCOAgLMs8KRiIgUUgpHBYGHB8yezeiS8wD4+N1LxMfd3MjsDOHI3988KxyJiEghpXBUUJQvT79FoVQinFNXS7J4+Nc3dVqWPUfR0bnfRhERETegcFSAeHe6i0d7/gnAhwtKwzffXLe+ZSkciYiI/JXbhqPz588TGhpKQEAAAQEBhIaGcuHChSzrJyQk8M9//pPGjRtTrFgxKlWqxIMPPsiff/6Zf43OB49+fAdeHkn8yJ3sC34VDh7Msm5sLCQmmp9Tw1HJkub5Ov8sRURECjK3DUdDhw5l7969hIWFERYWxt69ewkNDc2y/uXLl9m9ezfPP/88u3fvZsmSJfzyyy/06dMnH1ud9ypWhAEDbABMvTwM+vSBc+cyrZvSa+Tn51j/MTUcqedIREQKKS9nNyAnDh06RFhYGFu3bqV169YAfPzxx7Rt25bDhw9Tt27dDOcEBASwevXqdGXvv/8+rVq14vjx41SrVi1f2p4fRj/lwZeL4HNbKK/99k9KDhkCYWHglf7jznBLDRy31dRzJCIihZRb9hxt2bKFgICA1GAE0KZNGwICAti8efNNXyc6OhqbzUbJlN6SAqJDB2jUCC5bRZno9QasWQNjx2bYW+S64Ug9RyIiUki5ZTiKjIykfPnyGcrLly9PZGTkTV3j6tWrjB8/nqFDh+KfMn09E3FxccTExKR7uDqbDd580zxPSxzJHELN0tnvvJOuXqbhKOWfhcKRiIgUUi4Vjl588UVsNtt1Hzt37gTAZrNlON+yrEzL/yohIYGQkBCSk5OZOnXqdetOnjw5ddB3QEAAVatWzdmby2ddu8K//21+fsxrJvtoAs88AwsXptbJNBylrJAdG5s/DRUREXExLjXm6MknnyQkJOS6dWrUqMFPP/3EqVOnMhw7ffo0gYGB1z0/ISGBIUOGcPToUdauXXvdXiOACRMmMG7cuNTfY2Ji3CYgPf88bN8OK1Z4M8D/e3bG1KFUaKgZtX3nnRw4YOpVqJDmJIUjEREp5FwqHJUtW5ayZcvesF7btm2Jjo5m+/bttGrVCoBt27YRHR1Nu3btsjwvJRgdOXKEdevWUSZdl0nmfH198fX1vfk34UI8PGDuXAgKgt+PlePBwJV8daoNHn37cnH1FubPrwPAgAFpTipWzDxfvpz/DRYREXEBLnVb7WbVr1+fbt26MXLkSLZu3crWrVsZOXIkvXr1SjdTrV69eixduhSAxMREBg0axM6dO5k3bx5JSUlERkYSGRlJfHy8s95KnitdGpYsMdP1vznVislVPoRz5/iy60xiY+H22+Huu9OckBKOLl1yRnNFRESczi3DEcC8efNo3LgxXbp0oUuXLjRp0oS5c+emq3P48GGirw0sPnnyJMuXL+fkyZM0a9aMihUrpj6yM8PNHTVvDilDq54PH8WqCg8y40x/AEYOiyfdMK2UXrK4uPxtpIiIiIuwWZZ1czuUCmDGHAUEBBAdHX3D8Uqu5rHHYMYM8Pa2SEgwiahlwC+89HktuvX0NCHpyBGoU8eMPXKDmXkiIiI3Izt/v92250iy7913oWVLUoORjWR2RtehR29PWre2+PZbsDyvDUNLSnJiS0VERJxH4agQ8fODRYscU/d7tzrFM7xFES6zY4eNXr3gjn6VWE5vrESFIxERKZwUjgqZ6tVh/nyzQOTy7RVpENqCY9TgWV6nqE8Cu/b70pflBCVsZdmyDItqi4iIFHgKR4XQfffByy+bn5/48h5OPvRvXuefHEusyvjOOylOLHusZvTvbwZzL1mikCQiIoWHwlEhNWEC9O5tJqUNXPsE54Ifp1zyKSZ/fwdHqcnEIm9TogTs2wcDB8Lnnzu7xSIiIvlD4aiQ8vCAOXOgVi04dszG/Rc+ILnTfQCU5SyvXHmGY8egRg1TPyHBaU0VERHJVwpHhVjJkrB4MRQpAmErPXip5fJ0x33jYwkPNz/fc0/+t09ERMQZFI4KuaZNYfp08/NLr/ux4tFlqcd+7PMaCQlQrZqjB0lERKSgUzgSQkPhiSfMoOv7P+/G79QEYN0Os5XIPfeQfhVtERGRAkzhSAB4+21o3RouXPZlIIu5ElCBdZh7afd4bHBy60RERPKPwpEAZku1RYugnF8se2lOaMXV7PRoBcA9nz8M27c7uYUiIiL5Q+FIUlWpAguavIoHSSz+uRFJyR7cVjSSagm/waBBcPq0s5soIiKS5xSOJJ17LyzhVSam/l6sZjmzEe2JExASAomJTmydiIhI3lM4EoeEBPj9d/7B66lF+//nyZlPl0OxYrB2Lbz4ovPaJyIikg8UjsThyBFITCSmWKV0xX97sS5JH39qfpk8GbZtc0LjRERE8ofCkTjs2wfAxqr3pxYVLQrffw///t8QGDoUkpNh2DC4csVZrRQREclTCkfisGsXAOt8uwLw6KPwySfm0CuvwPIeH0HFinD4MPzrX85qpYiISJ5SOBKHHTsAWHe+GWAWf/zb32DMGHP4wdEl+HXSPPPLO+/o9pqIiBRICkdixMfDjh2coxT7TpQGoGNHc+iNN6B9e4iOhgHv38Plvz1sltP+5z/Ns4iISAGicCTGnj1cvZLMP3zfw7Js1Ktn7qAB+PjAl19CYCDs3w8T/N4xhRs2wKpVzm23iIhILlM4EgB+Xrif1mxjZtwDAIwbl/54pUrw3nvm5zXbS8Do0eaXiRPNIG0REZECQuGokLMsmD0bgqY8wE80pVzxy3z3HYwcmbFuo0bmOTwcmDABSpSA3bth3br8bLKIiEieUjgqxGJjITQURoyAy0l+dOJ79i35nW7dMq9fubJ5vnABLhUtZ1bMBpg/P1/aKyIikh8UjgqpXbugRQuYNw88PS1eYSIrSw+lYqcGWZ7j7w/Fi5ufw8Mx6x4BLF4McXF532gREZF8oHBUyFgWTJkCbdvCr79CtWqw4aE5TGQynvfcBR5Z/ythszl6j8LDgQ4dzGCkCxdg06b8aL6IiEieUzgqRK5cgT594OmnzTZq/fvDnj3Q/ujnpsI999zwGunCkacn3HGHKfjll7xptIiISD5TOCpEvvsOvvnG/PzBB+ZuWGn/RNiyxRTeddcNr5ESjk6evFZQs6Z5Pno0dxsrIiLiJApHhchdd5m90gBuu83cJuPgQbh0ycw8a9jwhteoUsU8h4dfKyhXzjyfOZPr7RUREXEGhaNCpGxZGDXK/Pyf/1xb3HrvXlPQvPl1xxulyNBz9Oef5rlSpdxsqoiIiNMoHBUyzzwDvr6webNZ4JpffzUH6te/qfO9vc1zQsK1gkOHzHO1arnaThEREWdROCpkKlWChx4yP7/yChAZ6ThwE1Jup1WujBlnlLIAZKdOudpOERERZ3HbcHT+/HlCQ0MJCAggICCA0NBQLly4cNPnP/bYY9hsNqZMmZJnbXRV//iHmWj2/fewPfzafbKULqEbSA1HlSz417/Mvbn77oPbb8+j1oqIiOQvtw1HQ4cOZe/evYSFhREWFsbevXsJDQ29qXOXLVvGtm3bqFRIx8nUqAEPmC3UGH/gfrbRikvHTt/Uuanh6Oc18MUXJmW9+GKetFNERMQZvJzdgJw4dOgQYWFhbN26ldatWwPw8ccf07ZtWw4fPkzdunWzPDc8PJwnn3ySlStX0rNnz/xqssuZMAHmzIF1x2+nDduwzUjm9rXJNG3mQdOmpD6qVr02q+2a8JPJgAdVFrxhCl55Bdq1c8p7EBERyQtuGY62bNlCQEBAajACaNOmDQEBAWzevDnLcJScnExoaCjPPvssDW9i2jpAXFwccWm2xoiJibm1xruIunVh5kyY/3kS+9afIyq5HEd+hSO/wqJFjnqlSkGTJtC0QQJN43dw/GAjwJ/KhMPzz5t7dCIiIgWIW4ajyMhIypcvn6G8fPnyRKYMMM7Ea6+9hpeXF2PGjLnp15o8eTKTJk3KUTtd3YgRMGKEJyzfQmT/x9mX3IifirVjX4Uu7Lt4O4dOl+H8eQ82bIANG7wBRw9R5Zkvw0P9ndd4ERGRPOJSY45efPFFbDbbdR87d+4EwJb2Xs81lmVlWg6wa9cu3n33XWbPnp1lncxMmDCB6Ojo1MeJEydy9uZcWZ8+VPh2Jl1rHuHZSy/y+W/t2H+qPJeSi7Cb5sxiOGN5h3v8tlC26CX69kyg5AgFIxERKZhcqufoySefJCQk5Lp1atSowU8//cSpU6cyHDt9+jSBgYGZnrdp0yaioqKolmY9nqSkJJ555hmmTJnCsWPHMj3P19cXX1/fm38T7qpbN/j5ZzM1f/16OHkS34QEmpcuTfMGDaBNGwgKSj8ASUREpACyWZZlObsR2XXo0CEaNGjAtm3baNWqFQDbtm2jTZs2/Pzzz5mOOTp79iwRERHpyrp27UpoaCgjRoy47iDutGJiYggICCA6Ohp/f/9bfzMiIiKS57Lz99uleo5uVv369enWrRsjR45k+vTpADz66KP06tUrXcipV68ekydPpn///pQpU4YyZcqku463tzcVKlS46WAkIiIiBZ9LjTnKjnnz5tG4cWO6dOlCly5daNKkCXPnzk1X5/Dhw0RHRzuphSIiIuKO3PK2mjPptpqIiIj7yc7fb7ftORIRERHJCwpHIiIiImkoHImIiIikoXAkIiIikobCkYiIiEgaCkciIiIiaSgciYiIiKShcCQiIiKShsKRiIiISBoKRyIiIiJpKByJiIiIpKFwJCIiIpKGwpGIiIhIGgpHIiIiImkoHImIiIikoXAkIiIikobCkYiIiEgaCkciIiIiaSgciYiIiKShcCQiIiKShsKRiIiISBoKRyIiIiJpKByJiIiIpKFwJCIiIpKGwpGIiIhIGgpHIiIiImkoHImIiIikoXAkIiIikobCkYiIiEgaCkciIiIiaSgciYiIiKTh5ewGuBvLsgCIiYlxcktERETkZqX83U75O349CkfZFBsbC0DVqlWd3BIRERHJrtjYWAICAq5bx2bdTISSVMnJyfz555+UKFECm83m7ObkupiYGKpWrcqJEyfw9/d3dnPkL/T5uDZ9Pq5Nn49ry+vPx7IsYmNjqVSpEh4e1x9VpJ6jbPLw8KBKlSrObkae8/f31388XJg+H9emz8e16fNxbXn5+dyoxyiFBmSLiIiIpKFwJCIiIpKGwpGk4+vry7///W98fX2d3RTJhD4f16bPx7Xp83FtrvT5aEC2iIiISBrqORIRERFJQ+FIREREJA2FIxEREZE0FI5ERERE0lA4KoSmTp1KzZo18fPzIygoiE2bNl23/oYNGwgKCsLPz4/bbruNjz76KJ9aWjhl5/NZv349Npstw+Pnn3/OxxYXHhs3bqR3795UqlQJm83GsmXLbniOvj/5J7ufj74/+Wfy5MnccccdlChRgvLly9OvXz8OHz58w/Oc9f1ROCpk7HY7Y8eO5bnnnmPPnj106NCB7t27c/z48UzrHz16lB49etChQwf27NnDxIkTGTNmDIsXL87nlhcO2f18Uhw+fJiIiIjUR+3atfOpxYXLpUuXaNq0KR988MFN1df3J39l9/NJoe9P3tuwYQOjR49m69atrF69msTERLp06cKlS5eyPMep3x9LCpVWrVpZo0aNSldWr149a/z48ZnW/8c//mHVq1cvXdljjz1mtWnTJs/aWJhl9/NZt26dBVjnz5/Ph9ZJWoC1dOnS69bR98d5bubz0ffHeaKioizA2rBhQ5Z1nPn9Uc9RIRIfH8+uXbvo0qVLuvIuXbqwefPmTM/ZsmVLhvpdu3Zl586dJCQk5FlbC6OcfD4pmjdvTsWKFenUqRPr1q3Ly2ZKNuj74x70/cl/0dHRAJQuXTrLOs78/igcFSJnzpwhKSmJwMDAdOWBgYFERkZmek5kZGSm9RMTEzlz5kyetbUwysnnU7FiRWbMmMHixYtZsmQJdevWpVOnTmzcuDE/miw3oO+Pa9P3xzksy2LcuHHceeedNGrUKMt6zvz+eOXp1cUl2Wy2dL9blpWh7Eb1MyuX3JGdz6du3brUrVs39fe2bdty4sQJ3nzzTe666648bafcHH1/XJe+P87x5JNP8tNPP/HDDz/csK6zvj/qOSpEypYti6enZ4ZeiKioqAzpPEWFChUyre/l5UWZMmXyrK2FUU4+n8y0adOGI0eO5HbzJAf0/XE/+v7kraeeeorly5ezbt06qlSpct26zvz+KBwVIj4+PgQFBbF69ep05atXr6Zdu3aZntO2bdsM9VetWkXLli3x9vbOs7YWRjn5fDKzZ88eKlasmNvNkxzQ98f96PuTNyzL4sknn2TJkiWsXbuWmjVr3vAcp35/8nzIt7iUBQsWWN7e3tbMmTOtgwcPWmPHjrWKFStmHTt2zLIsyxo/frwVGhqaWv/333+3ihYtaj399NPWwYMHrZkzZ1re3t7WokWLnPUWCrTsfj7vvPOOtXTpUuuXX36xDhw4YI0fP94CrMWLFzvrLRRosbGx1p49e6w9e/ZYgPX2229be/bssf744w/LsvT9cbbsfj76/uSfxx9/3AoICLDWr19vRUREpD4uX76cWseVvj8KR4XQhx9+aFWvXt3y8fGxWrRokW4q5bBhw6yOHTumq79+/XqrefPmlo+Pj1WjRg1r2rRp+dziwiU7n89rr71m1apVy/Lz87NKlSpl3Xnnnda3337rhFYXDilTv//6GDZsmGVZ+v44W3Y/H31/8k9mnwtgzZo1K7WOK31/bNcaLSIiIiJozJGIiIhIOgpHIiIiImkoHImIiIikoXAkIiIikobCkYiIiEgaCkciIiIiaSgciYiIiKShcCQiIiKShsKRiIiISBoKRyJSaN19993YbDZsNht79+69pWsNHz489VrLli3LlfaJiHMoHIlIoTZy5EgiIiJo1KjRLV3n3XffJSIiIpdaJSLO5OXsBoiIOFPRokWpUKHCLV8nICCAgICAXGiRiDibeo5EpMCYP38+fn5+hIeHp5Y98sgjNGnShOjo6Ju+zt13381TTz3F2LFjKVWqFIGBgcyYMYNLly4xYsQISpQoQa1atfjuu+/y4m2IiJMpHIlIgRESEkLdunWZPHkyAJMmTWLlypV899132e7V+eyzzyhbtizbt2/nqaee4vHHH2fw4MG0a9eO3bt307VrV0JDQ7l8+XJevBURcSKFIxEpMGw2G6+88gqffPIJr776Ku+++y5hYWFUrlw529dq2rQp//rXv6hduzYTJkygSJEilC1blpEjR1K7dm1eeOEFzp49y08//ZQH70REnEljjkSkQOnVqxcNGjRg0qRJrFq1ioYNG+boOk2aNEn92dPTkzJlytC4cePUssDAQACioqJurcEi4nLUcyQiBcrKlSv5+eefSUpKSg0wOeHt7Z3ud5vNlq7MZrMBkJycnOPXEBHXpHAkIgXG7t27GTx4MNOnT6dr1648//zzzm6SiLgh3VYTkQLh2LFj9OzZk/HjxxMaGkqDBg2444472LVrF0FBQc5unoi4EfUciYjbO3fuHN27d6dPnz5MnDgRgKCgIHr37s1zzz3n5NaJiLtRz5GIuL3SpUtz6NChDOVfffVVjq63fv36DGXHjh3LUGZZVo6uLyKuTT1HIlKoTZ06leLFi7N///5bus6oUaMoXrx4LrVKRJzJZul/fUSkkAoPD+fKlSsAVKtWDR8fnxxfKyoqipiYGAAqVqxIsWLFcqWNIpL/FI5ERERE0tBtNREREZE0FI5ERERE0lA4EhEREUlD4UhEREQkDYUjERERkTQUjkRERETSUDgSERERSUPhSERERCQNhSMRERGRNBSORERERNL4f8JVEDNBZlw1AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -249,7 +252,7 @@ }, { "data": { - "image/png": "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tRF79+7F+PHjERAQAIlEgp9++knskKiNiY2NxT333AN3d3f4+Phg4sSJuHDhgthhURuyfPly9OvXD2q1Gmq1GpGRkfj111/FDotaAZNqIiuqqqrCk08+iT//+c9ih0JtwPr16zFv3jy8+eabOHHiBIYPH46xY8ciNTVV7NCoDSgrK0NYWBg++eQTsUOhNmrPnj2YO3cuDh8+jPj4eNTU1CAqKgplZWVih0ZtRGBgIN59910kJCQgISEBDz74IB599FGcPXtW7NDIyjhSi6gVrFmzBvPmzUNhYaHYoZADGzx4MAYOHIjly5ebjoWEhGDixImIjY0VMTJqayQSCTZt2oSJEyeKHQq1YTdu3ICPjw/27NmDESNGiB0OtVGenp744IMPMHv2bLFDISviSjURkQOoqqpCYmIioqKi6hyPiorCwYMHRYqKiEg8RUVFAAxJDVFr0+l0+P7771FWVobIyEixwyErk4sdABERtVxeXh50Oh18fX3rHPf19UV2drZIURERiUMQBMTExODee+9FaGio2OFQG3L69GlERkaisrISbm5u2LRpE3r37i12WGRlXKkmMtPChQshkUjueEtISBA7TGqjJBJJna8FQah3jIjI0b344os4deoUvvvuO7FDoTamZ8+eSEpKwuHDh/HnP/8ZzzzzDM6dOyd2WGRlXKkmMtOLL76IqVOn3vGcTp06tU4wRLW8vb0hk8nqrUrn5ubWW70mInJkL730EjZv3oy9e/ciMDBQ7HCojVEoFOjWrRsAICIiAseOHcN//vMffP755yJHRtbEpJrITN7e3vD29hY7DKI6FAoFwsPDER8fj0mTJpmOx8fH49FHHxUxMiKi1iEIAl566SVs2rQJu3fvRufOncUOiQiCIECr1YodBlkZk2oiK0pNTUVBQQFSU1Oh0+mQlJQEAOjWrRvc3NzEDY4cTkxMDKZPn46IiAhERkZixYoVSE1NRXR0tNihURtQWlqKy5cvm76+du0akpKS4OnpiY4dO4oYGbUVc+fOxbfffouff/4Z7u7upsodjUYDZ2dnkaOjtuBvf/sbxo4di6CgIJSUlOD777/H7t27sW3bNrFDIyvjSC0iK5o5cya++uqresd///133H///a0fEDm8uLg4vP/++8jKykJoaCg++ugjjpKhVrF792488MAD9Y4/88wzWLNmTesHRG1OY/0jVq9ejZkzZ7ZuMNQmzZ49G7t27UJWVhY0Gg369euH119/HaNHjxY7NLIyJtVEREREREREzcTu30RERERERETNxKSaiIiIiIiIqJmYVBMRERERERE1E5NqIiIiIiIiomZiUk1ERERERETUTEyqiYiIiIiIiJqJSTURERERERFRMzGpJiIiIiIiImomJtVEREQEALh+/TokEgkkEgn69+/f4sczPpaHh0eLH4uIiMhWMakmIiKiOnbu3Ildu3a1+HGysrKwdOnSlgdERERkw5hUExERUR1eXl7w8vJq8eP4+flBo9FYICIiIiLbxaSaiIjIAd24cQN+fn545513TMeOHDkChUKBHTt2mPVYM2fOxMSJE/HOO+/A19cXHh4eWLRoEWpqavDqq6/C09MTgYGBWLVqlaW/DSIiIpsnFzsAIiIisrz27dtj1apVmDhxIqKiotCrVy88/fTTmDNnDqKiosx+vN9++w2BgYHYu3cvDhw4gNmzZ+PQoUMYMWIEjhw5gvXr1yM6OhqjR49GUFCQFb4jIiIi28SVaiIiIgf18MMP4/nnn8dTTz2F6OhoqFQqvPvuu816LE9PTyxbtgw9e/bEs88+i549e6K8vBx/+9vf0L17dyxYsAAKhQIHDhyw8HdBRERk25hUExERObAPP/wQNTU1+O9//4t169ZBpVI163H69OkDqfTW2wZfX1/07dvX9LVMJoOXlxdyc3NbHDMREZE9YVJNRETkwK5evYrMzEzo9XqkpKQ0+3GcnJzqfC2RSBo8ptfrm/0cRERE9oh7qomIiBxUVVUVnnrqKUyZMgW9evXC7Nmzcfr0afj6+oodGhERkcPgSjUREZGDevPNN1FUVIRly5bhtddeQ0hICGbPni12WERERA6FSTUREZED2r17N5YuXYpvvvkGarUaUqkU33zzDfbv34/ly5eLHR4REZHDYPk3ERGRA7r//vtRXV1d51jHjh1RWFho9mOtWbOm3rHdu3fXO3b9+nWzH5uIiMjeMakmIiKiOoYOHYr+/fvj4MGDLXocNzc31NTUNLvjOBERkT1gUk1EREQAgMDAQFy6dAkAoFQqW/x4SUlJAAzjtoiIiByVRBAEQewgiIiIiIiIiOwRG5URERERERERNROTaiIiIiIiIqJmYlJNRERERERE1ExMqomIiIiIiIiaiUk1ERERERERUTMxqSYi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4eXlhZdffhnz5s3D+vXrceHCBRw/fhyffPIJ1q9fDwCYM2cOKioqMG3aNKSnp+P8+fP48ssvm21/QNRdMZ+JnAfzmch5MJ8dC4tq6jR3d3fs27cPYWFheOCBBxATE4Onn34atbW1bV5J69WrF9544w0sWLAAAQEBmDNnToefz9vbG9u2bcMdd9yBmJgYrFy5Ehs3bsSAAQMAAH//+9/x+uuvIzk5GTExMZgwYQK+/fZbREZGAgB8fX2xZ88eVFVVYfTo0UhISMDq1au75VU0oj9iPhM5D+YzkfNgPjsWkSAIgq2DIDJYt24dXnzxRZSXl1v9uSMiIvDiiy/ixRdftPpzEzkj5jOR82A+EzkP5rP5caSa7I5KpYKnpyf++te/WuX5/vGPf8DT0xM5OTlWeT6i7oT5TOQ8mM9EzoP5bF4cqSa7UllZiaKiIgD6aSh+fn4Wf86ysjKUlZUB0HdTVCqVFn9Oou6A+UzkPJjPRM6D+Wx+LKqJiIiIiIiITMTp30REREREREQmYlFNREREREREZCIW1UREREREREQmYlFNREREREREZCIW1UREREREREQmYlFNREREREREZCIW1UREREREREQmYlFNREREREREZCIW1UREREREREQm+v/ZFpfQC+x5PAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -396,8 +399,8 @@ "Outputs (6): ['xhat[0]', 'xhat[1]', 'xhat[2]', 'xhat[3]', 'xhat[4]', 'xhat[5]']\n", "States (42): ['xhat[0]', 'xhat[1]', 'xhat[2]', 'xhat[3]', 'xhat[4]', 'xhat[5]', 'P[0,0]', 'P[0,1]', 'P[0,2]', 'P[0,3]', 'P[0,4]', 'P[0,5]', 'P[1,0]', 'P[1,1]', 'P[1,2]', 'P[1,3]', 'P[1,4]', 'P[1,5]', 'P[2,0]', 'P[2,1]', 'P[2,2]', 'P[2,3]', 'P[2,4]', 'P[2,5]', 'P[3,0]', 'P[3,1]', 'P[3,2]', 'P[3,3]', 'P[3,4]', 'P[3,5]', 'P[4,0]', 'P[4,1]', 'P[4,2]', 'P[4,3]', 'P[4,4]', 'P[4,5]', 'P[5,0]', 'P[5,1]', 'P[5,2]', 'P[5,3]', 'P[5,4]', 'P[5,5]']\n", "\n", - "Update: ._estim_update at 0x165cf9240>\n", - "Output: ._estim_output at 0x165cf8040>\n", + "Update: ._estim_update at 0x1685997e0>\n", + "Output: ._estim_output at 0x16859a4d0>\n", "xe=array([ 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00,\n", " -1.766654e-27, 0.000000e+00]), P0=array([[1., 0., 0., 0., 0., 0.],\n", " [0., 1., 0., 0., 0., 0.],\n", @@ -409,7 +412,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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potdWaAegpryOMf/mw04S0udELVgnPU6YoReHkyIumTatGlMmTKl4OvU1FSCg4MrfV5BS51rur7TvDnMmIHTlBScRiuysw2kpUGjRuaIum4zGAw0bdqUI0eOcMzYitkA+fj40KRJk1odwzaTuqt0N+huupD+2/e43zHa7OdM/egL0nPeBKSlToiaUkpKmYi6zdnZGWdn52o/r6ClrlG+/uP28ytoivb01N9vyJMlnJycaNu2bYPtgnV0dKxVC52RTSZ1zZtDM79M4s+4sMN/KFea+4QZGZy44AVAI5983N0bVtOxEKaye7cebuTqCkOGWDsaIUynoKWurS+8+02x73l46KSuoU+WsLOzw8XFxdph1Gs2m330Gaj/MLb97Wr+kxUtPBwsU/WEqCljK92114Kbm3VjEQ1DWloaMTExxMTEAHDkyBFiYmKIi4sz6XmMLXV+fkUe3LcPFi3Cw2DBGbDffAOff26BEwlrsNmkrm9ffbt9uwVOVqzwsCR1QtSUdL0KS4uOjqZ79+50767LX02ZMoXu3bvz/PPPm/Q8Bd2vHpl6nAHogozjxuFxIQGwQFKXnw+LFsFdd8Fnn5n5ZMIabDap69NH325bex5iYyvct9aKJHUySUKYW3x8PHfeeSd+fn64ubnRrVs3duzYYe2wai0uDnbu1HXpRoywdjSioRg0aBBKqVLbokWLTHqegu7Xt6brQXRbt4KXHrbjaamWOjs76NlT33/wQTh0qOL9Rb1js0ldeDjYk8vJdB+Obz1h3pNJUics5Ny5c1x++eU4Ojry008/ERsby5tvvomPj4+1Q6u1777Tt/37FyyLKYTNKGipS96va5cEBBQkdR7KgqtKTJsGAwfqDPLWWyErywInFZZikxMlANzdoZ37Sfalh3BgXz6VTzivhYQE4hkASFInzOvVV18lODiYTz75pOCxli1bVvicrKwssor8465qsVRLk65XYcsKWuqyT+rm6OBgOHwYAI98fU2au6VOXUjjzonunMpbwxLfHjTetQuefBLefde8JxYWY7NJHUBjjzT2pcPpkznmPdHLL3Piu3yIlaROmNd3333H0KFDGTNmDBs3bqRZs2ZMmjSJ++67r9zn1LRYqiWdPw8bNuj79SWpU0qRm5tLnnFBzwbG3t4eBwcHDLKOW6WUKtJSR7KunersrLthAY/cFMD8SV3CiPtY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\n", "text/plain": [ "
" ] @@ -461,8 +464,8 @@ "Outputs (6): ['xh0', 'xh1', 'xh2', 'xh3', 'xh4', 'xh5']\n", "States (42): ['x[0]', 'x[1]', 'x[2]', 'x[3]', 'x[4]', 'x[5]', 'x[6]', 'x[7]', 'x[8]', 'x[9]', 'x[10]', 'x[11]', 'x[12]', 'x[13]', 'x[14]', 'x[15]', 'x[16]', 'x[17]', 'x[18]', 'x[19]', 'x[20]', 'x[21]', 'x[22]', 'x[23]', 'x[24]', 'x[25]', 'x[26]', 'x[27]', 'x[28]', 'x[29]', 'x[30]', 'x[31]', 'x[32]', 'x[33]', 'x[34]', 'x[35]', 'x[36]', 'x[37]', 'x[38]', 'x[39]', 'x[40]', 'x[41]']\n", "\n", - "Update: \n", - "Output: \n" + "Update: \n", + "Output: \n" ] } ], @@ -521,7 +524,7 @@ "outputs": [ { "data": { - "image/png": "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8paL1g1MmGzFihW4u7tz/vz5ivtmzJhBr169yK08ql9YTEN77AbcF403+WQbAji4OdPSYYlGcuQ2dffdd7Nw4UJee+01+vTpw7Zt21i3bh3tr1zLTEtLq7emnSUVFkLZlQ64oM/ernPfYE/1jSwzTWbFNmfNsT21uMTOyQn69dIDsPeG56wYVfOhKOo/GFtsiokTJqdOnUpUVBQLFiwAYP78+WzYsIGff/4Zv/q6kIRZNGSMHYBLkB8jfJMA2Px9ft07OxhpU83HrFmzOHPmDKWlpSQmJjJixIiKny1fvpytW7fW+thXX32VpKQki8Vm7K1zowTPgrorM4T4qbNhMzNa3ixzaU9NY/LkiW3btvGvf/2LxMRE0tLSWLNmDbfcckut+2/dupXRo6svNXT48GG6drXM0l51JXagTqDY+gckngvlrxaJoHkrKqr9d2NpBQW1TgSrkUaj4Y033uCOO+4gPDycd999l+3bt9OmTZuKfX788UeefvppDAYDzz//PDNmzLBA5C1XQ3vsAMY83Y91r8DmMx2ZbcmgmhlHa1O33norW7duZezYsXz77bcWiLplqrzqhCa05hp2RsGt1A6IzGyH7H+pkyO1p9TUVKZNm0ZGRgbOzs689NJL3HnnnRaKXmXyK6awsJDevXvz/vvvm/S4o0ePkpaWVrF17tzZ1FM3WL2JnXEFChliZxcmTZpEdHQ08+fPZ82aNXTv3r3iZzqdjri4ODZv3szevXt58803ycnJsWG0jqehY+wAxkxW/yMmJEhd1easrjYFaj2uzz77zEbROa76Vp2orGLyxGUXC0clmqqu9uTs7MzChQtJTk5m06ZNzJ49m8LCQovGY3KP3fjx4xk/frzJJwoJCcG/IR/5zSD/ylWg2hI74wSKpD3l6Fatw/n2m60SV3Ph6Xk1+bXFuU21YcMGjhw5UmPx0T/++IPu3btXfDqaMGECGzZs4J577jFHuALTeux691YrCF26BHv+MDB4aMvobXCkNgUwevToOi9Zisapb53YyoJbq7XsMgo86tzPETlSewoLCyMsLAxQ86CAgABycnIsMjnHyGp17Pr27UtJSQnR0dG8+OKLNV6eNSotLaW0UrVtU5dsqa/HrnNn8HIto7DMlaOf7qB7C0vsNBrTupptae/evdx55518+OGHfP3117z00kt88803FT+/cOFClUtIbdu2rTKIVTRdQ8fYgTqGdXTQAVZf6sXmj44zeGiURWNrLhypTQnLqdpjV3dR5JA2ak9dZrGNrknakKO2pz179mAwGExercRUFv84HRYWxkcffcSqVatYvXo1UVFRjB07lm3bttX6mKYu2VJfYqfVQt/IywAknrD/wcKO6syZM0ycOJE5c+Ywbdo0XnvtNVatWkVipfqDSg0jXWuqMi8az5QeO4AxAfsB2JygtUg8ovEa0qaE5TRknVij4C5q8fxMl3CLxyUax5T2lJ2dzfTp0/noo48sHpfFE7uoqCgeeugh+vXrx5AhQ1i0aBETJ07krbfeqvUxTV2ypa4CxUb9eqoDgPaltTbp2MI6cnJyGD9+PFOmTOGFF14AICYmhsmTJzNv3ryK/dq0aVOlh+7cuXMV3d7CPEwZYwcwZpJ6LeO3lAhKSiwTkzBdQ9uUsJystHIAAr1K665QDAT3V0u0ZBrq3k/YhintqbS0lFtvvZW5c+fWWCzb3GyypNjgwYP54osvav15U5dsqa/HDiCqtxt8C6fzg8BgqL72mLCpgIAADh8+XO3+77//vsr3AwcO5NChQ5w/fx5fX1/WrVvHyy+/bK0wWwRTe+y63tWL1i+lkW4IY9e2MkbFykoUzUFD25SwnOx8tS0EvTEb6mkWxskTBQVQXFx13XNhew1tT4qicP/99zNmzBimTZtmldhsks3s27fPor0qDUns2vVQux/OKhGQUXc9IdF8OTs78+9//5vRo0fTt29fnn32WQLrK+kuTGLKGDsATefrGOO+A4DNX6XXs7dojsaNG8edd97JunXraNu2Lbt377Z1SA6hoatOgLperMuVCbGZ6XrLBSUs6rfffmPlypV899139OnThz59+nDw4EGLntPkHruCggJOnDhR8f3p06dJSkoiICCAdu3aMXfuXM6fP18xVX7hwoV06NCB7t27U1ZWxhdffMGqVatYtWqV+Z5FtRjV27oSu/ad1KeeQjs4dxpayyVZe1V58WVhXgYDGOcuNXhSu0bDmO4ZfJUIm7dqeM1SwQmL2bBhg61DcEgNWSfWSKOBECWd87Qm87djtIvsZtnghEUMGzYMg5XXWDS5x27Pnj307duXvn37AurafH379q24/HXtki1lZWU888wz9OrVi+HDh/Prr7/y008/cdttt5npKVTXoB67duptDoEUHLtgsViE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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -548,13 +551,13 @@ "output_type": "stream", "text": [ "Summary statistics:\n", - "* Cost function calls: 5859\n", - "* Final cost: 376.36233549481494\n" + "* Cost function calls: 5051\n", + "* Final cost: 354.3319137685172\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -583,7 +586,7 @@ "outputs": [ { "data": { - "image/png": "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mx59YpdVsnb+/HlDX6VLly5led/334d168DZGZYsge++0/Wty66yZWHpUujbdwYQBzRi6dLnqFsXvLx0yaq1BlDkpTJkq/T965o0aZLhF6iMNGnShJIlSxIVFZXle4resmXL8Pb2NiyLlF1hYWGkpKTg4OBA3bp1DSNizT3non7ghK+vLw4OWU+E4OLiYpjWSPrZCZH/mJTY7d69O1uL7W7ZsgVvb++cxpShVatWMWbMGN5//31OnDhBq1at6NKlS4bfcK9evcozzzxDq1atOHHiBO+99x6jRo1i7dq1hmMOHTpE7969GTBgACdPnmTAgAH06tUry3lssiOrxC4y8r+1YRs0+G9psfToa+v0rl69muF927TRDYMPC4MTJzKPUSmVZWKnn1zxxIkTmQ4913/AQtaJ3YYN8MUXup//9z8YNCjzOLNy69Yt1q2bC8C4cZ9SqpSG8+fh7NmaAMyefY79+3VTqeSmvFKG8pMjR45kazBBTgZO6Nnb29P10TchUyYrTk5O5sMPPyQ8PJz+/fuze/fubN9TP9VJuXLlsLe3N3SsXr9+fbavlZnsDJzQkwEUQuRj1m4Lzo4mTZqoYcOGGe2rWbNmhksiTZgwQdWsWdNo3xtvvKGaNWtm+HevXr1U586djY7p1KlTtvraZNV3pF27dgpQS5cuTfNYYqJSbdvq+oVVrqzU559/pQD14osvpnutV155xWjJr8yWB1JKqeef1117ypTMf4fr168rQDk4OKjExMR0j0lOTlaFChVSgAoODs7wWq+99pohvqJFi2Z43KVLSnl66uIbMybz+Ew1YsQIBaiWLVsqrVar7t9Xavx4pVxdv34UU08FSpUpo9To0Upt3KjU338rFRKiVCbdGqV/kAWl99zOmzdPAap169Ym9/OqUaOGAtTmzZtzFId+Ob0yZcpk2sdVKaXWrVtnVA49PDyy3a9vxYoVClCtWrVSSil16dKlR31s7VVERESOfofUoqOV2rRJqYYNeytAPffcDDVrllJff63bVq7Uve7T07u37pyZM2c+cRx6UoaEyB3ZSuxCQ0PVe++9p9q2batq1qypfH19Vdu2bdV7772nQjJ6hzCThIQEZW9vr3777Tej/aNGjVKtW7dO95xWrVqpUaNGGe377bffjJIXHx8f9fXXXxsd8/XXX6vy5ctnGEt8fLyKiooybKGhoZm+YZUpUybd9em0WqXeeEOX2BQurNTp00pt3bo10xFplStXNozwBNTkyZMzjFMppRYt0l2/ceNMD8vyvnotWrRQgPrf//6X4TG1atUy+tBL70PqwQOl6tXTxda8uS7BfVLXrl1Tjo6OClC7d+82emzjRt3v5+lZyzDqNr2taFGlatZU6vHl/HLjQykkJCRba6zaivSe2+vXrxtGYa9atSrLa0RGRhpeb5GRkTmKIz4+Xnl7eytA/fjjj5keqx99O2bMGNW6dWsFKG9vb3Xt2jWT76cfrNS/f3/Dvjp16ihALVu2LNvxJyYqtX+/UpMnK9WihVIODvrXde1Hz82WdF/zZcsq9eKLumTv0CHdF5wJEyYoIM3755OQxE6I3GHy4IkDBw7g6+vLunXrqFevHq+88govv/wy9erVY/369dSuXZs///zT9KrCbIqIiCAlJcWw1puel5cX4eHh6Z4THh6e7vHJycmGfmoZHZPRNQGmT5+Op6enYdN3Nk5PTEwMt27dAtI2xc6dq5twV6PRTbrr5/ffJMUXLlwgMTHR6Phbt25x5coV7Ozs6PtoorvMmmIBnnlG9/+//4ZMfqUsm2H1shpAcf/+fcO19PP5pNcc+9ZbcPKkbuDD6tXw2Eow2RIdHc3MmTNp1aoVSUlJtG/fnrZt2xodU7euro/dgwcXuXUrmY0bYcAAaNAAypTRrbELcO8e/PMPXLiQ83hy6u7duyxbtiz3b5wHlS9fnnfffReAd955hwcPHmR6/OHDhwFdGStWrFiO7uns7GxYeWLGjBkZztd4/vx5du7ciUajYfTo0WzYsAE/Pz/CwsLo3LmzyQMO9E2x5cuXN+zLSXNsZKSuPBUrBq1awZQp8OefukFJVaokotHouoJ061aHvn11E3v37Qv+/mBvDzdvwq+/6iYCDwiAIkVg/XpdU+yxY9eJjzc5FCFEHmDykmJjx47ltddey3D5oLFjxzJmzJg0szabm36tNz2lVJp9WR3/+P7sXnPSpEmMGzfO8O/o6OgMk7sLjzKEkiVLUrRoUcP+wEAYPVr38+efw6M5UilXrhzu7u7ExMRw6dIlo0RL37+ubt261KtXD8g6sfP2hkaN4OhR+O03yGA1qWwndhkNoNB/wFapUgUfHx/27NnDpUuXaNq0qeGYH3/UbXZ2ujVtH1s60GQhISF8++23LFiwgJiYGABKly6d7mvUx8eHQoUK8eDBA27cuEy3bjUMzzno+tzdu6dLfm/fNm2wSXZltbLBlStXzH/TfOydd95h8eLFhISE8NVXX/HRRx9leKy+bDzp2qZvvPEG06ZN4/z586xfv56ePXumOWbuXF0fzq5du1KxYkVAN5o2ICCAf/75h27durFz584sl+7S9w1O/d7x/PPPM3XqVLZt28aDBw8yvUZyMsybp1uVRT+vcsmS0L49dOig+3909D/Uq5eMp6cnGzaU5fG3tbg43Ze+Q4d028GDukTxwgVdYvfnn9fx9NRNGN66tW4LCAB390x/NSGENZlatefi4qL++eefDB8/d+6ccnFxefI6xAzkpabYx2XWxPDzzz8b+nzpnT+vVJEiumaQV17RNcmm1rRp03QnEx05cqTi0YS7hw4dUoAqV65clvHNmpV1c2xAQIAC1MqVKzO91tmzZw1zXKU3J99HH32kADVgwABDX7uPP/7Y8PiJE0q5uOji+fTT/85LSUkxeULeyMhI1b9/f2Vvb29ofvP19VULFy5UDx8+zPC8hg0bKkCtW7fOpPukZo5mJFPmsrOzs8vx9U0xZ84cVbFiReXs7KwaNmyo9u3bl+nxe/bsUQ0bNlTOzs6qUqVK6U78++uvvypfX1/l5OSkfH1905TRrGT23K5cuVIBytXVNcPuHgcPHjRM8JteP9bsev/99xWgGjdunKZ/X0xMjGHi623bthk9dubMGVWkSJFH/dmeUykpKZnep379+gpQv//+u2GfVqs1zG23fv36DM8NDFSqdu3/mlPr1VNq507dfJCppff+k5mUFN3k5h98cEYBSqMpkqbp1t5e917y+uu31Pjxa9TZsymZ9k/Vk6ZYIXKHyYldpUqVMu138uOPP6pKlSqZJaiMNGnSRL355ptG+3x9fTMdPOHra7yKw7Bhw9IMnujSpYvRMZ07d37iwRN//KHUDz8o1bOnLtF59tkh6uRJpYKDlapeXfcGGRCgVHp5yODBg9MkREop1aBBA0Ofo/Dw8EdvvBoVHx+faXy3b//X3+bMmbSPa7Va5enpqQB16tSpTK+VnJxsmOz07NmzaR5/+umnFaDmzp2rPv/8c6M+RHFxSlWrpovjmWf++xCKj49X1apVUw0aNFAPHjzI9P5KKdW3b19DQvfUU0+pzZs3Z/khqpRS/fv3V4CaNm1alsc+zhwfSmXKlMk0qTxx4oRFE7uVK1cqR0dHtXDhQhUcHKxGjx6t3Nzc1PXr19M9/sqVK6pQoUJq9OjRKjg4WC1cuFA5OjqqX3/91XDMwYMHlb29vZo2bZo6d+6cmjZtmnJwcFCHM1sy5DGZPbdardawOkN6E2efP39eFS9e/FEZe9Ysq3Xcvn3bkCj+8ccfRo/98MMPClBVq1ZN9zW3f/9+w7mBgYGZ3kcf9+NlbtSoUQpQgwYNSnPO1au6/p/6JKt4cd37TAbznhsmXn78fTMrMTExhjJ2/HiUWrhQ9yVUP+m5buv26JgvlJ2dbvBX585KjRyp1HffKXXzpvE1JbETedHAgQNV98c7VedzJid2c+bMUU5OTmrEiBFq/fr16tChQ+rw4cNq/fr1asSIEcrZ2Tnby/hkl/6DafHixSo4OFiNGTNGubm5GTosT5w4UQ0YMMBwvP6DaezYsSo4OFgtXrw4zQfTn3/+qezt7dXnn3+uzp07pz7//HOzfDANHqx/8+tlePNL/a3Xx0ep8PD0r/fVV7qRsS+99JLRPezs7BSgbty4obRarWGE6sWLF7OMUf9hMH582sdu3rypAGVnZ5dlkqjUf8sgLV++3Gj/4zP///rrrwpQTZs2VUrp7s2jEamp+7cfOXLE8CHyeDL7uIMHDxoS2l27dmUZa2qffvqpoTYxu8zxodStWzf14YcfZvh4UFCQ0mg0Ob5+VvLrqPJjx44pjUajALV//37D/tu3bxsGEzVq1CjHq4qkR78MXYcOHQz7tFqtYXDD47X8qelXXfnyyy8zPCY2Ntbwmr93757RY7t371aAKl68uCFRTUpSauZMpQoV0pUhBwfdSPK7dzP/Pbp27aoANWfOnKx/6ccUK1Ys3cQzJESpH3+MU/b2zo/KYnEFUWlq9o4cMb6eJHYipyZPnpzuUpfmUKATO6V0iVXTpk2Vg4ODoenIwcFBNW3a1KSRa+YwZ84cVaFCBeXk5KQaNmyo9u7da3hs4MCBqk2bNkbH79mzRzVo0EA5OTmpihUrppt8rlmzRtWoUUM5OjqqmjVrqrVr12YrpvTesL77TjfVSOHC9RSgvL03qFKldM2QVavqmiQzsmXLFgWo2rVrG/Zt26ZbRzZ1rah+9OmOHTuyjHH9et2brZeX7kMitcDAQAWo6tWrm/T7jh49WgFq9OjRRvtPnTqlAFW4cGGVnJysTp48afiAOnxYKTs7XQybNhlfb8GCBYYPORcXF3XlypV075uSkmJopn711VdNijU1faLZqFGjbJ9rjg+lffv2qa1bt2b4eGxsrNqzZ0+Or5+ZvNSVIbujypX6bwqdhg0bqpSUFBUbG6saN26sAFW5cmUVntG3pBy6evWqoan/77//Vkrp/n76ZuG7mWRUkydPVkCmI5zPnTunAOXu7p6muTcpKcmQVO3evVsdP66Uv/9/CVPbtrqa/8clJSWpM2fOqOXLlxtG6+pHiWfV5J4efQvBpscLrPrvPUq/vfPOVLV3r24U/oQJuve+x/JVSexEjklilz05mscuMTFR3bp1S926dSvDOc8KkozesFJSUgxTNpw/f96wP6tpufRzyjk6Ohqe3w8++EAB6pVXXjEc9+yzzypAzZ8/P8sYExOVKlky/cTqm2++UYB6/vnns7yOUkotX75cAapFixZG+/XNVE899ZRSyrhWokaNuwqUevnltNfTzz2n35577rl07/vTTz8ZEsdbt26ZFGtq+v6BhQsXzvYamPn9Q0lfK/vnn38a7f/ss88yTOirVaumPvvsM6N9f/75pwIMz7+jo6P6+eefjY75+eeflZOTU4ax6BOfx7fMntvbt28b+rbNnz/fUBNVvHhxo7JlTgMGDFDw35yS+rndhgwZkul5q1evNqqpTs+OHTvSfHlLbeDAgQpQRYtWUxrNcAWLVOHCJ9QPPyQorVaXHB87dkwtXLhQDR8+XDVr1szwXvP4VrlyZRUXF5ft379Hjx4KUN99912ax/TNxZUqVVKgm8cvq2lm8nsZEk9m69atqkWLFsrT01MVK1ZMPfvss+rSpUuGx0NDQ1Xv3r1V0aJFVaFChZS/v786fPiwWrJkSZrX9JIlS9TVq1cVoE6kqiW5d++e4QuRUrpWpFdffVVVrFhRubi4qOrVq6vZs2cbxWWLiZ3Jo2JTc3R0LPCz4pvixo0bPHz4EAcHBypVqmTYn8mAW0A3Sq5w4cLExsZy6dIlfH19DcsctWzZ0nCcfkReViNjQTedyMsvw6xZumW39MuNgekjYvUeX4FCv3yTfub/5s2bA+Dm5oa3tzdhYWGcP3+JUqUaM3t22uudPHkS0I02/vLLL9m4cSNbtmzhGf1cLcCDBw+YOHGi4bicvP70a/XGxsZy8+ZNypUrl+1r5Hf5bVS5XqlSpZg8eTJvv/02w4YNQymFi4sLmzZtonr16pmem1MTJkzgf//7H2vXrmXfvn2GFWtGjBiR6Xn6chQcHJzhc5HeiNioKN0UQEFBcPv2K8By7t27COjWjY6NhVGjnPj664pcvXo13TVt3dzcaNCgAQ0bNjRspi4l9rjMVp/YunUrAF999RVTpkzh1KlTfPXVV0ybNi3b9xFPRimV5XRAllCoUKFMy/nj4uLiGDduHHXq1CEuLo6PPvqIHj16EBQUxIMHD2jTpg1ly5Zl48aNlC5dmuPHj6PVaunduzdnzpxh27ZthjXIPT09uX37dpb31Gq1lCtXjtWrV1OiRAkOHjzI66+/jre3N7169crx757nmZL99ejRI1vfsvr166du376dgzwzf8rom6j+W3mNGjWyfc0mTZooQK1Zs0YlJCQYOmSnXvFB3xevd+/emV7r448/VmXKlFG//XZWgVKOjkr9++9/j7dq1UoB6qeffjIpttQDKM6kGo1RvXp1BcYz/zdo0OrRt6xfVKqujQZardZQE3Py5Ek1fvx4BagqVaoYjXCdMmWKAt3EzKYMsMiIfnWCzJqvDx06lGbE75PWNli7DOWlptjHpffcJiYq9dJLSqXqaaESEhIMrzGNRpPt0bc50a2bboCAfrRrQEBAluckJCQoBwcHBRhG8sbFKbVsmVLvvqsbXNCggW5QVcWKr6uOHZWqVCm9CbOvqGLFflE9eoxX7dq1Mwxw0m9FixZV7du3V+PHj1e//PKLOnfunEmDiEw1a9YsBcZ9fZX6b4UMBwcHFRUVpTZs2KAAVahQoUxfs1JjZxmpW0Zyc3vSPq137txRgDp9+rSaP3++cnd3z7DWN72mWFNq7NIzfPhw9cILLxj+bYs1diZNULxhwwb+/fdfoqOjs9yioqLYtGkTsbGxJiWWtiyrNWIzo5+o+OzZsxw/fpz4+HiKFy9OzZo1DcfoawGvXbuW6bWWLFnCrVu3+PXXz2jYEJKSdPPHge7bnn49TlNr7Ozt7WnQoAHw30TFERERhjn7mjVrBujuc/16tUfXvsQLL6S91vXr14mOjsbR0ZGaNWvy0Ucf4e3tzeXLl5k5cyYAN2/eZMaMGQB88cUXuLq6mhRnenx9dRMVnzt3Lt3HL1++TEBAAJUqVeLhw4c5vs/jrF2GnJyc8Pf3JzAw0Gh/YGCgoYb1cQEBAWmO37FjB40aNcLx0YzSGR2T0TVNNXs2rFkDTz2lm+dRq9X9DgsXLqRy5cosWLDAMJmvJU2aNAnQTbwNWdfWgS7OatV0r/vNm4MZOVI3CfbAgTBjBnz3HZw4oZuc+Nq18uzYAfpK9/Ll4bnn4MMPYe3aSly/3pfffvuSXbt2ce/ePS5dusT27du5evUqkZGR7Ny5ky+//JK+fftSs2ZN7OxMnnM+S/oau8ffX7Zt2wZAixYt8PDwoFu3bjRu3JgHDx7w+eefm+3+wrZcvnyZfv36UblyZTw8PAyfXyEhIQQFBdGgQYMcTy6emR9++IFGjRpRsmRJChcuzMKFCzNcX95WmFQ/r5SyWHOHLXuSxC51c45+ktKWLVsaVX3rC0ZmTbGRkZGGppRVq1bx0Uefc/y4D0uWwMiR8O+//3L37l00Gk224mzUqBEHDhzg2LFjvPLKK4aJiWvWrGkonF98AXfvVgWgdu20q0/Af82wtWrVwsnJCScnJ7766iv69+/PZ599xssvv8xHH33EgwcPaNGiBS+99JLJMabH19eX9evXZ5jY/fzzz4bjniSBfFxeKEPjxo1jwIABNGrUiICAABYsWEBISAjDhg0DdEnMzZs3Wb58OQDDhg3j+++/Z9y4cQwdOpRDhw6xePFiVui/FQCjR4+mdevWzJgxg+7du7NhwwZ27txpmDA4p958E06dgp9+gkmTYP9+WLYMWrduzeXLl5/o2tkREBBA69at2bdvHyVLluTFF1/M8pz4eHBzqwWc4803g4FOAFSuDM8+Cx4esGJFCFeuwKBB5WnbFnx8oH593eoRGdFoNFSpUoUqVaqY41fLkr6rx+NNsfrErkuXLoa4Pv30Uzp16sTcuXN5++23KZvTWcdFthUqVMgqFSlZTcD9uG7duuHj48PChQspU6YMWq0WPz8/EhMTc/Req/8So1LNJv9494TVq1czduxYZs6cSUBAAO7u7nz55ZccOXIk2/fLT0xK7Hbv3s3x48dp2LChyReWgm2+Grv4R2v6pO5fB/8ldnfu3CEuLg43N7c01zlx4oTh55SUFO7c+RZHxy85cULXn+fevWDDtbJTUB9fgeLgwYPAfzP/BwfD1KkAusTuxo2L6V5Hn9jpV9IA6Nu3L/Pnz2ffvn289NJLhtVMZs2ala0+HenJrMZOKcX//vc/AAYMGPBE93lcXihDvXv3JjIykqlTpxIWFoafnx9btmwx1MyEhYUZfZOtVKkSW7ZsYezYscyZM4cyZcrw7bff8kKqqtfmzZuzcuVKPvjgAz788EOqVKnCqlWrjFYayYnChWH5cmjbVrdc1pYtuuXfVq2CJ6wMzLYZM2bQs2dPPvroI5ydnTM99sIFeP55OHeuFrAWjeYsPXvCG2/oVoLQV6itXq17ngcO9OGx1e/yDP3r4s6dOzx8+BBXV1cSEhLYtWsXAJ07dzYc+/TTT9OqVSv279/PZ599ZlidQ1ieRqNJ970/L4mMjOTcuXPMnz+fVq1aARh9+atbty6LFi3i7t276dbaOTk5kZKSYrSvZMmSgO59S9+CFBQUZHTM/v37ad68OcNTLbmUm18MrcbUNluNRqMaNmyo5s6dq+7fv2+hluH8KaO+I/oZ5FPPvWWqa9euKR6NjNVPfXDo0KE0x+n73ZxJb+ZhpQyTBOsXN/fw8FDPPRetQDcP1pw5cxSgunbtmq349NM1FCpUSCUlJam2bdsqQC1cuFDFxyvVsKGun1CrVscVoEqWLJnudXr27KkANXPmTKP9p06dMlpZIidzz6Xn77//VoAqVapUmsf0q3m4ubml6T9irpUnpAylldVze/Lkf5N6Ozgo9eWXWY8st4YtW5Ty9NTF6empWzGjUaO0ffK0Wq2hz+zly5dzP1ATabVaVbhwYQUYVh3ST43k7e2dZmT53r17De9Z6U1ZJH3sCq6UlBRVvHhx9fLLL6uLFy+qP/74wzBd0bp16wz9Z1u1aqUOHDigLl++rH799Vd18OBBpZRupL2bm5s6ceKE+vfffw3zrTZr1ky1atVKnT17Vu3du9fQN13fx2727NnKw8NDbdu2TZ0/f1598MEHysPDw6i/ni32sTM5sTt48KB67bXXlIeHh3J1dVX9+/fP9gSxtiq9N6y4uDhDUnLnzp1sXzP1myro5s5KSGfdnvSWJUqtVy/dBMnTpk0zDBx47bVZCpQqUUKpYcN0U41MmDAhW/GlpKQY4jtx4oRhsuQzZ86okSP/mxX/n3+iDb9DeslMlSpVFKB27tyZ5jH9fHmFChVSoaGh2YovI9HR/8XzeEfd4cOHK0C9nM6cLOb4UJIylD5TntvoaKX69PlvYEE2X64WpdUqNX26UhqNLrbmzZXatUs3p6Onp2eaBEjfadyUVWOszc/PT8F/y6e9/fbbCjKeo0+/8kx6q2ZIYlewBQYGKl9fX+Xs7Kzq1q2r9uzZY0jslNJVZrzwwgvKw8NDFSpUSDVq1EgdeTTLdXx8vHrhhRcMg5iWLFmilFIqODjYMNVP/fr1DQMW9YldfHy8GjRokPL09FRFihRRb775ppo4caIkdo978OCBWrp0qWrTpo2ys7NTlStXVp9++qnZPnjzo/TesIKCggwj17I7Z5qe/hsNoNq2bZvuMZnNNaWUUlWrVlU8GgU6f/58xaORpaVKJSlQys+vnYKcrbGpH02rT8A8PT3Vr7+mGD589YNjvby8FKCOHTtmdH7qJCu95Dc6Olq98cYbas2aNdmOLTPlypVTYDynW0JCgqFmdPv27WnOMeeHkpQhY6Y+t1qtUt9/r3ttaTRKPTYln1XExirVu/d/CefQoUrFx+s+UPQ1zjdu3DA65+jRowpQpUuXtlLUpnt8rkz9pOgZTUivX0XGzs4uzdriktgJkTuyPYTK1dWVgQMHsmfPHi5cuGDoD1WpUiWjeccKutT963LaL0zfzw7S9q/Ty2wARVRUFJcu6QYtNGjQgAEDBlCiRAmuX79Okya/AXDxYvbmsEtNP5/dkiVLAKhXrxmvvaZ7Sb3zDuhfDlWrVn10L+N+dqdPnwbA29vb0F8iNXd3d3744QeTOqxnR3r97LZu3crdu3fx9vamffv2Zr3f46QM5YxGAyNG6EaXKgWvvgpmHLicbSEh0KKFrt+fgwP88AMsWADOzuDs7Gx43evnidQLDdWNiC1fvnyux5xdqeeyCwkJITg4GDs7Ozp06JDu8U2aNOG5556jZs2a3L17NzdDFUI88kRj46tUqcLEiRN5//338fDwYPv27eaKK997koETeqmTLX2H08dlltjpO5KWL1+eEiVK4OrqauhEev36TCCShATdJI+pp1ExlX4ARXR0NACXLwdw/z40awafffbfcfqpH/RJpl56AydyQ3qJnX7QRL9+/QwTLucGKUPZN2sWeHvD+fMwebJ1YggLg3btdAOQSpWC3bt1AyRSSz2yPTX9AJX8ltjpX5vNmjXLdFqKJUuWcOrUKcNAKiFE7spxYrd3714GDhxI6dKlmTBhAj179uTPP/80Z2z5mjkSO32NnZ2dnWFuuMdltvrE8ePHAYxGYg4fPhxnZ2dOn/6LmjUXAWBvX56oKPdsx6evsdO7ebM5RYro5sh7NM0Z8F+NXV5N7O7du8emTZsA84+GzYyUoZwpWhTmz9f9PHMm5PbMBXfvQseOcOWKbgqTo0chvQr1rBK7rFbbyAv07y/Xrl0zrDaRejRseooVK5arX46EEMaytc5MaGgoS5cuZenSpVy9epXmzZvz3Xff0atXrzw/3Dq39enTh3LlytGuXbscX6Nly5bUrl2bJk2a4OHhke4xmU1SrE/s9DVrAF5eXrz88sssXryYkJCpAKSk1KJbN91cYYULmx5ftWrVcHd3JyYmBtAATVmyBB59Fhjk9cTu119/JTExET8/P+rWrWvRe0sZMo9u3XRL5P30EwweDMePg4uL5e8bG6vrYnDmjK7WcOdO3Rx06Uk9ZVFq+bEp9vLly5w6dQr4b/46IUQeZWpnvA4dOih7e3tVunRpNWHChDQdYwsya3YKTr2czL1794we03d0Tr3El1JKnT171nAOoFxdxylQqmtXpR5bSStLTZq0fnSdOuqx1acM9J3Fvby8DPtSUlIMy5KdPXs2ezd9Qrdv3zaMSnzw4IFhEMiMGTMyPMccf2MpQ+nL6XMbGamUl5du0MLEiRYKLpWHD5Vq3153v2LFlMpghiGDjAZQNWvWTAFq7dq1Fo74yYWFhRm9V5QoUSLHy5bJ4AkhcofJTbGurq6sXbuWGzduMGPGjCdqYsyJe/fuMWDAADw9PfH09GTAgAGGZX7Sk5SUxLvvvkudOnVwc3OjTJkyvPLKK9y6dcvouLZt26LRaIy2Pn36WPi3MR83NzdKlSoFGDfHxsXF8c8//wCkmRS3Vq1aRt+6x46thYsL/P47pFqbPVNKwZIlEBSkayIuUaIVX3yR/rH6Grvbt28/qt3T1QDExcXh7Oyc6ysylCxZkmLFiqGUYvv27ezfvx+NRkO/fv0sel9rlyFbU6zYf02yX3wBj+axtojkZOjbF/74Q1ervXUrpBrblK7q1atjZ2fHvXv3jBYsz09NsaVKlTKalLlTp05mXbZMCGEB1s4sTdW5c2fl5+enDh48qA4ePKj8/PwynVT3/v37qkOHDmrVqlXqn3/+UYcOHVJNmzZV/v7+Rse1adNGDR06VIWFhRm27E4ea+1vok2bNk1TA/Dnn38aJhJNz86dOw3fwg8ePKhWr/5vyoYMZk4xuHVLV7unO/6eKl9+mgoK+jfTc0qWLGmY804ppdasWaOANH+P3NKiRQsFqDp16ihAtW/fPtPjrf03tmVP+tz27at7LdaurZtqxNxSUpQaOFB3D2dnpbIz9aB+uiH9PI2JiYlKo9EoQIWHh5s/WAuoXr264b3ip59+yvF1pAwJkTvyxVevc+fOsW3bNhYtWkRAQAABAQEsXLiQ33//3TBI4XGenp4EBgbSq1cvatSoQbNmzfjuu+84duxYmgWACxUqROnSpQ2bp6dnbvxaZpPeAIr0Bk6k9tRTT9GzZ0+aNGlCgwYNeOklmDZN99jo0bqpG86eTTudxOrV4Oenq91zcoLPPy/ClSuTqFevRKYxPt7Pzlr96/T0o4D1U67k5qAJYV7ffqsbmXr2rG6N2VRLRz4xrRaGDdOtU2tvr3v9Z6fbrL6fnX4Axc2bN1FK4ezsnO4UP3mRvp+dRqOhY8eOVo5GCJGVfJHYHTp0CE9PT6P1J5s1a4anp6dhjVJTREVFodFoKFKkiNH+n3/+mRIlSlC7dm3Gjx9vaC7ML9IbQJFVYqfRaFi7di1HjhzB5VGv84kTdXODabW6D0g/PyhUCMqWhdatdWtd9u6tGxVYv75uNOC77+o+8LLy+Fx21k7s9AMoQNdE2rNnT6vEkVtsuStDiRKwdKluHdYlS+CTT8xz3eRkGDQIFi7UXXvZMnjuuexd4/GRsambYfNLk6Y+sfP39883yagQBVm+eGcJDw839CNLrVSpUoSHh5t0jfj4eCZOnEi/fv2MRpj279+fFStWsGfPHj788EPWrl2b5Yd8QkIC0dHRRps1pTeXXVaJXXo0Gpg3D8aPh4YNQV9xeeuWbsTsrl26JO7DD3VTTNSpY3qMj89lpx9hlxcSu+effx539+xP95Kf9OvXj6CgILZt28a2bdsICgrKtJbywYMHHD9+nA8//JDjx4/z22+/ceHCBZ5LJ7MZOnQoYWFhhm2+vuNbLurSBfTrzk+erEv0nkRSEvTrB//7n+41/8sv0L9/9q+jT+z0I2P1I2LzQ/86Pf1kxK+++qqVIxEi/9qzZw8ajSbTL9Tmkq3pTszt448/ZsqUKZke8/ejHtHprd6glDJpVYekpCT69OmDVqtlrv7d/5GhQ4cafvbz86NatWo0atSI48ePZ5gUTZ8+Pcu4c9PjiV18fLzhgyQ7iR3omle//FL3s1IQGQmXL+u2mzehQwdo0CD7MaZuir1//z7Xr18HsPj0IhlJndjZejOsvivD4cOHDbXeCxcuJCAggPPnz6c7iEPflSG17777jiZNmhASEmI0VYe+K4O1vfEGXLsGn38OQ4fqapqffjr710lIgF69YONG3XyMq1fD88/nLKbUU54opfLV5MR6vXr1okOHDplOSiyEyDusmti99dZbWTbbVKxYkVOnThmNKtP7999/8fLyyvT8pKQkevXqxdWrV9m1a1eG88HpNWzYEEdHRy5evJhhUjRp0iTGpRo+Gh0dbdVv4KmbYpVSnDlzhuTkZIoXL/5EcWk0umauEiUgVSt4jqRO7PS1deXLl6do0aJPduEcqlChAp06dSIxMZGnc/Lpn49k1ZXB1NG5mXVl+Omnn/Dy8qJLly5MnjzZajWgn32mW+rrl1/ghRfgwAHIzneHBw+gZ0/Yvl03L95vv+lqA3NKv6Tg3bt3+ffff/NlYqfRaChevLi1wxDC6pRSpKSk4OBg1dQpS1Ztii1RogQ1a9bMdHNxcSEgIICoqCj++usvw7lHjhwhKiqK5s2bZ3h9fVJ38eJFdu7cadKb09mzZ0lKSsLb2zvDY5ydnfHw8DDarMnHxweNRsODBw+4c+eOUTNsTtepNTd9Ynfr1i1Dv0hrNcOCbjWPbdu2sWvXrjxfSJ9UQerKYGcHP/4IbdpATIxuMuEbN0w798wZXRK3fbuub+nmzU+W1IGuNlP/xevs2bP5silWCHNo27YtI0eOZMyYMRQtWhQvLy8WLFhAXFwcgwcPxt3dnSpVqhhWOAFd39RnnnmGwoUL4+XlxYABA4iIiDA8vm3bNlq2bEmRIkUoXrw4Xbt25fLly4bHExMTeeutt/D29sbFxYWKFSsyffp0QFcRotFoDEtvAty/fx+NRsOePXuA/5pPt2/fTqNGjXB2dmb//v0opfjiiy+oXLkyrq6u1KtXj19//dXo992yZQvVq1fH1dWVdu3apbuIgKXkiz52vr6+dO7cmaFDh3L48GEOHz7M0KFD6dq1q1FtQ82aNVm3bh0AycnJvPjiixw9epSff/6ZlJQUwsPDCQ8PJzExEdDNpTZ16lSOHj3KtWvX2LJlCy+99BINGjSgRYsWVvldc8LZ2ZmyZcsCuhdreitOWFvRokUNifVvv/0GWK8Z1lZ8/PHHaQYuPL4dPXoUsGxXhg4dOuDn50efPn349ddf2blzp+E1mJ7p06cbBnF4enqaPclxdoZ166BWrf+6DyxaBOlU+gNw6JBuUESdOrBvH7i765K7p54yTzypR8bmxxo7kccpBXFxub/lYPj5smXLKFGiBH/99RcjR47kzTff5KWXXqJ58+YcP36cTp06MWDAAB48eEBYWBht2rShfv36HD16lG3btnH79m169epluF5cXBzjxo3j77//5o8//sDOzo4ePXqg1WoB+Pbbb9m4cSOrV6/m/Pnz/PTTT4ZZJLJjwoQJTJ8+nXPnzlG3bl0++OADlixZwrx58zh79ixjx47l5ZdfZu/evYCuL23Pnj155plnCAoK4rXXXmPixInZvm+OWXGqlWyJjIxU/fv3V+7u7srd3V31798/zUoLgFqyZIlSSqmrV68azZieetu9e7dSSqmQkBDVunVrVaxYMeXk5KSqVKmiRo0apSIjI7MVW16Yn0m/esKKFStU48aNFaBWr15ttXjSo59vT7/ltfgykxf+xo/7999/1blz5zLdHj58qBYvXqw8PT3TnO/p6al+/PHHTO+RmJionn/+eVW3bl0VERGRZUxarVY5OjqqlStXZnhMfHy8ioqKMmyhoaEWeW6vXVOqdOn/5mfUaJRq0UKpL79U6sIFpbZsUap1a+PHX3gh6xUlsuvdd99VgBo+fLjy9PRUgAoODjbvTfKBvFiGbEJs7H8v4tzcYmOzFWabNm1Uy5YtDf9OTk5Wbm5uasCAAYZ9+pVODh06pD788EPVsWNHo2vo3yvOnz+f7j3u3LmjAHX69GmllFIjR45UTz31lNHKL3r6HEE/t6pSSt27d88oR9i9e7cC1Pr161M93bHKxcVFHTx40Oh6Q4YMUX379lVKKTVp0iTl6+trdF/9+8DjeYsl5Js2qGLFivHTTz9leoxK9Q2iYsWKRv9Oj4+PjyHDzu8qVarE/v37uXDhgqEPW3YHTlha1apVOZJqxXZrNsXaghIlSlCiRObzBwJGXRmaNGkCZL8rw+7du83alSH1agaWUqGCbkqepUth/Xrdz3/+qdveeee/4xwd4ZVXdPsssRiIfmTs4cOHiYqKAqQpVhRMqVtp7O3tKV68OHVSTa+g7zN/584djh07xu7duymczgLmly9fpnr16ly+fJkPP/yQw4cPExERYaipCwkJwc/Pj0GDBvH0009To0YNOnfuTNeuXXM0F2OjRo0MPwcHBxMfH5+mb3ZiYiINHo0sPHfuHM2aNTNqEQkICMj2fXMq3yR2InP6fjybN28mISEBT09PKleubOWojOn72YGu71GVKlWsGE3Bkborg34qktdffz3drgzTp0+nR48ehq4Mx48f5/fffzd0ZQDdlywnJycuX77Mzz//zDPPPEOJEiUIDg7m7bffzlNdGcqWhfff122hobqRruvXw549uibbN97QLaP3qCeDReibYvXN00WLFk33w0qIHClUCGJjrXPfbHJ0dDT6t0ajMdqnT4S0Wi1arZZu3boxY8aMNNfRf3Hs1q0bPj4+LFy4kDJlyqDVavHz8zN0t2rYsCFXr15l69at7Ny50zDC+9dffzXMI5m6AigpKSnduN3c3Aw/65PHzZs3G7pA6em/sGZVqWRpktjZCH2/Af0AkwYNGuSZgRN6+rnsAOrUqYO9KTMbC7P4+eefGTVqlOHb6nPPPcf3339vdMz58+cNNUo3btxg48aNANSvX9/ouN27d9O2bVucnJz4448/+Oabb4iNjcXHx4dnn32WyZMn58m/rY8PjBih22JjwcFBN/LV0vSrnOhJ/zphVhoNpEo8bEXDhg1Zu3YtFStWTHeAW2RkJOfOnWP+/Pm0atUKgAMHDqQ5zsPDg969e9O7d29efPFFOnfuzN27dw2TbYeFhRlq2lIPpMhIrVq1cHZ2JiQkhDZt2mR4zPr16432HT58OMtrm4skdjZCX2Onl9eaYcG4xk6aYXOXdGUwlpsVZm5ublSsWNEwKk6aYYXI2ogRI1i4cCF9+/blnXfeoUSJEly6dImVK1eycOFCw4C8BQsW4O3tTUhISJoBCrNmzcLb25v69etjZ2fHmjVrKF26NEWKFMHOzo5mzZrx+eefU7FiRSIiIvjggw+yjMvd3Z3x48czduxYtFotLVu2JDo6moMHD1K4cGEGDhzIsGHDmDlzJuPGjeONN97g2LFjLH3SWdOzIV+MihVZk8ROiLxL3xwLUmMnhCnKlCnDn3/+SUpKCp06dcLPz4/Ro0fj6emJnZ0ddnZ2rFy5kmPHjuHn58fYsWP5Uj+7/iOFCxdmxowZNGrUiMaNGxtmv9A3w/74448kJSXRqFEjRo8ezaeffmpSbJ988gkfffQR06dPx9fXl06dOrFp0ybD53D58uVZu3YtmzZtol69evzwww9M0y/Gngs0ytqNwTYgOjoaT09PoqKirDanXUpKCq6uroY+AsHBwUarK+QFSilKlCjB3bt3+fPPPzPtuJ/X5IW/sa0qCM/thAkTDB86n3/+Oe+++66VI8p9BeHvLEReIE2xNsLe3p7y5ctz+fJlChUqRPXq1a0dUhoajYbvv/+eoKAgmjVrZu1whMg1+pGxIDV2QgjLkqZYG6IfQFG/fv082XkdoG/fvsyYMcNQFS5EQZA6sZM+dkIIS5JPVxuinz4kL/avE6Igq1WrlmGUeoUKFawcjRDClklTrA156623iImJYdSoUdYORQiRSuHChfnyyy+5e/eu1NgJISxKBk+YgXQKtn3yN7YceW4LBvk7C5E7pMbODPS5cXR0tJUjEZai/9vK9yDzk/JTMEgZEiJ3SGJnBjExMYB0ii4IYmJi8PT0tHYYNkXKT8EiZUgIy5KmWDPQarXcunULd3d3Qwfp6OhofHx8CA0NlWaHXGDp51spRUxMDGXKlJERvWaWXvkBKUO5TcqQELZBauzMwM7OjnLlyqX7mIeHh3wo5SJLPt9Sy2AZmZUfkDKU26QMCZG/ydcmIYQQQggbIYmdEEIIIYSNkMTOQpydnZk8eTLOzs7WDqVAkOfb9sjfNHfJ8y2EbZDBE0IIIYQQNkJq7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnRBCCCGEjZDEzkLmzp1LpUqVcHFxwd/fn/3791s7JJv08ccfo9FojLbSpUtbOyzxhKT85A4pP0LYHknsLGDVqlWMGTOG999/nxMnTtCqVSu6dOlCSEiItUOzSbVr1yYsLMywnT592tohiScg5Sd3SfkRwrZIYmcBX3/9NUOGDOG1117D19eX2bNn4+Pjw7x586wdmk1ycHCgdOnShq1kyZLWDkk8ASk/uUvKjxC2RRI7M0tMTOTYsWN07NjRaH/Hjh05ePCglaKybRcvXqRMmTJUqlSJPn36cOXKFWuHJHJIyk/uk/IjhG2RxM7MIiIiSElJwcvLy2i/l5cX4eHhVorKdjVt2pTly5ezfft2Fi5cSHh4OM2bNycyMtLaoYkckPKTu6T8CGF7HKwdgK3SaDRG/1ZKpdknnlyXLl0MP9epU4eAgACqVKnCsmXLGDdunBUjE09Cyk/ukPIjhO2RGjszK1GiBPb29mlqF+7cuZOmFkKYn5ubG3Xq1OHixYvWDkXkgJQf65LyI0T+J4mdmTk5OeHv709gYKDR/sDAQJo3b26lqAqOhIQEzp07h7e3t7VDETkg5ce6pPwIkf9JU6wFjBs3jgEDBtCoUSMCAgJYsGABISEhDBs2zNqh2Zzx48fTrVs3ypcvz507d/j000+Jjo5m4MCB1g5N5JCUn9wj5UcI2yOJnQX07t2byMhIpk6dSlhYGH5+fmzZsoUKFSpYOzSbc+PGDfr27UtERAQlS5akWbNmHD58WJ7rfEzKT+6R8iOE7dEopZS1gxBCCCGEEE9O+tgJIYQQQtgISeyEEEIIIWyEJHZCCCGEEDZCEjshhBBCCBshiZ0QQgghhI2QxE4IIYQQwkZIYieEEEIIYSMksRNCCCGEsBGS2AkhhBBC2AhJ7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnRBCCCGEjZDETgghhBDCRkhiJ4QQQghhIySxE0IIIYSwEQ7WDsAWaLVabt26hbu7OxqNxtrhCAtQShETE0OZMmWws5PvQ+Yk5adgKEhlaO7cuXz55ZeEhYVRu3ZtZs+eTatWrdI9ds+ePbRr1y7N/nPnzlGzZk2T7idlyPZlp/wU+MRu+vTp/Pbbb/zzzz+4urrSvHlzZsyYQY0aNUy+xq1bt/Dx8bFglCKvCA0NpVy5ctYOw6ZI+SlYbL0MrVq1ijFjxjB37lxatGjB/Pnz6dKlC8HBwZQvXz7D886fP4+Hh4fh3yVLljT5nlKGCg5Tyo9GKaVyKZ48qXPnzvTp04fGjRuTnJzM+++/z+nTpwkODsbNzc2ka0RFRVGkSBFCQ0MNBVMpCAqCBg0sGLzINdHR0fj4+HD//n08PT2tHY5NSa/8AJw6Bb6+4OhoxeCE2RSUMtS0aVMaNmzIvHnzDPt8fX15/vnnmT59eprj9TV29+7do0iRIjm6Z0ZlKD36j3yp2ctfslN+CnyN3bZt24z+vWTJEkqVKsWxY8do3bq1SdfQFxAPDw9DoZo8GT79FL79FkaMMG/MwnrkzTCtffv28eWXX3Ls2DHCwsJYt24dzz//vMnnp1d+9u+Hzp3h6adh1SpwdrZE5MIabLkMJSYmcuzYMSZOnGi0v2PHjhw8eDDTcxs0aEB8fDy1atXigw8+SLd5NiPplaH0PHjwgGbNmuHt7c369etxdXU1+R4ibzCl/Nh2R4cciIqKAqBYsWI5voautu4gWu0K3nrrNOPGJaLVmitCIfKWuLg46tWrx/fff2+2a8bGQkoKbNgAPXrAw4dmu7QQFhMREUFKSgpeXl5G+728vAgPD0/3HG9vbxYsWMDatWv57bffqFGjBu3bt2ffvn0Z3ichIYHo6GijzRRHjxzh9OnT7Nixg9eHDKGAN9jZrAJfY5eaUopx48bRsmVL/Pz8MjwuISGBhIQEw78fL1QaDZRiBrARgFmzHFk8vwqdG5ehXrXKtGjXjjb9+lnkdxAit3Xp0oUuXbqY+ZqweTN06wZbt0LXrrBxI5jYO0IIq3q8VkUplWFNS40aNYz6dAcEBBAaGspXX32VYavR9OnTmTJlSrbjOrN1q+Hnn1asoE7VqkyYOjXb1xF5m9TYpfLWW29x6tQpVqxYkelx06dPx9PT07Cl12m1+q1bNAdccACSiH7wD6v37uL9RYto278/f8yZY5lfQggb8DAujs0zOvL5B5txc0th1y5d06yJFRNCWEWJEiWwt7dPUzt3586dNLV4mWnWrBkXL17M8PFJkyYRFRVl2EJDQ0267tmjRwGo/ujfEz/5hN9T9QUUtkESu0dGjhzJxo0b2b17d5YjTkwpVO/07s2fHTrwoFUAv1QdQCG71cB0XNCNpvh62jRL/BpC5HmmNCMFzp7NrMBARr/fFccEdxztB3PgwO906BDP/fu5H7MQpnBycsLf35/AwECj/YGBgTRv3tzk65w4cQJvb+8MH3d2djb0p8uqX11qZy5cAOCDBg14w90dBfQbPpyzixebHJvIB1QBp9Vq1YgRI1SZMmXUhQsXcnSNqKgoBaioqKgMjzlzRqny5ZWCiwo0ClDnDx7Madgil5nyNxZKAWrdunWZHjN58mQFpNlSP7fH5sxRg4oVU8XSHFdYFXHroY7+fcnCv4kwt4JShlauXKkcHR3V4sWLVXBwsBozZoxyc3NT165dU0opNXHiRDVgwADD8bNmzVLr1q1TFy5cUGfOnFETJ05UgFq7dq3J9zTludVqtaqYg4MC1PHJk1XizZuqjYeHAlRlUBGzZ+f8lxYWl53yU+Br7EaMGMFPP/3EL7/8gru7O+Hh4YSHh/PQzL21a9eGw4ehVq2qwLMAfDdunFnvIUR+YEqNd8Phw1kSGcntU6f4o39/3vLwwAtHIJb7ceto27wTDx/G537wQmShd+/ezJ49m6lTp1K/fn327dvHli1bqFChAgBhYWGEhIQYjk9MTGT8+PHUrVuXVq1aceDAATZv3kzPnj3NGtft27e5m5yMHVCzQwccy5Th17NnqeTmxhXgpTFjSPr2W7PeU1hJLiSaeRrp1BwAasmSJSZfIzuZ9Lp1SkGgAlRhjUbdj4zMefAi1xSU2oYnhQk1do8z6bnVapX2wAH1U/thCrwUoJ7z7/NkwYpcJWXIckx5bgNXr1aAqgZKxcUZ9p8+dUoVdnRUgHq/VKncCFfkgNTYZYNSKt1t0KBBFrlf167gU+4poDaxSvHjO+9Y5D5C5JbY2FiCgoIICgoC4OrVqwQFBRnVSjwxjQZNixb03zmP3r4jAdh4bBVbF68y3z2EsGFndu8GwM/NDQoVMuz3q1OH7x6NsN3477+6+bpEvlbgE7vc5uAAbw63A0YB8N2KFaSkpFg3KCGewNGjR2nQoAENHi2zMm7cOBo0aMBHH31kkfst/etdPOx7AYo+r48iNjLSIvcRwpacPX4cAL90ZnFo3aMHABeVQnvrVq7GJcxPEjsreO01cHTsDxTj6sOHbJo/39ohCZFjbdu2TbfWe+nSpRa5n0thB35aOB0oT7T2Dq807WaR+whhS85cuQKAi3dL/v7buGKuQrVqOALxwI0sVsgQeZ8kdlZQsiT07esGDAXgm3TWDxRCZKzb4Mp0bPAlAOsuH+L39ydbOSIh8i6lFGcf1Wy/v3s0TZpAvXowZw5ERYG9vT1VH83+feHwYWuGKsxAEjsr0a0fOwKwZ8+NG5w6csTKEQmRv/y0vRcu9m8C0H/aLO6dOmXliITIm0KvXSNGqwUc0U9PfPo0vPUWlCkDQ4ZASc+KAFw4fdpqcQrzkMTOSpo0gcaNywG6Ie3fjB9v3YCEyGdKloTZ33wOVCeaGAa37QpJSdYOS4g858zOnY9+qk7lyo6EhsI330CtWvDgAfz4I+y79QwA5x812Yr8SxI7K3rrLQ0wGoCf//yTf+/csW5AQuQzrw/3oEGtBYAdG+6Fsun1N6wdkhB5zpoVQY9+qs2SJRrKlYNRo+DMGdi/H154AfQ1eRfkcyjfk8TOinr1guLFmgH+JCjFAguNIhTCVmk08MvaNthpxgIwYvk6Uu7ds3JUQuQdkZGwcr+uTDQv5ULr1v89ptFAy5awaBHoE7t/Yh/IlCf5nCR2VuTiAkNft0dfazd3+XKSk5OtG5QQ+UzNmjB2zCSgCKHa+/xvyOvWDkmIPGPkSIhPPq/7uaNDuscUKQLly1cDIESlkHD1am6FJyxAEjsrGzYMNJqXgCLceviQoAMHrB2SEPnO5CnFcXPWLdE3fn0gieHhVo5ICOv79VdYsSIFCAbAv32rDI9t0qQ04I4WuLJ/f67EJyxDEjsrq1ABund3AVoCsO/nn60bkBD5kLs7fDJtDOBFpIpiTv8h1g5JCKu6fRvefBPgKhCPC1D56aczPN7fX4Ohn93ff+dChMJSJLHLA3RTn+g6Puzevc+qsQiRX7010p2Snrol+j7atZ8HMrpPFFBK6VqDIiKggvcxAHzt7bEvUybDcxo2BENid+ZMLkQpLEUSuzygfXso7ekPwL6rIWi1WitHJET+4+gI3857C6hILDFM6zPU2iEJYRWXL0NgoK5MdK25EQC/EiV0oyUykDqxO3PlRi5EKSwl/Z6UeVR0dHS2z/Hw8LBAJOal0UC3LvVYuLIQ0doHnDt2jNqNG1s7LGFjbLX8pNa7jzMfvD2By2HD+ervw7xz5gyefn7WDkvkgoLw+jZV1apw6hQcPgybpupq7PyqVs30nBIloLh7RSJj4OS/sbkRprCQfJXYFSlSBE0m3zgep9FouHDhApUrV7ZgVObRtW9xFq4MAP5g7/L/SWInzM6Wy4+eRgOLfh5Ku6e+I4FzTOo1nLnB0r2hICgIr+/sqFxZt01/XVf7VltXJZepOr6V2fMXXImPBa0W7KRRLz/KV4kdwK+//kqxYsWyPE4pxTPPPJMLEZnHU0+BvaY5KeoPtm47wHBrByRskq2Wn9TatnOgUc13OfrPIBac+5uPjxyhVNOm1g5L5IKC8PrOjqSkJM7HxQHg99RTWR7fon0d9vwFMcQRff48Hr6+lg5RWEC+SuwqVKhA69atKV68uEnHV65cGUdHRwtHZR6FC0NdHz9OhMD+q1dQSmXr26cQWbHl8vO4pb++gp/f96RwlJG9xrDq+iFrhyQsrCC9vk118cgRkoDCQPn27bM8vnnLokBpIJyL+/bhL4ldvpSv6lmvXr1qcqEFOHPmDD4+PhaMyLx6vdQUcCQqJYpr//xj7XCEjbH18pNa7doaOrd4F4A1Ice4tnWblSMSllaQXt+mOrNjBwB+zs5o3N2zPN7fH/QDKE4dPG7ByIQl5avEztZ1f7U80AiAwEX/s24wQuRzi1a9gB1tUSTRv+94WSZJFDhnjhwBoHbp0iYd7+UFhRwqAnDguIyMza/yZWIXFxfHwoULGTx4MF26dOGZZ55h8ODBLFq0iLhH/Qnyo5q+GjwcdIndr+sPWjkaURDdvn2bqVOnWjsMsyhbVsOQPlMBOw5GneWP6V9aOySRS27cuEFsbNqRnUlJSezbV3AG05y9cAEAvxo1TD6nQnHdXHcnQyMsEpOwvHyX2AUHB1O9enUmTJjAvXv3KF++POXKlePevXu888471KhRg+DgYGuHmSMaDbSoUROAv65ftHI0oiAKDw9nypQp1g7DbGYuaIWrwyAABk2eTUp8vHUDEhYVFhZGkyZNqFChAkWKFGHgwIFGCd7du3dp166dFSPMXWceLa3n16SJyefUrVEBgGuxdy0Sk15UVBTDhg1j8kcfcXXXLt36Zx98AN26QePGsHSpRe9vy/LV4AmAESNG0Lp1a5YtW4aTk5PRY4mJiQwaNIgRI0awe/duK0X4ZF5+pRVb39UQlXKLsOsheFcob+2QhA05depUpo+fP38+lyLJHe7u8OmUj3j7/bXcSA7j+wFvMHrNMmuHJSxk4sSJ2Nvbc+TIEe7fv8+kSZNo27YtgYGBFC1aFNCNiC0I4h884NKjLzK1M1lK7HGt2tVi1T64lxKGSklBY29v9tiUUgzq3Zv127cDMPWTT3gKGAL0AFwBBg+GsDCYODHTiZVFOlQ+4+rqqs6ePZvh46dPn1aurq65GJFSUVFRClBRUVFPfK2YaK3SUE8Bavaoz80QnTAHc/6NrUmj0Sg7Ozul0WjSbPr9dnZ2uRqTpZ/bpCSlSnt8pgDlSmF1/9o1i9xHZC43ylCZMmXUkSNHDP+Oj49X3bt3V/Xr11eRkZEqPDw811/fuSG95/bExo0KUMVAaRMTTb7W5fOxCuwUoK4cOGqJcNWXH3+sAGWHgypGfQUaBShAuTkVUv1rNlFXdb1ilXr7baW0WovEkZ9kp/zku6bYokWLcvFixs2Uly5dMnwzy48Ku2so51oLgF83yBQNwryKFy/OwoULuXr1aprtypUr/P7779YO0ewcHGDh8nFATR4Sy9vdBlg7JGEhUVFRRu//zs7O/Prrr1SsWJF27dpx586dXIlj7ty5VKpUCRcXF/z9/dm/f3+mx+/duxd/f39cXFyoXLkyP/zwwxPHcOaPPwDwK1wYTTamdalUzQ07dC1F29ccfeI4Hrd/+3YmfvwxAFq+4y4ngKvAx0AF4hIf8PM/f1FF48Z4qqJmzoRXX4XkZLPHYqvyXWI3dOhQBg4cyFdffcXJkycJDw/n9u3bnDx5kq+++opXX32VN954w9phPpF2frq5g4Ju5M++giLv8vf359atW1SoUCHdrWzZsjbZVPXscy40qPIxAD+ePsiFRx96wrZUrlw5TXcDBwcH1qxZQ+XKlenatavFY1i1ahVjxozh/fff58SJE7Rq1YouXboQEhKS7vFXr17lmWeeoVWrVpw4cYL33nuPUaNGsXbt2ieK48wx3VJitcuUydZ5Gg0Uc/QGYP/BK08Uw+PCr12j93PPkQJAf1xdhvL99zBlSgWGDJlMhw5X8PEJRKNpgVbFMZNLlKQBm5f+BS++CNJH1iQalQ/fxWfMmME333xDeHi4YRJfpRSlS5dmzJgxTJgwIVfjiY6OxtPTk6ioKLOsPbh/yQFav9oK0BB67TblKpR88iDFEzH339ha1q1bR1xcHC+//HK6j9+7d4+NGzcycODAXIspt57bUycV9ep3BbbQonhVDkTIAKXclBt/53fffZegoCC2P+q7lVpycjIvvPACv//+OykpKRa5P0DTpk1p2LAh8+bNM+zz9fXl+eefZ/r06enGvHHjRs6dO2fYN2zYME6ePMmhQ6a12qT33HYrU4bfw8KY06MHw3/7LVu/QxOvHvx9Zz11SvTn1L8/ZevcjCTHx9PRx4fdERFAbeAIS5e6kd5bTWhoCn36fMfBg+8BD4HC+NOHnxs/pMY3I6BJEzBD37+UFHj4ULfFx+tWUHNw+G9zTInH/u6/qLLlUGjQavXtw7pz4+MfnRubTPzvO4n/6Vce3Ikl1qcmcd7ViCtViZgi5YgqVJQHiVri45OIj08kISGR+PhEEhOTcHZ2oVAhd9zd3Snk7IhzUhzOCdG0aONAmz7ehlizU37yZWKnd/XqVcIfjfopXbo0lSpVskoc5n7DUilanByqkcwVPhzyA1MX5e8aSFtgK4ldXpSbz+2LTx9h7c6WQDJbvvyKLuPftuj9xH9y4++cnJzMgwcPMrx+SkoKN27coEKFCha5f2JiIoUKFWLNmjX06NHDsH/06NEEBQWxd+/eNOe0bt2aBg0a8M033xj2rVu3jl69evHgwYN0V8dISEggISHB8O/o6Gh8fHyMnttKTk5cS0pi75df0nr8+Gz9HkNbDGfRwXl4OnTgflJgts5Nl1bL+w0aMO3UKTQUQnGMgQNrZjnwdefOi/TrN5h///3z0Z6nKE0rGjvZ0aVhaVr3rojv4ADsPB9NvhwTQ9LlECLPhnP9dCjHQ2M5GZPC+Yj7hN65zr//XiYu7jIpKXE86tL3aNM+ur4L4AYUSvV/V3SNm5rHNgUkAgmP/T8eXTL68NHP8Y+ONYUD4A6407biM+y++t+Xg+yUn3w3Kja1SpUqWS2ZsySNvR3VClfjXOwVNm09yFQksRPCHL5d1pQN5UaQrL5h6HvTuTZqJA6Pja4X+ZeDg0OmH3r29vYWS+oAIiIiSElJwcvLy2i/l5eXoRLiceHh4eken5ycTEREBN7e3mnOmT59eqbTEsVFRhKSlARA7c6ds/tr0KZlFRYdhKjkGyQkgLNzti9h5PcXXmDaoyZyxWJ8fWsyZ07W53XoUI2wsL28++63zJr1HlrtLsLZxaZE2HTYHg7XwnGsH8XsCxOXco+HRJBCOHATiMlBpHFAZA7OM50ddtgb/tOQRDKJJD16NBm4B9yjpHvO5xHMV4nduHHj+OSTT3BzczPp+EmTJvHOO++YtCh0XtOpQXXO7d/OubCzKCWjvcWTK0jlJyNlysDbw8czY87P3EyKYOGwkbz543xrhyXMIC+9vh9f51tlsfZ3esent19v0qRJjBs3zvBvfY2dnpunJ1G7d3N+zx6K166d7fhbdm0KXwBc5uTxRJoE5PzLT8zRowxcv/7Rv97C1bUPa9aAiX8m7O3t+eqrsbzxRle+/34J+/cd459zR3mYcBc4TRKnuZ1By7o9RXG386aU1o0KOFGDZOoTS1licSUeFxIM/7cvVpT4ChWIq1CRmLI+xJYqTUzxksRpQZ05AyeOwalTqISHgMIehSspuHh54dSjB86dO+Pk7o6Liwuurq6G/7u6uOASE4NLdDSODx9iFxsLMTG6LTYWihQhpVQp4ooUIdrNjRh7e2JiY9Mk+9mRr5pi7e3tCQ8Pp2RJ0/qceXh4EBQUROXKlS0alyWaGIJX/07t3t0AB479FUnDxtL8Z0220BRbkMpPZuLioEzxz4lOmISHxoPwyGu45uOR9PmFpf/OeeH1nVtNsY8z93OrTUrC0ckNLUl8Ov4o73/pn+NrrejRg37r1wOVgXP8+KMTgwc/WXxKKW7evMnffx9n64o/uHktjHIVy1PZrzrV61SlZs1ylC9f9r8kPzERrl2Dixfh8mVwcgJvb903PW9v3VpqpowcTkiAnTth7VqIiICBA+H5583S3y8rNtsUq5SievXqmX7zSS0/Ly/m26MTzpQkgX9Z9OU25q7uZe2QRD5XkMpPZtzc4OtZb/La8HlEqxCmvzSEqTuz17lc5D154fXt5OSEv78/gYGBRoldYGAg3bt3T/ecgIAANm3aZLRvx44dNGrUyKSkzhLsHB0pZl+SiJRb/Lk3GMhhYqcUK3boR6D3YcAAJwYNevL4NBoN5cqVo1y5cvTo8VzWJzg5QfXquu1JODvDs8/qtjwsXyV2S5YsISQkhPLlTV+N4UmqM61J4+hILfdKnIj5l21/HAIksRNPpiCVn6wMfsOTaZPHc+XfUcz4YwfjrlyhiIVrJoVl5ZXX97hx4xgwYACNGjUiICCABQsWEBISwrBhwwBdM+rNmzdZvnw5oBsB+/333zNu3DiGDh3KoUOHWLx4MStWrDB7bNlR2b0oEfdvcfZS+tO0mCJm9262PtAl0F6lXmTuXOlWlCssMkWyBXl6eqrly5dbOwwjlppR/eMO/RWgNLRVd++a9dIim2xl5YmCVH6y8ue+BAW1FKAG12qfq/cuiHLj75xXXt9z5sxRFSpUUE5OTqphw4Zq7969hscGDhyo2rRpY3T8nj17VIMGDZSTk5OqWLGimjdvXrbuZ4nn9o06rXWrQ2jeVNlYuMLIL506PRp2Wk198omsHvEksvM3zneJ3Zw5c5S7u7vq2bOnioiIsHY4SinLvWGd++WXR4XCWc2bk78TivzOVhK7glR+TNG23o+PljZyUTf3H8j1+xckufF3zouv79xgied28csDHn3+PK2CgnJwgaQk1d6p+KPKiUnq5k2zhVYg2fSSYsOHD+fkyZPcu3eP2rVrs3HjRmuHZDE1XnyRoppiQAILv1lv7XCEDShI5ccUP20ehB1N0BLPwBcmWjsc8YTk9W0+NfwbPvrpAo8WsciW2K1b2ZMYBUCb1i+SzQUwxBPIV33s9CpVqsSuXbv4/vvveeGFF/D19cXBwfhXOX78uJWiMx+NoyNdK1Tkf9fucuLCLu7dewUZvCeeVEEpP6YoW1bDqy+8y6K1L7DzzmFOLVtD3YEvWTss8QTk9W0e1Vu1evRTCLv+iOPVV02cn+SR376YTQrJQFXGT2hg9vhExvJlYgdw/fp11q5dS7FixejevXuagmsrBvXvwv8+O45iC+vWpfDqq5YfVi1sX0EpP6b47qee/Lz+KR6m7KLfm19z5pUXpYd3Piev7ydXol49CuNALMlsWH+JhIR6pk9UHB/P9wcvA+BeqAedO0t5ylW50DRsdgsWLFDu7u6qR48e6s6dO9YOx6J9RxLDw5ULzgpQAQ12mf36wjS20sdOKcuVnzlz5qiKFSsqZ2dn1bBhQ7Vv3z6TzssLz+1XH+02rC+0eeK3VovDluXW3zmvfT7kBks9t01dXB+Vi1/Vhg2mnxfz00/KDicFqDdeP2rWmAoqmx480alTJ1W0aFG1bNkya4diYOk3rGeKVXw0OmmCjI61kryQfJiDpcrPypUrlaOjo1q4cKEKDg5Wo0ePVm5ubur69etZnpsXnlutVqlSbl0VoErZNVQpkVLQzC03/s558fMhN1jquR1QrtyjxO4z1bev6ed9Xafjo/OqqOvXZTSsOdj04ImUlBROnTrFK6+8Yu1Qck3/TgEAaNVmNmywcjAiX7NU+fn6668ZMmQIr732Gr6+vsyePRsfHx/mzZuX9cl5gEYDPy6dBjhxR3uc0QFjrR2SyIGC+PlgSXWrVHn00142bNCt2pKl6GjmnQ4DoEq55yhfXpphc1u+S+wCAwMpV66ctcPIVV1GjcIODXCWZYsvWDsckY9ZovwkJiZy7NgxOnbsaLS/Y8eOHDx40Kz3sqRnX6xDu4YjAZhzYTNnv/qflSPKp+7eJdlKk+sWxM8HS+ret++jn3bx4ME9Nm/O+pzI5au4yEUAho/pb7ngRIbyXWJXEBVt2pRGzkUA2HdwC/fuWTceIVKLiIggJSUlzSz+Xl5ehIeHpzk+ISGB6Ohooy2v2LRvGi4ONVBE0HnC/1ChN6wdUp4XHR3NgQMH+P7TTxlapw6NS5bEvV8/wg/8ae3QxBOqNmAAdTQaIBnYyMqVWZ/zyZd/APHYayoxclTDLI8X5ieJXX6g0dCniR8AWu3v0hwr8qTH1+hUSqW7buf06dPx9PQ0bD4+PrkVYpbc3JxYtGghoOGGCuSdlp+AVmvtsPKU0NBQli1bxsCBA6lYsSqenp60atWKkR9+yKIzZziq1RIP/LEzyNqhiidVqBAvVK366B9r2bIFoqIyOf72bVaE3AKgaf3uODpKM6w1SGKXT3R79dVHP+3ll5/vWzMUIYyUKFECe3v7NLVzd+7cSXctzkmTJhEVFWXYQkNDcytUk/Qf2IrmDQYD8HVIIP+8/4OVI7Ku6OhoVi1dysCe/ShbsiLly5dn0KBBLF++nOvXLz86qhzQFfgAWANcpHSrN60WszCfF/r0AUDDdhISYli/PuNjT8/awB2OAjBxyoBciE6kRxK7fKJq375U1jgDyezatVWaY0We4eTkhL+/P4GBgUb7AwMDad68eZrjnZ2d8fDwMNrymt//mIWTvTeKq3T6fD/aU2esHVKuSoiP55fp39CifADFPEvSZ/Bglq9bwa2I6+g+NpoCk3BgEzXYxwveq3jvlXksX/4Jf/31IvfvV6V9e/l4sQW1hw6lOqBIBDZn2hz70YIg4CGujuXp2lUmJbYWmbUxv3B25sVqFfjiwgVStL+zYUNfBg2ydlBC6IwbN44BAwbQqFEjAgICWLBgASEhIQwbNszaoeVI0aIefPv9PIa9+TwhrGFShxLMCP0K02dozX9SkpL5ceICFvy0jhN3DpNCbKpHqwPPUtauJq08PGjldYem5cOoW3sfjkMHQa1aVopaWJrGx4eeXl58fvs2sJbAwD5ERECJEsbHBf/2D7/f0zXDdmrfI91uGCKXWH72FduXW/Nw7Z848dHcQEVU586JFr2XMJYX5lrL6+bMmaMqVKignJycVMOGDdXevXtNOi8vP7cN/J5/tIh5A3V2wFRrh2MRW9cHq1ZVX1P/b+/Ow6Iq2z+Afw/7jgLKogi4gAuIihuWu6KWb6lZLklmpllakppLvimaqVmav8o9880tNZfMFrfcRdySNEVyBxFEAQFB1rl/fzzMwMAAA8zGcH+ua67ZzvLMGW7OPc92zOChmKRZ3BpQHbN36LUOO+iXH5KrPYemIX/PNZ22j+35sWPFXKqwJiCLVq9Wfj8hgcjD5jwB5gSAzp69qJVy1GaV+Y4lIiK9ZJRGJD09HY6OjkhLS9Nqs1LBgwdwadAIT1AAU9MjePSoJ187Vkd09R3XRoZ8bB88SIRXo+bIL0iDMybh8re94DFxsL6LVW1///0U8z7ejAOHfkBWXmSxdxzhadsbQ3q+iPcWDINvYOWuD1oeQ/6eazptH1s6exY+nTvjHgBgD3r0GISjR8V7WVlAj675OP/XKADb0bNtRxz566zGy1DbVeY75k4QNYiphwdecq4DACgo4NGxjGmbh4cbFn/+FQAgGd+izaRIJBy8oudSVU1qagGmfXgQrnWGo00bN+z5/d3CpE5CPZMgTHxuBpJu/ovYp7uwfN9bGk3qWM0mdeiAITY2hc924fhx4MEDoKAAGDUKOP/XJQDbIQH46vs1eiwpAzixU1i5ciV8fHxgZWWFoKAgnDx5Ut9FUumlPn0KH/2CpUsJ2dl6LQ5jRm/q1DH44P1PAACPsARtBmxD4tVkPZdKPTIZsH51FPy9JsLJyQtLl/dDUtp2AJmwgQcG1+2Ny1+sQVJOJL49tRj1mtTXd5GZITIxwSs9ewIATKW9IMrFTz8B06cDe/YQJEwHAIzq2BGBbdrosaAMAPexI6redS6JdNt3JP3kSbJQ9IGJpkmTtL5LRtw/SJtqyrF9f9x0Rf8zV4s5lHg/T99FKtO5sw+pX8dwsjAJVOo3ZwIH6mzWgfYOCCXZqVPiIrk6UlO+55pIF8e2YNcuclf8Lf1OdesSAUTAHwSALAC6c/my1vZf23Efu0rq1KkT2rVrp3RdyxYtWmDQoEFYtGhRhevrtO8IEfpbW+NATg6AzwFMx549wKBB1dkkITU1FXFxcYqbtbU1mjVrBl9fX7i4uNT6EU7cP0h7asqxJSK8P3IiVmwT/yfcbD7F33f+i/oGUsmVkpKDudN/wo8/bkRy1lGIqwUAgBm8TQMwvoM/Ppz/Bqx69QRMTXVevpryPddEOjm2T59ioqMjVspkAN4CsB5AAdwsGyMxJxZTWrfG0r//1s6+WaW+41o/3Yn8OpczZ85Uet1gr3MpSXi5QwccOHUKlibzkSPrj7feao127YBGjdTfTEJCAj6dPRtHDx9G7MOHyMrNLXNZG5jDw8QB7qaOaGhpCx9bGzRztEaLenZo6eEAexdHwNMT8PEBGjcW9y4u4srqlSCTAfn5QF6euJc/VnXLzS12n5GN3PhHyE1IRt6jJ5A9y0HBsxzkZj1DXvYz5GVnoyA/F6YWBBMrwNQSkCwlmFoBVo4WcG7gACdPBzj7uMDKvR7MbG1haWmJujwyhRUjSRK+2boCspQUrDq4HYlZn6CNnwXORE2Hl5d+ypSfT1jx7RmsWroWMff3AUhRvOeAZhjctC0+XTQKnkNeBEy45w2rBjs7vNKuHVZeuABzkz3Ik61B104bcPJsLBwBfPztt/ouIStU6xO7yl7nEhDXuszJyVE81/W1LsfMnYsf+/bFSVkmzE36IDX1DEaObIJjxwCzCr7Rp0+fYum0aViyfj2y8vOV3jNHHeTDB4RGADIB3AAQiyzk4aYsGTdlyUAegKcAHgL4V75mPZjABhLMYVJ4M4UZJMkMMuSBkAcZciFDDgg5IMoHQQaAQIpWIvllm0xU3OQJolTisQxAQbGbDKKWIq/wVnXWUgNkyfg6oUyZJElYsf9HFLR7hLVRR5DwZAaa+FzDxHfDsXCJN2x1MN6ACNiz5waWLPoBFy5uRQHdUbxnivroYheIOeP6oE/4BIBrxpgGdQsNhfOFC0iWpWLWrEPYsvIjAMAsb284d+2q59IxuVqf2Mmpe51LQFzrct68eboolkpWffrgly+/RI9p0/C37BEk9MXp06cxf7475s9XvU5BdjY2TJ6MTzZsQGKeSHrs0RJP8RkIrQA0RB6sAQBuLnnwbiSDBIJMloXs7NvIybmJrOwbeJp5D1nZccjNi4OMYiESwEeKtKyg+E4NrpHfBBLMIEnmkGAGwBxEAKEAhHxAcctDAYx3IlpWPZIkYfX5AzBtHIRVcZdRQD/g65U78P26iVj26USM/ci7+pVjycnAvn2i1tvZGfmOzth5IR9rdp9C5PmfkZ1zrtjCtvCVAvBOl0B88M0EmLVtU82dM6aa2csvY9DkyVgP4PvvRuNhWhoaAPhAj+dDVlqt72OXm5sLGxsb/PTTTxg8uGh+qsmTJyMqKgrHjx8vtY6qGjtPT0+d9x1JnD8fz8+dC3G1xgAAx3HkSF0UDl4SZX30CD+HhWHBjh34p7CGzhReKMCXAF4BIKFJE6BrV6BbN3HfpIl6rah5eYS7d1Pw77/3kZHxDJmZOcjKykFW+lM8S0xCbkoarCQJVgAsAVhDBmsiWEoyWJibwNxcgoWFCcwtJJibSTCnHJhmP4WUlQHTZxmQsjJAWU8Bc3OQtTXIxgawsQEV3kxdXWHaoAFMGzSAiaMjTE1NYWZmBnNzc5ibm8PCwkLx2NzcHCblnG3z84EnqYTUe+lIufME+dk5eC7UV/E+9w/Snhp7bLOzcWbGTLy1ajuu58lr9+vB2+Y9bPj8JXR7ty1MTCvZN/X8eWDlSmDbNqRmW2A1OmIrbBCNf1GA68UWNIU7/DHSoS5mz3gBdSeOBxwdNfXJtKLGfs81gC6P7R8+Pnjh7l3F8/X29njr8WPAwkKr+63tKvUda3MUR03RsWNHevfdd5Vea9GiBc2cOVOt9fU52uv29OnFRip1ITe3TFq0iChs/Hl6vuFgsoF1sVFxdQn4ioBscnUlmjOHSM2Bv7Uej+jTnpp+bGV5ebRt2ixyMXctFmteZCG9TgHu8+mDcafoxIlcyskpYwOZmfT46y20u8lbNA6vUmsMJzuEEEpdCcKM3OBPo9GObnbuQ7R3L1F+vk4/a3XU9O9ZHSkpKTRq1ChycHAgBwcHGjVqFKWmppa7zujRo0t8z6BOnTpVar+6PLY506eTY2E5WwGUP2uW1vfJKvcdc2JHRdOdrF+/nq5du0ZhYWFka2tLd+/eVWt9ff/Duvzuu1RH8U+hGwFdSl0aCJhDQAp17ky0ZQuVfZJhKun7OzZmxnJsc3NzaeH7/yUr0zqlTtSAFUlSZ3KwH0F21kPJxmIQWZkOJEtpAJmhLwFNVawDkiRb8vUdSv/972ZKSkoRgVtDj5OxfM/l6d+/P/n7+1NERARFRESQv78/DRw4sNx1Ro8eTf3796eEhATFLTk5uVL71emxjYigKQCZA3RQkrh2QEcq8x1zHzsAw4YNQ3JyMubPn4+EhAT4+/vj999/h5e+hrpVUsCKFfj96VP03rQZz3ACACDBBJ4WHdHMbzw8AkehrpM5QkOB9u31XFjGjJS5uTlmff0p3l84A4f2/op9K3bh9F9XcCfnPvKQCaJIpGdElrsNWxsfNG7SAR07tseAAe3xwgudYW1trbwQN3kZpOjoaOzfvx+RkZHo1KkTAGDdunUIDg5GTEwM/Pz8ylzX0tISbm5uuipq9XTsiC+cnRGenAz7l16q3HQMTCc4sSv03nvv4b333tN3MapGkhD8ww/4NTcXi7ZvR6+mTfHmokVwf+WVSk85whirHjs7Owx+fTgGvz4cAECXLuHG0mX4eddp3M02gbmjPczrucDcrR7M3V1h3sAdrZ4LQPeeHeHs7Kzn0rOqOnPmDBwdHRVJHQB07twZjo6OiIiIKDexO3bsGOrXr486deqge/fu+Oyzz1DfUCZILMnUFCYTJsB+6VKgxDRhzDBwYmcsJAm9tm1Drw0bgJK/8BljeiO1bQvfzZswfUPhJIyKa24yY5KYmKgyGatfv36ZU2cBwIABA/Dqq6/Cy8sLd+7cwSeffIJevXrh4sWLsLRUPTpf31NuYcECIDy84vm1mF7wt6IBVDiwWOfBVZa86s3hxkqTf7dUuweRa4XBxY+21ZbPWUJNjaHw8PAKp7c6f/48gNLTZgHlT50FiK5Acv7+/mjfvj28vLzw22+/YciQISrXKWvKrVoTQ7VQZeKHEzsNyMjIAAB4enrquSRM2zIyMuBo4NNK1DQcP7VLTYuhSZMmYfjw4eUu4+3tjcuXL+Phw4el3nv06FGpCfDL4+7uDi8vL9y4caPMZWbNmoUpU6YonsfHx6Nly5YcQ7WAOvHDiZ0GeHh4IC4uDvb29opfZvK57eLi4njOJh3Q9vEmImRkZMDDw0Pj267tVMUPwDGkaxxDqrm4uMDFxaXC5YKDg5GWloZz586hY8eOAICzZ88iLS0NXbp0UXt/ycnJiIuLg7u7e5nLWFpaKjXT2tnZ8TlIzwwpfmr9BMXawpNx6hYfb+PD36lu8fGuvgEDBuDBgwdYs2YNAGD8+PHw8vLCvn37FMs0b94cixYtwuDBg/H06VOEh4fjlVdegbu7O+7evYuPP/4YsbGxiI6Ohr29fZXLwt+nbhnS8earQjPGGGMasGXLFgQEBCAkJAQhISFo3bo1Nm3apLRMTEwM0tLSAACmpqa4cuUKXn75Zfj6+mL06NHw9fXFmTNnqpXUsdqNm2IZY4wxDXBycsLmzZvLXaZ4I5m1tTUOHDig7WKxWoZr7LTE0tISc+fOLXO4OtMsPt7Gh79T3eLjbVz4+9QtQzre3MeOMcYYY8xIcI0dY4wxxpiR4MSOMcYYY8xIcGLHGGOMMWYkOLFjjDHGGDMSnNhpycqVK+Hj4wMrKysEBQXh5MmT+i6SUQoPD4ckSUo3Nzc3fReLVRPHj25w/BgvjiHdMMQY4sROC7Zv346wsDDMnj0bly5dQteuXTFgwADExsbqu2hGqVWrVkhISFDcrly5ou8isWrg+NEtjh/jwzGkW4YWQ5zYacGyZcswduxYvP3222jRogWWL18OT09PrFq1St9FM0pmZmZwc3NT3OrVq6fvIrFq4PjRLY4f48MxpFuGFkOc2GlYbm4uLl68iJCQEKXXQ0JCEBERoadSGbcbN27Aw8MDPj4+GD58OG7fvq3vIrEq4vjRPY4f48IxpHuGFkOc2GnY48ePUVBQAFdXV6XXXV1dkZiYqKdSGa9OnTph48aNOHDgANatW4fExER06dIFycnJ+i4aqwKOH93i+DE+HEO6ZYgxxNeK1RJJkpSeE1Gp11j1DRgwQPE4ICAAwcHBaNKkCX744QdMmTJFjyVj1cHxoxscP8aLY0g3DDGGuMZOw1xcXGBqalrql1FSUlKpX1BM82xtbREQEIAbN27ouyisCjh+9Ivjp+bjGNIvQ4ghTuw0zMLCAkFBQTh06JDS64cOHUKXLl30VKraIycnB9HR0XB3d9d3UVgVcPzoF8dPzccxpF+GEEPcFKsFU6ZMQWhoKNq3b4/g4GCsXbsWsbGxmDBhgr6LZnSmTZuG//znP2jUqBGSkpKwYMECpKenY/To0fouGqsijh/d4fgxThxDumOIMcSJnRYMGzYMycnJmD9/PhISEuDv74/ff/8dXl5e+i6a0bl//z5GjBiBx48fo169eujcuTMiIyP5WNdgHD+6w/FjnDiGdMcQY0giItLb3hljjDHGmMZwHzvGGGOMMSPBiR1jjDHGmJHgxI4xxhhjzEhwYscYY4wxZiQ4sWOMMcYYMxKc2DHGGGOMGQlO7BhjjDHGjAQndowxxhhjRoITO8YYY4wxI8GJHWOMMcaYkeDEjjHGGGPMSHBixxhjjDFmJDixY4wxxhgzEpzYMcYYY4wZCU7sGGOMMcaMBCd2jDHGGGNGwkzfBTAGMpkMDx48gL29PSRJ0ndxmBYQETIyMuDh4QETE/49pEkcP7UDx5D2cAwZv8rEDyd2GvDgwQN4enrquxhMB+Li4tCwYUN9F8OocPzULhxDmscxVHuoEz+c2GmAvb09AHHAHRwc9Fwapg3p6enw9PRUfNdMczh+ageOIe3hGDJ+lYkfTuw0QF717eDgUGFQHT8O/Pwz0L07EBIC2NjooIBMY7iZQ/MqEz+1RWZmJhYsWIBXX30V7dq103dxNIpjSPMqE0NffAG4uwOjRumiZEzT1IkfTux0LCwMiIoCli8HrK2Bfv2AQYOAgQMBZ2f9lo0xZhiWLl2KxYsXIzIyEkePHtV3cZiRuHkTmD5dPDY1BUaM0G95mHZwD1Ydu3dP3NevDzx7Jmrv3nwTcHUFRo4EiPRZOsaYvslkMqxfvwEAcPbseRQUFOi5RMxYxMcXPX7rLeD8ef2VhWkPJ3Y69OwZkJoqHl+/Dly6BMyZA7RuDRQUAD/+CNy6pd8yMsb06+jRo4iNvQsAePYsE9evX9dvgZjRSEoqepydLVqLHjzQW3GYlnBip0MJCeLe2hqoUwdo0waYNw/4+2/A31+8d+OGvkrHWM21eTMQEACcOKHvklTf999/r/Q8MrJmVau8+Sbw+uvAP//ouySspIcPxX3fvkDLliKpGzxYVDow48GJnQ7Jfxl5eAAl+z82aybu//1Xt2VirKYjAj79VCQSL70EXLmi2e0nJydj+vTpuHr1qmY3rEJqaip27txV+Kw7AODAgZqT2OXlATt3Alu3AjKZvkvDSpInds2aAb/8Ajg5AefOAePGcTcgY8KJnQ7JEzt399Lv+fqKe66xY6xyrl0r+kGUlgb07w/Exmpu+x988AG++OILTJo0SXMbLcO2bduQm5sDIADABADAuXM1J7E7fx7IzBQDweStEMxwyJti69cHmjQBfvpJDKLYsgVYskS/ZWOaw4mdDhWvsStJnthxjR1jlbOrsIKre/ei5qX+/YGUlOpv+8yZM9i6dSsA4MSJE0gq3klJC9avlzfDvoWgoA4AgLi4v5Gbm6vV/WrKkSPivmdPgC8uYXjkNXauruK+Vy/g66/F41mzgN9+00+5mGZx6OlQeYmdvCmWa+wYq5zdu8X96NHA/v1AgwZAdLRolq1O3yGZTIbJkycrPf/555+rV9hyXL58GRcvXgBgDje31zF3bmMATpDJcnH58mWt7VeT5DOz9Oql33Iw1YrX2Mm99x4wYYJoil2wQD/lYprFiZ0OqVNjd++eGK3EGKvYrVti8JGpqUjkPD1FclenDnD6tJhCSD5bSG4uEBkJLFsGvPoq8OGH4rWybNmyBefPn4e9vT3CwsIAADt37tTaZ9mwYUPho5fwxhv1EBwsAWgPADh+3PCbY7OzxTEHRI0dMzwla+zkpkwR91FRQH6+TovEtIATOx0qL7GrXx9wcBC/mnjKE8bUI6+t69GjaIJvf39g717A0lLMEzlgANC1q4iv4GBg6lTRwX/5cuDll4GsrNLbffr0KWbOnAkAmD17NiZOnAgAOHLkCJKTkzX+OXJzc7Fx46bCZ28hNBRwcQHq1BHNsQcPGn5id+YMkJMj+hD7+em7NEwVVTV2gOhv5+AgkvPoaN2Xi2kWJ3Y6VF5iJ0m6a46VycR8erduAVo4RzGmM/L+da+8ovx6t26iQ7gkAYcOAadOiaTDxUXU7M2aJaYd2r9fXP0lLU15/c8//xwPHjyAj48Pxo2bjBs3mqJ16zYoKCjA3r17Nf459u3bh5SUZAAeaN06RDHwoHVrkdhFRRl+Yle8GZavGmZ4srKAp0/F45I1diYmQNu24vHFi7otF9M8Tux0qLzEDtDeAIqffxY1Fc2aiVoNMzMxzL1pU8DHRzRlMVbT3L8PnD0rkohBg0q//8orwPbtog/Rhg1ATIyosdi7F1i4UCR8jo4i6evZs6g24969e/jyyy8BAH36fAl/fyu88AJgYjIUgHaaY4vmrhuNN94outJjnz4isUtKuobMzEyN71eTig+cYIZH/vdtaQmouo58UJC4/+sv3ZWJaQcndjqSkSFuQMWJnaZr7ObMEX2Lbt4UIwXl8xWZmYkyDRoEPH6s2X0ypm179oj7Ll1UTyEEiL50K1aISXN9fZVrkp57Djh2TDRLXbokavni4oDp02cgOzsbVlY9sG7dYMXE4tevi2rBw4cP48mTJxr7HPHx8di/fz8AQJLGKF2/s18/DwAeAGS4eNFwz7hPn4okG+CBE4aqeP86VTWq7dqJe66xq/k4sdMR+cnBzk71ryVAO5MU5+QU9Zn4+Wfg6lVRluxsEeiNGwN37wKvvSYmF2WspiirGbYy2rQBTp4Ugy5iYoD27U9hx47tAEyQnb0c9etL+PprwNsbyM5uDk/PVsjLy8O+ffvK3GZ2djbu37+vdhk2btwImUwGoCv69Gmm9MMvMBCQpI4AgP37Dbc59tQp0ene21u0AjDDI6+xK9kMKyevsYuKKhpwxGomTux0RJ7YlVVbB2inKTY6WvzDrVNH9C1q2RJwcxPV8U5OYvZxOzvRP2baNM3tlzFtSkoSCRkgLolUHb6+IjFp1qwASUlhAABz87exYEEgbt0C3n9f1PwBgL19+c2xeXl56NWrF3x8fHDu3LkK901ExZphxaCJ4iwtgQYNRHPssWOGm9jJ+9f17AmsW7cOW7ZsQar8wtjMIMhr7EoOnJBr1gywtRV98WJidFcupnmc2OlIRf3rgKIau8TEombb6pJPf9W6terq91atgE2Fg/G+/lr0RWLGa+XKlfDx8YGVlRWCgoJwUp4dleH48eMICgqClZUVGjdujNWrV5daZteuXWjZsiUsLS3RsmVL7JG3kWrR3r1iEFBQkKgl2rt3L3r27Ilp06bhjz/+wFN5L3E1ubnlomXL1wFchKWlAy5f/hSzZ4sfPUBRYnf7tkjsDhw4gPT09FLbmT9/Ps6cOYP8/HwsXry4wv0ePHgQN2/eBGAHa+tXVSap7duLxO7aNf0kdgUFwJ075V9ySt6/rkcPGebMmYNRo0bhIrfpGZSKauxMTYsGUHA/uxqOWLWlpaURAEpLSytzmS+/JAKIRo4sf1v16onlLl7UTNmmTBHbe//98pebO1csZ2FBdOaMZvZtTNT5jg3dtm3byNzcnNatW0fXrl2jyZMnk62tLd27d0/l8rdv3yYbGxuaPHkyXbt2jdatW0fm5ua0c+dOxTIRERFkampKCxcupOjoaFq4cCGZmZlRZGSk2uWqyrHt31/8vX72GdHNmzfJ1taWAChu5ubm1LVrVwoPD6fz58+Xu62srCx64YUXFOvt3r271DIyGZG3NxEgIw8PPwJAW7duVVrm9OnTZGJioiiDJEn077//lrvvbt26FS4fRq+/rnqZtWtTFNtMTk4u/8BoSFoa0Y4dRKGhRM7O4liHh6teNjWVyMRELLN//18EgGxtbSk7O7vENmt+DBkqdY7tBx+I72jmzLK3I18mLEwLhWTVUpn44cROA9Q54PIEa9q08rf13HNiuW3bNFO23r3F9tatK3+5ggKiQYPEsu7uRPHx6m1fJpPR/fv3q19QA2cMJ6WOHTvShAkTlF5r3rw5zSzjP/306dOpefPmSq+988471LlzZ8Xz1157jfr376+0TL9+/Wj48OFql6uyxzY1lcjcXPytXr2aT126dCEA1KFDBxo7dix5eXkpJXkA6D//+Q9FR0er3Hf37t0JAFlbW9Mff/xR5n6nTRP7bNlyNgGgIUOGKN5LT0+nxo0bEwAaNWoUDRw4kADQu+++W+b2Tp48WVg+CwLu0/79qpe7eZMIaEoAaN++A2odo6rIzxf/J/r2LTq+xW+WlkS3b5deb+9e8b6vL9Fnn32mON4lGUMMGSp1ju3w4eJ7+uqrsrfzww9ima5dNV9GdcXGEs2bR1TBb6JapzLxw02xOqJOUyyg2QEUREVTmQQGlr+siQmwcaNomk1IEJO89u8v5vvasUOMqJXJxO3BAzECbuPGdLRuPQQNGzbEG2+8CyqvrYbpVW5uLi5evIiQkBCl10NCQhAREaFynTNnzpRavl+/frhw4QLyCkfalLVMWdvUhF9/FQN9WrYE9u5dgoiICNjb22PHjh347rvvcOfOHdy8eRNr1qzB0KFDYWpqin379sHf3x+TJk3C48Ih4MnJyejTpw+OHz8OBwcHHDhwAP379y9zvyWbY3///XdFk29YWBhu376NRo0aoW7dbxEVJTqsbtiwAY8ePVK5vc8++6zw0Ztwd2+A3r1V77dxY8DSskPhZ9dec+z06ekYN+4zHDr0B/LyCH5+ot/t8eNAnz5iINZHH5VeT94M26sX8McffwAABgwYoLVysqqpqI8dUDQy9tIl8b9eE+7cATp3Fv0vKzqvnToFtGv3EHPnfozOnc/yZP1VZFbxIur5Wn4l4UoYM2YM7MsaImpk1E3sNDmAIiFBTGNiYgLFhKflsbcXfZe6dwfi44EDB8RNztZW/HMXl5y5BmAwAFHQTZtWw8+vKWbPnlr9gmsIEeHGjRs4fvw4JEnCqFGjYGVlpZey6Ds+Hj9+jIKCAriW6GDj6uqKxMREleskJiaqXD4/Px+PHz+Gu7t7mcuUtU0AyMnJQU5OjuK5qr5q5ZGPhu3S5S/MmTMHAPDNN9/A29sbACBJEpo0aYImTZpg/PjxuH79OqZPn459+/ZhxYoV2Lx5M6ZPn44ff/wR//zzD5ydnXHgwAEEyYcFlqFDB8DLC7h3LxBubk2QmHgLf/zxB8zNzfH9999DkiRMn74RkyY5AugGJ6f2SEm5gFWrVinKKXfx4sXCKU5MAczAlCli+iFVJAlo3LgDoqN/RESEdhK79evvYtmygQCuAgCCg3tj1aqlCCz8RfjVV+LH4a5dItHr3r1oXXli17HjE6xbdwaAfhI7fceYoauojx0ANG8uJu5++lRMu1XdK4hcuAC8+GLRvtu2FX9L48aV7vO9di0wcSIhP38UgMNISfkcQUEzcenSXPj4WFSvILWNpqoJJUkiT09P8vb2VutmampKt27d0tTu9UqdKtKmTUUV94kT5W9r506xXKdO1S/XH3+IbZVoTavQs2dEkZFEq1YRjR9P1L69aIaRN8lI0g6SJNvC5quGZGMzubBJSaLdu3+ufsGr4dq1a7Ry5UoaNmwYubm5KTXHBQQE0N9//12l7Va3GUnf8REfH08AKCIiQun1BQsWkJ+fn8p1mjVrRgsXLlR67dSpUwSAEhISiIjI3Ny8VF+zzZs3k6WlZZllmTt3bqmm0pLHViaT0dq1ayk1NVVp3adPiaysiIAs8vFpoWgSlclkFR6DI0eOUJs2bZT26e7uTlevXq1wXbmpU+UxNYMAUK9evcjFxYUA0EcfTaf27Ys3X24jAFSvXj3KyspS2s6QIUMKyzCK6tUTn6s8Y8eeLIw3D7XLmp+fT5cvX67w8/3002mSpHoEgKysXMjCwkLRR3DMmDEUX9gv4913xedq00Y02xIRJSUVfd5163YQgFLN93LaborVd4zpkzrH1sVFfE+XL5e/rc6dxXIlwrrSfv2VyMZGbCswkKhnz6K/lZdeEn87REQ5OUV/W8B6AqDUV9XSsi2dOPFP9QpjBPTSx06SJHr48KHay9vZ2dWaoJLJiv7Ab94sf1t//y2Wq1NHrFcdixeLbQ0bVr3tEBHl5hJduZJH48dPVQRcr169KCkpiSIjZWRq+m5h53MbuqipkR+VIJPJ6P333y+VLFhYWFDXrl2pXr16iudLliyhfPmZSU2aSOz0GR85OTlkampaamDABx98QN26dVO5TteuXemDDz5Qem337t1kZmZGubm5RETk6elJy5YtU1pm2bJl1KhRozLLkp2dTWlpaYpbXFxcqWN7+PBhAkD29vY0c+ZMxbGT//BxcBA/Jtzc3OjRo0dqH4f8/HzasGEDNWzYkPz8/Cp9jM+eFfu3sjqv9HcWGBhI69ZlE0Bkb08UEkIE5JG1tejvt2bNGsU2rl69Wmzdq/T55xXvd+/epwSIk118GR1gnz59Sn/++SfNnz+f+vXrRw4ODor9PP/887Rnz55Sf/fff7+ZJEkkcjY2benWrTi6ffs2DRs2TLGujY0NhYeH0/372eToqNxnd8cO8TwggGjMmDEEgD788EOV5dNFYmco56AVK1aQt7c3WVpaUrt27ehEBb/ojx07Ru3atSNLS0vy8fGhVatWVWp/FR3bvDwiSRLfVUWHaOJEsdzUqZUqAhERLVmyhF555RWaOHEfSVIBAaLPZlqa6Mf95ZdigB5A5Ooqksdu3eRJXTxZWTkSAPriiy9o1aqdZGLiXPgjw5IWLFhKBQUFlS+UDmVmZlJGRoZWtq2XxC48PJwyMzPVXn7hwoWlfo1riqEF1ZMnRb9UKjpEmZlFy1bifKXSiBFFIwerKz09nXr27Kn4Zz99+nTKy8tTvL9pUx4BIQSA6tb10PmAipUrVypqGXr16kXz5s2jY8eO0bNnz4iI6OHDh/TSSy8pyt+1a1e6c+eO2tuv7knJEOKjY8eOpTrzt2jRotzBEy1atFB6bcKECaUGTwwYMEBpmf79+1d78MSff/5J/v7+iu/LysqK3n//fXrnnXsEHFK8/vvvv6u9n+JkMlmVThIyGZGXlxgdW6+eV2GNgiWdPfsPubmJePviC6KYGCJTUyJgOQEgX19fxf5GjRpVWP4h5OJCpM55IDWVCAggALRxo3KteH5+Pr355mSSJFMVNaF2BJgrnjdt2pS+/fZbysjIoE8++UTxurn5IIqOVq42PHPmDAUHByuWmTJlCi1bJj5j/friZD1hgnzUvYzc3d0JAB08eFDlZ9B2YmcIMUakndHnFano2CYkiO/JxKSotrW4x48f09SpU2nHjh303XcyAkQNW2UcOHCgxN9eE+rQYRklJaUqLRcVRdSqlfLAHDs7GXXq9DIBoPbt2yvOLSdOJJCFxQvFfqB0o23bttHjx48rVzgdiIuLo0aNGpG1tTXNmTNH4wlerR4Va4hBde1aUS2cOjw9xfIlWs0qrWVLsZ1ff63edoiIxo0bRwDIzs6uzGMzdeoTAloWnsjaau2XS0knTpwgMzMzAkCfF6v+KCggOnhQ1FgGBRGFhspo2LD1ZG1tp6gN+t///qdWM54xjOiTx8b69evp2rVrFBYWRra2tnT37l0iIpo5cyaFhoYqlpfHxocffkjXrl2j9evXl4qN06dPk6mpKS1evJiio6Np8eLFGpvupKCggPbu3UsdO3ZU/GOXJDMCxK/69957r5pHpGrkzbGtWy8kALRy5UqaOVO81rSpaFoiIho3jghIJ1PTOgSA9u7dS7du3SJTU3kCdoEWLVJ/v46ObxEAGjZstuK17Oxs6t17aLGTaUMChhHwDQF/EZBHQDwBs0iS6iqWs7S0LLbODPrtN9VJrkwmo9WrVytiPynpCfn6is86fTqRn594vGzZJUXtXslpTuSMIYbUoY3R5xWp6NhGRRUl5CUlJSVR69atFX8PXbr0I+AWOTqq32qUkZFRbDR6ZwLqKLZna2tL7733ntLUP1lZRJMnF8XM0qXbCn9gmNPlEm3FFy/KyMpqLQFFUxqZmJhQp06daO7cuXTmzBnKz8+nvLw8yszMpNTUVHr48CHFxcUpWhaqKjk5mX777TfKkQd1OZ+/VatApcTW3d2d1q9fX+nWISKimJgYSk9PV3rNIBK7/Px8SkxMpIcPH1bpg1WVIQbV4cPyaRLU216vXmL5//1P7SKU8uyZvMaggCZP/oSee+45unHjRpW2dehQUQ3JsWPHylyuoICob9/bBIhmz5CQl7X+3cfGxlL9+vUJAA0fPpxkMhnFxRHNny+fd0zV7RYBzyk+U/Pmr9OyZel0+LAYaq+qIsdYTkorVqwgLy8vsrCwoHbt2tHx48cV740ePZq6d++utPyxY8eobdu2ZGFhQd7e3iprs3/66Sfy8/Mjc3Nzat68Oe3atatSZaq4K4OMDh8+rFRj7OHhW6naGU2KjBR/RzY2MoqLe0w3bxY1L/3yS9FycXHyvqkzSV5LPH78+MLP0I+cnIhK/O8uV6dOqwgANW4cQkSiFr1Dh96F27Mgb+8dtGAB0aZNoi/v3buiCW7vXqJmzYiADAK+IQuLxoXrmBOwgebMKX+/MpmMWrVqRQBo6dKltG+f+KzyKVFMTIj++9+ypzmRM5YYKo+2ujxURNWxLf6D9eBB8V35+yuvl5iYqPhunZ2diyX8VgQsouho9fY/adKkwvW8CMigb799SmvWrFFsGwCZmZnRrFmzlOL23j2i+/cfKbrKzJ07V+X2T54ksrS8RcA0ktdcq3OztnanXbvKPmeVJScnh5YtW0b29iJBDQ7uVuYckvn5+TRgwMDCfdYnYC0BjRVlCAwMpMOHD1e4z+zsbNq6dSv16NGDAJT6X6vXxG737t3UpUsXsrCwIBMTEzIxMSELCwvq0qUL7dmzR9O7U2JIQVXcxo0iqHr3VmtziuaN2bMrXrYsFy8SAdlkYVHUV6ZDhw6V/gWTkZFB3t7eBIAmTZqkxvJETZqcJkD8g+jRI6RSfaAqIysri4KCgggAtWnThs6dy6QXXiiaLBUgcnQUfUZ++kkke0OGEDVuTATkE7CAAHntSbPCGg7RH7JLF+V96eKkdO3aNfLx8dHa9g1VZY6tvX0EAR/Rr7/qb5IrmYyoUSPx97V7N9HgweJxSEjpGg4x9108SZJoDi2qrTtBJcalVGjGjAuFJ8i6lJSURC1bdijcli21bHmIyjt8OTli/rI6deR/+/sJuEx9+6pumitp3bp1BIC8vLwoNzevsA+huAUFET3//PMkr70si64Su6ioKPr0009pxYoVpf73pKWl0ZgxY7S2b/kgpdOnTyu9/tlnn5Gvr6/KdZo1a0aflegvc/r0aQJADx48ULmOOv1UR44cSW+99RZdv36dNm0qfQ6Kj4+n5s2bEwBq0KABxcTEUExMDPXq1UtxzvD09C/1WUoqmo8RBBxQGqwnk8nozz//pP79+yuW8fHxod9++02xzOuvv04AqFWrVuXWjB0/Lsrv4EAExJEYaPEqFa8dVL7JB2CY0pgxS9RqmZHJZLRr1y5q2LBpqe35+PiqrBx5//0PFMmwvX0kzZ9P5OiYTcBSkrcuyM9R48ePp7Vr19Jff/2lOBfHxMTQ1KlTydnZWbGsJJlQaOgUpf3oLbFbvXo1WVhY0IQJE2jPnj0UERFBp0+fpj179tCECRPI0tKS1q5dq8ldKjGkoCpOPoihWCtXueT9WF59Vb3lVVmxIo0A8Wve3Nyc7O3ty/1FVBb5gAQvLy+1m1bv3iVycNhNgDUBoLp1G9Hp0+eq8CnKJpPJFH2VnJ2d6ciRO4qrdgBE3buLmosSgxEVnjwRtRoffXSK7O09C4PJgkxMviZARoGBysvr4qQUFRVFJiYmWtu+oVL32KakFH2/OmrlL5N8wvEWLcS9qSmRqsGnjx/LT0RvFjtJdK10bR0R0ZkzOSQmMwa5ujYq3JYztWlzTu1tPX4srkJjair6CspHJlYkKytLceLZtWsX/fOPvEWA6P33UxUJa3n9VnURQwcOHCALCwtq1aoVNWrUiFxcXOjIkSOK9xMTE7UaY9oafV5SRSPL7927R5IkFf5fk6h161cIOE8jRoj14+LiqFmzZoXJmyfdLDaqTyaTUc+eGwlwUWw3LCxM0V+5uKysLPL19SUA1KTJW4RyJuH/+eefydPTU7HNoUOHKn4wmJiY0NmzZ1WvWEJBAdH160SbN4vm3ODgPPL2TqTnnkuh4cMzaMaMHFq5UkabN2dS3bpvKPbXuPEgSkx8UuZ2z507R4GBXYsdT1eSpHVUt24UASLeHB2d6dSpU4p1vvnmG8XyZmY/kbwBJClJ3hXjEQHvE2BW6ruytLQkPz8/pdfMzBoQMJeA2FLHUW+JXZMmTei7774r8/3169dT48aNNblLJYYSVCXJL9MyYwbRRx99RH5+fqX6ERQnb+oomVyoKyEhgerVa1OY1NnRwYMH6ccffyR5jYG6/Z9OnDih+GyHDh2qVBkuXSJq3vwyyWfMlyQLmjhxDRUUVHOob6Fly5YpPs/OnUfIx0ccs3btRMf1ykhOTqZBgwYpPmvv3i/TkSPK1e6aOCl9+OGH5d5GjRrFiV05RC206n5CunbmjHLzfnmX7Js/nwi4Uux/xX5asKDy+8zNJZKkjsW205A6dIiucKoUVR4+pHJr+FSZPVtccaNr4WUJ5s0TNYBffln+NCdyukjsgoOD6eOPPyYikaAsWbKE7OzsFFcU0XZip6tWI3UqFyIiIpQGjIkkrjft2LFDcZUUb29vuq3iciJr1xIBj8ndfYxi3YCAALpy5YrScjNmiGl/3N3dyckplQCicnrrUEZGBk2dOrVYzbW4Ta3KEFw1ZGXJqHfvNYofRBYWTWn3bjHl1f37CbRs2Vbq0+dtcnJqUqw81iRJ/6XQ0HS6cYMoMZGodesHBLQvPKda0o8//ki//fYbSZK8VnARbdlSev8XLhAFB4tae+AnAmaQqHApXstoQsCLBPxCQB5ZWIjpYPbuVd6W3hI7Kysrun79epnvR0dHk5WVlSZ3qcSQgqq4oUPFP/8pU84qvswGDRpQbGysyuVjYuR9eIiuXPmHEhMTK/roCv/++y/5+PgU7qc+zZ1bNPXIiBEjCBAj4yqqfcvMzFT8onv77bfV3n9x+flEX3/9hCwsipImd/fRdORIJiUlEWVlZdODBw/oypUrdPz48TIHuBSXl5dHy5cvV8xz9Pnn/0dt24rj1bixCMKqkMlk9M033yjm8PL09FRqxtHEScnExITatWtHPXr0UHlr3749J3bl0OQcj9UlkxUNcnJyIirvEq4ZGfJrQK8g4DOqU0dW6aRKzt39w8JYak5dusRWOMpek+Lj4xWDlC5cuEBE4jhUNM2JnC4SOwcHB6XaJyKirVu3kq2tLf3yyy9aT+yItDP6vCLlHdt//vmHmjR5g4q6naCwhq1Jmf9zL1wo+tvet+9XRT9mS0tL+vrrr0kmk9GFCxcUCdrixT8TCru+qNPbJyoqijp37qw4H2m7v+zy5efJxEQ+uMOaLC2bq6icMSVJeoNGjIgrdem8jAyivn2fElB0LrOwsCp8PJY+/bTsCouCAqKffyb68EMxtYudnRhVD9wsTObukaUl0csvi1rIssJDb4ldUFAQTZkypcz3p0yZQkFBQZrcZSmGFlREor8WICM/P3FNS3lS0rJlS0pJSSm1fG4ukYmJjIB5BIjRm5s2baqwHIcPH1ZMlmpi0oSAm1R8SrmUlBRq2LAhAaB33nmn3G1NmzZNkYA+eVJ29bU6njyRUffun1NRn4c6VHyEk/wmSSY0YsTrdO3aNZXbOX78OAUEFHWcfeONMdSrl0xRi1PFsSFK/vrrL2rWrFmpfjiaOCn5+fmV+z1eunSJE7tyLFkiTjby5iR9++wzUZ716yte9v/+r6h2b/78qu/zo4+SCVhLPXok6zSpk5P3hxo1ahQRiR9EFU1zIqeLxK5evXqKpLO4bdu2kY2NDa1atUrrMaaN0ecVqejYDhhABNyl3r3fJ2tra2rRokW5U1JlZxcNjrlzR9R0DhgwQPG/d8CAAYr/xcOGDaOPP678nKkFBQV0+PDhSs09WB1Xrz4mZ+f+xc45EklSW3J1nUq9e/9KCxakUeFXpFJeHtGYMfkETCm2jV40ZkxupeacLSggio4WSdysWURbtqhXe663xO7YsWNka2tLLVu2pLCwMFq0aBEtXryYwsLCqFWrVmRnZ1fhnHLVZYhBJUZniuHcNjY2FBkZSQ0aNCB5s0bJvgtZWVlkZze8VOITGhpaagg0kWh6HTlypGK5gIAgAh6SqakYHVvcn3/+qVhu3759KssbGRmpSD7LWqYqNm06QpaW9Ut8LhMSfTl8FK9JkkSvvvqq4ioR8fHxSp/PycmJVq5cTa+9lk8Aka2t+IWpKenp6fS0RPuWJk5KI0eOpLCwsDLfj4qKIkmSqrz9mkrdYyufnb46g4o0qaBA/T5q2dmia4WPj+jfWVXPnhH9+WfRlCq6duGCGMBhbm5O8fHxdOlSxdOcyOkisevbty998cUXKt/bunUrmZub6+THkzZGn5enomMbFFQ09dWzZ8/UGkQnbwmRD3KXt2oUnyrH2dmZkpKSKDBQLKtG/YNe5eUV0Jw5v9D06Xvo3LlktQYOFSeTEYWHEwEbCZhIPXqkqFVDqQl6HRV7584dmj59OnXr1o18fX3J19eXunXrRjNmzKjUhLDVYUhBJZMRmZtnkbzz5fzCn+uXL19WzAz/yiuvKKYFefDgAXXoIB/tZkavv76G5s2bp0i0mjRpQufOiYEI+fn5tGLFCnJ0dFQkRBMnTqSffsogQEwCqcqHH4rmnPr16yt+Ld2/f592795NM2fOpEaNGin9KtekjIwMOnfuHF27doOuXk2hCxcK6I8/xIg9a+sLSlXdAKhPnz5kZ2en+HzvvPMOPXr0mMLCxD8SMzOiAwc0XsxSNHFSSkhIUPzAYEXUPbb9+onvvJxuvAYtP1+9EaiGTj4C9r///S8tXCjm8hs4cGCF6+kisdu9e3e5P57k00kYm4qObcOGInbOVWIM29tvi3UKuywq/PPPP9S6dWsyMTGh7du3U2ysWE6Sqj+pfk3x009iPktdztxjEPPY1SblHfDHj4mAzwqbNRsq9SU4evSook/XpEmT6OLFi4qaPCsrJwKOKi7rcvLkSUXCZWZmRh9//HGxBBAUFBRE58+fJ6KiJqKymqyePXummNW/adOmiqaU4jcPDw+dz+59/bp8RvK/CXhNMaoLAHXq1Im2bbtAc+YUTbwMiOpsXagNc3Dpi7rHVj4xbrFBjkwPdu7cSQDIxcVF8T9oxYoVFa7HMaQ9FVUuyOdZVKMbs8LKlWKd/v1Lvyefp5ZIXFMcKD1FFNMsTux0rLwDfuRIAonL+oA2q8hCtm/frkhe5B2TmzdvTuHhNwkQo2PkUlJSaOjQoUoJmIODA3377bdKEwG/9poItMWLyy5zVFQUmZsXXWrI1NSUAgMDady4cbR27Vqd9Xso6elTMS2MSNyiyccnjAYO/IGaNi1QJHMonBz1m290Vy4+KWmPOsc2P7/o5KSjin9Whry8vGJXGRA3VSMrS+IY0p7yjq24HJ24qZixpEzy6yLXq1f+FSgGDhTLVXZeRlY5ekns6tatW6mJaD09PY2mWaq8A96//1gCQNbWHcu8NuVXX32l+AfZr18/evLkCR06JIKl5AwCMpmM1q1bR+7u7jRy5EiVc+3JL/NTOMK/TEePHqX/+7//o1OnTultFn9VZDKiNWuKTuTym3zk0MaN4p+VLlX3pFSb46Mi6hxbeXOPmZnoxMz068svv1T8zyprKqmStJ3Y1eYYK+/YymdZcHCo3DazsormKoyLU71MZiaRlZVYppwZvJgGVCZ+zKAhT548wR9//AFHR0e1lk9OTkZBQYGmdm+QoqKicODA9wCAgICvYGJionK5sLAwODo6Ii0tDZMmTYKZmRmaNRPv3boF5OcDZoXflCRJePvtt/H222+r3FZWFnDjhngcGFh++Xr06IEePXpU9mNpnSQB48cD7dsDkycDrq7A0KHAiy8C9vb6Ll3VcHxUz5074t7LqygWmP6MHTsWc+fORWZmJgYMGKDv4gDgGCvLw4fivn79yq1nbQ20agVcvgxcvAg0bFh6maNHgexswNMT8PevflmZZmj0X+To0aM1ubkajYjw4YcfgogADEOrVl3KXX7MmDFKzz09AUtLICcHiI0FGjdWb79XrwIyGeDiAri5VbHwBqJdO+DkSX2XQnM4Pqru9m1x7+Oj33IwoU6dOpg7dy6WLVuGsWPH6rs4ChxjpSUliXtX18qv266dSOz27gVefrn0+7/+Ku4HDhQ/yJlhUF2FVAUymQwxMTGQyWRq3xqrm63UQHv37sWxY8dgamoJ4HN4eFRufRMTKGrt/v1X/fX+/lvcBwZyoBkSjo/qkdfY8SExHB999BESEhLgbyBVNRxjqlW1xg4ARo4U9xs2AGvXKr9HBPz2m3g8cGDVy8c0T2OJHQD4+fnB09MTo0ePxv/+9z/cu3dPk5uvURYvXgwAaNJkKgCvSid2QFFiJ29aVUfxxI4ZFo6PquMaO6YOjrHSqlNj17cv8Omn4vHEiaLpVe7KFSAuTjTZ9uxZ/XIyzdFoYnf8+HG88847iI+Px8SJE9G4cWP4+Phg7Nix2Lx5M+Lj4zW5O4P2+++/Y9asWXBwmAkAVUrsfH3FfVVr7Jhh4fioOnliVwsqWFg1cIyVVp0aOwCYPRsYMUL09R46FLh5U7wub4bt3Vskd8yAaGsER25uLh0/fpzmzZtHPXv2JGtrazIxMSFfX19t7VJvyhutIr+e5Nmzld/u+vVi3ZAQ9ZaXycS1+gCiqKjK74+VTdMj+mpTfFREnWPr7l75CVaZYdH1dCe1KcbKO7aDB4vYUWOqwTJlZRF17Fg0U0NqqvxSmUSrV1d9u0x9ehkVW5K5uTm6deuGDh06IDg4GAcOHMC6detwU57u1wIyGZCQIB5Xpyn2+nX1lo+NBdLSxKjB5s0rvz+mOxwf6nv2rCiOuMaOqYtjTJA3xVa1xg4QNXI//wx07CjORy+/DJw5I9578cVqF5FpmMYTu+zsbERERODo0aM4duwYzp8/Dx8fH3Tv3h2rVq1C9+7dNb1Lg/X4sai+lqSq9W8IDBSDKGJjgQcPKk4O5c2wLVqIEbXM8HB8VN7du+LewQFwctJrUVgNwDGmTN4UW5VzUHHu7sAvvwDPPw+cOCFeCwxUPQ0K0y+N9rHr3r07nJycMHnyZKSkpOD999/HvXv3EB0djdWrV2PkyJFo0KCBJndp0B48EPf16wPm5pVf38GhqK/cqVMVL8/96wybPuMjNTUVoaGhcHR0hKOjI0JDQ/HkyZNy1yEihIeHw8PDA9bW1ujRoweuXr2qtEyPHj0gSZLSbfjw4Rote/GBEzzSm5WHz0GlaaLGTq5tW2DTpqLnPBrWMGk0sYuIiICLiwt69uyJ3r17o1evXnCt7s+EGkye2FWlGVbu+efFvTqJ3enT4r59+6rvj2mPPuNj5MiRiIqKwv79+7F//35ERUUhNDS03HWWLFmCZcuW4dtvv8X58+fh5uaGvn37IiMjQ2m5cePGISEhQXFbs2aNRsvOU50wdfE5SFl2NpCeLh5r6jAMGQKsXCmaZceN08w2mWZpNLF78uQJ1q5dCxsbG3z++edo0KABAgICMGnSJOzcuROPHj3S5O4Mni4Tu9zcosl8e/Wq+v6Y9ugrPqKjo7F//3589913CA4ORnBwMNatW4dff/0VMTExKtchIixfvhyzZ8/GkCFD4O/vjx9++AFZWVnYunWr0rI2NjZwc3NT3NSd+V9dPNUJUxefg5TJa+ssLABNhuW77wJnz4orwTDDo9HEztbWFv3798fixYtx9uxZPH78GEuWLIGNjQ2WLFmChg0bGsxklrogT+zc3au+DXli9/ffRb+8VImMFJcTq1dPXAaGGR59xceZM2fg6OiITp06KV7r3LkzHB0dERERoXKdO3fuIDExESEhIYrXLC0t0b1791LrbNmyBS4uLmjVqhWmTZtWqkavuniqE6YuPgcpKz7VCXdjqD20etVFW1tbODk5wcnJCXXr1oWZmRmio6O1uUuDookaOw8PcUK7fVuMQurXT/VyR46I+169xIALZvh0FR+JiYmor6KDTf369ZGYmFjmOgBKNWO5uroqTfr6+uuvw8fHB25ubvjnn38wa9Ys/P333zh06FCZ5cnJyUFOTo7ieXp5v1jATbGs6mr7Oag6kxOzmkujiZ1MJsOFCxdw7NgxHD16FKdPn0ZmZiYaNGiAnj17YsWKFehZi6ao1kRiB4hau9u3RXNsWYndn3+Ke26GNVyajo/w8HDMmzev3GXOnz8PAJBU/FwnIpWvF1fy/ZLrjCvWycbf3x/NmjVD+/bt8ddff6Fdu3Yqt7lo0aIKy120P26KZerjc5Cy6k5OzGomjSZ2derUQWZmJtzd3dGjRw8sW7YMPXv2RJMmTTS5mxpDk4ndxo1l97PLzBRNsYCYBZwZJk3Hx6RJkyocgert7Y3Lly/jofw/fDGPHj0qs2O5m5sbAFFz516sL0FSUlK5ndHbtWsHc3Nz3Lhxo8zEbtasWZgyZYrieXp6Ojw9PVUum5wMPH0q/yxl7pYxAHwOKolr7GonjSZ2X3zxBXr27Alf+bWwajlNJXZdu4r7yEgxSMLCQvn9kyfFfHmNGnFzlSHTdHy4uLjAxcWlwuWCg4ORlpaGc+fOoWPHjgCAs2fPIi0tDV26dFG5jrx59dChQ2jbti0AIDc3F8ePH8fnn39e5r6uXr2KvLw8pWSwJEtLS1iqOdGivLbOwwOwslJrFVaL8TlIGdfY1U4aTezeeecdTW6uRsvPLwqq6iZ2fn6As7OovfjrL6BzZ+X35f3revfmDrKGTF/x0aJFC/Tv3x/jxo1TTEUyfvx4DBw4EH5+forlmjdvjkWLFmHw4MGQJAlhYWFYuHAhmjVrhmbNmmHhwoWwsbHByJEjAQC3bt3Cli1b8MILL8DFxQXXrl3D1KlT0bZtWzz33HMaKTsPnGCVwecgZVxjVztxN3stSUoSlxQzMan+ryVJKn/aE+5fxyqyZcsWBAQEICQkBCEhIWjdujU2FZ9pFEBMTAzS0tIUz6dPn46wsDC89957aN++PeLj43Hw4EHY29sDACwsLPDnn3+iX79+8PPzwwcffICQkBAcPnwYpqamGim3fOAE969jrPK4xq520uqo2NpM3gzr5gZo4hz3/PPA3r0isZs2rej1lBTg0iXxmBM7VhYnJyds3ry53GWISOm5JEkIDw9HeHi4yuU9PT1x/PhxTRVRJa6xY6zquMauduIaOy2RX7S8us2wcvJ+dqdOiZpAuWPHxMjB5s01ty/GDAVPdcJY1XGNXe3EiZ2WaGrghFzbtoC1tehnV/xiAcX71zFmbHiqE8aqpqAAePxYPOYau9qFEzst0XRiZ2EByC8cULyfnbx/HSd2zNjk5wOxseIx19gxVjnJyaJ1R5IANQbPMyNiVIldamoqQkND4ejoCEdHR4SGhuLJkyflrrN7927069cPLi4ukCQJUVFRGimLphM7oPQAivh44Pp1Ebjdu2tuP4wZgrg4UetgaVm9y/IxVhvJ+9c5OwNm3Ju+VjGqxG7kyJGIiorC/v37sX//fkRFRSE0NLTcdTIzM/Hcc89h8eLFGi2Lry/QowfQsqXmtinvZ3fypLg/elTct2sHODlpbj+MGQJ5M6y3N18mj9UMla1cyMvLw4wZMxAQEABbW1t4eHjgjTfewAN5zUA1cP+62sto8vjo6Gjs378fkZGRioudr1u3DsHBwYiJiVGar6s4eeJ39+5djZbno4/ETZM6dxYnuDt3RG0dT3PCjBkPnGA1zciRI3H//n3s378fgJgvMjQ0FPv27VO5fFZWFv766y988sknCAwMRGpqKsLCwvDSSy/hwoUL1SqLPLHj/nW1j9EkdmfOnIGjo6MiqQOAzp07w9HREREREWUmdlVR2YuYa4qDAxAYKKY3OXWKB04w48YDJ1hNUpXKBUdHRxw6dEjptW+++QYdO3ZEbGwsGjVqVOXyyJtiucau9jGaBo7ExETUV/EXXL9+fSQmJmp0X4sWLVJUtTs6OpZ5nUttkPez++EH0bHc3LzoNcaMCdfYsZqkosoFdaWlpUGSJNSpU6fMZXJycpCenq50K4lr7Govg0/swsPDIUlSuTd5lbWk4npaRKTy9eqYNWsW0tLSFLe4uDiNbr888n52f/wh7jt3BmxtdbZ7xnSGa+xYTaKJyoXs7GzMnDkTI0eOhIODQ5nLqVO5wDV2tZfBN8VOmjQJw4cPL3cZb29vXL58GQ/lP1GKefToEVw1/JOlMhcx17SSl+Dk/nXMWPFVJ5ghCA8Px7x588pd5vz58wCqV7mQl5eH4cOHQyaTYeXKleUuO2vWLEyZMkXxPD09vVRyxzV2tZfBJ3YuLi5wUWMSnuDgYKSlpeHcuXPo2LEjAODs2bNIS0tDly5dtF1MnfHwECc6+UmP+9cxY5SRUTS5KtfYMX3SReVCXl4eXnvtNdy5cwdHjhwpt7YOUK9ygS8nVnsZfGKnrhYtWqB///4YN24c1qxZA0CMSBo4cKBSp9XmzZtj0aJFGDx4MAAgJSUFsbGxiuHlMYWXdXBzc4Obm5uOP4V6nn9eJHY2NkWTFjNmTOT965ycAEdH/ZaF1W7arlyQJ3U3btzA0aNH4ezsrJFy83QntZfB97GrjC1btiAgIAAhISEICQlB69atsWnTJqVlYmJikJaWpnj+yy+/oG3btnjxxRcBAMOHD0fbtm2xevVqnZa9Mvr2Ffd9+ogrUjBmbHjgBKtpilcuREZGIjIyEuPGjVNZubBnzx4AQH5+PoYOHYoLFy5gy5YtKCgoQGJiIhITE5Gbm1vlshBxjV1tZjQ1dgDg5OSEzZs3l7sMESk9f/PNN/Hmm29qsVSaN3KkmI1fPpCCMWPj7w989RXX1rGaZcuWLfjggw8QEhICAHjppZfw7bffKi1TvHLh/v37+OWXXwAAbdq0UVru6NGj6NGjR5XKIZMBS5eKWjtO7GofiUpmOqzS0tPT4ejoiLS0tAr7RrCaib9j7eFjWzvw96w9fGyNX2W+Y6OqsdMXeW6sq4mKme7Jv1v+HaR5HD+1A8eQ9nAMGb/KxA8ndhqQkZEBADqdqJjpR0ZGBhy5fVCjOH5qF44hzeMYqj3UiR9uitUAmUyGBw8ewN7eXjFfkXxeobi4OK4a1wFtH28iQkZGBjw8PGDCV6TXKFXxA3AM6RrHUM3F5yD9M6T44Ro7DTAxMUHDhg1Vvufg4MBBpUPaPN5cy6Ad5cUPwDGkaxxDNQ+fgwyHIcQP/2xijDHGGDMSnNgxxhhjjBkJTuy0xNLSEnPnztXbNWVrGz7exoe/U93i421c+PvULUM63jx4gjHGGGPMSHCNHWOMMcaYkeDEjjHGGGPMSHBixxhjjDFmJDix05KVK1fCx8cHVlZWCAoKwsmTJ/VdJKMUHh4OSZKUbm5ubvouFqsmjh/d4PgxXhxDumGIMcSJnRZs374dYWFhmD17Ni5duoSuXbtiwIABiI2N1XfRjFKrVq2QkJCguF25ckXfRWLVwPGjWxw/xodjSLcMLYY4sdOCZcuWYezYsXj77bfRokULLF++HJ6enli1apW+i2aUzMzM4ObmprjVq1dP30Vi1cDxo1scP8aHY0i3DC2GOLHTsNzcXFy8eBEhISFKr4eEhCAiIkJPpTJuN27cgIeHB3x8fDB8+HDcvn1b30ViVcTxo3scP8aFY0j3DC2GOLHTsMePH6OgoACurq5Kr7u6uiIxMVFPpTJenTp1wsaNG3HgwAGsW7cOiYmJ6NKlC5KTk/VdNFYFHD+6xfFjfDiGdMsQY8hMb3s2cpIkKT0nolKvseobMGCA4nFAQACCg4PRpEkT/PDDD5gyZYoeS8aqg+NHNzh+jBfHkG4YYgxxjZ2Gubi4wNTUtNQvo6SkpFK/oJjm2draIiAgADdu3NB3UVgVcPzoF8dPzccxpF+GEEOc2GmYhYUFgoKCcOjQIaXXDx06hC5duuipVLVHTk4OoqOj4e7uru+isCrg+NEvjp+aj2NIvwwhhrgpVgumTJmC0NBQtG/fHsHBwVi7di1iY2MxYcIEfRfN6EybNg3/+c9/0KhRIyQlJWHBggVIT0/H6NGj9V00VkUcP7rD8WOcOIZ0xxBjiBM7LRg2bBiSk5Mxf/58JCQkwN/fH7///ju8vLz0XTSjc//+fYwYMQKPHz9GvXr10LlzZ0RGRvKxrsE4fnSH48c4cQzpjiHGkEREpLe9M8YYY4wxjeE+dowxxhhjRoITO8YYY4wxI8GJHWOMMcaYkeDEjjHGGGPMSHBixxhjjDFmJDixY4wxxhgzEpzYMcYYY4wZCU7sGGOMMcaMBCd2tUh4eDjatGmj8/0eO3YMkiRBkiQMGjRIrXXCw8MV6yxfvlyr5WNMXRxDjFUdx49ucGJnJOR/gGXd3nzzTUybNg1//vmn3soYExOD//3vf2otO23aNCQkJKBhw4baLRRjhTiGGKs6jh/DwdeKNRIJCQmKx9u3b8ecOXMQExOjeM3a2hp2dnaws7PTR/EAAPXr10edOnXUWlZeVlNTU+0WirFCHEOMVR3Hj+HgGjsj4ebmprg5OjpCkqRSr5WsBn/zzTcxaNAgLFy4EK6urqhTpw7mzZuH/Px8fPTRR3ByckLDhg3x/fffK+0rPj4ew4YNQ926deHs7IyXX34Zd+/erXSZd+7ciYCAAFhbW8PZ2Rl9+vRBZmZmNY8EY1XDMcRY1XH8GA5O7Gq5I0eO4MGDBzhx4gSWLVuG8PBwDBw4EHXr1sXZs2cxYcIETJgwAXFxcQCArKws9OzZE3Z2djhx4gROnToFOzs79O/fH7m5uWrvNyEhASNGjMBbb72F6OhoHDt2DEOGDAERaeujMqYVHEOMVR3HjxYQMzobNmwgR0fHUq/PnTuXAgMDFc9Hjx5NXl5eVFBQoHjNz8+Punbtqnien59Ptra29OOPPxIR0fr168nPz49kMplimZycHLK2tqYDBw6oLM/Ro0cJAKWmpipeu3jxIgGgu3fvlvtZvLy86Kuvvip3GcY0jWOIsarj+NEv7mNXy7Vq1QomJkUVt66urvD391c8NzU1hbOzM5KSkgAAFy9exM2bN2Fvb6+0nezsbNy6dUvt/QYGBqJ3794ICAhAv379EBISgqFDh6Ju3brV/ESM6RbHEGNVx/GjeZzY1XLm5uZKzyVJUvmaTCYDAMhkMgQFBWHLli2ltlWvXj2192tqaopDhw4hIiICBw8exDfffIPZs2fj7Nmz8PHxqcInYUw/OIYYqzqOH83jPnasUtq1a4cbN26gfv36aNq0qdLN0dGxUtuSJAnPPfcc5s2bh0uXLsHCwgJ79uzRUskZMwwcQ4xVHcdPxTixY5Xy+uuvw8XFBS+//DJOnjyJO3fu4Pjx45g8eTLu37+v9nbOnj2LhQsX4sKFC4iNjcXu3bvx6NEjtGjRQoulZ0z/OIYYqzqOn4pxUyyrFBsbG5w4cQIzZszAkCFDkJGRgQYNGqB3795wcHBQezsODg44ceIEli9fjvT0dHh5eWHp0qUYMGCAFkvPmP5xDDFWdRw/FZOIjGFsLzNkx44dQ8+ePZGamqr25JBy3t7eCAsLQ1hYmFbKxlhNwDHEWNXVtvjhplimMw0bNsSIESPUWnbhwoWws7NDbGyslkvFWM3BMcRY1dWW+OEaO6Z1z549Q3x8PABxmRY3N7cK10lJSUFKSgoAMdKpsp1iGTMmHEOMVV1tix9O7BhjjDHGjAQ3xTLGGGOMGQlO7BhjjDHGjAQndowxxhhjRoITO8YYY4wxI8GJHWOMMcaYkeDEjjHGGGPMSHBixxhjjDFmJDixY4wxxhgzEpzYMcYYY4wZif8HHOlXTtZmB7wAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -673,7 +676,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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ymKxMHfuXDZt2sR//vMfDhw4wLPPPotWq+3wMX7++WcOHjzImjVr+PTTT1m+fDl/+9vfmmzzwQcfoNPp2Lp1K6+88govvfQSixcvtj1/4403snHjRj777DP27NnDZZddxnnnnWeb7bR161Zuuukm7rjjDnbv3s3MmTP5+9//3qmfVeB6dFoN/7h4GClRwZw/rIenlyNwIoE6DbMHJwFw5yc7OVFR384eXafQlu8iBHB3QgxmNNbD0ymeOffDpyAwrEOb3nTTTTz33HOsXbuWmTNnAopldMkllxATE9PqfqWlpZjNZpKSkpo8npSURGFhYaeW+9NPP7Ft2zYOHjxI//5KyL93796dOkZgYCDvvfceoaGhDBkyhCeffJK//OUvPPXUU2g0ipZOS0vjpZdeQpIkBgwYwN69e3nppZe45ZZbOHbsGJ9++iknTpwgJUX5u91///18//33vP/++zz99NO8/PLLnHvuuTz44IMA9O/fn02bNvH99993aq0C1zOuVyybHjrb08sQuIC/XzSUrMJqDhfVcv172/jfbZOIcUFSttqgTiTrdi9E5MVHGDhwIJMmTeK9994D4NixY6xfv56bbrqpQ/ufHk6VZbnTIdbdu3eTmppqEy5dYcSIEYSGhtq+nzhxIrW1teTn59semzBhQpO1TZw4kSNHjmA2m9m5cyeyLNO/f3/Cw8NtX+vWrePYMWVmzsGDB5k4cWKT857+vUAgcC1RoQF8cNM4UqKCOVZSx00f/EqDwez084gGdd0Tl0ZeKioq+NOf/sTXX38NwPz583n11VdbLVk1Go08+uijrFy5kuzsbKKiopg9ezbPPvus7S7b6QSEKhEQTxAQ2v42DixcuJC77rqL119/nffff5+MjAzOPrvtu9b4+Hi0Wm2zKEtxcXGzaEx7hISEdGr7ztBRIWWxWNBqtezYsaOZXRUeruRPuDpBUCAQdIweUSF8cNM4fvfvzezKq+SuT3by1rWj0Wmdd99sm2sUJcRLd8KlkZerr76a3bt38/333/P999+ze/durr322la3r6+vZ+fOnTz22GPs3LmTZcuWcfjwYebPn++6RUqSYt144quTkY/LL78crVbLJ598wgcffMCNN97Y7od+YGAgo0ePZtWqVU0eX7VqFZMmTerU+YcPH86JEyc4fPhwp/Zz5LfffqOhwd64asuWLYSHh5Oa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\n", "text/plain": [ "
" ] @@ -702,14 +705,14 @@ "output_type": "stream", "text": [ "Summary statistics:\n", - "* Cost function calls: 4222\n", - "* Constraint calls: 4410\n", - "* Final cost: 522.06154910988\n" + "* Cost function calls: 3572\n", + "* Constraint calls: 3756\n", + "* Final cost: 531.7451775567271\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAHbCAYAAACtCWxXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADPyklEQVR4nOzdd3hU1dbA4d+kF1NoCQk1IL0TWpAqCFItqCj3A1FQERGRawG5KuD1cr02RAUUQayI0tFQghJAASF0SOglkEKoCUkgdX9/bDIQUkjCzJxkst7nOc8kJ+fMrElmZ9bss/faJqWUQgghhBBClGkORgcghBBCCCHunCR1QgghhBB2QJI6IYQQQgg7IEmdEEIIIYQdkKROCCGEEMIOSFInhBBCCGEHJKkTQgghhLADktQJIYQQQtgBSeqEEEIIIeyAJHVClCLz58/HZDJhMpkIDw/P83OlFHfffTcmk4lu3brl+pnJZGLMmDH53u+iRYvy3OfkyZPNj5XfdvLkScs9setOnjyJyWRi/vz55n2bN29m8uTJXL58Oc/xtWvXpn///haPw2ihoaFMnjzZavffrVu3PK+PorJ2bEII63EyOgAhRF5eXl7MnTs3zxvzhg0bOHbsGF5eXhZ7rNWrV+Pj45Nnf0BAgMUe4+b73LJlC3Xr1jXv27x5M1OmTGH48OH4+vpa/DFLo9DQUD7//HOrJU8zZ84s8bnWjk0IYT2S1AlRCg0ePJgffviBzz//HG9vb/P+uXPnEhISQlJSksUeKzg4mMqVK1vs/grj6upKhw4dbPJY9kIpxbVr13B3dy/yOY0bN7ZiREKI0kouvwpRCj3xxBMALFiwwLwvMTGRxYsX8/TTTxsVltmrr76Kj48PWVlZ5n0vvvgiJpOJ999/37zvwoULODg48OmnnwJ5L79OnjyZV199FYCgoKACLz2vXr2a1q1b4+7uTsOGDZk3b16R4kxLS2Pq1Kk0atQINzc3KlWqRPfu3dm8ebP5mGvXrjFx4kSCgoJwcXGhWrVqvPDCC3kuB+dcCr5dLKmpqbzyyisEBQXh5uZGxYoVadOmjflvOXz4cD7//HOAfC9351xGnz17No0aNcLV1ZVvvvkGgClTptC+fXsqVqyIt7c3rVu3Zu7cuSilcsVw6+XXnN/7Bx98wEcffURQUBB33XUXISEhbN261Xzc7WL75ZdfaN++PT4+Pnh4eFCnTp1S8XoUQmjSUydEKeTt7c0jjzzCvHnzeO655wCd4Dk4ODB48GCmT5+e73lKKTIzM/Psz87OLvCxsrKy8pxjMplwdHQs8JyePXvywQcfsG3bNkJCQgBYt24d7u7uhIWFmRO133//HaUUPXv2zPd+Ro4cycWLF/n0009ZsmSJ+ZLvzT1Ne/bs4Z///CcTJkzA39+fr776ihEjRnD33XfTpUuXAmPMzMykT58+bNq0iXHjxnHvvfeSmZnJ1q1biY6OpmPHjiilePDBB/n999+ZOHEinTt3Zu/evbz99tts2bKFLVu24OrqWqxYxo8fz3fffce///1vWrVqRUpKCvv37+fChQsAvPnmm6SkpLBo0SK2bNlivu+bL3cvW7aMTZs28dZbb1G1alX8/PwAnZw999xz1KxZE4CtW7fy4osvEhMTw1tvvVXg7yLH559/TsOGDc2vnzfffJO+ffty4sQJfHx8Co1ty5YtDB48mMGDBzN58mTc3Nw4deoUf/zxx20fVwhhI0oIUWp8/fXXClDbt29X69evV4Dav3+/Ukqptm3bquHDhyullGrSpInq2rVrrnOB227r1683H//2228XeFzdunULjTMlJUW5uLioqVOnKqWUOnPmjALU66+/rtzd3dW1a9eUUko988wzKjAw0HzeiRMnFKC+/vpr8773339fAerEiRN5HqdWrVrKzc1NnTp1yrzv6tWrqmLFiuq5554rNMZvv/1WAWrOnDkFHrN69WoFqP/973+59i9cuFAB6ssvvyx2LE2bNlUPPvhgobG98MILqqB/v4Dy8fFRFy9eLPQ+srKyVEZGhpo6daqqVKmSys7ONv+sa9euuV4fOb/3Zs2aqczMTPP+bdu2KUAtWLDgtrF98MEHClCXL18uNC4hhHHk8qsQpVTXrl2pW7cu8+bNY9++fWzfvv22l7oee+wxtm/fnmd77733Cjxn3bp1eY5ftmxZoY/j4eFBSEgI69atAyAsLAxfX19effVV0tPT+fPPP833XVAvXVG1bNnS3DMF4ObmRv369Tl16lSh561atQo3N7dCf2c5vUzDhw/Ptf/RRx/F09OT33//vdixtGvXjlWrVjFhwgTCw8O5evXqbZ/jre69914qVKiQb7w9e/bEx8cHR0dHnJ2deeutt7hw4QIJCQm3vd9+/frl6oFt3rw5wG1/lwBt27YF9Gvs559/JiYmpqhPRwhhI3L5VYhSymQy8dRTTzFjxgyuXbtG/fr16dy5c6HnVKlShTZt2uTZX1h5khYtWpRookTPnj155513SElJYd26ddx7771UqlSJ4OBg1q1bR506dThx4gRTpkwp9n3frFKlSnn2ubq63jZZOnfuHIGBgTg4FPzZ9cKFCzg5OVGlSpVc+00mE1WrVjVfMi1OLDNmzKB69eosXLiQ9957Dzc3N3r37s37779PvXr1Co05R34zj7dt20avXr3o1q0bc+bMoXr16ri4uLBs2TLefffdIiWPt8afc2m5KOd26dKFZcuWMWPGDIYNG0ZaWhpNmjRh0qRJ5jGgQghjSU+dEKXY8OHDOX/+PLNnz+app54yOpxcevToQXp6Ohs3buT333/nvvvuM+8PCwsjLCzM/L0RqlSpQmxsbKHjCStVqkRmZibnzp3LtV8pRXx8fImSXU9PT6ZMmcLBgweJj49n1qxZbN26lQEDBhT5PkwmU559P/30E87Ozvz666889thjdOzYMd8E3poeeOABfv/9dxITEwkPD6d69eoMGTIk1/g7IYRxJKkTohSrVq0ar776KgMGDODJJ580Opxc2rVrh7e3N9OnTyc+Pt6c1PXs2ZNdu3bx888/07hxYwIDAwu9n+L0FhVHnz59uHbtWq5Cx7fKSTi///77XPsXL15MSkrKHSek/v7+DB8+nCeeeIJDhw6RmpoKlOw5m0wmnJyccl0+vXr1Kt99990dxXirosTm6upK165dzZf1d+3aZdEYhBAlI5dfhSjl/vvf/1r1/nfs2JFv8eHGjRvnqpF3K0dHR7p27crKlSsJCgoyFxS+5557cHV15ffff2fs2LG3ffxmzZoB8Mknn/Dkk0/i7OxMgwYN7rjA8hNPPMHXX3/NqFGjOHToEN27dyc7O5u///6bRo0a8fjjj3PffffRu3dvXn/9dZKSkrjnnnvMs19btWrF0KFDi/247du3p3///jRv3pwKFSoQFRXFd999R0hICB4eHrme83vvvUefPn1wdHSkefPmuLi4FHi//fr146OPPmLIkCE8++yzXLhwgQ8++CDX7FxLKCi2f//735w5c4YePXpQvXp1Ll++zCeffIKzszNdu3a1aAxCiJKRpE6Icu7+++/Pd39YWNhtJzn07NmTlStX5jrO1dWVTp06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\n", + "image/png": "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ZcuWgH6P/fTTT1y4cCGnT0cIUUCk+VWIQspkMvH000/z2Wefcfv2berWrUuHDh2yPadixYq0aNHinv3ZTU/SpEmTPA2U6NatG++99x63bt3ir7/+4sEHH6R8+fIEBgby119/UbNmTUJDQ5kyZUquHzu98uXL37PP1dX1vsnSpUuX8PX1xcEh6++uV65cwcnJiYoVK2bYbzKZ8Pb2tjSZ5iaWzz77jCpVqrB06VI+/PBD3Nzc6NmzJx999BF16tTJNuZUmY083r17Nz169KBz587MnTuXKlWq4OLiwsqVK5k2bVqOkse7409tWs7JuR07dmTlypV89tlnDBs2jISEBBo0aMDbb79t6QMqhDCW1NQJUYgNHz6cy5cv8+WXX/L0008bHU4GXbt2JTExkc2bN/P333/TvXt3y/7169ezfv16y89GqFixIhEREdn2JyxfvjzJyclcunQpw36lFFFRUXlKdkuWLMmUKVM4duwYUVFRzJkzh507d9K/f/8cP4bJZLpn348//oizszN//PEHjz/+OO3atcs0gbelf/3rX/z999/ExMQQFBRElSpVGDJkSIb+d0II40hSJ0QhVrlyZV5//XX69+/PU089ZXQ4GbRq1QoPDw9mzpxJVFSUJanr1q0bBw4c4KeffqJ+/fr4+vpm+zi5qS3Kjd69e3P79u0MEx3fLTXh/O677zLsX758Obdu3cp3QlqpUiWGDx/OE088wfHjx4mLiwPy9pxNJhNOTk4Zmk/j4+NZvHhxvmK8W05ic3V1pVOnTpZm/QMHDlg1BiFE3kjzqxCF3H/+8x+bPv6+ffsynXy4fv36GebIu5ujoyOdOnXi999/x8/PzzKhcPv27XF1deXvv/9mzJgx971+o0aNAJg1axZPPfUUzs7O1KtXL98TLD/xxBN88803jBo1iuPHj9OlSxfMZjO7du0iICCAwYMH0717d3r27Mmbb75JbGws7du3t4x+bdasGUOHDs31dVu3bk2/fv1o3LgxZcuWJSQkhMWLF9O2bVvc3d0zPOcPP/yQ3r174+joSOPGjXFxccnycfv27csnn3zCkCFDeO6557hy5QozZszIMDrXGrKK7f333+f8+fN07dqVKlWqcP36dWbNmoWzszOdOnWyagxCiLyRpE6IYq5Xr16Z7l+/fv19Bzl069aN33//PcNxrq6uPPDAAzk6H/Sc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je5exWP91yzlpq+ArY7NQlhYGH379mXChAkMHTqU+vXr07JlS/bt20dgYKBlreD0ivvM40Zo1w6aNNErGX3zDbz6qtERFRKFuGzB/cuXKCTCwvTSluXL61FJqSpV0jOB374N338PL71kWIgFzk7K1pUrVxg2bBjz5s2zynWzY5fNr6latdK3u1/7Cb77zthgRKauXr1K7969GTBgAG+99RYAgYGB9O/fn7fffhuAypUrZ6iZO3/+PD6yWkiBS78e7Jw5sh5sUZCT8lVczJ49Gz8/P9zc3AgMDGTLli05Om/btm04OTlZmtFsJv3I1/RMprTpTb7+WlaYKCRyWrYSEhJ4+OGHmThxIu3atbN5XHZbUwc6qVuyBHbvkVqdwqpcuXKEZDJc/9dff7Xcb9WqFUeOHOHChQt4eHiwatUq3nnnnYIMU9wxZAi8/rquAV+7Fnr3NjoikZ2clK/iYOnSpYwdO5bZs2fTvn17vvrqK3r37k1wcDDVqlXL8ryYmBiGDRtG165duXjxom2DzCqpAz3k/I034PBh2LUrrX+RMExOypa6szjDgw8+yNChQwskrmJRU7dr150vN9kNeRaFlpOTEx9//DFdunShWbNmvP7665QvX97osIqlkiXh6af1/dmzjY1FWE/Pnj0ZOHAgq1atokqVKuyxsz7In3zyCSNGjGDkyJEEBAQwc+ZMqlatypw5c7I97/nnn2fIkCG0bdvW9kFml9SVLQuPP67vz51r+1iEVWzbto2lS5eycuVKmjZtStOmTTl8+LBNr2nXSV2zZrov5cWLcN6nJfTsaXRIIo8GDBjAiRMnOHXqFM+lNkXYmc2bN9O/f398fX0xmUysXLnyvuds2rSJwMBA3NzcqFmzJl8WwFpezz6rb9ety74fsyg61q5dy6VLl4iLi+P8+fO0bNnS6JCsJjExkX379tEj/eADoEePHmzfvj3L87755htOnz7Nu+++a+sQteySOkhrgv3xR4iPL5iYRL488MADmM1mDh48aNkaNWpk02vadVJXooSekBtg98VqsH8/JCcbG5QQWbh16xZNmjTh888/z9HxoaGh9OnThw4dOnDgwAHeeustxowZw/Lly20aZ0AA1KgBiYlw1zLPQhQ6ly9fznQal0qVKhEVFZXpOSdPnmTChAl8//33ODnlrJdSQkICsbGxGbZcSR29mVVS166d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\n", "text/plain": [ "
" ] @@ -719,7 +722,7 @@ }, { "data": { - "image/png": "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15S3ZcuWUmOpqFOnTnH27FnGjh2Lk5NTscdkZGSwf/9+RowYQY0aNfT7bW1tGT16NJcuXeLkyZOFzhk2bFih71u3bg2gbwJt06YNDg4OPP/883zzzTecO3euXPEX1zcxPT2dN998k/vuuw87Ozvs7OyoUaMGGRkZHD9+/J7X1Gg0DB06tEj8dzfflqRjx44sX76c999/n3379pGTk1O2JyOEMClJ6oSoRIKDg2nfvn2hLSQkpMhxdevWJTIykpo1a9K/f3/27t1b4jW9vb2LXPNezXNdunTBxcWFzZs3c+bMGc6fP69P6vbv3096ejqbN2+mYcOGBAUF6c/75Zdf8PHxoVu3bvp9V69epU6dOkWae318fLCzszN5k11ycjIA9erVK/GY69evoyiKvim3IH9/f4AicdauXbvQ946OjgDcunULgEaNGrF582Z8fHyYOHEijRo1olGjRsybN8+g+IuL6YknnuCLL75g3LhxbNy4kQMHDnDw4EG8vb319y+Ni4tLkQTX0dFRPxXOvaxatYqnnnqKxYsXExoaSq1atRgzZgyJiYlle1JCCJOQpE6IKiooKIjIyEhq1apF//799bVqxuDg4EC3bt3YvHkzERER1KlTh1atWtGjRw9A7YC/ZcuWQrV0oPane+ihhwr1AaxduzZXrlwpNJgCICkpidzcXH2CqUsyCg6egKLJlKF0/cAuXbpU4jE1a9bExsaGhISEIj/TDX4oz9x+3bt35/fffyc1NZV9+/YRGhrK5MmT+fHHH8t8jbuT4dTUVP744w/eeOMNpk2bRlhYGB06dKBVq1Zcu3bN4BjLw8vLi7lz53L+/HkuXLjAnDlzWLNmjb72VQhhGZLUCVGFNWjQgMjISLy8vBgwYAC7d+822rX79OlDVFQUq1ev1idvrq6udO7cmf/9739cvny5UFIXFxfHwYMHizQXhoWFkZ6eztq1awvt//bbb/U/B3XqFScnJ44ePVrouHXr1hWJ7e5asdI0adKERo0asXTp0iIJo46rqyudOnVizZo1ha6p1WpZsWIF9erVo0mTJve8V0lsbW3p1KkTX375JQDR0dEGPw8djUaDoij6c3UWL15MXl5euWO8W1ljCwwM5KWXXqJv37765yWEsAwZ/SpEJXLs2LEiI1VBbcq7e1SkTv369YmMjKR3794MGDCA8PBwunfvXuFYwsLC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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAHbCAYAAACtCWxXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADYMUlEQVR4nOzdd1xV9f/A8ddlDxkqQ1BEXOAeuHOm4vZbWWmWWr+szKyUyrTlaPBtfbOllrNpVlqZuShFLffOFEeKIIKAA0SU+fn9ceQqsi5wB1zez8fjPIDD55zzvtz74b7v53yGTimlEEIIIYQQVZqNpQMQQgghhBAVJ0mdEEIIIYQVkKROCCGEEMIKSFInhBBCCGEFJKkTQgghhLACktQJIYQQQlgBSeqEEEIIIayAJHVCCCGEEFZAkjohhBBCCCsgSZ0QlcDSpUvR6XTFblFRUfqyDRo0YOjQoYXOsXDhQmxtbRk+fDjXr18HKPZ8Xl5eJn08hw4dQqfTsX//fpOcf9u2bcycOZPLly+b5PzmkpGRwcyZMws8v8YUFRVV6PVjKFPHJoQwPjtLByCEuGnJkiWEhIQU2t+8efMSj3v33XeZOnUqY8aMYfHixdjZ3aza9957L88991yB8vb29sYJuBgrVqwgKCiIdu3ameT827ZtY9asWTz88MN4enqa5BrmkJGRwaxZswDo3bu30c/fvn17tm/fXurrpyimjk0IYXyS1AlRibRs2ZIOHTqU6ZiXXnqJiIgInn76aT788EN0Ol2B3/v6+tKlSxdjhlmqH3/8kREjRpj1mtVBRkYGLi4uBpd3d3c3+3MvhLAcuf0qRBWVl5fHk08+SUREBK+99hofffRRoYSuPNLS0rCzs+Pdd9/V70tJScHGxgYPDw9ycnL0+5955hm8vb1RSun3RUdHc+TIkQJJ3cWLF5k4cSJ169bFwcGBhg0b8vLLL5OZmakvExMTg06nY+nSpYVi0ul0zJw5E4CZM2fywgsvABAUFFTkLeqi7Ny5k2HDhlG7dm2cnJxo1KgRkydPLlDmzz//pG/fvri5ueHi4kK3bt347bffCpTJv1W+adMmnnzySby8vKhduzb33HMP586dK1B248aN9O7dm9q1a+Ps7Ez9+vUZMWIEGRkZxMTE4O3tDcCsWbP0j+Phhx/WP06dTse+ffu49957qVmzJo0aNQJgz549jBo1igYNGuDs7EyDBg144IEHOHPmTIHrF3X79eGHH6ZGjRqcPHmSwYMHU6NGDQICAnjuuef0z0dpsSUnJ/P4448TEBCAo6Mj3t7e3HHHHfz+++8lPgdCCNOSljohKpHc3NwCSRNoCY2trW2BfdnZ2Tz44IMsX76cDz/8kGeeeabYcyqlCp3T1ta22ATQ3d2djh078vvvv+uTpz/++ANHR0euXLnCrl276NatGwC///47d955Z4FzrVixgrp169K5c2cArl+/Tp8+ffj333+ZNWsWrVu3ZuvWrURERHDgwIFCSVNpxo8fz8WLF/n4449ZuXIlfn5+QMm3qNevX8+wYcNo1qwZ//vf/6hfvz4xMTFs2LBBX2bz5s3079+f1q1bs2jRIhwdHZk7dy7Dhg1j2bJljBw5slAcQ4YM4dtvvyUuLo4XXniBhx56iI0bNwJaYjRkyBB69OjB4sWL8fT0JD4+nnXr1pGVlYWfnx/r1q1j4MCBPProo4wfPx5An0zlu+eeexg1ahQTJkzg6tWr+nMHBwczatQoatWqRUJCAvPmzaNjx44cOXKk1D6T2dnZDB8+nEcffZTnnnuOLVu28Prrr+Ph4cFrr71Wamxjxoxh3759vPnmmzRt2pTLly+zb98+Lly4UOrzJ4QwISWEsLglS5YooMjN1ta2QNnAwED971566aUSz1vcORcsWFDica+88opydnZW169fV0opNX78eDVw4EDVunVrNWvWLKWUUvHx8QpQn3/+eYFj27Ztq55++mn9z/Pnz1eA+v777wuUe/vttxWgNmzYoJRS6vTp0wpQS5YsKfJxzJgxQ//zu+++qwB1+vTpEh9HvkaNGqlGjRqpa9euFVumS5cuysfHR125ckW/LycnR7Vs2VLVq1dP5eXlKaVuPlcTJ04scPw777yjAJWQkKCUUurHH39UgDpw4ECx10xOTi702PLNmDFDAeq1114r9fHl5OSo9PR05erqqj788EP9/k2bNilAbdq0Sb9v3LhxRT4fgwcPVsHBwQbFVqNGDTV58uRS4xJCmJfcfhWiEvnyyy/ZvXt3gW3nzp2FyrVt25b69evzySefsGPHjhLPef/99xc651133VXiMX379uXatWts27YN0Frk+vfvT79+/YiMjNTvA+jXr5/+uFOnTnHgwIECt143btyIq6sr9957b4Fr5N/K++OP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\n", "text/plain": [ "
" ] @@ -764,7 +767,7 @@ "outputs": [ { "data": { - "image/png": "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yxtj/j/6lsRni6ZYAH9/bWLn6lowsTNnsIkt/fbbb4XetmzZYvMYHLH8mFov1paJXVGf8bwXL8boahljYmL00wgZO07+vwm6xC4mJsZoM6il8jbD5h8EUpjCykregRPdu2vfmxs3buj7EQsh7MvsxO6///5j7NixJu9/5pln+O+//6wSlCnLly9n/PjxTJs2jUOHDtGpUyf69u1r8qr43Llz3H///XTq1IlDhw4xdepUXnzxRVatWqXfZ8+ePQwePJgRI0Zw+PBhRowYwaOPPlrkWnGWKF6NXZxBjV1qaippaWmA4ZeBOf3GXFxuN3maao4tTo2dqS89Y/GlpKToO7rfvKld/gus2xQLkJWlTeySkspejV3//v0ZMGAA/fv3N3qbOHGiTc/vqOVHlyTpJinWKY0aO3MuXowJDg7G09MTpZR+FZS8TP1NKF++vL4W/vTp08ULPg9L+9fpFFZWzp7VfV7C6NzZS7+vNMcKUTaYndhVrlyZ3bt3m7x/z549Nh/FN3fuXEaNGsXo0aNp2LAh8+bNIywsjAULFhjd/8svv6R69erMmzePhg0bMnr0aJ566imDhYXnzZtHz549mTJlCg0aNGDKlCl0797dqpMKFq/GLtboqhPe3t76/i9gfr+xovrZFafGzlRTbN5j+Pv76+fF053j3DndfVBIa1axxMdrE7uoqMbkryjJmwTrFoEuTZUrV2bVqlXk5uYavR08eNCm53fU8qObpBgwSJJsseqETlGf8aLKsouLi8maRii8vFmzn50usTN3RKxOYTV2hw9rEzg/v+pUq1b0QBEhROkyO7F75ZVXGDt2LM8//zy//vore/fuZd++ffz66688//zzPPvss0yaNMlmgWZmZnLgwAF69eplsL1Xr14mE849e/YU2L93797s379f3zxiap/CktiMjAySk5MNboWxJGny979dY1fYcmI6lk55YqwSIDc316IYLamxM7b0Wd5mWAtah4qUkJDA1avac2RlNeToUcP7dSsA5OTk2KXZqHXr1oUmb5asTGEpRy4/ukmKwbCfnS0HT5S0xg5M97O7efOm/jkbSxCtldgdP35cv+5ly5YtLXpsYX9XzpzRJqoNGlRHoyl6oIgQZdnIkSPp37+/vcOwKrMTu3HjxrF06VL279/Pww8/TMeOHenQoQMPP/ww+/fvZ+nSpYU21ZbU1atX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ahhOaqyTk5PDyy+/zMyZM4vsfzdz5kwAnn76aapUqWJxzACurq5GlxUTZV/Tpk3Zs2cPPa0xZ44ZLC2HxugSnqSkJAB8fHyKXE6sLFiyBDIztc83JUU7IriwxK5y5cq4urqSlZVVoos3IcoqpZRDtPJIYmdDxVtOTPu/v7+/wdQO1qyx0yV2Z89qk5rg4OBiTcGRPyZjMW7cqP2/dWsICzNeYzdv3jzmzp3L9OnT+fnnn02eb9u2bWzfvh0PDw8mTZpkcbzGYpUvIFEYcz7jRQkODjZovizuwInSlJurGy1uGGthiZ2bm5u+/500x4r8unbtygsvvMD48eMpX748ISEhLFy4kLS0NJ588kn8/PyoU6cOf2r77gAQERHB/fffj6+vLyEhIYwYMcKglWX9+vXce++9BAYGUrFiRR588EHOnj2rvz8zM5Pnn3+eypUr4+XlRc2aNZk9ezYA58+fR6PREB4ert//+vXraDQatm7dCtxuPt2wYQNt2rTB09OTHTt2oJTi/fffp3bt2nh7e9O8eXP98pY669ato169enh7e9OtWzfO513+yMYksbOh4iwnpssBNRqNQUJYVHKYf4mvwtSqpR1UkJ5eso7c5tRm6Mponz7GYzxx4gTTdLMEA88//zwxMTFGzzdjxgwARo8eXeKpLix5vcSdyxo1di4uLgafV0doht28GU6dAh8fw1hNTU6c/35J7EqRUpCWVvq3YsxusGTJEoKCgvjnn3944YUXePbZZ3nkkUfo2LEjBw8epHfv3owYMYIbN24QExNDly5daNGiBfv372f9+vXExcUZLKGXlpbGxIkT+ffff/nrr79wcXFhwIAB+q4An376Kb/99hsrVqzg5MmT/PDDD9TUTQthgUmTJjF79myOHz9Os2bNeP311/nuu+9YsGABx44dY8KECQwfPpxt27YB2oFSAwcO5P777yc8PJzRo0czefJki89bbEqUWFJSkgJUUlKSfltqaqoCCmw35fPPlQKlBg26va1du3b6Y7z99tuFPv7YsWMKUOXLlzcr5lq1lILFClC9evUy6zH5RUVF6eMD1IkTJwzuz85WqkIF7fPauVOpGTNmKECNGTNGKaVUVlaWatu2rQJU7969VevWrRWgHnzwQZWbm2twrO3btytAubu7qwsXLhQr3rxGjBihAPXee++Ztb+x91hYR1l+bdPT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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADVu0lEQVR4nOzdd3hT1f/A8Xe696CFDih776UMZYmgqMgQQUVw4EBQGSqCuBAVJyIqKIiAX3/KVEFFlkwFlFVWkQ0t0FJaShfdOb8/QmJH2iZpRlM+r+e5T9vk3nM/Gaf33DM1SimFEEIIIYRwei6ODkAIIYQQQliHFOyEEEIIIaoIKdgJIYQQQlQRUrATQgghhKgipGAnhBBCCFFFSMFOCCGEEKKKkIKdEEIIIUQVIQU7IYQQQogqws3RAVQFWq2Wixcv4u/vj0ajcXQ4wgaUUqSnpxMZGYmLi9wPWZPknxuD5CEh7EMKdlZw8eJFoqKiHB2GsIO4uDhq1arl6DCqFMk/NxbJQ0LYlhTsrMDf3x/Q/cMKCAhwcDTCFtLS0oiKijJ81sJ6JP/cGCQPCWEfUrCzAn3zUUBAgOHC9NJLL7F8+XJef/11Hn/8cUeGJ6xImgqtz1j+cYSEhARGjRpF27ZtmT59ujQX2ojkISFsSwp2NpKWlsa5c+eIi4tzdChCiHLk5+fzwAMPsHXrVtasWcP58+dZsGABbm7yL1II4VzkltRGwsLCALh06ZKDIxGipBkzZqDRaBg/fjwAeXl5vPzyy7Rq1QpfX18iIyMZOXIkFy9eLDOdRYsWodFoSmzZ2dl2eBXWM2XKFLZu3YqPjw+urq58++23DB8+nLy8PEeHJoQQZpGCnY2Eh4cDuuYdISqT3bt3M2/ePFq3bm147Nq1a+zbt4/XXnuNffv28eOPP3L8+HHuvffectMLCAggPj6+yObl5WXLl2BVK1eu5KOPPgJg8eLFLF++HHd3d5YtW8b9999PTk6OgyMUQgjTSTuDjUiNnaiMMjIyGD58OPPnz+ftt982PB4YGMiGDRuK7PvZZ59x8803ExsbS+3atUtNU6PRGG5knM2xY8d47LHHAHjhhRcYMmQIAD///DODBw9m1apVDBw4kB9//BFvb29HhiqEECaRGjsbkYKdqIzGjh3L3Xffze23317uvqmpqWg0GoKCgsrcLyMjgzp16lCrVi3uuece9u/fX+b+OTk5pKWlFdkcISMjg8GDB5Oenk737t157733DM/ddddd/Prrr3h7e7N27VruueceMjMzHRKnEEKYQwp2NiJNsaKyWbJkCfv27WPGjBnl7pudnc3kyZN56KGHyhyp2rRpUxYtWsTq1av54Ycf8PLy4pZbbuHEiROlHjNjxgwCAwMNmyPmsFNK8eSTTxITE0NERARLly4tMVDi9ttvZ926dfj5+bFp0yaGDBlCQUGB3WMVQghz3PAFuzfffLNEx29rNCvpa+wyMzPJyMiocHpCVERcXBzjxo3ju+++K7f/W15eHg888ABarZY5c+aUuW/nzp15+OGHadOmDd26dWPZsmU0btyYzz77rNRjpkyZQmpqqmFzxMjxzz77jCVLluDm5sayZctKzfPdunVjw4YNhpq7qVOn2jlSIYQwzw1fsANo0aJFkY7fhw4dqnCafn5++Pj4ANIcKxxv7969JCYm0qFDB9zc3HBzc2Pr1q3Mnj0bNzc3Q01UXl4eQ4cO5cyZM2zYsMHseeVcXFy46aabyqyx8/T0NMxZ54i56/79919efPFFAD766CNuvfXWMvfv3Lkz33zzDQDvv/8+P/zwg81jFEIIS0nBDnBzcyM8PNywVa9evcJpajQa6WcnKo3evXtz6NAhoqOjDVvHjh0ZPnw40dHRuLq6Ggp1J06cYOPGjYSEhJh9HqUU0dHRRERE2OBVVJxSirFjx5KXl8ddd93F888/b9JxDzzwAC+//DIAo0aNYt++fbYMUwghLCajYoETJ04QGRmJp6cnnTp14t1336V+/fql7p+Tk1NkCoTSOn+HhYVx5swZKdgJh/P396dly5ZFHvP19SUkJISWLVuSn5/PkCFD2LdvH7/++isFBQWG/qHVqlXDw8MDgJEjR1KzZk1DP71p06bRuXNnGjVqRFpaGrNnzyY6OpovvvjCvi/QREuWLGHTpk14eXnx+eefm7UKwjvvvMPBgwf5/fffGThwIHv27KFGjRo2jFYIIcx3w9fYderUiW+//ZZ169Yxf/58EhIS6Nq1K8nJyaUeY2rnbxlAIZzF+fPnWb16NefPn6dt27ZEREQYth07dhj2i42NJT4+3vD31atXeeqpp2jWrBl9+/blwoULbNu2jZtvvtkRL6NMqampTJw4EYCpU6dSr149s453dXXl+++/p3HjxsTFxXH//ffLBMZCiEpHo5RSjg6iMsnMzKRBgwZMmjTJcBEozliNXVRUFKmpqUX6C40ePZqvvvqKN954gzfffNPWoQsbSktLIzAwsMRnLCrOXu/t+PHj+fTTT2nUqBGHDh3C09PTonT+/fdfOnXqRFpaGmPGjKm0tZOVjeQhIezjhq+xK87X15dWrVpZpfO3vo+d1NgJ4VjR0dGGkbqff/65xYU60E3x8n//939oNBrmzJnD9OnTkftjIURlIQW7YnJycjh69KhVOn/rm2Klj50QjqPVahkzZgxarZb777+fvn37VjjNe+65xzCh8euvv87o0aPJz8+vcLpCCFFRN3zB7sUXX2Tr1q2cOXOGv//+myFDhpCWlsYjjzxS4bRlVKwQjrdo0SJ27tyJn58fn3zyidXSnTRpkmEAxrx58xg0aJCsTiGEcLgbvmB3/vx5HnzwQZo0acLgwYPx8PBg165d1KlTp8Jpy+AJIRwrOTmZSZMmAbrJyGvWrGnV9MeOHcuPP/6Il5cXv/76K7fddhuJiYlWPYcQQpjjhp/uZMmSJTZLu3CNnVLKrKkVhBAVk5yczKhRo0hOTqZly5Ymz1lnroEDB/LHH3/Qv39//vnnH7p27cratWtp2LChTc4nhBBlueFr7GxJX7C7du2aLCsmhJ3k5+czZ84cGjVqxKpVq3BxcWHOnDm4u7vb7Jxdu3Zlx44d1KtXj1OnTtGlSxe2b99us/MJIURppGBnQ35+fvj6+gLSz04Ie9i2bRsdO3Zk7NixpKSk0KpVKzZv3ky3bt1sfu4mTZqwY8cOOnToQFJSEr1792b+/Pk2P68QQhQmBTsbkylPhLC95ORkHnroIXr06MGBAwcIDg7m888/Z9++fXTv3t1ucYSHh7N161bD5MVPPfUUzz77rExkLISwGynY2ZhMeSKE7b300kv88MMPaDQann76aY4fP87YsWNxc7N/N2JfX1+WLl3K22+/DcAXX3xB3759SUpKsnssQogbj9MNnqhWrZpZ+2s0Gvbt22eVUa6WkClPhCWc7XvuaH/88QcAy5cv57777nNwNLrPY+rUqbRq1Yrhw4ezZcsWbrrpJlatWkXr1q0dHZ4QogpzuoLd1atXmTVrFoGBgeXuq5RizJgxFBQU2CEy46QpVljC2b7njpSQkEBsbCwajcYqkw9b07333suuXbsYMGCAYVDFggULeOCBBxwdmhCiqlJORqPRqEuXLpm8v5+fnzp16pQNI1IqNTVVASo1NbXEc2+++aYC1FNPPWXTGIRtlfUZ24Ktv+fvvvuuAtS4ceMMj2m1WvXGG2+oiIgI5eXlpXr06KEOHz5cblorVqxQzZo1Ux4eHqpZs2bqxx9/NDkOpSr+3v78888KUC1btrToeHtITk5Wffr0UYAC1Pjx41Vubq6jw7Ire+chIW5UTtfHTqvVUqNGDZP3T09Pp379+jaMqGxSYycsYcvv+e7du5k3b16JJsEPPviAmTNn8vnnn7N7927Cw8Pp06cP6enppaa1c+dOhg0bxogRIzhw4AAjRoxg6NCh/P333ybHXlH6c3Xq1Mlu5zRXtWrV+P3335kyZQoAs2bN4vbbb5f/C0IIq3O6gp2zkcETojLJyMhg+PDhzJ8/n+DgYMPjSilmzZrF1KlTGTx4MC1btmTx4sVcu3aN77//vtT0Zs2aRZ8+fZgyZQpNmzZlypQp9O7dm1mzZtnh1ejs2rULgM6dO9vtnJZwdXXl3Xff5ccff8Tf359t27bRoUMHduzY4ejQhBBViNMW7JRSbNiwgWnTpvHMM88wZswYpk2bxsaNG1FKOTo8Axk8IWwlJSWFb7/91qxjxo4dy913383tt99e5PEzZ86QkJBQpI+ap6cnPXr0KLPgsXPnzhL92u644w67FVYKCgrYvXs3ULlr7AobNGgQu3fvpnnz5ly8eJEePXrw0UcfyZQoQgircMqC3YULF2jfvj39+vXjp59+4vTp05w8eZKffvqJO++8k44dO3LhwgVHhwkUbYqtTAVO4fxiY2N57LHHTN5/yZIl7Nu3jxkzZpR4Tt8kqP++6oWFhZXZXJiQkGD2MTk5OaSlpRXZLHX06FEyMjLw8/OjefPmFqdjb02aNOHvv/9m6NCh5Ofn89JLL9GuXTs2bdrk6NCEEE7OKQt2Y8aMoVq1asTFxREdHc26detYv3490dHRxMXFERQUxNixYx0dJvDfhTI7O7vMvkpCFFe88FN8M+f7FBcXx7hx4/juu+/w8vIqdb/i6xkrE9Y4NveYGTNmEBgYaNiioqJMeAXG6fvXdezYEVdXV4vTcQQ/Pz+WLFnC/PnzCQkJ4ciRI/Tu3ZshQ4Zw7tw5R4cnhHBSTlmw++OPP5g5cyYRERElnouIiOCjjz5i48aNDoisJF9fX/z8/AAZQCHMExQURHBwcKmbOSsq7N27l8TERDp06ICbmxtubm5s3bqV2bNn4+bmVuogn8TExBI1coWFh4ebfcyUKVNITU01bHFxcSa/juL0/eucpRm2OI1GwxNPPMGJEyd47rnncHV1ZeXKlTRt2pRp06ZVqDZTCHFjcsqCnbe3N1euXCn1+ZSUFLy9ve0YUdlkAIWwhL+/PzNmzGDTpk1Gt3nz5pmcVu/evTl06BDR0dGGrWPHjgwfPpzo6Gjq169PeHg4GzZsMByTm5vL1q1b6dq1a6npdunSpcgxAOvXry/zGE9PTwICAopsltLX2FX2gRPlCQ4OZvbs2ezfv5+ePXuSnZ3Nm2++SUhICLfddhsff/wx//77r3TnEEKUy+kmKAZ44IEHeOSRR5g5cyZ9+vQxTOKamprKhg0beOGFF3jooYccHOV/wsLCOHnypBTshFnat28PQI8ePYw+HxQUZPKF3t/fn5YtWxZ5zNfXl5CQEMPj48eP591336VRo0Y0atSId999Fx8fnyJ5aeTIkdSsWdPQT2/cuHF0796d999/nwEDBrBq1So2btzIn3/+afbrNVdGRgZHjhwBnLfGrrhWrVqxadMmVq5cyeuvv87Ro0fZvHkzmzdv5sUXX6R+/frcfffd9OnTh+7du5s0gbUQ4sbilAW7jz/+mPz8fIYPH05+fj4eHh6ArobBzc2NUaNG8eGHHzo4yv/IXHbCEg899BBZWVmlPh8eHs4bb7xhtfNNmjSJrKwsxowZQ0pKCp06dWL9+vX4+/sb9omNjcXF5b+K/q5du7JkyRJeffVVXnvtNRo0aMDSpUvtUtDas2cPWq2WqKgoo90ynJVGo2HIkCEMGTKEkydP8ttvv/Hbb7+xdetWTp8+zWeffcZnn32Gi4sLHTt25LbbbuO2227jlltuwcfHx9HhCyEcTKOcuG4/LS2NvXv3GgpM4eHhdOjQoUJNO5bGERgYSGpqqtFzjx07ljlz5vDqq68yffp0u8YmrKO8z1hYztL39v3332fy5MkMGTKE5cuX2zDCyiEjI4ONGzeydu1aNm3axIkTJ4o87+HhQZcuXQwFvZtvvtlw01sZSB4Swj6cssZOLyAggF69ejk6jHJJjZ0Q1ufsAyfM5efnx8CBAxk4cCCgG+m8efNmNm3axB9//MH58+fZunUrW7du5Y033sDX15du3brRvXt3OnToQPv27QkNDXXsixBC2JzTDZ6YPXs22dnZJu//5ZdfOnyaERk8IczljN9ze1JKVZmBE5aKiopi5MiRLFq0iNjYWI4fP85XX33F0KFDCQ0NJTMzk7Vr1/LKK69wxx13UL16derUqcOgQYN4++23WbNmDYmJiY5+GUIIK3O6plhXV1cSEhKoXr26SfsHBAQYRv3ZSnlNDKtWrWLgwIHcfPPNdl1DU1iPvZuRKuP33FYseW/j4uKoXbs2rq6upKWlSd+yYrRaLUeOHOGPP/5g165d7Nu3r0TTrV5UVBQdOnSgY8eOdOjQgcjISPz8/AxTNXl7e+Pi4oJSimvXrpGRkWHYrl27Rm5uLvn5+eTl5RXZ7rjjDoKCggznkaZYIezD6ZpilVL07t0bNzfTQi+r87m9SFOsMJczfs/tSX+D1Lp1aynUGeHi4kKrVq1o1aqV4bG0tDT279/Pvn372Lt3L3v37uXYsWPExcURFxfHzz//XGp6Xl5e5OTkmDXdSnR0dJGCnRDCPpyuYGfuKMABAwZQrVo1G0VjmsJNsabM5C+EM37P7elG619nDQEBAfTo0aPI9Dnp6ens37+fPXv2sHfvXvbv38+VK1fIyMggMzPTsF/xbgF+fn74+fnh4+ODh4cHbm5uuLu7F9kq01yiQtxIqnzBrjLQ19jl5OSQmpoqd7GiXM74PbcnfY2dFOwqxt/fn+7duxtdxUSr1ZKVlUVmZibXrl3D29u7SNOsEKJycsrc6eLigqura4ktODiYzp078+OPPzo6xCK8vb0NfUqsMYBCKVXkblpUTc72PbeXvLw89u7dC9y4AyfswcXFBV9fX2rUqEHdunUJCwvD19dXCnVCVHJOV2MH8OOPPxptzrx69Sr//PMPDz/8MIsXL+b+++93QHTGhYWFkZaWxqVLl2jSpInJx6WmprJ//34OHz7MkSNHDD9TUlIYMmQI//vf/8pc1F04L2f8ntvD4cOHycrKIjAwkMaNGzs6HCGEqFScsmCnn8fJmEceeYTmzZvz0UcfVaoLXlhYGCdOnDBrAEVcXBwtW7YsdSHwFStWkJKSws8//4yfn5+1QhWVhDN+z+1B37/u5ptvltojIYQopkr+V+zbty/Hjx93dBhFWDKX3aeffkpaWhqhoaH079+fKVOm8N1337F//37WrVuHn58ff/zxB3379uXq1as2ilxUVpXxe24P0r9OCCFK55Q1duXJysoyu3lyzpw5fPjhh8THx9OiRQtmzZpFt27drBaTuVOepKen8/XXXwOwaNEi7r777hL7bNy4kX79+rFz50569uzJ+vXrqVGjhtViFpWbJd/zqkAKdkIIUboqWWM3f/582rVrZ/L+S5cuZfz48UydOpX9+/fTrVs3+vXrR2xsrNViMrfGbtGiRaSmptKkSRP69etndJ9OnTqxZcsWwsLCOHDgAN27d+f8+fNWi1lUbuZ+z6uCq1ev8u+//wJSsBNCCGOcssZu4sSJRh9PTU1lz549nDp1iu3bt5uc3syZMxk1ahRPPPEEALNmzWLdunXMnTuXGTNmWCVmfY2dKQW7goICPv30UwDGjRtXZj+i1q1bs23bNm6//XaOHTvGrbfeym+//UaLFi2sErdwHGt/z+fOncvcuXM5e/YsAC1atOD111833DiUNr/iBx98wEsvvWT0uUWLFvHYY4+VeNxWtYn//PMPAPXr1zd5VQ4hhLiROGXBbv/+/UYfDwgI4M4772TMmDHUqVPHpLRyc3PZu3cvkydPLvJ437592bFjR4Vj1TOnKfbXX3/l1KlTBAcHM3LkyHL3b9y4MX/++Se33347J06coEOHDrz77ruMHz/e4s7l6enpHD58mAMHDnDw4EEOHjzIkSNHyM7OxsXFBY1Gg0ajMUzJERYWRq1atahZs6bhZ0REBEFBQQQEBBTZPD09KSgoID8/v8iWm5tLTk4O2dnZRX4WXqZIv3RR8WP1m1arxcvLC29vb8Omn0TVWMFFKYVWqy2yKaXw9vY2OreXPVnzew5Qq1Yt3nvvPRo2bAjA4sWLGTBgAPv376dFixbEx8cX2f/3339n1KhR3HfffWWmGxAQwLFjx4o8Zqsm4i1btgBSWyeEEKVxyoLd5s2brZZWUlISBQUFhoKXXlhYWKmFsJycHHJycgx/lzZqtTBzmmI/+eQTAJ566il8fX3L3R+gdu3a/Pnnnzz22GOsWbOGF154gdWrV7No0SLq1q1b7vFKKQ4fPszy5ctZuXIlMTExJp1XLyUlxdBEVhU0atTI4QMTrPk9B+jfv3+Rv9955x3mzp3Lrl27aNGiheE7qrdq1Sp69epV7vqzGo2mxLG2oNVq+eGHHwDdShtCCCFKcsqCnS0Ur80pa+mvGTNmMG3aNLPSL9wUW1ba+/fvZ+vWrbi5ufHss8+adY4aNWrw66+/8vXXXzNhwgS2bt1Kq1atmDVrFo8//rjR13j48GGWLVvG8uXLS9S6REZG0qZNG1q3bk3r1q1p1aoVAQEBhloupRRKKXJzc0lISOD8+fNcuHDB8DMhIYG0tDTDlp6eXmb8rq6ueHp64uXlVeSnfoki/bJFbm5uJX7XbxqNhuzsbLKysopsubm5Rs+plMLV1RUXF5ciW+3atc16751NQUEBy5cvJzMzky5dupR4/tKlS/z2228sXry43LQyMjKoU6cOBQUFtG3blunTp9uk79+OHTs4e/Ys/v7+JQqpQgghdG74gl1oaCiurq4laucSExNL1OLpTZkypUj/p7S0NKKioso8jz6t3Nxcrl69SnBwsNH9Zs2aBcD9999PrVq1TH0ZBhqNhieffJLbbruNRx99lD///JMnnniChQsXEhQUxNWrV4tshVew8PDw4M4772To0KHccccdhIaGmnze5s2bl7uPVqslIyOD7OzsEoUyfeFK2NahQ4fo0qUL2dnZ+Pn58dNPPxn97BYvXoy/vz+DBw8uM72mTZuyaNEiWrVqRVpaGp9++im33HILBw4coFGjRkaPsaTGG+C7774D4L777sPHx8ekY4QQ4oajhLr55pvVM888U+SxZs2aqcmTJ5t0fGpqqgJUampqmfsFBgYqQMXExBh9/uLFi8rd3V0B6u+//zYt+DLk5+erDz74QHl4eCjA6Obh4aHuvfde9d1335Ub/43M1M+4ssvJyVEnTpxQu3fvVpMnT1ahoaHqyJEjJfZr0qSJevbZZ81Ov6CgQLVp00Y999xzpe7zxhtvGP0ulvXeZmdnq+DgYAWojRs3mh2XcLyqkoeEqOxu+Bo70I0+HDFiBB07dqRLly7MmzeP2NhYRo8ebdXzhIWFkZqayqVLl2jWrFmJ5+fMmUNeXh5du3bl5ptvrvD5XF1deemll+jfvz/r16/H19eXoKAggoKCCAwMJCgoiIiICJP78Qnn5+HhYRg80bFjR3bv3s2nn37KV199Zdhn+/btHDt2jKVLl5qdvouLCzfddBMnTpwodR9Larx///13UlJSiIyMpGfPnmbHJYQQNwop2AHDhg0jOTmZt956i/j4eFq2bMmaNWvMGnFoivDwcI4fP250AEVWVhZffvklABMmTLDqeZs2bUrTpk2tmqaoGpRSRZpFARYsWECHDh1o06aNRelFR0fTqlWrUvfx9PTE09PTrHT1zbAPPfQQrq6uZsclhBA3CinYXTdmzBjGjBlj03OUNeXJ//3f/5GUlESdOnXKXCNUCEu98sor9OvXj6ioKNLT01myZAlbtmxh7dq1hn3S0tJYvnw5H3/8sdE0Ro4cSc2aNQ3zO06bNo3OnTvTqFEj0tLSmD17NtHR0XzxxRdWi/vq1av8+uuvADz88MNWS1cIIaoiKdjZUWlTnuTm5jJz5kwAnnvuOdzc5GMR1nfp0iVGjBhBfHw8gYGBtG7dmrVr19KnTx/DPkuWLEEpxYMPPmg0jdjY2CKDXK5evcpTTz1FQkICgYGBtGvXjm3btlmlK4HeypUrycnJoUWLFrRu3dpq6QohRFUkJQg7Kq3G7qWXXuLo0aMEBwcbVr8QwtoWLFhQ7j5PPfUUTz31VKnP6ycI1vvkk08M8y7air4Z9uGHHy51miAhhBA6Mr+EHRlbVmzFihXMnj0bgG+//ZbAwECHxCZEZRQbG2soTD700EOODUYIIZyAFOzsqHhT7MmTJ3n88ccBePnll7nnnnscFpsQlZF+pYkePXpU+UmjhRDCGqRgZ0eFm2KzsrK4//77SU9Pp1u3brz99tsOjk6IykUpxf/+9z9ABk0IIYSppGBnR4Vr7MaNG0d0dDTVq1fnhx9+kAETQhRz8OBBjhw5goeHB0OGDHF0OEII4RSkYGdHNWrUACA/P5/58+ej0Wj4v//7P2rWrOngyISofPSDJvr3709QUJBjgxFCCCchBTs78vT0LHKBev3114tMNSGE0CkoKDD0r5NmWCGEMJ0U7OwsIiICgNtvv53XXnvNwdEIUTlt3bqVCxcuEBwcTL9+/RwdjhBCOA3p2GVnr7zyCqtXr+bzzz+XpZGEKIVSik6dOtG2bVuzlx8TQogbmUYppRwdhLNLS0sjMDCQ1NRUAgICHB2OsAH5jG2nrPc2Pz9fBhZVEZKHhLAP+Y9pBfqycVpamoMjEbai/2zlPsj6JP/cGCQPCWEfUrCzgvT0dACioqIcHImwtfT0dFkdxMok/9xYJA8JYVvSFGsFWq2Wixcv4u/vb1jLMi0tjaioKOLi4qTZwQ5s/X4rpUhPTycyMhIXFxlzZE3G8g9IHrI3yUNCVA1SY2cFLi4u1KpVy+hzAQEBclGyI1u+31LLYBtl5R+QPGRvkoeEcG5y2ySEEEIIUUVIwU4IIYQQooqQgp2NeHp68sYbb8gcXHYi73fVI5+pfcn7LUTVIIMnhBBCCCGqCKmxE0IIIYSoIqRgJ4QQQghRRUjBTgghhBCiipCCnRBCCCFEFSEFOxuZM2cO9erVw8vLiw4dOrB9+3ZHh1Qlvfnmm2g0miJbeHi4o8MSFST5xz4k/whR9UjBzgaWLl3K+PHjmTp1Kvv376dbt27069eP2NhYR4dWJbVo0YL4+HjDdujQIUeHJCpA8o99Sf4RomqRgp0NzJw5k1GjRvHEE0/QrFkzZs2aRVRUFHPnznV0aFWSm5sb4eHhhq169eqODklUgOQf+5L8I0TVIgU7K8vNzWXv3r307du3yON9+/Zlx44dDoqqajtx4gSRkZHUq1ePBx54gNOnTzs6JGEhyT/2J/lHiKpFCnZWlpSUREFBAWFhYUUeDwsLIyEhwUFRVV2dOnXi22+/Zd26dcyfP5+EhAS6du1KcnKyo0MTFpD8Y1+Sf4SoetwcHUBVpdFoivytlCrxmKi4fv36GX5v1aoVXbp0oUGDBixevJiJEyc6MDJREZJ/7EPyjxBVj9TYWVloaCiurq4lahcSExNL1EII6/P19aVVq1acOHHC0aEIC0j+cSzJP0I4PynYWZmHhwcdOnRgw4YNRR7fsGEDXbt2dVBUN46cnByOHj1KRESEo0MRFpD841iSf4RwftIUawMTJ05kxIgRdOzYkS5dujBv3jxiY2MZPXq0o0Orcl588UX69+9P7dq1SUxM5O233yYtLY1HHnnE0aEJC0n+sR/JP0JUPVKws4Fhw4aRnJzMW2+9RXx8PC1btmTNmjXUqVPH0aFVOefPn+fBBx8kKSmJ6tWr07lzZ3bt2iXvtROT/GM/kn+EqHo0Sinl6CCEEEIIIUTFSR87IYQQQogqQgp2QgghhBBVhBTshBBCCCGqCCnYCSGEEEJUEVKwE0IIIYSoIqRgJ4QQQghRRUjBTgghhBCiipCCnRBCCCFEFSEFOyGEEEKIKkIKdkIIIYQQVYQU7IQQQgghqggp2AkhhBBCVBFSsBNCCCGEqCKkYCeEEEIIUUVIwU4IIYQQooqQgp0QQgghRBUhBTshhBBCiCpCCnZCCCGEEFWEFOyEEEIIIaoIN0cHYK45c+bw4YcfEh8fT4sWLZg1axbdunUrdf+tW7cyceJEjhw5QmRkJJMmTWL06NGG5xctWsRjjz1W4risrCy8vLxMikmr1XLx4kX8/f3RaDTmvyhR6SmlSE9PJzIyEhcX570fkvwjHKWq5CEhKj3lRJYsWaLc3d3V/PnzVUxMjBo3bpzy9fVV586dM7r/6dOnlY+Pjxo3bpyKiYlR8+fPV+7u7mrFihWGfRYuXKgCAgJUfHx8kc0ccXFxCpDtBtji4uIq9B12JMk/slWGzZnzkBDOQKOUUjiJTp060b59e+bOnWt4rFmzZgwcOJAZM2aU2P/ll19m9erVHD161PDY6NGjOXDgADt37gR0NQ7jx4/n6tWrFseVmppKUFAQcXFxBAQEWJyOqLzS0tKIiori6tWrBAYGOjoci0j+EY5UFfKQEM7AaZpic3Nz2bt3L5MnTy7yeN++fdmxY4fRY3bu3Enfvn2LPHbHHXewYMEC8vLycHd3ByAjI4M6depQUFBA27ZtmT59Ou3atSs1lpycHHJycgx/p6enAxAQEGC4MC1atKjUuKKionjllVdwdXU1PLZ8OWzYUOopTebvDy+9BOHh5e+7evVqLly4wDPPPGPx+S5dusTcuXMZNWoUUVFRFqezYAH8/bfFhwNw9eq/nDr1A61aTcTDo+iFo04dmDIFCrcA/d///R9bt241mlaNGjV4++23SzzurE2FzpZ/zHX06FGWLl3KxIkTrV44zMzM5OOPP2bEiBHUq1fPqmkrpZg1axYtWrQo8V7bilKKzz77jMOHD5d4ztXVlVGjRtGxY8dy0zl06BArVqzg5ZdfxsfHx+TzO2seEsJpOLbC0HQXLlxQgPrrr7+KPP7OO++oxo0bGz2mUaNG6p133iny2F9//aUAdfHiRaWUUjt37lT/+9//VHR0tNq2bZu67777lLe3tzp+/HipsbzxxhtGmxhSU1MN+zz66KNlNkds3LjRsG9OjlIeHkqBdbbXXy///dRqtSowMFAB6uzZs+UfUIrXX39dAapdu3YqJyfHojQuXbLWa3/o+vv7hdHnf/75v3Omp6crV1fXUj+fhg0bFokxNTW1xGfsTJwt/5hr2LBhClBz5861OI3SzJkzRwGqW7duVk/70KFDClC1atWyetql2bx5c5n/m3r27GlSOv3791eA+uqrr0za39nzkBDOwmlq7PSK3+0ppcq8AzS2f+HHO3fuTOfOnQ3P33LLLbRv357PPvuM2bNnG01zypQpTJw40fC3vomhsMGDB9OwYcMSx/7vf//j2LFjxMXFGR47fx5yc8HTE157rdSXUq7t22HdOiiUdKnS09NJTU0FIC4ujjp16lh0znPnzgGwf/9+3n77bd566y2z0zh/XvczMFBX22ip+fNjOXcOunePo3Dlx5YtsHEjrFgBAwboHouPj6egoAAvLy9effXVEmkFBwdbHkgl5iz5x1xnz54FKJKvrEX/Hd++fTv//vsvTZs2tVrasbGxAFy8eJGCgoIitfi2om+K79WrF7179zY8HhcXx1dffWXye6jfb8+ePTz11FPWD1QIYRGnKdiFhobi6upKQkJCkccTExMJCwszekx4eLjR/d3c3AgJCTF6jIuLCzfddBMnTpwoNRZPT088PT3LjLd///7079+/xOPHjx/n2LFjXLp0yfDY9f/t1KkDU6eWmWyZFizQFewKJV2qwue/ZMoBJqTz7rvv0r9/f2666SYz09D9rFevYq9/8WJdQg0aXCqSTs+euoLd6tWQk6MrQOvjrlmzJlMrclIn4Wz5x1zx8fFAxb7LpSmc5oIFC/jwww+tnrZWqyUpKanUz8JaEhIS+PHHHwGYOXMmbdu2NTx34sQJvvrqK5PfQ/1++/bts3qcQgjLOc2Ycw8PDzp06MCGYh3RNmzYQNeuXY0e06VLlxL7r1+/no4dOxr6BxWnlCI6OpqIiAjrBF6M/h934QumvmBXu3ZF0+Z62uXvW/j8xS/e5tAfW7duXQoKChg5ciRZWVlmpqH7WdFrmj6W4q+nSxeIiIC0NF0Br/A+tr6QVhZVJf8Yo9VqDQW7inyXS1M4zcWLF5Obm2uTtG0Re3ELFiwgPz+fzp07FynUwX95ISMjg8zMzDLT0Wq1JCYmArq+dnl5eTaJVwhhPqcp2AFMnDiRr7/+mm+++YajR48yYcIEYmNjDfNqTZkyhZEjRxr2Hz16NOfOnWPixIkcPXqUb775hgULFvDiiy8a9pk2bRrr1q3j9OnTREdHM2rUKKKjo4vM1WVN4ddHNRS+K9a3fBQv2CmlmD59OqtXrzYxba6nXf6+1q6xmz9/PhEREfz777+88sorZqah+2nKgI/SZGVlGTrhF389Li5w332631esKBp3eEVO6mSqQv4xJjk52VCwsHWN3eXLl1m1apVN0rZF7IUVFBQwb948AKMDpvz9/fH29jYpluTkZAoKCgDdwJyYmBgrRyuEsJRTFeyGDRvGrFmzeOutt2jbti3btm1jzZo1hv5h8fHxhj4rAPXq1WPNmjVs2bLFMFpv9uzZ3Ke/ygNXr17lqaeeolmzZvTt25cLFy6wbds2br75Zpu8Bv1dsbGm2OLdjA4cOMDrr79u8qhVfeVTYiJotWXva40LSuG79mbNmvH1118DMGvWLLZs2WJyOvrTV6TyrLzXM2SI7ufPP+v6M+r3uVFq7KBq5B9j9LV1YNuCXb9+/QAM33Nrpl38d1tYs2YNsbGxVKtWjaFDh5Z4XqPRGP3/ZEzx5/fv32+9QIUQFePAgRtVhjmjvTZu3KgA1bx5c8Njd96pG7W5YEHRfVetWqUApdFoVG5ubrlpZ2f/NwI0KansfV999VXDKLh777233LSNSUxMNKShj+/JJ59UgKpTp47Jo98eeEAX88yZFoWhlNKNztTH4ubmpgoKCoo8n5+vVI0auvOsXftfnNOmTTMpfRnRZzsVfW9///13w2fv4eGhtFqt1WIrKCgwjJ7etm2bIT+eOXPGKun37NnTEPsHH3xglTRL069fPwWoF198sdR9OnfurAD1448/lpnWhg0bioykfe6558o9v+QhIezDqWrsqoKyauyKN8VevHgR0DXJmnI37+kJ+sGc5e1ujZoC/XEhISGGPlcff/wx9erVMzThmZaO7qe1auzy8/NJSUkp8ryrKwwerPt9xYobs8auqtLnE9A1C1ZksuTirly5Ymhy7NSpE7fffjtKKRYsWGCV9O1VY3fmzBnWrl0LwNNPP13qflJjJ4Tzk4Kdnen/cer7BSlVesGucBNT4d/LTl/3s7x+2NbotG1sAIK/vz+LFi1Co9GwYMEC/vjjDxPS4Xo6FoVRJJbS/ob/mmN/+gkSEqRgV1UUzxvWHISgT6tatWp4eHjw5JNPArBw4ULy8/Otln7x363tq6++QilF3759jU7DpGdscJcx+ufbtGkDQHR0NNry+n8IIexCCnZ2FhISYpirKjExkdRUyMjQPVe8j13hmojCv5fF1AEUxWsKlAUry5VW69W9e3fGjBkDwPTp001IR/ezIuMYitcgGKtx6NEDQkIgORnOnUu4fs4bZ/BEVVU8b1iz5qv4IJsBAwYQEhLChQsXDDVglsrNzS1Ss2yrGrucnBxDDWN5/XWNDe4yRv98jx498PLyIiMjg5MnT1ohWiFERUnBzs5cXFyoUaMGoPvnqK+tq14drg9IM6hIjZ05Bbvs7GzDiFJzlDWydPLkybi7u7N161bDuqLG5ObClSu6363VFGvsbwA3Nxg0CECRlCQ1dlWFPQp2+u+Jp6cnjzzyCKAbCV4R+oFHxc9lbStWrCApKYlatWpxzz33lLmvuU2xkZGRhlo7mc9O2NOjjz7KwIEDHR2GWewVsxTsHEBfEEpISCh1RCxYVrDTl7HKaklRSpnUdFmesuaCq1WrFg8//DAA7733Xqlp6K9tbm5QrZrZIZSIpbS/9e6/HyCNgoJsQAp2VYG+YKefqsMWTbGFvydPPPEEAL/99pvJNellpV3a39aiX2niySefxM2t7DnpC/9vKov++fDwcMO6wNLPTtjC2bNn0Wg0REdHF3n8008/ZdGiRTY/vzMWIKVg5wCF74rLmpzYkqZYU2rs0tLSDIuw16xZ0xCLucqbC27SpEloNBpWr17NkSNHSklD97NGDd18c5bSx1KrVq0ifxfXqxcEBOie8/HxN2vxclE56W96WrduDdi2KRZ0U/vccsstFBQUVOjCUvw7m5SUZJV+e4UdOnSIv/76C1dXV0OBtCzm1tiFhYXRvn17QGrshH0FBgYSFBTk6DAqJSnYOUDhDsqlFewKCgqKNNVYsylW/0/Z39+fevXqGWIxV3kjS5s2bcogXdsn77//filpcD0Ns09fRPHO3KW9Hnd3uOWWS9d/l9o6Z1d41Ql9zZEtm2L19IMoFixYYPGgAf13tEWLFri4uKCUIikpqQLRlqSvrRs4cCCRkZHl7m/u4IniNXaW9NUVNwalFB988AH169fH29ubNm3asOL6jPEpKSkMHz6c6tWr4+3tTaNGjVi4cCGA4RrVrl07NBoNPXv2BErWpPXs2ZPnnnuO8ePHExwcTFhYGPPmzSMzM5PHHnsMf39/GjRowO+//244pqCggFGjRlGvXj28vb1p0qQJn376qeH5N998k8WLF7Nq1So0Gg0ajcYwR+uFCxcYNmwYwcHBhISEMGDAAMOa1fq0J06cSFBQECEhIUyaNMlu+UMKdg5QuINyaQW7xMTEIhcMazbFFm5eMvUOvbx0SjN58mQAvv/+e8Ni6kXT0P2s6BgGffym1Nq0aaM7aVZWeLkTOYvKrXAtV3mFeksULsAUNmTIEAICAjh9+jSbN2+2KO3C/dRCQ0OLnM8arl27xnfffQeUP2hCT/86r127RoZ+VFcxBQUFXL58GdDl/ZYtW+Lm5kZycjJx+mV0hN0oBZmZ9t/MLaO8+uqrLFy4kLlz53LkyBEmTJjAww8/zNatW3nttdeIiYnh999/5+jRo8ydO9eQJ/755x8ANm7cSHx8vGGtY2MWL15MaGgo//zzD8899xzPPPMM999/P127dmXfvn3ccccdjBgxgmvXrgG6G8NatWqxbNkyYmJieP3113nllVdYtmwZAC+++CJDhw7lzjvvJD4+nvj4eLp27cq1a9fo1asXfn5+bNu2jT///BM/Pz/uvPNOw5KDH3/8sWG1nj///JMrV67w008/mfvxWqTsDhfCJgoXps6f1z1W2hx2pf1detpcT7v0fQo3L5nap6a8dEpz00030bt3b/744w8+/vhjZs+eXSyNonFbIjMz03AR0l/cyyrYhYXpnsvNDWPXLihlqVThBPQ3PDVq1Ci3Gd4SpdXY+fr6MmjQIBYvXszWrVvp3bu32WkXLjSGh4eTmJho1dhXrlxJeno69evX57bbbjPpGD8/P3x8fLh27RqXLl3Cz8+vxD7JyclotVo0Gg3Vq1fHzc2N5s2bc/DgQfbv30/tii56Lcxy7RoY+ZhsLiMDfH1N2zczM5OZM2eyadMmunTpAkD9+vX5888/+eqrr8jIyKBdu3Z07NgR0K09rle9enVAN6NEebMYtGnThldffRXQLZH43nvvERoaaqhhf/3115k7dy4HDx6kc+fOuLu7M23aNMPx9erVY8eOHSxbtoyhQ4fi5+eHt7c3OTk5Rc793Xff4eLiwtdff41GowF0UyAFBQWxZcsW+vbty6xZs5gyZYphpZ4vv/ySdevWmfaGVZDU2DmAKU2x+guWvg9cYmKiYaLUstPW/bx0qfRlxaxRY1e4qbi8AQhTpkwBdEsx6e/0/4ulaNyW0Mfu7e1tmKOrrIJqcrL+tYYZ1o4Vzkl/wxMZGVmhm5TSlFUr3aRJEwCjNdGmKFxoNLUJ1Bz6/n+PPvqo4eJjivJi0T8eGhpqGIwh/exEWWJiYsjOzqZPnz74+fkZtm+//ZZTp07xzDPPsGTJEtq2bcukSZPYsWOHRefRt9gAuLq6EhISQqtWrQyP6b/bhbs5ffnll3Ts2JHq1avj5+fH/PnziyytaMzevXs5efIk/v7+htdSrVo1srOzOXXqFKmpqcTHxxsKsQBubm6GgqutSY2dAxRuir1wQfdY8VGxhTuEx8fHG9ZljYiIKDPt6zOpUFCgm0bkem12EcZq7Mwt2BW/ay/LbbfdRseOHdmzZw+zZ88uMredNeewK/x69E3ZLkZGZPx3wQpnxQr46KOKDdwQjqMv2EVERBT5p62UMqswY4xWqzXciBirKdDXTJV3ESiNNfJhac6ePcumTZvQaDSMHDnSrGPDw8M5c+ZMqbEYq8Vs164dixYtkpGxDuDj899cqPY+r6n03Yp+++03Q2WFnqenJ1FRUZw7d47ffvuNjRs30rt3b8aOHctHH31kVkz6FZD0NBpNkcf0/xP08SxbtowJEybw8ccf06VLF/z9/fnwww/5+++/y309HTp04P/+7/9KPFfe9dAe5HLmAPp/iBcvJlBQoOvQX/y6ob9gRUVFFdq//OZYD4//pg0p7RphjZoCY8uJlUaj0Rhq7T7//HPS0tIKpcP1WMw6fRGFa1X0cwQWFBSQnJxcZuxeXmHExcG2bZafWziW/gYoMjLS8Nnn5eWVWFLOEsnJyYZacmP/rOvUqQNYXmNnrb6uxnz77beA7qZKH6epTK2xK1zYlRo7x9FodE2i9t7MuW9q3rw5np6exMbG0rBhwyJb1PVajerVq/Poo4/y3XffMWvWLObNmweAh4cHgEktVubavn07Xbt2ZcyYMbRr146GDRty6tSpIvt4eHiUOHf79u05ceIENWrUKPF6AgMDCQwMJCIigl27dhmOyc/PZ+/evVZ/DcZIwc4B9P8QU1NTgFxq1SpZY6S/YEVERBhq6aw1gMIaFxRTBk4UNnDgQJo0acLVq1cNGbZwjNaosQsLC8Pd3Z1q10u2pb0mfezdu+tOen3wlXBChZtiPT09Cb6+WLI1mjQLNzkau3nR19idP3/eoouOrZpitVptkWZYc5VXe2isxq5NmzZoNBouXLhQYuJlIfz9/XnxxReZMGECixcv5tSpU+zfv58vvviCxYsX8/rrr7Nq1SpOnjzJkSNH+PXXX2nWrBmg6z/r7e3N2rVruXTpEqmpqVaLq2HDhuzZs4d169Zx/PhxXnvtNXbv3l1kn7p163Lw4EGOHTtGUlISeXl5DB8+nNDQUAYMGMD27ds5c+YMW7duZdy4cZy/3nF+3LhxvPfee/z000/8+++/jBkzxqrrWJfFpKbYgwcPmp1w8+bNy50M80YVHByMm5vb9dF8idSuXavEPoWbmMwt2IWFQUxM+TV2xQdPmNN8ZcrAicJcXFx4+eWXefzxx5k5cybPPfccnp6eVq2x08cSHh7OlStXuHTpEi1btiw19qFDw1i/HpYvh88+g4AAy2Moj+Qh2yicT0BX2EhJSeHSpUs0b968QmmXN51PZGQkrq6u5OXlcenSJZOmE9HLzs42/JO3dlPstm3bOHPmDAEBAQwePNjs48u72TP2vvj7+9OoUSOOHz/O/v37ueOOOyyIXFRl06dPp0aNGsyYMYPTp08TFBRE+/bteeWVV4iLi2PKlCmcPXsWb29vunXrxpIlSwBd37TZs2fz1ltv8frrr9OtWzfDlCMVNXr0aKKjoxk2bBgajYYHH3yQMWPGFJkS5cknn2TLli107NiRjIwMNm/eTM+ePdm2bRsvv/wygwcPJj09nZo1a9K7d28Crl9IXnjhBeLj43n00UdxcXHh8ccfZ9CgQVYtmJbGpKtG27Zt0Wg0Js/B4uLiwvHjx6lfv36Fgquq9MuK6S5KCUYLdoWbmPQXDHNHxppTY5ebm0tqaqrJEz6aW2MHMHz4cCZNmkR8fDz79u2jffsu6FvMrDF4Qh9LWFgYMTExRms/lFKG/W+7LYxmzeDoUVi2DEyYv9Vikodso3A+Ad1n/++//1q1xq6077ibmxs1a9YkNjaWc+fOmVWw09dqeXh4EBQUZNUaO31t3bBhwyyagNuSpljQ9bOTgp0ojUaj4fnnn+f5558v8Vz37t0No1mNeeKJJ0pMsF18cnBjhb3C88rpFf4f7OnpycKFCw1z5unNmDHD8Hv16tVZv359iXTCw8NZvHhxqTG7ubkxa9YsZs2aVeo+tmJydcDff/9tUqdApZTRWhJRVHh4+PWC2iWjq05YoynW2A134YJNeHg4Xl5eBAYGkpqayqVLl0wu2JlbYwe6i1jLli3ZsmULp06dolYt3Yghd3e43oJmkeKxlFX7kZqaalh1Izw8jMceg0mT4JtvbFuwA8lDtlC4KRZMX8TeFKZ8x+vUqUNsbCyxsbFFRsCZmnZYWBgajcZqcaenp7N8+XLAsmZYsKwpFnT9jpYuXSr97IRwMJMKdj169KBhw4YmX/S7d+9uWLdRGPffP8WEEiNiCwoKDHfFFamxM/Z/OTU11TCBYuEartTUVBISEgxTOJSnvGaq0jRo0MBQsGvaVPdYRZcTK16zUlaNgz7ugIAAvL29GTECpkyBnTvh338xxGRtkoesr/CqE4WbYsG6BbuyvuP6fnbmDqAo7TubnJxMXl5euQOSSrNixQquXbtG48aNzSpoFlaRGjuQNWOFcDSTLqebN282a022NWvWlDstx43uv3+KJWvskpKSKCgoQKPRUKNGDasOntD/Uw4ICMDLywuw7GJoSVMs6Ap2AKdOnbL6qhPFL5LGXk/J2j246y7dc7ZcT1rykPVdvnzZkE/0n7k157IrrQBTmKVTnhT/zoaEhBiWFSs+16M59E1K5s5dV1jhGjtjXQdKK/DqC3YnT560Sz8iIYRxMirWQf77p1iyYFd4Nn03NzeLBk+A8Ro7Y81LllwMLWmKBQx9xk6fPm31dWJNaYo1ViB97DHdz8WLwcprsAsbKpxP9DVc9q6xs3TKk+LfWVdXV8N0LZbGfvLkSbZv346Li4vZc9cVpn+9WVlZJZYVKygoMKxnW/x9CQ0NNUxdceDAAYvPL4SoGLMKdufPn2fq1Kn06tWLZs2a0bx5c3r16sXUqVNljUAzBQWV3hRbvN+Q/mdCQoJZq0+UVWNX+J+yo2vsKlKwy8jIMKz7Z05TbOG4774bqlfXvV92WvHFqLi4OB5//HHHBeBkiucTMH0Re1OY8h23Vo1d4d8tjV3fkbtv374lJoE1h6+vL77X14oqHsvly5cNE38b6y8q89kJ4XgmF+z+/PNPmjVrxk8//USbNm0YOXIkDz/8MG3atOHnn3+mRYsW/PXXX7aMtUpxc9PfqV8qMc2GsX5DGo2myN1yWfSVaJcvl1xWrKwLiqkFu8JxmFtjpy/YJSQkcP58ZpF4LaGP2cfHx7CuZVmvx1jzmocHPPyw7vdvvrE8loq6cuVKmaOsRFHFpzoBxwyeAPNr7KyRDwsrKCgwfHcsHTRRWGnvo/7v0NBQXF1dSxwn/eyEcDyTC3YTJkzgiSeeICYmxrC47SuvvMKsWbM4cuQIo0aNYvz48TYMVWfOnDnUq1cPLy8vOnTowPbt28vcf+vWrXTo0AEvLy/q16/Pl19+WWKflStXGmbGbt68OT/99JOtwjcoKND9E3dzK3l3Xrxg5+bmZrg7NqU5Vn8jXVAAxRdfsEZTbFJSkmE5sVBja5aVITg42DCJ7OnTpwHrzmFX+Hdj6+uW1rymb4795RddgdgWVq9eXea2efNm25y4kKqSf6DkVCdQdC1IbWmLJZugoKDA0NfNlBq71NRUs/qVlfW9taRgt3nzZuLi4ggKCmLAgAFmH19cabWH5fU7lBo7IRzP5ILd4cOHGT16dKnPP/300xw+fNgqQZVm6dKljB8/nqlTp7J//366detGv379Sm0GOXPmDHfddRfdunVj//79vPLKKzz//POsXLnSsM/OnTsZNmwYI0aM4MCBA4wYMYKhQ4eWu1ZcRWVn6/4xFhSU/CdurInJnJGx7u7/rRFbvKxmjaZYY4uAm0Nfa3f+vG7pFmutOqGnLwRrtdoSy4qVVgvTqhV07Ah5eWBk+T+rGDhwIIMGDWLgwIFGt4kTJ9rmxNdVpfwDxvOJvp9afn4+V65csTjtwjcvZU1Ro1/8G8xrjrV2U6x+CbEHH3zQMCiqIsqrsSutsKuvsTt69ChZWVkVjkMIYT6TC3YRERHs2LGj1Od37txp81F8M2fOZNSoUTzxxBM0a9aMWbNmERUVxdy5c43u/+WXX1K7dm1mzZpFs2bNeOKJJ3j88ceLLCw8a9Ys+vTpw5QpU2jatClTpkyhd+/eNp9UMC1N948xP/+qYV41veI1doV/r+gACmvU2Fk6cEJPP4Di8mXb1Ni5u7sbahKLX5jK6jelr7VbuBBMnEfYLBEREaxcuRKtVmt0s3UtR1XKP2C8KdbDw6PcJeVMUbjJsbybF0v62Vm7xk7/v9mSlSaMKe1mr7yCXc2aNalevToFBQUcOnTIKrEIIcxjcsHuxRdfZPTo0Tz77LOsWrWKXbt28ffff7Nq1SqeffZZnnnmGSZNmmSzQHNzc9m7dy99+/Yt8njfvn1LLXDu3LmzxP533HEHe/bsIS8vr8x9yirE5uTkkJaWVmQzV2JiMKAbyVf8n6exC5a1C3bGagoSExNNWhnB0jns9PQ1dqmpp4rEaonSYimt9qOs2B98EDw94eBBsEUXoQ4dOpRZeDNnZQpzVbX8A8abYsE6I2PN+Y6b288uOzvb8Jqt0cfu2rVrhm4NrVu3NuvY0ljaFKtfXeCdd96x+MZPCHt69NFHGThwoKPDsCqTC3Zjxozh22+/Zc+ePQwZMoSuXbvSpUsXhgwZwp49e/j222/LbKqtKP3cbsYu4GVNpGls//z8fEPn/9L2Kav2asaMGQQGBhq2qOLDWk1w/rwGMP6P3NgFy9xJikuby85YjZW++So3N9ekRYpNmd+rLPqCXW6ubZpiC/9d+L0tvupGccHBMGiQ7ndbDKJ46aWX6Nq1a6nPN2zY0Gb97Kpa/gHjTbFgnbnszPmOm1tjp/8Oenh4EBgYaHjc0qbYo0ePopSievXqhrxcUZY2xQK8+uqrvPLKK4b3RYiKevPNN2nbtq2jw3AaZk13MmzYMHbt2sW1a9e4cOECFy5c4Nq1a+zatYuhQ4faKsYiik+6Wd7C9cb2L/64uWlOmTLF0Fk6NTXVoqledNeAkv/ItVqt4W9r19iVVrDx8vIyTJ5rykXFWjV2cAoPDzBj3t4SSrsAG7swXb161bDqRmkXQH1z7PffQ3a25XEZ061bN+68885Sn/f19aVHjx7WPWkxVSX/FF6dpXgXEEfV2JlasCv8nS38PlnaFKvv22zNZejKa4qV2jghKi+LJih2d3c3rGFq6dI35tIPry9e8EhMTCz1n294eLjR/d3c3AgJCSlzn7L+oXt6ehIQEFBkM4dWC7prWcl/nvolhfSx6elrJcwt2BV+aSkpKYa0ixdszLkYWjqHnd5/BbuzVK+ej4UT5APmNcXq9w0MDCy1g3nv3vDMM7B0qW4alKqiKuUfKLo6S/FzWbPGzpTvuLnLipX3nS38P8AUR44cAaBFixYmH1Oe8ppiLc374sa1du1abr31VoKCgggJCeGee+7h1KlThufPnz/PAw88QLVq1fD19aVjx478/fffLFq0iGnTpnHgwAE0Gg0ajYZFixZx9uxZNBoN0dHRhjSuXr2KRqNhy5YtgO4GcNSoUdSrVw9vb2+aNGnCp59+audXbn8mFewGDx5sVj+Y4cOHk5iYaHFQxnh4eNChQwc2bNhQ5PENGzaU2rzVpUuXEvuvX7+ejh07Ggqkpe1TVpNZRSUmgq7iqOQdur7gVr169SKFZn2thLlNsYXLafrzBAUFlSjYmHMxrOhde2RkJG5uHkA+1aqdtygNPXNq7ExpXnN1hTlzoE+fiq1fW5yj81BVyj/wXz4ICwsrMbjBmjV2pnzHK1JjV1hISIhhbjhzPntb1NiVtqyY1NhVPkopMjMz7b6Z2x84MzOTiRMnsnv3bv744w9cXFwYNGgQWq2WjIwMevTowcWLF1m9ejUHDhxg0qRJaLVahg0bxgsvvECLFi2Ij48nPj6eYcOGmXROrVZLrVq1WLZsGTExMbz++uu88sorLFu2zJK32mmYNFfFqlWrTF6/UCnFL7/8wvTp063W30Nv4sSJjBgxgo4dO9KlSxfmzZtHbGysoW/flClTuHDhgmHo/+jRo/n888+ZOHEiTz75JDt37mTBggX88MMPhjTHjRtH9+7def/99xkwYACrVq1i48aN/Pnnn1aNvTD9/39//zDS04sWpoyNiC38d0JCgmHm97IYa4otq3nJnIthRZtiXV1dCQ2tR0LCMXx8TgF1LUqncNOyOTV2jqhtqAx5qKrkHyi9fx3YvylWX2N38eJF8vLyym3FKC1tFxcXatSoQXx8PJcuXTJ59QhbNsXqB3oEBgYW6VspNXaVx7Vr1wyTs9tTRkaGYYUSU9x3331F/l6wYAE1atQgJiaGHTt2cPnyZXbv3m0Y1d6wYUPDvn5+fri5uZl9Q+Hu7s60adMMf9erV48dO3awbNkyu3UfcwSTCnZKKRo3bmzrWMo1bNgwkpOTeeutt4iPj6dly5asWbPGcMccHx9f5K65Xr16rFmzhgkTJvDFF18QGRnJ7Nmzi3zBunbtypIlS3j11Vd57bXXaNCgAUuXLqVTp042ex36EENDw0lPL3oBKq9DeF5eHsnJyWXOraXbX/ezcAVcWc0oljTFVuSuPSCgAQkJx3BzOwX0tiiNjIwMw1xZpgyecGRtQ2XIQ1Ul/4DxkeN69h48UaNGDTw9PcnJyeHChQvUrVu3zP3Lu8GKj483OfbCfRSt2RTr4+ODv78/6enpXLp0icDAQC5fvoxSChcXF0NTvBCmOnXqFK+99hq7du0yzBMJupru6Oho2rVrZyjUWdOXX37J119/zblz58jKyiI3N7fKD8QwqWC3efNm9u3bZ5hV3BQVWauwLGPGjGHMmDFGn1u0aFGJx3r06FHu/GBDhgxhyJAh1gjPJPq+4hERYZw5Y1qNnYeHB6GhoSQlJREfH19uwU5/zbh8WbcChatr2QUbUy+G1rpr9/LS9bMrKDhVzp6l08fq5+dX4s6xrKZYR9Q2VJY8VBXyD5Q+1QnYv8bOxcWFqKgoTp48yblz58ot2JVVaDR3AEVMTAyg+64EVWQUkhFhYWGGgl3jxo0NMdWoUcPocmJ6cXFw9apu0m9hez4+PmRkZDjkvObo378/UVFRzJ8/n8jISLRaLS1btiQ3Nxdvb2+zz69vtSrcJFy8b+qyZcuYMGECH3/8MV26dMHf358PP/zQLhOoO5JJBbsePXrQq1cv2rVrxxNPPMFDDz1UZJi+MI++UqR27TB27DDex85YTURERIShYFfefFXVq4NGoxuokZSkK+hZo8au8F27ucuJFabR6Ap2WVmWF+xMaVq+fPkyBQUFuLq6OrQpVvKQdZnSFKtfVqy8bgvF5efnm7ScWGF16tTh5MmTJvWzM+V7a2qNnS2aYQvHcvLkSUMsptwYZWbCgAFw4gT89BPcfrvVwxLFaDQas5pEHSE5OZmjR4/y1Vdf0a1bN4Ai3TVat27N119/zZUrV4zW2nl4eJRYHrLwMpv6FU8KD6QA2L59O127di1yM1t4wEZVZfJ/vL/++ov27dszefJkIiIiePjhh+2ytmVVpP/f37Bhybvzsi5Y5sxl5+b237Ji+uStUWOnT6N69epl3rWXJy9PP0nxaYvTKKvmo3r16mg0GrRaraGG0dEdvyUPWU9ZTbH6fokFBQUllpQzRVJSkuHmpbyacT1zRsZas8bOlgW74rGUl3+0WnjkEd3k3t7e0KiR1UMSTio4OJiQkBDmzZvHyZMn2bRpU5ElFB988EHCw8MZOHAgf/31F6dPn2blypXs3LkTgLp163LmzBmio6NJSkoiJycHb29vOnfuzHvvvUdMTAzbtm3j1VdfLXLehg0bsmfPHtatW8fx48d57bXX2L17t11fuyOYXLDr0qUL8+fPJyEhgblz53L+/Hluv/12GjRowDvvvMP58xUb3Xgj0RfsmjXT3fmmpqaSfX3StPJq7ArvU57iAyisMXjCWrVemZn6ZcVOWbzaQlmxuLm5GWoUzalxsCXJQ9ZTVlOsu7u7oQ+YJc2xhZcTM/XmxZyRsdYaxAS2meqkeCym5p9p02DlSt1a1T/9BNffEiFwcXFhyZIl7N27l5YtWzJhwgQ+/PBDw/MeHh6sX7+eGjVqcNddd9GqVSvee+89Q/677777uPPOO+nVqxfVq1c3DOD65ptvyMvLo2PHjowbN4633367yHlHjx7N4MGDGTZsGJ06dSI5ObnUrihVidkruHt7e/PII4/wyCOPcOrUKRYuXMhXX33Fm2++SZ8+fVizZo0t4qxS/ivYBeHh4UFubi6XLl2iTp06JtXYmVqwCw+Hw4f/G0BhSlNsec1X1iocXblSD4DMzDSSk5MtatYtr5AZFhbG5cuXTa5xsBfJQxVXVj4B3WecnJxMQkKC2bVZlgwOMrXG7tq1a6SnpwOVvym2tBo7Y3EvXQpvvaX7fd48uOUWq4cjnNztt99u6BOqV/imvk6dOqxYscLosZ6enkafa9asmaFWz1ianp6eLFy4kIULFxbZZ8aMGYbfjfUtdnYVmqmrQYMGTJ48malTpxIQEMC6deusFVeVlZ2tm8cOoE4dTZF/5Eopk2rsTJ3LrrQaO2MXLH3zVV5eHikpKaWmaY3CUVYWpKd7A7rBAZb2eSjvAlx8Li5H9rErjeQh85W16oReRQZQWPI9MbXGTp+2l5eX0YmZzWmKLXzT0rx5c5NjNVXx97C0vL9nDzz6qO73F17473chhGNYXLDbunUrjzzyCOHh4UyaNInBgwfz119/WTO2Kknf2ubrq1ubtPA/z5SUFMOSV8YKK5Y2xSYk6CZqLOuC5enpSXBwsCGW0lijxk6fvH4AhaUFO1Nq7EAXc1mrbjiK5CHLXL582VCrXNpnaem6q4WPMec7XrjGrqyuBYW/s8aWXTMnbn0zbL169WzSed6UptiLF3WDJbKz4a674P33rR6GEMJMZjXFxsXFsWjRIhYtWsSZM2fo2rUrn332GUOHDq30o3Iqi/9GxOpGrRa+Q9fXxIWEhODp6VniWEuaYnVp65YTy8/PB0ov2ISHh5OSkkJCQkKpNQDWqLHTF+x8fBqQmbmN06ctG0BhTo2dPu7g4GCj7629SB6quLJWndCzdN3VwseY8x2PiooCICsrq8yuBaZ+Z/U3eR5lrGunL9jZohm2cCyl1dhlZcHAgbrCXfPm8MMPummVhBCOZXLBrk+fPmzevJnq1aszcuRIHn/8cZo0aWLL2KqkwgU7KHpXXFYzbOHHL168WO5C67q0dT8vXcKkgk1YWBhHjx4t82JojeZMffJBQfXJzLRPjZ2jB06A5CFrKWtErJ69m2I9PT0N6+aeO3eu1IJdeWkHBwfj5uZGfn4+iYmJ1KpVq9Rz2rJ/XeEY9d1EiuehKVNg926oVg1WrwYLlvwVQtiAyQU7b29vVq5cyT333FOhaS5udPqC3fUb/CJ3xeUV7PT75ubmkpKSUu4s3YVXnzClYGPKxdAaBSR9K1NYWAMuXLCsYGdKn7nCr6cyDJyQPGQdZY2I1avI6hOWrqxSp04dEhISiI2NpUOHDkb3Ke87q29evnjxIgkJCZWiYJebm0tycrJh6piwsDByc2HxYt1+CxdCgwY2CUEIYQGT+9itXr2aAQMGyAWpgsqqsStvpJ+Xl5ehMGfKAApjNXZlXaxMuRhasym2Vi3L+9ilpaUZpogp7SJprCnWkTV2koeso7x8AvavsYP/+tmVNYDClEKjKc3ISimbTnUCuhsR/QCPQ4cOAbp1nkNCQtiwQbe6RHg43H23TU4vhLCQ2dOdCNO89BIsX66b08nD47/txAnd88ULdqbU2Omfu3LlimGtz7Lor0tJSRAfX/7FqryLoX6d2vLSKY8++QbXb/MvXrxIVlaWWcvK6GP09/cvdWmbytYUK6yjshbs9CNjy5ryxJS0TYk9Pj6elJQUXF1dbdqcHxYWRlpaGgcOHAB0/XNdXFxYulT3/P33S786ISqbCk13IkqXmAjnzsHJkxATA9HR8M8/oJ9JpE0b3U9jgyfKK9iBaQMoqlcHFxfdjPBnzpheU1BajZ1+OTH9Xbul9MnXq1fNsKzWmTNnzEzD9NeTlJTEhQsXyt1fOAdT8on+c05MTCyxFFFZCq+FbO53xdo1dmXVnOubYRs1aoSXl5dZcZpDH4u+YBceHk52Nvz8s+75Bx6w2amFEBaSGjsbeestePZZyM3VbXl5//0eEQFt2+r2K1yrpB+tWlZNhDnLirm66pYVS0yE2NiK1xRYazkxffLh4Rrq16/P/v37OXXqlFlzcZlS8xEaGoqLiwtardZwIZQaO+dnSh+7wkvKJScnmzzFTeG1kM29ebFnjZ3++2yrZtjisegLdmFhYfz+O6Sn6/oJd+5s09MLISwgBTsbqVPHtCV19P8409PTDX3NrFVjp0tfV7C7eLHigyes1Zz53+AJXXOsvmBnDlMukK6uroSGhpKYmGjojyQFO+dnSlOsm5sbISEhJCUlFblpKo/+O27JzYspNXbmFOzKqrGz9VQnxWMpnH/0zbBDh+paBIQQ5duyZQu9evUiJSWFoKAgm55LsqWDBQYGGqYf0f8jN6XGzty57C5fNn3wxKVLl9BqtSWet9bI0v9q7P7rZ2duwc7UkYuFRxKbsr+o3AoKCgzfw7JugMCyuewq8h3X19glJiaSlZVV4vnMzEwyMjLKTd+UuG09IrZ4LPr8ExISzi+/6J4bNsympxZCWEgKdg6m0WhK3L2bUmNn7rJiKSnl1xToazUKCgq4cuVKieetMbL02jVdM44+NksLdqbGUvx5qbFzboXXMi6vFs6SARQV+Y4HBQXh5+cH6CaiLi1tb29vw37GlBe3Vqu1+YjY4rHoJSWFce0a1K8PHTva9NRCVDpKKcNE/5WZFOwqgcJ370FBQWV2hja3KVaXtJb09PJrItzd3Q39iow1A1k6v1dh+muVl5duQlN9wc7c1SfMrbHTqyzLiQnL6G9owsPDy20qtWQuu4p8xzUaTZn97AqnXdbk4uXFHRsbS2ZmJh4eHjRs2NDsOM1R/H04elT399ChupVzhDBVz549ee655xg/fjzBwcGEhYUxb948MjMzeeyxx/D396dBgwb8/vvvhmNiYmK466678PPzIywsjBEjRhgGNwGsXbuWW2+9laCgIEJCQrjnnnuKVBLk5uby7LPPEhERgZeXF3Xr1mXGjBkAnD17Fo1GQ3R0tGH/q1evotFo2LJlC6BrPtVoNKxbt46OHTvi6enJ9u3bUUrxwQcfUL9+fby9vWnTpg0rVqwo8nrXrFlD48aN8fb2plevXpw9e9b6b2oppGBXCRS+Ky6rGbbw8/Hx8WWuSflf2gBXUEo3MrAitRzWXHUiLEx3Yahfvz6gGxVrzuhFS2rsqlWrVuYSTaLyM2VErJ69a+yg7H525n5nr169Sk5OTonn9c2wTZs2xd3d3aI4TVU81uho3d/SDFuJKAWZmfbfTLj+FLd48WJCQ0P5559/eO6553jmmWe4//776dq1K/v27eOOO+5gxIgRXLt2jfj4eHr06EHbtm3Zs2cPa9eu5dKlSwwdOtSQXmZmJhMnTmT37t388ccfuLi4MGjQIENXotmzZ7N69WqWLVvGsWPH+O6776hbt67ZcU+aNIkZM2Zw9OhRWrduzauvvsrChQuZO3cuR44cYcKECTz88MNs3boV0NXYDx48mLvuuovo6GieeOIJJk+ebPZ5LSWDJyqBwv88y7tg6Z/PysoiNTW13E6YuqR1d/7VqlUr90IQFhZGTEyM0YuhdVed0P2MiorC3d2d3NxcLly4YLgwlseSgp00wzq/8+fPA+XfAIFpgxCKq+h3vKwaO1O/s8HBwbi7u5OXl8elS5dK5Al79a+DkrHm5YXRuPF/0zWJSuDaNSijad9mMjLAzPWt27Rpw6uvvgrAlClTeO+99wgNDeXJJ58E4PXXX2fu3LkcPHiQNWvW0L59e959913D8d988w1RUVEcP36cxo0bc9999xVJf8GCBdSoUYOYmBhatmxJbGwsjRo14tZbby1So26ut956iz59+gC6wuTMmTPZtGkTXbp0AXQVFH/++SdfffUVPXr0YO7cudSvX59PPvkEjUZDkyZNOHToEO+//75F5zeX1NhVAoWbO8or2Hl7exvmfjOlOVaXtOkdwstqBrLmqhP6JFxdXQ13UKb2syu8bqU5TbEycMK5HTx4kDfeeAPQ1VaVx96DJ6DsGjtTv7OF+90ai91eU52AsUJoOA88IM2wwjKtW7c2/K6fD7VVq1aGx/Tft8TERPbu3cvmzZvx8/MzbPp8r79WnDp1ioceeoj69esTEBBAvXr1gP/y36OPPkp0dDRNmjTh+eefZ/369RbF3bFQh9KYmBiys7Pp06dPkdi+/fZbQ1xHjx6lc+fORbpc6AuB9iA1dpWAOU2x+n1SU1OJj4+nWbNm5aQN+oKdKbUQ9myK1WvQoAEnTpzg1KlT9OrVq9w0UlNTDaP0pMbuxrBv3z769OnDlStX6NChg0nNGo5oirVGjZ1+n/PnzxuN3V5TnYBuGcPAwEBSU1PRXS6CpRm2svHx0dWeOeK8ZireYqTRaIo8pi8IabVatFot/fv3N1rLpa8A6d+/P1FRUcyfP5/IyEi0Wi0tW7Y0XB/at2/PmTNn+P3339m4cSNDhw7l9ttvZ8WKFbhcn6uncJemvLw8o3H7FqqZ1Dfz/vbbb9SsWbPIfvoZLkzpJmVLTlNjl5KSwogRIwgMDCQwMJARI0Zw9erVMo9RSvHmm28SGRmJt7c3PXv2NPxT1OvZsycajabI9oCdp1M3p8au8D6mjIzVJa1vXrK8xq7wcmIVqfnSJ1s4CXMHUOhjCwwMLHfWfamx03Hm/LN792569+7NlStX6NSpExs3bjSsmVwWew+eAOvU2BXep3js+fn5HD16FLBPwa5wLBBGy5YumDGPuLAHjUbXJGrvzcbVtu3bt+fIkSPUrVuXhg0bFtl8fX1JTk7m6NGjvPrqq/Tu3ZtmzZqRol/aqZCAgACGDRvG/PnzWbp0KStXruTKlStUr14dKNryVXggRWmaN2+Op6cnsbGxJeKKiooy7LNr164ixxX/25acpmD30EMPER0dzdq1a1m7di3R0dGMGDGizGM++OADZs6cyeeff87u3bsJDw+nT58+pOvn27juySefJD4+3rB99dVXtnwpJZjTx67wPqY0xeoGuerXVbW8xi4xMRHQVZ+bclEtjbEaO/0AClObYs2t+TD2+43GWfPPzp07uf3227l69Spdu3Zl/fr1Jk/uqf+8k5KSTBqYY421kPU1dnFxcSXmgrTke1s8H546dYqcnBx8fHws6gRuif/iDZPaOmE3Y8eO5cqVKzz44IP8888/nD59mvXr1/P4449TUFBAcHAwISEhzJs3j5MnT7Jp0yYmTpxYJI1PPvmEJUuW8O+//3L8+HGWL19OeHg4QUFBeHt707lzZ9577z1iYmLYtm2bof9fWfz9/XnxxReZMGECixcv5tSpU+zfv58vvviCxYsXAzB69GhOnTrFxIkTOXbsGN9//z2LFi2yxdtklFM0xR49epS1a9eya9cuOnXqBMD8+fPp0qULx44dM7oItlKKWbNmMXXqVAYPHgzoRuSEhYXx/fff8/TTTxv29fHxcWhtjiVNsaDrSG7KnDpeXvFkZ4OHRxjl7R4aqoslPj6B7Oz/do6N1dUO1qhRA63WBSPzF5uk+OAJ+K/G7uTJkya9Hn1NpSkXyJCQEMOyYjdqwc4Z849WC9u2/Un//v3IyMigW7furF79Gz4+fuV+h/WCgkINy4qdP59Q7ud/8aLuRsnV1ZXAwBCTz1NY9eoRuLq6kpeXx9mz54vkZ33tW0hI+fmwenVdrBcuxBfJh/v3HwSgWbPmFcqH5ggMlIKdsL/IyEj++usvXn75Ze644w5ycnKoU6cOd955Jy4uLmg0GpYsWcLzzz9Py5YtadKkCbNnz6Znz56GNPz8/Hj//fc5ceIErq6u3HTTTaxZs8bQDPvNN9/w+OOP07FjR5o0acIHH3xA3759y41t+vTp1KhRgxkzZnD69GmCgoJo3749r7zyCqCruV+5ciUTJkxgzpw53Hzzzbz77rs8/vjjNnmvSlBOYMGCBSowMLDE44GBgeqbb74xesypU6cUoPbt21fk8XvvvVeNHDnS8HePHj1UaGioCgkJUc2bN1cvvPCCSktLKzOe7OxslZqaatji4uIUoFJTU81/cUqp1NRUBShAnThxotz9Z86cadjfvG2h0o1RL2vbV04a7UxIo/xt+/b/Xs+hQ4csej3333+/Se9veHi4AtSaNWss+nyU+u8zsvQzdiRnzD/vvbdZgc/1z/o2BRkWftdqWPDdiqjg97t2OemfNCGNT8tJ41Gr5EPTtucUoKpVe8yMb11JzpyHhHAmTtEUW9pajzVq1Ci1/0xp0xaEhYUVOWb48OH88MMPbNmyhddee42VK1caaihKM2PGDENfpcDAQEO7uqX8/f259dZbadGihUnDsXv16oWP2R1XA4BbTdivKVCvjOfvMvO8JdWsCYUGR9G4ceNyB4EU5+Liwh133GHSvnfffTfVq1cvMrLpRuKM+Sc/Pw8oAPoCvwLmTavwn7stOKai3/F7y3iuOWDKlD49KP01uwEDzA2qAvoAPtx/fx87nlMIYSmHNsW++eabTJs2rcx9du/eDWB0pnalVJkzuBs7rvgx+vlzQNcZuVGjRnTs2JF9+/bRvn17o2lOmTKlSFt+WlpahQp3Go2Gbdu2odVqTVp4vG3btiQnJxtdj7I0+fk+uLl5mrCnN/n5x8nISC/xjIuLKwEBASafszT+/uBW6Jvn4eHBoUOHSEtLMzkNd3f3MpdlKuzrr7+moKDA7EXdK7uqnH8mTerDTTdtoVWrtuUOkCnbN6SmzjR5lJpGoyEwMKgC5wP4jLS0t42ut+zvH2Di97AN2dlJZGeXzOMeHp4W3NhVRH9cXdMICKha+UeIqsqhBbtnn3223BF0devW5eDBg0aH/V++fLnUfjOFR5UVHpCQmJhYZl+b9u3b4+7uzokTJ0q9MHl6ehqGNQOGi4Y5BRNrMKeg4uqaA5Scxd74vuDpWVraFX+N166Vdl7TX49Wq7Xr+60/l6kFBHuo6vmnc+fmQO71zXLVqpnbMFHx71VwsAYw9n3ONDkN3eBDY2nkY40YzVXR7FYZ85AQVZFDC3ahoaGEhoaWu1+XLl1ITU3ln3/+4eabbwbg77//JjU1la5duxo9pl69eoSHh7NhwwbatWsH6NaN27p1a5mzPx85coS8vDyTRqfq6UcJVrRJVlR+6enphgmiHU3yj3BGlSkPCVEVaZST3D7169ePixcvGqZSeOqpp6hTpw6//PKLYZ+mTZsyY8YMBg0aBMD777/PjBkzWLhwIY0aNeLdd99ly5YtHDt2DH9/f06dOsX//d//cddddxEaGkpMTAwvvPAC3t7e7N692+QaJK1Wy8WLF/H39zc0U+mbl+Li4qzSfCnKZuv3WylFeno6kZGRhhFVzsTZ8g9IHrI3yUNCVBEOGbJhgeTkZDV8+HDl7++v/P391fDhw1VKSkqRfQC1cOFCw99arVa98cYbKjw8XHl6eqru3burQ4cOGZ6PjY1V3bt3V9WqVVMeHh6qQYMG6vnnn1fJyckVjldGgNmXvN9lc7b8o5R8pvYm77cQVYPT1Ng5m7S0NMNSPFLbYHvyflc98pnal7zfQlQNUh8uhBBCCFFFSMHORjw9PXnjjTeKjP4TtiPvd9Ujn6l9yfstRNUgTbFCCCGEEFWE1NgJIYQQQlQRUrATQgghhKgipGAnhBBCCFFFSMFOCCGEEKKKkIKdjcyZM4d69erh5eVFhw4d2L59u6NDqpLefPNNNBpNkU2/zqlwXpJ/7EPyjxBVjxTsbGDp0qWMHz+eqVOnsn//frp160a/fv2IjY11dGhVUosWLYiPjzdshw4dcnRIogIk/9iX5B8hqhYp2NnAzJkzGTVqFE888QTNmjVj1qxZREVFMXfuXEeHViW5ubkRHh5u2KpXr+7okEQFSP6xL8k/QlQtUrCzstzcXPbu3Uvfvn2LPN63b1927NjhoKiqthMnThAZGUm9evV44IEHOH36tKNDEhaS/GN/kn+EqFqkYGdlSUlJFBQUEBYWVuTxsLAwEhISHBRV1dWpUye+/fZb1q1bx/z580lISKBr164kJyc7OjRhAck/9iX5R4iqx83RAVRVGo2myN9KqRKPiYrr16+f4fdWrVrRpUsXGjRowOLFi5k4caIDIxMVIfnHPiT/CFH1SI2dlYWGhuLq6lqidiExMbFELYSwPl9fX1q1asWJEyccHYqwgOQfx5L8I4Tzk4KdlXl4eNChQwc2bNhQ5PENGzbQtWtXB0V148jJyeHo0aNEREQ4OhRhAck/jiX5RwjnJ02xNjBx4kRGjBhBx44d6dKlC/PmzSM2NpbRo0c7OrQq58UXX6R///7Url2bxMRE3n77bdLS0njkkUccHZqwkOQf+5H8I0TVIwU7Gxg2bBjJycm89dZbxMfH07JlS9asWUOdOnUcHVqVc/78eR588EGSkpKoXr06nTt3ZteuXfJeOzHJP/Yj+UeIqkejlFKODkIIIYQQQlSc9LETQgghhKgipGAnhBBCCFFFSMFOCCGEEKKKkIKdEEIIIUQVIQU7IYQQQogqQgp2QgghhBBVhBTshBBCCCGqCCnYCSGEEEJUEVKwE0IIIYSoIqRgJ4QQQghRRUjBTgghhBCiipCCnRBCCCFEFSEFOyGEEEKIKkIKdkIIIYQQVYQU7IQQQgghqggp2AkhhBBCVBFSsBNCCCGEqCKkYCeEEEIIUUVIwU4IIYQQooq44Qt2M2bM4KabbsLf358aNWowcOBAjh075uiwhBBCCCHMplFKKUcH4Uh33nknDzzwADfddBP5+flMnTqVQ4cOERMTg6+vr0lpaLVaLl68iL+/PxqNxsYRC0dQSpGenk5kZCQuLjf8/ZBVSf65MdxIeWjOnDl8+OGHxMfH06JFC2bNmkW3bt2M7rtlyxZ69epV4vGjR4/StGlTk84neajqMyv/KFFEYmKiAtTWrVtNPiYuLk4Bst0AW1xcnA2/fTcmyT831lbV89CSJUuUu7u7mj9/voqJiVHjxo1Tvr6+6ty5c0b337x5swLUsWPHVHx8vGHLz883+ZySh26czZT844YoIjU1FYBq1aqZfIy/vz8AcXFxBAQEALB162F++OEKr77alJo1q8tdlJNLS0sjKirK8FkL6zGWf5SCL76APn2gSRNHRies5UbJQzNnzmTUqFE88cQTAMyaNYt169Yxd+5cZsyYUepxNWrUICgoyKJzGstDpTl8+DBBQUHUqlXLonMJxzAn/0jBrhClFBMnTuTWW2+lZcuWpe6Xk5NDTk6O4e/09HQAAgICCAgIQCkY+8TXxCUu5IcfIDAgiJatWtC8eXOaN29Op06d6NKli81fj7A+KaBbn/491ecfgE8+galTYd482LkTIiIcGaGwpqqch3Jzc9m7dy+TJ08u8njfvn3ZsWNHmce2a9eO7Oxsmjdvzquvvmq0eVavvGtQaeLPn6dXt254u7uza/9+mjZrZsrLEpWIKfmnand0MNOzzz7LwYMH+eGHH8rcb8aMGQQGBhq2qKioIs9rNHCTz0VcqA9oSE27yl9//cX8+fOZMGECXbt2ZfOGDTZ8JUI4txEjoFEjOHcO7rkHMjIcHZEQ5UtKSqKgoICwsLAij4eFhZGQkGD0mIiICObNm8fKlSv58ccfadKkCb1792bbtm2lnqe8a1Bp9ixdSq5WS2pODvf07ElycrLpL044DSnYXffcc8+xevVqNm/eXG4V9ZQpU0hNTTVscXFxJfZZOboX5zq25lb3P4Bo4HuaM5B2uALw8QsvWP9FCFFFhIbC779D9eqwbx8MGwb5+Y6OSgjTFK9VUUqVWtPSpEkTnnzySdq3b0+XLl2YM2cOd999Nx999FGp6ZtyDTLm8F9/GX4/lZjIkHvuITc316RjhfO44Qt2SimeffZZfvzxRzZt2kS9evXKPcbT09NQ5V1q1ffLL1Nr909syerFO9Oa4+r6ADH8xCUfXXX8b4cOcfzoUWu/HCGqjAYN4JdfwNsb1qyBMWN0fe+EqKxCQ0NxdXUtUTuXmJhYohavLJ07d+bEiROlPm/SNciIw0eOADAc8AO27NrFs2PHoiRjVSk3fMFu7NixfPfdd3z//ff4+/uTkJBAQkICWVlZVknf1RVeed2dv/7SUL8+XLx2MxruAuAzqbUTVcC2bdvo378/kZGRaDQafv75Z6ul3akT/PADuLjA/PlQRt9zIRzOw8ODDh06sKFYV5sNGzbQtWtXk9PZv38/ETboWHr4wgUAhg0dyhJPTzTA/K+/5tNPP7X6uYTj3PAFu7lz55KamkrPnj2JiIgwbEuXLrXqeTp1gv37daP8FBMBWLhuHVevXrXqeYSwt8zMTNq0acPnn39uk/QHDIDZs3W/T50K331nk9MIYRUTJ07k66+/5ptvvuHo0aNMmDCB2NhYRo8eDeiaUUeOHGnYf9asWfz888+cOHGCI0eOMGXKFFauXMmzzz5r1bjycnP5NzMTgFYjR3L3p5+ib+x94YUXWLNmjVXPJxznhh8Va88q6IAAeP992LDhNqAFmdojLHj1VV6w0QVRCHvo168f/fr1s+k5xo6Fs2fho4/g8cehdm3o3t2mpxTCIsOGDSM5OZm33nqL+Ph4WrZsyZo1a6hTpw4A8fHxxMbGGvbPzc3lxRdf5MKFC3h7e9OiRQt+++037rrrLqvGdXLnTnLRNcHW7tULvL2ZsGoVMb//zgKtlgceeICdO3fSokULq55X2N8Nv/KENaSlpREYGEhqaqpJfR169YItWxYAT1DH25uTaWm4ud3wZexKzdzP+Eal0Wj46aefGDhwoMnHGHtvCy5fZt2kSfQcPBifrl0hJAStFh56CJYu1fW/O3wYvLxs9EKE1Ukesh1T3tvlU6cy9N136eTlxS59V6P4eHJbtqTvlStsBe666y5+++03+wUuTGZO/rnhm2IdYcIEgIfQEMK5rCxWzZnj6JCEsJucnBzS0tKKbMX9/b//cfeiRVS7917uDA3l02rVOHVnX+Y3/pCIatmcOgUzZzogeCGc1OF//gGgZeG+exEReHz1Ffquqwf37LF/YMLqpGDnAPfcAw0beqPQ9bmY9e67Do5ICPsxZQ6u5IIC6vj4kAOsA8anpNB4wwbaTZ9EqyttgHjeeUdh4iwPQtzwDh87BkBknbZcvFjoiSFDaHL//QCcT0wk83o/POG8pGDnAC4uMH48wBjAjT8vXWLP2rWODUoIOzFlDq7+L73EmYwMYmJi+Gj6dHq3b4+7qyungPUcx4dbuHYtkxdftH/8Qjijw4mJAMzY9jS1asGdd8Ly5ZCTA9VeeonQ6/uVNc2KcA5SsHOQRx+F4OBIYBgAn770kkPjEcJeTJ2DS6PR0KxZM1549VU27t1LckoKP/30E+EBAVzjDPA4y5YpNm2yb/xCOJustDROXl+CLF/bBqVg3ToYOhRq1oQJi9pQCx8Aju/b58hQhRVIwc5BfH3hqacAxgOw9PBhLh4/7siQhLBIRkYG0dHRREdHA3DmzBmio6OLjPyzBn9/fwYOHMiK337DTaMBlgMf8dzoXPLyrHoqIaqUQ2vWowUghGbNanDgALzyCkRGQnIyzJrjQTRDATi+a5cjQxVWIAU7B3r2WXBz6wDcQh4w18rzFglhD3v27KFdu3a0a9cO0M3j1a5dO15//XWbnO+WW2/lU8PIicnEnNjG559IyU6I0rzx3ikAXGnGTz+50Lo1vPOObi3mX38F3WxFjQE4fviw4wIVViEFOweqVQuGDtWgr7X78o8/yLXSihdC2EvPnj1RSpXYFi1aZLNzPjNuHI8OGQJogQd4beopEuJl5iYhilu6FNYeuAJA3yhXmjT57zk3N7j7bv2k37qCXcxp69a0C/uTgp2D6aY+GQiEkqTVsmfJEscGJIQT0Gg0zP3f/+jQqBGQTGb+Q7ww8JCjwxKiUjlyBEaNAtDVwt17i/FlyqpVg5qBkQAcS0qWtWOdnBTsHKxjR+jWzQ3QTaO/7ccfHRuQEE7Cy8uLHzduJMjLH9jP9/98zF/f/OvosISoFNLSYPBgyMwET/YC0LJbt1L3v6llJKAhoyCb5ORkO0UpbEEKdpWArtZOl+G27pYRSUKYqnbt2qz89Sc0uADf8tjYFSit1DaIG5tSupkXjh+HyPAUcrgEQIsylim7uXs1oDYAxw4etEOUwlakYFcJ3HsvhAZ1BmDbpcsU5Oc7OCIhnMdtvXsz6RnddEEnsmfxwyubHRyREI518iRs2gTu7vDmiFUA1HJ1Jbhu3VKP6dDDD8MAir/+skOUwlakYFcJuLrCgIHtAH+ukcfBNWscHZIQTmX6p9MJ9a4LJPPsR19SkKd1dEhCOEyjRrBnD/zf/4E6vx6AltWqlXlM+w4a9AW7Q7uibRyhsCWnWnne2JqS5XGWxab7D/RkwaJbgLVsW7qMdvfe6+iQRBVTlfOPu7s7337zOXc9eA8pBct5Y2hv3v7paUeHJSqpqpwX9Bo21G3Pv6UbVNSyfv0y9w8NhWCPSFJyYc+Rc/YIUdiIUxXsgoKC0Gg0Ju+v0Wg4fvw49cv5QlcGvXuDq+ZWCtRa1mzdyzhHBySqnKqcfwD6PXA3HV+4kz0X1/LBz7OYnDICv2AfR4clKqGqnhcKO3x9ovCW1+eZLEuziBrsOAcnLl2ydVjChpyqYAewYsUKqpVTpQyglOKuMjqKVjZ+ftChYRv+OQF/XYxDKWXWPx4hTFFV84/eyo1zqde8PXn8y/AeL7Hq4BeODklUUlU9LwCgFIfT0wFo2atXubt3alOHHecgMfsSWq0WFxfpreWMnKpgV6dOHbp3705ISIhJ+9evXx93d3cbR2U9w0Z25Z/XvMhUmRzbuZOmXbs6OiRRhVT1/ANQu1ldHr75Cb7950NWH1rMkd3P0eKmpo4OS1QyN0JeAEjcu5fLSqEBmt1xR7n733ZPUz5Z7YGWXGLPnKFugwa2D1JYnVMVx8+cOWNyRgQ4fPgwUVFRNozIugY+VA3oBMC6b35wbDCiyqnq+Udv/h9v4a3pCGRy311POTocUQndKHnh8Nq1ADTw8MAnMLDc/W+6OxJoCED0RhkZ66ycqmBX1dWvDyGeun4QK9fKfHZCWMLDz4u3HxoLuHEsaTv/m/u9o0MSwiEO79oFQMuwMJP2D4t0xUtTB4Atvx+wWVzCtpyyYJeZmcn8+fN57LHH6NevH3fddRePPfYYX3/9NZmZmY4Or0J6tW4JwL74Ew6ORNyILl26xFtvveXoMCpswuKRhLuNAGDs+Bec/v+CsJ3z58+TkZFR4vG8vDy2bdvmgIis5/DRowC0bNzY5GNq+YYCsO/gGZvEJGzP6Qp2MTExNG7cmEmTJpGSkkLt2rWpVasWKSkpvPTSSzRp0oSYmBhHh2mxx57pCbiSqb3M6SOyPJKwr4SEBKZNm+boMCpM4+rC/Kkjgdqk5ybw3CPPOzokUcnEx8dz8803U6dOHYKCgnjkkUeKFPCuXLlCLxMGHFRmh+PjAWh5880mH9M8sgYApy5dtElMepfi4hjSpg3P9enDkR07bHquG41TDZ4AGDt2LN27d2fx4sV4eHgUeS43N5dHH32UsWPHsnmzc84+32d4fVweb4uWvXz74QreXPSqo0MSVcjBcpYKOnbsmJ0isb173uhBu48nsj9jPAtXLuTJ7Y/SpYy1MsWNZfLkybi6uvL3339z9epVpkyZQs+ePdmwYQPBwcGAbkSss1JZWRzOygKgZZ8+Jh/XtUMdVh+Hy1m2K9jl5+Ux7Kab2Hp9WpXPN26kW1AQzwwcyODXXsPTCaeVqVSUk/H29lZHjhwp9flDhw4pb29vO0akVGpqqgJUamqqVdJr7P+QAlS7iP5WSU9UnLU/Y0fRaDTKxcVFaTSaEpv+cRcXF7vGZMv39uC6iwpGKEDVDQhX2dnZVj+HME1ly0ORkZHq77//NvydnZ2tBgwYoNq2bauSk5NVQkKC3fOCpYy9t+d+/VUByh1Ubk6OyWkdWLpZAQo0KunyNVuEq17s2vX6OfwUDFDgev1vVDVc1csREeryzz/b5NzOypz843RNscHBwZw4UXr/s5MnTxrutpxVv/ZNAIi5dMTBkYiqJiQkhPnz53PmzJkS2+nTp/n1118dHaJVteobwcM9JgJhnE1L4K1HH3N0SKKSSE1NLXKt8PT0ZMWKFdStW5devXqRmJhocdpz5syhXr16eHl50aFDB7Zv317m/lu3bqVDhw54eXlRv359vvzyS4vPrXf4jz8AaOrri3ux1q2ytLrnZjQEAIrfl+2vcBzFrXjuOT4yNL0uwsvrZ+Ac8AYQyRUKeD8+noYDh7PlzelWP79RWi0cOgRJSfY5n63ZoaBpVW+88YYKDAxUH374oYqOjlbx8fEqISFBRUdHqw8//FAFBweradOm2TUma9+J/vvzX4a7lwN7L1glTVExla22wVJ33HGHmj59eqnPR0dHK41GY8eIbP/exscr5enyvQKUCxq1b8MGm5xHlK2y5aFWrVqpFStWlHg8Ly9PDRw4UNWuXduiGrslS5Yod3d3NX/+fBUTE6PGjRunfH191blz54zuf/r0aeXj46PGjRunYmJi1Pz585W7u7vR2Epj7L19v1s3BagHGzc2+zUEapooQI26+wuzjy1LzMKFyhfN9evbS2rQIKVyc5XasUOp6dOV6t49V7m5rVDQ5Po+rurZHg+qgoICq8ZRxNmzSvXqpRQo5eqq1O23KzV3rlIJCVY7hVZb8TTMyT9OV7BTSqn33ntPRUREGJqN9E1IERER6v3337d7PFb/h5Wfr7xpqAA1eshc66QpKqSyXZQs9eOPP6r//e9/pT5/5coVtWjRIjtGZJ/39q3XchXcpwDVxi9A5UqTrN1Vtjw0adIk1bdvX6PP5eXlqXvvvdeigt3NN9+sRo8eXeSxpk2bqsmTJ5caR9OmTYs89vTTT6vOnTubfE5j7+2IiAgFqHcGDjQjep1Wfrqm0g61XzD72NKk7d6tmrq4XC+w9VT16+eqq1dL7peZqdQnH6cqd5cHDBUcdYM6qTOnL1ktluzsbJV46ZL6Z+pH6mvPTupF+qlhPKxe5B61nFbqAl5KC0p1767Uxx8rtWyZUuvXK/X330odO6bUpUu6Emkhly4ptXq1Uh99pNSECUoNHarULbcoVTcqX3m45Stvz3wVFaVUu3ZK9e2r1EMPKTVunFKzZim1dq2ufGkov+bnK5WXVyR9c/KPRinn7R165swZEhISAAgPD6devXoOiSMtLY3AwEBSU1OttlD0zUG3szv1D+qHPMKppEVWSVNYzhafsdCxx3t77Ro0qBNHQlJb4Arv3Hknr/z+u03OJYyrbHkoPz+fa9eulRpLQUEB58+fp06dOianmZubi4+PD8uXL2fQoEGGx8eNG0d0dDRbt24tcUz37t1p164dn376qeGxn376iaFDh3Lt2jWjK17k5OSQk5Nj+DstLY2oqKgi7217d3f25+ez6sMPuffFF01+DQAPNR3ID8dWEez5AFeyKz5ZvkpIYFiDBiy/dg2IxNNzL7t2hdO2benHXLygZcDN77Dn4rtANq6acN555wdeerkn5qx0VlBQQHR0NL/8spVfftnCkSN/kpOTUu5xGtzxwp9gPAjFkzDciURDbbTUJQ9fl0COhd/NQe9e7E1ry9nL1QH9MqC5wNXrW0qh31MLbVeBNOAakA1k46LJxtM1HfeCqwzuOYSFmz42xGNO/nG6UbGF1atXz2GFOVsbfHMDdm/4g7PJB8jJAU9PR0ckhPPy8YH3P47ikUdmASOZtnYtg5YupdmwYY4OTTiIm5tbmRdIV1dXswp1AElJSRQUFBBWbELgsLAwQyVEcQkJCUb3z8/PJykpiYiIiBLHzJgxo8xpiQrS0ogpKACg5Z13mvUaAG5pH8UPxyAlJ46sLPD2NjuJQsEU8EnnztcLde7ACubMKbtQBxBZ04XdF17ji2HVGL/sE/LVKSa/chtTX72JBpE96NO9Jw8M78LNtwXi4ZIPx47BoUPE/7WLv3ZG88+Jc2zK1nKo4Aq56lopZ/HDVeOPl08gPj5+ZGZeJSvrEkqlo8gjiytkAUbHB2uBi4eA964/oEGDFy5oKSDH2BHl0irIyocs4FgF5hF0qoLdxIkTmT59Or6+vibtP2XKFF566SWTFnqubEY8fQdTNsxDywHW/HaVQYODHB2ScHI3Uv4x5uGHYdas4ezf/wO5/M6oRx7hz3vuwcXE90NUHbbOCxqNpsjfSqkSj5W3v7HHC8czceJEw9/6Gju9fE9PZn/5JTGHD1O3eXOTYi6s821t4QeA4xw8CJ06mZ2EQcIvv/DyuXPX//qExx7rwuOPm3782KVjue/2IHo/NYsY9lCg/Yfj5//h+Pcf8sX3wbhyG9WoRganyOYoingjqQQAtxJJI3qipTdxtG3sRtP/vYHPzS1L7H3mTBbbtiWye3ciR48mkJR0gatXz5ORcYFr186Tm3sBpS6hIROt0hfiFIosCgqf1dub4JAQgkJCCPL2JjAxkaBz5wgsKCAQCAwKwjc9Ha+CAtzQkKqJIKlRLxJq96D3YxWYmskKzdV24+LiohITE03e39/fX506dcqGEenYpO/ItWsqgBoKUPf2Xma9dIVFKlv/IEvcUPmnFJs3KwWx16dZQC24916bn1PoVKY8ZKu8kJOTo1xdXdWPP/5Y5PHnn39ede/e3egx3bp1U88//3yRx3788Ufl5uamcov14yqNtd/b9LNnDf3bPnw7vkJpfd7rtutp3aRatdKqzEwLE9q+XZ3ud6+aWqu7au3RSrnja4ix6KZR0Fi5ugxTYdXeU0NvXaWWP/mrSp74tlKPPKLUHXco9fbbSpkxBUxZ8vPzVWpqqoqPjVUnV61SJ3/+WSUnJqr8/HzjByQmKvXqq0oFBekGbIBSrVsrNXNmmQM2zPmMnarGTilF48aNy7zzKcyplxHy9qZjQBib0hLZumMXSt2PiS9bCKNuqPxTip49YcCAKFatehN4kcmrVzP4wAGC2rRxcGTCnmyVFzw8POjQoQMbNmwo0sduw4YNDBgwwOgxXbp04Zdffiny2Pr16+nYsaPR/nX24FenDn6aADJUGtvWH+TFqeGWJaQUX/95GAAPt/tZuVKDj4+FQd16K/XW3MrbwNvo+kj+vf1P/m/RL5yNS6R5u5vo0LEDnTq1pmZNfyPdl+628MRlc3V1JSAgQNesX6jWtFTVq8P06fDSS7B+PTRoAO3aWTUmpyrYLVy4kNjYWGrXrm3yMcX7LjiToZ3qsGnDIVKzdrJ3L3Ts6OiIhDO70fJPaT74AH799TkKChZwmaO8MXgwn5465eiwhB3ZMi9MnDiRESNG0LFjR7p06cK8efOIjY1l9OjRgK4Z9cKFC3z77bcAjB49ms8//5yJEyfy5JNPsnPnThYsWMAPP1R80EJF1PUO4vC1NA4cOW1xGpc2b+ZA3mUABg8cRKNG1opO10fyll49uaVXT+slak8BATBkiG3Stqju0YECAwPVt99+6+gwirBVE8OZefMMc/mMHZts1bSFeSpTM1JF3Ej5pywvvqgUbFCAcgV1cM4cu537RlXZ8pAt88IXX3yh6tSpozw8PFT79u3V1q1bDc898sgjqkePHkX237Jli2rXrp3y8PBQdevWVXPnmjfNlS3e2wcbtFWA0jBVZWVZlsandw64fg3rqP76y2qh3ZCq9Dx2X3zxhfL391eDBw9WSUlJjg5HKWXDf1hXr6raBCpAhQQtssokh8Iyle2iZKkbKv+UIT1dqZo1lWFuux7e3kpr6dVLmKSy5aHKmBcsZYv39sN7771eKBum/vnHsjSae9bVXb/8psn1q4Kq9JJiY8aM4cCBA6SkpNCiRQtWr17t6JBsJzCQYfVqAJB8dQ27djk4HuH0bqj8UwY/P/jkE4CPAW+2ZmWx1JyhesLpSV4oW5P27a//dox9+8w//vLu3cTkxAIwcsRg6SNuR07Vx06vXr16bNq0ic8//5z77ruPZs2a4eZW9KXss+SbWAkNefB+Pnz3XeB3vv8+ly5dTF/zTwhjbqT8U5YhQ+D22+uwceMU4HVeXLKEe954A78mTRwdmrATyQula9K9+/XfjrN5UwFPP+1q1vEL3vwc3WRv7Rg/ueSUIsJ2nLJgB3Du3DlWrlxJtWrVGDBgQInMWFV0fP55gt/9mBTS+f67TXz66Z1mzbothDG2yD9z5szhww8/JD4+nhYtWjBr1iy6davAXEw2ptHA559Dy5Yvkp+/iAvqNO8MGsSMmBhHhybs6Ea5lpirXteuuAIFXOOX1RfJyooya6LiBZv2AtAgpA9mjFER1mCHpmGrmzdvnvL391eDBg0yay4iW7F135HHI2pe7+swVhXqgyvsqLL1D6oIW+Qfcxc+L8zR7+2UKUrBagUod1DHKtngkqrC0Z+zMZXtWmIpW723jTw9r197NqmffjL9uKSYowrcFKA+eGWXVWO6UVXpwRN33HGHCg4OVosXL3Z0KAa2/of1y9NPX89cUWrMGOmB6giV8aJkCVvlH3MXPi/M0e9tRoZSUVFaBf0UoPr4+qoCi2dRFaVx9OdcXGW8lljKVu/t3ZGR1689X6qHHjL9uMl3Pq8A5UJLlZFh1ZBuWFV68ERBQQEHDx5k5MiRjg7Fbnq/9BKeuABxLPlhHwUF5R4ihFG2yD+5ubns3buXvn37Fnm8b9++7Nixo8T+OTk5pKWlFdkcydcXZs/WAJ8CXmzIzOSze+91aEzO7sqVK4ZlsSqrG/FaYq4mDRpc/y2aX36B7GzTjvtui26kX9uIbsiKffbndAW7DRs2UKtWLUeHYVfeDRrQNzgIgCspv7F1q2PjEc7LFvnH3IXPZ8yYQWBgoGGLMmW2dhsbMAD69WuEbpQsTPrjDw5+951jg3IC2dnZ7N+/n2/mfMXjg56gXYOuBHrXICQkhON7jzk6vDLdiNcSc/UeMQIAF34kPV3L+vXlH3Ph31jOZ+8HYPzzg20ZniiF0xXsblQD+9x+/bfVLF3q0FCEMMrUhc+nTJlCamqqYYuLi7NXiKXSaOCzz8Db+xmgP7nAg6NGkXXliqNDqzS0Wi3Hjh3j0w/n0a/DfYT7NMDH25f27dszauxoFv68gOjTO0nL1q008MdKmZ/J2d3+yCMEurigJRHYwfLl5R8z/dmvgTzcaczDk3rbOkRhhAz/cRL3vPgimmXLUOxl2bJYPv+8Ng5aRlCIIkJDQ3F1dS1RO5eYmGh0GSZPT088Sy7k6HANGsDcuRoefXQB0JqY3ARe6t2bz/fvd3RoDqGU4sCBGBbMX8P6NWs5E7eXvIJUI3sGA61wpwmR7uE0DazOTXVqcE+/TvYOWViZh4cHA1q14tsDB4AVrF59Kzk5GFmH9T8rt28D4Jaom9G4yOR1jiA1dk6ixk030dnXD4CrV9ewaZODAxLiusILnxe2YcMGunbt6qCoLPPIIzByZHVgMQBfREfz6/vvOzYoe8nLI+Wbhcy84wk6V++Fj1s47dq15PM5kzh+dtP1Qp0XcCshLo/TM/Jd3npwHRu/3suFY7+Ro53H2dy3WHv5OabvGUbt7nUd/IKENQx58kkAXFlGWpqWYtm8iCP7L5OUuxOAyROln6rD2Hokx43AXqO93rvjjusjlPqpxx6z6alEMZVtRF9lo5/uZMGCBSomJkaNHz9e+fr6qrNnz5Z7bGV7b9PTlWrSRCmYoAAV6uKq4k+dcnRYNqHVatWBAzFqVN/nVIRrMwWu1//H6Dcv5U5v1ZrH1Phak9UfT/1Ppe/5V1myPlRl+5yrElu+t1lZWcrfxeX692GnGjmy9H3vv/UjBSgfaittfr7VY7mRmfMZS1OsE7n3+eeZvG4d8Ac/rkzjyy8D8JCFKEQlMGzYMJKTk3nrrbeIj4+nZcuWrFmzhjp16jg6NLP5+cGyZXDTTe+Qm/sHSdqDPNqrF2vOnMGlCswOnpeXx/r125kz5xe2bVlNxrXTRZ7X0JiowK7c3rYjo4a1p/NdtXCpFQmu5q08IKoGLy8v+jdvzveHDwMrWLWqs9Hm2ORk+GWnrimpd502aOT74jDO/1/qBtK0Xz8aengAuaSmbTRphJIQ9jJmzBjOnj1LTk4Oe/fupbthSSLn07o1zJ7tDfwAeLEuNpbXR4yo9FN4lCY1NZX/+7+l9OjxEL6+1bnnnt6sWTPreqHOAw96cEvkRBZ+cYis7GOcu7qQBVvG0vWZLrjUiZJC3Q1uyPV1lF1ZSmqq4o8/ij6flwd33xlDdsE6AKZO7G/vEEUhUrBzIhqNhnsNCzOv4vPPwUmvM0JUek89BUOHNgc+AeCd77/n4R49yMrKcmxgJoqNjuazcePpWLcdwUEhPPzwA2zb9gN5ealAdfy5jwGMZP0tz5J1fAF/XviYR8e0LLNjvLgx3fn00/hqNBRwHthTYnTsCy/A33veAgro7lODTmMec0SY4jop2F03Z84c6tWrh5eXFx06dGD79u2ODsmoAdc7ssJvrFuXz8yZDg1HiCpLo4F586B+vaeAuYAr32/fTs+mTYm/eNHR4RV19izq88+JHjaMafXq0cLNlzrt2vH87E/Zey4aRQHQFF/G8gDP8je1SG1/lp83P0afPz/GpVGDck8hblzePj7c07Tp9b9W8PPPkJur+2vBAvjss33AUjTAZx+9CbLermPZvstf5VeRdS6Vsm+n4LzcXFXN0JF1m3J1VerPP62XfmZmpjp+/LhKSEiwXqIOotUqlZWl1JUrSl2+rPvdgj7fSinp+G1Llf293btXqcBArYI/lAuBClC1fH3Vvn/+cXRoKmvvXrX2ttvUsxqNikJTbOCDRsGtystluhpS/3v1x9NLVf6ylUrt36/U1at2j7Wyf87OzB7v7fL33lOAcqWOAq36/Xel/vpLKXd3pUA3sG94RITNzn+jM+cz1igljXmdOnWiffv2zJ071/BYs2bNGDhwIDNmzCj3+LS0NAIDA0lNTSUgIMCWoQIwsmVL/nfkCA097+Zkzq/UrAn790P16qanoc3MZMWzz7J5xw7OZ2QQl5nJ+WvXSM7LM+wT6elJu4AA2gcH075aNdrVqEHtW29FM2gQNGxovReUnQ2XLkFgIAQFGR5WCrKyIDUVrl4tuqWkQFISXL6s+6n//coVuHZNd1xWVsmmahcXXed4/VatGtSsqdtq1frv96goqF//v+Ps/RnfSJzhvT1yBO66SxEbewpX7qKAE/i4uvLt4sXcN3y4XWOJj49nzeef8+s337AhIYHMIs96A33QaO7lth79eOqZSO69F7y87BqiUc7wOTsre7y3mRkZVA8IIEspYB933dWOvXvh0qXNwG24Acd+/536d95pk/Pf6Mz5jG/4gl1ubi4+Pj4sX76cQYMGGR4fN24c0dHRbDVh/S57/8Nas2ABdz/xBAA1PN8mMWcqffvCmjUm9HHOzWX7lClM/Owz9hQqxBXmhgf55KG78S8qEGgFtAoOplWnTrQaMoQWgwbh6+eHi4sLrq6uhtUGtFotqampJCUlkXz6NAl/7uTs30eJPZdMYkoOSZn5XMnWclWryECRgyv5Lt66DQ/yCtxRyhXdxcoP8L3+U7/5XH+u8E9PQAsUFPpZAOQDuUa2nOtbdpHf/d28SMt70/C65aJkO87y3sbHw913w/79V3HhfrRsBODem25i/Ouv0/Puu42utFFRBQUF/LN9O2sWLeL3TZvYW2KljgjgHuBumjbtw+OP+/DwwxARYfVQKsRZPmdnZK/3dkjjxqw8cQJ4BXgHUPho2nFNHWBsy5Z8fuiQzc59ozPrM7Zx7WGld+HCBQWov/76q8jj77zzjmrcuLHRY7Kzs1Vqaqphi4uLs3sTwysPP2xocnHXLFCg1FtvlXFAfr469cEH6j4fH8Nxbngpf4+xCr5UsEbBQQUpCrQK0hX8qWC2gscUtFHgVqypp/RNg6vS4GLy/pVt89bUKvL2STOS7TjTe5uerlS/fkpBnoLxRb4zrX191TdDhqis3bstb/NXSmnz89XptWvV4scfVw82aKCquRafWw4FNymYpmCvCg7WqrFjlfrnnwqd1uac6XN2NvZ6b3+YPv16c2x9BVrl77X0+rx1qPhDh2x67hudzGNnAVPXuQTdIubTpk2zR1ilevvbb8m4coXZa9aQr54AAnnjjfvo2hV6F16er6CAlIULeffll/n0Sgp5KHRjZp4gn7dIz9Ut+eTvD40a6VpYGzQANzc/EhNv4dKlW0hMhMRESEjIISPjX+BQse18ifh0nbX1/IBQIAQN1fB0C8DP2xd/P1+CggIIqRFEaEQwQe65eCWew+PiSbzijuF+NR4PstCSSyaQCWRc39KBrOvbtUI/c8BQc+ji6oqrmxsubm64ursblrLy8PLSbT4+eLi74+XmhpeLC54aDZ7o5tYPq1bNSp+UqEr8/GD1ahgzxo358z8Bnibc9TVSCn7iYGYmj69YwcsrVvCory/tmjenSZcuNO7XD79u3cDXt2SCBQXkxscT/eOP7Fizhr+io/krMZH4Yg0prvhRwF3AXcAduLqGcdddGh55BO65p+wlnoSwlrufew6v114jm9NUD9iJT+YTpAPjb7uN8JYtHR2euE6aYi1ois3JySEnJ8fwd1paGlFRUXZvYtBqtTzZrRvf7NiBC65oWU2NGncxciTkZReQ+M9vRO//jBN528jn+hAm+gAfExraiuHDYfBgaNYMQkN1owDLc+0aJCTomqUSEiD+XC4X952iIC0FrmWgycpAcy0drqXjoXKp2zSSqM71Ce/emPCmQVSrpuvnZpKzZ2H7dt3wK19f8PH5b/P21v308tL97uWl29zdTXshZpJmJNtxxvdWKfjgA3jtNd0cXpBCiO9naHNnkZKXUmL/SKCJnx9Bvr6kZGWRkp1NSn4+KVot6UbSd8EFH5cWZGj7A/2Azmg0rtxyi4b774dhw8DIMryVmjN+zs7Cnu/toIYN+fnUKVq4uHBEqyXYxYXTFy4QFB5u0/Pe6KQp1kw333yzeuaZZ4o81qxZMzV58mSTjndkE0N+fr4a1rLl9eZPTwV/KPhFQZ9iTTdtlIvLb6p/f6368UelcnLsHqpTk2Yk23Hm9/bCBaWmTFEqKEgpXXEvT/n5LVUt6z2gGoc2V0HuPsXyYWlN/z4q2KOnctG8o2CrgmvX01PqlluU+vRTpc6fd/SrrRhn/pwrO3u+t9+99lqR7+4HDz9s83MKGRVrtqVLlzJixAi+/PJLunTpwrx585g/fz5HjhwxaUkkR9+J5uXmcl/jxvxy7lyRxzVoaBrWjVv7vUr7TrczaJDG6e7yKwtHf8ZVWVV4bzMyYOFC+OQTOHOm+LMpuLsfI8T3AK6aNDJywki9VgOoBgRf30IAXU1zzZrQsyf06AH9+ulGa1cFVeFzrqzs+d6mpqRQo1o1coFIDw9OpqTg7eNj03MK8z5j6WOH869z6e7hwbIjR+hfvz4bExMJcnHhyd69GfPZZ9Rt0sTR4QlR5fn5wXPPwZgx8PPPsG6droB3+jScOxdMXl5nEq52LnKMi4uuOTUiAlq0+K8wV7++TXoTCGEVgcHBDGzXjmX79/P2K69Ioa4Skho7K6gsd6K52dn8f3v3Hd5U+fYB/JtuOhldjDJklAJllVWwDHmpoDJUlCUiolAVsSAIiArI/IEiiAzZCLJEEEUBUTa1IIW6imzsplBKWwqkI/f7x9OTNG2aJmlWk/tzXbmanJyc8+Qkd8+dZ51TX32FzkOGwMPHx2LlsEXW8hnbIls/toWFQFKSSPLy80UiFxgo5p20p0uw2vrnbEnmPrY5OTm4dOkSOnbsaPJ9MYFr7MxMyo1zcnIsXBKgw9ChKLKSstgS6Xjy7yDjs6b4MZVatcStpLw8zevaKo4h07FEDAUHB9t0zFobfeKHEzsjyM0V49qCgoIsXBJmarm5ufDh2lCj4vixLxxDxscxZD90iR9uijUChUKB1NRUeHl5Kee+k6ZASUpK4mYHMzD18SYi5Obmok6dOnDQeb4WpgtN8QNwDJkbx1DVxecgy7Om+OEaOyNwcHBAvXKGrnl7e3NQmZEpjzfXMpiGtvgBOIbMjWOo6uFzkPWwhvjhn02MMcYYYzaCEzvGGGOMMRvBiZ2JuLq6YubMmXDliziaBR9v28OfqXnx8bYt/HmalzUdbx48wRhjjDFmI7jGjjHGGGPMRnBixxhjjDFmIzixY4wxxhizEZzYMcYYY4zZCE7sTGTlypVo1KgR3NzcEBYWhpMnT1q6SDZp1qxZkMlkarfAwEBLF4tVEsePeXD82C6OIfOwxhjixM4Edu7ciejoaMyYMQMXLlxAREQE+vXrh8TEREsXzSa1bNkSaWlpyttff/1l6SKxSuD4MS+OH9vDMWRe1hZDnNiZwJIlSzBmzBi89tprCAkJwdKlSxEUFIRVq1ZZumg2ycnJCYGBgcqbn5+fpYvEKoHjx7w4fmwPx5B5WVsMcWJnZPn5+YiLi0NkZKTa8sjISMTExFioVLbtypUrqFOnDho1aoShQ4fi+vXrli4SMxDHj/lx/NgWjiHzs7YY4sTOyO7cuYOioiIEBASoLQ8ICEB6erqFSmW7OnfujK+++gqHDh3C2rVrkZ6ejq5duyIzM9PSRWMG4PgxL44f28MxZF7WGENOFtuzjZPJZGqPiajMMlZ5/fr1U94PDQ1FeHg4GjdujM2bN2PSpEkWLBmrDI4f8+D4sV0cQ+ZhjTHENXZG5uvrC0dHxzK/jDIyMsr8gmLG5+HhgdDQUFy5csXSRWEG4PixLI6fqo9jyLKsIYY4sTMyFxcXhIWF4fDhw2rLDx8+jK5du1qoVPZDLpfj4sWLqF27tqWLwgzA8WNZHD9VH8eQZVlDDHFTrAlMmjQJI0eORIcOHRAeHo41a9YgMTERUVFRli6azZk8eTL69++P+vXrIyMjA3PnzkVOTg5GjRpl6aIxA3H8mA/Hj23iGDIfa4whTuxMYMiQIcjMzMTHH3+MtLQ0tGrVCj/99BMaNGhg6aLZnOTkZAwbNgx37tyBn58funTpgtjYWD7WVRjHj/lw/NgmjiHzscYYkhERWWzvjDHGGGPMaLiPHWOMMcaYjeDEjjHGGGPMRnBixxhjjDFmIzixY4wxxhizEZzYMcYYY4zZCE7sGGOMMcZsBCd2jDHGGGM2ghM7xhhjjDEbwYkdY4wxxpiN4MSOMcYYY8xGcGLHGGOMMWYjOLFjjDHGGLMRnNgxxhhjjNkITuwYY4wxxmwEJ3aMMcYYYzaCEzvGGGOMMRvBiR1jjDHGmI3gxI4xxhhjzEbYZGK3cuVKNGrUCG5ubggLC8PJkyfLXTctLQ3Dhw9HcHAwHBwcEB0dbb6CMsYYY4wZkc0ldjt37kR0dDRmzJiBCxcuICIiAv369UNiYqLG9eVyOfz8/DBjxgy0adPGzKVljDHGGDMeGRGRpQthTJ07d0b79u2xatUq5bKQkBAMGjQICxYs0Pranj17om3btli6dKle+1QoFEhNTYWXlxdkMpkhxWZWjoiQm5uLOnXqwMHB5n4PWRTHj33gGDIdjiHbp0/8OJmpTGaRn5+PuLg4TJs2TW15ZGQkYmJijLYfuVwOuVyufJySkoIWLVoYbfvMeiUlJaFevXqWLoZNSU1NRVBQkKWLwcyEY8j4OIbshy7xY1OJ3Z07d1BUVISAgAC15QEBAUhPTzfafhYsWIDZs2eXWZ6UlARvb2+DtllUBDg4APxjyzrl5OQgKCgIXl5eli6KzZGOaWXih1k/jiHT0TeGiPhcU9XoEz82ldhJSldFE5FRq6enT5+OSZMmKR9LB9zb29ugE1N+PhARATx4AJw/Dzg7G62ozMi4mcP4pGNqaPzoq6AA6NQJSEoCxo4F3noLqFvX5LtlxTiGjE/XGHrwAGjbFmjcGPjpJ07uqiJd4semOjr4+vrC0dGxTO1cRkZGmVq8ynB1dVUGkDFORlu2AGfPAn//DZQzxoMxZiQxMUB8PJCZCSxYADRsCLz0EhAXZ+mSMWZaFy8CV64ABw8C//xj6dIwU7GpxM7FxQVhYWE4fPiw2vLDhw+ja9euFiqVdoWF4uQiMWKLMWNMgwMHxN/wcODxx0UMfv010KED0L07EBtr2fIxZiq3bqnu795tuXIw07KpxA4AJk2ahHXr1mHDhg24ePEiJk6ciMTERERFRQEQzagvv/yy2mvi4+MRHx+P+/fv4/bt24iPj0dCQoJZyrtjB3DtmuoxJ3aMmZaU2L31FnDyJPD778CIEYCTk3jcrx9w+7Zly8iYKXBiZx9sro/dkCFDkJmZiY8//hhpaWlo1aoVfvrpJzRo0ACAmJC49Jx27dq1U96Pi4vDtm3b0KBBA9y8edOkZS0qAubNE/cdHcVjTuwYM53UVODPP0XfoshIsaxDB2DrVuB//wOefhr44w9g6lRgwwbLlpUxYyt5fvnnH9E0GxJiufIw07C5GjsAePPNN3Hz5k3I5XLExcWhe/fuyuc2bdqEY8eOqa1PRGVupk7qAODbb4F//wWqVweGDxfLOLFjzHQOHhR/O3QA/PzUn6tbF5Cmv9y4UfTFM8T+/cCECaIPH2PWpGSNHcC1drbKJhO7qkChAObOFfffeQdo1kzc58SOMdORmmH79dP8fHg48Oqr4v6bb4r+d/r47z/ghReA5cuB3r05uWPWRTq/SBdZ4sTONnFiZyE//AD89Rfg5SUSu8BAsdyciZ1CIeYz0lVKClBiXmbGqpTCQkAaV1VeYgcACxcCNWqIJtkSF7DRybvvAo8eift//GG+5C42FvjoI+DhQ9Pvi1VdUo3d2LGiT+mffwKXL1u2TMz4OLGzACJgzhxxf/x4cRIxd2J3/z7QtSvw2GPAvXsVr3/iBNCgATBunMmLxphJ/PYbkJ0N1KwJdOxY/np+fsD8+eL+Bx/oHpO//iq6Vzg6Art2AQEB5knu5HJg8GDxP2XhQtPth1V9UmLXvLn4XgJca2eLOLGzgIMHxZxZ7u7AxIlimTkTOyLR3HTmDHDzppjqoSKffy4Gd+zeLSZUZqyqkfrXRUaK5Eub118X/fBycoApUyredkEB8Pbb4v6bb4rm2KNHVcnd//2f6ZK7TZtEbToALFnCI3pZ+aTzS2Cg+DEAcGJnizixM7OStXVvvKHqwC0ldrduiSZSU1q8GPjmG9XjtWu1N8lmZADffy/u5+WJmg/GrElyMrB6tfauAhX1ryvJ0RFYuVKMnt26VdRYa7N8uRhh6OcHfPyxWBYSAhw5IpK7+HjTJHcFBap5MN3cRE18yXkxGZPI5UBWlrgfEAAMGiS+5xcuqE+5ZY8KC4Ft22ynTywndmZ29KhIjFxdRX8cib+/+FtQoAo+U/j5Z2D6dHF/3jxRjj/+0D7r/pYtolySUvM/M2YW9+7dw5QpU+Dj4wMPDw/UqlULdevWRZMmTRAS0gpvvNETY8de0fja9HRxAgOAJ5/UbX8dO4q+SICohSsZA6W3PWuWuL9ggRjlLmnRQiR3/v4iuWveHOjSBejfHxgzRsTiZ5+JkbSG1NZv2SIGbPj7EzZsyAEgEtKkJP23BQDHjwN37xr2WmbdMjLEX2dn0f3H1xfo1Uss+/Zby5XLGnz5pZjLctgwS5fESIhVWnZ2NgGg7OzsCtd96ikigGj8+LLP1aolnvv7bxMUkoiuXSOqUUPsY8wYIoWCaPhw8XjsWM2vUSiIQkLEOl27ir+dOpmmfNZMn8+4qluxYgU1bNiQXF1dqX379nTixAmt6x87dozat29Prq6u1KhRI1q1apVe+6vo2Obn59Py5cupVq1aBKCCWzjFxxeW2cbGjeK7GxamV9Hozh1VXI4cSZSaWnadUaPE8x07EhUVad7OP/8QBQaK9bTd6tUjGjSIaO5cop9/JiooKL9sBQVEjRsTAQ+pWbMnycnJiZo0WU4A0Wuv6fc+iYgOHKj4fVSGPcWQuelybH//XXy+deuqlq1eLZZ16GCGQlqxPn1UMfj775YujWb6xA8ndkagzwH38xNfnnPnyj7XsqV47pdfjF/G+/eJWrdWJWYPH4rlR46IZZ6eRLm5ZV93+rR43t2dKCFB3HdwILp71/hltGb2clLasWMHOTs709q1aykhIYHeeecd8vDwoP/++0/j+tevXyd3d3d65513KCEhgdauXUvOzs60e/dunfdZ3rFVKBS0b98+Cg4OViZuISEh9P3339P169cpISGBzp8/T+PGxRDwIwFeBICaNv2cFAr1fQwZIr67H3yg9yGhr75S/dOvVo1oyhSR8BERxcSonouNFWWeM2cO9ejRg1auXEn37t1Tbuf+fbH+d98RrVkjkrd33hFla9mSSCYrm+g98QTRo0eay7VlCxFQSC4uz5dKbqeSg0MRXbqk3/scPVpBwE8EJNOOHfofp4rYSwxZgi7Hdv9+8Z1q3161LD1d/D8HiG7cMH05rVFuLpGLiyrmnn/e0iXSjBM7M9P1gGdlqb48mpKo3r3Fc1u2GLd8CgXR0KFi2/7+RElJ6s81aSKeW7++7GtffVU8N2qUeCzV3ulx3rYJ9nJS6tSpE0VFRakta968OU2bNk3j+u+99x41b95cbdm4ceOoS5cuOu9T07GNj4+nXr16KZMVPz8/WrVqFRWUqsJSKIiaNhXfyaeeWlm8vgetWHFTuU5Bgaqm+tQpkXxt2rSJXnvtNXr55Zdp6NCh9Nxzz9EzzzxDTz75JM2ZM4dySwXokSNE4eGq+PXyIpo5U9QAAkSjRxMVFhbSuHHj1JIsd3d3GjNmDJ05c4YUpbPNUnJziU6cIPr0U6Jhw8SPLYDoxRfL1qAVFhIFBysIEPtzcXGhMWPGlNj3SzR4sFznz6CoiMjLa1nxa/0oKOgPys/X+eU6sZcYsgRdju26dVKcqC/v2VMs/+QT05StqIhoxgyijz4ikuv+lTSb778X779mTfFXJiO6eNHSpSqLEzsz0/WAnz0rvjh16mh+fsQI8fzixcYt3/LlYrtOTkTHj5d9fsEC8Xx4uPrynBwiDw/x3MmTYtmECeLxuHHGLaO1s4eTklwuJ0dHR9qzZ4/a8gkTJlD37t01viYiIoImTJigtmzPnj3k5ORE+TpmBpqO7a5duwgAubq60vTp08s97qdOie+jhwdRdnYR1a8fQQDIza0v5eaKREqqda5enSg/X0FTp06tsEk3ICCAVq9erZZIKhSi1qNtW/VaNW9vosREOQ0ZMoQAkEwmozfffJNCQkLUttmmTRuaNGkSRUVF0YgRI2jgwIH0xBNPUKdOnahz587Us2dP6tu3Lz377LM0fPhwevrp18nRcS8BRfTOO6RWC7lzJxHwkXJ/33zzDRERbdy4kZycnIr3+X908qRu39dDh9IJ8C5R3lo0ffoFnV6rK3uIIUvR5djOm6f6EVLSihVieefOpinbDz+oYqVXL+tr7XnjDVG2N98kGjBA3H/1VUuXqixO7MxM1wO+dav40vToofn5d98Vz7/7rnHL16aN9oQxLY3I0bFs/761a8Wy4GDVSUUK0sceM24ZrZ09nJRSUlIIAJ0+fVpt+bx586hZs2YaX9O0aVOaN2+e2rLTp08TAErV1CGNiB49ekTZ2dnKW1JSUpljq1AoaObMmXTz5k2N25C89pr4Pr7yingcH/8vAS4EgAYOFFXfH3wg1nnhBfWkbvz48bR48WJatmwZrVy5ktatW0fLly+nxo0bK9cJDg6mvXv3qtW2FRWJxCo4WGx32bI86tevHwEgZ2dn2rVrl/I9nDx5kkaOHEmurq4VJpPl31oRsJ0WLixU7r927eXK50v3aTxw4AA5OXkQAPLyalPu51BS27avEACqXr09NWjQqThhrEEnTmjoM1Lsv//u0apVcfTggeEJPDMOXY7t22+L7+v06erLU1NV3QDK6XFRKd27q/8QCg4munrV+PsxhEJB1LChKNcPPxD99pu47+ys3rJVGUVFRF98UfkuVpzYmZmuB/yjj8SX5vXXNT+/eLF4fsQI45WtsJDI1VVs98qV8tcbNEisEx2tWta5s1i2aJFqWU6OqPkDxGAMe2EPJyUpsYuJiVFbPnfuXAoODtb4mqZNm9L8+fPVlp06dYoAUFpamsbXzJw5U2MCo++xzcsTTaIA0bFjquXDhs1V1jqdPZtBHToQAQp66ilVUvfFF1+Uu125XE6ff/45+fr6Ktfv1q0brV69mn7//Xd6VNzpraCAKCHhHkVEiFrCatWq0YEDBzRuMzMzk7744gt69913adasWfTJJ5/Ql19+SV9//TXt27eP9u3bRzt27KCNGzfSqlWraMmSJTRx4kTy9i5Zi9aMxo7dRNHRWwmQEQCaNm22xv3t3XuOAH8CQLVrN6TExMRy329MTIxyH++/H0sZGffI1TW8uObTh2JjY9XWv3z5Mo0ePZ5kMpE8Ojr6Uf/+E+jMmbNam5vtIYYsRZdj++KLIlaWLi37XESEeO6zz4xbrthYVaJ04IAYHASIAUmnThl3X4aQ+o27uBDFxv5BeXl5yqbpkufCypg9W1Wz/+CB4dvhxM7MdD3gUj+38mrORGdo0dfOWK5eFdt0dRVJXnl+/FHVz+DhQ6K//lI136anq68r/RNYvdp45bx4kaiCyhmTqKDbk5I9nJTM1RSrS42dLqR4adRIvQ+aXJ5Pnp6tCQD5+w8jQEGAbkldSdnZ2TRjxgyqVq2aWgLq7OxM7dq1ozFjxlDbtm0JAHl7e9NJqb+CEWVlZdHHH39Mbm41yyTC7du/pTWRGjr0GgFNSBp0ckca8VFCYWEhtW7dvnibrypH/a5fn0OASFg9Pb3o9OnT9Ouvv1L//v1JJpOVKId6TWTDhsE0Z84cuqGhJ749xJCl6HJse/QQ8bJ9e9nnli0Tz7Vtq/v/RF08/7x6jXpqqqpfqosL0bZtxtuXIT79VKpF/JwAUP369Wnu3AOE4gGDGkJGLwcOqA+KqkzfdH3iR0ZEBCP4/PPP9X7N6NGj4eXlZYzdW1ROTg58fHyQnZ0Nb2/vctfr0EHMF/fdd8DAgWWf/+UXoE8foGVL4O+/jVO2/fvFnFmhoeK6gOUpKgIaNhQTvW7fLq5KsXQp8OyzwJ496uvOmSOuS/n885WftTwrC5g2DVizRkyamZJS8VUBjCE+Hhg1Slz949gxMZ+fNrp+xpVhDTHUuXNnhIWFYeXKlcplLVq0wMCBA7FAw8y3U6dOxQ8//ICEhATlsjfeeAPx8fH4TceZrA09tv/3f+IyXrNni+9jSd98cw4vvtgZgALA0wB+BAB88cUXeOutt3TeBwCkpKRg9erVOHv2LOLi4pBZahZTPz8/HDp0CO3atdNru/rIzs5Fjx6r8McfnwLIgKPjC0hO3o7AwPKDJTkZaNIkEXJ5NwDJ6NSpE3799Vd4enoq1/nyyy8RFRUFwAehoZfx559iQk2FAmjXLg9//vkMgGOQyWRQP1U8DT+/aOzf3wOLFh3G3r1boVB8B0B1sdp9+/ZhwIABysemjiFriB9L0eXYNm8OXLok5lLt2VP9ucxMoH594MEDcR6SLjdWGVevAs2aiZTm77/FeQ0Qk9y/9JI4DwLiXNi5M9C+vbhJk/abQ58+wC+/pMHVNRhyea5yeY0aI5CVtRQzZ/oq56jU182b4v1kZYn3dPs28Nxzhs8ZqFf8GJ4/lsoQZTIKCgqihg0b6nRzdHSkazbSlqdLJq1QqJqNEhI0ryPVktWqZbyyLVoktjlkSMXrSk3FERGqubv27y+7ntQPoUYN7bWA2igURF9/LUbplux/cf26YdvTx+bNRG5uqn3qMu2aOWobrCGGpOlO1q9fTwkJCRQdHU0eHh7Kvm7Tpk2jkSNHKteXpjuZOHEiJSQk0Pr164023Yk2N2+qfgmXN01DWNi7arVJutbUaaNQKOjmzZu0Z88emjFjBr3yyit0Sd95RQz06BFRjx55BJymyZN1C7yoKCIggZydRY1fZGQkyYuHJt65c4dq1pRqAj+nDz9Uf+3Bg0RAHslkvYubmt2pevU3CfiXgoLUu2LcuEE0eHA2ARsJ6E2AO+3ceU9te6aOIWuIH4m1zQVJJAYPaTv/SH3wIiP12nW5pEEJpUfhEonzhtSnvPQtKIjo2WeJ/vij4n0UFIgBDx4eRIMHi9rInBzdyqea5mQkAaCOHTvSxIkTycHBoTgmfMnDYyvl5KiqMBUKBV27lk7TpsXSyJFnKCVFc/Xmw4diWhlAQY89to0aNWpBwEhycSmirCzt5XrwQHM3J4s0xcpkMrp165bO63t6etpVYpeWJr60Dg7lz0t1+7bqy22sYeGjR4vtzZpV8bolT5YoHr2raYLUggIiHx+xzpkz+pfpyhX1CSFDQsS+AFF1bSpyuRj5JO1X6jTboAFVOLWDuRI7a4ihFStWUIMGDcjFxYXat29Px0sMpR41ahT1KDX659ixY9SuXTtycXGhhg0bmuSkVNrHH6tG2ZUnNTWPHB2bEQCaPLnySZ01ePhQxIiuU5H8+6/0fY8ld3fRJ27IkCFUWFhIUVFRBIAcHEIJKKBSXelIoRDHF5BTePgBatr0LgGin1R5nd/PnCF6/HEiL68syshQf84ciZ01xI+1zAU5a9YsWrx4MeXl5dHDh6r/e+WNSr1xQzWI7sIF1fLExES6cuUKpaamUnZ2dpkphzTJyFD9eD5yREEJCQl0RUMn799+E5UPQ4cSNWumnuAFBFQ8mOO994iANAIOEHCUgFhydv6TnnjiCi1dmkJ375b/A2jfPiJA9AeWyWR09uxZIiI6c+YMhYaGKn8QPvZYBD311FPUpEkIOTmpd8twcAilESO2lBlANGYMEfA7OTl1VVsfWE4bNmh/T8uXi89h6lT15RZJ7GbNmkV5eXk6rz9//nzKqih1rSJ0OeAnTqj6A5WnqEg1MMFYI3K6dBHb27lTt/WffFIVWDNmlL+eNNhi7lz9yrN+vWowh6ureL1cTvTcc6bpvCtJTlYdC5lMJLr374t/HgBVGGzmSOzsNYb0PbYKhRiVDYjJg7W5cCGH1q+/bIRSVl3PPCOO1TPPHCJnZ2cCQAMHDizRV+44+flpvtrEmTPqJ1ttSZ1EodC8jqljyFrixxrmgkxOTlaOxPb396cPP1xCwANycdHeh27YMPE5Dx8uHk+ZMqVUYiJuLi4uVKdOHRo5ciTt3LmzzHGcOZMIuEF1686jFi1aKF/XunVrmjt3rsYkLzs7m7755kcaNmwKeXn1I2AhtWx5R+Ocr0RE69ZlEDCRSvfzLHlzcmpKZ89qHjU4dmwhAaKP7GulLtUil8tp0KC5JI2wV7/JyNGxHjk4eCiXOTsH0fjxn1Fubi4tXpxKwCvK59zd3WngwIHFj90oPLycKlMS50IxwOQirVxZ9viYPbGzZ/pMDvnkk9q3VbeuWM8YlzVRKFQ1a3/+qdtrvvlG9U+89I/Z+/fvU1Hxf39p7qPypm7RJC9PzNwPiBq7krH9/vtiuSnmxzt1StXkW726GCjy6NEj2rVrF40ZIzrKNmmi/fJN3PHbdPQ9ttKPJE9PkZwz7Y4eFcerWjWidet2qg1+aN58OAFEL79c/uulDvD16mkfWV8Re4ghaxmAVFBQQBs2bKBGjRqVSEgCycdnKT3QMjTz/HnxWTs6Er3//ifK13p5eZVootSUQDlRz5496ZNPPqHPPltBTk7d1J53dXUtMb+iNPinPc2fP5/ee+896tSpEzk6OmrYths1aPAaxcerTmBZWVk0btwHBKgSq2bNmlGLFi2oYcOGVLOmP7m4eJI0crxatdr0zz//qL1PhYKoZk0xobmHR3XKKF29TKJlzd//XwIWELCGgJ+pW7crtGfPIyosJLpz5y49++x8kskCSiR41QnwVD5+6aWXKDk5mYqKiigiIrJ4eXv67z/NTXJiirHPCHCgdes2qz1nFYldYWEhpaen061bt6jQ0I5YVYQuB1xUGYt+DNpII4Z++KHy5UpNrbj5t7T8fFGNPGeO+vKYmBhydXWlYcOGkUKhoMuXVcPYy/tFVdp334nX1K9f9lejdNmmnj1125auHj5UXaOzTRuiEycSacaMGeTv768MPje3KQQU0tat5W/HHk5KlqLvsZWuhmKNk4haI4WCqF07VQ37ypXihObp6UmNGycTQFQ89Z5GWVlES5ZUfo4ze4ghc80FqeuUQfn5+bRu3Try92+oXKd27dq0Zs0a5Y/00kQ3ma+V6y8unsZBoVDQw4cPKTMzkxITE+nYsWM0ZcqUMhNxl6zZeuKJ3rRhwwa6d+8eZWZm0rp16ygyMrKcJA7UuHFjGjNmDC1evJiaNWun9lyvXr1o+vTp5ONTvUTCGUY//XRI4+jwH39MJ0A0qXp7+9L58+dLHN/bBNQgALRkSfndNHbuFF123nhDXO9Zk+TkhxQRsYaAZspyVa/eiU6f/k1tvZSUFHJ0FPuMjCx7bcP8fAVVr/6+chvvlprQ1qKJ3Z49e6hr167k4uJCDg4O5ODgQC4uLtS1a1fau3evsXdnFXQ54FLT5eefa9/W00+L9daurXy5fv2VlLVRlaFQKKhbN9UvsK1bt5JCIfqmAaIGTBdSf79SP04pNzeXPvhgAwG/UmBg5cpa2qpVogOrv/+vNGDAs2q/Ov38/Er84+hPzZrllHvxc2s5KSUkJFAjbe35VZA+x/b+fdWltiroj85KkCZHDwwUP/JOnTpFhw//Syie0qjEJW1NxlwxFB8fT3PmzKEVK1bQ7du3y5RhdOlLLxiRueaC1HfKoFWr5ASsoWrV6iv/5/Xu3Vtjv7///e8XAkST/bhx0RVeCo+I6OrVq7Rs2TLq0yeSXF27EfAJzZmTXO76GRkZtHr1ahowYACNHj2avvrqqzJzLSoUCvrww1MEvEBA6USwBfn67qGMDO1lGzv2DgFhxclWdeWcjF26jC1ODNvo1GdQFzExhdSy5Q/UosUeuntX84nklVd2FZffQS35LywspF69xirf38yZ88ocd4sldqtXryYXFxeKioqivXv3UkxMDJ0+fZr27t1LUVFR5OrqSmvWrDHmLq2CLge8ZUvxj/XgQe3bEp0uy9aYlZSTk0Pvv/8+7dmzR2vQffGFNMrpNsXFxZX7C60iP/74o1pQ1ahRg1JTU5Wz/usykWNhIZGfn1j/11/FstTUVJo+fTpVry79AnMhIMNoJ5mCAqKGDe+RGKWnKn/Pnj1p9+7dlJ+fT9u2bStxVYBQWrnypsZtWUtiFx8fTw4ODhYtg7Hpc2yluesaNzbufFu2Ti5XdfPYtEks+/xz09SSl8ccMXTo0CFycXGhli1bUv369cnX15eOHDmifD49Pd2k8WNNl+Urac4caT45OS1ZskQ5N6OXlxetW7dOeR65cOECeXl5Ff8/HEKzZul3zti1S+ynZk3jdZMQ3XQSycFhGtWp8zQBW8jFpZDOlX9RFKXcXKL69e8R0FVZS7106VKSmmknTDD+3JPaiEGULxEACgp6jHJzc+nRo0f03HPPK2s5Bw36UuNrLZbYNW7cmNatW1fu8+vXr6fHzHAtKmsbal7y6g8VTechXf7orbfKX2fSpEnKJKV79+50rpxv+Kuv3ibgPXJ2difRn6Y5bd68Wed/FkRERUVF1K6dqBKPjo6m9u3FZKb9+/enHTsUBIiktSInT6r6uMXH/0Ovvvoqubho6pi61KCRtpqsWJFKQBsCRAfWN954g/4uec20YrGxseThIfpJODn506lTp8usY67EbuLEiVpvL730kl0ndtKUDMa+7J49WLhQHLvQUJEUSwOljH1t6vKYI4bCw8Pp/fffJyJR47No0SLy9PRUXhHE1IkdkRg88cYbb6gtCwkJ0Tp4IiQkRG1ZVFRUpQZPlDZ+vPisiw8NXb58mbp2VY3Y7NevH506dYoCAwMJALVo0YuAR+Trq/vVEoqKpCk+xNRZxlJUJKY/QYlBPBs36v76Q4eIgFwCnih1rhlBZpqpSE3PnvcIEDWnI0eOpN69pYoHF3J3/4bKCw+LJXZubm7077//lvv8xYsXyc3NzZi7LMNahpqXdOOG+DK6uFQ875tUy/b885qfT09PV/7akka4yWQyGjVqFCUni6rvzMxMmjFjBjk6qjpxSusCUE5J8fDhwwrf2zfffKP8ZXf79m3666+/lNtaufIr5fQoKSnatzN5slivWbPxasElNdEvW7aseFk72rxZ+7Z0cfnyFXJxaVT8Ky1ArX+FJn/8kUgODm2KkzsX+qrUcEtzJXYODg7Uvn176tmzp8Zbhw4d7Dqxk6bJWb/eDAWzMXfvivm+AKK9e6U5vMqf18zYzBFD3t7edLXUkNxt27aRh4cHff/992ZJ7KxxLsgXXhCf9bJlqmWFhYW0ePHiMtcxbt26Nd25c085HVTp0ZnlWb1arO/lRWWmuqms3FxxVQxA9HfT1yuvEAEPyMPjqeL36Un166dYpNZ/40YiMTWLahCTg4MnAb+UmUuyJIsldmFhYTRp0qRyn580aRKFhYUZc5dlWMNQ89J+/lk1X1tFdu8W63brpvl5afh5x44dKTExkUaMGKH8cri7u9PLL79c6vqS7enTT/fTvXv3aMGCBWr9ymrXrk1ffPFFuc25hYWF1Lx5cxJt/jOVy+fNm0dSn4XQ0BQCSGsyplAQNW1KBHyrTESfffZZtT4Gd+7cIQcHkTCOGaPjEN5ynDt3jnx8/Ir31Zji4nS74nR0dC4Bg0h0tvVWGyllrsQuODiYtmzZUu7zFy5csOvELihIxIc1XGeyKpJqPH19VdMvmevkZo4Y8vPz09iCsWPHDnJ3d6dVq1aZJX6sbS5I6TKQmqa9SkhIoI4dOxIgLqmVUvwrffly8ZrHHqu4QiI9XTUBcsnk0Zhyc4kOH9Y8LU9FMjOlqa3kVK3a5wT8prVVzJTu3ZNa8N4laWAH8Dt5eGi/hJnFErtjx46Rh4cHtWjRgqKjo2nBggW0cOFCio6OppYtW5Knp2eFzaKVYS1DzUuTauEGDqz4PZw6pepDVFpGRga5u4tm1f0lLglx5swZtWp1UZUeSsBeAhRqfdby8vJo2bJlVK9ePeW648eP19j/btOmTQSAatasqfbeCgoKqEOHDgSAmjR5hgCF1mlPxIWWswgQ1fwzypkgr3XrZwkANW1qeDvb4cOHydNTqqlsR1FR6RW/qNitW0RubkUEvE9z5qiPCDFXYjd8+HCK1tJpMT4+nmQymUnLYG66Htv791VNMZW9hqO9unZNfRLy8ePNt29zxFCfPn2UozhL27ZtGzk7O9vcDyOiio+tNPnvsWOaX19QUKCs0ZTcv6+6AlFFrSgjR4r12rfXPm2UJZWcygt6DPozBTFvawENGLCL2rZNJIBoyhTtr7HoqNgbN27Qe++9R927d6dmzZpRs2bNqHv37jR16lSNF4Y2Jmsbai6ZMIEq/ODOnz9PMTExdPWqWNfDo+w606ZNIwAUFhZWppZNoVDQjh076Pnnn6ddu3bRqVNFBIgrOmjy6NEjWrx4sXJOq9GjR6tNSyOXy6lhQzFEftGiRWVe//fffyv7yDk6btL6T2PBAiLgdQLEfEPlNQHPnLmveHsBBo1U2rx5c4km5yfIySmbkssfmKVRdLQ4/o8/rl6TYa7ELi0tTdlkYy90PbbSHFvGvOSePZImAwdMe6WX0swRQ3v27NH6w2jbtm3U01yjRcyoomPr7S0+by09pTSSrvDi5kZUotJRzZEjYh2ZjKj44g1WSaFQzU7h6irmVbUUqWXO3V11fMsZAK1kFfPYWYK1DjXv21d8eOUNCD548KBy8saNG7cr/+mWnB/uzp07ypqoffv2lXMEVNavF9vo3Vv7elu2bFFOATJkyBBlLaU011VgYGC5s7kvWLCAAJCLiw8BSeXuKyTkqDL5PV7efwciunw5nwDRhPr997r/nHrw4AG99tprJZqYXyDgEZWaTFwnycmi71FEBKl1YrWWUbG2SNdju3279m4KTDdSq4CXl5jn0Vw4hkxH27EteTkxfS+0kZ+vunKJlxeVGYkqlxM1by6ef/NNw8tvLqmpRF27GndwhyEePFAl20DF89sS2XFiZ61DzRs3Lr8aPC4ujjw8Sl6axJnc3I4QUPrKDGLiwnbt2uk0r5A0WEGXL8zu3buVNV0DBgygu3fvUu3atQnQfuH0goIC6tSpU3HZ6xMQV6bv07VrDwhoSgDopZe0X1aiqIjI0fEdEqO0Xqi44ER06dIlat26NUl99958cxYBhSSTkcEjnixxOSR7puuxFZcpElMCscr59lsxUt2cOIZMR9uxvXlTNXjPkP6UDx6IKwxJfTMvXlQ9N2+eWB4QoH/SaO9GjVJN8l9qCj+NLJLY1ahRo8xkkNoEBQWZpMnJ2oaay+Xiyg+A+LVQ0vXr1ykgQEyz0bt3bxo8eDCJETLeBPyp/MebmZmpnFtI10mepYmOdR3R9OOPPypHR0lJXYMGDUgu13zpE8m1a9eoadOmxcmdG7Vqpd4Zo2/f6cUJa226p8MEdU2bnidpZOrd8q5WXWzHjh3KWkx/f3/65Zdf6KWXxPsePLji96wPc5yUrCWGzE3XYztkiPhsNfQMYFWAqWPIXuOHSPuxjY0VcVO/fmW2T9Shg9hO3bpipodr10QTIkBar9rDNDt3TlzmT5qCpiL6xI8TjOTevXs4cOAAfHx8dFo/MzMTRUVFxtq90qRJkzBy5Eh06NAB4eHhWLNmDRITExEVFQUAmD59OlJSUvDVV18BAKKiovDFF19g0qRJeP311/Hbb79h/fr12L59u1HKc/06oFAAnp5AYKBqeWZmJvr164dbt26hdevW+Pbbb+Hq6opbt27h5MmTAPrhr79+w+OPB2Hp0qXIzc1F69atMWDAAJ32e/Gi+BsSols5n3rqKfz0008YMGAA0tLSAACzZs2Ci4uL1tc99thjOHv2LJ5/fiSOHNmPv/8ehRdfPIevv/4UCQkJOHRoEQDghRdW6vTdaNu2La5cCUVh4V/YuXOn8nMrSS6X491338WKFSsAAD169MD27dshl9eG9LFNm6bb+7Ym1hJD1urSJfG3eXPLloNZJ44fzW7dEn8DAgzfhrc3cOAA0KMHkJAA9OkD1K8PPHoEPPEEMHy4ccpqT8LCgLw8E228kkmnkkwm0/t2rfRV5o3Emoaaf/+9+EXTrp1q2YMHDyg8PJwAUFBQkHJ4ORHR3bt3ydu7RXHNWUu6fv26cvoSXec1evBANfItXfdBoUQkBo4EBARQRESEXgMYioqKqG1b1aCS7t27U9u27YsfP08a5gXW6KOPiABx8WlNtab379+nPn36KPfz/vvvK8v5xhviPffpo3OxdWaOGjtriiFz0uXYFhWJX7cA0eXLZiwcMxpTx5C9xg+R9mP75Zcibvr3r/x+kpNJOb+d1Lyr74AMZhiL9bG7bKf/cbUd8E8+EQEwZIh4XFhYSIMGibnSqlevrvFKCKNG/UdAHQJAPj4+BIBatWql8yXB4uPFPmvUMKxPRWFhoUGjUq9cIZLJ9hHgpUy8AB9q0CBV53Js20YEpJF0bcCSE15nZWUpp3Xx8PCgH0uMV79+XfRVAIiOHtW76BUyV/8ge4whXY7tf/+p+qNY63QKTDtzxJA9xg+R9mMrjWw1ZDCZJlevimsOA+JKScw89IkfB2PW/gUHByMoKAijRo3Cpk2b8N9//xlz81XS5cvib+PGhdi/fz+efvppfPfdd3BxccF3332Hli1blnlN06b1ARyAs7M3srOzAQAffvghHBx0+7hKNsPKZPqX2dHREU5O+rfSN2kCvPTSAAC/w9NTai/7DM8/X1vncgQHA0AgnJ37AgA2b94MAMjIyEDPnj0RExOD6tWr45dffsFTTz2lfN3s2UBBgWgi6NlT76JbDY4hzf79V/xt0gQw4KvJ7ATHT1nGaIotqXFj4PffgZ07gVmzjLNNZlxGTeyOHz+OcePGISUlBW+99RYee+wxNGrUCGPGjMHWrVuRkpJizN1VCRcuXATwHlasCEL//v1x6NAhODg4YMuWLejRo4fG14i+eK3Rrt1euLm5ISwsDIMHD9Z5n/r2rzOmGTMAB4dg3L8fDze3KwBGY+BA3V/frJn4W1AwCgCwZcsW3Lx5ExEREfjjjz8QEBCA48ePo0uXLsrXXLwIbNki7s+bZ6Q3YiEcQ5pJiZ1I/BnTjOOnrPR08bdkH+/KqlcPePFFwNHReNtkRmSqasP8/Hw6fvw4zZ49m3r16kXVqlUjBweHcicKrso0VZFu2rSJunTpUqJJEuTr60vR0dEam19L2r9fNYv37du3y51HrjzSdQE/+cSgt1Npw4er+mDUqqV/05m4bNRD8vKqrtYcXb9+fY1NLYMHi30NGmSkN6CBJaZqsJcY0uXYvvmm+IzLGdzOqgBzx5C9xA+R9mP7+OMidnbtskDBmNFYZFRsac7OzujevTs6duyI8PBwHDp0CGvXrsXVq1dNtUurcujQIcTGxgJwBPAUNm8ejaFDn65wlCmg+mWVng74+vrqvW9L1tgBotZu+3aR2j3zjP5NZ8HBQFKSG8LChuLYsdXIzs5Gs2bN8MsvvyAoKEht3bg4YPdu0eQ8Z44R34QVsPcYKkmqseMRsUxXHD+CKWrsmHUzalMsADx69AhHjhzBhx9+iIiICNSoUQMTJkzA/fv3sWrVKiQmJhp7l1bp7bffxsSJiwEko1at7/Hyy8/qlNQBqgC8dUtMlaKPwkJVvz5LJXYtWgCjR4tk65VX9H+9dPJu2DAKTk5OaNeuHU6ePFkmqQOADz4Qf0eMAFq1MrzM1oRjqCxpqhNuimUV4fhRZ+w+dsz6GbXGrkePHvj999/RuHFjdO/eHW+//TZ69OiBADv8RoWHhyMpKRyAqt+Yrvz9xd+iIiAzE/Dz0/21N24A+flAtWpAgwb67deY1qwR/d0M+ZUoJXZ377ZBamoqatSooXEwx8mTwMGDokbQVjrxcgyVlZsLSF2jOLFj2nD8qHvwQMQPwImdPTFqjV1MTAx8fX3Rq1cv9O7dG0888YTdBhQAXLki/uqb2Dk7A1ILrFSNriupGTY4GNBxEK1JODoaXvUvnbz//Rfw8/PTmNQRAe+/L+6PGSNGatkCjqGypNo6f3+gRg3LloVZN44fdVJtnZubmGSY2Qejnvrv3buHNWvWwN3dHf/73/9Qt25dhIaGYvz48di9ezdu375tzN1ZPalJtGlT/V9bsp+dPqTErkUL/fdpLaQau+vXxRQmmhw6BJw6Bbi6Ah9+aL6ymRrHUFl8xQmmK44fdSWbYQ2Z+opVTUZN7Dw8PNC3b18sXLgQZ86cwZ07d7Bo0SK4u7tj0aJFqFevHlrZSkcoHUiJnb41dkDlEztL9a8zhrp1AQ8P0V/w2rWyzxOJARoAMH68WN9WcAyVxQMnmK44ftTxwAn7ZNLGOg8PD9SsWRM1a9ZU9pO6KGUedsDQpljAvhM7mUx1EpdO6iXt2gWcPy+uv1sVrwmrD3uPIYAHTjDD2Xv88MAJ+2TUwRMKhQLnzp3DsWPHcPToUZw+fRp5eXmoW7cuevXqhRUrVqBXr17G3KXVyswUN0DMlq8vQxI7IttI7ABxEo+LU53UJffuARMnivuTJ6v6ItoKjqGyuMaO6YrjRx0ndvbJqIld9erVkZeXh9q1a6Nnz55YsmQJevXqhca20rNdD1JtndSsqK/atcVffRK7lBQxAsrR0bBk0pqUV2M3fTqQliZqQadONX+5TI1jSF1RkapLA9fYsYpw/Kjjplj7ZNTEbvHixejVqxeaGdL2aGMq078OMKzGTqqta9IE0HHKPKulKbE7dQpYvVrcX7NGjPSyNRxD6hITAblcfJ8bNrR0aZi14/hRxzV29smoid24ceOMubkqrTL964DKJXZVvRkWUNXOXLokmpjz84GxY8WyMWOAci6zW+VxDKmTEvtmzfi6lKxiHD/quMbOPpnskmL2rjJTnQCGJXaHD4u/LVsatk9r0rSpGESRlQXcvg18+aVIXP39gUWLLF06Zi48cIIxw3GNnX3ixM5E3nsP6NMHCA837PVSYnf3rmiKcnXVvv4ffwD794tJiV9+2bB9WpNq1UTT240bwL59wNy5YvmyZUDNmhYtGjMjHjjBmOE4sbNPnNiZSFiYuBmqRg1xBYqCAiAjA9BwmVQ18+eLvy++aHjzr7UJDhaJ3YQJoim2Xz9gyBBLl4qZk5TYcY0dY/rJywPu3xf3uSnWvljwolNMG5lM9+bYS5eAb74R96XLbNkCqZbm0SPA3R1YuZJnT7c3fNUJVpVkZWVh5MiR8PHxgY+PD0aOHIl79+6Vu35BQQGmTp2K0NBQeHh4oE6dOnj55ZeRmppa6bJItXXVqok5P5n94MTOikmJXVqa9vUWLhQDDAYMAEJDTV8ucyl5Mp8zh0dF2pvsbNWPGq6xY1XB8OHDER8fj4MHD+LgwYOIj4/HyJEjy13/wYMHOH/+PD788EOcP38ee/bsweXLlzFgwIBKl6XkwAn+QWxfuCnWiulSY3fzJrBli7gvXWbLVjz+uOgz2LGjaI5l9kWqratdmy9gzqzfxYsXcfDgQcTGxqJz584AgLVr1yI8PByXLl1CsIZfJz4+PjgsjXortnz5cnTq1AmJiYmoX7++weXh/nX2i2vsrJguid2iRWIS1z59gE6dzFMuc2nZErh6FTh6FHDinyB2hwdOsKrkt99+g4+PjzKpA4AuXbrAx8cHMTExOm8nOzsbMpkM1atXr1R5OLGzXzaV2OnbvwEA9uzZgyeffBK+vr6QyWSIj483S1l1UVFil5oKbNgg7ttabZ2kUSPRR4SZnjX1DwI4sWNVS3p6Ovz9/css9/f3R7qO81Y9evQI06ZNw/Dhw+GtpZpaLpcjJydH7Va2POIvD5ywPzaV2OnbvwEA8vLy0K1bNyxcuNBMpdRdRYndp5+KqVC6dQO6dzdfuZhtsqb+QQDPYcesw6xZsyCTybTezp07BwCQaejMRkQal5dWUFCAoUOHQqFQYOXKlVrXXbBggfIHmI+PD4I0TJvANXb2y2YauAzp3wBAeeK6efOmuYqqM22J3Z07qstrzZjBnWNZ5Vhb/yCAa+yYdRg/fjyGDh2qdZ2GDRvizz//xC0pmyrh9u3bCKgguyooKMCLL76IGzdu4MiRI1pr6wBg+vTpmDRpkvJxTk5OmeROOm9wYmd/bCaxq6h/Q3mJnSHkcjnkcrnysaZqcGOQErvYWKBrV+CZZ4CnnwZatxYT9T54ALRvD/Tta5LdMztirPgxVv+gwkLRvxLgGjtmWb6+vvD19a1wvfDwcGRnZ+Ps2bPoVNzh+cyZM8jOzkbXrl3LfZ2U1F25cgVHjx5FrVq1KtyXq6srXCuYtV7KMbkp1v7YTFOsMfo36EqXanBjaN9eNLESAb/9Jmrm2rYF6tcHPvtMrMO1dcwYrK1/0M2bYlJqNzfxfWfM2oWEhKBv3754/fXXERsbi9jYWLz++ut45pln1H4YNW/eHHv37gUAFBYWYvDgwTh37hy+/vprFBUVIT09Henp6cjPz69Uebgp1n5ZfWJnrv4N+pg+fTqys7OVt6SkJKNuX+LmBhw/DiQliWul9u8vBhIkJ4tZxVu0AAYNMsmumY2oqv2DSl5xwsHq/0sxJnz99dcIDQ1FZGQkIiMj0bp1a2yR5qMqdunSJWRnZwMAkpOT8f333yM5ORlt27ZF7dq1lTd9RtJqwoMn7JfVN8Wao3+DvnSpBjemevWAsWPF7eFD4NgxICZGXF6LT3pMm6raPygoCIiO5toGVrXUrFkTW7du1boOESnvN2zYUO2xsRQVAePHi1o7Tuzsj9Undqbu31DVVKsmrpnar5+lS8KqgqraP6hNG1V3A8aYfhwdgf/9z9KlYJZi9Ymdrkr2b/jyyy8BAGPHjtXYv2HBggV49tlnAQB3795FYmKicu6tS8VzLAQGBiJQx5860i8uUw2iYJYnfbam+HVtDQyJH6l/0Pnz57F//35l/yBA1Fy4uLjotG+OH/tg6zFkSRxDtk+v+CEbkpmZSSNGjCAvLy/y8vKiESNGUFZWlto6AGjjxo3Kxxs3biQAZW4zZ87Ueb9JSUkat8E327slJSUZ58tqhfSNnxs3bpR7nI4eParzfjl+7OtmyzFkKRxD9nPTJX5kRPzzqbIUCgVSU1Ph5eWl7Ggu9RtKSkqqsM8RqzxTH28iQm5uLurUqQMH7thoVJriB+AYMjeOoaqLz0GWZ03xYzNNsZbk4OCAevXqaXzO29ubg8qMTHm8fXx8TLJde6ctfgCOIXPjGKp6+BxkPawhfvhnE2OMMcaYjeDEjjHGGGPMRnBiZyKurq6YOXOmWee7s2d8vG0Pf6bmxcfbtvDnaV7WdLx58ARjjDHGmI3gGjvGGGOMMRvBiR1jjDHGmI3gxI4xxhhjzEZwYmciK1euRKNGjeDm5oawsDCcPHnS0kWySbNmzYJMJlO76XopOGa9OH7Mg+PHdnEMmYc1xhAndiawc+dOREdHY8aMGbhw4QIiIiLQr18/JCYmWrpoNqlly5ZIS0tT3v766y9LF4lVAsePeXH82B6OIfOythjixM4ElixZgjFjxuC1115DSEgIli5diqCgIKxatcrSRbNJTk5OCAwMVN78/PwsXSRWCRw/5sXxY3s4hszL2mKIEzsjy8/PR1xcHCIjI9WWR0ZGIiYmxkKlsm1XrlxBnTp10KhRIwwdOhTXr1+3dJGYgTh+zI/jx7ZwDJmftcUQJ3ZGdufOHRQVFSEgIEBteUBAANLT0y1UKtvVuXNnfPXVVzh06BDWrl2L9PR0dO3aFZmZmZYuGjMAx495cfzYHo4h87LGGHKy2J5tnEwmU3tMRGWWscrr16+f8n5oaCjCw8PRuHFjbN68GZMmTbJgyVhlcPyYB8eP7eIYMg9rjCGusTMyX19fODo6lvlllJGRUeYXFDM+Dw8PhIaG4sqVK5YuCjMAx49lcfxUfRxDlmUNMcSJnZG5uLggLCwMhw8fVlt++PBhdO3a1UKlsh9yuRwXL15E7dq1LV0UZgCOH8vi+Kn6OIYsyxpiiJtiTWDSpEkYOXIkOnTogPDwcKxZswaJiYmIioqydNFszuTJk9G/f3/Ur18fGRkZmDt3LnJycjBq1ChLF40ZiOPHfDh+bBPHkPlYYwxxYmcCQ4YMQWZmJj7++GOkpaWhVatW+Omnn9CgQQNLF83mJCcnY9iwYbhz5w78/PzQpUsXxMbG8rGuwjh+zIfjxzZxDJmPNcaQjIjIYntnjDHGGGNGw33sGGOMMcZsBCd2jDHGGGM2ghM7xhhjjDEbwYkdY4wxxpiN4MSOMcYYY8xGcGLHGGOMMWYjOLFjjDHGGLMRnNgxxhhjjNkITuzsyKxZs9C2bVuz7/fYsWOQyWSQyWQYNGiQTq+ZNWuW8jVLly41afkY0xXHEGOG4/gxD07sbIT0BSzv9sorr2Dy5Mn49ddfLVbGS5cuYdOmTTqtO3nyZKSlpaFevXqmLRRjxTiGGDMcx4/14GvF2oi0tDTl/Z07d+Kjjz7CpUuXlMuqVasGT09PeHp6WqJ4AAB/f39Ur15dp3Wlsjo6Opq2UIwV4xhizHAcP9aDa+xsRGBgoPLm4+MDmUxWZlnpavBXXnkFgwYNwvz58xEQEIDq1atj9uzZKCwsxJQpU1CzZk3Uq1cPGzZsUNtXSkoKhgwZgho1aqBWrVoYOHAgbt68qXeZd+/ejdDQUFSrVg21atXC//3f/yEvL6+SR4Ixw3AMMWY4jh/rwYmdnTty5AhSU1Nx4sQJLFmyBLNmzcIzzzyDGjVq4MyZM4iKikJUVBSSkpIAAA8ePECvXr3g6emJEydO4NSpU/D09ETfvn2Rn5+v837T0tIwbNgwvPrqq7h48SKOHTuG5557DkRkqrfKmElwDDFmOI4fEyBmczZu3Eg+Pj5lls+cOZPatGmjfDxq1Chq0KABFRUVKZcFBwdTRESE8nFhYSF5eHjQ9u3biYho/fr1FBwcTAqFQrmOXC6natWq0aFDhzSW5+jRowSAsrKylMvi4uIIAN28eVPre2nQoAF99tlnWtdhzNg4hhgzHMePZXEfOzvXsmVLODioKm4DAgLQqlUr5WNHR0fUqlULGRkZAIC4uDhcvXoVXl5eatt59OgRrl27pvN+27Rpg969eyM0NBRPPvkkIiMjMXjwYNSoUaOS74gx8+IYYsxwHD/Gx4mdnXN2dlZ7LJPJNC5TKBQAAIVCgbCwMHz99ddltuXn56fzfh0dHXH48GHExMTg559/xvLlyzFjxgycOXMGjRo1MuCdMGYZHEOMGY7jx/i4jx3TS/v27XHlyhX4+/ujSZMmajcfHx+9tiWTydCtWzfMnj0bFy5cgIuLC/bu3WuikjNmHTiGGDMcx0/FOLFjehkxYgR8fX0xcOBAnDx5Ejdu3MDx48fxzjvvIDk5WeftnDlzBvPnz8e5c+eQmJiIPXv24Pbt2wgJCTFh6RmzPI4hxgzH8VMxboplenF3d8eJEycwdepUPPfcc8jNzUXdunXRu3dveHt767wdb29vnDhxAkuXLkVOTg4aNGiATz/9FP369TNh6RmzPI4hxgzH8VMxGZEtjO1l1uzYsWPo1asXsrKydJ4cUtKwYUNER0cjOjraJGVjrCrgGGLMcPYWP9wUy8ymXr16GDZsmE7rzp8/H56enkhMTDRxqRirOjiGGDOcvcQP19gxk3v48CFSUlIAiMu0BAYGVviau3fv4u7duwDESCd9O8UyZks4hhgznL3FDyd2jDHGGGM2gptiGWOMMcZsBCd2jDHGGGM2ghM7xhhjjDEbwYkdY4wxxpiN4MSOMcYYY8xGcGLHGGOMMWYjOLFjjDHGGLMRnNgxxhhjjNkITuwYY4wxxmzE/wMnwhNWMT8I1QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -835,8 +838,8 @@ "Outputs (3): ['x', 'y', 'theta']\n", "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", "\n", - "Update: at 0x1662e3490>\n", - "Output: at 0x165cf9c60>\n" + "Update: at 0x168af1360>\n", + "Output: at 0x168598940>\n" ] } ], @@ -860,7 +863,7 @@ "outputs": [ { "data": { - "image/png": "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ZyaIWmqSCIIgCIIgMgRSXgiCIAiCyCooeCEIgiAIIqug4IUgCIIgiKyCgheCIAiCILIKCl40snjxYowYMQI5OTmYPHkyVq9ene5dymg++ugjXHbZZaiuroYgCHjrrbfSvUsZy8KFC3HmmWeisLAQ5eXluPLKK7Fz585071ZG89hjj2HixIm8CVZNTQ3ee++9dO9W1rBw4UIIgoC77ror3buSsTzwwAMQBCHkVllZme7dymiOHj2K//mf/0FpaSny8vIwadIkbN682ZTXouBFA0uWLMFdd92F+++/H59++inOOecczJ49G4cOHUr3rmUsXV1dOO200yKaEhKRrFq1Cj/84Q+xbt06LF++HD6fD7W1tejq6kr3rmUsgwcPxu9+9zts2rQJmzZtwte+9jVcccUV+PLLL9O9axnPxo0b8eSTT2LixInp3pWMZ9y4cairq+O3zz//PN27lLG0tLTgrLPOgt1ux3vvvYft27fjj3/8I4qLi015PSqV1sC0adNwxhln4LHHHuP3jR07FldeeSUWLlyYxj3LDgRBwJtvvokrr7wy3buSFTQ2NqK8vByrVq3Cueeem+7dyRpKSkrw8MMP45Zbbkn3rmQsnZ2dOOOMM7B48WL85je/waRJk7Bo0aJ071ZG8sADD+Ctt97C1q1b070rWcG9996LTz75JGVZCVJe4uDxeLB582Y+4oBRW1uLNWvWpGmviL4MG5dRUlKS5j3JDvx+P1599VV0dXWhpqYm3buT0fzwhz/EJZdcggsuuCDdu5IV7N69G9XV1RgxYgSuvfZa7Nu3L927lLG8/fbbmDJlCr797W+jvLwcp59+Op566inTXo+Clzg0NTXB7/ejoqIi5P6KigrU19enaa+Ivoooipg/fz7OPvtsjB8/Pt27k9F8/vnnKCgogNPpxNy5c/Hmm2/i1FNPTfduZSyvvvoqtmzZQmqxRqZNm4YXXngB77//Pp566inU19djxowZOHHiRLp3LSPZt28fHnvsMZxyyil4//33MXfuXNx555144YUXTHk9U2cb9SUEQQj5WRTFiPsIIlluv/12bNu2DR9//HG6dyXjGT16NLZu3YrW1la8/vrruPHGG7Fq1SoKYFQ4fPgwfvSjH+GDDz5ATk5OuncnK5g9ezb//4QJE1BTU4OTTz4Zf/vb3zB//vw07llmEggEMGXKFDz00EMAgNNPPx1ffvklHnvsMdxwww2Gvx4pL3EoKyuD1WqNUFkaGhoi1BiCSIY77rgDb7/9NlasWIHBgwene3cyHofDgZEjR2LKlClYuHAhTjvtNPzpT39K925lJJs3b0ZDQwMmT54Mm80Gm82GVatW4dFHH4XNZoPf70/3LmY8+fn5mDBhAnbv3p3uXclIqqqqIhYOY8eONa2whYKXODgcDkyePBnLly8PuX/58uWYMWNGmvaK6EuIoojbb78db7zxBj788EOMGDEi3buUlYiiCLfbne7dyEjOP/98fP7559i6dSu/TZkyBddffz22bt0Kq9Wa7l3MeNxuN3bs2IGqqqp070pGctZZZ0W0eNi1axeGDRtmyutR2kgD8+fPx5w5czBlyhTU1NTgySefxKFDhzB37tx071rG0tnZiT179vCf9+/fj61bt6KkpARDhw5N455lHj/84Q/x8ssv41//+hcKCwu5yudyuZCbm5vmvctM7rvvPsyePRtDhgxBR0cHXn31VaxcuRLLli1L965lJIWFhREeqvz8fJSWlpK3Kgo/+clPcNlll2Ho0KFoaGjAb37zG7S3t+PGG29M965lJHfffTdmzJiBhx56CFdffTU2bNiAJ598Ek8++aQ5LygSmvjrX/8qDhs2THQ4HOIZZ5whrlq1Kt27lNGsWLFCBBBxu/HGG9O9axmH2ucEQHzuuefSvWsZy80338y/jwMHDhTPP/988YMPPkj3bmUVM2fOFH/0ox+lezcylmuuuUasqqoS7Xa7WF1dLX7jG98Qv/zyy3TvVkbzzjvviOPHjxedTqc4ZswY8cknnzTttajPC0EQBEEQWQV5XgiCIAiCyCooeCEIgiAIIqug4IUgCIIgiKyCgheCIAiCILIKCl4IgiAIgsgqKHghCIIgCCKroOCFIAiCIIisgoIXgiAIgiCyCgpeCIIgCILIKih4IQiCIAgiq6DghSAIgiCIrIKCF4IgCIIgsor/D1oD5LiJnCv+AAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -906,7 +909,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -951,7 +954,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -973,6 +976,14 @@ ")\n", "plot_state_comparison(timepts, mhe_resp.outputs, lqr_resp.states)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4158e922", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/mpc_aircraft.ipynb b/examples/mpc_aircraft.ipynb index a1edf3ebb..535722bad 100644 --- a/examples/mpc_aircraft.ipynb +++ b/examples/mpc_aircraft.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -45,10 +45,10 @@ " [0, 0, 1, 0, 0],\n", " [0, 0, 0, 1, 0],\n", " [1, 0, 0, 0, 0]]\n", - "model = ct.ss2io(ct.ss(A, B, C, 0, 0.2))\n", + "model = ct.ss(A, B, C, 0, 0.2)\n", "\n", "# For the simulation we need the full state output\n", - "sys = ct.ss2io(ct.ss(A, B, np.eye(5), 0, 0.2))\n", + "sys = ct.ss(A, B, np.eye(5), 0, 0.2)\n", "\n", "# compute the steady state values for a particular value of the input\n", "ud = np.array([0.8, -0.3])\n", @@ -58,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -83,17 +83,20 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "System: sys[7]\n", - "Inputs (2): u[0], u[1], \n", - "Outputs (5): y[0], y[1], y[2], y[3], y[4], \n", - "States (17): sys[1]_x[0], sys[1]_x[1], sys[1]_x[2], sys[1]_x[3], sys[1]_x[4], sys[6]_x[0], sys[6]_x[1], sys[6]_x[2], sys[6]_x[3], sys[6]_x[4], sys[6]_x[5], sys[6]_x[6], sys[6]_x[7], sys[6]_x[8], sys[6]_x[9], sys[6]_x[10], sys[6]_x[11], \n" + ": sys[5]\n", + "Inputs (2): ['u[0]', 'u[1]']\n", + "Outputs (5): ['y[0]', 'y[1]', 'y[2]', 'y[3]', 'y[4]']\n", + "States (17): ['sys[3]_x[0]', 'sys[3]_x[1]', 'sys[3]_x[2]', 'sys[3]_x[3]', 'sys[3]_x[4]', 'sys[4]_x[0]', 'sys[4]_x[1]', 'sys[4]_x[2]', 'sys[4]_x[3]', 'sys[4]_x[4]', 'sys[4]_x[5]', 'sys[4]_x[6]', 'sys[4]_x[7]', 'sys[4]_x[8]', 'sys[4]_x[9]', 'sys[4]_x[10]', 'sys[4]_x[11]']\n", + "\n", + "Update: .updfcn at 0x167dff0a0>\n", + "Output: .outfcn at 0x167dff130>\n" ] } ], @@ -105,14 +108,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Computation time = 8.28132 seconds\n" + "Computation time = 28.414 seconds\n" ] } ], @@ -131,29 +134,27 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([-0.15441833, 0.00362039, 0.07760278, 0.00675162, 0.00698118])" + "array([-0.66523705, 0.01149905, 0.23159795, 0.03076594, 0.00674534])" ] }, - "execution_count": 10, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -175,11 +176,18 @@ "# Print the final error\n", "xd - xout[:,-1]" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -193,7 +201,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/examples/simulating_discrete_nonlinear.ipynb b/examples/simulating_discrete_nonlinear.ipynb index 5c5306029..5d4440347 100644 --- a/examples/simulating_discrete_nonlinear.ipynb +++ b/examples/simulating_discrete_nonlinear.ipynb @@ -5,7 +5,7 @@ "id": "e2b51597", "metadata": {}, "source": [ - "# simulating Simulink-like interconnections of systems including nonlinear and sampled-data systems \n", + "# Simulating interconnections of systems \n", "Sawyer B. Fuller 2023.03" ] }, @@ -577,7 +577,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.15" + "version": "3.10.6" } }, "nbformat": 4, From 7273e11f9942fb0f660c679fd622388ba40f1981 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 17 Jun 2023 18:00:03 -0700 Subject: [PATCH 0301/1025] iosys.py cleanup plus related subclass, docstring mods --- control/config.py | 3 -- control/frdata.py | 4 -- control/iosys.py | 62 +++++++++---------------------- control/lti.py | 10 ----- control/nlsys.py | 73 ++++++++++++++++++------------------- control/statesp.py | 9 +---- control/tests/iosys_test.py | 2 +- control/tests/lti_test.py | 30 +-------------- control/xferfcn.py | 5 +-- 9 files changed, 57 insertions(+), 141 deletions(-) diff --git a/control/config.py b/control/config.py index 033e7268c..987693c2d 100644 --- a/control/config.py +++ b/control/config.py @@ -132,9 +132,6 @@ def reset_defaults(): from .statesp import _statesp_defaults defaults.update(_statesp_defaults) - from .nlsys import _iosys_defaults - defaults.update(_iosys_defaults) - from .optimal import _optimal_defaults defaults.update(_optimal_defaults) diff --git a/control/frdata.py b/control/frdata.py index 4a369dca2..a09555b46 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -115,10 +115,6 @@ class FrequencyResponseData(LTI): """ - # Allow NDarray * StateSpace to give StateSpace._rmul_() priority - # https://docs.scipy.org/doc/numpy/reference/arrays.classes.html - __array_priority__ = 13 # override ndarray, StateSpace, I/O sys - # # Class attributes # diff --git a/control/iosys.py b/control/iosys.py index be164072b..786ba4a8d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1,9 +1,10 @@ # iosys.py - I/O system class and helper functions # RMM, 13 Mar 2022 # -# This file implements the InputOutputSystem class, which is used as a parent -# class for FrequencyResponseData, InputOutputSystem, LTI, TimeResponseData, -# and other similar classes to allow naming of signals. +# This file implements the InputOutputSystem class, which is used as a +# parent class for StateSpace, TransferFunction, NonlinearIOSystem, LTI, +# FrequencyResponseData, InterconnectedSystem and other similar classes +# that allow naming of signals. import numpy as np from copy import deepcopy @@ -12,7 +13,7 @@ from . import config __all__ = ['InputOutputSystem', 'issiso', 'timebase', 'common_timebase', - 'timebaseEqual', 'isdtime', 'isctime'] + 'isdtime', 'isctime'] # Define module default parameter values _iosys_defaults = { @@ -38,6 +39,15 @@ class InputOutputSystem(object): a set of subclasses that are used to implement specific structures and operations for different types of input/output dynamical systems. + The timebase for the system, dt, is used to specify whether the system + is operating in continuous or discrete time. It can have the following + values: + + * dt = None No timebase specified + * dt = 0 Continuous time system + * dt > 0 Discrete time system with sampling time dt + * dt = True Discrete time system with unspecified sampling time + Parameters ---------- inputs : int, list of str, or None @@ -93,22 +103,10 @@ class InputOutputSystem(object): state_prefix : string, optional Set the prefix for state signals. Default = 'x'. - Notes - ----- - The :class:`~control.InputOuputSystem` class (and its subclasses) makes - use of two special methods for implementing much of the work of the class: - - * _rhs(t, x, u): compute the right hand side of the differential or - difference equation for the system. This must be specified by the - subclass for the system. - - * _out(t, x, u): compute the output for the current state of the system. - The default is to return the entire system state. - """ - - # Allow ndarray * InputOutputSystem to give IOSystem._rmul_() priority - __array_priority__ = 13 # override ndarray, SS, TF types + # Allow NDarray * IOSystem to give IOSystem._rmul_() priority + # https://docs.scipy.org/doc/numpy/reference/arrays.classes.html + __array_priority__ = 20 def __init__( self, name=None, inputs=None, outputs=None, states=None, @@ -503,32 +501,6 @@ def common_timebase(dt1, dt2): else: raise ValueError("Systems have incompatible timebases") -# Check to see if two timebases are equal -def timebaseEqual(sys1, sys2): - """ - Check to see if two systems have the same timebase - - timebaseEqual(sys1, sys2) - - returns True if the timebases for the two systems are compatible. By - default, systems with timebase 'None' are compatible with either - discrete or continuous timebase systems. If two systems have a discrete - timebase (dt > 0) then their timebases must be equal. - """ - warn("timebaseEqual will be deprecated in a future release of " - "python-control; use :func:`common_timebase` instead", - PendingDeprecationWarning) - - if (type(sys1.dt) == bool or type(sys2.dt) == bool): - # Make sure both are unspecified discrete timebases - return type(sys1.dt) == type(sys2.dt) and sys1.dt == sys2.dt - elif (sys1.dt is None or sys2.dt is None): - # One or the other is unspecified => the other can be anything - return True - else: - return sys1.dt == sys2.dt - - # Check to see if a system is a discrete time system def isdtime(sys, strict=False): """ diff --git a/control/lti.py b/control/lti.py index 36aa10b7d..d63089b15 100644 --- a/control/lti.py +++ b/control/lti.py @@ -22,15 +22,6 @@ class LTI(InputOutputSystem): contains the number of inputs and outputs, and the timebase (dt) for the system. This function is not generally called directly by the user. - The timebase for the system, dt, is used to specify whether the system - is operating in continuous or discrete time. It can have the following - values: - - * dt = None No timebase specified - * dt = 0 Continuous time system - * dt > 0 Discrete time system with sampling time dt - * dt = True Discrete time system with unspecified sampling time - When two LTI systems are combined, their timebases much match. A system with timebase None can be combined with a system having a specified timebase, and the result will have the timebase of the latter system. @@ -38,7 +29,6 @@ class LTI(InputOutputSystem): Note: dt processing has been moved to the InputOutputSystem class. """ - def __init__(self, inputs=1, outputs=1, states=None, name=None, **kwargs): """Assign the LTI object's numbers of inputs and ouputs.""" super().__init__( diff --git a/control/nlsys.py b/control/nlsys.py index 136c07fa3..1e07d379e 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1,5 +1,4 @@ # nlsys.py - input/output system module -# # RMM, 28 April 2019 # # Additional features to add @@ -19,13 +18,6 @@ """ -__author__ = "Richard Murray" -__copyright__ = "Copyright 2019, California Institute of Technology" -__credits__ = ["Richard Murray"] -__license__ = "BSD" -__maintainer__ = "Richard Murray" -__email__ = "murray@cds.caltech.edu" - import numpy as np import scipy as sp import copy @@ -41,9 +33,6 @@ 'input_output_response', 'find_eqpt', 'linearize', 'interconnect'] -# Define module default parameter values -_iosys_defaults = {} - class NonlinearIOSystem(InputOutputSystem): """Nonlinear I/O system. @@ -110,10 +99,19 @@ class NonlinearIOSystem(InputOutputSystem): -------- InputOutputSystem : Input/output system class. - """ - # Set priority for operators - __array_priority__ = 13 # override ndarray, SS and TF types + Notes + ----- + The :class:`~control.InputOuputSystem` class (and its subclasses) makes + use of two special methods for implementing much of the work of the class: + * _rhs(t, x, u): compute the right hand side of the differential or + difference equation for the system. If not specified, the system + has no state. + + * _out(t, x, u): compute the output for the current state of the system. + The default is to return the entire system state. + + """ def __init__(self, updfcn, outfcn=None, params=None, **kwargs): """Create a nonlinear I/O system given update and output functions.""" # Process keyword arguments @@ -135,8 +133,9 @@ def __init__(self, updfcn, outfcn=None, params=None, **kwargs): if self.nstates is None: self.nstates = 0 else: - raise ValueError("States specified but no update function " - "given.") + raise ValueError( + "states specified but no update function given.") + if outfcn is None: # No output function specified => outputs = states if self.noutputs is None and self.nstates is not None: @@ -145,7 +144,7 @@ def __init__(self, updfcn, outfcn=None, params=None, **kwargs): # Number of outputs = number of states => all is OK pass elif self.noutputs is not None and self.noutputs != 0: - raise ValueError("Outputs specified but no output function " + raise ValueError("outputs specified but no output function " "(and nstates not known).") # Initialize current parameters to default parameters @@ -266,7 +265,7 @@ def __add__(self, other): # Make sure number of input and outputs match if self.ninputs != other.ninputs or self.noutputs != other.noutputs: raise ValueError("Can't add systems with incompatible numbers of " - "inputs or outputs.") + "inputs or outputs") # Create a new system to handle the composition inplist = [[(0, i), (1, i)] for i in range(self.ninputs)] @@ -286,8 +285,8 @@ def __radd__(self, other): # Make sure number of input and outputs match if self.ninputs != other.ninputs or self.noutputs != other.noutputs: - raise ValueError("Can't add systems with incompatible numbers of " - "inputs or outputs.") + raise ValueError("can't add systems with incompatible numbers of " + "inputs or outputs") # Create a new system to handle the composition inplist = [[(0, i), (1, i)] for i in range(other.ninputs)] @@ -308,8 +307,8 @@ def __sub__(self, other): # Make sure number of input and outputs match if self.ninputs != other.ninputs or self.noutputs != other.noutputs: raise ValueError( - "Can't substract systems with incompatible numbers of " - "inputs or outputs.") + "can't substract systems with incompatible numbers of " + "inputs or outputs") ninputs = self.ninputs noutputs = self.noutputs @@ -613,7 +612,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, name, inputs, outputs, states, _ = _process_iosys_keywords(kwargs) # Initialize the system list and index - self.syslist = list(syslist) # insure modifications can be made + self.syslist = list(syslist) # ensure modifications can be made self.syslist_index = {} # Initialize the input, output, and state counts, indices @@ -638,7 +637,7 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, # Make sure number of inputs, outputs, states is given if sys.ninputs is None or sys.noutputs is None or \ sys.nstates is None: - raise TypeError("System '%s' must define number of inputs, " + raise TypeError("system '%s' must define number of inputs, " "outputs, states in order to be connected" % sys.name) @@ -734,7 +733,7 @@ def outfcn(t, x, u, params): input_indices, output_indices): if self.connect_map[input_index, output_index] != 0: warn("multiple connections given for input %d" % - input_index + ". Combining with previous entries.") + input_index + "; combining with previous entries") self.connect_map[input_index, output_index] += gain # Convert the input list to a matrix: maps system to subsystems @@ -744,13 +743,13 @@ def outfcn(t, x, u, params): inpspec = [inpspec] if not isinstance(inpspec, list): raise ValueError("specifications in inplist must be of type " - "int, str, tuple or list.") + "int, str, tuple or list") for spec in inpspec: ulist_indices = self._parse_input_spec(spec) for j, ulist_index in enumerate(ulist_indices): if self.input_map[ulist_index, index] != 0: warn("multiple connections given for input %d" % - index + ". Combining with previous entries.") + index + "; combining with previous entries.") self.input_map[ulist_index, index + j] += 1 # Convert the output list to a matrix: maps subsystems to system @@ -760,13 +759,13 @@ def outfcn(t, x, u, params): outspec = [outspec] if not isinstance(outspec, list): raise ValueError("specifications in outlist must be of type " - "int, str, tuple or list.") + "int, str, tuple or list") for spec in outspec: ylist_indices, gain = self._parse_output_spec(spec) for j, ylist_index in enumerate(ylist_indices): if self.output_map[index, ylist_index] != 0: warn("multiple connections given for output %d" % - index + ". Combining with previous entries.") + index + "; combining with previous entries") self.output_map[index + j, ylist_index] += gain def _update_params(self, params, warning=False): @@ -866,7 +865,7 @@ def _compute_static_io(self, t, x, u): # Make sure that we stopped before detecting an algebraic loop if cycle_count == 0: - raise RuntimeError("Algebraic loop detected.") + raise RuntimeError("algebraic loop detected") return ulist, ylist @@ -876,7 +875,7 @@ def _parse_input_spec(self, spec): subsys_index, input_indices, gain = _parse_spec( self.syslist, spec, 'input') if gain != 1: - raise ValueError("gain not allowed in spec '%s'." % str(spec)) + raise ValueError("gain not allowed in spec '%s'" % str(spec)) # Return the indices into the input vector list (ylist) return [self.input_offset[subsys_index] + i for i in input_indices] @@ -1431,8 +1430,8 @@ def ivp_rhs(t, x): # Make sure the time vector is uniformly spaced dt = t_eval[1] - t_eval[0] if not np.allclose(t_eval[1:] - t_eval[:-1], dt): - raise ValueError("Parameter ``t_eval``: time values must be " - "equally spaced.") + raise ValueError("parameter ``t_eval``: time values must be " + "equally spaced") # Make sure the sample time matches the given time if sys.dt is not True: @@ -1579,7 +1578,7 @@ def find_eqpt(sys, x0, u0=None, y0=None, t=0, params=None, (u0 is not None and len(u0) != ninputs) or \ (y0 is not None and len(y0) != noutputs) or \ (dx0 is not None and len(dx0) != nstates): - raise ValueError("Length of input arguments does not match system.") + raise ValueError("length of input arguments does not match system") # Update the parameter values sys._update_params(params) @@ -1691,8 +1690,8 @@ def rootfun(z): num_freedoms = len(state_vars) + len(input_vars) num_constraints = len(output_vars) + len(deriv_vars) if num_constraints != num_freedoms: - warn("Number of constraints (%d) does not match number of degrees " - "of freedom (%d). Results may be meaningless." % + warn("number of constraints (%d) does not match number of degrees " + "of freedom (%d); results may be meaningless" % (num_constraints, num_freedoms)) # Make copies of the state and input variables to avoid overwriting @@ -1823,7 +1822,7 @@ def _find_size(sysval, vecval): elif sysval == 1: # (1, scalar) is also a valid combination from legacy code return 1 - raise ValueError("Can't determine size of system component.") + raise ValueError("can't determine size of system component") # Function to create an interconnected system diff --git a/control/statesp.py b/control/statesp.py index 29674f8db..2a67214d4 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -147,8 +147,6 @@ class StateSpace(NonlinearIOSystem, LTI): The default value of dt can be changed by changing the value of ``control.config.defaults['control.default_dt']``. - Note: timebase processing has moved to iosys. - A state space system is callable and returns the value of the transfer function evaluated at a point in the complex plane. See :meth:`~control.StateSpace.__call__` for a more detailed description. @@ -172,10 +170,6 @@ class StateSpace(NonlinearIOSystem, LTI): `'separate'`, the matrices are shown separately. """ - - # Allow ndarray * StateSpace to give StateSpace._rmul_() priority - __array_priority__ = 12 # override ndarray and TF types - def __init__(self, *args, **kwargs): """StateSpace(A, B, C, D[, dt]) @@ -278,9 +272,8 @@ def __init__(self, *args, **kwargs): updfcn, outfcn, name=name, inputs=inputs, outputs=outputs, states=states, dt=dt, **kwargs) - self.params = {} - # Reset shapes (may not be needed once np.matrix support is removed) + # Reset shapes if the system is static if self._isstatic(): A.shape = (0, 0) B.shape = (0, self.ninputs) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 7a75ebf3b..5aad0aadb 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -379,7 +379,7 @@ def test_connect_spec_warnings(self, tsys, connections, inplist, outlist): linsys_series, T, U, X0, return_x=True) # Set up multiple gainst and make sure a warning is generated - with pytest.warns(UserWarning, match="multiple.*Combining"): + with pytest.warns(UserWarning, match="multiple.*combining"): iosys_series = ct.InterconnectedSystem( [iosys1, iosys2], connections, inplist, outlist) ios_t, ios_y, ios_x = ct.input_output_response( diff --git a/control/tests/lti_test.py b/control/tests/lti_test.py index e1d7b51a6..734bdb40b 100644 --- a/control/tests/lti_test.py +++ b/control/tests/lti_test.py @@ -7,7 +7,7 @@ import control as ct from control import c2d, tf, ss, tf2ss, NonlinearIOSystem from control.lti import LTI, evalfr, damp, dcgain, zeros, poles, bandwidth -from control import common_timebase, isctime, isdtime, issiso, timebaseEqual +from control import common_timebase, isctime, isdtime, issiso from control.tests.conftest import slycotonly from control.exception import slycot_check @@ -135,34 +135,6 @@ def test_bandwidth(self): # test if raise exception if dbdrop is positive scalar np.testing.assert_raises(ValueError, bandwidth, sys1, 3) - @pytest.mark.parametrize("dt1, dt2, expected", - [(None, None, True), - (None, 0, True), - (None, 1, True), - pytest.param(None, True, True, - marks=pytest.mark.xfail( - reason="returns false")), - (0, 0, True), - (0, 1, False), - (0, True, False), - (1, 1, True), - (1, 2, False), - (1, True, False), - (True, True, True)]) - def test_timebaseEqual_deprecated(self, dt1, dt2, expected): - """Test that timbaseEqual throws a warning and returns as documented""" - sys1 = tf([1], [1, 2, 3], dt1) - sys2 = tf([1], [1, 4, 5], dt2) - - print(sys1.dt) - print(sys2.dt) - - with pytest.deprecated_call(): - assert timebaseEqual(sys1, sys2) is expected - # Make sure behaviour is symmetric - with pytest.deprecated_call(): - assert timebaseEqual(sys2, sys1) is expected - @pytest.mark.parametrize("dt1, dt2, expected", [(None, None, None), (None, 0, 0), diff --git a/control/xferfcn.py b/control/xferfcn.py index e0ac8cadd..64fb26800 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -153,10 +153,6 @@ class TransferFunction(LTI): >>> G = (s + 1)/(s**2 + 2*s + 1) """ - - # Give TransferFunction._rmul_() priority for ndarray * TransferFunction - __array_priority__ = 11 # override ndarray types - def __init__(self, *args, **kwargs): """TransferFunction(num, den[, dt]) @@ -174,6 +170,7 @@ def __init__(self, *args, **kwargs): # # Process positional arguments # + # TODO: move to tf() if len(args) == 2: # The user provided a numerator and a denominator. num, den = args From 9d426e94c3e816590e3e5514eb4ac71c837919e6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 17 Jun 2023 22:48:43 -0700 Subject: [PATCH 0302/1025] removed unused code; added unit tests for coverage --- control/iosys.py | 59 +++-------------------------------- control/nlsys.py | 7 +---- control/tests/iosys_test.py | 7 +++++ control/tests/namedio_test.py | 27 ++++++++++++++++ 4 files changed, 40 insertions(+), 60 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 786ba4a8d..4df3d461a 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -185,10 +185,6 @@ def __str__(self): str += f"States ({self.nstates}): {self.state_labels}" return str - # Find a signal by name - def _find_signal(self, name, sigdict): - return sigdict.get(name, None) - # Find a list of signals by name, index, or pattern def _find_signals(self, name_list, sigdict): if not isinstance(name_list, (list, tuple)): @@ -518,22 +514,9 @@ def isdtime(sys, strict=False): if isinstance(sys, (int, float, complex, np.number)): # OK as long as strict checking is off return True if not strict else False - - # Check for a transfer function or state-space object - if isinstance(sys, InputOutputSystem): + else: return sys.isdtime(strict) - # Check to see if object has a dt object - if hasattr(sys, 'dt'): - # If no timebase is given, answer depends on strict flag - if sys.dt == None: - return True if not strict else False - - # Look for dt > 0 (also works if dt = True) - return sys.dt > 0 - - # Got passed something we don't recognize - return False # Check to see if a system is a continuous time system def isctime(sys, strict=False): @@ -552,21 +535,9 @@ def isctime(sys, strict=False): if isinstance(sys, (int, float, complex, np.number)): # OK as long as strict checking is off return True if not strict else False - - # Check for a transfer function or state space object - if isinstance(sys, InputOutputSystem): + else: return sys.isctime(strict) - # Check to see if object has a dt object - if hasattr(sys, 'dt'): - # If no timebase is given, answer depends on strict flag - if sys.dt is None: - return True if not strict else False - return sys.dt == 0 - - # Got passed something we don't recognize - return False - # Utility function to parse nameio keywords def _process_iosys_keywords( @@ -592,10 +563,6 @@ def _process_iosys_keywords( if sys.nstates is not None: defaults['states'] = sys.state_labels - - elif not isinstance(defaults, dict): - raise TypeError("default must be dict or sys") - else: sys = None @@ -626,12 +593,12 @@ def pop_with_default(kw, defval=None, return_list=True): # If we were given a system, make sure sizes match list lengths if sys: if isinstance(inputs, list) and sys.ninputs != len(inputs): - raise ValueError("Wrong number of input labels given.") + raise ValueError("wrong number of input labels given") if isinstance(outputs, list) and sys.noutputs != len(outputs): - raise ValueError("Wrong number of output labels given.") + raise ValueError("wrong number of output labels given") if sys.nstates is not None and \ isinstance(states, list) and sys.nstates != len(states): - raise ValueError("Wrong number of state labels given.") + raise ValueError("wrong number of state labels given") # Process timebase: if not given use default, but allow None as value dt = _process_dt_keyword(keywords, defaults, static=static) @@ -911,19 +878,3 @@ def _parse_spec(syslist, spec, signame, dictname=None): ValueError(f"signal index '{index}' is out of range") return system_index, signal_indices, gain - -# Utility function for creating an I/O system from a scalar or array -def _convert_static_iosystem(K, noutputs=1): - if isinstance(sys1, NonlinearIOSystem): - return sys # no action required - elif isinstance(K, (int, float, np.number)): - return NonlinearIOSystem( - None, lambda t, x, u, params: K * u, - outputs=noutputs, inputs=noutputs) - elif isinstance(K, np.ndarray): - # Assume that K is the right shape - return NonlinearIOSystem( - None, lambda t, x, u, params: K @ u, - outputs=K.shape[0], inputs=K.shape[1]) - - raise TypeError("Unknown I/O system object ", sys1) diff --git a/control/nlsys.py b/control/nlsys.py index 1e07d379e..ae46ac181 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -231,7 +231,7 @@ def __rmul__(self, other): return NotImplemented # Make sure systems can be interconnected - if other.noutputs != self.ninputs: + if self.noutputs != other.ninputs: raise ValueError("Can't multiply systems with incompatible " "inputs and outputs") @@ -566,11 +566,6 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, linsys = StateSpace(A, B, C, D, self.dt, remove_useless_states=False) # Set the system name, inputs, outputs, and states - if 'copy' in kwargs: - copy_names = kwargs.pop('copy') - warn("keyword 'copy' is deprecated. please use 'copy_names'", - DeprecationWarning) - if copy_names: linsys._copy_names(self, prefix_suffix_name='linearized') if name is not None: diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 5aad0aadb..5702648b0 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1354,6 +1354,12 @@ def test_operand_conversion(self, Pout, Pin, C, op, PCout, PCin): (2, 2, 'rss23', ct.StateSpace.__rsub__), (2, 3, np.array([[2]]), ct.StateSpace.__sub__), (2, 3, np.array([[2]]), ct.StateSpace.__rsub__), + (2, 2, 'rss32', ct.NonlinearIOSystem.__mul__), + (2, 2, 'rss23', ct.NonlinearIOSystem.__rmul__), + (2, 2, 'rss32', ct.NonlinearIOSystem.__add__), + (2, 2, 'rss23', ct.NonlinearIOSystem.__radd__), + (2, 2, 'rss32', ct.NonlinearIOSystem.__sub__), + (2, 2, 'rss23', ct.NonlinearIOSystem.__rsub__), ]) def test_operand_incompatible(self, Pout, Pin, C, op): P = ct.StateSpace( @@ -1362,6 +1368,7 @@ def test_operand_incompatible(self, Pout, Pin, C, op): C = ct.rss(2, 3, 2) elif isinstance(C, str) and C == 'rss23': C = ct.rss(2, 2, 3) + with pytest.raises(ValueError, match="incompatible"): PC = op(P, C) diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index c98223bfb..f702e704b 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -336,3 +336,30 @@ def test_invalid_signal_names(): with pytest.raises(ValueError, match="invalid system name"): sys = ct.rss(4, inputs=1, outputs=1, name="system.subsys") + + +# Negative system spect +def test_negative_system_spec(): + sys1 = ct.rss(2, 1, 1, strictly_proper=True, name='sys1') + sys2 = ct.rss(2, 1, 1, strictly_proper=True, name='sys2') + + # Negative feedback via explicit signal specification + negfbk_negsig = ct.interconnect( + [sys1, sys2], inplist=('sys1', 'u[0]'), outlist=('sys2', 'y[0]'), + connections=[ + [('sys2', 'u[0]'), ('sys1', 'y[0]')], + [('sys1', 'u[0]'), ('sys2', '-y[0]')] + ]) + + # Negative feedback via system specs + negfbk_negsys = ct.interconnect( + [sys1, sys2], inplist=['sys1'], outlist=['sys2'], + connections=[ + ['sys2', 'sys1'], + ['sys1', '-sys2'], + ]) + + np.testing.assert_allclose(negfbk_negsig.A, negfbk_negsys.A) + np.testing.assert_allclose(negfbk_negsig.B, negfbk_negsys.B) + np.testing.assert_allclose(negfbk_negsig.C, negfbk_negsys.C) + np.testing.assert_allclose(negfbk_negsig.D, negfbk_negsys.D) From 0758426d6844b24b7bb6405cdf0c5b610ad47167 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 18 Jun 2023 09:01:36 -0700 Subject: [PATCH 0303/1025] reorganize and clean up statesp.py --- control/statesp.py | 73 ++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 45 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 2a67214d4..4371f9f32 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -192,15 +192,14 @@ def __init__(self, *args, **kwargs): # # Process positional arguments # - # TODO: Move all of this into the ss() factory function - # TODO: Use standard processing order for I/O systems + if len(args) == 4: # The user provided A, B, C, and D matrices. - (A, B, C, D) = args + A, B, C, D = args elif len(args) == 5: # Discrete time system - (A, B, C, D, dt) = args + A, B, C, D, dt = args if 'dt' in kwargs: warn("received multiple dt arguments, " "using positional arg dt = %s" % dt) @@ -208,17 +207,17 @@ def __init__(self, *args, **kwargs): args = args[:-1] elif len(args) == 1: - # Use the copy constructor. + # Use the copy constructor if not isinstance(args[0], StateSpace): raise TypeError( - "The one-argument constructor can only take in a " - "StateSpace object. Received %s." % type(args[0])) + "the one-argument constructor can only take in a " + "StateSpace object; received %s" % type(args[0])) A = args[0].A B = args[0].B C = args[0].C D = args[0].D - dt = args[0].dt - # TODO: copy the remaining attributes + if 'dt' not in kwargs: + kwargs['dt'] = args[0].dt else: raise TypeError( @@ -691,7 +690,6 @@ def __mul__(self, other): # Right multiplication of two state space systems (series interconnection) # Just need to convert LH argument to a state space object - # TODO: __rmul__ only works for special cases (??) def __rmul__(self, other): """Right multiply two LTI objects (serial connection).""" from .xferfcn import TransferFunction @@ -720,7 +718,7 @@ def __rmul__(self, other): # TODO: general __truediv__ requires descriptor system support def __truediv__(self, other): - """Division of state space systems byTFs, FRDs, scalars, and arrays""" + """Division of state space systems by TFs, FRDs, scalars, and arrays""" if not isinstance(other, (LTI, InputOutputSystem)): return self * (1/other) else: @@ -1522,11 +1520,6 @@ def ss(*args, **kwargs): Convert a linear system into space system form. Always creates a new system, even if sys is already a state space system. - ``ss(updfcn, outfcn)`` - Create a nonlinear input/output system with update function ``updfcn`` - and output function ``outfcn``. See :class:`NonlinearIOSystem` for - more information. - ``ss(A, B, C, D)`` Create a state space system from the matrices of its state and output equations: @@ -1585,9 +1578,7 @@ def ss(*args, **kwargs): See Also -------- - tf - ss2tf - tf2ss + tf, ss2tf, tf2ss Examples -------- @@ -1601,10 +1592,12 @@ def ss(*args, **kwargs): >>> sys2 = ct.ss(sys_tf) """ - # See if this is a nonlinear I/O system + # See if this is a nonlinear I/O system (legacy usage) if len(args) > 0 and (hasattr(args[0], '__call__') or args[0] is None) \ and not isinstance(args[0], (InputOutputSystem, LTI)): # Function as first (or second) argument => assume nonlinear IO system + warn("use nlsys() to create nonlinear I/O System", + PendingDeprecationWarning) return NonlinearIOSystem(*args, **kwargs) elif len(args) == 4 or len(args) == 5: @@ -1644,8 +1637,8 @@ def tf2ss(*args, **kwargs): The function accepts either 1 or 2 parameters: ``tf2ss(sys)`` - Convert a linear system into space space form. Always creates - a new system, even if sys is already a StateSpace object. + Convert a transfer function into space space form. Equivalent to + `ss(sys)`. ``tf2ss(num, den)`` Create a state space system from its numerator and denominator @@ -1710,15 +1703,8 @@ def tf2ss(*args, **kwargs): _convert_to_statespace(TransferFunction(*args)), **kwargs) elif len(args) == 1: - sys = args[0] - if not isinstance(sys, TransferFunction): - raise TypeError("tf2ss(sys): sys must be a TransferFunction " - "object.") - return StateSpace( - _convert_to_statespace( - sys, - use_prefix_suffix=not sys._generic_name_check()), - **kwargs) + return ss(*args, **kwargs) + else: raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) @@ -1946,8 +1932,8 @@ def summing_junction( Examples -------- - >>> P = ct.tf2io(1, [1, 0], inputs='u', outputs='y') - >>> C = ct.tf2io(10, [1, 1], inputs='e', outputs='u') + >>> P = ct.tf(1, [1, 0], inputs='u', outputs='y') + >>> C = ct.tf(10, [1, 1], inputs='e', outputs='u') >>> sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') >>> T = ct.interconnect([P, C, sumblk], inputs='r', outputs='y') >>> T.ninputs, T.noutputs, T.nstates @@ -2031,6 +2017,9 @@ def _parse_list(signals, signame='input', prefix='u'): return StateSpace( ss_sys, inputs=input_names, outputs=output_names, name=name) +# +# Utility functions +# def _ssmatrix(data, axis=1): """Convert argument to a (possibly empty) 2D state space matrix. @@ -2104,7 +2093,6 @@ def _f2s(f): return s -# TODO: add discrete time check def _convert_to_statespace(sys, use_prefix_suffix=False): """Convert a system to state space form (if needed). @@ -2126,8 +2114,8 @@ def _convert_to_statespace(sys, use_prefix_suffix=False): # Make sure the transfer function is proper if any([[len(num) for num in col] for col in sys.num] > [[len(num) for num in col] for col in sys.den]): - raise ValueError("Transfer function is non-proper; can't " - "convert to StateSpace system.") + raise ValueError("transfer function is non-proper; can't " + "convert to StateSpace system") try: from slycot import td04ad @@ -2163,9 +2151,6 @@ def _convert_to_statespace(sys, use_prefix_suffix=False): if sys.ninputs != 1 or sys.noutputs != 1: raise TypeError("No support for MIMO without slycot") - # TODO: do we want to squeeze first and check dimenations? - # I think this will fail if num and den aren't 1-D after - # the squeeze A, B, C, D = \ sp.signal.tf2ss(squeeze(sys.num), squeeze(sys.den)) newsys = StateSpace(A, B, C, D, sys.dt) @@ -2187,7 +2172,7 @@ def _convert_to_statespace(sys, use_prefix_suffix=False): except Exception: raise TypeError("Can't convert given type to StateSpace system.") -# TODO: add discrete time option + def _rss_generate( states, inputs, outputs, cdtype, strictly_proper=False, name=None): """Generate a random state space. @@ -2310,8 +2295,6 @@ def _rss_generate( return StateSpace(*ss_args, name=name) -# Convert a MIMO system to a SISO system -# TODO: add discrete time check def _mimo2siso(sys, input, output, warn_conversion=False): # pylint: disable=W0622 """ @@ -2416,8 +2399,8 @@ def _mimo2simo(sys, input, warn_conversion=False): # Y = C*X + D*U new_B = sys.B[:, input:input+1] new_D = sys.D[:, input:input+1] - sys = StateSpace(sys.A, new_B, sys.C, new_D, sys.dt, - name=sys.name, - inputs=sys.input_labels[input], outputs=sys.output_labels) + sys = StateSpace( + sys.A, new_B, sys.C, new_D, sys.dt, name=sys.name, + inputs=sys.input_labels[input], outputs=sys.output_labels) return sys From 7dc92df63554c431120bff4e03faf69b80af0e37 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 18 Jun 2023 09:46:08 -0700 Subject: [PATCH 0304/1025] add nlsys() function for creating nonlinear I/O systems --- control/nlsys.py | 96 +++++++++++++++++++++++++++++++++- control/tests/config_test.py | 13 +++-- control/tests/iosys_test.py | 13 +++-- control/tests/kwargs_test.py | 8 ++- control/tests/nlsys_test.py | 33 ++++++++++++ control/tests/timeresp_test.py | 4 +- doc/control.rst | 3 +- doc/iosys.rst | 24 ++++----- 8 files changed, 165 insertions(+), 29 deletions(-) create mode 100644 control/tests/nlsys_test.py diff --git a/control/nlsys.py b/control/nlsys.py index ae46ac181..11631758e 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -29,7 +29,7 @@ from .timeresp import _check_convert_array, _process_time_response, \ TimeResponseData -__all__ = ['NonlinearIOSystem', 'InterconnectedSystem', +__all__ = ['NonlinearIOSystem', 'InterconnectedSystem', 'nlsys', 'input_output_response', 'find_eqpt', 'linearize', 'interconnect'] @@ -1133,6 +1133,100 @@ def check_unused_signals( return dropped_inputs, dropped_outputs +def nlsys( + updfcn, outfcn=None, inputs=None, outputs=None, states=None, **kwargs): + """Create a nonlinear input/output system. + + Creates an :class:`~control.InputOutputSystem` for a nonlinear system by + specifying a state update function and an output function. The new system + can be a continuous or discrete time system. + + Parameters + ---------- + updfcn : callable + Function returning the state update function + + `updfcn(t, x, u, params) -> array` + + where `x` is a 1-D array with shape (nstates,), `u` is a 1-D array + with shape (ninputs,), `t` is a float representing the currrent + time, and `params` is a dict containing the values of parameters + used by the function. + + outfcn : callable + Function returning the output at the given state + + `outfcn(t, x, u, params) -> array` + + where the arguments are the same as for `upfcn`. + + inputs : int, list of str or None, optional + Description of the system inputs. This can be given as an integer + count or as a list of strings that name the individual signals. + If an integer count is specified, the names of the signal will be + of the form `s[i]` (where `s` is one of `u`, `y`, or `x`). If + this parameter is not given or given as `None`, the relevant + quantity will be determined when possible based on other + information provided to functions using the system. + + outputs : int, list of str or None, optional + Description of the system outputs. Same format as `inputs`. + + states : int, list of str, or None, optional + Description of the system states. Same format as `inputs`. + + dt : timebase, optional + The timebase for the system, used to specify whether the system is + operating in continuous or discrete time. It can have the + following values: + + * dt = 0: continuous time system (default) + * dt > 0: discrete time system with sampling period 'dt' + * dt = True: discrete time with unspecified sampling period + * dt = None: no timebase specified + + name : string, optional + System name (used for specifying signals). If unspecified, a + generic name is generated with a unique integer id. + + params : dict, optional + Parameter values for the systems. Passed to the evaluation + functions for the system as default values, overriding internal + defaults. + + Returns + ------- + sys : :class:`NonlinearIOSystem` + Nonlinear input/output system. + + See Also + -------- + ss, tf + + Example + ------- + >>> def kincar_update(t, x, u, params): + ... l = params.get('l', 1) # wheelbase + ... return np.array([ + ... np.cos(x[2]) * u[0], # x velocity + ... np.sin(x[2]) * u[0], # y velocity + ... np.tan(u[1]) * u[0] / l # angular velocity + ... ]) + >>> + >>> def kincar_output(t, x, u, params): + ... return x[0:2] # x, y position + >>> + >>> kincar = ct.nlsys( + ... kincar_update, kincar_output, states=3, inputs=2, outputs=2) + >>> + >>> timepts = np.linspace(0, 10) + >>> response = ct.input_output_response( + ... kincar, timepts, [10, 0.05 * np.sin(timepts)]) + """ + return NonlinearIOSystem( + updfcn, outfcn, inputs=inputs, outputs=outputs, states=states, **kwargs) + + def input_output_response( sys, T, U=0., X0=0, params=None, transpose=False, return_x=False, squeeze=None, diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 584d0a806..5ea99d264 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -254,12 +254,11 @@ def test_legacy_defaults(self): assert isinstance(ct.ss(0, 0, 0, 1).D, np.ndarray) assert not isinstance(ct.ss(0, 0, 0, 1).D, np.matrix) - # test that old versions don't raise a problem - ct.use_legacy_defaults('REL-0.1') - ct.use_legacy_defaults('control-0.3a') - ct.use_legacy_defaults('0.6c') - ct.use_legacy_defaults('0.8.2') - ct.use_legacy_defaults('0.1') + # test that old versions don't raise a problem (besides Numpy warning) + for ver in ['REL-0.1', 'control-0.3a', '0.6c', '0.8.2', '0.1']: + with pytest.warns( + UserWarning, match="NumPy matrix class no longer"): + ct.use_legacy_defaults(ver) # Make sure that nonsense versions generate an error with pytest.raises(ValueError): @@ -273,7 +272,7 @@ def test_change_default_dt(self, dt): ct.set_defaults('control', default_dt=dt) assert ct.ss(1, 0, 0, 1).dt == dt assert ct.tf(1, [1, 1]).dt == dt - nlsys = ct.nlsys.NonlinearIOSystem( + nlsys = ct.NonlinearIOSystem( lambda t, x, u: u * x * x, lambda t, x, u: x, inputs=1, outputs=1) assert nlsys.dt == dt diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 5702648b0..bed5ac537 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1897,8 +1897,9 @@ def test_nonuniform_timepts(nstates, noutputs, ninputs): def test_ss_nonlinear(): """Test ss() for creating nonlinear systems""" - secord = ct.ss(secord_update, secord_output, inputs='u', outputs='y', - states = ['x1', 'x2'], name='secord') + with pytest.warns(PendingDeprecationWarning, match="use nlsys()"): + secord = ct.ss(secord_update, secord_output, inputs='u', outputs='y', + states = ['x1', 'x2'], name='secord') assert secord.name == 'secord' assert secord.input_labels == ['u'] assert secord.output_labels == ['y'] @@ -1917,12 +1918,14 @@ def test_ss_nonlinear(): np.testing.assert_almost_equal(ss_response.outputs, io_response.outputs) # Make sure that optional keywords are allowed - secord = ct.ss(secord_update, secord_output, dt=True) + with pytest.warns(PendingDeprecationWarning, match="use nlsys()"): + secord = ct.ss(secord_update, secord_output, dt=True) assert ct.isdtime(secord) # Make sure that state space keywords are flagged - with pytest.raises(TypeError, match="unrecognized keyword"): - ct.ss(secord_update, remove_useless_states=True) + with pytest.warns(PendingDeprecationWarning, match="use nlsys()"): + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.ss(secord_update, remove_useless_states=True) def test_rss(): diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 36e8ca17c..5105f3061 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -70,7 +70,11 @@ def test_kwarg_search(module, prefix): source = inspect.getsource(kwarg_unittest[prefix + name]) # Make sure the unit test looks for unrecognized keyword - if source and source.find('unrecognized keyword') < 0: + if kwarg_unittest[prefix + name] == test_unrecognized_kwargs: + # @parametrize messes up the check, but we know it is there + pass + + elif source and source.find('unrecognized keyword') < 0: warnings.warn( f"'unrecognized keyword' not found in unit test " f"for {name}") @@ -85,6 +89,7 @@ def test_kwarg_search(module, prefix): (control.lqe, 1, 0, ([[1]], [[1]]), {}), (control.lqr, 1, 0, ([[1, 0], [0, 1]], [[1]]), {}), (control.linearize, 1, 0, (0, 0), {}), + (control.nlsys, 0, 0, (lambda t, x, u, params: np.array([0]),), {}), (control.pzmap, 1, 0, (), {}), (control.rlocus, 0, 1, (), {}), (control.root_locus, 0, 1, (), {}), @@ -172,6 +177,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'linearize': test_unrecognized_kwargs, 'lqe': test_unrecognized_kwargs, 'lqr': test_unrecognized_kwargs, + 'nlsys': test_unrecognized_kwargs, 'nyquist': test_matplotlib_kwargs, 'nyquist_plot': test_matplotlib_kwargs, 'pzmap': test_unrecognized_kwargs, diff --git a/control/tests/nlsys_test.py b/control/tests/nlsys_test.py new file mode 100644 index 000000000..d93051fb4 --- /dev/null +++ b/control/tests/nlsys_test.py @@ -0,0 +1,33 @@ +"""nlsys_test.py - test nonlinear input/output system operations + +RMM, 18 Jun 2022 + +This test suite checks various newer functions for NonlinearIOSystems. +The main test functions are contained in iosys_test.py. + +""" + +import pytest +import numpy as np +import control as ct + +def test_nlsys_basic(): + def kincar_update(t, x, u, params): + l = params.get('l', 1) # wheelbase + return np.array([ + np.cos(x[2]) * u[0], # x velocity + np.sin(x[2]) * u[0], # y velocity + np.tan(u[1]) * u[0] / l # angular velocity + ]) + + def kincar_output(t, x, u, params): + return x[0:2] # x, y position + + kincar = ct.nlsys( + kincar_update, kincar_output, + states=['x', 'y', 'theta'], + inputs=2, input_prefix='U', + outputs=2) + assert kincar.input_labels == ['U[0]', 'U[1]'] + assert kincar.output_labels == ['y[0]', 'y[1]'] + assert kincar.state_labels == ['x', 'y', 'theta'] diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index ceb451476..04b7bb482 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -639,7 +639,9 @@ def test_forced_response_legacy(self): U = np.sin(T) """Make sure that legacy version of forced_response works""" - ct.config.use_legacy_defaults("0.8.4") + with pytest.warns( + UserWarning, match="NumPy matrix class no longer"): + ct.config.use_legacy_defaults("0.8.4") # forced_response returns x by default t, y = ct.step_response(sys, T) t, y, x = ct.forced_response(sys, T, U) diff --git a/doc/control.rst b/doc/control.rst index 3d7b9df04..c420554c4 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -21,7 +21,7 @@ System creation zpk rss drss - NonlinearIOSystem + nlsys System interconnections @@ -193,7 +193,6 @@ Utility functions and conversions tf2ss tfdata timebase - timebaseEqual unwrap use_fbs_defaults use_matlab_defaults diff --git a/doc/iosys.rst b/doc/iosys.rst index 304f17779..a9f97241a 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -26,12 +26,12 @@ a :class:`~control.StateSpace` linear system. Use the Input/output systems are automatically created for state space LTI systems when using the :func:`ss` function. Nonlinear input/output systems can be -created using the :class:`~control.NonlinearIOSystem` class, which requires +created using the :func:`~control.nlsys` function, which requires the definition of an update function (for the right hand side of the differential or different equation) and an output function (computes the outputs from the state):: - io_sys = NonlinearIOSystem(updfcn, outfcn, inputs=M, outputs=P, states=N) + io_sys = ct.nlsys(updfcn, outfcn, inputs=M, outputs=P, states=N) More complex input/output systems can be constructed by using the :func:`~control.interconnect` function, which allows a collection of @@ -92,7 +92,7 @@ We now create an input/output system using these dynamics: .. code-block:: python - io_predprey = ct.NonlinearIOSystem( + io_predprey = ct.nlsys( predprey_rhs, None, inputs=('u'), outputs=('H', 'L'), states=('H', 'L'), name='predprey') @@ -141,11 +141,11 @@ lynxes as the desired output (following FBS2e, Example 7.5): To construct the control law, we build a simple input/output system that applies a corrective input based on deviations from the equilibrium point. This system has no dynamics, since it is a static (affine) map, and can -constructed using the `~control.ios.NonlinearIOSystem` class: +constructed using :func:`~control.nlsys` with no update function: .. code-block:: python - io_controller = ct.NonlinearIOSystem( + io_controller = ct.nlsys( None, lambda t, x, u, params: -K @ (u[1:] - xeq) + kf * (u[0] - xeq[1]), inputs=('Ld', 'u1', 'u2'), outputs=1, name='control') @@ -153,9 +153,8 @@ constructed using the `~control.ios.NonlinearIOSystem` class: The input to the controller is `u`, consisting of the vector of hare and lynx populations followed by the desired lynx population. -To connect the controller to the predatory-prey model, we create an -:class:`~control.InterconnectedSystem` using the :func:`~control.interconnect` -function: +To connect the controller to the predatory-prey model, we use the +:func:`~control.interconnect` function: .. code-block:: python @@ -243,8 +242,8 @@ interconnecting systems, especially when combined with the :func:`~control.summing_junction` function. For example, the following code will create a unity gain, negative feedback system:: - P = ct.tf2io([1], [1, 0], inputs='u', outputs='y') - C = ct.tf2io([10], [1, 1], inputs='e', outputs='u') + P = ct.tf([1], [1, 0], inputs='u', outputs='y') + C = ct.tf([10], [1, 1], inputs='e', outputs='u') sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') T = ct.interconnect([P, C, sumblk], inplist='r', outlist='y') @@ -471,7 +470,8 @@ Module classes and functions :toctree: generated/ ~control.find_eqpt - ~control.linearize - ~control.input_output_response ~control.interconnect + ~control.input_output_response + ~control.linearize + ~control.nlsys ~control.summing_junction From e9e3a8e3ae0b7d6afc2ea1966b639e6243e71da3 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 18 Jun 2023 15:39:16 -0700 Subject: [PATCH 0305/1025] allow bdalg fucntions (series, parallel, feedback) on general I/O systems --- control/bdalg.py | 148 ++++++++++++++------------ control/nlsys.py | 9 +- control/tests/bdalg_test.py | 93 ++++++++-------- control/tests/type_conversion_test.py | 50 +++++++++ 4 files changed, 182 insertions(+), 118 deletions(-) diff --git a/control/bdalg.py b/control/bdalg.py index d1835e4dc..677978715 100644 --- a/control/bdalg.py +++ b/control/bdalg.py @@ -53,10 +53,13 @@ """ +from functools import reduce import numpy as np +from warnings import warn from . import xferfcn as tf from . import statesp as ss from . import frdata as frd +from .iosys import InputOutputSystem __all__ = ['series', 'parallel', 'negate', 'feedback', 'append', 'connect'] @@ -68,12 +71,13 @@ def series(sys1, *sysn): Parameters ---------- - sys1 : scalar, StateSpace, TransferFunction, or FRD - *sysn : other scalars, StateSpaces, TransferFunctions, or FRDs + sys1, sys2, ..., sysn: scalar, array, or :class:`InputOutputSystem` + I/O systems to combine. Returns ------- - out : scalar, StateSpace, or TransferFunction + out : scalar, array, or :class:`InputOutputSystem` + Series interconnection of the systems. Raises ------ @@ -83,14 +87,15 @@ def series(sys1, *sysn): See Also -------- - parallel - feedback + append, feedback, interconnect, negate, parallel Notes ----- - This function is a wrapper for the __mul__ function in the StateSpace and - TransferFunction classes. The output type is usually the type of `sys2`. - If `sys2` is a scalar, then the output type is the type of `sys1`. + This function is a wrapper for the __mul__ function in the appropriate + :class:`NonlinearIOSystem`, :class:`StateSpace`, + :class:`TransferFunction`, or other I/O system class. The output type + is the type of `sys1` unless a more general type is required based on + type type of `sys2`. If both systems have a defined timebase (dt = 0 for continuous time, dt > 0 for discrete time), then the timebase for both systems must @@ -112,8 +117,7 @@ def series(sys1, *sysn): (2, 1, 5) """ - from functools import reduce - return reduce(lambda x, y:y*x, sysn, sys1) + return reduce(lambda x, y: y * x, sysn, sys1) def parallel(sys1, *sysn): @@ -123,12 +127,13 @@ def parallel(sys1, *sysn): Parameters ---------- - sys1 : scalar, StateSpace, TransferFunction, or FRD - *sysn : other scalars, StateSpaces, TransferFunctions, or FRDs + sys1, sys2, ..., sysn: scalar, array, or :class:`InputOutputSystem` + I/O systems to combine. Returns ------- - out : scalar, StateSpace, or TransferFunction + out : scalar, array, or :class:`InputOutputSystem` + Parallel interconnection of the systems. Raises ------ @@ -137,8 +142,7 @@ def parallel(sys1, *sysn): See Also -------- - series - feedback + append, feedback, interconnect, negate, series Notes ----- @@ -167,8 +171,7 @@ def parallel(sys1, *sysn): (3, 4, 7) """ - from functools import reduce - return reduce(lambda x, y:x+y, sysn, sys1) + return reduce(lambda x, y: x + y, sysn, sys1) def negate(sys): @@ -177,17 +180,23 @@ def negate(sys): Parameters ---------- - sys : StateSpace, TransferFunction or FRD + sys: scalar, array, or :class:`InputOutputSystem` + I/O systems to negate. Returns ------- - out : StateSpace or TransferFunction + out : scalar, array, or :class:`InputOutputSystem` + Negated system. Notes ----- This function is a wrapper for the __neg__ function in the StateSpace and TransferFunction classes. The output type is the same as the input type. + See Also + -------- + append, feedback, interconnect, parallel, series + Examples -------- >>> G = ct.tf([2], [1, 1]) @@ -204,15 +213,12 @@ def negate(sys): #! TODO: expand to allow sys2 default to work in MIMO case? #! TODO: allow renaming of signals (for all bdalg operations) def feedback(sys1, sys2=1, sign=-1): - """ - Feedback interconnection between two I/O systems. + """Feedback interconnection between two I/O systems. Parameters ---------- - sys1 : scalar, StateSpace, TransferFunction, FRD - The primary process. - sys2 : scalar, StateSpace, TransferFunction, FRD - The feedback process (often a feedback controller). + sys1, sys2: scalar, array, or :class:`InputOutputSystem` + I/O systems to combine. sign: scalar The sign of feedback. `sign` = -1 indicates negative feedback, and `sign` = 1 indicates positive feedback. `sign` is an optional @@ -220,7 +226,8 @@ def feedback(sys1, sys2=1, sign=-1): Returns ------- - out : StateSpace or TransferFunction + out : scalar, array, or :class:`InputOutputSystem` + Feedback interconnection of the systems. Raises ------ @@ -233,17 +240,14 @@ def feedback(sys1, sys2=1, sign=-1): See Also -------- - series - parallel + append, interconnect, negate, parallel, series Notes ----- - This function is a wrapper for the feedback function in the StateSpace and - TransferFunction classes. It calls TransferFunction.feedback if `sys1` is a - TransferFunction object, and StateSpace.feedback if `sys1` is a StateSpace - object. If `sys1` is a scalar, then it is converted to `sys2`'s type, and - the corresponding feedback function is used. If `sys1` and `sys2` are both - scalars, then TransferFunction.feedback is used. + This function is a wrapper for the `feedback` function in the I/O + system classes. It calls sys1.feedback if `sys1` is an I/O system + object. If `sys1` is a scalar, then it is converted to `sys2`'s type, + and the corresponding feedback function is used. Examples -------- @@ -258,55 +262,52 @@ def feedback(sys1, sys2=1, sign=-1): # TODO: rewrite to allow __rfeedback__ try: return sys1.feedback(sys2, sign) - except AttributeError: + except (AttributeError, TypeError): pass - # Check for correct input types. - if not isinstance(sys1, (int, float, complex, np.number, - tf.TransferFunction, ss.StateSpace, frd.FRD)): - raise TypeError("sys1 must be a TransferFunction, StateSpace " + - "or FRD object, or a scalar.") - if not isinstance(sys2, (int, float, complex, np.number, - tf.TransferFunction, ss.StateSpace, frd.FRD)): - raise TypeError("sys2 must be a TransferFunction, StateSpace " + - "or FRD object, or a scalar.") - - # If sys1 is a scalar, convert it to the appropriate LTI type so that we can - # its feedback member function. - if isinstance(sys1, (int, float, complex, np.number)): - if isinstance(sys2, tf.TransferFunction): + # Check for correct input types + if not isinstance(sys1, (int, float, complex, np.number, np.ndarray, + InputOutputSystem)): + raise TypeError("sys1 must be an I/O system, scalar, or array") + elif not isinstance(sys2, (int, float, complex, np.number, np.ndarray, + InputOutputSystem)): + raise TypeError("sys2 must be an I/O system, scalar, or array") + + # If sys1 is a scalar or ndarray, use the type of sys2 to figure + # out how to convert sys1, using transfer functions whenever possible. + if isinstance(sys1, (int, float, complex, np.number, np.ndarray)): + if isinstance(sys2, (int, float, complex, np.number, np.ndarray, + tf.TransferFunction)): sys1 = tf._convert_to_transfer_function(sys1) - elif isinstance(sys2, ss.StateSpace): - sys1 = ss._convert_to_statespace(sys1) elif isinstance(sys2, frd.FRD): sys1 = frd._convert_to_FRD(sys1, sys2.omega) - else: # sys2 is a scalar. - sys1 = tf._convert_to_transfer_function(sys1) - sys2 = tf._convert_to_transfer_function(sys2) + else: + sys1 = ss._convert_to_statespace(sys1) return sys1.feedback(sys2, sign) def append(*sys): """append(sys1, sys2, [..., sysn]) - Group models by appending their inputs and outputs. + Group LTI state space models by appending their inputs and outputs. Forms an augmented system model, and appends the inputs and - outputs together. The system type will be the type of the first - system given; if you mix state-space systems and gain matrices, - make sure the gain matrices are not first. + outputs together. Parameters ---------- - sys1, sys2, ..., sysn: StateSpace or TransferFunction - LTI systems to combine - + sys1, sys2, ..., sysn: scalar, array, or :class:`StateSpace` + I/O systems to combine. Returns ------- - sys: LTI system - Combined LTI system, with input/output vectors consisting of all - input/output vectors appended + out: :class:`StateSpace` + Combined system, with input/output vectors consisting of all + input/output vectors appended. + + See Also + -------- + interconnect, feedback, negate, parallel, series Examples -------- @@ -331,6 +332,10 @@ def append(*sys): def connect(sys, Q, inputv, outputv): """Index-based interconnection of an LTI system. +.. deprecated:: 0.10.0 + `connect` will be removed in a future version of python-control in + favor of `interconnect`, which works with named signals. + The system `sys` is a system typically constructed with `append`, with multiple inputs and outputs. The inputs and outputs are connected according to the interconnection matrix `Q`, and then the final inputs and @@ -342,8 +347,8 @@ def connect(sys, Q, inputv, outputv): Parameters ---------- - sys : StateSpace or TransferFunction - System to be connected + sys : :class:`InputOutputSystem` + System to be connected. Q : 2D array Interconnection matrix. First column gives the input to be connected. The second column gives the index of an output that is to be fed into @@ -358,8 +363,12 @@ def connect(sys, Q, inputv, outputv): Returns ------- - sys: LTI system - Connected and trimmed LTI system + out : :class:`InputOutputSystem` + Connected and trimmed I/O system. + + See Also + -------- + append, feedback, interconnect, negate, parallel, series Examples -------- @@ -377,6 +386,9 @@ def connect(sys, Q, inputv, outputv): interconnecting multiple systems. """ + # TODO: maintain `connect` for use in MATLAB submodule (?) + warn("`connect` is deprecated; use `interconnect`", DeprecationWarning) + inputv, outputv, Q = \ np.atleast_1d(inputv), np.atleast_1d(outputv), np.atleast_1d(Q) # check indices diff --git a/control/nlsys.py b/control/nlsys.py index 11631758e..c540decb6 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -630,11 +630,12 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, dt = common_timebase(dt, sys.dt) # Make sure number of inputs, outputs, states is given - if sys.ninputs is None or sys.noutputs is None or \ - sys.nstates is None: + if sys.ninputs is None or sys.noutputs is None: raise TypeError("system '%s' must define number of inputs, " "outputs, states in order to be connected" % sys.name) + elif sys.nstates is None: + raise TypeError("can't interconnect systems with no state") # Keep track of the offsets into the states, inputs, outputs self.input_offset.append(ninputs) @@ -1203,8 +1204,8 @@ def nlsys( -------- ss, tf - Example - ------- + Examples + -------- >>> def kincar_update(t, x, u, params): ... l = params.get('l', 1) # wheelbase ... return np.array([ diff --git a/control/tests/bdalg_test.py b/control/tests/bdalg_test.py index 2f6b5523f..2ed793ef2 100644 --- a/control/tests/bdalg_test.py +++ b/control/tests/bdalg_test.py @@ -269,49 +269,50 @@ def test_feedback_args(self, tsys): def testConnect(self, tsys): sys = append(tsys.sys2, tsys.sys3) # two siso systems - # should not raise error - connect(sys, [[1, 2], [2, -2]], [2], [1, 2]) - connect(sys, [[1, 2], [2, 0]], [2], [1, 2]) - connect(sys, [[1, 2, 0], [2, -2, 1]], [2], [1, 2]) - connect(sys, [[1, 2], [2, -2]], [2, 1], [1]) - sys3x3 = append(sys, tsys.sys3) # 3x3 mimo - connect(sys3x3, [[1, 2, 0], [2, -2, 1], [3, -3, 0]], [2], [1, 2]) - connect(sys3x3, [[1, 2, 0], [2, -2, 1], [3, -3, 0]], [1, 2, 3], [3]) - connect(sys3x3, [[1, 2, 0], [2, -2, 1], [3, -3, 0]], [2, 3], [2, 1]) - - # feedback interconnection out of bounds: input too high - Q = [[1, 3], [2, -2]] - with pytest.raises(IndexError): - connect(sys, Q, [2], [1, 2]) - # feedback interconnection out of bounds: input too low - Q = [[0, 2], [2, -2]] - with pytest.raises(IndexError): - connect(sys, Q, [2], [1, 2]) - - # feedback interconnection out of bounds: output too high - Q = [[1, 2], [2, -3]] - with pytest.raises(IndexError): - connect(sys, Q, [2], [1, 2]) - Q = [[1, 2], [2, 4]] - with pytest.raises(IndexError): - connect(sys, Q, [2], [1, 2]) - - # input/output index testing - Q = [[1, 2], [2, -2]] # OK interconnection - - # input index is out of bounds: too high - with pytest.raises(IndexError): - connect(sys, Q, [3], [1, 2]) - # input index is out of bounds: too low - with pytest.raises(IndexError): - connect(sys, Q, [0], [1, 2]) - with pytest.raises(IndexError): - connect(sys, Q, [-2], [1, 2]) - # output index is out of bounds: too high - with pytest.raises(IndexError): - connect(sys, Q, [2], [1, 3]) - # output index is out of bounds: too low - with pytest.raises(IndexError): - connect(sys, Q, [2], [1, 0]) - with pytest.raises(IndexError): - connect(sys, Q, [2], [1, -1]) + with pytest.warns(DeprecationWarning, match="use `interconnect`"): + # should not raise error + connect(sys, [[1, 2], [2, -2]], [2], [1, 2]) + connect(sys, [[1, 2], [2, 0]], [2], [1, 2]) + connect(sys, [[1, 2, 0], [2, -2, 1]], [2], [1, 2]) + connect(sys, [[1, 2], [2, -2]], [2, 1], [1]) + sys3x3 = append(sys, tsys.sys3) # 3x3 mimo + connect(sys3x3, [[1, 2, 0], [2, -2, 1], [3, -3, 0]], [2], [1, 2]) + connect(sys3x3, [[1, 2, 0], [2, -2, 1], [3, -3, 0]], [1, 2, 3], [3]) + connect(sys3x3, [[1, 2, 0], [2, -2, 1], [3, -3, 0]], [2, 3], [2, 1]) + + # feedback interconnection out of bounds: input too high + Q = [[1, 3], [2, -2]] + with pytest.raises(IndexError): + connect(sys, Q, [2], [1, 2]) + # feedback interconnection out of bounds: input too low + Q = [[0, 2], [2, -2]] + with pytest.raises(IndexError): + connect(sys, Q, [2], [1, 2]) + + # feedback interconnection out of bounds: output too high + Q = [[1, 2], [2, -3]] + with pytest.raises(IndexError): + connect(sys, Q, [2], [1, 2]) + Q = [[1, 2], [2, 4]] + with pytest.raises(IndexError): + connect(sys, Q, [2], [1, 2]) + + # input/output index testing + Q = [[1, 2], [2, -2]] # OK interconnection + + # input index is out of bounds: too high + with pytest.raises(IndexError): + connect(sys, Q, [3], [1, 2]) + # input index is out of bounds: too low + with pytest.raises(IndexError): + connect(sys, Q, [0], [1, 2]) + with pytest.raises(IndexError): + connect(sys, Q, [-2], [1, 2]) + # output index is out of bounds: too high + with pytest.raises(IndexError): + connect(sys, Q, [2], [1, 3]) + # output index is out of bounds: too low + with pytest.raises(IndexError): + connect(sys, Q, [2], [1, 0]) + with pytest.raises(IndexError): + connect(sys, Q, [2], [1, -1]) diff --git a/control/tests/type_conversion_test.py b/control/tests/type_conversion_test.py index d00e857b1..ad8dea911 100644 --- a/control/tests/type_conversion_test.py +++ b/control/tests/type_conversion_test.py @@ -179,6 +179,56 @@ def test_binary_op_type_conversions(opname, ltype, rtype, sys_dict): if result.nstates is not None: assert len(result.state_labels) == result.nstates + +# TODO: add in FRD, TF types (general rules seem to be tricky) +bd_types = ['ss', 'ios', 'arr', 'flt'] +bd_expect = [ + ('ss', ['ss', 'ios', 'ss', 'ss' ]), + ('ios', ['ios', 'ios', 'ios', 'ios']), + ('arr', ['ss', 'ios', None, None]), + ('flt', ['ss', 'ios', None, None])] + +@pytest.mark.parametrize("fun", [ct.series, ct.parallel, ct.feedback]) +@pytest.mark.parametrize("ltype", bd_types) +@pytest.mark.parametrize("rtype", bd_types) +def test_bdalg_type_conversions(fun, ltype, rtype, sys_dict): + leftsys = sys_dict[ltype] + rightsys = sys_dict[rtype] + expected = \ + bd_expect[bd_types.index(ltype)][1][bd_types.index(rtype)] + + # Skip tests if expected is None + if expected is None: + return None + + # Get rid of warnings for NonlinearIOSystem objects by making a copy + if isinstance(leftsys, ct.NonlinearIOSystem) and leftsys == rightsys: + rightsys = leftsys.copy() + + # Make sure we get the right result + if expected == 'E' or expected[0] == 'x': + # Exception expected + with pytest.raises((TypeError, ValueError)): + fun(leftsys, rightsys) + else: + # Operation should work and return the given type + if fun == ct.series: + # Last argument sets the type + result = fun(rightsys, leftsys) + else: + # First argument sets the type + result = fun(leftsys, rightsys) + + # Print out what we are testing in case something goes wrong + assert isinstance(result, type_dict[expected]) + + # Make sure that input, output, and state names make sense + if isinstance(result, ct.InputOutputSystem): + assert len(result.input_labels) == result.ninputs + assert len(result.output_labels) == result.noutputs + if result.nstates is not None: + assert len(result.state_labels) == result.nstates + @pytest.mark.parametrize( "typelist, connections, inplist, outlist, expected", [ (['ss', 'ss'], [[(1, 0), (0, 0)]], [[(0, 0)]], [[(1, 0)]], 'ss'), From 0ef2941f3bbdd67eaf47b5d08e62e5cca84b477a Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 18 Jun 2023 22:31:39 -0700 Subject: [PATCH 0306/1025] update time response functions to allow nonlinear systems --- control/matlab/timeresp.py | 17 +-- control/tests/matlab2_test.py | 8 +- control/tests/matlab_test.py | 18 +-- control/tests/nlsys_test.py | 44 ++++++++ control/tests/timeresp_test.py | 22 ++-- control/tests/trdata_test.py | 2 +- control/timeresp.py | 201 +++++++++++++++------------------ 7 files changed, 158 insertions(+), 154 deletions(-) diff --git a/control/matlab/timeresp.py b/control/matlab/timeresp.py index 5420bfdf4..9fea863ec 100644 --- a/control/matlab/timeresp.py +++ b/control/matlab/timeresp.py @@ -6,7 +6,7 @@ __all__ = ['step', 'stepinfo', 'impulse', 'initial', 'lsim'] -def step(sys, T=None, X0=0., input=0, output=None, return_x=False): +def step(sys, T=None, input=0, output=None, return_x=False): '''Step response of a linear system If the system has multiple inputs or outputs (MIMO), one input has @@ -22,9 +22,6 @@ def step(sys, T=None, X0=0., input=0, output=None, return_x=False): T: array-like or number, optional Time vector, or simulation time duration if a number (time vector is autocomputed if not given) - X0: array-like or number, optional - Initial condition (default = 0) - Numbers are converted to constant arrays with the correct shape. input: int Index of the input that will be used in this simulation. output: int @@ -55,7 +52,7 @@ def step(sys, T=None, X0=0., input=0, output=None, return_x=False): from ..timeresp import step_response # Switch output argument order and transpose outputs - out = step_response(sys, T, X0, input, output, + out = step_response(sys, T, input=input, output=output, transpose=True, return_x=return_x) return (out[1], out[0], out[2]) if return_x else (out[1], out[0]) @@ -134,7 +131,7 @@ def stepinfo(sysdata, T=None, yfinal=None, SettlingTimeThreshold=0.02, return S -def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): +def impulse(sys, T=None, input=0, output=None, return_x=False): '''Impulse response of a linear system If the system has multiple inputs or outputs (MIMO), one input has @@ -150,10 +147,6 @@ def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): T: array-like or number, optional Time vector, or simulation time duration if a number (time vector is autocomputed if not given) - X0: array-like or number, optional - Initial condition (default = 0) - - Numbers are converted to constant arrays with the correct shape. input: int Index of the input that will be used in this simulation. output: int @@ -183,7 +176,7 @@ def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False): from ..timeresp import impulse_response # Switch output argument order and transpose outputs - out = impulse_response(sys, T, X0, input, output, + out = impulse_response(sys, T, input, output, transpose = True, return_x=return_x) return (out[1], out[0], out[2]) if return_x else (out[1], out[0]) @@ -203,8 +196,6 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): autocomputed if not given) X0: array-like object or number, optional Initial condition (default = 0) - - Numbers are converted to constant arrays with the correct shape. input: int This input is ignored, but present for compatibility with step and impulse. diff --git a/control/tests/matlab2_test.py b/control/tests/matlab2_test.py index 633ceef6f..b86ff3328 100644 --- a/control/tests/matlab2_test.py +++ b/control/tests/matlab2_test.py @@ -126,8 +126,7 @@ def test_step(self, SISO_mats, MIMO_mats, mplcleanup): subplot2grid(plot_shape, (0, 1)) T = linspace(0, 2, 100) - X0 = array([1, 1]) - y, t = step(sys, T, X0) + y, t = step(sys, T) plot(t, y) # Test output of state vector @@ -153,9 +152,8 @@ def test_impulse(self, SISO_mats, mplcleanup): #supply time and X0 T = linspace(0, 2, 100) - X0 = [0.2, 0.2] - t, y = impulse(sys, T, X0) - plot(t, y, label='t=0..2, X0=[0.2, 0.2]') + t, y = impulse(sys, T) + plot(t, y, label='t=0..2') #Test system with direct feed-though, the function should print a warning. D = [[0.5]] diff --git a/control/tests/matlab_test.py b/control/tests/matlab_test.py index abf86ce44..9ba793f70 100644 --- a/control/tests/matlab_test.py +++ b/control/tests/matlab_test.py @@ -195,16 +195,7 @@ def testStep(self, siso): np.testing.assert_array_almost_equal(tout, t) # Play with arguments - yout, tout = step(sys, T=t, X0=0) - np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) - np.testing.assert_array_almost_equal(tout, t) - - X0 = np.array([0, 0]) - yout, tout = step(sys, T=t, X0=X0) - np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) - np.testing.assert_array_almost_equal(tout, t) - - yout, tout, xout = step(sys, T=t, X0=0, return_x=True) + yout, tout, xout = step(sys, T=t, return_x=True) np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) np.testing.assert_array_almost_equal(tout, t) @@ -249,20 +240,19 @@ def testImpulse(self, siso): # produce a warning for a system with direct feedthrough with pytest.warns(UserWarning, match="System has direct feedthrough"): # Play with arguments - yout, tout = impulse(sys, T=t, X0=0) + yout, tout = impulse(sys, T=t) np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) np.testing.assert_array_almost_equal(tout, t) # produce a warning for a system with direct feedthrough with pytest.warns(UserWarning, match="System has direct feedthrough"): - X0 = np.array([0, 0]) - yout, tout = impulse(sys, T=t, X0=X0) + yout, tout = impulse(sys, T=t) np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) np.testing.assert_array_almost_equal(tout, t) # produce a warning for a system with direct feedthrough with pytest.warns(UserWarning, match="System has direct feedthrough"): - yout, tout, xout = impulse(sys, T=t, X0=0, return_x=True) + yout, tout, xout = impulse(sys, T=t, return_x=True) np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) np.testing.assert_array_almost_equal(tout, t) diff --git a/control/tests/nlsys_test.py b/control/tests/nlsys_test.py index d93051fb4..3f8114c3b 100644 --- a/control/tests/nlsys_test.py +++ b/control/tests/nlsys_test.py @@ -11,6 +11,7 @@ import numpy as np import control as ct +# Basic test of nlsys() def test_nlsys_basic(): def kincar_update(t, x, u, params): l = params.get('l', 1) # wheelbase @@ -31,3 +32,46 @@ def kincar_output(t, x, u, params): assert kincar.input_labels == ['U[0]', 'U[1]'] assert kincar.output_labels == ['y[0]', 'y[1]'] assert kincar.state_labels == ['x', 'y', 'theta'] + + +# Test nonlinear initial, step, and forced response +@pytest.mark.parametrize( + "nin, nout, input, output", [ + ( 1, 1, None, None), + ( 2, 2, None, None), + ( 2, 2, 0, None), + ( 2, 2, None, 1), + ( 2, 2, 1, 0), + ]) +def test_lti_nlsys_response(nin, nout, input, output): + sys_ss = ct.rss(4, nin, nout, strictly_proper=True) + sys_nl = ct.nlsys( + lambda t, x, u, params: sys_ss.A @ x + sys_ss.B @ u, + lambda t, x, u, params: sys_ss.C @ x + sys_ss.D @ u, + inputs=nin, outputs=nout, states=4) + + # Figure out the time to use from the linear impulse response + resp_ss = ct.impulse_response(sys_ss) + timepts = np.linspace(0, resp_ss.time[-1]/10, 100) + + # Initial response + resp_ss = ct.initial_response(sys_ss, timepts, output=output) + resp_nl = ct.initial_response(sys_nl, timepts, output=output) + np.testing.assert_equal(resp_ss.time, resp_nl.time) + np.testing.assert_allclose(resp_ss.states, resp_nl.states, atol=0.01) + + # Step response + resp_ss = ct.step_response(sys_ss, timepts, input=input, output=output) + resp_nl = ct.step_response(sys_nl, timepts, input=input, output=output) + np.testing.assert_equal(resp_ss.time, resp_nl.time) + np.testing.assert_allclose(resp_ss.states, resp_nl.states, atol=0.01) + + # Forced response + X0 = np.linspace(0, 1, sys_ss.nstates) + U = np.zeros((nin, timepts.size)) + for i in range(nin): + U[i] = 0.01 * np.sin(timepts + i) + resp_ss = ct.forced_response(sys_ss, timepts, U, X0=X0) + resp_nl = ct.forced_response(sys_nl, timepts, U, X0=X0) + np.testing.assert_equal(resp_ss.time, resp_nl.time) + np.testing.assert_allclose(resp_ss.states, resp_nl.states, atol=0.05) diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index 04b7bb482..7a9cdb331 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -486,9 +486,7 @@ def test_step_pole_cancellation(self, tsystem): @pytest.mark.parametrize( "tsystem, kwargs", [("siso_ss2", {}), - ("siso_ss2", {'X0': 0}), - ("siso_ss2", {'X0': np.array([0, 0])}), - ("siso_ss2", {'X0': 0, 'return_x': True}), + ("siso_ss2", {'return_x': True}), ("siso_dtf0", {})], indirect=["tsystem"]) def test_impulse_response_siso(self, tsystem, kwargs): @@ -567,9 +565,9 @@ def test_initial_response_mimo(self, tsystem): yref = tsystem.yinitial yref_notrim = np.broadcast_to(yref, (2, len(t))) - _t, y_00 = initial_response(sys, T=t, X0=x0, input=0, output=0) + _t, y_00 = initial_response(sys, T=t, X0=x0, output=0) np.testing.assert_array_almost_equal(y_00, yref, decimal=4) - _t, y_11 = initial_response(sys, T=t, X0=x0, input=0, output=1) + _t, y_11 = initial_response(sys, T=t, X0=x0, output=1) np.testing.assert_array_almost_equal(y_11, yref, decimal=4) _t, yy = initial_response(sys, T=t, X0=x0) np.testing.assert_array_almost_equal(yy, yref_notrim, decimal=4) @@ -874,7 +872,8 @@ def test_time_vector(self, tsystem, fun, squeeze): kw['U'] = np.vstack([np.sin(t) for i in range(sys.ninputs)]) elif fun == forced_response and isctime(sys, strict=True): pytest.skip("No continuous forced_response without time vector.") - if hasattr(sys, "nstates") and sys.nstates is not None: + if hasattr(sys, "nstates") and sys.nstates is not None and \ + fun != impulse_response: kw['X0'] = np.arange(sys.nstates) + 1 if sys.ninputs > 1 and fun in [step_response, impulse_response]: kw['input'] = 1 @@ -1047,8 +1046,9 @@ def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): _, yvec, xvec = ct.initial_response( sys, tvec, 1, squeeze=squeeze, return_x=True) assert xvec.shape == (sys.nstates, 8) - else: - _, yvec = ct.initial_response(sys, tvec, 1, squeeze=squeeze) + elif isinstance(sys, TransferFunction): + with pytest.warns(UserWarning, match="may not be consistent"): + _, yvec = ct.initial_response(sys, tvec, 1, squeeze=squeeze) assert yvec.shape == shape2 # Forced response (only indexed by output) @@ -1090,7 +1090,11 @@ def test_squeeze(self, fcn, nstate, nout, ninp, squeeze, shape1, shape2): if squeeze is not True or sys.ninputs > 1 or sys.noutputs > 1: assert yvec.shape == (sys.noutputs, sys.ninputs, 8) - _, yvec = ct.initial_response(sys, tvec, 1) + if isinstance(sys, TransferFunction): + with pytest.warns(UserWarning, match="may not be consistent"): + _, yvec = ct.initial_response(sys, tvec, 1) + else: + _, yvec = ct.initial_response(sys, tvec, 1) if squeeze is not True or sys.noutputs > 1: assert yvec.shape == (sys.noutputs, 8) diff --git a/control/tests/trdata_test.py b/control/tests/trdata_test.py index 2f0608f9b..15ce75121 100644 --- a/control/tests/trdata_test.py +++ b/control/tests/trdata_test.py @@ -243,7 +243,7 @@ def test_trdata_labels(): assert step_response.input_labels == [sys.input_labels[nu]] assert step_response.output_labels == [sys.output_labels[ny]] - init_response = ct.initial_response(sys, T, input=nu, output=ny) + init_response = ct.initial_response(sys, T, output=ny) assert init_response.input_labels == None assert init_response.output_labels == [sys.output_labels[ny]] diff --git a/control/timeresp.py b/control/timeresp.py index 198bc754a..102bdb642 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -82,7 +82,7 @@ from . import config from .exception import pandas_check from .iosys import isctime, isdtime - + __all__ = ['forced_response', 'step_response', 'step_info', 'initial_response', 'impulse_response', 'TimeResponseData'] @@ -906,16 +906,22 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, See Also -------- - step_response, initial_response, impulse_response + step_response, initial_response, impulse_response, input_output_response Notes ----- - For discrete time systems, the input/output response is computed using the - :func:`scipy.signal.dlsim` function. + 1. For discrete time systems, the input/output response is computed + using the :func:`scipy.signal.dlsim` function. + + 2. For continuous time systems, the output is computed using the matrix + exponential `exp(A t)` and assuming linear interpolation of the + inputs between time points. - For continuous time systems, the output is computed using the matrix - exponential `exp(A t)` and assuming linear interpolation of the inputs - between time points. + 3. If a nonlinear I/O system is passed to `forced_response`, the + `input_output_response` function is called instead. The main + difference between `input_output_response` and `forced_response` is + that `forced_response` is specialized (and optimized) for linear + systems. Examples -------- @@ -930,10 +936,19 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, from .statesp import StateSpace, _convert_to_statespace, \ _mimo2simo, _mimo2siso from .xferfcn import TransferFunction - + from .nlsys import NonlinearIOSystem, input_output_response + if not isinstance(sys, (StateSpace, TransferFunction)): - raise TypeError('Parameter ``sys``: must be a ``StateSpace`` or' - ' ``TransferFunction``)') + if isinstance(sys, NonlinearIOSystem): + if interpolate: + warnings.warn( + "interpolation not supported for nonlinear I/O systems") + return input_output_response( + sys, T, U, X0, transpose=transpose, + return_x=return_x, squeeze=squeeze) + else: + raise TypeError('Parameter ``sys``: must be a ``StateSpace`` or' + ' ``TransferFunction``)') # If return_x was not specified, figure out the default if return_x is None: @@ -1202,47 +1217,7 @@ def _process_time_response( return tout, yout -def _get_ss_simo(sys, input=None, output=None, squeeze=None): - """Return a SISO or SIMO state-space version of sys. - - This function converts the given system to a state space system in - preparation for simulation and sets the system matrixes to match the - desired input and output. - - If input is not specified, select first input and issue warning (legacy - behavior that should eventually not be used). - - If the output is not specified, report on all outputs. - - """ - from .statesp import _convert_to_statespace # TODO: move to top? - from .statesp import _mimo2simo, _mimo2siso - - # If squeeze was not specified, figure out the default - if squeeze is None: - squeeze = config.defaults['control.squeeze_time_response'] - - sys_ss = _convert_to_statespace(sys) - if sys_ss.issiso(): - return squeeze, sys_ss - elif squeeze is None and (input is None or output is None): - # Don't squeeze outputs if resulting system turns out to be siso - # Note: if we expand input to allow a tuple, need to update this check - squeeze = False - - warn = False - if input is None: - # issue warning if input is not given - warn = True - input = 0 - - if output is None: - return squeeze, _mimo2simo(sys_ss, input, warn_conversion=warn) - else: - return squeeze, _mimo2siso(sys_ss, input, output, warn_conversion=warn) - - -def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, +def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, transpose=False, return_x=False, squeeze=None): # pylint: disable=W0622 """Compute the step response for a linear system. @@ -1273,8 +1248,8 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, many simulation steps. X0 : array_like or float, optional - Initial condition (default = 0). Numbers are converted to constant - arrays with the correct shape. + Initial condition (default = 0). This can be used for nonlinear + system where the origin is not an equilibrium point. input : int, optional Only compute the step response for the listed input. If not @@ -1346,13 +1321,16 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, >>> T, yout = ct.step_response(G) """ + from .lti import LTI from .xferfcn import TransferFunction # TODO: move to top? from .statesp import _convert_to_statespace # TODO: move to top? - + # Create the time and input vectors - if T is None or np.asarray(T).size == 1: + if T is None or np.asarray(T).size == 1 and isinstance(sys, LTI): T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=True) - U = np.ones_like(T) + T = np.atleast_1d(T).reshape(-1) + if T.ndim != 1 and len(T) < 2: + raise ValueError("invalid value of T for this type of system") # If we are passed a transfer function and X0 is non-zero, warn the user if isinstance(sys, TransferFunction) and np.any(X0 != 0): @@ -1362,14 +1340,15 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, "with given X0.") # Convert to state space so that we can simulate - sys = _convert_to_statespace(sys) + if sys.nstates is None: + sys = _convert_to_statespace(sys) # Set up arrays to handle the output ninputs = sys.ninputs if input is None else 1 noutputs = sys.noutputs if output is None else 1 - yout = np.empty((noutputs, ninputs, np.asarray(T).size)) - xout = np.empty((sys.nstates, ninputs, np.asarray(T).size)) - uout = np.empty((ninputs, ninputs, np.asarray(T).size)) + yout = np.empty((noutputs, ninputs, T.size)) + xout = np.empty((sys.nstates, ninputs, T.size)) + uout = np.empty((ninputs, ninputs, T.size)) # Simulate the response for each input for i in range(sys.ninputs): @@ -1378,13 +1357,15 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None, continue # Create a set of single inputs system for simulation - squeeze, simo = _get_ss_simo(sys, i, output, squeeze=squeeze) + U = np.zeros((sys.ninputs, T.size)) + U[i, :] = np.ones_like(T) - response = forced_response(simo, T, U, X0, squeeze=True) + response = forced_response(sys, T, U, X0, squeeze=True) inpidx = i if input is None else 0 - yout[:, inpidx, :] = response.y + yout[:, inpidx, :] = response.y if output is None \ + else response.y[output] xout[:, inpidx, :] = response.x - uout[:, inpidx, :] = U + uout[:, inpidx, :] = U[i] # Figure out if the system is SISO or not issiso = sys.issiso() or (input is not None and output is not None) @@ -1508,10 +1489,9 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, # TODO: See if there is a better way to do this from .statesp import StateSpace from .xferfcn import TransferFunction - - if isinstance(sysdata, (StateSpace, TransferFunction)): - if T is None or np.asarray(T).size == 1: - T = _default_time_vector(sysdata, N=T_num, tfinal=T, is_step=True) + from .nlsys import NonlinearIOSystem + + if isinstance(sysdata, (StateSpace, TransferFunction, NonlinearIOSystem)): T, Yout = step_response(sysdata, T, squeeze=False) if yfinal: InfValues = np.atleast_2d(yfinal) @@ -1627,7 +1607,7 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, return ret[0][0] if retsiso else ret -def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None, +def initial_response(sys, T=None, X0=0, output=None, T_num=None, transpose=False, return_x=False, squeeze=None): # pylint: disable=W0622 """Compute the initial condition response for a linear system. @@ -1652,10 +1632,6 @@ def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None, Initial condition (default = 0). Numbers are converted to constant arrays with the correct shape. - input : int - Ignored, has no meaning in initial condition calculation. Parameter - ensures compatibility with step_response and impulse_response. - output : int Index of the output that will be used in this simulation. Set to None to not trim outputs. @@ -1718,32 +1694,38 @@ def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None, >>> T, yout = ct.initial_response(G) """ - squeeze, sys = _get_ss_simo(sys, input, output, squeeze=squeeze) + from .lti import LTI - # Create time and input vectors; checking is done in forced_response(...) - # The initial vector X0 is created in forced_response(...) if necessary + # Create the time and input vectors if T is None or np.asarray(T).size == 1: - T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=False) + if isinstance(sys, LTI): + T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=False) + elif T_num is not None: + T = np.linspace(0, T, T_num) + T = np.atleast_1d(T).reshape(-1) + if T.ndim != 1 and len(T) < 2: + raise ValueError("invalid value of T for this type of system") # Compute the forced response response = forced_response(sys, T, 0, X0) # Figure out if the system is SISO or not - issiso = sys.issiso() or (input is not None and output is not None) + issiso = sys.issiso() or output is not None # Select only the given output, if any + yout = response.y if output is None else response.y[output] output_labels = sys.output_labels if output is None \ - else sys.output_labels[0] + else sys.output_labels[output] # Store the response without an input return TimeResponseData( - response.t, response.y, response.x, None, issiso=issiso, + response.t, yout, response.x, None, issiso=issiso, output_labels=output_labels, input_labels=None, state_labels=sys.state_labels, transpose=transpose, return_x=return_x, squeeze=squeeze) -def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, +def impulse_response(sys, T=None, input=None, output=None, T_num=None, transpose=False, return_x=False, squeeze=None): # pylint: disable=W0622 """Compute the impulse response for a linear system. @@ -1766,11 +1748,6 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, Time vector, or simulation time duration if a scalar (time vector is autocomputed if not given; see :func:`step_response` for more detail) - X0 : array_like or float, optional - Initial condition (default = 0) - - Numbers are converted to constant arrays with the correct shape. - input : int, optional Only compute the impulse response for the listed input. If not specified, the impulse responses for each independent input are @@ -1830,9 +1807,10 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, Notes ----- This function uses the `forced_response` function to compute the time - response. For continuous time systems, the initial condition is altered to - account for the initial impulse. For discrete-time aystems, the impulse is - sized so that it has unit area. + response. For continuous time systems, the initial condition is altered + to account for the initial impulse. For discrete-time aystems, the + impulse is sized so that it has unit area. Response for nonlinear + systems is computed using `input_output_response`. Examples -------- @@ -1841,9 +1819,18 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, """ from .statesp import _convert_to_statespace # TODO: move to top? - + from .lti import LTI + + # Create the time and input vectors + if T is None or np.asarray(T).size == 1 and isinstance(sys, LTI): + T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=False) + T = np.atleast_1d(T).reshape(-1) + if T.ndim != 1 and len(T) < 2: + raise ValueError("invalid value of T for this type of system") + # Convert to state space so that we can simulate - sys = _convert_to_statespace(sys) + if sys.nstates is None: + sys = _convert_to_statespace(sys) # Check to make sure there is not a direct term if np.any(sys.D != 0) and isctime(sys): @@ -1852,16 +1839,6 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, "output.\n" "Results may be meaningless!") - # create X0 if not given, test if X0 has correct shape. - # Must be done here because it is used for computations below. - n_states = sys.A.shape[0] - X0 = _check_convert_array(X0, [(n_states,), (n_states, 1)], - 'Parameter ``X0``: \n', squeeze=True) - - # Compute T and U, no checks necessary, will be checked in forced_response - if T is None or np.asarray(T).size == 1: - T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=False) - U = np.zeros_like(T) # Set up arrays to handle the output ninputs = sys.ninputs if input is None else 1 @@ -1876,9 +1853,6 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, if isinstance(input, int) and i != input: continue - # Get the system we need to simulate - squeeze, simo = _get_ss_simo(sys, i, output, squeeze=squeeze) - # # Compute new X0 that contains the impulse # @@ -1886,20 +1860,23 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None, # representation for it (infinitesimally short, infinitely high). # See also: http://www.mathworks.com/support/tech-notes/1900/1901.html # - if isctime(simo): - B = np.asarray(simo.B).squeeze() - new_X0 = B + X0 + if isctime(sys): + X0 = sys.B[:, i] + U = np.zeros((sys.ninputs, T.size)) else: - new_X0 = X0 - U[0] = 1./simo.dt # unit area impulse + X0 = 0 + U = np.zeros((sys.ninputs, T.size)) + U[i, 0] = 1./sys.dt # unit area impulse # Simulate the impulse response fo this input - response = forced_response(simo, T, U, new_X0) + response = forced_response(sys, T, U, X0) # Store the output (and states) inpidx = i if input is None else 0 - yout[:, inpidx, :] = response.y + yout[:, inpidx, :] = response.y if output is None \ + else response.y[output] xout[:, inpidx, :] = response.x + uout[:, inpidx, :] = U[i] # Figure out if the system is SISO or not issiso = sys.issiso() or (input is not None and output is not None) @@ -1962,7 +1939,7 @@ def _ideal_tfinal_and_dt(sys, is_step=True): By Ilhan Polat, with modifications by Sawyer Fuller to integrate into python-control 2020.08.17 - + """ from .statesp import _convert_to_statespace # TODO: move to top? From 4692b1e97877dc85ba407b2b696cdb989a6c2d41 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 18 Jun 2023 22:57:01 -0700 Subject: [PATCH 0307/1025] remove unneeded code; clean up TODOs --- control/iosys.py | 2 +- control/statesp.py | 114 +--------------------------------- control/tests/convert_test.py | 9 +-- control/tests/iosys_test.py | 4 +- control/tests/matlab2_test.py | 13 ++-- control/tests/statesp_test.py | 4 +- control/timeresp.py | 13 ++-- control/xferfcn.py | 8 +-- doc/control.rst | 3 - examples/test-response.py | 32 ---------- 10 files changed, 21 insertions(+), 181 deletions(-) delete mode 100644 examples/test-response.py diff --git a/control/iosys.py b/control/iosys.py index 4df3d461a..9cc551c2a 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -698,7 +698,7 @@ def _process_indices(arg, name, labels, length): if isinstance(arg, int): # Return the start or end of the list of possible indices return list(range(arg)) if arg > 0 else list(range(length))[arg:] - + elif isinstance(arg, slice): # Return the indices referenced by the slice return list(range(length))[arg] diff --git a/control/statesp.py b/control/statesp.py index 4371f9f32..17c6724be 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -413,7 +413,7 @@ def __str__(self): # represent to implement a re-loadable version def __repr__(self): """Print state-space system in loadable form.""" - # TODO: add input/output names + # TODO: add input/output names (?) return "StateSpace({A}, {B}, {C}, {D}{dt})".format( A=self.A.__repr__(), B=self.B.__repr__(), C=self.C.__repr__(), D=self.D.__repr__(), @@ -962,6 +962,7 @@ def zeros(self): # Feedback around a state space system def feedback(self, other=1, sign=-1): """Feedback interconnection between two LTI systems.""" + # Convert the system to state space, if possible try: other = _convert_to_statespace(other) except: @@ -2293,114 +2294,3 @@ def _rss_generate( else: ss_args = (A, B, C, D, True) return StateSpace(*ss_args, name=name) - - -def _mimo2siso(sys, input, output, warn_conversion=False): - # pylint: disable=W0622 - """ - Convert a MIMO system to a SISO system. (Convert a system with multiple - inputs and/or outputs, to a system with a single input and output.) - - The input and output that are used in the SISO system can be selected - with the parameters ``input`` and ``output``. All other inputs are set - to 0, all other outputs are ignored. - - If ``sys`` is already a SISO system, it will be returned unaltered. - - Parameters - ---------- - sys : StateSpace - Linear (MIMO) system that should be converted. - input : int - Index of the input that will become the SISO system's only input. - output : int - Index of the output that will become the SISO system's only output. - warn_conversion : bool, optional - If `True`, print a message when sys is a MIMO system, - warning that a conversion will take place. Default is False. - - Returns - sys : StateSpace - The converted (SISO) system. - """ - if not (isinstance(input, int) and isinstance(output, int)): - raise TypeError("Parameters ``input`` and ``output`` must both " - "be integer numbers.") - if not (0 <= input < sys.ninputs): - raise ValueError("Selected input does not exist. " - "Selected input: {sel}, " - "number of system inputs: {ext}." - .format(sel=input, ext=sys.ninputs)) - if not (0 <= output < sys.noutputs): - raise ValueError("Selected output does not exist. " - "Selected output: {sel}, " - "number of system outputs: {ext}." - .format(sel=output, ext=sys.noutputs)) - # Convert sys to SISO if necessary - if sys.ninputs > 1 or sys.noutputs > 1: - if warn_conversion: - warn("Converting MIMO system to SISO system. " - "Only input {i} and output {o} are used." - .format(i=input, o=output)) - # $X = A*X + B*U - # Y = C*X + D*U - new_B = sys.B[:, input] - new_C = sys.C[output, :] - new_D = sys.D[output, input] - sys = StateSpace( - sys.A, new_B, new_C, new_D, sys.dt, - name=sys.name, - inputs=sys.input_labels[input], outputs=sys.output_labels[output]) - - return sys - - -def _mimo2simo(sys, input, warn_conversion=False): - # pylint: disable=W0622 - """ - Convert a MIMO system to a SIMO system. (Convert a system with multiple - inputs and/or outputs, to a system with a single input but possibly - multiple outputs.) - - The input that is used in the SIMO system can be selected with the - parameter ``input``. All other inputs are set to 0, all other - outputs are ignored. - - If ``sys`` is already a SIMO system, it will be returned unaltered. - - Parameters - ---------- - sys: StateSpace - Linear (MIMO) system that should be converted. - input: int - Index of the input that will become the SIMO system's only input. - warn_conversion: bool - If True: print a warning message when sys is a MIMO system. - Warn that a conversion will take place. - - Returns - ------- - sys: StateSpace - The converted (SIMO) system. - """ - if not (isinstance(input, int)): - raise TypeError("Parameter ``input`` be an integer number.") - if not (0 <= input < sys.ninputs): - raise ValueError("Selected input does not exist. " - "Selected input: {sel}, " - "number of system inputs: {ext}." - .format(sel=input, ext=sys.ninputs)) - # Convert sys to SISO if necessary - if sys.ninputs > 1: - if warn_conversion: - warn("Converting MIMO system to SIMO system. " - "Only input {i} is used." .format(i=input)) - # $X = A*X + B*U - # Y = C*X + D*U - new_B = sys.B[:, input:input+1] - new_D = sys.D[:, input:input+1] - sys = StateSpace( - sys.A, new_B, sys.C, new_D, sys.dt, name=sys.name, - inputs=sys.input_labels[input], outputs=sys.output_labels) - - return sys diff --git a/control/tests/convert_test.py b/control/tests/convert_test.py index 6c4586471..db173b653 100644 --- a/control/tests/convert_test.py +++ b/control/tests/convert_test.py @@ -19,7 +19,6 @@ import pytest from control import rss, ss, ss2tf, tf, tf2ss -from control.statesp import _mimo2siso from control.statefbk import ctrb, obsv from control.freqplot import bode from control.exception import slycot_check @@ -96,7 +95,7 @@ def testConvert(self, fixedseed, states, inputs, outputs): print("Checking input %d, output %d" % (inputNum, outputNum)) ssorig_mag, ssorig_phase, ssorig_omega = \ - bode(_mimo2siso(ssOriginal, inputNum, outputNum), + bode(ssOriginal[outputNum, inputNum], deg=False, plot=False) ssorig_real = ssorig_mag * np.cos(ssorig_phase) ssorig_imag = ssorig_mag * np.sin(ssorig_phase) @@ -123,10 +122,8 @@ def testConvert(self, fixedseed, states, inputs, outputs): # Make sure xform'd SS has same frequency response # ssxfrm_mag, ssxfrm_phase, ssxfrm_omega = \ - bode(_mimo2siso(ssTransformed, - inputNum, outputNum), - ssorig_omega, - deg=False, plot=False) + bode(ssTransformed[outputNum, inputNum], + ssorig_omega, deg=False, plot=False) ssxfrm_real = ssxfrm_mag * np.cos(ssxfrm_phase) ssxfrm_imag = ssxfrm_mag * np.sin(ssxfrm_phase) np.testing.assert_array_almost_equal( diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index bed5ac537..04621ec4f 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -411,7 +411,7 @@ def test_static_nonlinearity(self, tsys): np.testing.assert_array_almost_equal(lti_y, ios_y, decimal=2) - @pytest.mark.filterwarnings("ignore:Duplicate name::control.nlsys") + @pytest.mark.filterwarnings("ignore:Duplicate name::control.iosys") def test_algebraic_loop(self, tsys): # Create some linear and nonlinear systems to play with linsys = tsys.siso_linsys @@ -1368,7 +1368,7 @@ def test_operand_incompatible(self, Pout, Pin, C, op): C = ct.rss(2, 3, 2) elif isinstance(C, str) and C == 'rss23': C = ct.rss(2, 2, 3) - + with pytest.raises(ValueError, match="incompatible"): PC = op(P, C) diff --git a/control/tests/matlab2_test.py b/control/tests/matlab2_test.py index b86ff3328..5eedfc2ec 100644 --- a/control/tests/matlab2_test.py +++ b/control/tests/matlab2_test.py @@ -15,7 +15,6 @@ import scipy.signal from control.matlab import ss, step, impulse, initial, lsim, dcgain, ss2tf -from control.statesp import _mimo2siso from control.timeresp import _check_convert_array from control.tests.conftest import slycotonly @@ -362,10 +361,8 @@ def test_convert_MIMO_to_SISO(self, SISO_mats, MIMO_mats): # t, y = step(sys_siso) # plot(t, y, label='sys_siso d=0') - sys_siso_00 = _mimo2siso(sys_mimo, input=0, output=0, - warn_conversion=False) - sys_siso_11 = _mimo2siso(sys_mimo, input=1, output=1, - warn_conversion=False) + sys_siso_00 = sys_mimo[0, 0] + sys_siso_11 = sys_mimo[1, 1] #print("sys_siso_00 ---------------------------------------------") #print(sys_siso_00) #print("sys_siso_11 ---------------------------------------------") @@ -407,10 +404,8 @@ def test_convert_MIMO_to_SISO(self, SISO_mats, MIMO_mats): sys_mimo = ss(Am, Bm, Cm, Dm) - sys_siso_01 = _mimo2siso(sys_mimo, input=0, output=1, - warn_conversion=False) - sys_siso_10 = _mimo2siso(sys_mimo, input=1, output=0, - warn_conversion=False) + sys_siso_01 = sys_mimo[0, 1] + sys_siso_10 = sys_mimo[1, 0] # print("sys_siso_01 ---------------------------------------------") # print(sys_siso_01) # print("sys_siso_10 ---------------------------------------------") diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 60d7e8448..20fd62ca2 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -20,11 +20,9 @@ from control.lti import evalfr from control.statesp import StateSpace, _convert_to_statespace, tf2ss, \ _statesp_defaults, _rss_generate, linfnorm, ss, rss, drss -from control.tests.conftest import slycotonly from control.xferfcn import TransferFunction, ss2tf - -from .conftest import editsdefaults +from .conftest import editsdefaults, slycotonly class TestStateSpace: diff --git a/control/timeresp.py b/control/timeresp.py index 102bdb642..a5528a14f 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -78,7 +78,6 @@ from scipy.linalg import eig, eigvals, matrix_balance, norm from copy import copy -# TODO: see what is causing MRO issues with .statesp, .xferfcn from . import config from .exception import pandas_check from .iosys import isctime, isdtime @@ -933,8 +932,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, :ref:`package-configuration-parameters`. """ - from .statesp import StateSpace, _convert_to_statespace, \ - _mimo2simo, _mimo2siso + from .statesp import StateSpace, _convert_to_statespace from .xferfcn import TransferFunction from .nlsys import NonlinearIOSystem, input_output_response @@ -1322,8 +1320,8 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, """ from .lti import LTI - from .xferfcn import TransferFunction # TODO: move to top? - from .statesp import _convert_to_statespace # TODO: move to top? + from .xferfcn import TransferFunction + from .statesp import _convert_to_statespace # Create the time and input vectors if T is None or np.asarray(T).size == 1 and isinstance(sys, LTI): @@ -1486,7 +1484,6 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, PeakTime: 4.242 SteadyStateValue: -1.0 """ - # TODO: See if there is a better way to do this from .statesp import StateSpace from .xferfcn import TransferFunction from .nlsys import NonlinearIOSystem @@ -1818,7 +1815,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, >>> T, yout = ct.impulse_response(G) """ - from .statesp import _convert_to_statespace # TODO: move to top? + from .statesp import _convert_to_statespace from .lti import LTI # Create the time and input vectors @@ -1941,7 +1938,7 @@ def _ideal_tfinal_and_dt(sys, is_step=True): python-control 2020.08.17 """ - from .statesp import _convert_to_statespace # TODO: move to top? + from .statesp import _convert_to_statespace sqrt_eps = np.sqrt(np.spacing(1.)) default_tfinal = 5 # Default simulation horizon diff --git a/control/xferfcn.py b/control/xferfcn.py index 64fb26800..4c4d01a7d 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -170,7 +170,7 @@ def __init__(self, *args, **kwargs): # # Process positional arguments # - # TODO: move to tf() + if len(args) == 2: # The user provided a numerator and a denominator. num, den = args @@ -511,8 +511,7 @@ def _repr_latex_(self, var=None): mimo = not self.issiso() if var is None: - # ! TODO: replace with standard calls to lti functions - var = 's' if self.dt is None or self.dt == 0 else 'z' + var = 's' if self.isctime() else 'z' out = ['$$'] @@ -566,7 +565,6 @@ def __add__(self, other): from .statesp import StateSpace # Convert the second argument to a transfer function. - #! TODO: update processing (here and elsewhere) if isinstance(other, StateSpace): other = _convert_to_transfer_function(other) elif isinstance(other, (int, float, complex, np.number, np.ndarray)): @@ -615,7 +613,7 @@ def __rsub__(self, other): def __mul__(self, other): """Multiply two LTI objects (serial connection).""" from .statesp import StateSpace - + # Convert the second argument to a transfer function. if isinstance(other, StateSpace): other = _convert_to_transfer_function(other) diff --git a/doc/control.rst b/doc/control.rst index c420554c4..a2fb8e69b 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -73,7 +73,6 @@ Time domain simulation phase_plot step_response TimeResponseData - Control system analysis ======================= @@ -98,8 +97,6 @@ Control system analysis StateSpace.__call__ TransferFunction.__call__ - - Matrix computations =================== .. autosummary:: diff --git a/examples/test-response.py b/examples/test-response.py deleted file mode 100644 index 359d1c3ea..000000000 --- a/examples/test-response.py +++ /dev/null @@ -1,32 +0,0 @@ -# test-response.py - Unit tests for system response functions -# RMM, 11 Sep 2010 - -import os -import matplotlib.pyplot as plt # MATLAB plotting functions -from control.matlab import * # Load the controls systems library -from numpy import arange # function to create range of numbers - -from control import reachable_form - -# Create several systems for testing -sys1 = tf([1], [1, 2, 1]) -sys2 = tf([1, 1], [1, 1, 0]) - -# Generate step responses -(y1a, T1a) = step(sys1) -(y1b, T1b) = step(sys1, T=arange(0, 10, 0.1)) -# convert to reachable canonical SS to specify initial state -sys1_ss = reachable_form(ss(sys1))[0] -(y1c, T1c) = step(sys1_ss, X0=[1, 0]) -(y2a, T2a) = step(sys2, T=arange(0, 10, 0.1)) - -plt.plot(T1a, y1a, label='$g_1$ (default)', linewidth=5) -plt.plot(T1b, y1b, label='$g_1$ (w/ spec. times)', linestyle='--') -plt.plot(T1c, y1c, label='$g_1$ (w/ init cond.)') -plt.plot(T2a, y2a, label='$g_2$ (w/ spec. times)') -plt.xlabel('time') -plt.ylabel('output') -plt.legend() - -if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: - plt.show() From 55fb775140ce2143d14ccbffd96b32b2a8f932af Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 19 Jun 2023 11:54:35 -0700 Subject: [PATCH 0308/1025] add missing links for Jupyter notebooks in doc/ --- doc/interconnect_tutorial.ipynb | 1 + doc/simulating_discrete_nonlinear.ipynb | 1 + 2 files changed, 2 insertions(+) create mode 120000 doc/interconnect_tutorial.ipynb create mode 120000 doc/simulating_discrete_nonlinear.ipynb diff --git a/doc/interconnect_tutorial.ipynb b/doc/interconnect_tutorial.ipynb new file mode 120000 index 000000000..aa43d9824 --- /dev/null +++ b/doc/interconnect_tutorial.ipynb @@ -0,0 +1 @@ +../examples/interconnect_tutorial.ipynb \ No newline at end of file diff --git a/doc/simulating_discrete_nonlinear.ipynb b/doc/simulating_discrete_nonlinear.ipynb new file mode 120000 index 000000000..1712b729e --- /dev/null +++ b/doc/simulating_discrete_nonlinear.ipynb @@ -0,0 +1 @@ +../examples/simulating_discrete_nonlinear.ipynb \ No newline at end of file From e55bb765c67c790716125d5104089726785059d0 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Tue, 20 Jun 2023 22:15:24 +0200 Subject: [PATCH 0309/1025] Update year to 2023 in doc/conf.py --- doc/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index 5fb7342f4..6be6d5d84 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -30,7 +30,7 @@ # -- Project information ----------------------------------------------------- project = u'Python Control Systems Library' -copyright = u'2022, python-control.org' +copyright = u'2023, python-control.org' author = u'Python Control Developers' # Version information - read from the source code From 835a01f229e1dfe38bb070ec2af17f74a5a3631f Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Tue, 20 Jun 2023 22:53:06 +0200 Subject: [PATCH 0310/1025] Fixes small typos in intro.rst --- doc/intro.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/intro.rst b/doc/intro.rst index 9d4198c56..2287bbac4 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -26,7 +26,7 @@ NumPy and MATLAB can be found `here `_. In terms of the python-control package more specifically, here are -some thing to keep in mind: +some things to keep in mind: * You must include commas in vectors. So [1 2 3] must be [1, 2, 3]. * Functions that return multiple arguments use tuples. @@ -56,7 +56,7 @@ they are not already present. .. note:: Mixing packages from conda-forge and the default conda channel can sometimes cause problems with dependencies, so it is usually best to - instally NumPy, SciPy, and Matplotlib from conda-forge as well.) + instally NumPy, SciPy, and Matplotlib from conda-forge as well. To install using pip:: From d7e5193248ffe91ecd6d01d55f1d54a0053537f6 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Tue, 20 Jun 2023 23:21:21 +0200 Subject: [PATCH 0311/1025] Fixes small typo in control/__init__.py --- control/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/__init__.py b/control/__init__.py index 3cc538c82..c62f95f3a 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -55,7 +55,7 @@ Available subpackages --------------------- -The main control package includes the most commpon functions used in +The main control package includes the most common functions used in analysis, design, and simulation of feedback control systems. Several additional subpackages are available that provide more specialized functionality: From 3662bfb19ebadf4694392ae3fc9562eb5c0cfd12 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Tue, 20 Jun 2023 23:58:41 +0200 Subject: [PATCH 0312/1025] Fix small typos in doc/flatsys.rst --- doc/flatsys.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/flatsys.rst b/doc/flatsys.rst index ab8d7bf4c..88c0fc0ae 100644 --- a/doc/flatsys.rst +++ b/doc/flatsys.rst @@ -39,7 +39,7 @@ Differentially flat systems are useful in situations where explicit trajectory generation is required. Since the behavior of a flat system is determined by the flat outputs, we can plan trajectories in output space, and then map these to appropriate inputs. Suppose we wish to -generate a feasible trajectory for the the nonlinear system +generate a feasible trajectory for the nonlinear system .. math:: \dot x = f(x, u), \qquad x(0) = x_0,\, x(T) = x_f. @@ -181,7 +181,7 @@ solve an optimal control problem without a final state:: traj = control.flatsys.solve_flat_ocp( sys, timepts, x0, u0, cost, basis=basis) -The `cost` parameter is a function function with call signature +The `cost` parameter is a function with call signature `cost(x, u)` and should return the (incremental) cost at the given state, and input. It will be evaluated at each point in the `timepts` vector. The `terminal_cost` parameter can be used to specify a cost @@ -193,7 +193,7 @@ Example To illustrate how we can use a two degree-of-freedom design to improve the performance of the system, consider the problem of steering a car to change lanes on a road. We use the non-normalized form of the dynamics, which are -derived *Feedback Systems* by Astrom and Murray, Example 3.11. +derived in *Feedback Systems* by Astrom and Murray, Example 3.11. .. code-block:: python From 565442fec022020bcaf76dbabd1c9bc4eee75c41 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Wed, 21 Jun 2023 00:24:33 +0200 Subject: [PATCH 0313/1025] Fix small typos in doc/examples.rst --- doc/examples.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/examples.rst b/doc/examples.rst index 505bcf7a3..1d8ac3f42 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -6,7 +6,7 @@ Examples ******** The source code for the examples below are available in the `examples/` -subdirecory of the source code distribution. The can also be accessed online +subdirectory of the source code distribution. They can also be accessed online via the [python-control GitHub repository](https://github.com/python-control/python-control/tree/master/examples). @@ -38,7 +38,7 @@ Jupyter notebooks ================= The examples below use `python-control` in a Jupyter notebook environment. -These notebooks demonstrate the use of modeling, anaylsis, and design tools +These notebooks demonstrate the use of modeling, analysis, and design tools using examples from textbooks (`FBS `_, `OBC `_), courses, and other From 9023de96b499b740392724af75a9288cfe79518e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 20 Jun 2023 21:11:45 -0700 Subject: [PATCH 0314/1025] add flatsys() factory function --- control/flatsys/__init__.py | 2 +- control/flatsys/flatsys.py | 179 ++++++++++++++++++++++------------ control/flatsys/linflat.py | 9 +- control/tests/flatsys_test.py | 48 +++++++++ control/tests/kwargs_test.py | 7 ++ doc/classes.png | Bin 9026 -> 0 bytes doc/flatsys.rst | 34 ++++--- 7 files changed, 197 insertions(+), 82 deletions(-) delete mode 100644 doc/classes.png diff --git a/control/flatsys/__init__.py b/control/flatsys/__init__.py index 6345ee2b9..cd77dc39a 100644 --- a/control/flatsys/__init__.py +++ b/control/flatsys/__init__.py @@ -66,7 +66,7 @@ # Classes from .systraj import SystemTrajectory -from .flatsys import FlatSystem +from .flatsys import FlatSystem, flatsys from .linflat import LinearFlatSystem # Package functions diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 3ae5d7968..0101d126b 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -57,62 +57,6 @@ class FlatSystem(NonlinearIOSystem): flat systems for trajectory generation. The output of the system does not need to be the differentially flat output. - Parameters - ---------- - forward : callable - A function to compute the flat flag given the states and input. - - reverse : callable - A function to compute the states and input given the flat flag. - - updfcn : callable, optional - Function returning the state update function - - `updfcn(t, x, u[, param]) -> array` - - where `x` is a 1-D array with shape (nstates,), `u` is a 1-D array - with shape (ninputs,), `t` is a float representing the currrent - time, and `param` is an optional dict containing the values of - parameters used by the function. If not specified, the state - space update will be computed using the flat system coordinates. - - outfcn : callable - Function returning the output at the given state - - `outfcn(t, x, u[, param]) -> array` - - where the arguments are the same as for `upfcn`. If not - specified, the output will be the flat outputs. - - inputs : int, list of str, or None - Description of the system inputs. This can be given as an integer - count or as a list of strings that name the individual signals. - If an integer count is specified, the names of the signal will be - of the form `s[i]` (where `s` is one of `u`, `y`, or `x`). If - this parameter is not given or given as `None`, the relevant - quantity will be determined when possible based on other - information provided to functions using the system. - - outputs : int, list of str, or None - Description of the system outputs. Same format as `inputs`. - - states : int, list of str, or None - Description of the system states. Same format as `inputs`. - - dt : None, True or float, optional - System timebase. None (default) indicates continuous - time, True indicates discrete time with undefined sampling - time, positive number is discrete time with specified - sampling time. - - params : dict, optional - Parameter values for the systems. Passed to the evaluation - functions for the system as default values, overriding internal - defaults. - - name : string, optional - System name (used for specifying signals) - Notes ----- The class must implement two functions: @@ -140,9 +84,8 @@ class FlatSystem(NonlinearIOSystem): """ def __init__(self, forward, reverse, # flat system - updfcn=None, outfcn=None, # I/O system - inputs=None, outputs=None, - states=None, params=None, dt=None, name=None): + updfcn=None, outfcn=None, # nonlinar I/O system + **kwargs): # I/O system """Create a differentially flat I/O system. The FlatIOSystem constructor is used to create an input/output system @@ -155,9 +98,7 @@ def __init__(self, if outfcn is None: outfcn = self._flat_outfcn # Initialize as an input/output system - NonlinearIOSystem.__init__( - self, updfcn, outfcn, inputs=inputs, outputs=outputs, - states=states, params=params, dt=dt, name=name) + NonlinearIOSystem.__init__(self, updfcn, outfcn, **kwargs) # Save the functions to compute forward and reverse conversions if forward is not None: self.forward = forward @@ -234,6 +175,120 @@ def _flat_outfcn(self, t, x, u, params=None): return np.array([zflag[i][0] for i in range(len(zflag))]) +def flatsys(*args, updfcn=None, outfcn=None, **kwargs): + """Create a differentially flat I/O system. + + The flatsys() function is used to create an input/output system object + that also represents a differentially flat system. It can be used in a + variety of forms: + + ``fs.flatsys(forward, reverse)`` + Create a flat system with mapings to/from flat flag. + + ``fs.flatsys(forward, reverse, updfcn[, outfcn])`` + Create a flat system that is also a nonlinear I/O system. + + ``fs.flatsys(linsys)`` + Create a flat system from a linear (StateSpace) system. + + Parameters + ---------- + forward : callable + A function to compute the flat flag given the states and input. + + reverse : callable + A function to compute the states and input given the flat flag. + + updfcn : callable, optional + Function returning the state update function + + `updfcn(t, x, u[, param]) -> array` + + where `x` is a 1-D array with shape (nstates,), `u` is a 1-D array + with shape (ninputs,), `t` is a float representing the currrent + time, and `param` is an optional dict containing the values of + parameters used by the function. If not specified, the state + space update will be computed using the flat system coordinates. + + outfcn : callable, optional + Function returning the output at the given state + + `outfcn(t, x, u[, param]) -> array` + + where the arguments are the same as for `upfcn`. If not + specified, the output will be the flat outputs. + + inputs : int, list of str, or None + Description of the system inputs. This can be given as an integer + count or as a list of strings that name the individual signals. + If an integer count is specified, the names of the signal will be + of the form `s[i]` (where `s` is one of `u`, `y`, or `x`). If + this parameter is not given or given as `None`, the relevant + quantity will be determined when possible based on other + information provided to functions using the system. + + outputs : int, list of str, or None + Description of the system outputs. Same format as `inputs`. + + states : int, list of str, or None + Description of the system states. Same format as `inputs`. + + dt : None, True or float, optional + System timebase. None (default) indicates continuous + time, True indicates discrete time with undefined sampling + time, positive number is discrete time with specified + sampling time. + + params : dict, optional + Parameter values for the systems. Passed to the evaluation + functions for the system as default values, overriding internal + defaults. + + name : string, optional + System name (used for specifying signals) + + Returns + ------- + sys: :class:`FlatSystem` + Flat system. + + """ + from .linflat import LinearFlatSystem + from ..statesp import StateSpace + from ..iosys import _process_iosys_keywords + + if len(args) == 1 and isinstance(args[0], StateSpace): + # We were passed a linear system, so call linflat + if updfcn is not None or outfcn is not None: + warnings.warn( + "update and output functions ignored for linear system") + return LinearFlatSystem(args[0], **kwargs) + + elif len(args) == 2: + forward, reverse = args + + elif len(args) == 3: + if updfcn is not None: + warnings.warn( + "update and output functions specified twice; using" + " positional arguments") + forward, reverse, updfcn = args + + elif len(args) == 4: + if updfcn is not None or outfcn is not None: + warnings.warn( + "update and output functions specified twice; using" + " positional arguments") + forward, reverse, updfcn, outfcn = args + + else: + raise TypeError("incorrect number or type of arguments") + + # Create the flat system + return FlatSystem( + forward, reverse, updfcn=updfcn, outfcn=outfcn, **kwargs) + + # Utility function to compute flag matrix given a basis def _basis_flag_matrix(sys, basis, flag, t): """Compute the matrix of basis functions and their derivatives diff --git a/control/flatsys/linflat.py b/control/flatsys/linflat.py index 2990c9f0f..9320eec3a 100644 --- a/control/flatsys/linflat.py +++ b/control/flatsys/linflat.py @@ -77,8 +77,7 @@ class LinearFlatSystem(FlatSystem, StateSpace): """ - def __init__(self, linsys, inputs=None, outputs=None, states=None, - name=None): + def __init__(self, linsys, **kwargs): """Define a flat system from a SISO LTI system. Given a reachable, single-input/single-output, linear time-invariant @@ -93,10 +92,8 @@ def __init__(self, linsys, inputs=None, outputs=None, states=None, raise control.ControlNotImplemented( "only single input, single output systems are supported") - # Initialize the object as a LinearIO system - StateSpace.__init__( - self, linsys, inputs=inputs, outputs=outputs, states=states, - name=name) + # Initialize the object as a StateSpace system + StateSpace.__init__(self, linsys, **kwargs) # Find the transformation to chain of integrators form # Note: store all array as ndarray, not matrix diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index 7f480f43a..10a5d1bc5 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -758,3 +758,51 @@ def test_basis_class(self, basis): basis.eval(coefs, timepts)[i], basis.eval_deriv(j, 0, timepts, var=i)) offset += 1 + + def test_flatsys_factory_function(self, vehicle_flat): + # Basic flat system + flatsys = fs.flatsys( + vehicle_flat.forward, vehicle_flat.reverse, + inputs=vehicle_flat.ninputs, outputs=vehicle_flat.ninputs, + states=vehicle_flat.nstates) + assert isinstance(flatsys, fs.FlatSystem) + + # Flat system with update function + flatsys = fs.flatsys( + vehicle_flat.forward, vehicle_flat.reverse, vehicle_flat.updfcn, + inputs=vehicle_flat.ninputs, outputs=vehicle_flat.ninputs, + states=vehicle_flat.nstates) + assert isinstance(flatsys, fs.FlatSystem) + assert flatsys.updfcn == vehicle_flat.updfcn + + # Flat system with update and output functions + flatsys = fs.flatsys( + vehicle_flat.forward, vehicle_flat.reverse, vehicle_flat.updfcn, + vehicle_flat.outfcn, inputs=vehicle_flat.ninputs, + outputs=vehicle_flat.ninputs, states=vehicle_flat.nstates) + assert isinstance(flatsys, fs.FlatSystem) + assert flatsys.updfcn == vehicle_flat.updfcn + assert flatsys.outfcn == vehicle_flat.outfcn + + # Flat system with update and output functions via keywords + flatsys = fs.flatsys( + vehicle_flat.forward, vehicle_flat.reverse, + updfcn=vehicle_flat.updfcn, outfcn=vehicle_flat.outfcn, + inputs=vehicle_flat.ninputs, outputs=vehicle_flat.ninputs, + states=vehicle_flat.nstates) + assert isinstance(flatsys, fs.FlatSystem) + assert flatsys.updfcn == vehicle_flat.updfcn + assert flatsys.outfcn == vehicle_flat.outfcn + + # Linear flat system + sys = ct.ss([[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], 0) + flatsys = fs.flatsys(sys) + assert isinstance(flatsys, fs.FlatSystem) + assert isinstance(flatsys, ct.StateSpace) + + # Incorrect arguments + with pytest.raises(TypeError, match="incorrect number or type"): + flatsys = fs.flatsys(vehicle_flat.forward) + + with pytest.raises(TypeError, match="incorrect number or type"): + flatsys = fs.flatsys(1, 2, 3, 4, 5) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 5105f3061..3df353c10 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -85,6 +85,7 @@ def test_kwarg_search(module, prefix): [(control.dlqe, 1, 0, ([[1]], [[1]]), {}), (control.dlqr, 1, 0, ([[1, 0], [0, 1]], [[1]]), {}), (control.drss, 0, 0, (2, 1, 1), {}), + (control.flatsys.flatsys, 1, 0, (), {}), (control.input_output_response, 1, 0, ([0, 1, 2], [1, 1, 1]), {}), (control.lqe, 1, 0, ([[1]], [[1]]), {}), (control.lqr, 1, 0, ([[1, 0], [0, 1]], [[1]]), {}), @@ -101,8 +102,11 @@ def test_kwarg_search(module, prefix): (control.tf, 0, 0, ([1], [1, 1]), {}), (control.tf2ss, 0, 1, (), {}), (control.zpk, 0, 0, ([1], [2, 3], 4), {}), + (control.flatsys.FlatSystem, 0, 0, + (lambda x, u, params: None, lambda zflag, params: None), {}), (control.InputOutputSystem, 0, 0, (), {'inputs': 1, 'outputs': 1, 'states': 1}), + (control.flatsys.LinearFlatSystem, 1, 0, (), {}), (control.NonlinearIOSystem.linearize, 1, 0, (0, 0), {}), (control.StateSpace.sample, 1, 0, (0.1,), {}), (control.StateSpace, 0, 0, @@ -170,6 +174,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'dlqe': test_unrecognized_kwargs, 'dlqr': test_unrecognized_kwargs, 'drss': test_unrecognized_kwargs, + 'flatsys.flatsys': test_unrecognized_kwargs, 'gangof4': test_matplotlib_kwargs, 'gangof4_plot': test_matplotlib_kwargs, 'input_output_response': test_unrecognized_kwargs, @@ -201,9 +206,11 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): '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, + 'flatsys.FlatSystem.__init__': test_unrecognized_kwargs, 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'InputOutputSystem.__init__': test_unrecognized_kwargs, + 'flatsys.LinearFlatSystem.__init__': test_unrecognized_kwargs, 'NonlinearIOSystem.linearize': test_unrecognized_kwargs, 'InterconnectedSystem.__init__': interconnect_test.test_interconnect_exceptions, diff --git a/doc/classes.png b/doc/classes.png deleted file mode 100644 index 25724b43f90de77b9659fbb9caa9c7aed35e9ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9026 zcmX9^1y~f{*IpVVrI!*|1O%kJ8(36T(%mXz8-KsxqE z2`rtGl78#|d!Bh_?s?z$oO5U9%-)?lH}Qdq9`!A@TObgK8mh1T2m~SoKp=uELLxj; z(^u1tKTtg|daQ##{>5*9|Lr~!v@d}`+#sm7#^a#e-Mj(s?QbEN7zDGj!q;jf>SKaD zZ8fGoDkwkB%Jg=TAf3;c35P>4j;;Rb!$@fhP-r+;9AUcqM@IAD(KtrvZ{B_-b`|?6 zv~yy5c!}Cg@NKcc12NaY2-(P%W?oG3=5u)=zBUaaq4tK-8~ein3snc z_r57>U<4sw$SH z0Q$8=91|>lv5Gl!MqEXsT*W|2eOHV@>L;^|{m|07WR

)o>c5>)DcZ|!a1iq+UoY+{VUQg z=QmCFcWIVKnELmf8+t&txaIclUoEA0KQXq!C5ISfZOHoD+4J2nn7ZgzidgEoH3ai{ z!9f1!^OW2VF8fN)&S;ivs(F%7A6;raRaUGakO}X_FV$2DJOvM1^6cur_cidehb__0 ziRL75Q{JA{K59I2=4z%(ofy5kMm~i7UA;?xQ?>KTuapaU^Y_MXxkQ%;oMlv41|CH)Dm}kF zbOX%eBT?gB(INZCqdRFL1CsTdpMnE$o1d_EU_YVnjJfclZ!@{dIoGHsXd|yJw^Lp7 zHNJ_GRF?>Nk&3jhbSR|UpZ=xWe{QFGdkV5%c-sS>{a@XvGR0xt=uS$-0Q9pl+t31V z{lHAORt{~RS!N6#Y6mXxiDU6R;v&tI6>qC3P}FV~V%f2*4rsT0s^D*Kr#gE>cwc5b z*@h>}3b8C$-dm+fF81&k5wrJ#IVvb)1&aDaJPyXj=J4a~6a@-O8L0Fn?<~oCzMN8> zd_Fulgm=DIh-JX?3Vf8+kq+gx&M=}I$_HferxWdVs@3oVn(vDHdPNp05Mg(gKF9!u z5fdK2xcYwz6zb8IP4$4Xbx&X>7I-nkpJTd$usYU$NinA_rA5=a2V~ztdzolfob>+|~_7pu?OB#JkbfTq>I61pL7#p8(vU$z6tIknQYO0s7MQ+UFZAY zvYOk$@v$CDggveL!1d6sd^r&(*qyC{tQ@~yOlpa|ncVkb#QNwp3`5!OtU0}G@(kj( zUPMDZqR(hEQz%g5YwL6}E}uP{AlB1RE3a+A^G?2vC{On4l);~k9D?k7|GFgSt~;F- z-yg4pzind|aUzm2@NQ1*sop9>He;FAzxJUV6Tca%V-1A$(QO!lK2pu?%D&3@1qU=m zgwiWI@ZljX4$E~kNpuV7C4^^o26^~L)qV@vIn-{nFFn}{wUkm%c?kZZ7us*oM;82l z+dbjoN`oDA1dQF|FSK_XK1`=}g}1;Lu6ti}q@;Puo8~&cNUpNqFpEs^G>Vx!N#@G) z&7wZrbobPR8jO5e`-xsk!q-*Lqr$DrlB$1k_>nl4wi}!fdlg`=khomBXGoa(Pn3}X zgg-_4%VB+V8qTTjCdQO}-QxQvT7fcNQqipPvZvyUzv7V63H?Gpnt{9gs!K4H=AUPi zlmu+q)1)qoS`VI_tG&s>td>^q*~Dv2{II*Gtu&OpfaoOA3Oh3tyS|hP_;r!ZW3~-C zK2QE84&}mZ!=1zydT+zhEh1CymyOLe?GG|gnK;lA$u#m)>@DTa6^DP=c`aglM4%jb zhxRDJMS>~CzIt)}?Ugh&elLy?XG4!2Eq{Sb}#ZYcTWrCTQmW1&#n32v3 ziwM(>X-g<5T17t3juBwP&g}bg5M7zIt0JPV2=_F6avGD%Hqa7ZWLn0#%mJkrf=}rA zfU{rV0tJ7)%;IN%FCxVzL`w=Y3R_Sl@&He6(bl=sY?sIm{2-eHm@KKZbfm-0h`?UG$m+b}cU6 zB(yFIs&LkmnjIdrp`$S`LYHFlP?y2VjZxJVjRCiN4u5o0OCZg z=4wB-SYrvYCvFs`X!iFL^RvfC1iv_Y4H$`;%-qX-{*P4(X=Z!gUdtdCaaX#lb}MmtO6a`Y7H_e!E@2CS|JhgpSQYQIE=4oTYJ zb8)UvcwasU$td_qxbfO^Jw`Q6On8!^|wmW59>AvZ_aj z=bUI3p4=bs;+$9Yg!$G&^e+V-h&xN)Ksw^sc9`DV-s6MaF29Gl=!l3ZlA?fq$whD_ zQ^iNad;Fdjtu<`na>RVfoGgI zAR2

Y2m}(DWTn7i_3ap9Dp0_lo?b7y+#F|uADf& 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 Date: Tue, 20 Jun 2023 23:32:08 -0700 Subject: [PATCH 0315/1025] fix bug in the way inputs were stored for MIMO step_response --- control/tests/timeresp_test.py | 9 +++++++++ control/timeresp.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index 7a9cdb331..989c9bd95 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -344,6 +344,15 @@ def test_step_response_mimo(self, tsystem): np.testing.assert_array_almost_equal(y_00, yref, decimal=4) np.testing.assert_array_almost_equal(y_11, yref, decimal=4) + # Make sure we get the same result using MIMO step response + response = step_response(sys, T=t) + np.testing.assert_allclose(response.y[0, 0, :], y_00) + np.testing.assert_allclose(response.y[1, 1, :], y_11) + np.testing.assert_allclose(response.u[0, 0, :], 1) + np.testing.assert_allclose(response.u[1, 0, :], 0) + np.testing.assert_allclose(response.u[0, 1, :], 0) + np.testing.assert_allclose(response.u[1, 1, :], 1) + @pytest.mark.parametrize("tsystem", ["mimo_ss1"], indirect=True) def test_step_response_return(self, tsystem): """Verify continuous and discrete time use same return conventions.""" diff --git a/control/timeresp.py b/control/timeresp.py index a5528a14f..cae102f8f 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1363,7 +1363,7 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, yout[:, inpidx, :] = response.y if output is None \ else response.y[output] xout[:, inpidx, :] = response.x - uout[:, inpidx, :] = U[i] + uout[:, inpidx, :] = U if input is None else U[i] # Figure out if the system is SISO or not issiso = sys.issiso() or (input is not None and output is not None) From 530fe36a42e3899f9a9f172ac10880c8dab1c2bb Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Wed, 21 Jun 2023 21:32:45 +0200 Subject: [PATCH 0316/1025] Fix small typos in doc/conventions.rst --- doc/conventions.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/conventions.rst b/doc/conventions.rst index b5073b8ef..8f4d86c7c 100644 --- a/doc/conventions.rst +++ b/doc/conventions.rst @@ -16,8 +16,8 @@ LTI system representation Linear time invariant (LTI) systems are represented in python-control in state space, transfer function, or frequency response data (FRD) form. Most -functions in the toolbox will operate on any of these data types and -functions for converting between compatible types is provided. +functions in the toolbox will operate on any of these data types, and +functions for converting between compatible types are provided. State space systems ------------------- @@ -152,7 +152,7 @@ in the next section). The :func:`forced_response` system is the most general and allows by the zero initial state response to be simulated as well as the -response from a non-zero intial condition. +response from a non-zero initial condition. In addition the :func:`input_output_response` function, which handles simulation of nonlinear systems and interconnected systems, can be From a525929a34cc17405eb122df239de61e8d44c74e Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Wed, 21 Jun 2023 21:52:03 +0200 Subject: [PATCH 0317/1025] Fix small typos in doc/iosys.rst --- doc/iosys.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/iosys.rst b/doc/iosys.rst index dddcb00c9..67611391d 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -251,7 +251,7 @@ will create a unity gain, negative feedback system:: If a signal name appears in multiple outputs then that signal will be summed when it is interconnected. Similarly, if a signal name appears in multiple inputs then all systems using that signal name will receive the same input. -The :func:`~control.interconnect` function will generate an error if an signal +The :func:`~control.interconnect` function will generate an error if a signal listed in ``inplist`` or ``outlist`` (corresponding to the inputs and outputs of the interconnected system) is not found, but inputs and outputs of individual systems that are not connected to other systems are left @@ -404,7 +404,7 @@ The closed loop controller will include both the state feedback and the estimator. Integral action can be included using the `integral_action` keyword. -The value of this keyword can either be an matrix (ndarray) or a +The value of this keyword can either be a matrix (ndarray) or a function. If a matrix :math:`C` is specified, the difference between the desired state and system state will be multiplied by this matrix and integrated. The controller gain should then consist of a set of From 3c8b4f814b3de19dc7a01bbed8ad122b58b31cc5 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Wed, 21 Jun 2023 22:18:41 +0200 Subject: [PATCH 0318/1025] Fix small typos in doc/optimal.rst and doc/steering-optimal.rst --- doc/optimal.rst | 12 ++++++------ doc/steering-optimal.rst | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/optimal.rst b/doc/optimal.rst index 7f5dbb01b..dc6d3a45b 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -129,7 +129,7 @@ The result of this optimization gives us the estimated state for the previous :math:`N` steps in time, including the "current" time :math:`x[N]`. The basic idea is thus to compute the state estimate that is most consistent with our model and penalize the noise and disturbances -according to how likely the are (based on the given stochastic system +according to how likely they are (based on the given stochastic system model for each). Given a solution to this fixed-horizon optimal estimation problem, we can @@ -344,7 +344,7 @@ following code:: We consider an optimal control problem that consists of "changing lanes" by moving from the point x = 0 m, y = -2 m, :math:`\theta` = 0 to the point x = -100 m, y = 2 m, :math:`\theta` = 0) over a period of 10 seconds and with a +100 m, y = 2 m, :math:`\theta` = 0) over a period of 10 seconds and with a starting and ending velocity of 10 m/s:: x0 = np.array([0., -2., 0.]); u0 = np.array([10., 0.]) @@ -360,7 +360,7 @@ penalizes the state and input using quadratic cost functions:: traj_cost = obc.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) term_cost = obc.quadratic_cost(vehicle, P, 0, x0=xf) -We also constraint the maximum turning rate to 0.1 radians (about 6 degees) +We also constrain the maximum turning rate to 0.1 radians (about 6 degrees) and constrain the velocity to be in the range of 9 m/s to 11 m/s:: constraints = [ obc.input_range_constraint(vehicle, [8, -0.1], [12, 0.1]) ] @@ -431,7 +431,7 @@ solutions do not seem close to optimal, here are a few things to try: good solutions with a small number of free variables (the example above uses 3 time points for 2 inputs, so a total of 6 optimization variables). Note that you can "resample" the optimal trajectory by running a - simulation of the sytem and using the `t_eval` keyword in + simulation of the system and using the `t_eval` keyword in `input_output_response` (as done above). * Use a smooth basis: as an alternative to parameterizing the optimal @@ -445,14 +445,14 @@ solutions do not seem close to optimal, here are a few things to try: and `minimize_kwargs` keywords in :func:`~control.solve_ocp`, you can choose the SciPy optimization function that you use and set many parameters. See :func:`scipy.optimize.minimize` for more information on - the optimzers that are available and the options and keywords that they + the optimizers that are available and the options and keywords that they accept. * Walk before you run: try setting up a simpler version of the optimization, remove constraints or simplifying the cost to get a simple version of the problem working and then add complexity. Sometimes this can help you find the right set of options or identify situations in which you are being too - aggressive in what your are trying to get the system to do. + aggressive in what you are trying to get the system to do. See :ref:`steering-optimal` for some examples of different problem formulations. diff --git a/doc/steering-optimal.rst b/doc/steering-optimal.rst index 777278c1c..58ba778e6 100644 --- a/doc/steering-optimal.rst +++ b/doc/steering-optimal.rst @@ -1,6 +1,6 @@ .. _steering-optimal: -Optimal control for vehicle steeering (lane change) +Optimal control for vehicle steering (lane change) --------------------------------------------------- Code From 0aefd5a77cd86cd5ad7c7d0d82e9f5f631286c70 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 22 Jun 2023 00:38:21 +0200 Subject: [PATCH 0319/1025] Add symbolic link to jupyternbs, jupyternb-names have already been in doc/examples.rst --- doc/interconnect_tutorial.ipynb | 1 + doc/simulating_discrete_nonlinear.ipynb | 1 + 2 files changed, 2 insertions(+) create mode 120000 doc/interconnect_tutorial.ipynb create mode 120000 doc/simulating_discrete_nonlinear.ipynb diff --git a/doc/interconnect_tutorial.ipynb b/doc/interconnect_tutorial.ipynb new file mode 120000 index 000000000..aa43d9824 --- /dev/null +++ b/doc/interconnect_tutorial.ipynb @@ -0,0 +1 @@ +../examples/interconnect_tutorial.ipynb \ No newline at end of file diff --git a/doc/simulating_discrete_nonlinear.ipynb b/doc/simulating_discrete_nonlinear.ipynb new file mode 120000 index 000000000..1712b729e --- /dev/null +++ b/doc/simulating_discrete_nonlinear.ipynb @@ -0,0 +1 @@ +../examples/simulating_discrete_nonlinear.ipynb \ No newline at end of file From b3693dc61851048312baecac023ed9f7ce3ab080 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 26 Jun 2023 21:09:54 -0700 Subject: [PATCH 0320/1025] updates per @sawyerbfuller review comments --- control/bdalg.py | 13 ++++++------- control/sisotool.py | 1 + control/statesp.py | 4 ++-- control/timeresp.py | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/control/bdalg.py b/control/bdalg.py index 677978715..6ab9cd9ca 100644 --- a/control/bdalg.py +++ b/control/bdalg.py @@ -332,9 +332,9 @@ def append(*sys): def connect(sys, Q, inputv, outputv): """Index-based interconnection of an LTI system. -.. deprecated:: 0.10.0 - `connect` will be removed in a future version of python-control in - favor of `interconnect`, which works with named signals. + .. deprecated:: 0.10.0 + `connect` will be removed in a future version of python-control in + favor of `interconnect`, which works with named signals. The system `sys` is a system typically constructed with `append`, with multiple inputs and outputs. The inputs and outputs are connected @@ -380,10 +380,9 @@ def connect(sys, Q, inputv, outputv): Notes ----- - The :func:`~control.interconnect` function in the - :ref:`input/output systems ` module allows the use - of named signals and provides an alternative method for - interconnecting multiple systems. + The :func:`~control.interconnect` function in the :ref:`input/output + systems ` module allows the use of named signals and + provides an alternative method for interconnecting multiple systems. """ # TODO: maintain `connect` for use in MATLAB submodule (?) diff --git a/control/sisotool.py b/control/sisotool.py index bbb714a29..ba9d69ac8 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -341,6 +341,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', if derivative_in_feedback_path: deriv = -deriv + deriv.input_labels = 'e' # create gain blocks Kpgain = tf(Kp0, 1, inputs='prop_e', outputs='ufb') diff --git a/control/statesp.py b/control/statesp.py index 17c6724be..3c068d2da 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1597,8 +1597,8 @@ def ss(*args, **kwargs): if len(args) > 0 and (hasattr(args[0], '__call__') or args[0] is None) \ and not isinstance(args[0], (InputOutputSystem, LTI)): # Function as first (or second) argument => assume nonlinear IO system - warn("use nlsys() to create nonlinear I/O System", - PendingDeprecationWarning) + warn("using ss to create nonlinear I/O systems is deprecated; " + "use nlsys", DeprecationWarning) return NonlinearIOSystem(*args, **kwargs) elif len(args) == 4 or len(args) == 5: diff --git a/control/timeresp.py b/control/timeresp.py index cae102f8f..defdbdf4e 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1246,7 +1246,7 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, many simulation steps. X0 : array_like or float, optional - Initial condition (default = 0). This can be used for nonlinear + Initial condition (default = 0). This can be used for a nonlinear system where the origin is not an equilibrium point. input : int, optional From a0c788483b08b2d743e478bfb03ebd733d4b9fb1 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 26 Jun 2023 22:11:47 -0700 Subject: [PATCH 0321/1025] clean up unit test warnings + ignore deprecation warning in matlab.connect --- control/matlab/wrappers.py | 61 +++++++++++++++++++++++++++++++++++-- control/tests/iosys_test.py | 6 ++-- 2 files changed, 61 insertions(+), 6 deletions(-) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 2fabd98ab..34df8dfff 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -3,14 +3,16 @@ """ import numpy as np +from scipy.signal import zpk2tf +import warnings +from warnings import warn + from ..statesp import ss from ..xferfcn import tf from ..lti import LTI from ..exception import ControlArgument -from scipy.signal import zpk2tf -from warnings import warn -__all__ = ['bode', 'nyquist', 'ngrid', 'dcgain'] +__all__ = ['bode', 'nyquist', 'ngrid', 'dcgain', 'connect'] def bode(*args, **kwargs): """bode(syslist[, omega, dB, Hz, deg, ...]) @@ -230,3 +232,56 @@ def dcgain(*args): else: raise ValueError("Function ``dcgain`` needs either 1, 2, 3 or 4 " "arguments.") + + +from ..bdalg import connect as ct_connect +def connect(*args): + """Index-based interconnection of an LTI system. + + The system `sys` is a system typically constructed with `append`, with + multiple inputs and outputs. The inputs and outputs are connected + according to the interconnection matrix `Q`, and then the final inputs and + outputs are trimmed according to the inputs and outputs listed in `inputv` + and `outputv`. + + NOTE: Inputs and outputs are indexed starting at 1 and negative values + correspond to a negative feedback interconnection. + + Parameters + ---------- + sys : :class:`InputOutputSystem` + System to be connected. + Q : 2D array + Interconnection matrix. First column gives the input to be connected. + The second column gives the index of an output that is to be fed into + that input. Each additional column gives the index of an additional + input that may be optionally added to that input. Negative + values mean the feedback is negative. A zero value is ignored. Inputs + and outputs are indexed starting at 1 to communicate sign information. + inputv : 1D array + list of final external inputs, indexed starting at 1 + outputv : 1D array + list of final external outputs, indexed starting at 1 + + Returns + ------- + out : :class:`InputOutputSystem` + Connected and trimmed I/O system. + + See Also + -------- + append, feedback, interconnect, negate, parallel, series + + Examples + -------- + >>> G = ct.rss(7, inputs=2, outputs=2) + >>> K = [[1, 2], [2, -1]] # negative feedback interconnection + >>> T = ct.connect(G, K, [2], [1, 2]) + >>> T.ninputs, T.noutputs, T.nstates + (1, 2, 7) + + """ + # Turn off the deprecation warning + with warnings.catch_warnings(): + warnings.filterwarnings('ignore', message="`connect` is deprecated") + return ct_connect(*args) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 04621ec4f..3c3374854 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1897,7 +1897,7 @@ def test_nonuniform_timepts(nstates, noutputs, ninputs): def test_ss_nonlinear(): """Test ss() for creating nonlinear systems""" - with pytest.warns(PendingDeprecationWarning, match="use nlsys()"): + with pytest.warns(DeprecationWarning, match="use nlsys()"): secord = ct.ss(secord_update, secord_output, inputs='u', outputs='y', states = ['x1', 'x2'], name='secord') assert secord.name == 'secord' @@ -1918,12 +1918,12 @@ def test_ss_nonlinear(): np.testing.assert_almost_equal(ss_response.outputs, io_response.outputs) # Make sure that optional keywords are allowed - with pytest.warns(PendingDeprecationWarning, match="use nlsys()"): + with pytest.warns(DeprecationWarning, match="use nlsys()"): secord = ct.ss(secord_update, secord_output, dt=True) assert ct.isdtime(secord) # Make sure that state space keywords are flagged - with pytest.warns(PendingDeprecationWarning, match="use nlsys()"): + with pytest.warns(DeprecationWarning, match="use nlsys()"): with pytest.raises(TypeError, match="unrecognized keyword"): ct.ss(secord_update, remove_useless_states=True) From fc19cd6033e1c4757aa1f7c6e98027f362e6fe81 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 26 Jun 2023 22:26:34 -0700 Subject: [PATCH 0322/1025] add back ss2io and tf2io, with deprecation warnings --- control/statesp.py | 97 +++++++++++++++++++++++++++++++++++- control/tests/iosys_test.py | 32 ++++++++++-- control/tests/kwargs_test.py | 12 ++++- 3 files changed, 133 insertions(+), 8 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 3c068d2da..470a2e61b 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -74,7 +74,7 @@ except ImportError: ab13dd = None -__all__ = ['StateSpace', 'LinearICSystem', 'tf2ss', 'ssdata', +__all__ = ['StateSpace', 'LinearICSystem', 'ss2io', 'tf2io', 'tf2ss', 'ssdata', 'linfnorm', 'ss', 'rss', 'drss', 'summing_junction'] # Define module default parameter values @@ -1598,7 +1598,7 @@ def ss(*args, **kwargs): and not isinstance(args[0], (InputOutputSystem, LTI)): # Function as first (or second) argument => assume nonlinear IO system warn("using ss to create nonlinear I/O systems is deprecated; " - "use nlsys", DeprecationWarning) + "use nlsys()", DeprecationWarning) return NonlinearIOSystem(*args, **kwargs) elif len(args) == 4 or len(args) == 5: @@ -1630,6 +1630,99 @@ def ss(*args, **kwargs): return sys +# Convert a state space system into an input/output system (wrapper) +def ss2io(*args, **kwargs): + """ss2io(sys[, ...]) + + Create an I/O system from a state space linear system. + + .. deprecated:: 0.10.0 + This function will be removed in a future version of python-control. + The `ss` function can be used directly to produce an I/O system. + + Create an :class:`~control.StateSpace` system with the given signal + and system names. See :func:`~control.ss` for more details. + """ + warn("ss2io is deprecated; use ss()", DeprecationWarning) + return StateSpace(*args, **kwargs) + + +# Convert a transfer function into an input/output system (wrapper) +def tf2io(*args, **kwargs): + """tf2io(sys[, ...]) + + Convert a transfer function into an I/O system. + + .. deprecated:: 0.10.0 + This function will be removed in a future version of python-control. + The `tf2ss` function can be used to produce a state space I/O system. + + The function accepts either 1 or 2 parameters: + + ``tf2io(sys)`` + Convert a linear system into space space form. Always creates + a new system, even if sys is already a StateSpace object. + + ``tf2io(num, den)`` + Create a linear I/O system from its numerator and denominator + polynomial coefficients. + + For details see: :func:`tf` + + Parameters + ---------- + sys : LTI (StateSpace or TransferFunction) + A linear system. + num : array_like, or list of list of array_like + Polynomial coefficients of the numerator. + den : array_like, or list of list of array_like + Polynomial coefficients of the denominator. + + Returns + ------- + out : StateSpace + New I/O system (in state space form). + + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals of the transformed + system. If not given, the inputs and outputs are the same as the + original system. + name : string, optional + System name. If unspecified, a generic name is generated + with a unique integer id. + + Raises + ------ + ValueError + if `num` and `den` have invalid or unequal dimensions, or if an + invalid number of arguments is passed in. + TypeError + if `num` or `den` are of incorrect type, or if sys is not a + TransferFunction object. + + See Also + -------- + ss2io + tf2ss + + Examples + -------- + >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] + >>> den = [[[9., 8., 7.], [6., 5., 4.]], [[3., 2., 1.], [-1., -2., -3.]]] + >>> sys1 = ct.tf2ss(num, den) + + >>> sys_tf = ct.tf(num, den) + >>> G = ct.tf2ss(sys_tf) + >>> G.ninputs, G.noutputs, G.nstates + (2, 2, 8) + + """ + warn("tf2io is deprecated; use tf2ss() or tf()", DeprecationWarning) + return tf2ss(*args, **kwargs) + + def tf2ss(*args, **kwargs): """tf2ss(sys) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 3c3374854..5aa60d85a 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -77,7 +77,8 @@ def test_tf2io(self, tsys): # Create a transfer function from the state space system linsys = tsys.siso_linsys tfsys = ct.ss2tf(linsys) - iosys = ct.ss(tfsys) + with pytest.warns(DeprecationWarning, match="use tf2ss"): + iosys = ct.tf2io(tfsys) # Verify correctness via simulation T, U, X0 = tsys.T, tsys.U, tsys.X0 @@ -89,15 +90,23 @@ def test_tf2io(self, tsys): # Make sure that non-proper transfer functions generate an error tfsys = ct.tf('s') with pytest.raises(ValueError): - iosys=ct.ss(tfsys) + with pytest.warns(DeprecationWarning, match="use tf2ss"): + iosys=ct.tf2io(tfsys) def test_ss2io(self, tsys): # Create an input/output system from the linear system linsys = tsys.siso_linsys + with pytest.warns(DeprecationWarning, match="use ss"): + iosys = ct.ss2io(linsys) + np.testing.assert_allclose(linsys.A, iosys.A) + np.testing.assert_allclose(linsys.B, iosys.B) + np.testing.assert_allclose(linsys.C, iosys.C) + np.testing.assert_allclose(linsys.D, iosys.D) # Try adding names to things - iosys_named = ct.ss(linsys, inputs='u', outputs='y', - states=['x1', 'x2'], name='iosys_named') + with pytest.warns(DeprecationWarning, match="use ss"): + iosys_named = ct.ss2io(linsys, inputs='u', outputs='y', + states=['x1', 'x2'], name='iosys_named') assert iosys_named.find_input('u') == 0 assert iosys_named.find_input('x') is None assert iosys_named.find_output('y') == 0 @@ -110,6 +119,21 @@ def test_ss2io(self, tsys): np.testing.assert_allclose(linsys.C, iosys_named.C) np.testing.assert_allclose(linsys.D, iosys_named.D) + def test_sstf_rename(self): + # Create a state space system + sys = ct.rss(4, 1, 1) + + sys_ss = ct.ss(sys, inputs=['u1'], outputs=['y1']) + assert sys_ss.input_labels == ['u1'] + assert sys_ss.output_labels == ['y1'] + assert sys_ss.name == sys.name + + # Convert to transfer function with renaming + sys_tf = ct.tf(sys, inputs=['a'], outputs=['c']) + assert sys_tf.input_labels == ['a'] + assert sys_tf.output_labels == ['c'] + assert sys_tf.name != sys_ss.name + def test_iosys_unspecified(self, tsys): """System with unspecified inputs and outputs""" sys = ct.NonlinearIOSystem(secord_update, secord_output) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 3df353c10..1abc7547e 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -97,9 +97,11 @@ def test_kwarg_search(module, prefix): (control.rss, 0, 0, (2, 1, 1), {}), (control.set_defaults, 0, 0, ('control',), {'default_dt': True}), (control.ss, 0, 0, (0, 0, 0, 0), {'dt': 1}), + (control.ss2io, 1, 0, (), {}), (control.ss2tf, 1, 0, (), {}), (control.summing_junction, 0, 0, (2,), {}), (control.tf, 0, 0, ([1], [1, 1]), {}), + (control.tf2io, 0, 1, (), {}), (control.tf2ss, 0, 1, (), {}), (control.zpk, 0, 0, ([1], [2, 3], 4), {}), (control.flatsys.FlatSystem, 0, 0, @@ -122,11 +124,15 @@ def test_unrecognized_kwargs(function, nsssys, ntfsys, moreargs, kwargs, args = (sssys, )*nsssys + (tfsys, )*ntfsys + moreargs # Call the function normally and make sure it works - function(*args, **kwargs) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") # catch any warnings elsewhere + function(*args, **kwargs) # Now add an unrecognized keyword and make sure there is an error with pytest.raises(TypeError, match="unrecognized keyword"): - function(*args, **kwargs, unknown=None) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") # catch any warnings elsewhere + function(*args, **kwargs, unknown=None) @pytest.mark.parametrize( @@ -192,9 +198,11 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'set_defaults': test_unrecognized_kwargs, 'singular_values_plot': test_matplotlib_kwargs, 'ss': test_unrecognized_kwargs, + 'ss2io': test_unrecognized_kwargs, 'ss2tf': test_unrecognized_kwargs, 'summing_junction': interconnect_test.test_interconnect_exceptions, 'tf': test_unrecognized_kwargs, + 'tf2io' : test_unrecognized_kwargs, 'tf2ss' : test_unrecognized_kwargs, 'sample_system' : test_unrecognized_kwargs, 'c2d' : test_unrecognized_kwargs, From 0b3ae85142a6dcd1c05376dd864c8804fbb92e0e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 29 Jun 2023 21:34:25 -0700 Subject: [PATCH 0323/1025] set names of ct.s and ct.z to 's' and 'z' --- control/xferfcn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 4c4d01a7d..83503919e 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1889,8 +1889,8 @@ def _clean_part(data): # Define constants to represent differentiation, unit delay -TransferFunction.s = TransferFunction([1, 0], [1], 0) -TransferFunction.z = TransferFunction([1, 0], [1], True) +TransferFunction.s = TransferFunction([1, 0], [1], 0, name='s') +TransferFunction.z = TransferFunction([1, 0], [1], True, name='z') def _float2str(value): From 39404c428b411a80fd76c0b606eaf3829a0c097b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 1 Jul 2023 23:25:38 -0700 Subject: [PATCH 0324/1025] fix bug in the way LinearICSystem.__call__ was implemented (with unit test) --- control/lti.py | 4 ++-- control/statesp.py | 3 ++- control/tests/iosys_test.py | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/control/lti.py b/control/lti.py index d63089b15..8798dd32e 100644 --- a/control/lti.py +++ b/control/lti.py @@ -115,7 +115,7 @@ def frequency_response(self, omega, squeeze=None): # Return the data as a frequency response data object from .frdata import FrequencyResponseData - response = self.__call__(s) + response = self(s) return FrequencyResponseData( response, omega, return_magphase=True, squeeze=squeeze) @@ -365,7 +365,7 @@ def evalfr(sys, x, squeeze=None): .. todo:: Add example with MIMO system """ - return sys.__call__(x, squeeze=squeeze) + return sys(x, squeeze=squeeze) def frequency_response(sys, omega, squeeze=None): diff --git a/control/statesp.py b/control/statesp.py index 470a2e61b..a70b1e015 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1495,7 +1495,8 @@ def __init__(self, io_sys, ss_sys=None): params=io_sys.params, remove_useless_states=False) # Use StateSpace.__call__ to evaluate at a given complex value - self.__call__ = StateSpace.__call__ + def __call__(self, *args, **kwargs): + return StateSpace.__call__(self, *args, **kwargs) # The following text needs to be replicated from StateSpace in order for # this entry to show up properly in sphinx doccumentation (not sure why, diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index 5aa60d85a..f4455c4ab 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -1561,6 +1561,13 @@ def test_linear_interconnection(): assert isinstance(io_connect, ct.LinearICSystem) assert isinstance(io_connect, ct.StateSpace) + # Make sure call works properly + response = io_connect.frequency_response(1) + np.testing.assert_allclose( + response.fresp[:, :, 0], io_connect.C @ np.linalg.inv( + 1j * np.eye(io_connect.nstates) - io_connect.A) @ io_connect.B + \ + io_connect.D) + # Finally compare the linearization with the linear system np.testing.assert_array_almost_equal(io_connect.A, ss_connect.A) np.testing.assert_array_almost_equal(io_connect.B, ss_connect.B) From f3713f1f9bd5e399a28b88ae773654538b5cc65a Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Fri, 16 Jun 2023 00:43:13 +0200 Subject: [PATCH 0325/1025] Add direct mrac siso examples, using new input/output system (ss, nlsys, interconnect) --- doc/examples.rst | 2 + doc/mrac_siso_lyapunov.py | 1 + doc/mrac_siso_lyapunov.rst | 15 +++ doc/mrac_siso_mit.py | 1 + doc/mrac_siso_mit.rst | 15 +++ examples/mrac_siso_lyapunov.py | 174 +++++++++++++++++++++++++++++++ examples/mrac_siso_mit.py | 182 +++++++++++++++++++++++++++++++++ 7 files changed, 390 insertions(+) create mode 120000 doc/mrac_siso_lyapunov.py create mode 100644 doc/mrac_siso_lyapunov.rst create mode 120000 doc/mrac_siso_mit.py create mode 100644 doc/mrac_siso_mit.rst create mode 100644 examples/mrac_siso_lyapunov.py create mode 100644 examples/mrac_siso_mit.py diff --git a/doc/examples.rst b/doc/examples.rst index 1d8ac3f42..41e2b42d6 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -33,6 +33,8 @@ other sources. steering-gainsched steering-optimal kincar-flatsys + mrac_siso_mit + mrac_siso_lyapunov Jupyter notebooks ================= diff --git a/doc/mrac_siso_lyapunov.py b/doc/mrac_siso_lyapunov.py new file mode 120000 index 000000000..aaccf5585 --- /dev/null +++ b/doc/mrac_siso_lyapunov.py @@ -0,0 +1 @@ +../examples/mrac_siso_lyapunov.py \ No newline at end of file diff --git a/doc/mrac_siso_lyapunov.rst b/doc/mrac_siso_lyapunov.rst new file mode 100644 index 000000000..525968882 --- /dev/null +++ b/doc/mrac_siso_lyapunov.rst @@ -0,0 +1,15 @@ +Model-Reference Adaptive Control (MRAC) SISO, direct Lyapunov rule +------------------------------------------------------------------ + +Code +.... +.. literalinclude:: mrac_siso_lyapunov.py + :language: python + :linenos: + + +Notes +..... + +1. The environment variable `PYCONTROL_TEST_EXAMPLES` is used for +testing to turn off plotting of the outputs. \ No newline at end of file diff --git a/doc/mrac_siso_mit.py b/doc/mrac_siso_mit.py new file mode 120000 index 000000000..b6a226f7c --- /dev/null +++ b/doc/mrac_siso_mit.py @@ -0,0 +1 @@ +../examples/mrac_siso_mit.py \ No newline at end of file diff --git a/doc/mrac_siso_mit.rst b/doc/mrac_siso_mit.rst new file mode 100644 index 000000000..8be834d6d --- /dev/null +++ b/doc/mrac_siso_mit.rst @@ -0,0 +1,15 @@ +Model-Reference Adaptive Control (MRAC) SISO, direct MIT rule +------------------------------------------------------------- + +Code +.... +.. literalinclude:: mrac_siso_mit.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/examples/mrac_siso_lyapunov.py b/examples/mrac_siso_lyapunov.py new file mode 100644 index 000000000..00dbf63aa --- /dev/null +++ b/examples/mrac_siso_lyapunov.py @@ -0,0 +1,174 @@ +# mrac_siso_lyapunov.py +# Johannes Kaisinger, 3 July 2023 +# +# Demonstrate a MRAC example for a SISO plant using Lyapunov rule. +# Based on [1] Ex 5.7, Fig 5.12 & 5.13. +# Notation as in [2]. +# +# [1] K. J. Aström & B. Wittenmark "Adaptive Control" Second Edition, 2008. +# +# [2] Nhan T. Nguyen "Model-Reference Adaptive Control", 2018. + +import numpy as np +import scipy.signal as signal +import matplotlib.pyplot as plt + +import control as ct + +# Plant model as linear state-space system +A = -1 +B = 0.5 +C = 1 +D = 0 + +io_plant = ct.ss(A, B, C, D, + inputs=('u'), outputs=('x'), states=('x'), name='plant') + +# Reference model as linear state-space system +Am = -2 +Bm = 2 +Cm = 1 +Dm = 0 + +io_ref_model = ct.ss(Am, Bm, Cm, Dm, + inputs=('r'), outputs=('xm'), states=('xm'), name='ref_model') + +# Adaptive control law, u = kx*x + kr*r +kr_star = (Bm)/B +print(f"Optimal value for {kr_star = }") +kx_star = (Am-A)/B +print(f"Optimal value for {kx_star = }") + +def adaptive_controller_state(_t, xc, uc, params): + """Internal state of adaptive controller, f(t,x,u;p)""" + + # Parameters + gam = params["gam"] + signB = params["signB"] + + # Controller inputs + r = uc[0] + xm = uc[1] + x = uc[2] + + # Controller states + # x1 = xc[0] # kr + # x2 = xc[1] # kx + + # Algebraic relationships + e = xm - x + + # Controller dynamics + d_x1 = gam*r*e*signB + d_x2 = gam*x*e*signB + + return [d_x1, d_x2] + +def adaptive_controller_output(_t, xc, uc, params): + """Algebraic output from adaptive controller, g(t,x,u;p)""" + + # Controller inputs + r = uc[0] + #xm = uc[1] + x = uc[2] + + # Controller state + kr = xc[0] + kx = xc[1] + + # Control law + u = kx*x + kr*r + + return [u] + +params={"gam":1, "Am":Am, "Bm":Bm, "signB":np.sign(B)} + +io_controller = ct.nlsys( + adaptive_controller_state, + adaptive_controller_output, + inputs=('r', 'xm', 'x'), + outputs=('u'), + states=2, + params=params, + name='control', + dt=0 +) + +# Overall closed loop system +io_closed = ct.interconnect( + [io_plant, io_ref_model, io_controller], + connections=[ + ['plant.u', 'control.u'], + ['control.xm', 'ref_model.xm'], + ['control.x', 'plant.x'] + ], + inplist=['control.r', 'ref_model.r'], + outlist=['plant.x', 'control.u'], + dt=0 +) + +# Set simulation duration and time steps +Tend = 100 +dt = 0.1 + +# Define simulation time +t_vec = np.arange(0, Tend, dt) + +# Define control reference input +r_vec = np.zeros((2, len(t_vec))) +rect = signal.square(2 * np.pi * 0.05 * t_vec) +r_vec[0, :] = rect +r_vec[1, :] = r_vec[0, :] + +plt.figure(figsize=(16,8)) +plt.plot(t_vec, r_vec[0,:]) +plt.title(r'reference input $r$') +plt.show() + +# Set initial conditions, io_closed +X0 = np.zeros((4, 1)) +X0[0] = 0 # state of plant, (x) +X0[1] = 0 # state of ref_model, (xm) +X0[2] = 0 # state of controller, (kr) +X0[3] = 0 # state of controller, (kx) + +# Simulate the system with different gammas +tout1, yout1, xout1 = ct.input_output_response(io_closed, t_vec, r_vec, X0, + return_x=True, params={"gam":0.2}) +tout2, yout2, xout2 = ct.input_output_response(io_closed, t_vec, r_vec, X0, + return_x=True, params={"gam":1.0}) +tout3, yout3, xout3 = ct.input_output_response(io_closed, t_vec, r_vec, X0, + return_x=True, params={"gam":5.0}) + +plt.figure(figsize=(16,8)) +plt.subplot(2,1,1) +plt.plot(tout1, yout1[0,:], label=r'$x_{\gamma = 0.2}$') +plt.plot(tout2, yout2[0,:], label=r'$x_{\gamma = 1.0}$') +plt.plot(tout2, yout3[0,:], label=r'$x_{\gamma = 5.0}$') +plt.plot(tout1, xout1[1,:] ,label=r'$x_{m}$', color='black', linestyle='--') +plt.legend(fontsize=14) +plt.title(r'system response $x, (x_m)$') +plt.subplot(2,1,2) +plt.plot(tout1, yout1[1,:], label=r'$u_{\gamma = 0.2}$') +plt.plot(tout2, yout2[1,:], label=r'$u_{\gamma = 1.0}$') +plt.plot(tout3, yout3[1,:], label=r'$u_{\gamma = 5.0}$') +plt.legend(loc=4, fontsize=14) +plt.title(r'control $u$') +plt.show() + +plt.figure(figsize=(16,8)) +plt.subplot(2,1,1) +plt.plot(tout1, xout1[2,:], label=r'$k_{r, \gamma = 0.2}$') +plt.plot(tout2, xout2[2,:], label=r'$k_{r, \gamma = 1.0}$') +plt.plot(tout3, xout3[2,:], label=r'$k_{r, \gamma = 5.0}$') +plt.hlines(kr_star, 0, Tend, label=r'$k_r^{\ast}$', color='black', linestyle='--') +plt.legend(loc=4, fontsize=14) +plt.title(r'control gain $k_r$ (feedforward)') +plt.subplot(2,1,2) +plt.plot(tout1, xout1[3,:], label=r'$k_{x, \gamma = 0.2}$') +plt.plot(tout2, xout2[3,:], label=r'$k_{x, \gamma = 1.0}$') +plt.plot(tout3, xout3[3,:], label=r'$k_{x, \gamma = 5.0}$') +plt.hlines(kx_star, 0, Tend, label=r'$k_x^{\ast}$', color='black', linestyle='--') +plt.legend(loc=4, fontsize=14) +plt.title(r'control gain $k_x$ (feedback)') +plt.show() diff --git a/examples/mrac_siso_mit.py b/examples/mrac_siso_mit.py new file mode 100644 index 000000000..1f87dd5f6 --- /dev/null +++ b/examples/mrac_siso_mit.py @@ -0,0 +1,182 @@ +# mrac_siso_mit.py +# Johannes Kaisinger, 3 July 2023 +# +# Demonstrate a MRAC example for a SISO plant using MIT rule. +# Based on [1] Ex 5.2, Fig 5.5 & 5.6. +# Notation as in [2]. +# +# [1] K. J. Aström & B. Wittenmark "Adaptive Control" Second Edition, 2008. +# +# [2] Nhan T. Nguyen "Model-Reference Adaptive Control", 2018. + +import numpy as np +import scipy.signal as signal +import matplotlib.pyplot as plt + +import control as ct + +# Plant model as linear state-space system +A = -1. +B = 0.5 +C = 1 +D = 0 + +io_plant = ct.ss(A, B, C, D, + inputs=('u'), outputs=('x'), states=('x'), name='plant') + +# Reference model as linear state-space system +Am = -2 +Bm = 2 +Cm = 1 +Dm = 0 + +io_ref_model = ct.ss(Am, Bm, Cm, Dm, + inputs=('r'), outputs=('xm'), states=('xm'), name='ref_model') + +# Adaptive control law, u = kx*x + kr*r +kr_star = (Bm)/B +print(f"Optimal value for {kr_star = }") +kx_star = (Am-A)/B +print(f"Optimal value for {kx_star = }") + +def adaptive_controller_state(t, xc, uc, params): + """Internal state of adaptive controller, f(t,x,u;p)""" + + # Parameters + gam = params["gam"] + Am = params["Am"] + Bm = params["Bm"] + signB = params["signB"] + + # Controller inputs + r = uc[0] + xm = uc[1] + x = uc[2] + + # Controller states + x1 = xc[0] # + # x2 = xc[1] # kr + x3 = xc[2] # + # x4 = xc[3] # kx + + # Algebraic relationships + e = xm - x + + # Controller dynamics + d_x1 = Am*x1 + Am*r + d_x2 = - gam*x1*e*signB + d_x3 = Am*x3 + Am*x + d_x4 = - gam*x3*e*signB + + return [d_x1, d_x2, d_x3, d_x4] + +def adaptive_controller_output(t, xc, uc, params): + """Algebraic output from adaptive controller, g(t,x,u;p)""" + + # Controller inputs + r = uc[0] + # xm = uc[1] + x = uc[2] + + # Controller state + kr = xc[1] + kx = xc[3] + + # Control law + u = kx*x + kr*r + + return [u] + +params={"gam":1, "Am":Am, "Bm":Bm, "signB":np.sign(B)} + +io_controller = ct.nlsys( + adaptive_controller_state, + adaptive_controller_output, + inputs=('r', 'xm', 'x'), + outputs=('u'), + states=4, + params=params, + name='control', + dt=0 +) + +# Overall closed loop system +io_closed = ct.interconnect( + [io_plant, io_ref_model, io_controller], + connections=[ + ['plant.u', 'control.u'], + ['control.xm', 'ref_model.xm'], + ['control.x', 'plant.x'] + ], + inplist=['control.r', 'ref_model.r'], + outlist=['plant.x', 'control.u'], + dt=0 +) + +# Set simulation duration and time steps +Tend = 100 +dt = 0.1 + +# Define simulation time +t_vec = np.arange(0, Tend, dt) + +# Define control reference input +r_vec = np.zeros((2, len(t_vec))) +square = signal.square(2 * np.pi * 0.05 * t_vec) +r_vec[0, :] = square +r_vec[1, :] = r_vec[0, :] + +plt.figure(figsize=(16,8)) +plt.plot(t_vec, r_vec[0,:]) +plt.title(r'reference input $r$') +plt.show() + +# Set initial conditions, io_closed +X0 = np.zeros((6, 1)) +X0[0] = 0 # state of plant, (x) +X0[1] = 0 # state of ref_model, (xm) +X0[2] = 0 # state of controller, +X0[3] = 0 # state of controller, (kr) +X0[4] = 0 # state of controller, +X0[5] = 0 # state of controller, (kx) + +# Simulate the system with different gammas +tout1, yout1, xout1 = ct.input_output_response(io_closed, t_vec, r_vec, X0, + return_x=True, params={"gam":0.2}) +tout2, yout2, xout2 = ct.input_output_response(io_closed, t_vec, r_vec, X0, + return_x=True, params={"gam":1.0}) +tout3, yout3, xout3 = ct.input_output_response(io_closed, t_vec, r_vec, X0, + return_x=True, params={"gam":5.0}) + +plt.figure(figsize=(16,8)) +plt.subplot(2,1,1) +plt.plot(tout1, yout1[0,:], label=r'$x_{\gamma = 0.2}$') +plt.plot(tout2, yout2[0,:], label=r'$x_{\gamma = 1.0}$') +plt.plot(tout2, yout3[0,:], label=r'$x_{\gamma = 5.0}$') +plt.plot(tout1, xout1[1,:] ,label=r'$x_{m}$', color='black', linestyle='--') +plt.legend(fontsize=14) +plt.title(r'system response $x, (x_m)$') +plt.subplot(2,1,2) +plt.plot(tout1, yout1[1,:], label=r'$u_{\gamma = 0.2}$') +plt.plot(tout2, yout2[1,:], label=r'$u_{\gamma = 1.0}$') +plt.plot(tout3, yout3[1,:], label=r'$u_{\gamma = 5.0}$') +plt.legend(loc=4, fontsize=14) +plt.title(r'control $u$') +plt.show() + +plt.figure(figsize=(16,8)) +plt.subplot(2,1,1) +plt.plot(tout1, xout1[3,:], label=r'$k_{r, \gamma = 0.2}$') +plt.plot(tout2, xout2[3,:], label=r'$k_{r, \gamma = 1.0}$') +plt.plot(tout3, xout3[3,:], label=r'$k_{r, \gamma = 5.0}$') +plt.hlines(kr_star, 0, Tend, label=r'$k_r^{\ast}$', color='black', linestyle='--') +plt.legend(loc=4, fontsize=14) +plt.title(r'control gain $k_r$ (feedforward)') +plt.subplot(2,1,2) +plt.plot(tout1, xout1[5,:], label=r'$k_{x, \gamma = 0.2}$') +plt.plot(tout2, xout2[5,:], label=r'$k_{x, \gamma = 1.0}$') +plt.plot(tout3, xout3[5,:], label=r'$k_{x, \gamma = 5.0}$') +plt.hlines(kx_star, 0, Tend, label=r'$k_x^{\ast}$', color='black', linestyle='--') +plt.legend(loc=4, fontsize=14) +plt.title(r'control gain $k_x$ (feedback)') +plt.show() \ No newline at end of file From c86b35a896434a786c2fd766f76f959933da603f Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 6 Jul 2023 19:44:54 +0200 Subject: [PATCH 0326/1025] Add final point to docstrings --- control/canonical.py | 14 +++++++------- control/ctrlutil.py | 8 ++++---- control/descfcn.py | 2 +- control/dtime.py | 2 +- control/frdata.py | 2 +- control/freqplot.py | 6 +++--- control/iosys.py | 12 ++++++------ control/lti.py | 4 ++-- control/margins.py | 2 +- control/mateqn.py | 8 ++++---- control/matlab/timeresp.py | 8 ++++---- control/matlab/wrappers.py | 6 +++--- control/nichols.py | 4 ++-- control/phaseplot.py | 2 +- control/rlocus.py | 2 +- control/sisotool.py | 2 +- control/statefbk.py | 18 +++++++++--------- control/statesp.py | 4 ++-- control/stochsys.py | 2 +- control/xferfcn.py | 4 ++-- 20 files changed, 56 insertions(+), 56 deletions(-) diff --git a/control/canonical.py b/control/canonical.py index 06a554859..7d091b22f 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -19,7 +19,7 @@ def canonical_form(xsys, form='reachable'): - """Convert a system into canonical form + """Convert a system into canonical form. Parameters ---------- @@ -71,7 +71,7 @@ def canonical_form(xsys, form='reachable'): # Reachable canonical form def reachable_form(xsys): - """Convert a system into reachable canonical form + """Convert a system into reachable canonical form. Parameters ---------- @@ -134,7 +134,7 @@ def reachable_form(xsys): def observable_form(xsys): - """Convert a system into observable canonical form + """Convert a system into observable canonical form. Parameters ---------- @@ -255,7 +255,7 @@ def rsolve(M, y): def _bdschur_defective(blksizes, eigvals): - """Check for defective modal decomposition + """Check for defective modal decomposition. Parameters ---------- @@ -290,7 +290,7 @@ def _bdschur_defective(blksizes, eigvals): def _bdschur_condmax_search(aschur, tschur, condmax): - """Block-diagonal Schur decomposition search up to condmax + """Block-diagonal Schur decomposition search up to condmax. Iterates mb03rd with different pmax values until: - result is non-defective; @@ -393,7 +393,7 @@ def _bdschur_condmax_search(aschur, tschur, condmax): def bdschur(a, condmax=None, sort=None): - """Block-diagonal Schur decomposition + """Block-diagonal Schur decomposition. Parameters ---------- @@ -482,7 +482,7 @@ def bdschur(a, condmax=None, sort=None): def modal_form(xsys, condmax=None, sort=False): - """Convert a system into modal canonical form + """Convert a system into modal canonical form. Parameters ---------- diff --git a/control/ctrlutil.py b/control/ctrlutil.py index 425812dc1..aeb0c30f1 100644 --- a/control/ctrlutil.py +++ b/control/ctrlutil.py @@ -50,7 +50,7 @@ # Utility function to unwrap an angle measurement def unwrap(angle, period=2*math.pi): - """Unwrap a phase angle to give a continuous curve + """Unwrap a phase angle to give a continuous curve. Parameters ---------- @@ -87,7 +87,7 @@ def unwrap(angle, period=2*math.pi): def issys(obj): """Return True if an object is a Linear Time Invariant (LTI) system, - otherwise False + otherwise False. Examples -------- @@ -105,7 +105,7 @@ def issys(obj): return isinstance(obj, lti.LTI) def db2mag(db): - """Convert a gain in decibels (dB) to a magnitude + """Convert a gain in decibels (dB) to a magnitude. If A is magnitude, @@ -133,7 +133,7 @@ def db2mag(db): return 10. ** (db / 20.) def mag2db(mag): - """Convert a magnitude to decibels (dB) + """Convert a magnitude to decibels (dB). If A is magnitude, diff --git a/control/descfcn.py b/control/descfcn.py index d0f48618c..985046e19 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -74,7 +74,7 @@ def _f(self, x): def describing_function( F, A, num_points=100, zero_check=True, try_method=True): - """Numerically compute the describing function of a nonlinear function + """Numerically compute the describing function of a nonlinear function. The describing function of a nonlinearity is given by magnitude and phase of the first harmonic of the function when evaluated along a sinusoidal diff --git a/control/dtime.py b/control/dtime.py index 0366f536b..2ae482811 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -56,7 +56,7 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, name=None, copy_names=True, **kwargs): """ - Convert a continuous time system to discrete time by sampling + Convert a continuous time system to discrete time by sampling. Parameters ---------- diff --git a/control/frdata.py b/control/frdata.py index a09555b46..62ac64426 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -729,7 +729,7 @@ def _convert_to_FRD(sys, omega, inputs=1, outputs=1): def frd(*args): """frd(d, w) - Construct a frequency response data model + Construct a frequency response data model. frd models store the (measured) frequency response of a system. diff --git a/control/freqplot.py b/control/freqplot.py index 1cedbf684..90b390631 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -94,7 +94,7 @@ def bode_plot(syslist, omega=None, plot=True, omega_limits=None, omega_num=None, margins=None, method='best', *args, **kwargs): - """Bode plot for a system + """Bode plot for a system. Plots a Bode plot for the system over a (optional) frequency range. @@ -542,7 +542,7 @@ def nyquist_plot( syslist, omega=None, plot=True, omega_limits=None, omega_num=None, label_freq=0, color=None, return_contour=False, warn_encirclements=True, warn_nyquist=True, **kwargs): - """Nyquist plot for a system + """Nyquist plot for a system. Plots a Nyquist plot for the system over a (optional) frequency range. The curve is computed by evaluating the Nyqist segment along the positive @@ -1251,7 +1251,7 @@ def _compute_curve_offset(resp, mask, max_offset): # # TODO: think about how (and whether) to handle lists of systems def gangof4_plot(P, C, omega=None, **kwargs): - """Plot the "Gang of 4" transfer functions for a system + """Plot the "Gang of 4" transfer functions for a system. Generates a 2x2 plot showing the "Gang of 4" sensitivity functions [T, PS; CS, S] diff --git a/control/iosys.py b/control/iosys.py index 9cc551c2a..99f0e7db6 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -363,7 +363,7 @@ def find_states(self, name_list): def isctime(self, strict=False): """ - Check to see if a system is a continuous-time system + Check to see if a system is a continuous-time system. Parameters ---------- @@ -397,7 +397,7 @@ def isdtime(self, strict=False): return self.dt > 0 def issiso(self): - """Check to see if a system is single input, single output""" + """Check to see if a system is single input, single output.""" return self.ninputs == 1 and self.noutputs == 1 def _isstatic(self): @@ -408,7 +408,7 @@ def _isstatic(self): # Test to see if a system is SISO def issiso(sys, strict=False): """ - Check to see if a system is single input, single output + Check to see if a system is single input, single output. Parameters ---------- @@ -427,7 +427,7 @@ def issiso(sys, strict=False): # Return the timebase (with conversion if unspecified) def timebase(sys, strict=True): - """Return the timebase for a system + """Return the timebase for a system. dt = timebase(sys) @@ -500,7 +500,7 @@ def common_timebase(dt1, dt2): # Check to see if a system is a discrete time system def isdtime(sys, strict=False): """ - Check to see if a system is a discrete time system + Check to see if a system is a discrete time system. Parameters ---------- @@ -521,7 +521,7 @@ def isdtime(sys, strict=False): # Check to see if a system is a continuous time system def isctime(sys, strict=False): """ - Check to see if a system is a continuous-time system + Check to see if a system is a continuous-time system. Parameters ---------- diff --git a/control/lti.py b/control/lti.py index 8798dd32e..efbc7c15b 100644 --- a/control/lti.py +++ b/control/lti.py @@ -252,7 +252,7 @@ def zeros(sys): def damp(sys, doprint=True): """ - Compute natural frequencies, damping ratios, and poles of a system + Compute natural frequencies, damping ratios, and poles of a system. Parameters ---------- @@ -446,7 +446,7 @@ def frequency_response(sys, omega, squeeze=None): def dcgain(sys): - """Return the zero-frequency (or DC) gain of the given system + """Return the zero-frequency (or DC) gain of the given system. Returns ------- diff --git a/control/margins.py b/control/margins.py index cd1d12ea3..301baaf57 100644 --- a/control/margins.py +++ b/control/margins.py @@ -505,7 +505,7 @@ def phase_crossover_frequencies(sys): def margin(*args): """margin(sysdata) - Calculate gain and phase margins and associated crossover frequencies + Calculate gain and phase margins and associated crossover frequencies. Parameters ---------- diff --git a/control/mateqn.py b/control/mateqn.py index 339f1a880..05b47ffae 100644 --- a/control/mateqn.py +++ b/control/mateqn.py @@ -88,7 +88,7 @@ def sb03md(n, C, A, U, dico, job='X', fact='N', trana='N', ldwork=None): def lyap(A, Q, C=None, E=None, method=None): - """Solves the continuous-time Lyapunov equation + """Solves the continuous-time Lyapunov equation. X = lyap(A, Q) solves @@ -214,7 +214,7 @@ def lyap(A, Q, C=None, E=None, method=None): def dlyap(A, Q, C=None, E=None, method=None): - """Solves the discrete-time Lyapunov equation + """Solves the discrete-time Lyapunov equation. X = dlyap(A, Q) solves @@ -342,7 +342,7 @@ def dlyap(A, Q, C=None, E=None, method=None): def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, A_s="A", B_s="B", Q_s="Q", R_s="R", S_s="S", E_s="E"): - """Solves the continuous-time algebraic Riccati equation + """Solves the continuous-time algebraic Riccati equation. X, L, G = care(A, B, Q, R=None) solves @@ -496,7 +496,7 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, def dare(A, B, Q, R, S=None, E=None, stabilizing=True, method=None, A_s="A", B_s="B", Q_s="Q", R_s="R", S_s="S", E_s="E"): """Solves the discrete-time algebraic Riccati - equation + equation. X, L, G = dare(A, B, Q, R) solves diff --git a/control/matlab/timeresp.py b/control/matlab/timeresp.py index 9fea863ec..fe8bfbd71 100644 --- a/control/matlab/timeresp.py +++ b/control/matlab/timeresp.py @@ -7,7 +7,7 @@ __all__ = ['step', 'stepinfo', 'impulse', 'initial', 'lsim'] def step(sys, T=None, input=0, output=None, return_x=False): - '''Step response of a linear system + '''Step response of a linear system. If the system has multiple inputs or outputs (MIMO), one input has to be selected for the simulation. Optionally, one output may be @@ -132,7 +132,7 @@ def stepinfo(sysdata, T=None, yfinal=None, SettlingTimeThreshold=0.02, return S def impulse(sys, T=None, input=0, output=None, return_x=False): - '''Impulse response of a linear system + '''Impulse response of a linear system. If the system has multiple inputs or outputs (MIMO), one input has to be selected for the simulation. Optionally, one output may be @@ -181,7 +181,7 @@ def impulse(sys, T=None, input=0, output=None, return_x=False): return (out[1], out[0], out[2]) if return_x else (out[1], out[0]) def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): - '''Initial condition response of a linear system + '''Initial condition response of a linear system. If the system has multiple outputs (?IMO), optionally, one output may be selected. If no selection is made for the output, all @@ -232,7 +232,7 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): def lsim(sys, U=0., T=None, X0=0.): - '''Simulate the output of a linear system + '''Simulate the output of a linear system. As a convenience for parameters `U`, `X0`: Numbers (scalars) are converted to constant arrays with the correct shape. diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 34df8dfff..041ca8bd0 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -17,7 +17,7 @@ def bode(*args, **kwargs): """bode(syslist[, omega, dB, Hz, deg, ...]) - Bode plot of the frequency response + Bode plot of the frequency response. Plots a bode gain and phase diagram @@ -79,7 +79,7 @@ def bode(*args, **kwargs): def nyquist(*args, **kwargs): """nyquist(syslist[, omega]) - Nyquist plot of the frequency response + Nyquist plot of the frequency response. Plots a Nyquist plot for the system over a (optional) frequency range. @@ -184,7 +184,7 @@ def ngrid(): def dcgain(*args): - '''Compute the gain of the system in steady state + '''Compute the gain of the system in steady state. The function takes either 1, 2, 3, or 4 parameters: diff --git a/control/nichols.py b/control/nichols.py index 69546678b..1f83ae407 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -66,7 +66,7 @@ def nichols_plot(sys_list, omega=None, grid=None): - """Nichols plot for a system + """Nichols plot for a system. Plots a Nichols plot for the system over a (optional) frequency range. @@ -133,7 +133,7 @@ def _inner_extents(ax): def nichols_grid(cl_mags=None, cl_phases=None, line_style='dotted', ax=None, label_cl_phases=True): - """Nichols chart grid + """Nichols chart grid. Plots a Nichols chart grid on the current axis, or creates a new chart if no plot already exists. diff --git a/control/phaseplot.py b/control/phaseplot.py index 91d7b79b0..a32383fb8 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -53,7 +53,7 @@ def _find(condition): def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, lingrid=None, lintime=None, logtime=None, timepts=None, parms=(), verbose=True): - """Phase plot for 2D dynamical systems + """Phase plot for 2D dynamical systems. Produces a vector field or stream line plot for a planar system. diff --git a/control/rlocus.py b/control/rlocus.py index c92535101..41cdec058 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -79,7 +79,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, plotstr=None, plot=True, print_gain=None, grid=None, ax=None, initial_gain=None, **kwargs): - """Root locus plot + """Root locus plot. Calculate the root locus by finding the roots of 1+k*TF(s) where TF is self.num(s)/self.den(s) and each k is an element diff --git a/control/sisotool.py b/control/sisotool.py index ba9d69ac8..0ba94d498 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -205,7 +205,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', Kp0=0, Ki0=0, Kd0=0, deltaK=0.001, tau=0.01, C_ff=0, derivative_in_feedback_path=False, plot=True): - """Manual PID controller design based on root locus using Sisotool + """Manual PID controller design based on root locus using Sisotool. Uses `sisotool` to investigate the effect of adding or subtracting an amount `deltaK` to the proportional, integral, or derivative (PID) gains of diff --git a/control/statefbk.py b/control/statefbk.py index ddcfaf037..758f093f9 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -79,7 +79,7 @@ def sb03md(n, C, A, U, dico, job='X',fact='N',trana='N',ldwork=None): # Pole placement def place(A, B, p): - """Place closed loop eigenvalues + """Place closed loop eigenvalues. K = place(A, B, p) @@ -147,7 +147,7 @@ def place(A, B, p): def place_varga(A, B, p, dtime=False, alpha=None): - """Place closed loop eigenvalues + """Place closed loop eigenvalues. K = place_varga(A, B, p, dtime=False, alpha=None) Required Parameters @@ -253,7 +253,7 @@ def place_varga(A, B, p, dtime=False, alpha=None): # Contributed by Roberto Bucher def acker(A, B, poles): - """Pole placement using Ackermann method + """Pole placement using Ackermann method. Call: K = acker(A, B, poles) @@ -298,7 +298,7 @@ def acker(A, B, poles): def lqr(*args, **kwargs): """lqr(A, B, Q, R[, N]) - Linear quadratic regulator design + Linear quadratic regulator design. The lqr() function computes the optimal state feedback controller u = -K x that minimizes the quadratic cost @@ -444,7 +444,7 @@ def lqr(*args, **kwargs): def dlqr(*args, **kwargs): """dlqr(A, B, Q, R[, N]) - Discrete-time linear quadratic regulator design + Discrete-time linear quadratic regulator design. The dlqr() function computes the optimal state feedback controller u[n] = - K x[n] that minimizes the quadratic cost @@ -584,7 +584,7 @@ def create_statefbk_iosystem( xd_labels=None, ud_labels=None, gainsched_indices=None, gainsched_method='linear', control_indices=None, state_indices=None, name=None, inputs=None, outputs=None, states=None, **kwargs): - """Create an I/O system using a (full) state feedback controller + """Create an I/O system using a (full) state feedback controller. This function creates an input/output system that implements a state feedback controller of the form @@ -939,7 +939,7 @@ def _control_output(t, states, inputs, params): def ctrb(A, B): - """Controllabilty matrix + """Controllabilty matrix. Parameters ---------- @@ -973,7 +973,7 @@ def ctrb(A, B): def obsv(A, C): - """Observability matrix + """Observability matrix. Parameters ---------- @@ -1006,7 +1006,7 @@ def obsv(A, C): def gram(sys, type): - """Gramian (controllability or observability) + """Gramian (controllability or observability). Parameters ---------- diff --git a/control/statesp.py b/control/statesp.py index a70b1e015..362945ad6 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1806,7 +1806,7 @@ def tf2ss(*args, **kwargs): def ssdata(sys): """ - Return state space data objects for a system + Return state space data objects for a system. Parameters ---------- @@ -1947,7 +1947,7 @@ def drss(*args, **kwargs): """ drss([states, outputs, inputs, strictly_proper]) - Create a stable, discrete-time, random state space system + Create a stable, discrete-time, random state space system. Create a stable *discrete time* random state space object. This function calls :func:`rss` using either the `dt` keyword provided by diff --git a/control/stochsys.py b/control/stochsys.py index 0cfeb933a..50dacf70c 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -311,7 +311,7 @@ def create_estimator_iosystem( estimate_labels='xhat[{i}]', covariance_labels='P[{i},{j}]', measurement_labels=None, control_labels=None, inputs=None, outputs=None, states=None, **kwargs): - r"""Create an I/O system implementing a linear quadratic estimator + r"""Create an I/O system implementing a linear quadratic estimator. This function creates an input/output system that implements a continuous time state estimator of the form diff --git a/control/xferfcn.py b/control/xferfcn.py index 83503919e..b5334b7b8 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1204,7 +1204,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, return TransferFunction(sysd, name=name, **kwargs) def dcgain(self, warn_infinite=False): - """Return the zero-frequency (or DC) gain + """Return the zero-frequency (or DC) gain. For a continous-time transfer function G(s), the DC gain is G(0) For a discrete-time transfer function G(z), the DC gain is G(1) @@ -1817,7 +1817,7 @@ def ss2tf(*args, **kwargs): def tfdata(sys): """ - Return transfer function data objects for a system + Return transfer function data objects for a system. Parameters ---------- From ece5f9216f2458a92e32f7d536e55f1fef35ae25 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 20 Jun 2023 22:53:57 -0700 Subject: [PATCH 0327/1025] initial implementation --- control/__init__.py | 5 +- control/config.py | 3 + control/tests/timeplot_test.py | 88 ++++++++ control/timeplot.py | 382 +++++++++++++++++++++++++++++++++ control/timeresp.py | 42 +++- 5 files changed, 510 insertions(+), 10 deletions(-) create mode 100644 control/tests/timeplot_test.py create mode 100644 control/timeplot.py diff --git a/control/__init__.py b/control/__init__.py index 9781ab80e..120d16325 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -77,6 +77,10 @@ from .xferfcn import * from .frdata import * +# Time responses and plotting +from .timeresp import * +from .timeplot import * + from .bdalg import * from .delay import * from .descfcn import * @@ -91,7 +95,6 @@ from .rlocus import * from .statefbk import * from .stochsys import * -from .timeresp import * from .ctrlutil import * from .canonical import * from .robust import * diff --git a/control/config.py b/control/config.py index 987693c2d..1ed8b5dd5 100644 --- a/control/config.py +++ b/control/config.py @@ -135,6 +135,9 @@ def reset_defaults(): from .optimal import _optimal_defaults defaults.update(_optimal_defaults) + from .timeplot import _timeplot_defaults + defaults.update(_timeplot_defaults) + def _get_param(module, param, argval=None, defval=None, pop=False, last=False): """Return the default value for a configuration option. diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py new file mode 100644 index 000000000..362abe369 --- /dev/null +++ b/control/tests/timeplot_test.py @@ -0,0 +1,88 @@ +# 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 + +# Step responses +@pytest.mark.parametrize("nin, nout", [(1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]) +@pytest.mark.parametrize("transpose", [True, False]) +@pytest.mark.parametrize("plot_inputs", [None, True, False]) +def test_simple_response(nout, nin, transpose, plot_inputs): + sys = ct.rss(4, nout, nin) + stepresp = ct.step_response(sys) + stepresp.plot(plot_inputs=plot_inputs, transpose=transpose) + + # Add additional data (and provide infon in the title) + ct.step_response(ct.rss(4, nout, nin), stepresp.time[-1]).plot( + plot_inputs=plot_inputs, transpose=transpose, + title=stepresp.title + f" [{plot_inputs=}, {transpose=}]") + + +@pytest.mark.parametrize("transpose", [True, False]) +def test_combine_signals(transpose): + sys = ct.rss(4, 2, 3) + stepresp = ct.step_response(sys) + stepresp.plot( + combine_signals=True, transpose=transpose, + title=f"Step response: combine_signals = True; transpose={transpose}") + + +@pytest.mark.parametrize("transpose", [True, False]) +def test_combine_traces(transpose): + sys = ct.rss(4, 2, 3) + stepresp = ct.step_response(sys) + stepresp.plot( + combine_traces=True, transpose=transpose, + title=f"Step response: combine_traces = True; transpose={transpose}") + + +@pytest.mark.parametrize("transpose", [True, False]) +def test_combine_signals_traces(transpose): + sys = ct.rss(4, 5, 3) + stepresp = ct.step_response(sys) + stepresp.plot( + combine_signals=True, combine_traces=True, transpose=transpose, + title=f"Step response: combine_signals/traces = True;" + + f"transpose={transpose}") + + +if __name__ == "__main__": + # + # Interactive mode: generate plots for manual viewing + # + # Running this script in python (or better ipython) will show a + # collection of figures that should all look OK on the screeen. + # + + # In interactive mode, turn on ipython interactive graphics + plt.ion() + + # Start by clearing existing figures + plt.close('all') + + print ("Simple step responses") + for size in [(1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]: + for transpose in [False, True]: + for plot_inputs in [None, True, False]: + plt.figure() + test_simple_response( + *size, transpose=transpose, plot_inputs=plot_inputs) + + print ("Combine signals") + for transpose in [False, True]: + plt.figure() + test_combine_signals(transpose) + + print ("Combine traces") + for transpose in [False, True]: + plt.figure() + test_combine_traces(transpose) + + print ("Combine signals and traces") + for transpose in [False, True]: + plt.figure() + test_combine_signals_traces(transpose) + diff --git a/control/timeplot.py b/control/timeplot.py new file mode 100644 index 000000000..0375baf89 --- /dev/null +++ b/control/timeplot.py @@ -0,0 +1,382 @@ +# timeplot.py - time plotting functions +# RMM, 20 Jun 2023 +# +# This file contains routines for plotting out time responses. These +# functions can be called either as standalone functions or access from the +# TimeDataResponse class. +# +# Note: Depending on how this goes, it might eventually make sense to +# put the functions here directly into timeresp.py. +# +# Desired features +# [ ] Step/impulse response plots don't include inputs by default +# [ ] Forced/I-O response plots include inputs by default +# [ ] Ability to start inputs at zero +# [ ] Ability to plot all data on a single graph +# [ ] Ability to plot inputs with outputs on separate graphs +# [ ] Ability to plot inputs and/or outputs on selected axes +# [ ] Multi-trace graphs using different line styles +# [ ] Plotting function return Line2D elements +# [ ] Axis labels/legends based on what is plotted (siso, mimo, multi-trace) +# [ ] Ability to select (index) output and/or trace (and time?) +# [ ] Legends should not contain redundant information (nor appear redundantly) + +import numpy as np +import matplotlib as mpl +import matplotlib.pyplot as plt + +from . import config + +# Default font dictionary +_timeplot_rcParams = mpl.rcParams.copy() +_timeplot_rcParams.update({ + 'axes.labelsize': 'small', + 'axes.titlesize': 'small', + 'figure.titlesize': 'medium', + 'legend.fontsize': 'small', + 'xtick.labelsize': 'small', + 'ytick.labelsize': 'small', +}) + +# Default values for module parameter variables +_timeplot_defaults = { + 'timeplot.line_styles': ['-', '--', ':', '-.'], + 'timeplot.line_colors': [ + 'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', + 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'], + 'timeplot.time_label': "Time [s]", +} + +# Plot the input/output response of a system +def ioresp_plot( + data, ax=None, plot_inputs=None, plot_outputs=True, transpose=False, + combine_traces=False, combine_signals=False, legend_loc='center right', + add_initial_zero=True, 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 + response of a system, with the data provided via a `TimeResponseData` + object, which is the standard output for python-control simulation + functions. + + Parameters + ---------- + 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 (data.ntraces, + data.ninputs + data.inputs), but if combine_traces == True then + only one row is needed and if combine_signals == True then only one + or two columns are needed (depending on plot_inputs and + plot_outputs). + plot_inputs : str or bool, optional + Sets how and where to plot the inputs: + * False: don't plot the inputs. + * 'separate` or True: plot inputs on their own axes + * 'with-output': plot inputs on corresponding output axes + * 'combined`: combine inputs and show on each output + plot_outputs : bool, optional + If False, suppress plotting of the outputs. + combine_traces : bool, optional + If set to True, combine all traces onto a single row instead of + plotting a separate row for each trace. + combine_signals : bool, optional + If set to True, combine all input and output signals onto a single + plot (for each). + transpose : bool, optional + If transpose is False (default), signals are plotted from top to + bottom, starting with outputs (if plotted) and then inputs. + Multi-trace plots are stacked horizontally. If transpose is True, + signals are plotted from left to right, starting with the inputs + (if plotted) and then the outputs. Multi-trace responses are + stacked vertically. + + Returns + ------- + out : list of Artist or list of list of Artist + Array of Artist objects for each line in the plot. The shape of + the array matches the plot style, + + Additional Parameters + --------------------- + 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. + time_label : str, optional + Label to use for the time axis. + legend_loc : str or list of str, optional + Location of the legend for multi-trace plots. If an array line + style is used, a list of locations can be passed to allow + specifying individual locations for the legend in each axes. + add_initial_zero : bool + Add an initial point of zero at the first time point for all + inputs. This is useful when the initial value of the input is + nonzero (for example in a step input). Default is True. + trace_cycler: :class:`~matplotlib.Cycler` + Line style cycle to use for traces. Default = ['-', '--', ':', '-.']. + + """ + from cycler import cycler + from .iosys import InputOutputSystem + from .timeresp import TimeResponseData + + # + # Process keywords and set defaults + # + + # Set up defaults + time_label = config._get_param( + 'timeplot', 'time_label', kwargs, _timeplot_defaults, pop=True) + line_styles = config._get_param( + 'timeplot', 'line_styles', kwargs, _timeplot_defaults, pop=True) + line_colors = config._get_param( + 'timeplot', 'line_colors', kwargs, _timeplot_defaults, pop=True) + + title = data.title if title == None else title + + # Make sure we process alled of the optional arguments + if kwargs: + raise TypeError("unrecognized keywords: " + str(kwargs)) + + # Configure the cycle of colors and line styles + my_cycler = cycler(linestyle=line_styles) * cycler(color=line_colors) + + # + # Find/create axes + # + # Data are plotted in a standard subplots array, whose size depends on + # which signals are being plotted and how they are combined. The + # baseline layout for data is to plot everything separately, with + # outputs and inputs making up the rows and traces making up the + # columns: + # + # Trace 0 Trace q + # +------+ +------+ + # | y[0] | ... | y[0] | + # +------+ +------+ + # : + # +------+ +------+ + # | y[p] | ... | y[p] | + # +------+ +------+ + # + # +------+ +------+ + # | u[0] | ... | u[0] | + # +------+ +------+ + # : + # +------+ +------+ + # | u[m] | ... | u[m] | + # +------+ +------+ + # + # * Omitting: either the inputs or the outputs can be omitted. + # + # * Combining: inputs, outputs, and traces can be combined onto a + # single set of axes using various keyword combinations + # (combine_signals, combine_traces, plot_input='combine'). This + # basically collapses data along either the rows or columns, and a + # legend is generated. + # + # * Transpose: if the `transpose` keyword is True, then instead of + # plotting the data vertically (outputs over inputs), we plot left to + # right (inputs, outputs): + # + # +------+ +------+ +------+ +------+ + # Trace 0 | u[0] | ... | u[m] | | y[0] | ... | y[p] | + # +------+ +------+ +------+ +------+ + # : + # : + # +------+ +------+ +------+ +------+ + # Trace q | u[0] | ... | u[m] | | y[0] | ... | y[p] | + # +------+ +------+ +------+ +------+ + # + + # Decide on the number of inputs and outputs + if plot_inputs is None: + plot_inputs = data.plot_inputs + ninputs = data.ninputs if plot_inputs else 0 + noutputs = data.noutputs if plot_outputs else 0 + if ninputs == 0 and noutputs == 0: + raise ValueError( + "plot_inputs and plot_outputs both True; no data to plot") + + # Figure how how many rows and columns to use + nrows = noutputs + ninputs if not combine_signals else \ + int(plot_inputs) + int(plot_outputs) + ncols = data.ntraces if not combine_traces else 1 + if transpose: + nrows, ncols = ncols, nrows + + # See if we can use the current figure axes + fig = plt.gcf() # get current figure (or create new one) + if ax is None and plt.get_fignums(): + ax = fig.get_axes() + if len(ax) == nrows * ncols: + # Assume that the shape is right (no easy way to infer this) + ax = np.array(ax).reshape(nrows, ncols) + elif len(ax) != 0: + # Need to generate a new figure + fig, ax = plt.figure(), None + else: + # Blank figure, just need to recreate axes + ax = None + + # Create new axes, if needed, and customize them + if ax is None: + with plt.rc_context(_timeplot_rcParams): + ax_array = fig.subplots(nrows, ncols, sharex=True, squeeze=False) + for ax in np.nditer(ax_array, flags=["refs_ok"]): + ax.item().set_prop_cycle(my_cycler) + fig.set_tight_layout(True) + fig.align_labels() + + else: + # Make sure the axes are the right shape + if ax.shape != (nrows, ncols): + raise ValueError( + "specified axes are not the right shape; " + f"got {ax.shape} but expecting ({nrows}, {ncols})") + ax_array = ax + + # + # Map inputs/outputs and traces to axes + # + # This set of code takes care of all of the various options for how to + # plot the data. The arrays ax_outputs and ax_inputs are used to map + # the different signals that are plotted onto the axes created above. + # This code is complicated because it has to handle lots of different + # variations. + # + + # Create the map from trace, signal to axes, accounting for combine_* + ax_outputs = np.empty((noutputs, data.ntraces), dtype=object) + ax_inputs = np.empty((ninputs, data.ntraces), dtype=object) + + # Keep track of the number of axes for the inputs and outputs + noutput_axes = noutputs if plot_outputs and not combine_signals \ + else int(plot_outputs) + ninput_axes = ninputs if plot_inputs and not combine_signals \ + else int(plot_inputs) + + for i in range(noutputs): + for j in range(data.ntraces): + signal_index = i if not combine_signals else 0 + trace_index = j if not combine_traces else 0 + if transpose: + ax_outputs[i, j] = \ + ax_array[trace_index, signal_index + ninput_axes] + else: + ax_outputs[i, j] = ax_array[signal_index, trace_index] + + for i in range(ninputs): + for j in range(data.ntraces): + signal_index = noutput_axes + (i if not combine_signals else 0) + trace_index = j if not combine_traces else 0 + if transpose: + ax_inputs[i, j] = \ + ax_array[trace_index, signal_index - noutput_axes] + else: + ax_inputs[i, j] = ax_array[signal_index, trace_index] + + # + # Plot the data + # + + # Reshape the inputs and outputs for uniform indexing + outputs = data.y.reshape(data.noutputs, data.ntraces, -1) + inputs = data.u.reshape(data.ninputs, data.ntraces, -1) + + # Create a list of lines for the output + out = np.empty((noutputs + ninputs, data.ntraces), dtype=object) + + # Go through each trace and each input/output + for trace in range(data.ntraces): + # Set the line style for each trace + style = line_styles[trace % len(line_styles)] + + # Plot the output + for i in range(noutputs): + label = data.output_labels[i] + if data.ntraces > 1: + label += f", trace {trace}" + out[i, trace] = ax_outputs[i, trace].plot( + data.time, outputs[i][trace], label=label) + + # Plot the input + for i in range(ninputs): + label = data.input_labels[i] # set label for legend + if data.ntraces > 1: + label += f", trace {trace}" + + if add_initial_zero: # start trace from the origin + x = np.hstack([np.array([data.time[0]]), data.time]) + y = np.hstack([np.array([0]), inputs[i][trace]]) + else: + x, y = data.time, inputs[i][trace] + + out[noutputs + i, trace] = ax_inputs[i, trace].plot( + x, y, label=label) + + # Stop here if the user wants to control everything + if not relabel: + return out + + # + # Label the axes + # + + # Label the outputs + if combine_signals and plot_outputs: + if transpose: + for trace in range(data.ntraces if transpose else 1): + ax_outputs[0, trace].set_ylabel("Outputs") + else: + ax_array[0, 0].set_ylabel("Outputs") + else: + for i in range(noutputs): + for trace in range(data.ntraces if transpose else 1): + ax_outputs[i, trace].set_ylabel(data.output_labels[i]) + + # Label the inputs + if combine_signals and plot_inputs: + if transpose: + for trace in range(data.ntraces if transpose else 1): + ax_inputs[0, trace].set_ylabel("Inputs") + else: + ax_inputs[0, 0].set_ylabel("Inputs") + else: + for i in range(ninputs): + for trace in range(data.ntraces if transpose else 1): + ax_inputs[i, trace].set_ylabel(data.input_labels[i]) + + # Label the traces + if not combine_traces and not transpose: + for trace in range(data.ntraces): + with plt.rc_context(_timeplot_rcParams): + ax_outputs[0, trace].set_title(f"Trace {trace}") + + # Create legends + legend_loc = np.broadcast_to(np.array(legend_loc), ax_array.shape) + for i in range(nrows): + for j in range(ncols): + ax = ax_array[i, j] + if len(ax.get_lines()) > 1: + with plt.rc_context(_timeplot_rcParams): + ax.legend(loc=legend_loc[i, j]) + + # if data.noutputs > 1 or data.ntraces > 1: + # ax[0].set_ylabel("Outputs") + # ax[0].legend(loc=legend_loc[0]) + # else: + # ax[0].set_ylabel(f"Output {data.output_labels[i]}") + + # Time units on the bottom + for col in range(ncols): + ax_array[-1, col].set_xlabel(time_label) + + if fig is not None and data.title is not None: + with plt.rc_context(_timeplot_rcParams): + fig.suptitle(title) + + return out diff --git a/control/timeresp.py b/control/timeresp.py index defdbdf4e..a7a60b5f5 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -81,6 +81,7 @@ from . import config from .exception import pandas_check from .iosys import isctime, isdtime +from .timeplot import ioresp_plot __all__ = ['forced_response', 'step_response', 'step_info', @@ -169,6 +170,13 @@ class TimeResponseData: input_labels, output_labels, state_labels : array of str Names for the input, output, and state variables. + sysname : str, optional + Name of the system that created the data. + + plot_inputs : bool, optional + Whether or not to plot the inputs by default (can be overridden in + the plot() method) + ntraces : int Number of independent traces represented in the input/output response. If ntraces is 0 then the data represents a single trace @@ -210,7 +218,8 @@ class TimeResponseData: def __init__( self, time, outputs, states=None, inputs=None, issiso=None, output_labels=None, state_labels=None, input_labels=None, - transpose=False, return_x=False, squeeze=None, multi_trace=False + title=None, transpose=False, return_x=False, squeeze=None, + multi_trace=False, plot_inputs=True, sysname=None ): """Create an input/output time response object. @@ -241,9 +250,8 @@ def __init__( single-input, multi-trace response), or a 3D array indexed by input, trace, and time. - sys : LTI or InputOutputSystem, optional - System that generated the data. If desired, the system used to - generate the data can be stored along with the data. + title : str, optonal + Title of the data set (used as figure title in plotting). squeeze : bool, optional By default, if a system is single-input, single-output (SISO) @@ -267,6 +275,9 @@ def __init__( Optional labels for the inputs, outputs, and states, given as a list of strings matching the appropriate signal dimension. + sysname : str, optional + Name of the system that created the data. + transpose : bool, optional If True, transpose all input and output arrays (for backward compatibility with MATLAB and :func:`scipy.signal.lsim`). @@ -276,6 +287,10 @@ def __init__( If True, return the state vector when enumerating result by assigning to a tuple (default = False). + plot_inputs : bool, optional + Whether or not to plot the inputs by default (can be overridden + in the plot() method) + multi_trace : bool, optional If ``True``, then 2D input array represents multiple traces. For a MIMO system, the ``input`` attribute should then be set to @@ -290,6 +305,8 @@ def __init__( self.t = np.atleast_1d(time) if self.t.ndim != 1: raise ValueError("Time vector must be 1D array") + self.title = title + self.sysname = sysname # # Output vector (and number of traces) @@ -363,9 +380,11 @@ def __init__( if inputs is None: self.u = None self.ninputs = 0 + self.plot_inputs = False else: self.u = np.array(inputs) + self.plot_inputs = plot_inputs # Make sure the shape is OK and figure out the nuumber of inputs if multi_trace and self.u.ndim == 3 and \ @@ -655,6 +674,10 @@ def to_pandas(self): return pandas.DataFrame(data) + # Plot data + def plot(self, *args, **kwargs): + return ioresp_plot(self, *args, **kwargs) + # Process signal labels def _process_labels(labels, signal, length): @@ -1132,7 +1155,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, return TimeResponseData( tout, yout, xout, U, issiso=sys.issiso(), output_labels=sys.output_labels, input_labels=sys.input_labels, - state_labels=sys.state_labels, + state_labels=sys.state_labels, sysname=sys.name, plot_inputs=True, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1377,8 +1400,9 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, return TimeResponseData( response.time, yout, xout, uout, issiso=issiso, output_labels=output_labels, input_labels=input_labels, - state_labels=sys.state_labels, - transpose=transpose, return_x=return_x, squeeze=squeeze) + state_labels=sys.state_labels, title="Step response for " + sys.name, + transpose=transpose, return_x=return_x, squeeze=squeeze, + sysname=sys.name, plot_inputs=False) def step_info(sysdata, T=None, T_num=None, yfinal=None, @@ -1718,7 +1742,7 @@ def initial_response(sys, T=None, X0=0, output=None, T_num=None, return TimeResponseData( response.t, yout, response.x, None, issiso=issiso, output_labels=output_labels, input_labels=None, - state_labels=sys.state_labels, + state_labels=sys.state_labels, sysname=sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1887,7 +1911,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, return TimeResponseData( response.time, yout, xout, uout, issiso=issiso, output_labels=output_labels, input_labels=input_labels, - state_labels=sys.state_labels, + state_labels=sys.state_labels, sysname=sys.name, plot_inputs=False, transpose=transpose, return_x=return_x, squeeze=squeeze) From dacf17c87e13aa2e6d33c2f9fb706215800eeb2b Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 25 Jun 2023 10:03:56 -0700 Subject: [PATCH 0328/1025] add support for plot_input='overlay', trace labeling, legend processing --- control/nlsys.py | 4 +- control/tests/kwargs_test.py | 3 + control/tests/timeplot_test.py | 28 ++- control/timeplot.py | 402 +++++++++++++++++++++++++-------- control/timeresp.py | 28 ++- 5 files changed, 359 insertions(+), 106 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index c540decb6..f11d08a31 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1488,6 +1488,7 @@ def ufun(t): return TimeResponseData( t_eval, y, None, u, issiso=sys.issiso(), output_labels=sys.output_labels, input_labels=sys.input_labels, + title="Input/output response for " + sys.name, sysname=sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze) # Create a lambda function for the right hand side @@ -1567,7 +1568,8 @@ def ivp_rhs(t, x): return TimeResponseData( soln.t, y, soln.y, u, issiso=sys.issiso(), output_labels=sys.output_labels, input_labels=sys.input_labels, - state_labels=sys.state_labels, + state_labels=sys.state_labels, sysname=sys.name, + title="Input/output response for " + sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 1abc7547e..9b66aef38 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -26,6 +26,7 @@ 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 @pytest.mark.parametrize("module, prefix", [ (control, ""), (control.flatsys, "flatsys."), (control.optimal, "optimal.") @@ -185,6 +186,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'gangof4_plot': test_matplotlib_kwargs, 'input_output_response': test_unrecognized_kwargs, 'interconnect': interconnect_test.test_interconnect_exceptions, + 'ioresp_plot': timeplot_test.test_errors, 'linearize': test_unrecognized_kwargs, 'lqe': test_unrecognized_kwargs, 'lqr': test_unrecognized_kwargs, @@ -230,6 +232,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'StateSpace.__init__': test_unrecognized_kwargs, 'StateSpace.sample': test_unrecognized_kwargs, 'TimeResponseData.__call__': trdata_test.test_response_copy, + 'TimeResponseData.plot': timeplot_test.test_errors, 'TransferFunction.__init__': test_unrecognized_kwargs, 'TransferFunction.sample': test_unrecognized_kwargs, 'optimal.OptimalControlProblem.__init__': diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 362abe369..9fd2e23cf 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -9,17 +9,22 @@ # Step responses @pytest.mark.parametrize("nin, nout", [(1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]) @pytest.mark.parametrize("transpose", [True, False]) -@pytest.mark.parametrize("plot_inputs", [None, True, False]) +@pytest.mark.parametrize("plot_inputs", [None, True, False, 'overlay']) def test_simple_response(nout, nin, transpose, plot_inputs): sys = ct.rss(4, nout, nin) stepresp = ct.step_response(sys) stepresp.plot(plot_inputs=plot_inputs, transpose=transpose) # Add additional data (and provide infon in the title) - ct.step_response(ct.rss(4, nout, nin), stepresp.time[-1]).plot( - plot_inputs=plot_inputs, transpose=transpose, - title=stepresp.title + f" [{plot_inputs=}, {transpose=}]") + newsys = ct.rss(4, nout, nin) + out = ct.step_response(newsys, stepresp.time[-1]).plot( + plot_inputs=plot_inputs, transpose=transpose) + # Update the title so we can see what is going on + fig = out[0, 0][0].axes.figure + fig.suptitle( + fig._suptitle._text + f" [{nout}x{nin}, {plot_inputs=}, {transpose=}]", + fontsize='small') @pytest.mark.parametrize("transpose", [True, False]) def test_combine_signals(transpose): @@ -49,6 +54,19 @@ def test_combine_signals_traces(transpose): f"transpose={transpose}") +def test_errors(): + sys = ct.rss(2, 1, 1) + stepresp = ct.step_response(sys) + with pytest.raises(TypeError, match="unrecognized keyword"): + stepresp.plot(unknown=None) + + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.ioresp_plot(stepresp, unknown=None) + + with pytest.raises(ValueError, match="unrecognized value"): + stepresp.plot(plot_inputs='unknown') + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -66,7 +84,7 @@ def test_combine_signals_traces(transpose): print ("Simple step responses") for size in [(1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]: for transpose in [False, True]: - for plot_inputs in [None, True, False]: + for plot_inputs in [None, True, False, 'overlay']: plt.figure() test_simple_response( *size, transpose=transpose, plot_inputs=plot_inputs) diff --git a/control/timeplot.py b/control/timeplot.py index 0375baf89..a4953c12f 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -8,32 +8,35 @@ # Note: Depending on how this goes, it might eventually make sense to # put the functions here directly into timeresp.py. # -# Desired features -# [ ] Step/impulse response plots don't include inputs by default -# [ ] Forced/I-O response plots include inputs by default -# [ ] Ability to start inputs at zero -# [ ] Ability to plot all data on a single graph -# [ ] Ability to plot inputs with outputs on separate graphs -# [ ] Ability to plot inputs and/or outputs on selected axes -# [ ] Multi-trace graphs using different line styles -# [ ] Plotting function return Line2D elements -# [ ] Axis labels/legends based on what is plotted (siso, mimo, multi-trace) +# Desired features (i = implemented but not tested, c = complete, w/ tests) +# [i] Step/impulse response plots don't include inputs by default +# [i] Forced/I-O response plots include inputs by default +# [ ] Ability to start inputs at zero (step functions only?) +# [i] Ability to plot all data on a single graph +# [i] Ability to plot inputs with outputs on separate graphs +# [i] Ability to plot inputs and/or outputs on selected axes +# [i] Multi-trace graphs using different line styles +# [i] Plotting function return Line2D elements +# [i] Axis labels/legends based on what is plotted (siso, mimo, multi-trace) # [ ] Ability to select (index) output and/or trace (and time?) -# [ ] Legends should not contain redundant information (nor appear redundantly) +# [i] Legends should not contain redundant information (nor appear redundantly) import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt +from os.path import commonprefix from . import config +__all__ = ['ioresp_plot'] + # Default font dictionary _timeplot_rcParams = mpl.rcParams.copy() _timeplot_rcParams.update({ 'axes.labelsize': 'small', 'axes.titlesize': 'small', 'figure.titlesize': 'medium', - 'legend.fontsize': 'small', + 'legend.fontsize': 'x-small', 'xtick.labelsize': 'small', 'ytick.labelsize': 'small', }) @@ -50,8 +53,9 @@ # Plot the input/output response of a system def ioresp_plot( data, ax=None, plot_inputs=None, plot_outputs=True, transpose=False, - combine_traces=False, combine_signals=False, legend_loc='center right', - add_initial_zero=True, title=None, relabel=True, **kwargs): + combine_traces=False, combine_signals=False, legend_spec=None, + legend_loc=None, add_initial_zero=True, 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 @@ -72,12 +76,12 @@ def ioresp_plot( only one row is needed and if combine_signals == True then only one or two columns are needed (depending on plot_inputs and plot_outputs). - plot_inputs : str or bool, optional + plot_inputs : bool or str, optional Sets how and where to plot the inputs: - * False: don't plot the inputs. - * 'separate` or True: plot inputs on their own axes - * 'with-output': plot inputs on corresponding output axes - * 'combined`: combine inputs and show on each output + * False: don't plot the inputs + * None: use value from time response data (default) + * 'overlay`: plot inputs overlaid with outputs + * True: plot the inputs on their own axes plot_outputs : bool, optional If False, suppress plotting of the outputs. combine_traces : bool, optional @@ -107,10 +111,14 @@ def ioresp_plot( are added. If set to `False`, just plot new data on existing axes. time_label : str, optional Label to use for the time axis. - legend_loc : str or list of str, optional - Location of the legend for multi-trace plots. If an array line - style is used, a list of locations can be passed to allow - specifying individual locations for the legend in each axes. + legend_spec : array of str, option + Location of the legend for multi-trace 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_spec is None. add_initial_zero : bool Add an initial point of zero at the first time point for all inputs. This is useful when the initial value of the input is @@ -135,15 +143,22 @@ def ioresp_plot( line_colors = config._get_param( 'timeplot', 'line_colors', kwargs, _timeplot_defaults, pop=True) + # Set the title for the data title = data.title if title == None else title - # Make sure we process alled of the optional arguments - if kwargs: - raise TypeError("unrecognized keywords: " + str(kwargs)) + # Determine whether or not to plot the input data (and how) + if plot_inputs is None: + plot_inputs = data.plot_inputs + if plot_inputs not in [True, False, 'overlay']: + raise ValueError(f"unrecognized value: {plot_inputs=}") # Configure the cycle of colors and line styles my_cycler = cycler(linestyle=line_styles) * cycler(color=line_colors) + # Make sure we process alled of the optional arguments + if kwargs: + raise TypeError("unrecognized keyword(s): " + str(kwargs)) + # # Find/create axes # @@ -170,11 +185,13 @@ def ioresp_plot( # | u[m] | ... | u[m] | # +------+ +------+ # + # A variety of options are available to modify this format: + # # * Omitting: either the inputs or the outputs can be omitted. # # * Combining: inputs, outputs, and traces can be combined onto a # single set of axes using various keyword combinations - # (combine_signals, combine_traces, plot_input='combine'). This + # (combine_signals, combine_traces, plot_inputs='overlay'). This # basically collapses data along either the rows or columns, and a # legend is generated. # @@ -191,20 +208,32 @@ def ioresp_plot( # Trace q | u[0] | ... | u[m] | | y[0] | ... | y[p] | # +------+ +------+ +------+ +------+ # + # This also affects the way in which legends and labels are generated. # Decide on the number of inputs and outputs - if plot_inputs is None: - plot_inputs = data.plot_inputs ninputs = data.ninputs if plot_inputs else 0 noutputs = data.noutputs if plot_outputs else 0 + ntraces = max(1, data.ntraces) # treat data.ntraces == 0 as 1 trace if ninputs == 0 and noutputs == 0: raise ValueError( "plot_inputs and plot_outputs both True; no data to plot") - # Figure how how many rows and columns to use - nrows = noutputs + ninputs if not combine_signals else \ - int(plot_inputs) + int(plot_outputs) - ncols = data.ntraces if not combine_traces else 1 + # Figure how how many rows and columns to use + offsets for inputs/outputs + if plot_inputs == 'overlay' and not combine_signals: + nrows = max(ninputs, noutputs) # Plot inputs on top of outputs + noutput_axes = 0 # No offset required + ninput_axes = 0 # No offset required + elif combine_signals: + nrows = int(plot_outputs) # Start with outputs + nrows += int(plot_inputs == True) # Add plot for inputs if needed + noutput_axes = 1 if plot_outputs else 0 + ninput_axes = 1 if plot_inputs else 0 + else: + nrows = noutputs + ninputs # Plot inputs separately + noutput_axes = noutputs if plot_outputs else 0 + ninput_axes = ninputs if plot_inputs else 0 + + ncols = ntraces if not combine_traces else 1 if transpose: nrows, ncols = ncols, nrows @@ -250,17 +279,11 @@ def ioresp_plot( # # Create the map from trace, signal to axes, accounting for combine_* - ax_outputs = np.empty((noutputs, data.ntraces), dtype=object) - ax_inputs = np.empty((ninputs, data.ntraces), dtype=object) - - # Keep track of the number of axes for the inputs and outputs - noutput_axes = noutputs if plot_outputs and not combine_signals \ - else int(plot_outputs) - ninput_axes = ninputs if plot_inputs and not combine_signals \ - else int(plot_inputs) + ax_outputs = np.empty((noutputs, ntraces), dtype=object) + ax_inputs = np.empty((ninputs, ntraces), dtype=object) for i in range(noutputs): - for j in range(data.ntraces): + for j in range(ntraces): signal_index = i if not combine_signals else 0 trace_index = j if not combine_traces else 0 if transpose: @@ -270,7 +293,7 @@ def ioresp_plot( ax_outputs[i, j] = ax_array[signal_index, trace_index] for i in range(ninputs): - for j in range(data.ntraces): + for j in range(ntraces): signal_index = noutput_axes + (i if not combine_signals else 0) trace_index = j if not combine_traces else 0 if transpose: @@ -282,32 +305,58 @@ def ioresp_plot( # # Plot the data # + # The ax_output and ax_input arrays have the axes needed for making the + # plots. Labels are used on each axes for later creation of legends. + # The gneric labels if of the form: + # + # signal name, trace label, system name + # + # The signal name or tracel label can be omitted if they will appear on + # the axes title or ylabel. The system name is always included, since + # multiple calls to plot() will require a legend that distinguishes + # which system signals are plotted. The system name is stripped off + # later (in the legend-handling code) if it is not needed, but must be + # included here since a plot may be built up by multiple calls to plot(). + # # Reshape the inputs and outputs for uniform indexing - outputs = data.y.reshape(data.noutputs, data.ntraces, -1) - inputs = data.u.reshape(data.ninputs, data.ntraces, -1) + outputs = data.y.reshape(data.noutputs, ntraces, -1) + inputs = data.u.reshape(data.ninputs, ntraces, -1) # Create a list of lines for the output - out = np.empty((noutputs + ninputs, data.ntraces), dtype=object) + out = np.empty((noutputs + ninputs, ntraces), dtype=object) - # Go through each trace and each input/output - for trace in range(data.ntraces): - # Set the line style for each trace - style = line_styles[trace % len(line_styles)] + # Utility function for creating line label + def _make_line_label(signal_index, signal_labels, trace_index): + label = "" # start with an empty label + + # Add the signal name if it won't appear as an axes label + if combine_signals or plot_inputs == 'overlay': + label += signal_labels[signal_index] + + # Add the trace label if this is a multi-trace figure + if combine_traces and ntraces > 1: + label += ", " if label != "" else "" + label += f"trace {trace_index}" if data.trace_labels is None \ + else data.trace_labels[trace_index] + # Add the system name (will strip off later if redundant) + label += ", " if label != "" else "" + label += f"{data.sysname}" + + return label + + # Go through each trace and each input/output + for trace in range(ntraces): # Plot the output for i in range(noutputs): - label = data.output_labels[i] - if data.ntraces > 1: - label += f", trace {trace}" + label = _make_line_label(i, data.output_labels, trace) out[i, trace] = ax_outputs[i, trace].plot( data.time, outputs[i][trace], label=label) # Plot the input for i in range(ninputs): - label = data.input_labels[i] # set label for legend - if data.ntraces > 1: - label += f", trace {trace}" + label = _make_line_label(i, data.input_labels, trace) if add_initial_zero: # start trace from the origin x = np.hstack([np.array([data.time[0]]), data.time]) @@ -323,60 +372,221 @@ def ioresp_plot( return out # - # Label the axes + # Label the axes (including trace labels) + # + # Once the data are plotted, we label the axes. The horizontal axes is + # always time and this is labeled only on the bottom most column. The + # vertical axes can consist either of a single signal or a combination + # of signals (when combine_signal is True or plot+inputs = 'overlay'. + # + # Traces are labeled at the top of the first row of plots (regular) or + # the left edge of rows (tranpose). # - # Label the outputs - if combine_signals and plot_outputs: - if transpose: - for trace in range(data.ntraces if transpose else 1): - ax_outputs[0, trace].set_ylabel("Outputs") - else: - ax_array[0, 0].set_ylabel("Outputs") - else: - for i in range(noutputs): - for trace in range(data.ntraces if transpose else 1): - ax_outputs[i, trace].set_ylabel(data.output_labels[i]) + # Time units on the bottom + for col in range(ncols): + ax_array[-1, col].set_xlabel(time_label) - # Label the inputs - if combine_signals and plot_inputs: - if transpose: - for trace in range(data.ntraces if transpose else 1): - ax_inputs[0, trace].set_ylabel("Inputs") + # Keep track of whether inputs are overlaid on outputs + overlaid = plot_inputs == 'overlay' + overlaid_title = "Inputs, Outputs" + + if transpose: # inputs on left, outputs on right + # Label the inputs + if combine_signals and plot_inputs: + label = overlaid_title if overlaid else "Inputs" + for trace in range(ntraces): + ax_inputs[0, trace].set_ylabel(label) else: - ax_inputs[0, 0].set_ylabel("Inputs") - else: - for i in range(ninputs): - for trace in range(data.ntraces if transpose else 1): - ax_inputs[i, trace].set_ylabel(data.input_labels[i]) + for i in range(ninputs): + label = overlaid_title if overlaid else data.input_labels[i] + for trace in range(ntraces): + ax_inputs[i, trace].set_ylabel(label) + + # Label the outputs + if combine_signals and plot_outputs: + label = overlaid_title if overlaid else "Outputs" + for trace in range(ntraces): + ax_outputs[0, trace].set_ylabel(label) + else: + for i in range(noutputs): + label = overlaid_title if overlaid else data.output_labels[i] + for trace in range(ntraces): + ax_outputs[i, trace].set_ylabel(label) + + # Set the trace titles, if needed + if ntraces > 1 and not combine_traces: + for trace in range(ntraces): + # Get the existing ylabel for left column + label = ax_array[trace, 0].get_ylabel() + + # Add on the trace title + label = f"Trace {trace}" if data.trace_labels is None \ + else data.trace_labels[trace] + "\n" + label + ax_array[trace, 0].set_ylabel(label) + + else: # regular plot (outputs over inputs) + # Set the trace titles, if needed + if ntraces > 1 and not combine_traces: + for trace in range(ntraces): + with plt.rc_context(_timeplot_rcParams): + ax_outputs[0, trace].set_title( + f"Trace {trace}" if data.trace_labels is None + else data.trace_labels[trace]) - # Label the traces - if not combine_traces and not transpose: - for trace in range(data.ntraces): - with plt.rc_context(_timeplot_rcParams): - ax_outputs[0, trace].set_title(f"Trace {trace}") + # Label the outputs + if combine_signals and plot_outputs: + ax_outputs[0, 0].set_ylabel("Outputs") + else: + for i in range(noutputs): + ax_outputs[i, 0].set_ylabel( + overlaid_title if overlaid else data.output_labels[i]) + + # Label the inputs + if combine_signals and plot_inputs: + label = overlaid_title if overlaid else "Inputs" + ax_inputs[0, 0].set_ylabel(label) + else: + for i in range(ninputs): + label = overlaid_title if overlaid else data.input_labels[i] + ax_inputs[i, 0].set_ylabel(label) + # # Create legends - legend_loc = np.broadcast_to(np.array(legend_loc), ax_array.shape) + # + # Legends can be placed manually by passing a legend_spec 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). + # + # If no legend spec is passed, a minimal number of legends are used so + # that each line in each axis can be uniquely identified. The details + # depends on the various plotting parameters, but the general rule is + # to place legends in the top row and right column. + # + # Because plots can be built up by multiple calls to plot(), the legend + # strings are created from the line labels manually. Thus an initial + # call to plot() may not generate any legends (eg, if no signals are + # combined nor overlaid), but subsequent calls to plot() will need a + # legend for each different line (system). + # + + # Figure out where to put legends + if legend_spec is None: + legend_map = np.full(ax_array.shape, None, dtype=object) + if legend_loc == None: + legend_loc = 'center right' + if transpose: + if (combine_signals or plot_inputs == 'overlay') and combine_traces: + # Put a legend in each plot for inputs and outputs + legend_map[0, ninput_axes] = legend_loc + if plot_inputs is True: + legend_map[0, 0] = legend_loc + elif combine_signals: + # Put a legend in rightmost input/output plot + legend_map[0, ninput_axes] = legend_loc + if plot_inputs is True: + legend_map[0, 0] = legend_loc + elif plot_inputs == 'overlay': + # Put a legend on the top of each column + for i in range(ntraces): + legend_map[0, i] = legend_loc + elif combine_traces: + # Put a legend topmost input/output plot + legend_map[0, -1] = legend_loc + else: + # Put legend in the upper right + legend_map[0, -1] = legend_loc + else: # regular layout + if (combine_signals or plot_inputs == 'overlay') and combine_traces: + # Put a legend in each plot for inputs and outputs + legend_map[0, -1] = legend_loc + if plot_inputs is True: + legend_map[noutput_axes, -1] = legend_loc + elif combine_signals: + # Put a legend in rightmost input/output plot + legend_map[0, -1] = legend_loc + if plot_inputs is True: + legend_map[noutput_axes, -1] = legend_loc + elif plot_inputs == 'overlay': + # Put a legend on the right of each row + for i in range(max(ninputs, noutputs)): + legend_map[i, -1] = legend_loc + elif combine_traces: + # Put a legend topmost input/output plot + legend_map[0, -1] = legend_loc + else: + # Put legend in the upper right + legend_map[0, -1] = legend_loc + + # Create axis legends for i in range(nrows): for j in range(ncols): ax = ax_array[i, j] - if len(ax.get_lines()) > 1: + # Get the labels to use + labels = [line.get_label() for line in ax.get_lines()] + + # Look for a common prefix (up to a space) + # TODO: fix error in 1x2, overlay, transpose (Fig 24) + common_prefix = commonprefix(labels) + last_space = common_prefix.rfind(', ') + if last_space < 0 or plot_inputs == 'overlay': + common_prefix = '' + elif last_space > 0: + common_prefix = common_prefix[:last_space] + prefix_len = len(common_prefix) + + # Look for a common suffice (up to a space) + common_suffix = commonprefix( + [label[::-1] for label in labels])[::-1] + suffix_len = len(common_suffix) + # Only chop things off after a comma or space + while suffix_len > 0 and common_suffix[-suffix_len] != ',': + suffix_len -= 1 + + # Strip the labels of common information + if suffix_len > 0: + labels = [label[prefix_len:-suffix_len] for label in labels] + else: + labels = [label[prefix_len:] for label in labels] + + # Update the labels to remove common strings + if len(labels) > 1 and legend_map[i, j] != None: with plt.rc_context(_timeplot_rcParams): - ax.legend(loc=legend_loc[i, j]) + ax.legend(labels, loc=legend_map[i, j]) - # if data.noutputs > 1 or data.ntraces > 1: - # ax[0].set_ylabel("Outputs") - # ax[0].legend(loc=legend_loc[0]) - # else: - # ax[0].set_ylabel(f"Output {data.output_labels[i]}") + # + # Update the plot title (= figure suptitle) + # + # If plots are built up by multiple calls to plot() and the title is + # not given, then the title is updated to provide a list of unique text + # items in each successive title. For data generated by the I/O + # response functions this will generate a common prefix followed by a + # list of systems (e.g., "Step response for sys[1], sys[2]"). + # - # Time units on the bottom - for col in range(ncols): - ax_array[-1, col].set_xlabel(time_label) + if fig is not None and title is not None: + # Get the current title, if it exists + old_title = None if fig._suptitle is None else fig._suptitle._text + + if old_title is not None: + # Find the common part of the titles + common_prefix = commonprefix([old_title, title]) + + # Back up to the last space + last_space = common_prefix.rfind(' ') + if last_space > 0: + common_prefix = common_prefix[:last_space] + title_suffix = title[len(common_prefix):] + + # Add the new part of the title (usually the system name) + separator = ',' if len(common_prefix) > 0 else ';' + new_title = old_title + separator + title_suffix + else: + new_title = title - if fig is not None and data.title is not None: + # Add the title with plt.rc_context(_timeplot_rcParams): - fig.suptitle(title) + fig.suptitle(new_title) return out diff --git a/control/timeresp.py b/control/timeresp.py index a7a60b5f5..b1a03d681 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -182,6 +182,9 @@ class TimeResponseData: response. If ntraces is 0 then the data represents a single trace with the trace index surpressed in the data. + trace_labels : array of string + Labels to use for traces (set to sysname it ntraces is 0) + Notes ----- 1. For backward compatibility with earlier versions of python-control, @@ -219,7 +222,8 @@ def __init__( self, time, outputs, states=None, inputs=None, issiso=None, output_labels=None, state_labels=None, input_labels=None, title=None, transpose=False, return_x=False, squeeze=None, - multi_trace=False, plot_inputs=True, sysname=None + multi_trace=False, trace_labels=None, plot_inputs=True, + sysname=None ): """Create an input/output time response object. @@ -416,6 +420,10 @@ def __init__( self.input_labels = _process_labels( input_labels, "input", self.ninputs) + # Check and store trace labels, if present + self.trace_labels = _process_labels( + trace_labels, "trace", self.ntraces) + # Figure out if the system is SISO if issiso is None: # Figure out based on the data @@ -1156,6 +1164,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, tout, yout, xout, U, issiso=sys.issiso(), output_labels=sys.output_labels, input_labels=sys.input_labels, state_labels=sys.state_labels, sysname=sys.name, plot_inputs=True, + title="Forced response for " + sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1372,11 +1381,15 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, uout = np.empty((ninputs, ninputs, T.size)) # Simulate the response for each input + trace_labels = [] for i in range(sys.ninputs): # If input keyword was specified, only simulate for that input if isinstance(input, int) and i != input: continue + # Save a label for this plot + trace_labels.append(f"From {sys.input_labels[i]}") + # Create a set of single inputs system for simulation U = np.zeros((sys.ninputs, T.size)) U[i, :] = np.ones_like(T) @@ -1402,7 +1415,7 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, output_labels=output_labels, input_labels=input_labels, state_labels=sys.state_labels, title="Step response for " + sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze, - sysname=sys.name, plot_inputs=False) + sysname=sys.name, trace_labels=trace_labels, plot_inputs=False) def step_info(sysdata, T=None, T_num=None, yfinal=None, @@ -1743,6 +1756,7 @@ def initial_response(sys, T=None, X0=0, output=None, T_num=None, response.t, yout, response.x, None, issiso=issiso, output_labels=output_labels, input_labels=None, state_labels=sys.state_labels, sysname=sys.name, + title="Initial response for " + sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1869,11 +1883,15 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, uout = np.full((ninputs, ninputs, np.asarray(T).size), None) # Simulate the response for each input + trace_labels = [] for i in range(sys.ninputs): # If input keyword was specified, only handle that case if isinstance(input, int) and i != input: continue + # Save a label for this plot + trace_labels.append(f"From {sys.input_labels[i]}") + # # Compute new X0 that contains the impulse # @@ -1911,8 +1929,10 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, return TimeResponseData( response.time, yout, xout, uout, issiso=issiso, output_labels=output_labels, input_labels=input_labels, - state_labels=sys.state_labels, sysname=sys.name, plot_inputs=False, - transpose=transpose, return_x=return_x, squeeze=squeeze) + state_labels=sys.state_labels, trace_labels=trace_labels, + title="Impulse response for " + sys.name, + sysname=sys.name, plot_inputs=False, transpose=transpose, + return_x=return_x, squeeze=squeeze) # utility function to find time period and time increment using pole locations From 9f99219726af16878f1c93c82389ac289f99fe7e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 28 Jun 2023 15:46:37 -0700 Subject: [PATCH 0329/1025] unit tests + bug fixes --- control/tests/timeplot_test.py | 206 ++++++++++++++++++++++++--------- control/timeplot.py | 43 ++++--- control/timeresp.py | 25 ++-- 3 files changed, 196 insertions(+), 78 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 9fd2e23cf..345634084 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -5,53 +5,134 @@ import control as ct import matplotlib as mpl import matplotlib.pyplot as plt - -# Step responses -@pytest.mark.parametrize("nin, nout", [(1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]) +import numpy as np + +# Detailed test of (almost) all functionality +# (uncomment rows for developmental testing, but otherwise takes too long) +@pytest.mark.parametrize( + "sys", [ + # ct.rss(1, 1, 1, strictly_proper=True, name="rss"), + ct.nlsys( + lambda t, x, u, params: -x + u, None, + inputs=1, outputs=1, states=1, name="nlsys"), + # ct.rss(2, 1, 2, strictly_proper=True, name="rss"), + ct.rss(2, 2, 1, strictly_proper=True, name="rss"), + # ct.drss(2, 2, 2, name="drss"), + # ct.rss(2, 2, 3, strictly_proper=True, name="rss"), + ]) @pytest.mark.parametrize("transpose", [True, False]) @pytest.mark.parametrize("plot_inputs", [None, True, False, 'overlay']) -def test_simple_response(nout, nin, transpose, plot_inputs): - sys = ct.rss(4, nout, nin) - stepresp = ct.step_response(sys) - stepresp.plot(plot_inputs=plot_inputs, transpose=transpose) +@pytest.mark.parametrize("plot_outputs", [True, False]) +@pytest.mark.parametrize("combine_signals", [True, False]) +@pytest.mark.parametrize("combine_traces", [True, False]) +@pytest.mark.parametrize("second_system", [False, True]) +@pytest.mark.parametrize("fcn", [ + ct.step_response, ct.impulse_response, ct.initial_response, + ct.forced_response, ct.input_output_response]) +def test_response_plots( + fcn, sys, plot_inputs, plot_outputs, combine_signals, combine_traces, + transpose, second_system, clear=True): + # Figure out the time range to use and check some special cases + if not isinstance(sys, ct.lti.LTI): + if fcn == ct.impulse_response: + pytest.skip("impulse response not implemented for nlsys") + + # Nonlinear systems require explicit time limits + T = 10 + timepts = np.linspace(0, T) + else: + # Linear systems figure things out on their own + T = None + timepts = np.linspace(0, 10) # for input_output_response + + # Save up the keyword arguments + kwargs = dict( + plot_inputs=plot_inputs, plot_outputs=plot_outputs, transpose=transpose, + combine_signals=combine_signals, combine_traces=combine_traces) + + # Create the response + if fcn is ct.input_output_response and \ + not isinstance(sys, ct.NonlinearIOSystem): + # Skip transfer functions and other non-state space systems + return None + if fcn in [ct.input_output_response, ct.forced_response]: + U = np.zeros((sys.ninputs, timepts.size)) + for i in range(sys.ninputs): + U[i] = np.cos(timepts * i + i) + args = [timepts, U] + + elif fcn == ct.initial_response: + args = [T, np.ones(sys.nstates)] # T, X0 + + elif not isinstance(sys, ct.lti.LTI): + args = [T] # nonlinear systems require final time + + else: # step, initial, impulse responses + args = [] + + # Create a new figure (in case previous one is of the same size) and plot + if not clear: + plt.figure() + response = fcn(sys, *args) + + # Look for cases where there are no data to plot + if not plot_outputs and ( + plot_inputs is False or response.ninputs == 0 or + plot_inputs is None and response.plot_inputs is False): + with pytest.raises(ValueError, match=".* no data to plot"): + out = response.plot(**kwargs) + return None + elif not plot_outputs and plot_inputs == 'overlay': + with pytest.raises(ValueError, match="can't overlay inputs"): + out = response.plot(**kwargs) + return None + elif plot_inputs in [True, 'overlay'] and response.ninputs == 0: + with pytest.raises(ValueError, match=".* but no inputs"): + out = response.plot(**kwargs) + return None + + out = response.plot(**kwargs) + + # TODO: add some basic checks here # Add additional data (and provide infon in the title) - newsys = ct.rss(4, nout, nin) - out = ct.step_response(newsys, stepresp.time[-1]).plot( - plot_inputs=plot_inputs, transpose=transpose) + if second_system: + newsys = ct.rss( + sys.nstates, sys.noutputs, sys.ninputs, strictly_proper=True) + if fcn not in [ct.initial_response, ct.forced_response, + ct.input_output_response] and \ + isinstance(sys, ct.lti.LTI): + # Reuse the previously computed time to make plots look nicer + fcn(newsys, *args, T=response.time[-1]).plot(**kwargs) + else: + # Compute and plot new response (time is one of the arguments) + fcn(newsys, *args).plot(**kwargs) + + # TODO: add some basic checks here # Update the title so we can see what is going on fig = out[0, 0][0].axes.figure fig.suptitle( - fig._suptitle._text + f" [{nout}x{nin}, {plot_inputs=}, {transpose=}]", + fig._suptitle._text + + f" [{sys.noutputs}x{sys.ninputs}, cs={combine_signals}, " + f"ct={combine_traces}, pi={plot_inputs}, tr={transpose}]", fontsize='small') -@pytest.mark.parametrize("transpose", [True, False]) -def test_combine_signals(transpose): - sys = ct.rss(4, 2, 3) - stepresp = ct.step_response(sys) - stepresp.plot( - combine_signals=True, transpose=transpose, - title=f"Step response: combine_signals = True; transpose={transpose}") - - -@pytest.mark.parametrize("transpose", [True, False]) -def test_combine_traces(transpose): - sys = ct.rss(4, 2, 3) - stepresp = ct.step_response(sys) - stepresp.plot( - combine_traces=True, transpose=transpose, - title=f"Step response: combine_traces = True; transpose={transpose}") + # Get rid of the figure to free up memory + if clear: + plt.clf() -@pytest.mark.parametrize("transpose", [True, False]) -def test_combine_signals_traces(transpose): - sys = ct.rss(4, 5, 3) - stepresp = ct.step_response(sys) - stepresp.plot( - combine_signals=True, combine_traces=True, transpose=transpose, - title=f"Step response: combine_signals/traces = True;" + - f"transpose={transpose}") +def test_legend_map(): + 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") + response = ct.step_response(sys_mimo) + response.plot( + legend_map=np.array([['center', 'upper right'], + [None, 'center right']]), + plot_inputs=True, combine_signals=True, transpose=True, + title='MIMO step response with custom legend placement') def test_errors(): @@ -81,26 +162,39 @@ def test_errors(): # Start by clearing existing figures plt.close('all') - print ("Simple step responses") - for size in [(1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]: - for transpose in [False, True]: - for plot_inputs in [None, True, False, 'overlay']: - plt.figure() - test_simple_response( - *size, transpose=transpose, plot_inputs=plot_inputs) + # Define a set of systems to test + sys_siso = ct.tf2ss([1], [1, 2, 1], name="SISO") + 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") + + # Define and run a selected set of interesting tests + # def test_response_plots( + # fcn, sys, plot_inputs, plot_outputs, combine_signals, + # combine_traces, transpose, second_system, clear=True): + N, T, F = None, True, False + test_cases = [ + # response fcn system in out cs ct tr ss + (ct.step_response, sys_siso, N, T, F, F, F, F), # 1 + (ct.step_response, sys_siso, T, F, F, F, F, F), # 2 + (ct.step_response, sys_siso, T, T, F, F, F, T), # 3 + (ct.step_response, sys_siso, 'overlay', T, F, F, F, T), # 4 + (ct.step_response, sys_mimo, F, T, F, F, F, F), # 5 + (ct.step_response, sys_mimo, T, T, F, F, F, F), # 6 + (ct.step_response, sys_mimo, 'overlay', T, F, F, F, F), # 7 + (ct.step_response, sys_mimo, T, T, T, F, F, F), # 8 + (ct.step_response, sys_mimo, T, T, T, T, F, F), # 9 + (ct.step_response, sys_mimo, T, T, F, F, T, F), # 10 + (ct.step_response, sys_mimo, T, T, T, F, T, F), # 11 + (ct.step_response, sys_mimo, 'overlay', T, T, F, T, F), # 12 + (ct.forced_response, sys_mimo, N, T, T, F, T, F), # 13 + (ct.forced_response, sys_mimo, 'overlay', T, F, F, F, F), # 14 + ] + for args in test_cases: + test_response_plots(*args, clear=F) - print ("Combine signals") - for transpose in [False, True]: - plt.figure() - test_combine_signals(transpose) - - print ("Combine traces") - for transpose in [False, True]: - plt.figure() - test_combine_traces(transpose) - - print ("Combine signals and traces") - for transpose in [False, True]: - plt.figure() - test_combine_signals_traces(transpose) + # + # Run a few more special cases to show off capabilities + # + test_legend_map() # show ability to set legend location diff --git a/control/timeplot.py b/control/timeplot.py index a4953c12f..d775d1805 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -18,7 +18,7 @@ # [i] Multi-trace graphs using different line styles # [i] Plotting function return Line2D elements # [i] Axis labels/legends based on what is plotted (siso, mimo, multi-trace) -# [ ] Ability to select (index) output and/or trace (and time?) +# [x] Ability to select (index) output and/or trace (and time?) # [i] Legends should not contain redundant information (nor appear redundantly) import numpy as np @@ -53,7 +53,7 @@ # Plot the input/output response of a system def ioresp_plot( data, ax=None, plot_inputs=None, plot_outputs=True, transpose=False, - combine_traces=False, combine_signals=False, legend_spec=None, + combine_traces=False, combine_signals=False, legend_map=None, legend_loc=None, add_initial_zero=True, title=None, relabel=True, **kwargs): """Plot the time response of an input/output system. @@ -111,14 +111,14 @@ def ioresp_plot( are added. If set to `False`, just plot new data on existing axes. time_label : str, optional Label to use for the time axis. - legend_spec : array of str, option + legend_map : array of str, option Location of the legend for multi-trace 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_spec is None. + value is used if legend_map is None. add_initial_zero : bool Add an initial point of zero at the first time point for all inputs. This is useful when the initial value of the input is @@ -216,7 +216,13 @@ def ioresp_plot( ntraces = max(1, data.ntraces) # treat data.ntraces == 0 as 1 trace if ninputs == 0 and noutputs == 0: raise ValueError( - "plot_inputs and plot_outputs both True; no data to plot") + "plot_inputs and plot_outputs both False; no data to plot") + elif plot_inputs == 'overlay' and noutputs == 0: + raise ValueError( + "can't overlay inputs with no outputs") + elif plot_inputs in [True, 'overlay'] and data.ninputs == 0: + raise ValueError( + "input plotting requested but no inputs in time response data") # Figure how how many rows and columns to use + offsets for inputs/outputs if plot_inputs == 'overlay' and not combine_signals: @@ -226,8 +232,8 @@ def ioresp_plot( elif combine_signals: nrows = int(plot_outputs) # Start with outputs nrows += int(plot_inputs == True) # Add plot for inputs if needed - noutput_axes = 1 if plot_outputs else 0 - ninput_axes = 1 if plot_inputs else 0 + noutput_axes = 1 if plot_outputs and plot_inputs is True else 0 + ninput_axes = 1 if plot_inputs is True else 0 else: nrows = noutputs + ninputs # Plot inputs separately noutput_axes = noutputs if plot_outputs else 0 @@ -321,7 +327,10 @@ def ioresp_plot( # Reshape the inputs and outputs for uniform indexing outputs = data.y.reshape(data.noutputs, ntraces, -1) - inputs = data.u.reshape(data.ninputs, ntraces, -1) + if data.u is None or not plot_inputs: + inputs = None + else: + inputs = data.u.reshape(data.ninputs, ntraces, -1) # Create a list of lines for the output out = np.empty((noutputs + ninputs, ntraces), dtype=object) @@ -430,7 +439,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): if ntraces > 1 and not combine_traces: for trace in range(ntraces): with plt.rc_context(_timeplot_rcParams): - ax_outputs[0, trace].set_title( + ax_array[0, trace].set_title( f"Trace {trace}" if data.trace_labels is None else data.trace_labels[trace]) @@ -454,7 +463,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # # Create legends # - # Legends can be placed manually by passing a legend_spec array that + # Legends can be placed manually by passing a legend_map 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). @@ -472,21 +481,23 @@ def _make_line_label(signal_index, signal_labels, trace_index): # # Figure out where to put legends - if legend_spec is None: + if legend_map is None: legend_map = np.full(ax_array.shape, None, dtype=object) if legend_loc == None: legend_loc = 'center right' if transpose: if (combine_signals or plot_inputs == 'overlay') and combine_traces: # Put a legend in each plot for inputs and outputs - legend_map[0, ninput_axes] = legend_loc + if plot_outputs is True: + legend_map[0, ninput_axes] = legend_loc if plot_inputs is True: legend_map[0, 0] = legend_loc elif combine_signals: # Put a legend in rightmost input/output plot - legend_map[0, ninput_axes] = legend_loc if plot_inputs is True: legend_map[0, 0] = legend_loc + if plot_outputs is True: + legend_map[0, ninput_axes] = legend_loc elif plot_inputs == 'overlay': # Put a legend on the top of each column for i in range(ntraces): @@ -500,12 +511,14 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: # regular layout if (combine_signals or plot_inputs == 'overlay') and combine_traces: # Put a legend in each plot for inputs and outputs - legend_map[0, -1] = legend_loc + if plot_outputs is True: + legend_map[0, -1] = legend_loc if plot_inputs is True: legend_map[noutput_axes, -1] = legend_loc elif combine_signals: # Put a legend in rightmost input/output plot - legend_map[0, -1] = legend_loc + if plot_outputs is True: + legend_map[0, -1] = legend_loc if plot_inputs is True: legend_map[noutput_axes, -1] = legend_loc elif plot_inputs == 'overlay': diff --git a/control/timeresp.py b/control/timeresp.py index b1a03d681..210221776 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1356,7 +1356,7 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, from .statesp import _convert_to_statespace # Create the time and input vectors - if T is None or np.asarray(T).size == 1 and isinstance(sys, LTI): + if T is None or np.asarray(T).size == 1: T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=True) T = np.atleast_1d(T).reshape(-1) if T.ndim != 1 and len(T) < 2: @@ -1370,7 +1370,7 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, "with given X0.") # Convert to state space so that we can simulate - if sys.nstates is None: + if isinstance(sys, LTI) and sys.nstates is None: sys = _convert_to_statespace(sys) # Set up arrays to handle the output @@ -1732,10 +1732,7 @@ def initial_response(sys, T=None, X0=0, output=None, T_num=None, # Create the time and input vectors if T is None or np.asarray(T).size == 1: - if isinstance(sys, LTI): - T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=False) - elif T_num is not None: - T = np.linspace(0, T, T_num) + T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=False) T = np.atleast_1d(T).reshape(-1) if T.ndim != 1 and len(T) < 2: raise ValueError("invalid value of T for this type of system") @@ -1857,7 +1854,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, from .lti import LTI # Create the time and input vectors - if T is None or np.asarray(T).size == 1 and isinstance(sys, LTI): + if T is None or np.asarray(T).size == 1: T = _default_time_vector(sys, N=T_num, tfinal=T, is_step=False) T = np.atleast_1d(T).reshape(-1) if T.ndim != 1 and len(T) < 2: @@ -2106,6 +2103,20 @@ def _ideal_tfinal_and_dt(sys, is_step=True): def _default_time_vector(sys, N=None, tfinal=None, is_step=True): """Returns a time vector that has a reasonable number of points. if system is discrete-time, N is ignored """ + from .lti import LTI + + # For non-LTI system, need tfinal + if not isinstance(sys, LTI): + if tfinal is None: + raise ValueError( + "can't automatically compute T for non-LTI system") + elif isinstance(tfinal, (int, float, np.number)): + if N is None: + return np.linspace(0, tfinal) + else: + return np.linspace(0, tfinal, N) + else: + return tfinal # Assume we got passed something appropriate N_max = 5000 N_min_ct = 100 # min points for cont time systems From 3f7e27588558a2df013e6281de7dd3991a3c3725 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 29 Jun 2023 14:43:21 -0700 Subject: [PATCH 0330/1025] add user documentation (with figures) + combine_traces function --- control/tests/timeplot_test.py | 45 ++++++++++- control/timeplot.py | 113 +++++++++++++++++++++++--- control/timeresp.py | 23 ++++-- doc/Makefile | 5 +- doc/index.rst | 1 + doc/plotting.rst | 126 +++++++++++++++++++++++++++++ doc/timeplot-mimo_ioresp-mt_tr.png | Bin 0 -> 62546 bytes doc/timeplot-mimo_ioresp-ov_lm.png | Bin 0 -> 57319 bytes doc/timeplot-mimo_step-default.png | Bin 0 -> 31828 bytes doc/timeplot-mimo_step-pi_cs.png | Bin 0 -> 31853 bytes 10 files changed, 295 insertions(+), 18 deletions(-) create mode 100644 doc/plotting.rst create mode 100644 doc/timeplot-mimo_ioresp-mt_tr.png create mode 100644 doc/timeplot-mimo_ioresp-ov_lm.png create mode 100644 doc/timeplot-mimo_step-default.png create mode 100644 doc/timeplot-mimo_step-pi_cs.png diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 345634084..5a0afe97b 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -7,6 +7,8 @@ import matplotlib.pyplot as plt import numpy as np +from .conftest import slycotonly + # Detailed test of (almost) all functionality # (uncomment rows for developmental testing, but otherwise takes too long) @pytest.mark.parametrize( @@ -123,6 +125,7 @@ def test_response_plots( plt.clf() +@slycotonly def test_legend_map(): sys_mimo = ct.tf2ss( [[[1], [0.1]], [[0.2], [1]]], @@ -194,7 +197,47 @@ def test_errors(): test_response_plots(*args, clear=F) # - # Run a few more special cases to show off capabilities + # Run a few more special cases to show off capabilities (and save some + # of them for use in the documentation). # test_legend_map() # show ability to set legend location + + # Basic step response + plt.figure() + ct.step_response(sys_mimo).plot() + plt.savefig('timeplot-mimo_step-default.png') + + # Step response with plot_inputs, combine_signals + plt.figure() + ct.step_response(sys_mimo).plot( + plot_inputs=True, combine_signals=True, + title="Step response for 2x2 MIMO system " + + "[plot_inputs, combine_signals]") + plt.savefig('timeplot-mimo_step-pi_cs.png') + + # Input/output response with overlaid inputs, legend_map + plt.figure() + timepts = np.linspace(0, 10, 100) + U = np.vstack([np.sin(timepts), np.cos(2*timepts)]) + ct.input_output_response(sys_mimo, timepts, U).plot( + plot_inputs='overlay', + legend_map=np.array([['lower right'], ['lower right']]), + title="I/O response for 2x2 MIMO system " + + "[plot_inputs='overlay', legend_map]") + plt.savefig('timeplot-mimo_ioresp-ov_lm.png') + + # Multi-trace plot, transpose + plt.figure() + U = np.vstack([np.sin(timepts), np.cos(2*timepts)]) + resp1 = ct.input_output_response(sys_mimo, timepts, U) + + U = np.vstack([np.cos(2*timepts), np.sin(timepts)]) + resp2 = ct.input_output_response(sys_mimo, timepts, U) + + ct.combine_traces( + [resp1, resp2], trace_labels=["Scenario #1", "Scenario #2"]).plot( + transpose=True, + title="I/O responses for 2x2 MIMO system, multiple traces " + "[transpose]") + plt.savefig('timeplot-mimo_ioresp-mt_tr.png') diff --git a/control/timeplot.py b/control/timeplot.py index d775d1805..7f156ae5d 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -28,7 +28,7 @@ from . import config -__all__ = ['ioresp_plot'] +__all__ = ['ioresp_plot', 'combine_traces'] # Default font dictionary _timeplot_rcParams = mpl.rcParams.copy() @@ -71,11 +71,11 @@ def ioresp_plot( 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 (data.ntraces, - data.ninputs + data.inputs), but if combine_traces == True then - only one row is needed and if combine_signals == True then only one - or two columns are needed (depending on plot_inputs and - plot_outputs). + created. The default shape of the array should be (noutputs + + ninputs, ntraces), but if `combine_traces` is set to `True` then + only one row is needed and if `combine_signals` is set to `True` + then only one or two columns are needed (depending on plot_inputs + and plot_outputs). plot_inputs : bool or str, optional Sets how and where to plot the inputs: * False: don't plot the inputs @@ -121,8 +121,7 @@ def ioresp_plot( value is used if legend_map is None. add_initial_zero : bool Add an initial point of zero at the first time point for all - inputs. This is useful when the initial value of the input is - nonzero (for example in a step input). Default is True. + inputs with type 'step'. Default is True. trace_cycler: :class:`~matplotlib.Cycler` Line style cycle to use for traces. Default = ['-', '--', ':', '-.']. @@ -367,7 +366,8 @@ def _make_line_label(signal_index, signal_labels, trace_index): for i in range(ninputs): label = _make_line_label(i, data.input_labels, trace) - if add_initial_zero: # start trace from the origin + if add_initial_zero and data.trace_types \ + and data.trace_types[i] == 'step': x = np.hstack([np.array([data.time[0]]), data.time]) y = np.hstack([np.array([0]), inputs[i][trace]]) else: @@ -603,3 +603,98 @@ def _make_line_label(signal_index, signal_labels, trace_index): fig.suptitle(new_title) return out + + +def combine_traces(trace_list, trace_labels=None, title=None): + """Combine multiple individual time responses into a multi-trace response. + + This function combines multiple instances of :class:`TimeResponseData` + into a multi-trace :class:`TimeResponseData` object. + + Parameters + ---------- + trace_list : list of :class:`TimeResponseData` objects + Traces to be combined. + 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. + + Returns + ------- + data : :class:`TimeResponseData` + Multi-trace input/output data. + + """ + from .timeresp import TimeResponseData + + # Save the first trace as the base case + base = trace_list[0] + + # Process keywords + title = base.title if title is None else title + + # Figure out the size of the data (and check for consistency) + ntraces = max(1, base.ntraces) + + # Initial pass through trace list to count things up and do error checks + for trace in trace_list[1:]: + # Make sure the time vector is the same + if not np.allclose(base.t, trace.t): + raise ValueError("all traces must have the same time vector") + + # Make sure the dimensions are all the same + if base.ninputs != trace.ninputs or base.noutputs != trace.noutputs \ + or base.nstates != trace.nstates: + raise ValuError("all traces must have the same number of " + "inputs, outputs, and states") + + ntraces += max(1, trace.ntraces) + + # Create data structures for the new time response data object + inputs = np.empty((base.ninputs, ntraces, base.t.size)) + outputs = np.empty((base.noutputs, ntraces, base.t.size)) + states = np.empty((base.nstates, ntraces, base.t.size)) + + # See whether we should create labels or not + if trace_labels is None: + generate_trace_labels = True + trace_labels = [] + elif len(trace_labels) != ntraces: + raise ValueError( + "number of trace labels does not match number of traces") + else: + generate_trace_labels = False + + offset = 0 + trace_types = [] + for trace in trace_list: + if trace.ntraces == 0: + # Single trace + inputs[:, offset, :] = trace.u + outputs[:, offset, :] = trace.y + states[:, offset, :] = trace.x + if generate_trace_labels: + trace_labels.append(trace.title) + if trace.trace_types is not None: + trace_types.append(trace.types[0]) + offset += 1 + else: + for i in range(trace.ntraces): + inputs[:, offset, :] = trace.u[:, i, :] + outputs[:, offset, :] = trace.y[:, i, :] + states[:, offset, :] = trace.x[:, i, :] + if generate_trace_labels and trace.trace_labels is not None: + trace_labels.append(trace.trace_labels) + else: + trace_labels.append(trace.title, f", trace {i}") + if trace.trace_types is not None: + trace_types.append(trace.trace_types) + offset += trace.ntraces + + return TimeResponseData( + base.t, outputs, states, inputs, issiso=base.issiso, + output_labels=base.output_labels, input_labels=base.input_labels, + state_labels=base.state_labels, title=title, transpose=base.transpose, + return_x=base.return_x, squeeze=base.squeeze, sysname=base.sysname, + trace_labels=trace_labels, trace_types=trace_types, + plot_inputs=base.plot_inputs) diff --git a/control/timeresp.py b/control/timeresp.py index 210221776..ffb495eb2 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -177,14 +177,18 @@ class TimeResponseData: Whether or not to plot the inputs by default (can be overridden in the plot() method) - ntraces : int + ntraces : int, optional Number of independent traces represented in the input/output - response. If ntraces is 0 then the data represents a single trace - with the trace index surpressed in the data. + response. If ntraces is 0 (default) then the data represents a + single trace with the trace index surpressed in the data. - trace_labels : array of string + trace_labels : array of string, optional Labels to use for traces (set to sysname it ntraces is 0) + trace_labels : array of string, optional + Type of trace. Currently only 'step' is supported, which controls + the way in which the signal is plotted. + Notes ----- 1. For backward compatibility with earlier versions of python-control, @@ -222,7 +226,8 @@ def __init__( self, time, outputs, states=None, inputs=None, issiso=None, output_labels=None, state_labels=None, input_labels=None, title=None, transpose=False, return_x=False, squeeze=None, - multi_trace=False, trace_labels=None, plot_inputs=True, + multi_trace=False, trace_labels=None, trace_types=None, + plot_inputs=True, sysname=None ): """Create an input/output time response object. @@ -423,6 +428,7 @@ def __init__( # Check and store trace labels, if present self.trace_labels = _process_labels( trace_labels, "trace", self.ntraces) + self.trace_types = trace_types # Figure out if the system is SISO if issiso is None: @@ -1382,13 +1388,15 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, # Simulate the response for each input trace_labels = [] + trace_types = [] for i in range(sys.ninputs): # If input keyword was specified, only simulate for that input if isinstance(input, int) and i != input: continue - # Save a label for this plot + # Save a label and type for this plot trace_labels.append(f"From {sys.input_labels[i]}") + trace_types.append('step') # Create a set of single inputs system for simulation U = np.zeros((sys.ninputs, T.size)) @@ -1415,7 +1423,8 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, output_labels=output_labels, input_labels=input_labels, state_labels=sys.state_labels, title="Step response for " + sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze, - sysname=sys.name, trace_labels=trace_labels, plot_inputs=False) + sysname=sys.name, trace_labels=trace_labels, + trace_types=trace_types, plot_inputs=False) def step_info(sysdata, T=None, T_num=None, yfinal=None, diff --git a/doc/Makefile b/doc/Makefile index 6e1012343..88a1b7bad 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -15,10 +15,13 @@ help: .PHONY: help Makefile # Rules to create figures -FIGS = classes.pdf +FIGS = classes.pdf timeplot-mimo_step-pi_cs.png classes.pdf: classes.fig fig2dev -Lpdf $< $@ +timeplot-mimo_step-pi_cs.png: ../control/tests/timeplot_test.py + PYTHONPATH=.. python $< + # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). html pdf clean doctest: Makefile $(FIGS) diff --git a/doc/index.rst b/doc/index.rst index 98b184286..ec556e7ce 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -26,6 +26,7 @@ implements basic operations for analysis and design of feedback control systems. conventions control classes + plotting matlab flatsys iosys diff --git a/doc/plotting.rst b/doc/plotting.rst new file mode 100644 index 000000000..cc9908e70 --- /dev/null +++ b/doc/plotting.rst @@ -0,0 +1,126 @@ +.. _plotting-module: + +************* +Plotting data +************* + +The Python Control Toolbox contains a number of functions for plotting +input/output responses in the time and frequency domain, root locus +diagrams, and other standard charts used in control system analysis. While +some legacy functions do both analysis and plotting, the standard pattern +used in the toolbox is to provide a function that performs the basic +computation (e.g., time or frequency response) and returns and object +representing the output data. A separate plotting function, typically +ending in `_plot` is then used to plot the data. The plotting function is +also available via the `plot()` method of the analysis object, allowing the +following type of calls:: + + step_response(sys).plot() + frequency_response(sys).plot() # implementation pending + nyquist_curve(sys).plot() # implementation pending + rootlocus_curve(sys).plot() # implementation pending + +Time response data +================== + +Input/output time responses are produced one of several python-control +functions: :func:`~control.forced_response`, +:func:`~control.impulse_response`, :func:`~control.initial_response`, +:func:`~control.input_output_response`, :func:`~control.step_response`. +Each of these return a :class:`~control.TimeResponseData` object, which +contains the time, input, state, and output vectors associated with the +simulation. Time response data can be plotted with the +:func:`~control.time_response_plot` function, which is also available as +the :func:`~control.TimeResponseData.plot` method. For example, the step +response for a two-input, two-output can be plotted using the commands:: + + 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") + response = step_response(sys) + response.plot() + +which produces the following plot: + +.. image:: timeplot-mimo_step-default.png + +The :class:`~control.TimeResponseData` object can also be used to access +the data from the simulation:: + + time, outputs, inputs = response.time, response.outputs, response.inputs + fig, axs = plt.subplots(2, 2) + for i in range(2): + for j in range(2): + axs[i, j].plot(time, outputs[i, j]) + +A number of options are available in the `plot` method to customize the +appearance of input output data. For data produced by the +:func:`~control.impulse_response` and :func:`~control.step_response` +commands, the inputs are not shown. This behavior can be changed using the +`plot_inputs` keyword. It is also possible to combine multiple traces onto +a single graph, using either the `combine_signals` keyword (which puts all +outputs out a single graph and all inputs on a single graph) or the +`combine_traces` keyword, which puts different traces (e.g., corresponding +to step inputs in different channels) on the same graph, with appropriate +labeling via a legend on selected axes. + +For example, using `plot_input=True` and `combine_signals=True` yields the +following plot:: + + ct.step_response(sys_mimo).plot( + plot_inputs=True, combine_signals=True, + title="Step response for 2x2 MIMO system " + + "[plot_inputs, combine_signals]") + +.. image:: timeplot-mimo_step-pi_cs.png + +Input/output response plots created with either the +:func:`~control.forced_response` or the +:func:`~control.input_output_response` include the input signals by +default. These can be plotted on separate axes, but also "overlaid" on the +output axes (useful when the input and output signals are being compared to +each other). The following plot shows the use of `plot_inputs='overlay'` +as well as the ability to reposition the legends using the `legend_map` +keyword:: + + timepts = np.linspace(0, 10, 100) + U = np.vstack([np.sin(timepts), np.cos(2*timepts)]) + ct.input_output_response(sys_mimo, timepts, U).plot( + plot_inputs='overlay', + legend_map=np.array([['lower right'], ['lower right']]), + title="I/O response for 2x2 MIMO system " + + "[plot_inputs='overlay', legend_map]") + +.. image:: timeplot-mimo_ioresp-ov_lm.png + +Another option that is available is to use the `transpose` keyword so that +instead of plotting the outputs on the top and inputs on the bottom, the +inputs are plotted on the left and outputs on the right, as shown in the +following figure:: + + U1 = np.vstack([np.sin(timepts), np.cos(2*timepts)]) + resp1 = ct.input_output_response(sys_mimo, timepts, U1) + + U2 = np.vstack([np.cos(2*timepts), np.sin(timepts)]) + resp2 = ct.input_output_response(sys_mimo, timepts, U2) + + ct.combine_traces( + [resp1, resp2], trace_labels=["Scenario #1", "Scenario #2"]).plot( + transpose=True, + title="I/O responses for 2x2 MIMO system, multiple traces " + "[transpose]") + +.. image:: timeplot-mimo_ioresp-mt_tr.png + +This figure also illustrates the ability to create "multi-trace" plots +using the :func:`~control.combine_traces` function. + + +Plotting functions +================== + +.. autosummary:: + :toctree: generated/ + + ~control.ioresp_plot + ~control.combine_traces diff --git a/doc/timeplot-mimo_ioresp-mt_tr.png b/doc/timeplot-mimo_ioresp-mt_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..e21ef1db42fdf1e13ea798a42364421c5e19c5cb GIT binary patch literal 62546 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 MrmU@0q+k*JUl2~)(f|Me literal 0 HcmV?d00001 diff --git a/doc/timeplot-mimo_ioresp-ov_lm.png b/doc/timeplot-mimo_ioresp-ov_lm.png new file mode 100644 index 0000000000000000000000000000000000000000..cdeb800e0625753950c6c5f2d6b772b680d0a7b4 GIT binary patch literal 57319 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ⅅlIBBTDGZV!fxIbTco<7HCbC+bn)+Dnz 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 E0WpOWVgLXD literal 0 HcmV?d00001 diff --git a/doc/timeplot-mimo_step-default.png b/doc/timeplot-mimo_step-default.png new file mode 100644 index 0000000000000000000000000000000000000000..877764fbf109f49fb1a5bda17bbed361f32ef92c GIT binary patch literal 31828 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 Date: Thu, 29 Jun 2023 21:23:06 -0700 Subject: [PATCH 0331/1025] updated unit tests (coverage) --- control/tests/timeplot_test.py | 227 +++++++++++++++++++++++++++++---- control/timeplot.py | 113 +++++++++++----- doc/plotting.rst | 1 + 3 files changed, 280 insertions(+), 61 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 5a0afe97b..4edc87863 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -7,10 +7,12 @@ import matplotlib.pyplot as plt import numpy as np -from .conftest import slycotonly +from control.tests.conftest import slycotonly # Detailed test of (almost) all functionality -# (uncomment rows for developmental testing, but otherwise takes too long) +# +# The commented out rows lead to very long testing times => these should be +# used only for developmental testing and not day-to-day testing. @pytest.mark.parametrize( "sys", [ # ct.rss(1, 1, 1, strictly_proper=True, name="rss"), @@ -22,18 +24,52 @@ # ct.drss(2, 2, 2, name="drss"), # ct.rss(2, 2, 3, strictly_proper=True, name="rss"), ]) -@pytest.mark.parametrize("transpose", [True, False]) -@pytest.mark.parametrize("plot_inputs", [None, True, False, 'overlay']) -@pytest.mark.parametrize("plot_outputs", [True, False]) -@pytest.mark.parametrize("combine_signals", [True, False]) -@pytest.mark.parametrize("combine_traces", [True, False]) -@pytest.mark.parametrize("second_system", [False, True]) -@pytest.mark.parametrize("fcn", [ - ct.step_response, ct.impulse_response, ct.initial_response, - ct.forced_response, ct.input_output_response]) +# @pytest.mark.parametrize("transpose", [False, True]) +# @pytest.mark.parametrize("plot_inputs", [False, None, True, 'overlay']) +# @pytest.mark.parametrize("plot_outputs", [True, False]) +# @pytest.mark.parametrize("combine_signals", [False, True]) +# @pytest.mark.parametrize("combine_traces", [False, True]) +# @pytest.mark.parametrize("second_system", [False, True]) +# @pytest.mark.parametrize("fcn", [ +# ct.step_response, ct.impulse_response, ct.initial_response, +# ct.forced_response]) +@pytest.mark.parametrize( # combinatorial-style test (faster) + "fcn, pltinp, pltout, cmbsig, cmbtrc, trpose, secsys", + [(ct.step_response, False, True, False, False, False, False), + (ct.step_response, None, True, False, False, False, False), + (ct.step_response, True, True, False, False, False, False), + (ct.step_response, 'overlay', True, False, False, False, False), + (ct.step_response, 'overlay', True, True, False, False, False), + (ct.step_response, 'overlay', True, False, True, False, False), + (ct.step_response, 'overlay', True, False, False, True, False), + (ct.step_response, 'overlay', True, False, False, False, True), + (ct.step_response, False, False, False, False, False, False), + (ct.step_response, None, False, False, False, False, False), + (ct.step_response, 'overlay', False, False, False, False, False), + (ct.step_response, True, True, False, True, False, False), + (ct.step_response, True, True, False, False, False, True), + (ct.step_response, True, True, False, True, False, True), + (ct.step_response, True, True, True, False, True, True), + (ct.step_response, True, True, False, True, True, True), + (ct.impulse_response, False, True, True, False, False, False), + (ct.initial_response, None, True, False, False, False, False), + (ct.initial_response, False, True, False, False, False, False), + (ct.initial_response, True, True, False, False, False, False), + (ct.forced_response, True, True, False, False, False, False), + (ct.forced_response, None, True, False, False, False, False), + (ct.forced_response, False, True, False, False, False, False), + (ct.forced_response, True, True, True, False, False, False), + (ct.forced_response, True, True, True, True, False, False), + (ct.forced_response, True, True, True, True, True, False), + (ct.forced_response, True, True, True, True, True, True), + (ct.forced_response, 'overlay', True, True, True, False, True), + (ct.input_output_response, + True, True, False, False, False, False), + ]) + def test_response_plots( - fcn, sys, plot_inputs, plot_outputs, combine_signals, combine_traces, - transpose, second_system, clear=True): + fcn, sys, pltinp, pltout, cmbsig, cmbtrc, + trpose, secsys, clear=True): # Figure out the time range to use and check some special cases if not isinstance(sys, ct.lti.LTI): if fcn == ct.impulse_response: @@ -42,6 +78,10 @@ def test_response_plots( # Nonlinear systems require explicit time limits T = 10 timepts = np.linspace(0, T) + + elif isinstance(sys, ct.TransferFunction) and fcn == ct.initial_response: + pytest.skip("initial response not tested for tf") + else: # Linear systems figure things out on their own T = None @@ -49,8 +89,8 @@ def test_response_plots( # Save up the keyword arguments kwargs = dict( - plot_inputs=plot_inputs, plot_outputs=plot_outputs, transpose=transpose, - combine_signals=combine_signals, combine_traces=combine_traces) + plot_inputs=pltinp, plot_outputs=pltout, transpose=trpose, + combine_signals=cmbsig, combine_traces=cmbtrc) # Create the response if fcn is ct.input_output_response and \ @@ -78,27 +118,44 @@ def test_response_plots( response = fcn(sys, *args) # Look for cases where there are no data to plot - if not plot_outputs and ( - plot_inputs is False or response.ninputs == 0 or - plot_inputs is None and response.plot_inputs is False): + if not pltout and ( + 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) return None - elif not plot_outputs and plot_inputs == 'overlay': + elif not pltout and pltinp == 'overlay': with pytest.raises(ValueError, match="can't overlay inputs"): out = response.plot(**kwargs) return None - elif plot_inputs in [True, 'overlay'] and response.ninputs == 0: + elif pltinp in [True, 'overlay'] and response.ninputs == 0: with pytest.raises(ValueError, match=".* but no inputs"): out = response.plot(**kwargs) return None out = response.plot(**kwargs) - # TODO: add some basic checks here - - # Add additional data (and provide infon in the title) - if second_system: + # Make sure number of plots is correct + if pltinp is None: + if fcn in [ct.forced_response, ct.input_output_response]: + pltinp = True + else: + pltinp = False + ntraces = max(1, response.ntraces) + nlines = (response.ninputs if pltinp else 0) * ntraces + \ + (response.noutputs if pltout else 0) * ntraces + assert out.size == nlines + + # Make sure all of the outputs are of the right type + for ax_lines in np.nditer(out, flags=["refs_ok"]): + for line in ax_lines.item(): + assert isinstance(line, mpl.lines.Line2D) + + # Save the old axes to compare later + old_axes = plt.gcf().get_axes() + + # Add additional data (and provide info in the title) + if secsys: newsys = ct.rss( sys.nstates, sys.noutputs, sys.ninputs, strictly_proper=True) if fcn not in [ct.initial_response, ct.forced_response, @@ -110,14 +167,20 @@ def test_response_plots( # Compute and plot new response (time is one of the arguments) fcn(newsys, *args).plot(**kwargs) - # TODO: add some basic checks here + # Make sure we have the same axes + new_axes = plt.gcf().get_axes() + assert new_axes == old_axes + + # Make sure every axes has more than one line + for ax in new_axes: + 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.suptitle( fig._suptitle._text + - f" [{sys.noutputs}x{sys.ninputs}, cs={combine_signals}, " - f"ct={combine_traces}, pi={plot_inputs}, tr={transpose}]", + f" [{sys.noutputs}x{sys.ninputs}, cs={cmbsig}, " + f"ct={cmbtrc}, pi={pltinp}, tr={trpose}]", fontsize='small') # Get rid of the figure to free up memory @@ -125,6 +188,53 @@ def test_response_plots( plt.clf() +def test_axes_setup(): + get_axes = ct.timeplot.get_axes + + sys_2x3 = ct.rss(4, 2, 3) + sys_2x3b = ct.rss(4, 2, 3) + sys_3x2 = ct.rss(4, 3, 2) + 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_axes(out1), get_axes(out2)) + 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() + np.testing.assert_equal( + get_axes(out1).reshape(-1), get_axes(out2).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_axes(out1).reshape(-1).tolist() + ax2_list = get_axes(out2).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_axes(out1)) + np.testing.assert_equal(get_axes(out1), get_axes(out3)) + 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_axes(out)) + sys_2x3 = ct.rss(4, 2, 3) + sys_2x3b = ct.rss(4, 2, 3) + sys_3x2 = ct.rss(4, 3, 2) + sys_3x1 = ct.rss(4, 3, 1) + + @slycotonly def test_legend_map(): sys_mimo = ct.tf2ss( @@ -138,6 +248,68 @@ def test_legend_map(): title='MIMO step response with custom legend placement') +def test_combine_traces(): + sys_mimo = ct.rss(4, 2, 2) + timepts = np.linspace(0, 10, 100) + + # Combine two response with ntrace = 0 + U = np.vstack([np.sin(timepts), np.cos(2*timepts)]) + resp1 = ct.input_output_response(sys_mimo, timepts, U) + + U = np.vstack([np.cos(2*timepts), np.sin(timepts)]) + resp2 = ct.input_output_response(sys_mimo, timepts, U) + + combresp1 = ct.combine_traces([resp1, resp2]) + assert combresp1.ntraces == 2 + np.testing.assert_equal(combresp1.y[:, 0, :], resp1.y) + np.testing.assert_equal(combresp1.y[:, 1, :], resp2.y) + + # Combine two responses with ntrace != 0 + resp3 = ct.step_response(sys_mimo, timepts) + resp4 = ct.step_response(sys_mimo, timepts) + combresp2 = ct.combine_traces([resp3, resp4]) + assert combresp2.ntraces == resp3.ntraces + resp4.ntraces + np.testing.assert_equal(combresp2.y[:, 0:2, :], resp3.y) + np.testing.assert_equal(combresp2.y[:, 2:4, :], resp4.y) + + # Mixture + combresp3 = ct.combine_traces([resp1, resp2, resp3]) + assert combresp3.ntraces == resp3.ntraces + resp4.ntraces + np.testing.assert_equal(combresp3.y[:, 0, :], resp1.y) + np.testing.assert_equal(combresp3.y[:, 1, :], resp2.y) + np.testing.assert_equal(combresp3.y[:, 2:4, :], resp3.y) + assert combresp3.trace_types == [None, None] + resp3.trace_types + assert combresp3.trace_labels == \ + [resp1.title, resp2.title] + resp3.trace_labels + + # Rename the traces + labels = ["T1", "T2", "T3", "T4"] + combresp4 = ct.combine_traces([resp1, resp2, resp3], trace_labels=labels) + assert combresp4.trace_labels == labels + + # Automatically generated trace label names and types + resp5 = ct.step_response(sys_mimo, timepts) + resp5.title = "test" + resp5.trace_labels = None + resp5.trace_types = None + combresp5 = ct.combine_traces([resp1, resp5]) + assert combresp5.trace_labels == [resp1.title] + \ + ["test, trace 0", "test, trace 1"] + assert combresp4.trace_types == [None, None, 'step', 'step'] + + with pytest.raises(ValueError, match="must have the same number"): + resp = ct.step_response(ct.rss(4, 2, 3), timepts) + combresp = ct.combine_traces([resp1, resp]) + + with pytest.raises(ValueError, match="trace labels does not match"): + combresp = ct.combine_traces( + [resp1, resp2], trace_labels=["T1", "T2", "T3"]) + + with pytest.raises(ValueError, match="must have the same time"): + resp = ct.step_response(ct.rss(4, 2, 3), timepts/2) + combresp6 = ct.combine_traces([resp1, resp]) + + def test_errors(): sys = ct.rss(2, 1, 1) stepresp = ct.step_response(sys) @@ -150,7 +322,6 @@ def test_errors(): with pytest.raises(ValueError, match="unrecognized value"): stepresp.plot(plot_inputs='unknown') - if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing diff --git a/control/timeplot.py b/control/timeplot.py index 7f156ae5d..fe983dc53 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -100,9 +100,10 @@ def ioresp_plot( Returns ------- - out : list of Artist or list of list of Artist - Array of Artist objects for each line in the plot. The shape of - the array matches the plot style, + 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. Additional Parameters --------------------- @@ -605,7 +606,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): return out -def combine_traces(trace_list, trace_labels=None, title=None): +def combine_traces(response_list, trace_labels=None, title=None): """Combine multiple individual time responses into a multi-trace response. This function combines multiple instances of :class:`TimeResponseData` @@ -613,8 +614,8 @@ def combine_traces(trace_list, trace_labels=None, title=None): Parameters ---------- - trace_list : list of :class:`TimeResponseData` objects - Traces to be combined. + response_list : list of :class:`TimeResponseData` objects + Reponses to be combined. 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. @@ -628,7 +629,7 @@ def combine_traces(trace_list, trace_labels=None, title=None): from .timeresp import TimeResponseData # Save the first trace as the base case - base = trace_list[0] + base = response_list[0] # Process keywords title = base.title if title is None else title @@ -637,18 +638,19 @@ def combine_traces(trace_list, trace_labels=None, title=None): ntraces = max(1, base.ntraces) # Initial pass through trace list to count things up and do error checks - for trace in trace_list[1:]: + for response in response_list[1:]: # Make sure the time vector is the same - if not np.allclose(base.t, trace.t): - raise ValueError("all traces must have the same time vector") + if not np.allclose(base.t, response.t): + raise ValueError("all responses must have the same time vector") # Make sure the dimensions are all the same - if base.ninputs != trace.ninputs or base.noutputs != trace.noutputs \ - or base.nstates != trace.nstates: - raise ValuError("all traces must have the same number of " + if base.ninputs != response.ninputs or \ + base.noutputs != response.noutputs or \ + base.nstates != response.nstates: + raise ValueError("all responses must have the same number of " "inputs, outputs, and states") - ntraces += max(1, trace.ntraces) + ntraces += max(1, response.ntraces) # Create data structures for the new time response data object inputs = np.empty((base.ninputs, ntraces, base.t.size)) @@ -667,29 +669,41 @@ def combine_traces(trace_list, trace_labels=None, title=None): offset = 0 trace_types = [] - for trace in trace_list: - if trace.ntraces == 0: + for response in response_list: + if response.ntraces == 0: # Single trace - inputs[:, offset, :] = trace.u - outputs[:, offset, :] = trace.y - states[:, offset, :] = trace.x - if generate_trace_labels: - trace_labels.append(trace.title) - if trace.trace_types is not None: - trace_types.append(trace.types[0]) + inputs[:, offset, :] = response.u + outputs[:, offset, :] = response.y + states[:, offset, :] = response.x offset += 1 + + # Add on trace label and trace type + if generate_trace_labels: + trace_labels.append(response.title) + trace_types.append( + None if response.trace_types is None else response.types[0]) + else: - for i in range(trace.ntraces): - inputs[:, offset, :] = trace.u[:, i, :] - outputs[:, offset, :] = trace.y[:, i, :] - states[:, offset, :] = trace.x[:, i, :] - if generate_trace_labels and trace.trace_labels is not None: - trace_labels.append(trace.trace_labels) + # Save the data + for i in range(response.ntraces): + inputs[:, offset, :] = response.u[:, i, :] + outputs[:, offset, :] = response.y[:, i, :] + states[:, offset, :] = response.x[:, i, :] + + # Save the trace labels + if generate_trace_labels: + if response.trace_labels is not None: + trace_labels.append(response.trace_labels[i]) + else: + trace_labels.append(response.title + f", trace {i}") + + offset += 1 + + # Save the trace types + if response.trace_types is not None: + trace_types += response.trace_types else: - trace_labels.append(trace.title, f", trace {i}") - if trace.trace_types is not None: - trace_types.append(trace.trace_types) - offset += trace.ntraces + trace_types += [None] * response.ntraces return TimeResponseData( base.t, outputs, states, inputs, issiso=base.issiso, @@ -698,3 +712,36 @@ def combine_traces(trace_list, trace_labels=None, title=None): return_x=base.return_x, squeeze=base.squeeze, sysname=base.sysname, trace_labels=trace_labels, trace_types=trace_types, plot_inputs=base.plot_inputs) + + +# Create vectorized function to find axes from lines +def get_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 `ioresp_plot`. This is useful for + generating an axes array that can be passed to subsequent plotting + calls. + + Parameters + ---------- + line_array : array of list of Line2D + A 2D array with elements corresponding to a list of lines appearing + in an axes, matching the return type of a time response data plot. + + Returns + ------- + axes_array : arra of list of Axes + A 2D array with elements corresponding to the Axes assocated with + the lines in `line_array`. + + Notes + ----- + Only the first element of each array entry is used to determine the axes. + + """ + return _get_axes(line_array) + + +# Utility function used by get_axes +_get_axes = np.vectorize(lambda lines: lines[0].axes) diff --git a/doc/plotting.rst b/doc/plotting.rst index cc9908e70..c86d3d49a 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -124,3 +124,4 @@ Plotting functions ~control.ioresp_plot ~control.combine_traces + control.timeplot.get_axes From 6bb8b56afefaf0bcd6f6cb51136685ddd3208f6e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Jun 2023 13:35:37 -0700 Subject: [PATCH 0332/1025] change ioresp_plot to time_response_plot --- control/tests/kwargs_test.py | 2 +- control/tests/timeplot_test.py | 2 +- control/timeplot.py | 6 +++--- control/timeresp.py | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 9b66aef38..b29fa2fa5 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -186,7 +186,7 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): 'gangof4_plot': test_matplotlib_kwargs, 'input_output_response': test_unrecognized_kwargs, 'interconnect': interconnect_test.test_interconnect_exceptions, - 'ioresp_plot': timeplot_test.test_errors, + 'time_response_plot': timeplot_test.test_errors, 'linearize': test_unrecognized_kwargs, 'lqe': test_unrecognized_kwargs, 'lqr': test_unrecognized_kwargs, diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 4edc87863..97ca17b58 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -317,7 +317,7 @@ def test_errors(): stepresp.plot(unknown=None) with pytest.raises(TypeError, match="unrecognized keyword"): - ct.ioresp_plot(stepresp, unknown=None) + ct.time_response_plot(stepresp, unknown=None) with pytest.raises(ValueError, match="unrecognized value"): stepresp.plot(plot_inputs='unknown') diff --git a/control/timeplot.py b/control/timeplot.py index fe983dc53..4e8388a9b 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -28,7 +28,7 @@ from . import config -__all__ = ['ioresp_plot', 'combine_traces'] +__all__ = ['time_response_plot', 'combine_traces'] # Default font dictionary _timeplot_rcParams = mpl.rcParams.copy() @@ -51,7 +51,7 @@ } # Plot the input/output response of a system -def ioresp_plot( +def time_response_plot( data, ax=None, plot_inputs=None, plot_outputs=True, transpose=False, combine_traces=False, combine_signals=False, legend_map=None, legend_loc=None, add_initial_zero=True, title=None, relabel=True, @@ -719,7 +719,7 @@ def get_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 `ioresp_plot`. This is useful for + 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. diff --git a/control/timeresp.py b/control/timeresp.py index ffb495eb2..84829cf93 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -81,7 +81,7 @@ from . import config from .exception import pandas_check from .iosys import isctime, isdtime -from .timeplot import ioresp_plot +from .timeplot import time_response_plot __all__ = ['forced_response', 'step_response', 'step_info', @@ -690,7 +690,7 @@ def to_pandas(self): # Plot data def plot(self, *args, **kwargs): - return ioresp_plot(self, *args, **kwargs) + return time_response_plot(self, *args, **kwargs) # Process signal labels From 29054ec9bbec189b6c7078a56ff1b745a48c51b8 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Jun 2023 21:25:16 -0700 Subject: [PATCH 0333/1025] customizable line properties, combine_* -> overlay_*, documentation --- control/tests/kwargs_test.py | 17 ++- control/tests/timeplot_test.py | 81 ++++++++--- control/timeplot.py | 209 +++++++++++++++++------------ control/timeresp.py | 7 +- doc/plotting.rst | 37 ++--- doc/timeplot-mimo_ioresp-mt_tr.png | Bin 62546 -> 64394 bytes doc/timeplot-mimo_ioresp-ov_lm.png | Bin 57319 -> 61492 bytes doc/timeplot-mimo_step-pi_cs.png | Bin 31853 -> 31861 bytes 8 files changed, 224 insertions(+), 127 deletions(-) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index b29fa2fa5..19f4bb627 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -75,7 +75,8 @@ def test_kwarg_search(module, prefix): # @parametrize messes up the check, but we know it is there pass - elif source and source.find('unrecognized keyword') < 0: + elif source and source.find('unrecognized keyword') < 0 and \ + source.find('unexpected keyword') < 0: warnings.warn( f"'unrecognized keyword' not found in unit test " f"for {name}") @@ -162,7 +163,21 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): function(*args, **kwargs, unknown=None) +@pytest.mark.parametrize( + "function", [control.time_response_plot, control.TimeResponseData.plot]) +def test_time_response_plot_kwargs(function): + # Create a system for testing + response = control.step_response(control.rss(4, 2, 2)) + + # Call the plotting function normally and make sure it works + function(response) + # Now add an unrecognized keyword and make sure there is an error + with pytest.raises(AttributeError, + match="(has no property|unexpected keyword)"): + function(response, unknown=None) + + # # List of all unit tests that check for unrecognized keywords # diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 97ca17b58..2ade00ec1 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -27,8 +27,8 @@ # @pytest.mark.parametrize("transpose", [False, True]) # @pytest.mark.parametrize("plot_inputs", [False, None, True, 'overlay']) # @pytest.mark.parametrize("plot_outputs", [True, False]) -# @pytest.mark.parametrize("combine_signals", [False, True]) -# @pytest.mark.parametrize("combine_traces", [False, True]) +# @pytest.mark.parametrize("overlay_signals", [False, True]) +# @pytest.mark.parametrize("overlay_traces", [False, True]) # @pytest.mark.parametrize("second_system", [False, True]) # @pytest.mark.parametrize("fcn", [ # ct.step_response, ct.impulse_response, ct.initial_response, @@ -90,7 +90,7 @@ def test_response_plots( # Save up the keyword arguments kwargs = dict( plot_inputs=pltinp, plot_outputs=pltout, transpose=trpose, - combine_signals=cmbsig, combine_traces=cmbtrc) + overlay_signals=cmbsig, overlay_traces=cmbtrc) # Create the response if fcn is ct.input_output_response and \ @@ -189,7 +189,7 @@ def test_response_plots( def test_axes_setup(): - get_axes = ct.timeplot.get_axes + get_plot_axes = ct.timeplot.get_plot_axes sys_2x3 = ct.rss(4, 2, 3) sys_2x3b = ct.rss(4, 2, 3) @@ -199,21 +199,21 @@ def test_axes_setup(): # 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_axes(out1), get_axes(out2)) + np.testing.assert_equal(get_plot_axes(out1), get_plot_axes(out2)) 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() np.testing.assert_equal( - get_axes(out1).reshape(-1), get_axes(out2).reshape(-1)) + get_plot_axes(out1).reshape(-1), get_plot_axes(out2).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_axes(out1).reshape(-1).tolist() - ax2_list = get_axes(out2).reshape(-1).tolist() + ax1_list = get_plot_axes(out1).reshape(-1).tolist() + ax2_list = get_plot_axes(out2).reshape(-1).tolist() for ax in ax1_list: assert ax not in ax2_list plt.close() @@ -221,14 +221,14 @@ def test_axes_setup(): # 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_axes(out1)) - np.testing.assert_equal(get_axes(out1), get_axes(out3)) + out3 = ct.step_response(sys_2x3b).plot(ax=get_plot_axes(out1)) + np.testing.assert_equal(get_plot_axes(out1), get_plot_axes(out3)) 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_axes(out)) + ct.step_response(sys_3x1).plot(ax=get_plot_axes(out)) sys_2x3 = ct.rss(4, 2, 3) sys_2x3b = ct.rss(4, 2, 3) sys_3x2 = ct.rss(4, 3, 2) @@ -244,7 +244,7 @@ def test_legend_map(): response.plot( legend_map=np.array([['center', 'upper right'], [None, 'center right']]), - plot_inputs=True, combine_signals=True, transpose=True, + plot_inputs=True, overlay_signals=True, transpose=True, title='MIMO step response with custom legend placement') @@ -310,18 +310,55 @@ def test_combine_traces(): combresp6 = ct.combine_traces([resp1, resp]) +def test_linestyles(): + # Check to make sure we can change line styles + 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, flags=["refs_ok"]): + for line in ax.item(): + assert line.get_color() == 'k' + assert line.get_linestyle() == '--' + + +def test_relabel(): + sys1 = ct.rss(2, inputs='u', outputs='y') + sys2 = ct.rss(1, 1, 1) # uses default i/o labels + + # Generate a plot with specific labels + ct.step_response(sys1).plot() + + # Generate a new plot, which overwrites labels + out = ct.step_response(sys2).plot() + ax = ct.get_plot_axes(out) + assert ax[0, 0].get_ylabel() == 'y[0]' + + # Regenerate the first plot + plt.figure() + 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' + + def test_errors(): sys = ct.rss(2, 1, 1) stepresp = ct.step_response(sys) - with pytest.raises(TypeError, match="unrecognized keyword"): + with pytest.raises(AttributeError, + match="(has no property|unexpected keyword)"): stepresp.plot(unknown=None) - with pytest.raises(TypeError, match="unrecognized keyword"): + with pytest.raises(AttributeError, + match="(has no property|unexpected keyword)"): ct.time_response_plot(stepresp, unknown=None) with pytest.raises(ValueError, match="unrecognized value"): stepresp.plot(plot_inputs='unknown') + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -344,8 +381,8 @@ def test_errors(): # Define and run a selected set of interesting tests # def test_response_plots( - # fcn, sys, plot_inputs, plot_outputs, combine_signals, - # combine_traces, transpose, second_system, clear=True): + # fcn, sys, plot_inputs, plot_outputs, overlay_signals, + # overlay_traces, transpose, second_system, clear=True): N, T, F = None, True, False test_cases = [ # response fcn system in out cs ct tr ss @@ -379,12 +416,12 @@ def test_errors(): ct.step_response(sys_mimo).plot() plt.savefig('timeplot-mimo_step-default.png') - # Step response with plot_inputs, combine_signals + # Step response with plot_inputs, overlay_signals plt.figure() ct.step_response(sys_mimo).plot( - plot_inputs=True, combine_signals=True, + plot_inputs=True, overlay_signals=True, title="Step response for 2x2 MIMO system " + - "[plot_inputs, combine_signals]") + "[plot_inputs, overlay_signals]") plt.savefig('timeplot-mimo_step-pi_cs.png') # Input/output response with overlaid inputs, legend_map @@ -412,3 +449,9 @@ def test_errors(): title="I/O responses for 2x2 MIMO system, multiple traces " "[transpose]") plt.savefig('timeplot-mimo_ioresp-mt_tr.png') + + # Reset line styles + plt.figure() + resp1.plot('g-') + resp2.plot('r--') + # plt.savefig('timeplot-mimo_step-linestyle.png') diff --git a/control/timeplot.py b/control/timeplot.py index 4e8388a9b..615ed2b6a 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -5,21 +5,8 @@ # functions can be called either as standalone functions or access from the # TimeDataResponse class. # -# Note: Depending on how this goes, it might eventually make sense to -# put the functions here directly into timeresp.py. -# -# Desired features (i = implemented but not tested, c = complete, w/ tests) -# [i] Step/impulse response plots don't include inputs by default -# [i] Forced/I-O response plots include inputs by default -# [ ] Ability to start inputs at zero (step functions only?) -# [i] Ability to plot all data on a single graph -# [i] Ability to plot inputs with outputs on separate graphs -# [i] Ability to plot inputs and/or outputs on selected axes -# [i] Multi-trace graphs using different line styles -# [i] Plotting function return Line2D elements -# [i] Axis labels/legends based on what is plotted (siso, mimo, multi-trace) -# [x] Ability to select (index) output and/or trace (and time?) -# [i] Legends should not contain redundant information (nor appear redundantly) +# Note: It might eventually make sense to put the functions here +# directly into timeresp.py. import numpy as np import matplotlib as mpl @@ -28,7 +15,7 @@ from . import config -__all__ = ['time_response_plot', 'combine_traces'] +__all__ = ['time_response_plot', 'combine_traces', 'get_plot_axes'] # Default font dictionary _timeplot_rcParams = mpl.rcParams.copy() @@ -43,19 +30,25 @@ # Default values for module parameter variables _timeplot_defaults = { - 'timeplot.line_styles': ['-', '--', ':', '-.'], - 'timeplot.line_colors': [ - 'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', - 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'], + 'timeplot.rcParams': _timeplot_rcParams, + 'timeplot.trace_props': [ + {'linestyle': s} for s in ['-', '--', ':', '-.']], + 'timeplot.output_props': [ + {'color': c} for c in [ + 'tab:blue', 'tab:orange', 'tab:green', 'tab:pink', 'tab:gray']], + 'timeplot.input_props': [ + {'color': c} for c in [ + 'tab:red', 'tab:purple', 'tab:brown', 'tab:olive', 'tab:cyan']], 'timeplot.time_label': "Time [s]", } # Plot the input/output response of a system def time_response_plot( - data, ax=None, plot_inputs=None, plot_outputs=True, transpose=False, - combine_traces=False, combine_signals=False, legend_map=None, - legend_loc=None, add_initial_zero=True, title=None, relabel=True, - **kwargs): + 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, + input_props=None, output_props=None, trace_props=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 @@ -72,8 +65,8 @@ def time_response_plot( 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 `combine_traces` is set to `True` then - only one row is needed and if `combine_signals` is set to `True` + 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). plot_inputs : bool or str, optional @@ -84,10 +77,10 @@ def time_response_plot( * True: plot the inputs on their own axes plot_outputs : bool, optional If False, suppress plotting of the outputs. - combine_traces : bool, optional + overlay_traces : bool, optional If set to True, combine all traces onto a single row instead of plotting a separate row for each trace. - combine_signals : bool, optional + overlay_signals : bool, optional If set to True, combine all input and output signals onto a single plot (for each). transpose : bool, optional @@ -97,6 +90,10 @@ def time_response_plot( signals are plotted from left to right, starting with the inputs (if plotted) and then the outputs. Multi-trace responses are stacked vertically. + *fmt : :func:`matplotlib.pyplot.plot` format string, optional + Passed to `matplotlib` as the format string for all lines in the plot. + **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional + Additional keywords passed to `matplotlib` to specify line properties. Returns ------- @@ -107,11 +104,12 @@ def time_response_plot( Additional Parameters --------------------- - 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. - time_label : str, optional - Label to use for the time axis. + add_initial_zero : bool + Add an initial point of zero at the first time point for all + inputs with type 'step'. Default is True. + 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']. legend_map : array of str, option Location of the legend for multi-trace plots. Specifies an array of legend location strings matching the shape of the subplots, with @@ -120,14 +118,38 @@ def time_response_plot( legend_loc : str Location of the legend within the axes for which it appears. This value is used if legend_map is None. - add_initial_zero : bool - Add an initial point of zero at the first time point for all - inputs with type 'step'. Default is True. - trace_cycler: :class:`~matplotlib.Cycler` - Line style cycle to use for traces. Default = ['-', '--', ':', '-.']. + output_props : array of dicts + 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. + time_label : str, optional + Label to use for the time axis. + 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']. + + Notes + ----- + 1. A new figure will be generated if there is no current figure or + the current figure has an incompatible number of axes. To + force the creation of a new figures, use `plt.figure()`. To reuse + a portion of an existing figure, use the `ax` keyword. + + 2. The line properties (color, linestyle, etc) can be set for the + entire plot using the `fmt` and/or `kwargs` parameter, which + are passed on to `matplotlib`. When combining signals or + traces, the `input_props`, `output_props`, and `trace_props` + parameters can be used to pass a list of dictionaries + containing the line properties to use. These input/output + properties are combined with the trace properties and finally + the kwarg properties to determine the final line properties. + + 3. The default plot properties, such as font sizes, can be set using + config.defaults[''timeplot.rcParams']. """ - from cycler import cycler from .iosys import InputOutputSystem from .timeresp import TimeResponseData @@ -138,10 +160,18 @@ def time_response_plot( # Set up defaults time_label = config._get_param( 'timeplot', 'time_label', kwargs, _timeplot_defaults, pop=True) - line_styles = config._get_param( - 'timeplot', 'line_styles', kwargs, _timeplot_defaults, pop=True) - line_colors = config._get_param( - 'timeplot', 'line_colors', kwargs, _timeplot_defaults, pop=True) + + input_props = config._get_param( + 'timeplot', 'input_props', kwargs, _timeplot_defaults, pop=True) + iprop_len = len(input_props) + + output_props = config._get_param( + 'timeplot', 'output_props', kwargs, _timeplot_defaults, pop=True) + oprop_len = len(output_props) + + trace_props = config._get_param( + '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 @@ -152,13 +182,6 @@ def time_response_plot( if plot_inputs not in [True, False, 'overlay']: raise ValueError(f"unrecognized value: {plot_inputs=}") - # Configure the cycle of colors and line styles - my_cycler = cycler(linestyle=line_styles) * cycler(color=line_colors) - - # Make sure we process alled of the optional arguments - if kwargs: - raise TypeError("unrecognized keyword(s): " + str(kwargs)) - # # Find/create axes # @@ -191,7 +214,7 @@ def time_response_plot( # # * Combining: inputs, outputs, and traces can be combined onto a # single set of axes using various keyword combinations - # (combine_signals, combine_traces, plot_inputs='overlay'). This + # (overlay_signals, overlay_traces, plot_inputs='overlay'). This # basically collapses data along either the rows or columns, and a # legend is generated. # @@ -225,11 +248,11 @@ def time_response_plot( "input plotting requested but no inputs in time response data") # Figure how how many rows and columns to use + offsets for inputs/outputs - if plot_inputs == 'overlay' and not combine_signals: + if plot_inputs == 'overlay' and not overlay_signals: nrows = max(ninputs, noutputs) # Plot inputs on top of outputs noutput_axes = 0 # No offset required ninput_axes = 0 # No offset required - elif combine_signals: + elif overlay_signals: nrows = int(plot_outputs) # Start with outputs nrows += int(plot_inputs == True) # Add plot for inputs if needed noutput_axes = 1 if plot_outputs and plot_inputs is True else 0 @@ -239,7 +262,7 @@ def time_response_plot( noutput_axes = noutputs if plot_outputs else 0 ninput_axes = ninputs if plot_inputs else 0 - ncols = ntraces if not combine_traces else 1 + ncols = ntraces if not overlay_traces else 1 if transpose: nrows, ncols = ncols, nrows @@ -261,10 +284,8 @@ def time_response_plot( if ax is None: with plt.rc_context(_timeplot_rcParams): ax_array = fig.subplots(nrows, ncols, sharex=True, squeeze=False) - for ax in np.nditer(ax_array, flags=["refs_ok"]): - ax.item().set_prop_cycle(my_cycler) - fig.set_tight_layout(True) - fig.align_labels() + fig.set_tight_layout(True) + fig.align_labels() else: # Make sure the axes are the right shape @@ -284,14 +305,14 @@ def time_response_plot( # variations. # - # Create the map from trace, signal to axes, accounting for combine_* + # Create the map from trace, signal to axes, accounting for overlay_* ax_outputs = np.empty((noutputs, ntraces), dtype=object) ax_inputs = np.empty((ninputs, ntraces), dtype=object) for i in range(noutputs): for j in range(ntraces): - signal_index = i if not combine_signals else 0 - trace_index = j if not combine_traces else 0 + signal_index = i if not overlay_signals else 0 + trace_index = j if not overlay_traces else 0 if transpose: ax_outputs[i, j] = \ ax_array[trace_index, signal_index + ninput_axes] @@ -300,8 +321,8 @@ def time_response_plot( for i in range(ninputs): for j in range(ntraces): - signal_index = noutput_axes + (i if not combine_signals else 0) - trace_index = j if not combine_traces else 0 + signal_index = noutput_axes + (i if not overlay_signals else 0) + trace_index = j if not overlay_traces else 0 if transpose: ax_inputs[i, j] = \ ax_array[trace_index, signal_index - noutput_axes] @@ -340,11 +361,11 @@ def _make_line_label(signal_index, signal_labels, trace_index): label = "" # start with an empty label # Add the signal name if it won't appear as an axes label - if combine_signals or plot_inputs == 'overlay': + if overlay_signals or plot_inputs == 'overlay': label += signal_labels[signal_index] # Add the trace label if this is a multi-trace figure - if combine_traces and ntraces > 1: + if overlay_traces and ntraces > 1: label += ", " if label != "" else "" label += f"trace {trace_index}" if data.trace_labels is None \ else data.trace_labels[trace_index] @@ -360,8 +381,18 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Plot the output for i in range(noutputs): label = _make_line_label(i, data.output_labels, trace) + + # Set up line properties for this output, trace + if len(fmt) == 0: + line_props = \ + output_props[i % oprop_len if overlay_signals else 0] | \ + trace_props[trace % tprop_len if overlay_traces else 0] | \ + kwargs + else: + line_props = kwargs + out[i, trace] = ax_outputs[i, trace].plot( - data.time, outputs[i][trace], label=label) + data.time, outputs[i][trace], *fmt, label=label, **line_props) # Plot the input for i in range(ninputs): @@ -374,8 +405,17 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: x, y = data.time, inputs[i][trace] + # Set up line properties for this output, trace + if len(fmt) == 0: + line_props = \ + input_props[i % iprop_len if overlay_signals else 0] | \ + trace_props[trace % tprop_len if overlay_traces else 0] | \ + kwargs + else: + line_props = kwargs + out[noutputs + i, trace] = ax_inputs[i, trace].plot( - x, y, label=label) + x, y, *fmt, label=label, **line_props) # Stop here if the user wants to control everything if not relabel: @@ -387,7 +427,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Once the data are plotted, we label the axes. The horizontal axes is # always time and this is labeled only on the bottom most column. The # vertical axes can consist either of a single signal or a combination - # of signals (when combine_signal is True or plot+inputs = 'overlay'. + # of signals (when overlay_signal is True or plot+inputs = 'overlay'. # # Traces are labeled at the top of the first row of plots (regular) or # the left edge of rows (tranpose). @@ -403,7 +443,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): if transpose: # inputs on left, outputs on right # Label the inputs - if combine_signals and plot_inputs: + if overlay_signals and plot_inputs: label = overlaid_title if overlaid else "Inputs" for trace in range(ntraces): ax_inputs[0, trace].set_ylabel(label) @@ -414,7 +454,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): ax_inputs[i, trace].set_ylabel(label) # Label the outputs - if combine_signals and plot_outputs: + if overlay_signals and plot_outputs: label = overlaid_title if overlaid else "Outputs" for trace in range(ntraces): ax_outputs[0, trace].set_ylabel(label) @@ -425,7 +465,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): ax_outputs[i, trace].set_ylabel(label) # Set the trace titles, if needed - if ntraces > 1 and not combine_traces: + if ntraces > 1 and not overlay_traces: for trace in range(ntraces): # Get the existing ylabel for left column label = ax_array[trace, 0].get_ylabel() @@ -437,7 +477,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: # regular plot (outputs over inputs) # Set the trace titles, if needed - if ntraces > 1 and not combine_traces: + if ntraces > 1 and not overlay_traces: for trace in range(ntraces): with plt.rc_context(_timeplot_rcParams): ax_array[0, trace].set_title( @@ -445,7 +485,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): else data.trace_labels[trace]) # Label the outputs - if combine_signals and plot_outputs: + if overlay_signals and plot_outputs: ax_outputs[0, 0].set_ylabel("Outputs") else: for i in range(noutputs): @@ -453,7 +493,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): overlaid_title if overlaid else data.output_labels[i]) # Label the inputs - if combine_signals and plot_inputs: + if overlay_signals and plot_inputs: label = overlaid_title if overlaid else "Inputs" ax_inputs[0, 0].set_ylabel(label) else: @@ -487,13 +527,13 @@ def _make_line_label(signal_index, signal_labels, trace_index): if legend_loc == None: legend_loc = 'center right' if transpose: - if (combine_signals or plot_inputs == 'overlay') and combine_traces: + if (overlay_signals or plot_inputs == 'overlay') and overlay_traces: # Put a legend in each plot for inputs and outputs if plot_outputs is True: legend_map[0, ninput_axes] = legend_loc if plot_inputs is True: legend_map[0, 0] = legend_loc - elif combine_signals: + elif overlay_signals: # Put a legend in rightmost input/output plot if plot_inputs is True: legend_map[0, 0] = legend_loc @@ -503,20 +543,20 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Put a legend on the top of each column for i in range(ntraces): legend_map[0, i] = legend_loc - elif combine_traces: + elif overlay_traces: # Put a legend topmost input/output plot legend_map[0, -1] = legend_loc else: # Put legend in the upper right legend_map[0, -1] = legend_loc else: # regular layout - if (combine_signals or plot_inputs == 'overlay') and combine_traces: + if (overlay_signals or plot_inputs == 'overlay') and overlay_traces: # Put a legend in each plot for inputs and outputs if plot_outputs is True: legend_map[0, -1] = legend_loc if plot_inputs is True: legend_map[noutput_axes, -1] = legend_loc - elif combine_signals: + elif overlay_signals: # Put a legend in rightmost input/output plot if plot_outputs is True: legend_map[0, -1] = legend_loc @@ -526,7 +566,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Put a legend on the right of each row for i in range(max(ninputs, noutputs)): legend_map[i, -1] = legend_loc - elif combine_traces: + elif overlay_traces: # Put a legend topmost input/output plot legend_map[0, -1] = legend_loc else: @@ -715,7 +755,7 @@ def combine_traces(response_list, trace_labels=None, title=None): # Create vectorized function to find axes from lines -def get_axes(line_array): +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 @@ -731,7 +771,7 @@ def get_axes(line_array): Returns ------- - axes_array : arra of list of Axes + axes_array : array of list of Axes A 2D array with elements corresponding to the Axes assocated with the lines in `line_array`. @@ -740,8 +780,5 @@ def get_axes(line_array): Only the first element of each array entry is used to determine the axes. """ + _get_axes = np.vectorize(lambda lines: lines[0].axes) return _get_axes(line_array) - - -# Utility function used by get_axes -_get_axes = np.vectorize(lambda lines: lines[0].axes) diff --git a/control/timeresp.py b/control/timeresp.py index 84829cf93..81349e2f4 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -185,7 +185,7 @@ class TimeResponseData: trace_labels : array of string, optional Labels to use for traces (set to sysname it ntraces is 0) - trace_labels : array of string, optional + trace_types : array of string, optional Type of trace. Currently only 'step' is supported, which controls the way in which the signal is plotted. @@ -227,8 +227,7 @@ def __init__( output_labels=None, state_labels=None, input_labels=None, title=None, transpose=False, return_x=False, squeeze=None, multi_trace=False, trace_labels=None, trace_types=None, - plot_inputs=True, - sysname=None + plot_inputs=True, sysname=None ): """Create an input/output time response object. @@ -428,7 +427,7 @@ def __init__( # Check and store trace labels, if present self.trace_labels = _process_labels( trace_labels, "trace", self.ntraces) - self.trace_types = trace_types + self.trace_types = trace_types # TODO: rename to kind? # Figure out if the system is SISO if issiso is None: diff --git a/doc/plotting.rst b/doc/plotting.rst index c86d3d49a..ddd44b56c 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -53,24 +53,25 @@ the data from the simulation:: for j in range(2): axs[i, j].plot(time, outputs[i, j]) -A number of options are available in the `plot` method to customize the -appearance of input output data. For data produced by the +A number of options are available in the `plot` method to customize +the appearance of input output data. For data produced by the :func:`~control.impulse_response` and :func:`~control.step_response` -commands, the inputs are not shown. This behavior can be changed using the -`plot_inputs` keyword. It is also possible to combine multiple traces onto -a single graph, using either the `combine_signals` keyword (which puts all -outputs out a single graph and all inputs on a single graph) or the -`combine_traces` keyword, which puts different traces (e.g., corresponding -to step inputs in different channels) on the same graph, with appropriate -labeling via a legend on selected axes. - -For example, using `plot_input=True` and `combine_signals=True` yields the +commands, the inputs are not shown. This behavior can be changed +using the `plot_inputs` keyword. It is also possible to combine +multiple lines onto a single graph, using either the `overlay_signals` +keyword (which puts all outputs out a single graph and all inputs on a +single graph) or the `overlay_traces` keyword, which puts different +traces (e.g., corresponding to step inputs in different channels) on +the same graph, with appropriate labeling via a legend on selected +axes. + +For example, using `plot_input=True` and `overlay_signals=True` yields the following plot:: ct.step_response(sys_mimo).plot( - plot_inputs=True, combine_signals=True, + plot_inputs=True, overlay_signals=True, title="Step response for 2x2 MIMO system " + - "[plot_inputs, combine_signals]") + "[plot_inputs, overlay_signals]") .. image:: timeplot-mimo_step-pi_cs.png @@ -113,15 +114,17 @@ following figure:: .. image:: timeplot-mimo_ioresp-mt_tr.png This figure also illustrates the ability to create "multi-trace" plots -using the :func:`~control.combine_traces` function. +using the :func:`~control.combine_traces` function. The line properties +that are used when combining signals and traces are set by the +`input_props`, `output_props` and `trace_props` parameters for +:func:`~control.time_response_plot`. - Plotting functions ================== .. autosummary:: :toctree: generated/ - ~control.ioresp_plot + ~control.time_response_plot ~control.combine_traces - control.timeplot.get_axes + ~control.get_plot_axes diff --git a/doc/timeplot-mimo_ioresp-mt_tr.png b/doc/timeplot-mimo_ioresp-mt_tr.png index e21ef1db42fdf1e13ea798a42364421c5e19c5cb..e4c800086ec7bb829814e2f0fcf474d2b928d320 100644 GIT binary patch literal 64394 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¥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 literal 62546 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 MrmU@0q+k*JUl2~)(f|Me diff --git a/doc/timeplot-mimo_ioresp-ov_lm.png b/doc/timeplot-mimo_ioresp-ov_lm.png index cdeb800e0625753950c6c5f2d6b772b680d0a7b4..27dd891593f6ff0368fc013bbffab9f94d5ed583 100644 GIT binary patch literal 61492 zcmb@ubx_>d6FoXe&>(>z2^I*F5ZoPt1b26Lcb5bU!8JI+A$V|?AR)*EC%C)2^X}~K z_to#8SM^@iqn6q&X67^Z-tInq`gGq7Q;-wKKzoS>fj}@MB}A1V5cmKH1a1ih3H*h9 zWNr=oi`zv^!$sNN%*EZ%$rK`M=;B~w?_y(V^vccD$=TB0j+KF(ftl`=g^P=WGY=!9 z?f?A-274!S#%aToR`3v12MJAQ2n5Rz_6t`eSZE1>9A-<3zE|-`-LAu6!&Di_Ff z4h*0N3wK^F`rGd~h0V9JjaB$${`hPH^1|k`O4X?C;5&yd!A30Y8v193_wR#V^Noke;uwY*4yh- z%cWb~d0!sP*VxU!L`Fuov9-0Ft|YgfEPdM~BpvWhy`0H)Mb;YbNgW+RAEJmQot#dLzh+NZr7#)7gD>nJ9>&zy*S|U277-Qg7P(Ag zF-1cQ{)9=w!*?{j_qST{&2#XDJX060JL8@^_lNw8Be~*W*DuDc*aZXx&UUAwV`5_Z z{Mw!j5w~5bRpFEWevD2Hhq|rNgptlgqYnwb>At+aBR2G;1@G zbHU(fsWXC1@FDE?@bEB0L`-A=6UTz|gN>OK00-J}3P&=>oo~;J6&_Z(MoY5AJ^X`ug}>twsx? zpra4CKJHAEpgw&{_vap*rNw9->h0yB`SD86T#ILXnRdO??j-$74x3;5v-M=Ff0Jau zdOW+3nKYG?kp%}`7d;bN8121jFI5s??1 zcEq{j(PkTiDJmsuk!X0dOm=fzZC5Mkz^4bQjQdXLOJq`5WU>S@+I(+U*4Dbey$^(N z`CKv4Yu9!6_J#xmKw!r8@@jHy?+GVRt}+rUEh{@dIa#Tl(qk2vY;v^@!6F+zTK?(i z=GHqj6d5h}Ku8|snAY7b3Tz)39*$mDSLd=f9ZSS%M@ZJLe*Sn06;!UZQr+9%-~N-0 z0F2aY`*3$E|B~G*C?kUeY?aM^Asy^-bye`;>NT)>-^@&^)B0~_;D#BNyP1Zt2Y6No;urEi}@z@$;nBZ>B{Ag zC)VRdofrGF+u-Bt17A0T3G@tlBVODA!}KOkmT8B!w)&P&8Fqhurt)1S?Ci`XJw5&E zd`f?NBo`UDdx2y;HJwgFjB=qI{|~dFv9Wl!{h2DaeXUjBP%JWP28O7wdS2Vvw*uP_ zWWHz5z|Y=ddlrGdPb>%$tvZ{2sNiEnem>RD5R8FKuFlR*mz{A`0s?})y}cs6Rvzz* zz4s{ZgVFGkSc2OhlGsGYBoq{tUPoN zT{YaiX@yE;3HVml*VDXt^O?-=>f`jZ25|9Dt*!hZ8rRnPSg#X1&2GGP4qNAgu@aFm1{_JI}<6S*! z18|nXbnf_v``gu}B_RWYR|8)eIR*RJ(qC|ACP(27*v?zsCYR3P;i&DgLP2bCA0IyZwrlE#hllBz8Kr77Sq}RJ z8y}zfCfA0>#_SObr~RoiZBF2Y%C9P(2st^i9JZWdW@ct`@$j5ZNN^#dpPk3bXJg>gn-gGB$-srM2`daI$ zjbE{^8-Ht5n_+zX_z^7NW3YgoGd>p_o+k^z`bmAoqE^zXXnl3ch%z&Q{vOV#~OXdi}jb z^x4I%eKN3asKmreYzRk+S;1TX`k8Pci+V2vK3RLU0=R6TVH`K{26Q;B~gls!*+)9V4?M$ zT$TX+1~ki_u3EK3t#?(g)k_sb&wH@RFCb`$>bK__tBbU1zhCWEw0HllHW$0S*cStC zE9&M}2c9-jqK+;tEj>~oOXRrHjq12F{#FqL{PCo=Jt}$7AFJA~{(eaSw0Z#Tly%yC zG)pzBKOiC_qmu_s*V|_~xVStA{_?EeZXT!o?j-z;azR8gi>Xv*g@~2aca2uBT8OBL zN#5s(2)4GisHiBT(~Y4O;BzbYmx}~RNl7a==eyu^fOTI(6hT6%^1XF)yuGk}MoOA_ zxa-@F_f8GP-ThMM()Dmbm(6Bc!J<~H%KcE!(9-g46q#VA{fqX8n-bvl6x`h0i?-DA znRHfD<@CV%#{$i3LIFK@M(z8BC^olTqEn0Z#<1WzMGrd3cx&U^WpSoApEfLXjPap zH--5;FbKJw@{Z2W@c;%r`^un;W8Z#X=iuo0?D+UtxNs~CWFmAS*rP>1eE5==m*->L zR0#IoSdM#{d72{@{*RLZI|eBgKUXi;c_w`4y>NSb8-Cb!D+e?2Q(`U!E-tRm4Gmo6 zqQmCX{rzvJ9NiA)-X7@Qu(GgpH#n|}f~bo;l>G3aS7cF~Jjmm6-aR-YV_wAmvK--3 z?~>R30EIjVWKUd>P>i5gi{NKV4^=Ry7B}G+V8t=dk_J&L{HlaZe!X+qYND_6vOELD)!v??J}W0Z=Xp zkW*Nv-A^}yh*J(=&>3$io?+AEtm}~QG zc5rpYgZVr-wlL47V> zUO@-Ub@P+8ei#72-oG-MFKqt06Zl~^s#TL)gZm<^y zyTvwozuSFI#YQJnW|LpotE-o7;V;=NUSX06(8*=;y#+~`GL_x>Lg?w^J+b60g7Dj#udGpY8oU&F*XZ+F@#Ljt&xp<5CA)Y*G?6NEF?T&YPsXa6akxxj8wA z26vyXD*(|$5d!f_2kir9OtFt6efEr8g*MS~ac|FNd3o9JE-r=Fy}Sq<+_8AK|NLW* zJ2ZFr-1`>z{J@n5fHO!pO_q;Q%OS`ry<}L|{fuxb#VQnRY~vn_3$5P4fCnVGKC-`} zr>>B+T2Xq?1s{ANUUiZ}(VN zIkd{uu0T8j0-}R*yoGqQaN7Q;gS#?vXzb!rbKGa;SMM#^IIi{@O;;K= zlG-n{c$Qz%zj`HPGgI?+iUV-d1J%u?sma_q_tZIg}hv+ zF>cdUhB_cxo&!!W7!)|z`1l{vIBZF+y~#z(H_BVsEdIQjS}c^yFanHbdUlq`9>8Cp z0h7b#FbOO#D=1)t1?9RQF4)X9#70C!=$Nuuj#5rJf`|MDrUCh0r_t#NIy(AGPCFZ) zIY5g6RynW###{9TYfWI(U%0A|j>ckUW)_mm$_IRPw9VI>$91Rs?)uc39V?5+^^4_L z!MYb_AQA=z3(LtzjnnwJIAKvy#Gy1!sH;E7c+Nd3Q`T2SPO$XyUA3ea5Ikr8jg^%y za5_KZsHETMxA~NR6u2C-s%<&$B?6g1N0uJT*wRw6La!AhQT9c@Tlz#=)f|w7qDd~R z53mTE;nv*cqKLWU0KFP(@pJ~6ZxHZ?$mr{5TP&}M|$g(g?@GPShb^qQKQJU|4o(&M2!51XY5Z;mc5{Fbig7q{oTx;}x2^Eneo zdy(<;^A{^*cZt~JbI#~kd~2ZttPsLhA_Onz5TA&zv|5YvvkJxJ7EtGu9&ew;6sbzdShf$ z#ma>e($cJ?j|=-?W4(5G08n$m8XGT~9}ht`fYnw^214a51@c*TbgP-S(6?k{WJ``rdMcJ_u_s8Gmfs!-Mn7JyVgU~d&&ndh#KZ)E6MA)Zr86&d zkTH7+aQ}(9`6m41U?MfBSJ9f?_H%4!>!zotAqvGxRB`d~r^KkK85u*s8H+WlRzwDB zs;dXi>pKmW=G_<9K~3E|3y=w9QY66A`Z_y5jupyRd!Cy4`1mBVS>gcB>bIvDy3*Db z@YwqJfS#70Z(81mhbC6;s}9QR*w^9~lcg^}$(yf~FGbAnHGV~0AeWK4%dOMk@DWsR z2DY~M8jcJ8bD=$`SZyKKlCrY-0IxxOR6B1DBWJ$u(D%O&mdd99KT~2`q-AQ-(WLwh z&YPGZO5Xuq6Me69b9o4@U-TOQjA3iB{n7aFvf{b|CTcZmB77ff}Jdz^@4vPsu zKHyW=e=x72d8Q5;inTz4lOZ_X?kbQ+E{e0j*eb{cemL^b6MdnZ`& zYU||!tKHW{YqyH00f3gS(XN78qj&e1AM18-?XvZV@`T5n%#9SNGN*vdzr3}8Ap@w; z;IJ}FJbl~HZdlb*e<2>dy*v7e)%d~JZFdp_fDTyJZAYE-R|YD6{tN&Ir(scw6?*)j zd`Q@2-1W{)r=z2@7%RZ2HivEizyWON>!SbTyhg9T;1!@4`9?ioid1L;sD#KB4zP1k z2?%8FPE~-KeS+poE!dgQQ71C7fKM_Y2bGp%)T_=QoV7Bc%Mbd2SgTuGpDQXD{U7h$ z%WtvB1n#;Wh2@6yfiEkROzh3nzJrRM0kHs-Luq9GchAJd#Xm$4#_k?__b-Bwoo@FR zw6n95e=Y*@Vlk+Q2^jU(%IX)qRyL1{?m>mZ?{#JXihWTrv2`yx-~~XE7z5C$qpN$$ z{{gr`ATpL&Ula-8Us2#Z3CX;VdkCtktBw2PsP^WYFF#U_15E=2bTy!PFwp^^T~{zV z0R${=>-Ano z{^_OvuqzJ<@QxhtCZXZzkK^OxI)X;SU~krsEep6FSGQb%wIkysJuU!NavD*uRci$f zj!XTAvy66YBb=Aa&X-w4{IsDYpChu3kKGw1wjW?gk3pY!IC=X96j0 z{UyW=+VK%V6X17=T3L>48V4dGBHslwX+9{@z^ND-8Xk8zJGujO25%=8^y8cIyTtN1 zIXUTqLZfHv?FAJ+{QY4{#+zg{@qPWeRWTW`yfC>!V^A%D6cz-&e_b;rXKdSvf75!Z zJT@W0gl{UJ=BqnNYeGeGGND{LSFH7?6`*FAK{JQ0j#pul0my@Zlbrm-5-nr7C1OKm%{~;e5HPn%o>66m-+hSr&WVq$RqvyTP4yxxNpsbASp7&A?OiY|t;UbN6-mII!_W;aKut*t#-p&uO?iShpZdm*{gKLCe&i0oTFCMMz?92`XRO@)7| ztz`!cjKg_jkerGt7-0Qqt~eHuHOZzYfu2Gx5^@9%WO--D>h8|m#DuW$IT{+8aJE7v z&{g$(j>T+jY=E@Hm@rL1uO-^^1+Q4EmKKnZ*UZc#$q9?zAkL3OKp=M>ulA88r`3Sm z2eS$Qn3coBXke~1PJ6$t+pX>G>v84nrzAWHfF6DUg$a|-l|#91GmO2w;B~VpUn>Jv z0F_i2K(F=h_ko|9>%ewD0#tPd5d*}itCIo7urFV{mikOVmHYxY_&c>y10eaxpSPR> zWFP{RKng(X_1!77Sf`N%Cc*u!4h7#a`t3aeY>6O~Sp50+v8r|*U>{(p!y3atPXy&J zB}h>~sC*Xr;b(t5jiii>2@sm2@df}Rw*-k1Y^DHr{bqnXZ|r@-aJ3&*N}Kf#Dw zwn!*UZbO*W)Y4)B-hof25dahVLa_>gW{AZWDJ|deoCGU8?Upy7LZ?v)RE&JkeZQ+^ z*REYkTD3mFPe-1Pyjr@!@Guu<;K6O4sa2!EOiFL zbce2<9$3En3_v9eXvQxuZ704b67skd5%PId!bB7X1_q;*?yyE41{zAr&%kZbX=rGG zVEh`e9D8ETcip+XG2&ukVc>Ak0C@ogu9$*C44?{1<-=`&M&SbX3oFDx!K%n+HU4JG zqU-UuHTGw{3IZU2;`#acb&ZZH0cg?&*gAD})jB)`bcOy$G5kk22z1xYKFFxu?_Lx< z#o6^&rl5ZttjYxl)oZ-&dJ9yL6Mi>6l6^n{0)wNR zP@C%HvYxU4FHvms@ia6wrQ+k`69uJZWUkaQT$;m83e z-uS_pl-o%ZoR~Dw7uUVA$lS`&V=v8v9-nS`q@OOe-=Z8JS~q(f8!hkdz5|kWPf0}^ zEe;M&#O$5>D-AQV0?^?Ia&UJi00m2q=jjGk#Pck`HUTrm2PJsR{l)BcuZz51pwPo@ zI&ceHVtVhxYrB~mNf415K!*57@d9DKK4T6viX7o!w62*Mtrp-uu*$zt@3yp*ZUo4a zFx3cB<#oOz-WCnr0p;0q3?h!_R<&9l-rnJ;xYT@17NUh?sK7pOp8+@HSLn?xr}u1~ zdL%)_AtPf1K1TtR^x(q6!Yd$RivbOol<~nFr`(6rj`sRjzVSP!M5#3fLQLx4_eK{2w2T)_%qQbBw>|8ys_slnbLkhJ-m> zjm=*r5EddRv6q`5`j0X2d><#BZLX0U;^H+BEB}a={VcVS<0y ztPX&VDGf3mxATTfcEuX```J2M7-*s6(|K&Ufg0Tq$o@c>;)Xu-Jb4ifS}1_xFxD6+ zhXb{o$?I&ZZ)cUE{gyP#2HsDYUaQ7q<-sRTMahEgCE$VAYw_}+=O$hy^>E;MI>hPd z?CfnIh9~)3T38q!Y!|)#@qrhB@cHX{&|xD32SWE}jq&yCzcdIZuWno<(x-kCAb4ms(lZq*QR(47|8CI;}Ua((EFt zytuV;sNMe>%f%YcgdOO465H*&9gjW`_Z?Ek6i)~`a_dE@jh{Ie$OYi;fA?1I-`y@y zc^may7{zes)u1XMJaTe!lr%I0mIkmT^mp5d7XEm!VDe`C@GR|n|9NtJBo$ma#}(J# zrCpQA=xU5|H!C(Cgp|KLqwHQRwO%WuY&uWnH_T*ShCG@GP56>{)@BN3Sl_NJ8>j|B z_xky*qbP7YLSz2zm!~Aj*&9425>Apd4lHXQ_uiJ#C$iD*_B!LuSt^cX&@RZ=*;qGy z=v)8wd^nie@yw0SUoTwjQvO4c60Jvh4ljaMLcZ7&_i7zXHR^z1iGL5<&|O5YvUR>%ah zls|DR{qzdALzwd4Ha@MEFp6K>^Pxe0bri{8kd6ttAtDTft-q8gg63($(aUZ&FL$Gn zs*f#D{(2!m7*&o1nsJpE{V1<;04WzHe4!X$4=}DF!!@Z*?9zJy%W#H1L06yYE2h*Ym3QL zY63<7k1u_~$VMJGq78MT<$Ct3`24oU8YA6CX13x$^3L~l)MY!bxTq6;677?*=E$ph zNpe%cFX>b;*&WND`ro7mtqM=;$G6Q4$NiTCBSeT5lc&Z5ys{_`wd}4IP?=&CrY2b` z{L9kN+Wffo^1hSbDXMH0ll{{~K({ zgLmfTh^$v5eoadi{^P*ShIpD#pH*ifw>+_IfA|59IeXX{)07CW@V7nXdPyC+fstR0g(ppa1hNB*M%vK6x{7i_gEHY6?21`>3?LOd#b zP4!B*jaNSB6{@am!j)=NQJii7uAe$igCo5`=Al9Ux?B92i_kBZZ9o z{7YO$w}p!rLlBiSGhfOsv*jGHq?gOf{*)PWTJn`gFNM7GvdYR4{p zS6i3&?ih6`{*MJ4U|6e*px&mAC~(0M{uUlVc{<0<0?nY|WqYn`LOE0P<_r}zdQRUE zwn*e8(o78`L<8Mi9*$ZoL)AtWDc9rlG+ODBO&bfGK06u*kSz*Da7MPCV%Zd`1k~rU z+g+$N%oICTE3aA=_AbnPO4rf6a}FG|;aBX}1itkwFX%qqAXuI=Zyk{fGgC zxRlO9vp>*nqSZq8FD?zyK#t!{oJx*mZf-xHE85Udnn`F#HU=s=FWXsFxx0pz(ehqI z@K*x0#CL|e`LvT0-;Kb^Xm39e#io_9GI{)b`)QT+$i2!?^Y8|iib{R@*-YR)vNWsB zU^6btp^7`;fpJZboGkKL)TeuzE>%_6b|sZn{f(7xpMO)?xGRB(cp-(XnTVQE&n#ir zbdo!qQ1Z|s>{hN&jfPLG!b{zPXqnEeKahJMO_ul%Ft&XGODmmv4*REsV}%eTC5 zes3ILVL{wigv1u&qAgQ-Pb}|J`mBSTQce_MTox`eApQTL91aDBr$|wWjLKpVJsAs@ zpi4kYO>)oGWoP7>xJYEZmmXFA6A~Klx5xE@Mn2B*gmNY(#;0CYLvwv@-0HcNbV8C< zkX)z$Gjk!8Xo(mBQ8)ufQfWAWWShOdYYNMBt;I**618a#tIwl5+f!>94`ZfL^Zh9Y z>uL2wzt4T8QG&6BlX*Vp`~hP|NLZwUK-7pm%~PCz z)t9(lS7%c%U-MJQ?`o35v$2}`pqtH?Bp|@eX>Xq(CwI-kOUT0N%n-uNYynKy=9)H$ zPVkGzpVZgM=|F^w+ig92+=d?|~e(B880vX17=K1YpnZw>6xCvaJEMI@>bdXiyj{wqN>8n=s zEvVD#fbiks=H_?(hh=$85~%-{%}V-k5|u&e+l(<3nf55~P04V!i2PzG%~-h*b8@1D zz(SZhNQemk!$#w29+`m5%wc=3ycCN-d1Y-+u`-R$f*0=Y??m*yhUlLL*u>589rcC6 zf1SzW==R%XoALPeE%oQaF(-VBmNzX<9yr`rMq%f%m=(6(h6px0lfD)?muxO!VJ4XZ zvNKu861)x&U73hu=HOcPC=#Bfxm;cj*Ij|LCMR~<;PPo-Vti;RIa#aLw!a?qPBI10@5k|xjcXxluJ%kTQN}6W3{$kwh zHr;*%kI%p$h9CWB`xl>c$oT!OFI`>NMf<;zRQ$M=PflpHa&L|u~CAs`{^;#;HR&#UAnVNabV z_r7B7dgPm@1tyl;El2hTz2-+cV(yb?)|7%%W?<4Z`VW}roCH$wZW|b#3j{T?pp!nR zV$vewX~MLBB%FzaMqCzy-cbIgHdpK22`;fsO^ zJWnwaCMTb`wUj8nExozLT+E7mb({5(_(Bce<@>(KB@)~?h69JE>|*?9*&#`jDNR(M>i9r+A5)0MHHQcXH=n>!@4n{}{3G};1q0sJU z8#;$ShBICt&)Q4=ttN;~K@Aw~N1dv_U79H&pcNN?iqzRmBzL^KZgH1xJI$Z-gu(3x zw4yQgA6~jN*5Be1Hhq06`M7H^OoI000t{zaS7c6e*jm*|e&pZ@$vbSLvfSk`jt>hC zMYaoE>}mAAEF=}PVM2LmA^pkezqtHo$Yb@s_C8~4zUC?8$Uao<5*7YjxKR39zPBjsLU4B^B(T1j|I|h&K>t}IWQSp0)$O7 zb4|~Si}UWza8a$NVtqF;As~aM_046PPNdWmrvj^Ojh~?p^uHAt|Mb|zFBc}JXPf@juh;P1DtBCS zs-XVZvY3q)HR*)*qIm63PtUV@59YAhwjoPyFj>6yhqT`BzOq<#V0@XMBYP_Thdr62 zbW)7(DL&){zM4((ncz+&Nmm*@Z8DeeTS2oFNJvPCk)h$oX!&D33YhzeXQfK*sh>*D zwY+$W1fJ+~ZORvdB|`GtWalU|m7F&X*yFX|Hj8oOH;|<~(v;erCc*>7dk{1ipv_w};%3&PJ+p=3)(gt`TJ zIp+ANOWO9WJuqn(4BvuQiV+z3e3K{zrrzX%ER$915f4VBf1;90Tw7v|Wch~(a9~1i z3G_OQ$BT@7$?q6N)bPW!>#*xh-iG+|xbn8%&}Odo87|-0pB5~~m3I`waU@8B~` z5SUy0uYi=O&)fsl3FISarp_c3ZZlj4S z{&pTpha<$v$(fUrQwiGXK<+8kuEzxZHJCaLrUuA#15)Bp4IbFs53ujI3jxT(ugUQ2 z@O$F8$)=@p{piY-mUv}$pc7Yr2oc)e`n;Ju!sU86{9x@kc)k8|D%W}Aw{xvB>o+mY z8#aut>;z6zO5=Wvt20H{~{Mr1; zOqJekR#Dlskc}Nx$ibDGiPibk=Q`(~BQu{m%Lc~kHB*cPD|5f;hD({w)tiHw+*y`z zI*0Diy@+BHGhr|Z`_tN?|ErB^s8fN9;v0wUdGzSmT!p{0DLgIkFdD3mPbOSK;4_oY z)0&pVEKtzs8@i=gEg_i9S_J)WrRpP?rn=@_Ace&ej(7y7V)DQ!NKj}f?(^r}>iWJt zK-lznxZVUnbWn|N4|JMAdS1GSUCDhX-c%=~#9AFYUt1Wc0SPR|#cWlmpkowaCG zG8SWL*i$=&G z^TCdo%&5^}%!+8i-eT*oIAeFm4MxiBKG(ahb(tuguR0i6KWa|ZtvX)5gj_t{k_n6z z7%gv@tw;>bGJehRIBY(pG`DiB{9$lmUAv{BjENmPC^FO89(J{aaOUXv2Ie5#@bzuJ ziW*5R2gJtp8K!;P4n7&Be_3}LLoZY(dwOxWO=&IL?~wvrBVS$(KM#hJxmlpu^)=eZT(cD&v1c++a9PSTUYD9>}ml!*^FFg_S2Vc{UV``CqxXXpaDx>US!roRU=-7HPmwR-0+H#o>q*y# z$lodG&@TAs*w>Cke->?MIOv}WqX4#Qw2}EPh-Q5-ReyFdEL!jTMMn?I?v5(OLRP@W zjVoj>Szr)Afxx#Z0-Y&vmIbeJTCAH8mdn&^~WaG>P@z>@MIu z9&L|$AIlL<?v zkR{QIZNf?E8Yg1}Iv+fwO>RccpX*PwiAQJIj6>=lZpz7O#=H<8oW#P_W{nGctnj3$>lUqlr#h zIvV0avgZ<$O2YIfAZqh$CQodYhI-QA@dMOrb|62N{t5>x?%MQ+dq&5`fV-9hUuC^7 zd^i1Fb??PBvFTivt*G-&?CYRte=J`gJ}GT&u%eDCkx=+AYQLj3+2G{CjSp~D<4QA} znKz#vZV(fL%BK5QIyH7a4z$YHfrRPX_*wrb5u&zS&`}R`O5*n~&B6P8pjsUnB^GM6 zia4(#8NL=@FRivT{0PgdH9bK!R+Iu6AiF5y70*lw*@>~eEs|HBo@tW7Dt{w2X69p+3jAw_Q_&1yF)WG)o5 z)A!2ZxfJ)1vLQ1-qm3-nA15oC5&n{i1&B=GEnOkeLRsk%zlSi|8=b4HN2h^xQ^v@{ zWFD4r2)dlrZi-g+JJ#eTEVUl~emLD38x6a=GG4v;#lY{qa^5M*?b;BTKZ6#39tgU?tWa;q&34s=`OF*(AWr7BD-ZfCB zKHtLf$sT)ly3U8ARt67juk9oF_%y#PeWREuSqvTw(tw*zy#fK3SqfgQ4*)V#M&lsV zzK{H|Su*ft_`9j>$B$m*NqYIli6K{P7+HtSzw6?;rFpqEG@0sjsk}H*y}k=Ddp;A! zZa1Q;()U9R&<)4G8oK?V!d@a+40H<-j?5LPbybn76n=}Qc=>BOyw5d({IKQg_Gd`K z^}(!C{9Q&vTE`EBdPwrM)R3_B10-F4TWV>hwrFndk523Fj065(T)qW=qG}28s z`&xlF?-_#q_6DWDq7d;s)pcQ`H8;N_@Qt*+zX|r6TamKI_Gws!*OuR)98l&_&9!&t z?o#k#=`whA0cI5RuQ4EUx;(3=+lBdNva=C3BqW<;lw1OVQ#-e;h2HxV+~ph;pZ;Y3 z1PlHmT-NJ8OaLlNb;>>ljKLfvCPpyDBvLqrr*=Hb`iF`dXRh8}?gXei&{9p0C{o>( z`1bBI8-Z!ZOu$A~ggsa=C-G%=l`_c0Yu?1IVRaOEx&F494FP#@D?ScodnzlzpZaeS zX`T}8RjIZtQq3>Pn}R!!6j$+sRE{^r8q6l9&jh?8n6I751c4xoL|G#KI0ZR9Cma+R;97jU$F;(d4!>fLs*aV>dFHQ zKL~-&e*FNfq#- z5Q@!Xf&yg0@$~`R2B#-U0#xoQrb-_;^zVEkW&1?1a~wWg;vo_)24ssy}hHY z-tJ(C2#g-|fE!|9JPMbDL>Ie98v16x15WtnvM(k*LUw-!(N;s>C|~M%;`3Ca2(Le(!7y^q(wDG2di~q)kuUfi7%~x%dQj%!3ry2o47q zv~be+MCPI}v-?_oFaAlJh_*Ic31;uWodqZ0yDmH=U^uw9zdsC2(h!J(xRm%?AN|Mh z=QB;s=~|ztj){^=hqtM4SYrD!5)>750^P{G3^B>s`9HoQXfIlJwM^|UZCfm$Cp5R6 zKe-r*Ote5PsoDJa|1Wr;@Nr|$))f13Ormfo;%OUeQ&d+ zW!PLb^5s6V!SQl)KO-UvziCrceHn>_g@pwg)&IojfozB5qQCrFDA~u(fYkxURbFee zus!={UkeN`{HdKu$Lere(~t};&Di~-<1Q}AyFxZ8_v#{va4S8YNi~~m7gpzug5Jrr zPe?04F06O5+bmmjunW9|5?4~tCmA3dHaH-*BKeM$o}w?yuFbEKjmPZuew6Ewn{)^P zF~8_t0*%AOcbs-i=l3k()JtG00dTEOoy-5`JYZ+7EHU?k-TaezAY9>8)AH@LITge8 zz~l=J&m*_YcgYC9P6HcYOlKdfq9ffdsiz7>mH(Y57r>f^#12F? zaNv2uNkC9qUR^}Uzyx=ck8X|J!mPJFZ~!+U!qV1!H4oV90``dWm zU3_2wZb^d_mIBOyQW)&*O*4Z#6?Yx?U^K2!kvY@7xPdCbQTppMFhvV#z#q&UT|2sF6y(;GybNYf*o^ zZg>$dRZk@@F+6@Ej3=LTS#Ix^+m`<+{%$o|R3aeE)KJkY{z3X#zsti7 zwpXBmWyOt4(X#DMOlC4Dm1F$w|I9Unf$kZYi!xAEW4KQytCoO}kdT}b?}6z`DPiF* zSk>S27A``&E`8eb6mmq!{}QMksa!dqV)G}eL8lo1-Y;H7c6jvDW64UtIHPKQdT47{ z?z@+%yzVHT%@s26WIv0S5Erx@pGFP~Et;7ok2W?Hi^QS5KZ$M*OJ*W3jCQV9KThE& zQ-Nj_j}dMC*uwrwq2y6jz!~n1zj)r`dVCyowja9Divh%D6rE=L5+@ea!Ej0BkKNtf z*tocXAhU3AOkTOm$UFrsWPqJkgO(3?Mnc0H)ByX=fg}BKh`+F0 zM5*U!PdxF!cwkSSWIQ2@$uHI?7E(RgNKAG;XhxeGXV<5M{Aib*fwIIS)z5^F`f3T= zuC961DV(hmTS>}1VJ+9<-OwLF=cnE{Kd6t6>2Fr4fe&INDs`s%VR)A3cn$?p^JgUZ z-lC9klAd{`>+L2fpQ?8uHSiZ}S6RBG`^VU1eB_?D29Xd~#h1fC{t=jcM5j6A_k6}T z*Ig6YCI4hGTn8{fc@1u=Wz`Z^8y}z=-2G1M9!xaH zJxM8@N1-Vbk)GNb2xjbcuCXCDpEQp zAt1a0ztTx&1glZqhbYm;2}9j2#jQeN9e|N7QTm0-W;w z?o|Is=Ow75D)U%25sw~<_2$H*I*hjzaK+EghC`^2Cmwe1uA#s5KnKe=Ez!`Sa?iI_C{MJ!teXrU3U>*GUu zv7QT0dXr19`Np8q;vRbCu?7>_e#_@FtsZEuHqMfj^-c_0IsQ=Q|fMZ`>w%hXFePD^A=Y#tv(i&`$XouEVWYLgRW(L$3EvjaFFbO?Ahz62vi za~q1fI>eo=w=qD}PkMMjEYnvvnyU840pb!VxH&$x2>wq7U|Kz9O3yoz*|?X_`k2}{ z3e{kA_%Q5l2>~*PgxO&{*I=Z+?!RIOe|ovNbm%{6ulg3RMQJK}8LIv*qFLu+&(T!3 zSq@y}--?f~D%M|Y`1Cnp_Iyi4PZ!+aiHy>dg-=cKoRsA6}%y@H>rcy~U~3y?G!_yys^ zW&5M!a#wKIn>LALZTRFL=JLaNg-8ett=_BW%g8;{*JDJ8?RrsW*ZTEbByosq<5#XF zo6yS5ci3ChxL*rnJ-2ZH&oGpb?WvQ*g->F5Z%J=0|G0ZuGV)Zz8;5-9)Q;V=)$ki^ z#pJ7JmcmF+MNQ0%9@`(6A17Lr`1?=q{TiS5@b1cIgUZCw1O5AT>cegE8;jQzPH`Pa z4lp8HV`p1Tieip$4Yw(V@?Jwj!w^q@C+}cU{>uB1s8HYyL%)8K8Z;!gv*!8)63Cgp z;v#`#l^DlK^yH-PYSQOHi$3L!9|4FPD%MAJyAm7Iuk^|W?^Bu+OJ>S0ynO~1xl~U71>@LE65n;gDkkQ{B2^xB_NZ1 zU{Aa~nA)Ur+XF>gJ}53GGd>33-e`&BD|=4*z{1?pd|C<6lf!1&A`w-?$K0P;zFgP& zt8zhx6lic1qI~DX{nB3C+AY!|sxXibYe;so)*A8BlSssgr4HjIb|oM{L_{ExI0UXA zD8T5Ga_>-*Z?3kHt>(>*h}FSd|26^%K`4xDm){`e>u&D~nBdEHJnEuPgAxdI3;uvR zdgk;qd4uF|gIu0*fS5S7O@sT7_6Nk(_eN7hh{)xAmCF_=fD|k*q^utr{S3f2-5z-b z;eB@+(Ml=7>+-p>Qv_R!UQV}ph1EIa@1w#St71*9CI+7FvT2u>NsflA9n?+=pI?m3 zHHrXg#T}StHAQihrdqToy-48g2SWR3X7n`*TpAKbf#wr;jl!IH8e*d|&yxGosHuI~uEwE)|zRMuvIU^??eZVOUDYlW2ei`LGuWvoY|p91GTOXhm}`nPTA&5o0&=xkh{a{GQ` zWvR5E_`jHY%cv^b=-n3(K~khcI;2Ay1Qeu08YBdy5hSD=qyzzJ38g_oN=mvUr9ncZ zL!?U@_FTUIea1Q8&KUd4{=j${FKfA;^*ndXd(P|nO-wigecuaL zp7V}x-xjvF2e7yrT0lbV$hP`{S2-EU=H*Ox!J>*nTeV4hngt&3nM+(+=1M+R%%%{f zMOrPHQ;J9Z#Bsi598GWUokpgZh8HAv2$%x#Y8!!QVH&X`chOdH?ZkIu;sdJj%j0Qh zHrk?lggSM#LV;d?=|qJ{UA{WO(JDH)s0d;|HY~sT))}MHC5!yk8pqEL)f{4P2HJA~ zeK2aIncWIjhBWO8_4~^2 zW3_u6uNKOCN_A%}+St*{1z|MYLGz_~wf1Rl(=C!S#{ch5td zzFANDty~o2H_r7(&VBR1;kZxa0p0s>=qDr^_6^K5fd)q(Urx57QZMu@W)vC`H<+$wnfP>AW ztlFquJ!a-X!M_dtJ1IA*!`4rdL5!WGlZl=jjEtfpHUMF?F-D^ze0TuxdG}t|J71sq z52|X?dpX3xWUemQ+?eJO#SfCx$4NcOdQmgsOY@OJS50KH4&E{)T}5X?BT(+yD)Q3! z_A|4?uO+Pj z3VAP-)pk@Y+{=s8Gq&!myUHsVr}tT=bV5RLFE?DABXTIBP+ zly^!9nO6xCcb+mMYz~1CFGG#sj@T>W@&l5LO1G9OH!fH}t3R?JBfRJlBwVXtEAX2y zN7xM^>a=8OdI)f&5l~xPfuR=#1x2^Po#*;|?pldbn-c^)Z6Vl<8zYRGoScX?RqOSoSLuAvAtrZVZ{7HrcwDyhHJs{!&hUrMm6@_6jT%CI%wUw#+Y&AB zQY80p*WaQROYvXn`y#QYEZgf$CM}2D}*7?j9Pl6{|=-GkJ4imW+sdX#7xl?(7n>?UHRdO zt|vE5AwU5LoEX%}5R-j&b`~6kdobC{0I30P$w3s%gLQDHU<20+Tze;Ad;1N!kf#10 zc~He^lZ~c@jC{PSD{8TBfY#~$6YUVZ9JBQ>#ZkPZLfZSn5g;{{B;dWJ+|9tp^LjT& zY2Rj3rzn1G_f^ib46LI-gHI&C>CO)lxG{6_)5&;;@^j;WdJ}|037K8~eZ^yOh)5UA z9OxuIM4O%Djc!s6qX>GjK^|oB7H!x^p162Ji9m(mIUOUDiP{)MJ_X&rqvAkG2=nH5 z&nl)wC)UqhtKzoIA!CI2KT7DKKB_uBwJ=%z8D1(n_yFfSxFWy>LyqunK&1`v9eV%? z;s#$oFo4um9mNwWEBR(-X27e$31Al_aKgj}+&~}6f08b{Z8YhF^xAYZ>^(Q~T6?o; zndYmF#^fBWk~fcTReIi-s`Gn!eIY@w|0G35)+RBEFEVkAo$}54R7b8Qh3vBUTNu2( z&u}&W4t&+xbInL8rPn5Q8hdHIJ14FK^V(FaJPR(8!kV1&L-SSY&+_%k!sXUKO*m?- z=6)@Kg!RVAjuA=zk^wuLgXZaD-ewjX*4N`kK@4U?HBZU%oJ(H*c^6J;!i{&jcaLFb zGN5fF*56#Q{Kb#&kalE_8@ypPFpwrJ1qT-JkMPV2f_)7ja0mw-_2jec;f!Icw|@CK zIe2(@s#X~Dt+y@bn@n$r1jkxOo;$YH|KUxrv^Nh3eNFTcR~xl%8lrne{~{b@&T7=J zQws|;FZdKhr94GiFJH+R>bbk)Ra(>kOJA7_l*r@`t!zkHIioST7Prl7KhdV(TH*3N zB7c7Mb-Pz>{r2(y)GI(HeIZhvuo-d?AEY9C^1eI=T%?%#`hnU$ufZ0Shg;P0-Wf0K zD?o?5=A|8-of$v@H@IclpK{bv;TqhN^-5pl+NO>*= zv~kUr8D(WHZrgX;&~DRS?wUx>QYwMGQCBDNM%2R}NUQ2&{QgLEqV<{_hV;qkc1qZ- zh}0#{x5DSrP+*Z-*|de#E)XwJO@E+b!vGbLf#us5HrQOYJhaZ;JWt*&H+{8gxiLpQ zc-+}n;JTkFc&m;>`1{llgNWv_h4s!^9&W*7ZZk8y5kI74%fZA?r%dTpXl0L&SwDmN zxTmKF<~-RBZ2Nb|i`IUnxApd7%F1>b)U+|hN%Ro1i-}dT~o}aAlh{D&L>=AMaFS|pJC{LN9 zH{>hD^vp>;X0qIef+muCvy{0og%q*|Bt{Xr@<#zy?d=%r5=e$T&pu_*5bB|T8Ql-e znCAOE8DK+K0$(y%(*axc5geJx{e;}HW;WVHZ1`nPH~%FZsSw*t(BIatw2Il}zAE1P zP6I8)gU5y|wpOv$H&|s52~X!;Jc#IBInvvA4hGdenNhEVCSSBOj_`>fB$8ho_v}CN z$r4jhLB#kOu21!)|bAuQl{mdv-n%D~=~W#^Se>S*s&NZaFTNF>XnAc&16J z+dqI*U8CGumHPVhz+5LucG8U}+=x@wG*gp%V?4#_EK@S)?{S~?se=n*Pm>JAZhe<* z{ijSRYX~2rJe>o8fH{GEyiFvCLH=e(iM;8>s^3jw;+)M{<*`cZia845OJvJNJuI+{ zfU@}1YEAmI?!jYMT_H&EWj~Q?fs6u5BKsq2Q&Sj9df=D<%LVeTN}rSF9_K~VTJ8re z2wqDJ0!C&(eviw)MInqCgE+s18w4=;1Ln!h%nS)ilvA~i^q{eSbSpqX`&?1Ie17-h z;KcWejG2(ZZb|`|b@!)`(`?zFo@g6tD%_O#7%~4d&Lj`Fhuzxr`K|RiYC}!JKl>{f z24C?LUcZLb*6Yi$A;R%MBd9NP^+e_SGtJ^6EqdcAb;2J%a;P83otzWkF>P09k6|(( z+fI~Fg6ACF7~HnrAnx%7>Hr{!@@T@77z)CK8V~VjHS&?(?e?=SCUNjWkedY?-qQ5S zcS->$y1eX+pY@gU7=|j}NVCNBJ3RJlG6S;(*0m?z@fxidwnD_%EyX%Ey8DQF!hp~xfI&(xZ1Za|zU@^|}J9~iwmLHmi7Jk0!5Sc#M%Wv&?@TJ*(ZXL;ez=ba z^`2yp@;aX14D#PTy0q4A{WV6LpzwFFss&Diss(bh<*$FQ^C~F!$-=|1sY-#d2#A0H zAV7dS7~FO5K60)R#pNt^e>O6j3B|cV<_|*1OpQA{A@7xJ@ljDLIh&Su6vA1GPBz#MLEoSjzq2Woln; zxP-NJtNt0P>q^(V7>FZE^knw(eJj2o915A$0u5%$ySFYZ7`0b=!I<-W!9s~O;;I&- zB}Zl4u{t3;N4dY?l_jhx$WC?59UOYL)BfQP1K95i`CWMfS%!q2gTrGXn8ZJA_!T%h zxWX10I(1fAMO(QPx<;sl`e!z;eHilW*Bb&mer_MZ1al&i zR1#AXvS|w$3x>t`Or$h&c^(q4pMQMu&(sqb1r3eij*X z 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ⅅlIBBTDGZV!fxIbTco<7HCbC+bn)+Dnz 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 E0WpOWVgLXD diff --git a/doc/timeplot-mimo_step-pi_cs.png b/doc/timeplot-mimo_step-pi_cs.png index 72ff81bd3261b98d2b7f7f5c1c11e649ce11dd44..6046c8cce9e5a91b3f4d0a93e6ba7476371a05fe 100644 GIT binary patch literal 31861 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 Date: Sun, 2 Jul 2023 17:20:11 -0700 Subject: [PATCH 0334/1025] add trace_labels option to time_response_plot() --- control/tests/timeplot_test.py | 31 +++++++++++++--- control/timeplot.py | 51 +++++++++++++++++++-------- doc/plotting.rst | 14 +++++++- doc/timeplot-mimo_step-linestyle.png | Bin 0 -> 38704 bytes 4 files changed, 76 insertions(+), 20 deletions(-) create mode 100644 doc/timeplot-mimo_step-linestyle.png diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 2ade00ec1..9d2fc6da7 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -321,6 +321,22 @@ def test_linestyles(): assert line.get_color() == 'k' assert line.get_linestyle() == '--' + out = 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 ['-', '--']]) + return None + # assert out.shape == (1, 1) # TODO: fix + assert out[0,0].get_color() == 'blue' and lines[0].get_linestyle() == '-' + assert out[0,1].get_color() == 'blue' and lines[0].get_linestyle() == '--' + assert out[1,0].get_color() == 'orange' and lines[0].get_linestyle() == '-' + assert out[1,1].get_color() == 'orange' and lines[0].get_linestyle() == '--' + assert out[2,0].get_color() == 'red' and lines[0].get_linestyle() == '-' + assert out[2,1].get_color() == 'red' and lines[0].get_linestyle() == '--' + assert out[3,0].get_color() == 'green' and lines[0].get_linestyle() == '-' + assert out[3,1].get_color() == 'green' and lines[0].get_linestyle() == '--' + def test_relabel(): sys1 = ct.rss(2, inputs='u', outputs='y') @@ -358,6 +374,11 @@ def test_errors(): with pytest.raises(ValueError, match="unrecognized value"): stepresp.plot(plot_inputs='unknown') + 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' if __name__ == "__main__": # @@ -450,8 +471,10 @@ def test_errors(): "[transpose]") plt.savefig('timeplot-mimo_ioresp-mt_tr.png') - # Reset line styles plt.figure() - resp1.plot('g-') - resp2.plot('r--') - # plt.savefig('timeplot-mimo_step-linestyle.png') + out = 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 ['-', '--']]) + plt.savefig('timeplot-mimo_step-linestyle.png') diff --git a/control/timeplot.py b/control/timeplot.py index 615ed2b6a..4795b03fb 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -12,6 +12,7 @@ import matplotlib as mpl import matplotlib.pyplot as plt from os.path import commonprefix +from warnings import warn from . import config @@ -48,7 +49,7 @@ def time_response_plot( transpose=False, overlay_traces=False, overlay_signals=False, legend_map=None, legend_loc=None, add_initial_zero=True, input_props=None, output_props=None, trace_props=None, - title=None, relabel=True, **kwargs): + 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 @@ -161,14 +162,20 @@ def time_response_plot( time_label = config._get_param( 'timeplot', 'time_label', kwargs, _timeplot_defaults, pop=True) + if input_props and len(fmt) > 0: + warn("input_props ignored since fmt string was present") input_props = config._get_param( 'timeplot', 'input_props', kwargs, _timeplot_defaults, pop=True) iprop_len = len(input_props) + if output_props and len(fmt) > 0: + warn("output_props ignored since fmt string was present") output_props = config._get_param( 'timeplot', 'output_props', kwargs, _timeplot_defaults, pop=True) oprop_len = len(output_props) + if trace_props and len(fmt) > 0: + warn("trace_props ignored since fmt string was present") trace_props = config._get_param( 'timeplot', 'trace_props', kwargs, _timeplot_defaults, pop=True) tprop_len = len(trace_props) @@ -365,10 +372,14 @@ def _make_line_label(signal_index, signal_labels, trace_index): label += signal_labels[signal_index] # Add the trace label if this is a multi-trace figure - if overlay_traces and ntraces > 1: + if overlay_traces and ntraces > 1 or trace_labels: label += ", " if label != "" else "" - label += f"trace {trace_index}" if data.trace_labels is None \ - else data.trace_labels[trace_index] + if trace_labels: + label += trace_labels[trace_index] + elif data.trace_labels: + label += data.trace_labels[trace_index] + else: + label += f"trace {trace_index}" # Add the system name (will strip off later if redundant) label += ", " if label != "" else "" @@ -471,18 +482,28 @@ def _make_line_label(signal_index, signal_labels, trace_index): label = ax_array[trace, 0].get_ylabel() # Add on the trace title - label = f"Trace {trace}" if data.trace_labels is None \ - else data.trace_labels[trace] + "\n" + label + if trace_labels: + label = trace_labels[trace] + "\n" + label + elif data.trace_labels: + label = data.trace_labels[trace] + "\n" + label + else: + label = f"Trace {trace}" + "\n" + label + ax_array[trace, 0].set_ylabel(label) else: # regular plot (outputs over inputs) # Set the trace titles, if needed if ntraces > 1 and not overlay_traces: for trace in range(ntraces): + if trace_labels: + label = trace_labels[trace] + elif data.trace_labels: + label = data.trace_labels[trace] + else: + label = f"Trace {trace}" + with plt.rc_context(_timeplot_rcParams): - ax_array[0, trace].set_title( - f"Trace {trace}" if data.trace_labels is None - else data.trace_labels[trace]) + ax_array[0, trace].set_title(label) # Label the outputs if overlay_signals and plot_outputs: @@ -622,22 +643,22 @@ def _make_line_label(signal_index, signal_labels, trace_index): if fig is not None and title is not None: # Get the current title, if it exists old_title = None if fig._suptitle is None else fig._suptitle._text + new_title = title if old_title is not None: # Find the common part of the titles - common_prefix = commonprefix([old_title, title]) + common_prefix = commonprefix([old_title, new_title]) # Back up to the last space last_space = common_prefix.rfind(' ') if last_space > 0: common_prefix = common_prefix[:last_space] - title_suffix = title[len(common_prefix):] + common_len = len(common_prefix) # Add the new part of the title (usually the system name) - separator = ',' if len(common_prefix) > 0 else ';' - new_title = old_title + separator + title_suffix - else: - new_title = title + if old_title[common_len:] != new_title[common_len:]: + separator = ',' if len(common_prefix) > 0 else ';' + new_title = old_title + separator + new_title[common_len:] # Add the title with plt.rc_context(_timeplot_rcParams): diff --git a/doc/plotting.rst b/doc/plotting.rst index ddd44b56c..d0d7bdac9 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -77,7 +77,7 @@ following plot:: Input/output response plots created with either the :func:`~control.forced_response` or the -:func:`~control.input_output_response` include the input signals by +:func:`~control.input_output_response` functions include the input signals by default. These can be plotted on separate axes, but also "overlaid" on the output axes (useful when the input and output signals are being compared to each other). The following plot shows the use of `plot_inputs='overlay'` @@ -119,6 +119,18 @@ that are used when combining signals and traces are set by the `input_props`, `output_props` and `trace_props` parameters for :func:`~control.time_response_plot`. +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( + 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 ['-', '--']]) + +.. image:: timeplot-mimo_step-linestyle.png + Plotting functions ================== diff --git a/doc/timeplot-mimo_step-linestyle.png b/doc/timeplot-mimo_step-linestyle.png new file mode 100644 index 0000000000000000000000000000000000000000..9685ea6fac0cdebacb4ca235f454a247696ee099 GIT binary patch literal 38704 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 rAuaux2N@k{X`)8#`~N@x(G&H!_3`mt6Kr=B{PW Date: Sun, 2 Jul 2023 18:10:05 -0700 Subject: [PATCH 0335/1025] fix shape of output for time_reesponse_plot() --- control/tests/timeplot_test.py | 36 +++++++++++++------------ control/timeplot.py | 48 +++++++++++++++++----------------- 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 9d2fc6da7..f48f20db8 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -135,6 +135,13 @@ def test_response_plots( out = response.plot(**kwargs) + # 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 line in ax_lines.item(): + assert isinstance(line, mpl.lines.Line2D) + nlines_plotted += 1 + # Make sure number of plots is correct if pltinp is None: if fcn in [ct.forced_response, ct.input_output_response]: @@ -142,14 +149,9 @@ def test_response_plots( else: pltinp = False ntraces = max(1, response.ntraces) - nlines = (response.ninputs if pltinp else 0) * ntraces + \ + nlines_expected = (response.ninputs if pltinp else 0) * ntraces + \ (response.noutputs if pltout else 0) * ntraces - assert out.size == nlines - - # Make sure all of the outputs are of the right type - for ax_lines in np.nditer(out, flags=["refs_ok"]): - for line in ax_lines.item(): - assert isinstance(line, mpl.lines.Line2D) + assert nlines_plotted == nlines_expected # Save the old axes to compare later old_axes = plt.gcf().get_axes() @@ -326,17 +328,17 @@ def test_linestyles(): 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 ['-', '--']]) - return None - # assert out.shape == (1, 1) # TODO: fix - assert out[0,0].get_color() == 'blue' and lines[0].get_linestyle() == '-' - assert out[0,1].get_color() == 'blue' and lines[0].get_linestyle() == '--' - assert out[1,0].get_color() == 'orange' and lines[0].get_linestyle() == '-' - assert out[1,1].get_color() == 'orange' and lines[0].get_linestyle() == '--' - assert out[2,0].get_color() == 'red' and lines[0].get_linestyle() == '-' - assert out[2,1].get_color() == 'red' and lines[0].get_linestyle() == '--' - assert out[3,0].get_color() == 'green' and lines[0].get_linestyle() == '-' - assert out[3,1].get_color() == 'green' and lines[0].get_linestyle() == '--' + assert out.shape == (1, 1) + lines = out[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() == '-' + assert lines[3].get_color() == 'green' and lines[3].get_linestyle() == '-' + assert lines[4].get_color() == 'blue' and lines[4].get_linestyle() == '--' + assert lines[5].get_color() == 'orange' and lines[5].get_linestyle() == '--' + assert lines[6].get_color() == 'red' and lines[6].get_linestyle() == '--' + assert lines[7].get_color() == 'green' and lines[7].get_linestyle() == '--' def test_relabel(): sys1 = ct.rss(2, inputs='u', outputs='y') diff --git a/control/timeplot.py b/control/timeplot.py index 4795b03fb..76b4fa94e 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -48,7 +48,6 @@ 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, - input_props=None, output_props=None, trace_props=None, trace_labels=None, title=None, relabel=True, **kwargs): """Plot the time response of an input/output system. @@ -162,19 +161,19 @@ def time_response_plot( time_label = config._get_param( 'timeplot', 'time_label', kwargs, _timeplot_defaults, pop=True) - if input_props and len(fmt) > 0: + if kwargs.get('input_props', None) and len(fmt) > 0: warn("input_props ignored since fmt string was present") input_props = config._get_param( 'timeplot', 'input_props', kwargs, _timeplot_defaults, pop=True) iprop_len = len(input_props) - if output_props and len(fmt) > 0: + if kwargs.get('output_props', None) and len(fmt) > 0: warn("output_props ignored since fmt string was present") output_props = config._get_param( 'timeplot', 'output_props', kwargs, _timeplot_defaults, pop=True) oprop_len = len(output_props) - if trace_props and len(fmt) > 0: + if kwargs.get('trace_props', None) and len(fmt) > 0: warn("trace_props ignored since fmt string was present") trace_props = config._get_param( 'timeplot', 'trace_props', kwargs, _timeplot_defaults, pop=True) @@ -306,35 +305,33 @@ def time_response_plot( # Map inputs/outputs and traces to axes # # This set of code takes care of all of the various options for how to - # plot the data. The arrays ax_outputs and ax_inputs are used to map + # plot the data. The arrays output_map and input_map are used to map # the different signals that are plotted onto the axes created above. # This code is complicated because it has to handle lots of different # variations. # # Create the map from trace, signal to axes, accounting for overlay_* - ax_outputs = np.empty((noutputs, ntraces), dtype=object) - ax_inputs = np.empty((ninputs, ntraces), dtype=object) + output_map = np.empty((noutputs, ntraces), dtype=tuple) + input_map = np.empty((ninputs, ntraces), dtype=tuple) for i in range(noutputs): for j in range(ntraces): signal_index = i if not overlay_signals else 0 trace_index = j if not overlay_traces else 0 if transpose: - ax_outputs[i, j] = \ - ax_array[trace_index, signal_index + ninput_axes] + output_map[i, j] = (trace_index, signal_index + ninput_axes) else: - ax_outputs[i, j] = ax_array[signal_index, trace_index] + output_map[i, j] = (signal_index, trace_index) for i in range(ninputs): for j in range(ntraces): signal_index = noutput_axes + (i if not overlay_signals else 0) trace_index = j if not overlay_traces else 0 if transpose: - ax_inputs[i, j] = \ - ax_array[trace_index, signal_index - noutput_axes] + input_map[i, j] = (trace_index, signal_index - noutput_axes) else: - ax_inputs[i, j] = ax_array[signal_index, trace_index] + input_map[i, j] = (signal_index, trace_index) # # Plot the data @@ -361,7 +358,10 @@ def time_response_plot( inputs = data.u.reshape(data.ninputs, ntraces, -1) # Create a list of lines for the output - out = np.empty((noutputs + ninputs, ntraces), dtype=object) + out = np.empty((nrows, ncols), dtype=object) + for i in range(nrows): + for j in range(ncols): + out[i, j] = [] # unique list in each element # Utility function for creating line label def _make_line_label(signal_index, signal_labels, trace_index): @@ -402,7 +402,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: line_props = kwargs - out[i, trace] = ax_outputs[i, trace].plot( + out[output_map[i, trace]] += ax_array[output_map[i, trace]].plot( data.time, outputs[i][trace], *fmt, label=label, **line_props) # Plot the input @@ -425,7 +425,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: line_props = kwargs - out[noutputs + i, trace] = ax_inputs[i, trace].plot( + out[input_map[i, trace]] += ax_array[input_map[i, trace]].plot( x, y, *fmt, label=label, **line_props) # Stop here if the user wants to control everything @@ -457,23 +457,23 @@ def _make_line_label(signal_index, signal_labels, trace_index): if overlay_signals and plot_inputs: label = overlaid_title if overlaid else "Inputs" for trace in range(ntraces): - ax_inputs[0, trace].set_ylabel(label) + ax_array[input_map[0, trace]].set_ylabel(label) else: for i in range(ninputs): label = overlaid_title if overlaid else data.input_labels[i] for trace in range(ntraces): - ax_inputs[i, trace].set_ylabel(label) + ax_array[input_map[i, trace]].set_ylabel(label) # Label the outputs if overlay_signals and plot_outputs: label = overlaid_title if overlaid else "Outputs" for trace in range(ntraces): - ax_outputs[0, trace].set_ylabel(label) + ax_array[output_map[0, trace]].set_ylabel(label) else: for i in range(noutputs): label = overlaid_title if overlaid else data.output_labels[i] for trace in range(ntraces): - ax_outputs[i, trace].set_ylabel(label) + ax_array[output_map[i, trace]].set_ylabel(label) # Set the trace titles, if needed if ntraces > 1 and not overlay_traces: @@ -507,20 +507,20 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Label the outputs if overlay_signals and plot_outputs: - ax_outputs[0, 0].set_ylabel("Outputs") + ax_array[output_map[0, 0]].set_ylabel("Outputs") else: for i in range(noutputs): - ax_outputs[i, 0].set_ylabel( + ax_array[output_map[i, 0]].set_ylabel( overlaid_title if overlaid else data.output_labels[i]) # Label the inputs if overlay_signals and plot_inputs: label = overlaid_title if overlaid else "Inputs" - ax_inputs[0, 0].set_ylabel(label) + ax_array[input_map[0, 0]].set_ylabel(label) else: for i in range(ninputs): label = overlaid_title if overlaid else data.input_labels[i] - ax_inputs[i, 0].set_ylabel(label) + ax_array[input_map[i, 0]].set_ylabel(label) # # Create legends From 3290809621d52792061ec776b28cbf9ade2ed399 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 2 Jul 2023 21:14:27 -0700 Subject: [PATCH 0336/1025] update line properties code for Python 3.8 --- control/tests/timeplot_test.py | 1 + control/timeplot.py | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index f48f20db8..1f120937d 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -312,6 +312,7 @@ def test_combine_traces(): combresp6 = ct.combine_traces([resp1, resp]) +@slycotonly def test_linestyles(): # Check to make sure we can change line styles sys_mimo = ct.tf2ss( diff --git a/control/timeplot.py b/control/timeplot.py index 76b4fa94e..44729c5dc 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -395,10 +395,11 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Set up line properties for this output, trace if len(fmt) == 0: - line_props = \ - output_props[i % oprop_len if overlay_signals else 0] | \ - trace_props[trace % tprop_len if overlay_traces else 0] | \ - kwargs + line_props = output_props[ + i % oprop_len if overlay_signals else 0].copy() + line_props.update( + trace_props[trace % tprop_len if overlay_traces else 0]) + line_props.update(kwargs) else: line_props = kwargs @@ -418,10 +419,11 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Set up line properties for this output, trace if len(fmt) == 0: - line_props = \ - input_props[i % iprop_len if overlay_signals else 0] | \ - trace_props[trace % tprop_len if overlay_traces else 0] | \ - kwargs + line_props = input_props[ + i % iprop_len if overlay_signals else 0].copy() + line_props.update( + trace_props[trace % tprop_len if overlay_traces else 0]) + line_props.update(kwargs) else: line_props = kwargs From 1a9e64fc4ea3ace4b20f7121fd95e449ab197c34 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 3 Jul 2023 12:51:16 -0700 Subject: [PATCH 0337/1025] fix processing of custom font sizes (w/ unit test) --- control/tests/timeplot_test.py | 27 +++++++++++++++++++++++++++ control/timeplot.py | 10 ++++++---- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 1f120937d..da8649b2f 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -341,6 +341,33 @@ def test_linestyles(): assert lines[6].get_color() == 'red' and lines[6].get_linestyle() == '--' assert lines[7].get_color() == 'green' and lines[7].get_linestyle() == '--' + +def test_rcParams(): + sys = ct.rss(2, 2, 2) + + # Create new set of rcParams + my_rcParams = { + 'axes.labelsize': 10, + 'axes.titlesize': 10, + 'figure.titlesize': 12, + 'legend.fontsize': 10, + 'xtick.labelsize': 10, + 'ytick.labelsize': 10, + } + + # 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() == 10 + assert ax.yaxis.get_label().get_fontsize() == 10 + assert ax.title.get_fontsize() == 10 + assert ax.xaxis._get_tick_label_size('x') == 10 + assert ax.yaxis._get_tick_label_size('y') == 10 + assert fig._suptitle.get_fontsize() == 12 + def test_relabel(): sys1 = ct.rss(2, inputs='u', outputs='y') sys2 = ct.rss(1, 1, 1) # uses default i/o labels diff --git a/control/timeplot.py b/control/timeplot.py index 44729c5dc..20df91b49 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -160,6 +160,8 @@ def time_response_plot( # Set up defaults time_label = config._get_param( 'timeplot', 'time_label', kwargs, _timeplot_defaults, pop=True) + timeplot_rcParams = config._get_param( + 'timeplot', 'rcParams', kwargs, _timeplot_defaults, pop=True) if kwargs.get('input_props', None) and len(fmt) > 0: warn("input_props ignored since fmt string was present") @@ -288,7 +290,7 @@ def time_response_plot( # Create new axes, if needed, and customize them if ax is None: - with plt.rc_context(_timeplot_rcParams): + with plt.rc_context(timeplot_rcParams): ax_array = fig.subplots(nrows, ncols, sharex=True, squeeze=False) fig.set_tight_layout(True) fig.align_labels() @@ -504,7 +506,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: label = f"Trace {trace}" - with plt.rc_context(_timeplot_rcParams): + with plt.rc_context(timeplot_rcParams): ax_array[0, trace].set_title(label) # Label the outputs @@ -629,7 +631,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Update the labels to remove common strings if len(labels) > 1 and legend_map[i, j] != None: - with plt.rc_context(_timeplot_rcParams): + with plt.rc_context(timeplot_rcParams): ax.legend(labels, loc=legend_map[i, j]) # @@ -663,7 +665,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): new_title = old_title + separator + new_title[common_len:] # Add the title - with plt.rc_context(_timeplot_rcParams): + with plt.rc_context(timeplot_rcParams): fig.suptitle(new_title) return out From bab5071da0292f3ba8860b3a0fdc05c8cd9661ba Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 4 Jul 2023 10:34:10 -0700 Subject: [PATCH 0338/1025] rename combine_traces to combine_time_responses, updated trace labels --- control/tests/timeplot_test.py | 21 +++++++++++---------- control/timeplot.py | 7 +++---- control/timeresp.py | 14 +++++++------- doc/plotting.rst | 10 +++++----- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index da8649b2f..7cdde5c54 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -250,7 +250,7 @@ def test_legend_map(): title='MIMO step response with custom legend placement') -def test_combine_traces(): +def test_combine_time_responses(): sys_mimo = ct.rss(4, 2, 2) timepts = np.linspace(0, 10, 100) @@ -261,7 +261,7 @@ def test_combine_traces(): U = np.vstack([np.cos(2*timepts), np.sin(timepts)]) resp2 = ct.input_output_response(sys_mimo, timepts, U) - combresp1 = ct.combine_traces([resp1, resp2]) + combresp1 = ct.combine_time_responses([resp1, resp2]) assert combresp1.ntraces == 2 np.testing.assert_equal(combresp1.y[:, 0, :], resp1.y) np.testing.assert_equal(combresp1.y[:, 1, :], resp2.y) @@ -269,13 +269,13 @@ def test_combine_traces(): # Combine two responses with ntrace != 0 resp3 = ct.step_response(sys_mimo, timepts) resp4 = ct.step_response(sys_mimo, timepts) - combresp2 = ct.combine_traces([resp3, resp4]) + combresp2 = ct.combine_time_responses([resp3, resp4]) assert combresp2.ntraces == resp3.ntraces + resp4.ntraces np.testing.assert_equal(combresp2.y[:, 0:2, :], resp3.y) np.testing.assert_equal(combresp2.y[:, 2:4, :], resp4.y) # Mixture - combresp3 = ct.combine_traces([resp1, resp2, resp3]) + combresp3 = ct.combine_time_responses([resp1, resp2, resp3]) assert combresp3.ntraces == resp3.ntraces + resp4.ntraces np.testing.assert_equal(combresp3.y[:, 0, :], resp1.y) np.testing.assert_equal(combresp3.y[:, 1, :], resp2.y) @@ -286,7 +286,8 @@ def test_combine_traces(): # Rename the traces labels = ["T1", "T2", "T3", "T4"] - combresp4 = ct.combine_traces([resp1, resp2, resp3], trace_labels=labels) + combresp4 = ct.combine_time_responses( + [resp1, resp2, resp3], trace_labels=labels) assert combresp4.trace_labels == labels # Automatically generated trace label names and types @@ -294,22 +295,22 @@ def test_combine_traces(): resp5.title = "test" resp5.trace_labels = None resp5.trace_types = None - combresp5 = ct.combine_traces([resp1, resp5]) + 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'] with pytest.raises(ValueError, match="must have the same number"): resp = ct.step_response(ct.rss(4, 2, 3), timepts) - combresp = ct.combine_traces([resp1, resp]) + combresp = ct.combine_time_responses([resp1, resp]) with pytest.raises(ValueError, match="trace labels does not match"): - combresp = ct.combine_traces( + combresp = ct.combine_time_responses( [resp1, resp2], trace_labels=["T1", "T2", "T3"]) with pytest.raises(ValueError, match="must have the same time"): resp = ct.step_response(ct.rss(4, 2, 3), timepts/2) - combresp6 = ct.combine_traces([resp1, resp]) + combresp6 = ct.combine_time_responses([resp1, resp]) @slycotonly @@ -494,7 +495,7 @@ def test_errors(): U = np.vstack([np.cos(2*timepts), np.sin(timepts)]) resp2 = ct.input_output_response(sys_mimo, timepts, U) - ct.combine_traces( + ct.combine_time_responses( [resp1, resp2], trace_labels=["Scenario #1", "Scenario #2"]).plot( transpose=True, title="I/O responses for 2x2 MIMO system, multiple traces " diff --git a/control/timeplot.py b/control/timeplot.py index 20df91b49..6409a6660 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -16,7 +16,7 @@ from . import config -__all__ = ['time_response_plot', 'combine_traces', 'get_plot_axes'] +__all__ = ['time_response_plot', 'combine_time_responses', 'get_plot_axes'] # Default font dictionary _timeplot_rcParams = mpl.rcParams.copy() @@ -412,7 +412,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): for i in range(ninputs): label = _make_line_label(i, data.input_labels, trace) - if add_initial_zero and data.trace_types \ + if add_initial_zero and data.ntraces > i \ and data.trace_types[i] == 'step': x = np.hstack([np.array([data.time[0]]), data.time]) y = np.hstack([np.array([0]), inputs[i][trace]]) @@ -606,7 +606,6 @@ def _make_line_label(signal_index, signal_labels, trace_index): labels = [line.get_label() for line in ax.get_lines()] # Look for a common prefix (up to a space) - # TODO: fix error in 1x2, overlay, transpose (Fig 24) common_prefix = commonprefix(labels) last_space = common_prefix.rfind(', ') if last_space < 0 or plot_inputs == 'overlay': @@ -671,7 +670,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): return out -def combine_traces(response_list, trace_labels=None, title=None): +def combine_time_responses(response_list, trace_labels=None, title=None): """Combine multiple individual time responses into a multi-trace response. This function combines multiple instances of :class:`TimeResponseData` diff --git a/control/timeresp.py b/control/timeresp.py index 81349e2f4..bc13ad0d1 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -427,7 +427,7 @@ def __init__( # Check and store trace labels, if present self.trace_labels = _process_labels( trace_labels, "trace", self.ntraces) - self.trace_types = trace_types # TODO: rename to kind? + self.trace_types = trace_types # Figure out if the system is SISO if issiso is None: @@ -1169,7 +1169,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, tout, yout, xout, U, issiso=sys.issiso(), output_labels=sys.output_labels, input_labels=sys.input_labels, state_labels=sys.state_labels, sysname=sys.name, plot_inputs=True, - title="Forced response for " + sys.name, + title="Forced response for " + sys.name, trace_types=['forced'], transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1386,8 +1386,7 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, uout = np.empty((ninputs, ninputs, T.size)) # Simulate the response for each input - trace_labels = [] - trace_types = [] + trace_labels, trace_types = [], [] for i in range(sys.ninputs): # If input keyword was specified, only simulate for that input if isinstance(input, int) and i != input: @@ -1761,7 +1760,7 @@ def initial_response(sys, T=None, X0=0, output=None, T_num=None, response.t, yout, response.x, None, issiso=issiso, output_labels=output_labels, input_labels=None, state_labels=sys.state_labels, sysname=sys.name, - title="Initial response for " + sys.name, + title="Initial response for " + sys.name, trace_types=['initial'], transpose=transpose, return_x=return_x, squeeze=squeeze) @@ -1888,7 +1887,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, uout = np.full((ninputs, ninputs, np.asarray(T).size), None) # Simulate the response for each input - trace_labels = [] + trace_labels, trace_types = [], [] for i in range(sys.ninputs): # If input keyword was specified, only handle that case if isinstance(input, int) and i != input: @@ -1896,6 +1895,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, # Save a label for this plot trace_labels.append(f"From {sys.input_labels[i]}") + trace_types.append('impulse') # # Compute new X0 that contains the impulse @@ -1935,7 +1935,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, response.time, yout, xout, uout, issiso=issiso, output_labels=output_labels, input_labels=input_labels, state_labels=sys.state_labels, trace_labels=trace_labels, - title="Impulse response for " + sys.name, + trace_types=trace_types, title="Impulse response for " + sys.name, sysname=sys.name, plot_inputs=False, transpose=transpose, return_x=return_x, squeeze=squeeze) diff --git a/doc/plotting.rst b/doc/plotting.rst index d0d7bdac9..d762a6755 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -105,7 +105,7 @@ following figure:: U2 = np.vstack([np.cos(2*timepts), np.sin(timepts)]) resp2 = ct.input_output_response(sys_mimo, timepts, U2) - ct.combine_traces( + ct.combine_time_responses( [resp1, resp2], trace_labels=["Scenario #1", "Scenario #2"]).plot( transpose=True, title="I/O responses for 2x2 MIMO system, multiple traces " @@ -114,9 +114,9 @@ following figure:: .. image:: timeplot-mimo_ioresp-mt_tr.png This figure also illustrates the ability to create "multi-trace" plots -using the :func:`~control.combine_traces` function. The line properties -that are used when combining signals and traces are set by the -`input_props`, `output_props` and `trace_props` parameters for +using the :func:`~control.combine_time_responses` function. The line +properties that are used when combining signals and traces are set by +the `input_props`, `output_props` and `trace_props` parameters for :func:`~control.time_response_plot`. Additional customization is possible using the `input_props`, @@ -138,5 +138,5 @@ Plotting functions :toctree: generated/ ~control.time_response_plot - ~control.combine_traces + ~control.combine_time_responses ~control.get_plot_axes From 6133fd04d7f89abe9aba72f7ddbba54abe5e47bd Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Tue, 11 Jul 2023 23:17:37 +0200 Subject: [PATCH 0339/1025] Replace LinearIOSystem in doctrings --- control/nlsys.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index c540decb6..45b231ab3 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1877,8 +1877,8 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): Returns ------- ss_sys : StateSpace - The linearization of the system, as a :class:`~control.LinearIOSystem` - object (which is also a :class:`~control.StateSpace` object. + The linearization of the system, as a :class:`~control.StateSpace` + object. Other Parameters ---------------- @@ -1924,7 +1924,7 @@ def interconnect( This function creates a new system that is an interconnection of a set of input/output systems. If all of the input systems are linear I/O systems - (type :class:`~control.LinearIOSystem`) then the resulting system will be + (type :class:`~control.StateSpace`) then the resulting system will be a linear interconnected I/O system (type :class:`~control.LinearICSystem`) with the appropriate inputs, outputs, and states. Otherwise, an interconnected I/O system (type :class:`~control.InterconnectedSystem`) From 08105027701574b1c2aa4852b2b078c0a2f33f0e Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Tue, 11 Jul 2023 23:34:17 +0200 Subject: [PATCH 0340/1025] Rerun jupyter notebooks in order to get rid of LinearIOSystem outputs, --- examples/interconnect_tutorial.ipynb | 34 +++++-- examples/simulating_discrete_nonlinear.ipynb | 94 ++++++++++---------- 2 files changed, 76 insertions(+), 52 deletions(-) diff --git a/examples/interconnect_tutorial.ipynb b/examples/interconnect_tutorial.ipynb index afaa37018..fee4b4e3b 100644 --- a/examples/interconnect_tutorial.ipynb +++ b/examples/interconnect_tutorial.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "id": "76a6ed14", "metadata": {}, @@ -36,6 +37,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "9a123aa4", "metadata": {}, @@ -54,6 +56,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "c015dcd3", "metadata": {}, @@ -91,7 +94,11 @@ "$$" ], "text/plain": [ - "['y1', 'y2']>" + "StateSpace(array([[-0.1, 0. ],\n", + " [ 0. , 0. ]]), array([[1.],\n", + " [1.]]), array([[0.1, 0. ],\n", + " [0. , 1. ]]), array([[0.],\n", + " [0.]]))" ] }, "metadata": {}, @@ -109,6 +116,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "8d80cc7c", "metadata": {}, @@ -117,6 +125,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "002e7111", "metadata": {}, @@ -157,7 +166,9 @@ "$$" ], "text/plain": [ - "['y[0]']>" + "StateSpace(array([[-0.1, 0. ],\n", + " [ 0. , 0. ]]), array([[1., 0.],\n", + " [0., 1.]]), array([[0.1, 1. ]]), array([[0., 0.]]))" ] }, "metadata": {}, @@ -174,6 +185,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "aa2b727c", "metadata": {}, @@ -207,7 +219,7 @@ "$$" ], "text/plain": [ - "['w']>" + "StateSpace(array([], shape=(0, 0), dtype=float64), array([], shape=(0, 2), dtype=float64), array([], shape=(1, 0), dtype=float64), array([[ 1., -1.]]))" ] }, "metadata": {}, @@ -220,6 +232,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "aa2f9097", "metadata": {}, @@ -248,7 +261,13 @@ "$$" ], "text/plain": [ - "['theta']>" + "StateSpace(array([[ -2. , 0. , 0. , -10. ],\n", + " [ -1.999, -1. , 0. , -10. ],\n", + " [ 0. , 0.1 , -0.01 , 0. ],\n", + " [ 0. , 0. , 0.1 , 0. ]]), array([[10. , 0. ],\n", + " [10. , 0. ],\n", + " [ 0. , 0.1],\n", + " [ 0. , 0. ]]), array([[0., 0., 0., 1.]]), array([[0., 0.]]))" ] }, "metadata": {}, @@ -279,6 +298,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "897a9264", "metadata": {}, @@ -294,7 +314,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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QpBS2zpSjEgBAAArCFIKX/4AAAAgUgQptT0ixs61PQAAYAFBSlzaAwAA0SFIicnmAAAgOgQptS3IyeNhAACAFQQpta0j5SBIAQAACwhS4tIeAACIDkFKbZPNubQHAACsIEip3YgU/xoAAMACooParSPFiBQAALAgqiC1bNky5ebmKj4+Xnl5edqyZUundZ966ilde+21SktLU1pamgoKCk5bvzuwjhQAAIiG5SC1evVqFRUVadGiRdq2bZvGjBmjwsJCVVVVdVh/8+bNmjp1qjZt2qTS0lLl5OToxhtv1MGDB8+68edKIMAjYgAAgHWWg9SSJUs0c+ZMzZgxQyNGjNDy5cuVmJioFStWdFj/ueee089//nONHTtWw4cP19NPP61AIKCSkpKzbvy5wogUAACIhqUg5fP5VFZWpoKCgrYPsNtVUFCg0tLSiD7j+PHjampqUp8+fTqt09jYKK/XG7Z1JZY/AAAA0bAUpGpqauT3++XxeMLKPR6PKioqIvqMefPmKSsrKyyMnay4uFgpKSmhLScnx0ozLQsw2RwAAEThvN61t3jxYq1atUqvvvqq4uPjO623YMEC1dbWhrby8vIubReX9gAAQDScViqnp6fL4XCosrIyrLyyslKZmZmnPfY//uM/tHjxYv35z3/W6NGjT1vX7XbL7XZbadpZYR0pAAAQDUvRweVyafz48WETxVsnjufn53d63K9//Ws9/PDDWr9+vSZMmBB9a7sI60gBAIBoWBqRkqSioiJNnz5dEyZM0MSJE7V06VLV19drxowZkqRbb71V2dnZKi4uliT927/9mxYuXKjnn39eubm5oblUSUlJSkpKOoddiV4g0PKTR8QAAAArLAepKVOmqLq6WgsXLlRFRYXGjh2r9evXhyagHzhwQPZ218ieeOIJ+Xw+/eM//mPY5yxatEi/+tWvzq715wh37QEAgGhYDlKSNHv2bM2ePbvDfZs3bw57v3///mhOcV4x2RwAAESD6dVqP0eqmxsCAAAuKgQpSX7T+ogYkhQAAIgcQUrtL+11bzsAAMDFhSCltkt7DpIUAACwgCAlHhEDAACiQ5AS60gBAIDoEKTEOlIAACA6BClJhnWkAABAFAhSYkQKAABEhyCltuUPmCMFAACsIEipbUFORqQAAIAVBCm1f0QMSQoAAESOICUpELy2Z2dICgAAWECQUvtH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u5tzXrT+v3RJGj16tPLy8jRo0CC9+OKLSkhI6MaWdY1AIKAJEybo0UcflSSNGzdOu3bt0vLlyzV9+vRubl3Xe+aZZ3TTTTcpKyuru5vSZV588UU999xzev7553XFFVdox44dmjt3rrKysmL2O+7RI1Lp6elyOByn3CFRWVmpzMzMbmrVudHa/tP1LTMzU1VVVWH7m5ubdeTIkbA6HX1G+3Ocb7Nnz9brr7+uTZs2acCAAaHyzMxM+Xw+HT16NKz+yX0+U386q5OcnHze/7i5XC4NHTpU48ePV3FxscaMGaPHH388JvtaVlamqqoqXXnllXI6nXI6nXrrrbf0X//1X3I6nfJ4PDHX55Olpqbq0ksv1WeffRaT33H//v01YsSIsLLLL788dDkzln9vffHFF/rzn/+sO+64I1QWi9/xPffcExqVGjVqlG655RbdfffdoVHmWPyOe3SQcrlcGj9+vEpKSkJlgUBAJSUlys/P78aWnb3BgwcrMzMzrG9er1fvv/9+qG/5+fk6evSoysrKQnXefPNNBQIB5eXlheq8/fbbampqCtXZuHGjLrvsMqWlpZ2n3rQwxmj27Nl69dVX9eabb2rw4MFh+8ePH6+4uLiwPu/evVsHDhwI6/POnTvD/ke6ceNGJScnh37B5+fnh31Ga50L4b+JQCCgxsbGmOzrDTfcoJ07d2rHjh2hbcKECZo2bVrodaz1+WTHjh3T559/rv79+8fkd3z11VefsmTJnj17NGjQIEmx+Xur1bPPPquMjAxNmjQpVBaL3/Hx48dlt4dHC4fDoUAgIClGv+PzPr39ArNq1SrjdrvNypUrzUcffWR+9rOfmdTU1LA7JC5UdXV1Zvv27Wb79u1GklmyZInZvn27+eKLL4wxLbeYpqammj/+8Y/mww8/NN///vc7vMV03Lhx5v333zfvvPOOGTZsWNgtpkePHjUej8fccsstZteuXWbVqlUmMTGxW24xveuuu0xKSorZvHlz2O3Ex48fD9W58847zcCBA82bb75ptm7davLz801+fn5of+utxDfeeKPZsWOHWb9+venXr1+HtxLfc8895uOPPzbLli3rlluJ58+fb9566y2zb98+8+GHH5r58+cbm81m/vd//zfm+tqZ9nftGRN7ff7lL39pNm/ebPbt22f++te/moKCApOenm6qqqpisr9btmwxTqfTPPLII+bTTz81zz33nElMTDR/+MMfQnVi7feWMS13gw8cONDMmzfvlH2x9h1Pnz7dZGdnh5Y/eOWVV0x6erq59957Q3Vi7Tvu8UHKGGN+85vfmIEDBxqXy2UmTpxo3nvvve5uUkQ2bdpkJJ2yTZ8+3RjTcpvpgw8+aDwej3G73eaGG24wu3fvDvuMr776ykydOtUkJSWZ5ORkM2PGDFNXVxdW54MPPjDXXHONcbvdJjs72yxevPh8dTFMR32VZJ599tlQnYaGBvPzn//cpKWlmcTERPMP//AP5vDhw2Gfs3//fnPTTTeZhIQEk56ebn75y1+apqamsDqbNm0yY8eONS6XywwZMiTsHOfLbbfdZgYNGmRcLpfp16+fueGGG0IhypjY6mtnTg5SsdbnKVOmmP79+xuXy2Wys7PNlClTwtZUirX+GmPMn/70JzNy5EjjdrvN8OHDzZNPPhm2P9Z+bxljzIYNG4ykU/phTOx9x16v18yZM8cMHDjQxMfHmyFDhpj7778/bJmCWPuObca0W24UAAAAEevRc6QAAADOBkEKAAAgSgQpAACAKBGkAAAAokSQAgAAiBJBCgAAIEoEKQAAgCgRpAAAAKJEkAIAAIgSQQoAACBKBCkAAIAo/X8EGP0ia82S8QAAAABJRU5ErkJggg==", "text/plain": [ "

" ] @@ -304,7 +324,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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w0taR4wYIQoLC8WOHTtE//793S5pNRqNIjY2Vtx1113iwIEDYu3atSI4OFiSS1offPBBodVqxdatW90uX25ubna1eeCBB0RiYqLYvHmz2L17t8jMzBSZmZmu7e2XLk+aNEmUlJSIDRs2iOjo6A4vXX7sscfE4cOHxWuvvSbJpctPPvmk2LZtmygvLxf79u0TTz75pJDJZOKrr77yub5eycVXBQrhe31+5JFHxNatW0V5ebn49ttvRVZWloiKihI1NTU+2d+ioiKhVCrFCy+8II4ePSree+89ERwcLN59911XG1/7uSWE82rzxMRE8cQTT1y2zdeOcW5urujVq5druoUPP/xQREVFiccff9zVxteOMYNVB1599VWRmJgoVCqVGDNmjNi5c6fUJV2TLVu2CACXLbm5uUII52WtTz/9tIiNjRVqtVpMnDhRlJaWur1HbW2tmD17tggNDRUajUbMnTtXNDQ0uLXZu3evmDBhglCr1aJXr15i2bJl3dVFNx31FYBYuXKlq01LS4v4/e9/L8LDw0VwcLD45S9/Kc6cOeP2PidOnBBTpkwRQUFBIioqSjzyyCPCarW6tdmyZYsYPny4UKlUIiUlxe0zuss999wjkpKShEqlEtHR0WLixImuUCWEb/X1Si4NVr7W55kzZ4q4uDihUqlEr169xMyZM93mdPK1/gohxKeffioGDx4s1Gq1SE1NFf/+97/dtvvazy0hhNi4caMAcFk/hPC9Y2wymcSCBQtEYmKiCAwMFCkpKeKpp55ymxbB146xTIiLpj8lIiIiouvGMVZEREREHsJgRUREROQhDFZEREREHsJgRUREROQhDFZEREREHsJgRUREROQhDFZEREREHsJgRUREROQhDFZEREREHsJgRUREROQhDFZEREREHvL/AUwAcbqCHPHmAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -314,7 +334,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHECAYAAAC0vmcaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACam0lEQVR4nOzdeVxUVf8H8M+dhQFkB2UHwV1xQVzCHQ1Re9zS9kzNLFNL87HFx3L7ZT6VWU+JpllqZWWWWpqpWLibC4KmKIiKoCAIKMMi28z9/YFM4uzDnbl37nzfrxcv5dxzzznD1y+dzr33XIZlWRaEEEIIIcTuSfgeACGEEEII4QZN7AghhBBCRIImdoQQQgghIkETO0IIIYQQkaCJHSGEEEKISNDEjhBCCCFEJGhiRwghhBAiEjK+B2CP1Go18vLy4O7uDoZh+B4OIYQQQkSMZVmUlZUhKCgIEonhNTma2FkgLy8PoaGhfA+DEEIIIQ4kNzcXISEhBuvQxM4C7u7uAICrV6/i2LFjGDp0KORyeaM6tbW12Lt3r9YxXeUPluk719q46NeSNkw5x1gdQ8dN+ZmbU2YLfMTC1PqWxsJRc8KSdvjICX3lYoqFmHLCks/DBSHnhLF69pwTSqUSoaGhmvmHITSxs0DD5Vd3d3e4urrCw8ND5z8SXcd0lT9Ypu9ca+OiX0vaMOUcY3UMHTflZ25OmS3wEQtT61saC0fNCUva4SMn9JWLKRZiyglLPg8XhJwTxuqJISdMuf3LIR+e2LlzJ9q1a4c2bdpg3bp1fA+HEEIIIYQTDrdiV1dXhzlz5iA5ORkeHh7o3r07Hn30Ufj4+PA9NEIIIYSQJnG4FbsTJ06gU6dOCA4Ohru7O0aMGIE9e/bwPSxCCCGEkCazu4ndwYMHMXLkSAQFBYFhGGzfvl2rzqpVqxAREQFnZ2fExMTg0KFDmmN5eXkIDg7WfB8SEoIbN27YYuiEEEIIIVZld5diKyoq0LVrV0yePBnjxo3TOr5582bMnj0bq1atQt++fbFmzRoMHz4c6enpCAsLA8uyWucYuxmxuroa1dXVmu+VSiWA+hso7//zfvqO6Sp/sGz4p0dwrUiKN0/uA8PUj48BAAZgwNSXAff+vPe91rH7z6n/XnLv77h37MFzAKCyUopPsw5DwjCNj91/DgNIGAZSCQOZhIGEufenhIEELEqKJdhx+zRkUimkEgZShoFUql23/nuAAYucHAkykjLhJJdBLmXgJJNALpXASSqBk0wCCdRIL2HgfOEmXBVOWnUYVoXSGqCwtAKuzgo4SSWQSxkwDGPSz9ycMlvgol9z2zC1vrF65vzb11f+YJk9x8GSdkypb2kcDB0TeyzElBPmjI9LQs4JY/XsOSfMaZthdc107ATDMNi2bRvGjBmjKevduze6d++O1atXa8o6dOiAMWPGYNmyZTh69Cg+/PBDbNu2DQAwa9Ys9O7dG08//bTefhYtWoTFixdrlX/33XdwdXXl7gPd83+npSiqpo2PuSBlWMglgIwBZPf/ee/vcgmrp/z+MrbRcfm9v0sb6kkA2b1+pPeff9/fpfcmxIQQQoi5Kisr8fTTT6O0tBQeHh4G64pqYldTUwNXV1ds2bIFY8eO1dSbNWsW0tLScODAAdTV1aFDhw7Yv3+/5uGJv/76C76+vnr70bViFxoaitzcXKSkpCAuLg4yWePFz7q6OiQnJ2sd01X+YFn+nUocPHwEDz0UC6lUChYAywIsWDRE6/7v1SyAe383Xpe9r6x+N+uGc+pUKqSePo1u0dFgJFLNMeioq2ZZqFgWajVQp2brv1ezqKmtQ/qFi2jdth3AMFCp2frjDX+y9fVV95XVqVS4lnsdAYFBYMGgVsWiRqVGrUqNmjo1alUsqutUKL5dCpdmbqhVs6ipY1F7r06tikVNnRo1dSqoIdzZk1zKwEkqgUIm0aw21v/9n3L5vRVKJwlQXFSIsOAgODtJ61cupRJIJAykDO5b8axfOa3/E42+Z6BGxoULiOrUEXK5DFKGgUSC+j/vWzltaA9qNU6fTkGvnj0gl8k0bTJM/aorwwBSCQNWrcJfx46hX98+97Vbv/oqZRio1SocOngQcYMGwkkur1+VZZgm5YS+c62Nq37NbceU+sbqGDruqLGwRhxMqWfOz1tfuall1ibknDBWz55zQqlUIjAw0PEmdg33zx05cgR9+vTR1HvvvfewceNGZGRkAAB+/fVXzJ07F2q1Gm+88QZefPFFk/pLTExEYmIiVCoVMjMzrbZiRyxXP3EE6u79qWKB2nvfq9QNf2dQd+/vqvvq16rvP5dpXN5Q7/6/s8wD5zRuS8UKd5JpawzY+kv4gObPhlsDNJf37ytr9KeOsvvPrW+T1X1uQ50H+mbuW1WtX4Fl//n+vlXZ+1do5ffqKKSAs7T+TxmtxBJCbMCcFTu7u8fOFA/eM8eybKOyUaNGYdSoUWa3O2PGDMyYMQNKpRKenp7o37+/VVbsHOn/iE09x9T/Ix4y2LRY2OL/iFmWvbfaqEbNvdXH6rqGlcj6VcnquvryhuM1947dranFhYxLCGsZiVo16stVaqjVuLdSyt63UgrNiun939eq1CgqLoanl7dmZVdT5179B8+tqLwLhcK5vi7Lgr2vvYa26z+XCgAD9b3VXKM/CzD1Y6j/xgr4mV3JJAyaKaRo5iS79+e9L4UM7s4yeLnI4eUqh4dCgtysi+jfKxq+7s7wdpXDw1kOqUT3uGnFThut2NGKnaOv2JlKVCt2plyKbQpasSNEW8NlffW9yaPmcv2Df95X7/4/G449WF9ThwXU900iHzxPq00dbeiqV6cGau9bvdX8yd7/PdPo+xo1UK0CatRNn0gyYOEqA7ycAA8nFp5OgKcc8FSw9X86sfBWAM1ktCpIiKNz2BU7JycnxMTEICkpqdHELikpCaNHj25y+7RiZ502+FidEPL/EXPVr5hWJ4QWB5WaRWWNChU1daioVqG8ug4VNar6sur6cmVVHUora3H7bi1uV9Qgp6AEarkLSu/WH2PBoKIOqKgDblTqn7m5OkkR6u2MYC8XhHo5I8TbBSHeLgjykONy2nE8PIRW7KzVhpBzwpLPwwVasaMVO86Vl5cjKysLABAdHY0VK1YgLi4OPj4+CAsLw+bNmzFhwgR8/vnniI2Nxdq1a/HFF1/g/PnzCA8Pb1LftGJHCOGCigUqaoHyWqC0hkFpLVBaU/935b0/S2sAZW39ZWx9pAyL5s5AgCuLABfA34VFgAuLFi719wUSQsRB1E/F7t+/H3FxcVrlEydOxIYNGwDUb1D8wQcfID8/H1FRUfj4448xYMAAzsbQsGKXn5+P48ePIz4+XucLhZOSkrSO6Sp/sEzfudbGRb+WtGHKOcbqGDpuys/cnDJb4CMWpta3NBaOmhOWtNNQf2DcEBRW1CH39l3kllQi9/Zd5JTcRe7tu7hWXIG7tWqd58skDFo1bwYvtRLxPdqhS4g32ge4w8VJanA8Yo+FmHLCks/DBb5zoimxsOSYUHJCqVTCz89PnJdiBw0apHOT4ftNnz4d06dPt9GICCHEOpxkEkT4NUOEXzOtY9U1Ndjy2z4Ete+O7JIqZN2qQFZhObJuVaCsqg4ZBeUAJDj++yUA9U8Gt2reDFHBnuga5I67lf9sf0QIEQ+7W7HjE12KJYQIHcsCt2uA6xUMrpczyK0AcisYlNVqX9J1kbJo6c4iwp1FpDsQ5sZCIeVh0IQQg0R9KVYI6FIst23QpVhtdNlJPDlhSTvWyInCsmqcy1PiTG4pUq6VIDXnttbTvTIJg/BmagzrHoF+bZqja4gnoFaJJhZiyglLPg8XhJwTxurRpVhCCCGi0cJdgcHtmmNwu+aora3F7j1JCO38EM7kleF0zh2k5NxBgbIal8sYJB7IRuKBbLg6SRET5gmfWgbhBeXoGOzF98cghBhBK3ZmoEuxhBCxYlmgqArIVDLILGVwqZRBRV3jFT0vJxYdvVl08mLRxpMu2xJiK3Qp1sroUiy3bdClWG102Uk8OWFJO3zkxIPlUqkMFwvKcOTSLew4eQlXymWorvvnKVwnqQS9I7wxqF1zDGrrhzAf6/5PLuWEMH4/CTknjNWjS7HEqIYAyuVyvcHUd0xX+YNlhtq1Ji76taQNU84xVsfcWDSlzBb4iIWp9S2NhaPmhCXt8JET95d3DfNFx0APBJdnYHB8HE7lKLEv/SZ+P5ODkmo1DmUV41BWMf7vN6BDoAeGdQrA8M4BaNPCTevVjlyhnBDG7ych54Sxevb432xz2qWJXRPU1tY2+tOUY7rKHywz1K41cdGvJW2Yco6xOubGoilltsBHLEytb2ksHDUnLGmHj5zQV97wdynU6NfKG73D3NBTchWR0X1w+Mpt7M8oQkrOHVzIV+JCvhIf78tEhK8rEjr5Y2jHFogK8uBkkkc5IYzfT0LOCWP17Pm/2ea0TZdizUD32BFCiLaKWuDv2wzOljC4eIeBiv1nIuejYNHFh0V3XzXC3Oi9t4RYgu6xszK6x47bNvi4n0jI97Bw1S8f97AYOu6oOWFJO3zkhL5yc2NRVlWHA5m3sDe9EAcuFaGyRqU5FubjgpFdAvGvzgFo3cLN6M/B3J8J120IOScs+TxcEHJOGKvHV05wge6xs5GGANrj9XpD+LiHxdRzuL6fSMj3sHDVr5juJ7LnOFjSDh85oa/c1Fj4yOUYGxOGsTFhqKpV4UDmLfx2Nh9J6QXIKbmLxP1XkLj/CjoEemB0tyCM7BqEYC8Xg5/R1M9jrTaEnBPmjI9LQs4JY/Xs8b/Z5rRLEztCCCFW4SyXIqFTABI6BaCypg5J6QXYcSYPBzJvae7J++/vF9GzpTfGRofgkS6B8HSx/cSdEDGhiV0T2PONmLrwcXOyqedwfaO4kG9O5qpfMd0obs9xsKQdPnJCXzlXsZAzwIhOLTCiUwvcqazFnvQC7DibjxPZt3Hy3tfiHecR36EFHu0ehD6RvpBK/rkhj3JCGL+fhJwTxuoJLSfMYU7bdI+dGejhCUII4dadauB0MYPjhRLcvPvPRM7TiUXP5ix6NVfD3/QrtYSIEj08YWX08AS3bZhyjqU3J+s7JuSbk7nql4+bkw0dd9ScsKQdPnJCX7mtYsGyLM7nlWFr6g3sOHsTd+7+s0IRHeqJ0V0C4Fx4HqOGU07w+ftJyDlhrJ695cT96OEJG2kIoD3eiGkIHzcnm3oO1zeKC/nmZK76FdON4vYcB0va4SMn9JXbIhbRLX0R3dIXb4/shD8vFOKnlOvYn3kLqbmlSM0thVwixYm6DDwb2xLRoV4W748nppwwZ3xcEnJOGKtnTzlxf9umookdIYQQQVHIpBjeORDDOweisKwKv6Tm4cdTObhUWIGtqXnYmpqH9gHueLp3GEZ3C6YHLgi5j4TvARBCCCH6tHB3xtQBkfhtZh/MjqrD2OggKGQSXLxZhgW/nEfv9/Zh7pYzOJ1zG3RnESG0YkcIIcQOMAyDCHdgxogoLBoZhW2p1/HdiRxkFpTjp5Tr+CnlumYVb2x0MNydaRWPOCaa2DWBPT86rQsf2wmYeg7XWzsIeTsBrvoV09YO9hwHS9rhIyf0lQsxFq5yOZ7pFYKnewYjNbcUP5y6jl1/39Ss4r3/+0WMjQ7Cs73D0Kp5M72fxZw+m1LPGjlhzvi4JOScMFbPnnPCnLbpqVgz0HYnhBAiTJV1wMlbDI4USFBw37Yp7TzV6B/AopM3Cwm9p5bYKdruxMpouxNu2zDlHEu3E9B3TMjbCXDVLx/bCRg67qg5YUk7fOSEvnJ7iwXLsjh6pQTf/pWDPzJuoeG/cCHeLngyJgg+dzIwZoT954Q54+OSkHPCWD17zgna7sRGGgJoj49OG8JFv5a0wcfWDkLeToCrfsW0tYM9x8GSdvjICX3l9hSLQe0DMKh9AHJLKvHtX9fww8lcXL99F8v3XYZcIkUam4kp/VuhXYA7Z32aUs8aOWHO+Lgk5JwwVs8ec8KcdumpWEIIIaIU6uOKeSM64K95Q/D+uM5oH+COWjWDH1NuIOGTg3juqxM4fKmInqYlokIrdoQQQkTNxUmKJ3qGYWzXAKzc/DsyEYy96QU4mHkLBzNvoUOgB14cEIF/dQmCXErrHcS+0b9gQgghDoFhGLTyAD57siv2z43DpD4t4SKX4kK+Eq9tPoP+7ydjzYHLUFbZ9olfQrjksBO7sWPHwtvbG+PHj+d7KIQQQmwszNcVi0Z1wrF5g/F6Qjs0d1fgprIKy36/iNj3/sD/7UxHfmkV38MkxGwOO7F79dVX8fXXX/M9DEIIITzycnXCjLjWOPxmHD4c3wVt/d1QUaPCl4evYsjHh/D9ZQmuFVfyPUxCTOawE7u4uDi4u5v2RBQhhBBxU8ikeKxHKPbMHoANk3siNtIXtSoWfxVKMPR/hzHrh1RkFpTxPUxCjBLkxO7gwYMYOXIkgoKCwDAMtm/frlVn1apViIiIgLOzM2JiYnDo0CHbD5QQQoioMAyDQe1a4PsXH8Lmqb3Q0UsNNQv8kpaHoR8fxItfn8LZ63f4HiYheglyYldRUYGuXbti5cqVOo9v3rwZs2fPxvz585Gamor+/ftj+PDhyMnJ0dSJiYlBVFSU1ldeXp6tPgYhhBA71j3MCy91UGP7yw9hROcAMAywN70Ao1YewXNfnUDKtdt8D5EQLYLc7mT48OEYPny43uMrVqzAlClT8MILLwAAPvnkE+zZswerV6/GsmXLAAApKSmcjae6uhrV1dWa75VKJQD7fu+cLlz0a0kbfLwXU8jvYuSqXzG9F9Oe42BJO3zkhL5yMcXC0ji0be6C/z3eBa8MisSag1ex4++bmq1SBrX1w8yBLQ22a42csOTzcEHIOWGsnj3nhDltC/6VYgzDYNu2bRgzZgwAoKamBq6urtiyZQvGjh2rqTdr1iykpaXhwIEDJre9f/9+rFy5Ej/99JPBeosWLcLixYu1yuldsYQQ4niKqoC91yU4eYuBGvUvoO3io8bwUDWC6D8JxArMeVesIFfsDCkqKoJKpYK/v3+jcn9/f9y8edPkdhISEnD69GlUVFQgJCQE27ZtQ8+ePXXWnTdvHubMmaP5XqlUIjQ0FP3790dKSgri4uIgkzX+UdbV1SE5OVnrmK7yB8v0nWttXPRrSRumnGOsjqHjpvzMzSmzBT5iYWp9S2PhqDlhSTt85IS+cjHFgss4PAUgu7gSqw5m47e/C3C2RIK/SyQYEeWPGQNboqWvq9F2mhIHrn4m5hJyThirZ8850XCl0BR2t2KXl5eH4OBgHD16FLGxsZp6S5cuxTfffIOLFy9abSyJiYlITEyESqVCZmYmrdgRQghBfiWwO1eCtJL629YlYNGrBYvhIWp4KXgeHBEFUa/Y+fn5QSqVaq3OFRYWaq3icW3GjBmYMWMGlEolPD09acWOozZoxU6b0FYnzKlHK3ZNb4dW7LQJPScCk5MR0CEGqw/lYP+lYvxVyCCtRIZJsaGY2CsIJ44eohW7JrRDK3YiXrEDgN69eyMmJgarVq3SlHXs2BGjR4/WPDxhDbRiRwghxJirZcAv16S4WlZ//52bvH71LtafhZTheXDELpmzYifIiV15eTmysrIAANHR0VixYgXi4uLg4+ODsLAwbN68GRMmTMDnn3+O2NhYrF27Fl988QXOnz+P8PBwq4+vYcUuNzeXVuw4aINW7LQJfXWCVuys2w6t2Gmzt5xgWRb7LhZhxR+Xca3kLgAgwtcF/364NeLa+oJhGFqxoxU7kymVSgQGBvI3sauqqoKzs7PF5+/fvx9xcXFa5RMnTsSGDRsA1G9Q/MEHHyA/Px9RUVH4+OOPMWDAAIv7NAWt2BFCCDGHSg0cKWCw+7oEFXX1y3WtPdQY11KNoGY8D47YDV5W7NRqNZYuXYrPP/8cBQUFyMzMRGRkJN555x20bNkSU6ZM4aIbQWhYscvPz8fx48cRHx8PuVzeqE5tbS2SkpK0jukqf7BM37nWxkW/lrRhyjnG6hg6bsrP3JwyW+AjFqbWtzQWjpoTlrTDR07oKxdTLPjMiV9/T8Jlp0h8ffw6quvUkEoYPNkjCFHsNYwebn4cLPk8XBByThirZ885oVQq4efnZ9LEjrM3T7z77rvYsGEDPvjgAzg5OWnKO3fujHXr1nHVDSGEEGJ3XGTAa0NaYc+svkjo2AIqNYtNJ25gaaoUP6fmQa0W3F1RxE5xtmLXunVrrFmzBkOGDIG7uzvOnDmDyMhIXLx4EbGxsbh92/5fvUKXYgkhhHAh4w6Dn7MlKLhbf3k2rBmL8REqhLvzPDAiSLxcinVxccHFixcRHh7eaGKXnp6OXr16oby8nItuBIEuxXLbBl2K1Wbvl53oUmzT2qFLsdrEmBOVVdVY+O2fSMp3QkWNCgwDPNUzBLMGReCvQ8mC/P0k5JwwVs+ec4KXS7GdOnXCoUOHtMq3bNmC6OhorrohhBBCREEulSAuiMWumb0xpmsgWBb47sR1jFx9HGeKaV8UYhnOVux27NiBCRMmYN68eViyZAkWL16MjIwMfP3119i5cyfi4+O56IZXdCmWEEKItWSWMth8RYKiqvpJXWdvNcZH0NsrCI/72O3ZswfvvfceUlJSoFar0b17dyxYsABDhw7lqgtBoEux3LZBl2K1ifGyk6PmhCXt0KVYbY6SE1W1Kqz8MwtfHMmGmmXQTCHF3Pg2GN8tAH/+sY/3309Czglj9ew5J8y5FMvpTnoJCQlISEjgsklBawigXC7XG0x9x3SVP1hmqF1r4qJfS9ow5RxjdcyNRVPKbIGPWJha39JYOGpOWNIOHzmhr1xMsRByTsjlcsxNaAevssvYU+KLtNxSLN55ETvP3sRwH+H8fhJyThirZ485YU67dveuWCGpra1t9Kcpx3SVP1hmqF1r4qJfS9ow5RxjdcyNRVPKbIGPWJha39JYOGpOWNIOHzmhr1xMsbCnnAhyBb4ZGY2f027iw72XkJJzB39flwKBVzHhoZaQSBheYiHknDBWz55zwpy2m3Qp1tvbGwxj2g2eJSUllnYjGHSPHSGEEFsrrgK+vyzBJWX9845tPdV4qpUaPnTvncOw2T12Gzdu1Py9uLgY7777LhISEhAbGwsAOHbsGPbs2YN33nkHr732mqXdCA7dY8dtG3zcT9SUMltwlPuJ9JWLKScsaYePnNBXLqZY2HNOVNfUYOE3f+C363JU1anRTCHFW0PbwP3WOQwdSvfYmVLPnnPCZvfYTZw4UfP3cePGYcmSJZg5c6am7NVXX8XKlSuxb98+UU3sGtx/T4S9Xa83hI97WEw9h+v7iZpSZgtiv5/IWLmYcsKSdvjICX3lYoqFvebEgEAW08bE4s2t53E65w7e2XERUd4SxA5i4e9K99iZWs8ec8Kcdjm7x27Pnj14//33tcoTEhLw1ltvcdWNoNjz9Xpd+LiHxdRzuL6fqClltuBo9xM9WC6mnLCkHT5yQl+5mGIhhpwI9nDCd1N64quj2fh4XxbO3ZZgZOJRLB/fGbGRviZ9rqYQck4Yq2fPOWFO25xtdxIeHo6ZM2fi9ddfb1T+4YcfYuXKlbh27RoX3fCK7rEjhBAiFNcrgI2ZUhRWMWDAYkgQixGhakg5e/UAEQpe9rHbsGEDpkyZgmHDhmnusfvrr7+we/durFu3DpMmTeKiG0Gge+y4bYOP+4maUmYLjn4/kZhywpJ2+MgJfeViioWYcqKhbOfuJJysC8WW0/kAgC4hHljxWBeE+1hn0UHIOWGsnj3nBC/72E2aNAkdOnTAp59+iq1bt4JlWXTs2BFHjhxB7969uepGUBoCaI/X6w3h4x4WU8/h+n6ippTZgiPfT6SrzJ7jYEk7fOSEvnIxxUJMOaGQAu+N7Iy4DoF46+ezOHtdiTGr/sKyRztjZNcgo2O2lJBzwlg9e8wJc9rldB+73r17Y9OmTVw2SQghhBAjRnQORNdQL7z2QxpOZJfgle9TkXLtNv4zogOcZHRt1pFwNrHLyckxeDwsLIyrrgghhBDygGAvF3w3tTc+3peJxOTL2HA0G2m5d7Dqme4I8nLhe3jERjib2LVs2dLgZsUqlYqrrgghhBCig0wqwesJ7dE9zBuvbU5DWu4dPPLpIfzvyWgMaNuc7+ERG+BsYpeamtro+9raWqSmpmLFihVYunQpV90Iij0/Oq0LH9sJmHoO11s7NKXMFmhrB/HkhCXt8JET+srFFAsx5YSxfge09sH26Q/hlR/O4HxeGSauP4FX4lphxsBISCSmvTHKnM9i7Xa4iIU954Q5bXP2VKw+v/32Gz788EPs37/fmt3YBG13QgghxJ7UqoGtVyU4Wlh/n10nbzWea62GM70p3q7wst2JPpcuXUK3bt1QUVFhzW5sirY74bYNU86xdDsBfceaUmYLfMSCi+0EDB131JywpB0+ckJfuZhiIaacMPfzbE29gQW/XkB1nRqtmjfDmmeiEe5r/sKEkHPCWD17zgletjtRKpWNvmdZFvn5+Vi0aBHatGnDVTeC0hBAe3x02hA+thMw9Ryut3ZoSpkt0NYO4skJS9rhIyf0lYspFmLKCVPH90Svlmgf6IUXvzmFy7cqMG7Ncax8Ohr921h2352Qc8JYPXvMCXPa5Wxi5+XlpfXwBMuyCA0NxQ8//MBVN4QQQgixQNdQL+yY2Q8vfZuC1Jw7mPjVCcx/pCOe72v44UdiXzib2CUnJzf6XiKRoHnz5mjdujVkMrqYTwghhPCthYczvp/6EN7efg4/pVzH/+1Mx4V8JZaOjYJCJuV7eIQDnM24GIZBnz59tCZxdXV1OHjwIAYMGMBVV4QQQgixkLNcig/Hd0GHQA8s/S0dP6VcR05xJdZMiIF3Mye+h0eaiLPtqOPi4lBSUqJVXlpairi4OK66IYQQQkgTMQyDKf0isGFyL7grZDiRXYJxq48iu0g8Dzo6Ks4mdizL6rxGX1xcjGbNmnHVDSdyc3MxaNAgdOzYEV26dMGWLVv4HhIhhBBicwPaNsdPL/dBsJcLrhRV4NHVR5FyTXuRhtiPJl+KffTRRwHUz/4nTZoEhUKhOaZSqXD27Fn06dOnqd1wSiaT4ZNPPkG3bt1QWFiI7t27Y8SIEYKbgBJCCCHW1i7AHdum98GUjafw941SPPXFcax4vCv+1SWI76ERCzR5Yufp6QmgfsXO3d0dLi7/vI/OyckJDz30EKZOndrUbjgVGBiIwMBAAECLFi3g4+ODkpISmtgRQghxSC08nLH5pYfw6vdp2HehADO/S0VOSSVeHtiKnpi1M02e2K1fvx5A/bti586dy8nk6ODBg/jwww+RkpKC/Px8bNu2DWPGjGlUZ9WqVfjwww+Rn5+PTp064ZNPPkH//v3N7uvUqVNQq9UIDQ1t8rgJIYQQe+XqJMOaCTF497d0rD+SjQ92Z+BmaRUWjuwEaRNeQ0Zsi7OnYhcuXMhVU6ioqEDXrl0xefJkjBs3Tuv45s2bMXv2bKxatQp9+/bFmjVrMHz4cKSnpyMsLAwAEBMTg+rqaq1z9+7di6Cg+uXl4uJiPPfcc1i3bp3B8VRXVzdqq2EzZnt+75wufLyL0dRzuH4vJhfvYrQmei+meHLCknb4yAl95WKKhZhywpzxmes/w9oi2FOBpb9n4Otj11BUVoUPxnWGQiYRdE4Yq2fPOWFO2016pVj37t3xxx9/wNvbG9HR0QaXa0+fPm1RHwzDaK3Y9e7dG927d8fq1as1ZR06dMCYMWOwbNkyk9qtrq5GfHw8pk6digkTJhisu2jRIixevFirnN4VSwghRKxOFzH4NksCFcugracaU9qp4Uxb3fHCnHfFNmnFbvTo0ZqHJR68VGotNTU1SElJwVtvvdWofOjQoTh69KhJbbAsi0mTJmHw4MFGJ3UAMG/ePMyZM0fzvVKpRGhoKPr374+UlBTExcXp3L8vOTlZ65iu8gfL9J1rbVz0a0kbppxjrI6h46b8zM0pswU+YmFqfUtj4ag5YUk7fOSEvnIxxUJMOWHJ5zFXPID+l0vwyo/nkFkKfHPdEysf64gzJ44IMieM1bPnnHjwta2GNGnFzhYeXLHLy8tDcHAwjhw50uhp2/feew8bN25ERkaG0TYPHz6MAQMGoEuXLpqyb775Bp07dzZ4XmJiIhITE6FSqZCZmUkrdoQQQkTvWjmw5oIUFXUMmjuzeLmDCr7OfI/KsdhsxU6XmpoaFBYWQq1WNypvuPeNK7reS2vqkzv9+vXTGp8pZsyYgRkzZkCpVMLT05NW7Dhqg1bstNHqhHhywpJ2aMVOG+UEv7+fhvSvxNRNZ5BXWoVPzknx1cQYdAzytLg9WrEzDy8rdpmZmZgyZYrW5dCGCZdKpbKo3QdX7GpqauDq6ootW7Zg7NixmnqzZs1CWloaDhw4YPFnMIZW7AghhDiqO9XA5xekyL/LwFXKYlpHFcLd+B6VY+BlxW7y5MmQyWTYuXMnAgMDrbbvjZOTE2JiYpCUlNRoYpeUlITRo0dbpc8GD67YxcXF4fjx44iPj4dcLm9Ut7a2FklJSVrHdJU/WKbvXGvjol9L2jDlHGN1DB035WduTpkt8BELU+tbGgtHzQlL2uEjJ/SViykWYsoJSz4PF4YOqcRTqw8hu5zBmkwF1k3ojh7h3ma3w0cs7DknzFmx42xil5aWhpSUFLRv377JbZWXlyMrK0vz/dWrV5GWlgYfHx+EhYVhzpw5mDBhAnr06IHY2FisXbsWOTk5mDZtWpP7JoQQQohuni5yTO+owk8Ffjhx7Q4mb0zB589Eo28rX76HRu7h7FJsz5498fHHH6Nfv35Nbmv//v2Ii4vTKp84cSI2bNgAoH6D4g8++AD5+fmIiorCxx9/jAEDBjS5b0PoUiwhhBAC1KiArzIluHBHAhnDYnI7NaK8Bf0spl0z51IsZxO7P//8E2+//Tbee+89dO7cWWs50thA7EnDpdjc3Fx6eIKDNujhCW10o7h4csKSdujhCW2UE8L4/XR/n2pIMHfreey7WASZhMEHj3bEsI4tzG6HHp4wTqlUIjAw0LYTO4lEUt+gnqdVLX14QkhoxY4QQgj5h0oNbLosQUqRBAxYPN1ajV7NaeWOa7ys2Bl7GnXgwIFcdCMIDSt2+fn59PAEB23QwxPa6EZx8eSEJe3QwxPaKCeE8ftJV58qNYsFv6bjx5QbYBhg6ehOeCwm2Ox2uKgv5ocn/Pz8bPtUrJgmboQQQggxjVTC4P9GdYRCJsE3x3Mx/5fzYBhgfHfDkztiHZyt2J09e1Z3BwwDZ2dnhIWFaV4/Zq/oUiwhhBCiG8sCP2dLcOhm/WXZp1qp0bsFXZblAi+XYiUSicG96+RyOZ544gmsWbMGzs72/S4SuhTLbRt0KVYbXXYST05Y0g5ditVGOSGM30/G+mRZFkt+u4hvj+eCYYBlYzphnI6VO7oUax5eLsVu27YNb775Jl5//XX06tULLMvi5MmT+Oijj7Bw4ULU1dXhrbfewttvv43ly5dz1S2vGgIol8v1BlPfMV3lD5YZateauOjXkjZMOcdYHXNj0ZQyW+AjFqbWtzQWjpoTlrTDR07oKxdTLMSUE+aMj0uG+vy/MZ3BMBJ889c1zNt+HjKZDONjQsxupyn1Lfl3b+gY3zlhTrucTeyWLl2K//3vf0hISNCUdenSBSEhIXjnnXdw4sQJNGvWDP/+979FM7Grra1t9Kcpx3SVP1hmqF1r4qJfS9ow5RxjdcyNRVPKbIGPWJha39JYOGpOWNIOHzmhr1xMsRBTTpgzPi6Z2uc7I9pCpVbhuxPX8fpPZ6BS1eHR6H9W7viIhT3nhDltc3Yp1sXFBampqVpvnrh48SKio6Nx9+5dZGdno2PHjqisrOSiS5uje+wIIYQQ07AssOWqBEcKaCuUpuLlHrvo6Gh07doVa9euhZOTE4D6GebUqVNx5swZpKam4siRI3j22Wdx9epVLrrkDd1jx20bppxj6T0s+o4J+R4Wrvrl4x4WQ8cdNScsaYePnNBXLqZYiCknLPk8XDC3T7WaxaKdF/D9yetgGGDF+M74V5dAXmJhzznByz12iYmJGDVqFEJCQtClSxcwDIOzZ89CpVJh586dAIArV65g+vTpXHXJu4YA2uP1ekP4uIfF1HO4vp9IyPewcNWvmO4nsuc4WNIOHzmhr1xMsRBTTpgzPi6Z0+fSsV0ARoLvT+Rg7s/n0MzZCXFtfc1ux5z6lvy7N3SM75wwp13OJnZ9+vRBdnY2vv32W2RmZoJlWYwfPx5PP/003N3dAQATJkzgqjtCCCGE2AGJhMHSMVGoqlVhW+oNzPwuFZ8/043vYYkWpy81c3Nzw7Rp07hsUtDs+UZMXfi4OdnUc7i+UVzINydz1a+YbhS35zhY0g4fOaGvXEyxEFNOmDM+LjWlz/dGd0BldS32pBdi+ndpmNrOtrGw55wwp23O7rFrkJ6ejpycHNTU1DQqHzVqFJfd8IIeniCEEEIsV6cGvsyQIP2OBAoJi+kdVWjpzveohI+XhyeuXLmCsWPH4u+//wbDMGhotmHTYpVKxUU3gkAPT3DbhinnWHpzsr5jQr45mat++bg52dBxR80JS9rhIyf0lYspFmLKCUs+Dxe46LOqVoUXvk7B8ew78HCW4Zvne6BjoOHJChexsOec4OXhiVmzZiEiIgL79u1DZGQkTpw4geLiYlHtW/eghgDa442YhvBxc7Kp53B9o7iQb07mql8x3Shuz3GwpB0+ckJfuZhiIaacMGd8XGpKn3K5HGue7Y4xn/yB7PI6TN54Gj++9BBatzC+dMdFLOwxJ8xpV8JVp8eOHcOSJUvQvHlzSCQSSCQS9OvXD8uWLcOrr77KVTeEEEIIsXPNFDK81EGFTkHuKKmowdNfHMe14gq+hyUKnE3sVCoV3NzcAAB+fn7Iy8sDAISHhyMjI4OrbgghhBAiAq4y4KvnYtDW3w2FZdWY8OUJFCqr+B6W3eNsYhcVFYWzZ88CAHr37o0PPvgAR44cwZIlSxAZGclVN4QQQggRCZ9mTvh2Sm+E+bgip6QSz311AqWVtn3iWmw4u8fu7bffRkVF/TLqu+++i3/961/o378/fH198cMPP3DVjaDY86PTuvCxnYCp53C9tYOQtxPgql8xbe1gz3GwpB0+ckJfuZhiIaacMGd8XLJGTni7yLF+Ync8+cUJXLxZhuc3nMD6iTFwcZKa3a8l/+4NHRNKTpjTNufbndyvpKQE3t7emidj7R1td0IIIYRYx40K4LPzUtxVMejopcYL7dSQcnZd0b7ZdLuT559/3qR6X331VVO6ERTa7oTbNkw5x9LtBPQdE/J2Alz1a24bXGwnYOi4o+aEJe3wkRP6ysUUCzHlhCWfhwvWzolT125j0oYUVNepMapLID4cFwWJhOEkFvacEzbd7mTDhg0IDw9HdHQ0rLj4J0gNAbTHR6cN4WM7AVPP4XprByFvJ8BVv2La2sGe42BJO3zkhL5yMcVCTDlhzvi4ZK2ciG3dAquf7Y6pX6fg17P58HFTYOHIjmb3a8m/e0PH+M4Jc9pt8sRu2rRp+OGHH3DlyhU8//zzePbZZ+Hj49PUZgkhhBDigAa398fyx7rgtc1nsOFoNnyaOeHlAS35HpbdaPLV61WrViE/Px9vvvkmduzYgdDQUDz++OPYs2ePw63gEUIIIaTpxkaHaFbqViRlYtOJXJ5HZD84uS1RoVDgqaeeQlJSEtLT09GpUydMnz4d4eHhKC8v56ILQgghhDiQyX0j8Org1gCAxTsv4HSROB7EtDbOnzdhGEbzrli1Ws1184QQQghxEK/Ft8WzD4WBZYFvsyQ4ermY7yEJHicTu+rqanz//feIj49Hu3bt8Pfff2PlypXIycnRvI1CKMrKytCzZ09069YNnTt3xhdffMH3kAghhBCiA8MwWDwqCsM7+UPFMpj+fRrS85R8D0vQmvzwxPTp0/HDDz8gLCwMkydPxg8//ABfX18uxmYVrq6uOHDgAFxdXVFZWYmoqCg8+uijgh4zIYQQ4qikEgYfjovCpdybyFKqMGn9Cfz8ch+E+tA+sro0eWL3+eefIywsDBEREThw4AAOHDigs97WrVub2hUnpFKpZlPhqqoqqFQqesiDEEIIETCFXIop7VRYf80LmYXlmLj+BH6e1gfezZz4HprgNPlS7HPPPYe4uDh4eXnB09NT75epDh48iJEjRyIoKAgMw2D79u1adVatWoWIiAg4OzsjJiYGhw4dMmvMd+7cQdeuXRESEoI33ngDfn5+Zp1PCCGEENtylQHrnuuOQE9nXLlVgSkbT6KqVsX3sASHkw2KuVRRUYGuXbti8uTJGDdunNbxzZs3Y/bs2Vi1ahX69u2LNWvWYPjw4UhPT0dYWBgAICYmBtXV1Vrn7t27F0FBQfDy8sKZM2dQUFCARx99FOPHj4e/v7/eMVVXVzdqT6msv75vz++d04WPdzGaeg7X78UU8rsYuepXTO/FtOc4WNIOHzmhr1xMsRBTTpgzPi7xnRN+rlJ8OaE7nlx3Aqdz7mDmphR89mRXyO69e8ySf/eGjgklJ8xp26rvim0qhmGwbds2jBkzRlPWu3dvdO/eHatXr9aUdejQAWPGjMGyZcvM7uPll1/G4MGD8dhjj+mts2jRIixevFirnN4VSwghhNjeZSWwKl2KOpZBH381Ho9QQySvpdfJnHfFNnnFzpZqamqQkpKCt956q1H50KFDcfToUZPaKCgogIuLCzw8PKBUKnHw4EG8/PLLBs+ZN28e5syZo/leqVQiNDQU/fv3R0pKCuLi4iCTNf5R1tXVITk5WeuYrvIHy/Sda21c9GtJG6acY6yOoeOm/MzNKbMFPmJhan1LY+GoOWFJO3zkhL5yMcVCTDlhyefhglByIh5Aq463MHvLORwtkKBHh1aYNqClRf/uDR0TSk40XCk0hV2t2OXl5SE4OBhHjhxBnz59NPXee+89bNy4ERkZGUbbTElJwZQpU8CyLFiWxcsvv2x0YtcgMTERiYmJUKlUyMzMpBU7QgghhEcH8xn8nC0FADzVSoWHWgh2StMkol2xa8A8sN7KsqxWmT4xMTFIS0uzqN8ZM2ZgxowZUCqV8PT0pBU7jtqgFTtttDohnpywpB1asdNGOSGM309Cy4l4AN5/XMa6Izn48YoM/WI6oi73DK3YWWUUHHhwxa6mpgaurq7YsmULxo4dq6k3a9YspKWl6d1qhSu0YkcIIYQIC8sCmy5LcPKWBE4SFjM7qRAurHcjNJloV+ycnJwQExODpKSkRhO7pKQkjB492ur904qdddqgFTtttDohnpywpB1asdNGOSGM309CzYk4lRozfvgbhy+X4IuLUvw4tRfC/dxMbkPoOWHXK3bl5eXIysoCAERHR2PFihWIi4uDj48PwsLCsHnzZkyYMAGff/45YmNjsXbtWnzxxRc4f/48wsPDrTo2WrEjhBBChKlKBXx6TooblQz8XVjMjlLB1a6Wr/QzZ8UOrMAkJyezALS+Jk6cqKmTmJjIhoeHs05OTmz37t3ZAwcO2HSMpaWlLAA2Pz+f3b59O1tRUcHW1NQ0+qqoqNB5TFf5g2X6zrX2Fxf9WtKGKecYq2PouCk/c3PKxBoLU+tbGgtHzQlrxYLrnHCEWIgpJ/iKhZBzoqamhr2cX8x2eWcHG/7mTvbxz4+wZZVVJrUh9JwoKipiAbClpaVG5yiCm8sOGjTI6Cu+pk+fjunTp9toRIQQQgixBwEeznipvQqJFxU4fvU25m8/jw/HRZn8gKUYCO5SrJDRpVhCCCFE+C7eYbDmggRqMBgarMYjYWq+h9Qk5lyKpYmdBRoensjPz8fx48cRHx8PuVzeqE5tbS2SkpK0jukqf7BM37nWxkW/lrRhyjnG6hg6bsrP3JwyW+AjFqbWtzQWjpoTlrTDR07oKxdTLMSUE5Z8Hi4IOScerLf9bAH+sz0dAPDemE4Y06WF3eaEUqmEn5+f+J6KJYQQQggxxWMxIci9fRerD1zFgl/T0aKZY0x5aMXODHQplhBCCLEfLAt8kyVBSpEECimLWZ1UCG7G96jMR5dirYwuxXLbBl2K1UaXncSTE5a0Q5ditVFOCOP3k5BzQl+96jo1nt+YghPZt+HlxGLb9L4I8XUzep6+croUK2INAZTL5XqDqe+YrvIHywy1a01c9GtJG6acY6yOubFoSpkt8BELU+tbGgtHzQlL2uEjJ/SViykWYsoJc8bHJSHnxIP15HLgi+d6YuyqI7hSVIGXf/gbP73cB24K7SmQUHPCnHZpYtcEtbW1jf405Ziu8gfLDLVrTVz0a0kbppxjrI65sWhKmS3wEQtT61saC0fNCUva4SMn9JWLKRZiyglzxsclIeeEoXqucuDzpzrj0c+P4eLNMkz/9hQ+fyYacqnE4HlCyQlz2qZLsWage+wIIYQQ+3WtHFh5XooaNYPYFmo8EamGPWxxR/fYWRndY8dtG6acY+k9LPqOCfkeFq76teU9LKYcd9ScsKQdPnJCX7mYYiGmnLDk83BByDlhrF7DMWlYNF758W+wLDA3vg1eGhAh+Jyge+xs5J/r93QPCxdt8HE/kZDvYeGqXzHdT2TPcbCkHT5yQl+5mGIhppwwZ3xcEnJOGKuXEBWIhZUqLNqRjuVJlxDZwh3x7f0Mnsd3TpjTrsQqIyCEEEIIEahJfSMwqU9LAMBrm9Nw5nopvwPiEK3YNQHdnMxNG3zcKC7km5O56ldMN4rbcxwsaYePnNBXLqZYiCknzBkfl4ScE8bqPXjsrYQ2yC4qx/7MIrz0bSpmthNuTpjTNt1jZwZ6eIIQQggRjyoV8L9zUuRVMgh0YTE7SgVnAS550cMTVkYPT3DbhinnWHpzsr5jQr45mat++bg52dBxR80JS9rhIyf0lYspFmLKCUs+DxeEnBPG6uk7ll9ahUc//wtF5TXo18oHX0zoDtl926AIISfo4QkbaQgg3ZzMTRt83Cgu5JuTuepXTDeK23McLGmHj5zQVy6mWIgpJ8wZH5eEnBPG6j14LMxPjrXPRuOJtX/h8OUSvLf7EpaM7gTmvn1Q+M4Jc9qlhycIIYQQ4tA6B3tiQuv6Pe2++esaNhzN5ntIFqOJHSGEEEIcXldfFq8PbQMA+L+d6fjjQgHPI7IMTewIIYQQQgC80LclnuwZCjULvPJ9Ki7kl/E9JLPRPXZNQNsJcNMGH1s7CHk7Aa76FdPWDvYcB0va4SMn9JWLKRZiyglzxsclIeeEsXqmHKurq8OCR9rhWnEFjl0pwYvfnsb0NvznhDlt01OxZqDtTgghhBDxq6wDPjknRcFdBqHNWLzSSQWFlMfx0HYn1kXbnXDbhinnWLqdgL5jQt5OgKt++dhOwNBxR80JS9rhIyf0lYspFmLKCUs+DxeEnBPG6pl77FpJJR5bcxy3K2sxpJ0fVj0dDYmE4SUnaLsTG2kIIG0nwE0bfGztIOTtBLjqV0xbO9hzHCxph4+c0FcupliIKSfMGR+XhJwTxuqZeqy1vydWP90Nz3x5An9kFGHFH5cxb0QHve1YMw7mtEsPTxBCCCGE6BAT7o2nW6kBAGsOXsH3J3J4HpFxNLEjhBBCCNGjR3MWr8a1AgC8s/0cjlwu5nlEhtHEjhBCCCHEgJlxkRjTLQh1ahav/HAGNyv5HpF+Djuxq6ysRHh4OObOncv3UAghhBAiYAzD4P3xXdCzpTfKquqw9qIUxeXVfA9LJ4ed2C1duhS9e/fmexiEEEIIsQMKmRRrJvRAqLcLiqsZTP/+DKpqVXwPS4tDTuwuXbqEixcvYsSIEXwPhRBCCCF2wqeZE76Y0B0uUhanc+5g3ta/IbRd4wQ3sTt48CBGjhyJoKAgMAyD7du3a9VZtWoVIiIi4OzsjJiYGBw6dMisPubOnYtly5ZxNGJCCCGEOIpWzZthcls1pBIG21JvYPWBq3wPqRHBTewqKirQtWtXrFy5UufxzZs3Y/bs2Zg/fz5SU1PRv39/DB8+HDk5/zyCHBMTg6ioKK2vvLw8/PLLL2jbti3atm1rq49ECCGEEBFp58ViwSPtAQAf/5GF1GKG5xH9Q3AbFA8fPhzDhw/Xe3zFihWYMmUKXnjhBQDAJ598gj179mD16tWaVbiUlBS95//111/44YcfsGXLFpSXl6O2thYeHh5YsGCB3nOqq6tRXf3PTZJKpRIAvYuRqzb4eC+mkN/FyFW/Ynovpj3HwZJ2+MgJfeViioWYcsKc8XFJyDlhrB7XOfFYdACuFFVg47EcbMqSYHh2Mbq39DXp85jLnJ+3oF8pxjAMtm3bhjFjxgAAampq4Orqii1btmDs2LGaerNmzUJaWhoOHDhgVvsbNmzAuXPnsHz5coP1Fi1ahMWLF2uV07tiCSGEEMelZoEvLkqQfkeChBA1RoSqrdKPOe+KFdyKnSFFRUVQqVTw9/dvVO7v74+bN29ard958+Zhzpw5mu+VSiVCQ0PRv39/pKSkIC4uDjJZ4x9lXV0dkpOTtY7pKn+wTN+51sZFv5a0Yco5xuoYOm7Kz9ycMlvgIxam1rc0Fo6aE5a0w0dO6CsXUyzElBOWfB4uCDknjNWzVk707luFVb8cxhuPD7JaHBquFJrCrlbs8vLyEBwcjKNHjyI2NlZTb+nSpfjmm29w8eJFq44nMTERiYmJUKlUyMzMpBU7QgghhFidaFfs/Pz8IJVKtVbnCgsLtVbxrGHGjBmYMWMGlEolPD09acWOozZoxU4brU6IJycsaYdW7LRRTgjj95OQc8JYPXvOCdGu2AFA7969ERMTg1WrVmnKOnbsiNGjR1t9CxNasSOEEEKIrdn1il15eTmysrI031+9ehVpaWnw8fFBWFgY5syZgwkTJqBHjx6IjY3F2rVrkZOTg2nTpll9bLRiZ502aMVOG61OiCcnLGmHVuy0UU4I4/eTkHPCWD17zgm7XrHbv38/4uLitMonTpyIDRs2AKjfoPiDDz5Afn4+oqKi8PHHH2PAgAFWHxut2BFCCCHE1sxZsRPcxM4elJaWwsvLC5mZmTh16hTi4uIgl8sb1amtrdXM4O8/pqv8wTJ951obF/1a0oYp5xirY+i4KT9zc8psgY9YmFrf0lg4ak5Y0g4fOaGvXEyxEFNOWPJ5uCDknDBWz55zoqysDBEREbhz5w48PT0N1hXcpVh7UFZWBgD09gpCCCGE2ExZWZnRiR2t2FlArVYjLy8P7u7u6NWrF06ePKmzXs+ePXUe01V+f1nDPnm5ublGl1y5pm/M1m7DlHOM1TF03NjPXF+Zo8XC1PqWxsJRc8KSdvjICX3lYoqFWHIC4C8WQs4JY/XsNSdYlkVZWRmCgoIgkRh+Gyyt2FlAIpEgJCQEACCVSvUGUt8xXeW6yjw8PGz+i9PQ57FmG6acY6yOubEwtQxwnFiYWt/SWDhqTljSDh85oa9cTLEQW04Ato+FkHPCWD17zgljK3UNDE/7iFEzZsww+5iuckPt2BIX47CkDVPOMVbH3FgIOQ4AP7Ewtb6lsXDUnLCkHT5yQl+5mGJBOdF0Qs4JY/XElhO60KVYAWrYTsWUp1+IdVEshIHiIBwUC+GgWAiD0OJAK3YCpFAosHDhQigUCr6H4vAoFsJAcRAOioVwUCyEQWhxoBU7QgghhBCRoBU7QgghhBCRoIkdIYQQQohI0MSOEEIIIUQkaGJHCCGEECISNLEjhBBCCBEJmtiJQGVlJcLDwzF37ly+h+KwysrK0LNnT3Tr1g2dO3fGF198wfeQHFZubi4GDRqEjh07okuXLtiyZQvfQ3JYY8eOhbe3N8aPH8/3UBzOzp070a5dO7Rp0wbr1q3jezgOzdZ5QNudiMD8+fNx6dIlhIWFYfny5XwPxyGpVCpUV1fD1dUVlZWViIqKwsmTJ+Hr68v30BxOfn4+CgoK0K1bNxQWFqJ79+7IyMhAs2bN+B6aw0lOTkZ5eTk2btyIn376ie/hOIy6ujp07NgRycnJ8PDwQPfu3XH8+HH4+PjwPTSHZOs8oBU7O3fp0iVcvHgRI0aM4HsoDk0qlcLV1RUAUFVVBZVKBfp/Jn4EBgaiW7duAIAWLVrAx8cHJSUl/A7KQcXFxcHd3Z3vYTicEydOoFOnTggODoa7uztGjBiBPXv28D0sh2XrPKCJnRUdPHgQI0eORFBQEBiGwfbt27XqrFq1ChEREXB2dkZMTAwOHTpkVh9z587FsmXLOBqxeNkiFnfu3EHXrl0REhKCN954A35+fhyNXlxsEYsGp06dglqtRmhoaBNHLT62jAMxT1Njk5eXh+DgYM33ISEhuHHjhi2GLjr2mCc0sbOiiooKdO3aFStXrtR5fPPmzZg9ezbmz5+P1NRU9O/fH8OHD0dOTo6mTkxMDKKiorS+8vLy8Msvv6Bt27Zo27atrT6S3bJ2LADAy8sLZ86cwdWrV/Hdd9+hoKDAJp/N3tgiFgBQXFyM5557DmvXrrX6Z7JHtooDMV9TY6PragHDMFYds1hxkSc2xxKbAMBu27atUVmvXr3YadOmNSpr3749+9Zbb5nU5ltvvcWGhISw4eHhrK+vL+vh4cEuXryYqyGLljVi8aBp06axP/74o6VDdBjWikVVVRXbv39/9uuvv+ZimKJnzZxITk5mx40b19QhOixLYnPkyBF2zJgxmmOvvvoqu2nTJquPVeyakie2zANaseNJTU0NUlJSMHTo0EblQ4cOxdGjR01qY9myZcjNzUV2djaWL1+OqVOnYsGCBdYYrqhxEYuCggIolUoAgFKpxMGDB9GuXTvOxyp2XMSCZVlMmjQJgwcPxoQJE6wxTNHjIg7EOkyJTa9evXDu3DncuHEDZWVl2LVrFxISEvgYrqgJNU9kvPXs4IqKiqBSqeDv79+o3N/fHzdv3uRpVI6Ji1hcv34dU6ZMAcuyYFkWM2fORJcuXawxXFHjIhZHjhzB5s2b0aVLF839MN988w06d+7M9XBFi6vfTwkJCTh9+jQqKioQEhKCbdu2oWfPnlwP16GYEhuZTIaPPvoIcXFxUKvVeOONN+gJfSswNU9snQc0sePZg/c9sCxr0b0QkyZN4mhEjqspsYiJiUFaWpoVRuWYmhKLfv36Qa1WW2NYDqepv5/oSUzrMRabUaNGYdSoUbYelkMyFgtb5wFdiuWJn58fpFKp1v/9FhYWas3+iXVRLISDYiEMFAfhotgIh1BjQRM7njg5OSEmJgZJSUmNypOSktCnTx+eRuWYKBbCQbEQBoqDcFFshEOosaBLsVZUXl6OrKwszfdXr15FWloafHx8EBYWhjlz5mDChAno0aMHYmNjsXbtWuTk5GDatGk8jlqcKBbCQbEQBoqDcFFshMMuY2GTZ28dVHJyMgtA62vixImaOomJiWx4eDjr5OTEdu/enT1w4AB/AxYxioVwUCyEgeIgXBQb4bDHWNC7YgkhhBBCRILusSOEEEIIEQma2BFCCCGEiARN7AghhBBCRIImdoQQQgghIkETO0IIIYQQkaCJHSGEEEKISNDEjhBCCCFEJGhiRwghhBAiEvRKMQuo1Wrk5eXB3d0dDMPwPRxCCCGEiBjLsigrK0NQUBAkEsNrcjSxs0BeXh5CQ0P5HgYhhBBCHEhubi5CQkIM1qGJnQXc3d0B1L8M+NixYxg6dCjkcnmjOrW1tdi7d6/WMV3lD5bpO9fauOjXkjZMOcdYHUPHTfmZm1NmC3zEwtT6lsbCUXPCknb4yAl95WKKhZhywpLPwwUh54SxevacE0qlEqGhoZr5hyE0sbNAw+VXd3d3uLq6wsPDQ+c/El3HdJU/WKbvXGvjol9L2jDlHGN1DB035WduTpkt8BELU+tbGgtHzQlL2uEjJ/SViykWYsoJSz4PF4ScE8bqiSEnTLn9ix6eIIQQQggRCYed2K1atQoRERFwdnZGTEwMDh06xPeQCCGEEEKaxCEndps3b8bs2bMxf/58pKamon///hg+fDhycnL4HhohhBBCiMUc8h67FStWYMqUKXjhhRcAAJ988gn27NmD1atXY9myZVr1q6urUV1drfleqVQCqL/Ofv+f99N3TFf5g2X5tyugrAGKlJVwUThBJpVALmEgkVh3axVDn8eabZhyjrE65saiKWW2wEcsTK1vaSyakhP2HAdL2uEjJ/SViykWYsoJc8bHJSHnhLF69pwT5rTNsCzLWm0kAlRTUwNXV1ds2bIFY8eO1ZTPmjULaWlpOHDggNY5ixYtwuLFi7XKv/vuO7i6unI+xqWpUhRWaU/iJGAhZQCpBPV/3v+ls4zVW0/GADIJIJcAcgkLuaS+TC75p1wmAeQMILt3vOHrwXpWnm8SQgghDq2yshJPP/00SktL4eHhYbCuw63YFRUVQaVSwd/fv1G5v78/bt68qfOcefPmYc6cOZrvGx47jouLw/HjxxEfH6/zCZukpCStY7rKHyz7OPMQUHVXaxxqMFCzQK3K1E9rmxmXTMJAIZPASSaBQiaBuqYK3p7ucJZL4SyXwFkmhaLRnxIo5FI4yyRwlkshY1hcycpAdOcoNHOWQyGXQiGTaI4rZBJIocbxo4cxdEgc3FwUkEuZRk8H6ft56zvWlDJb4KJfc9swtb6xeub829dX/mCZPcfBknZMqW9pHAwdE3ssxJQTlnweLgg5J4zVs+ecaLhSaAqHm9g1ePCRYZZl9T5GrFAooFAotMobAiiXy/UGU98xXeUNZUmz++O333Zh6LBhYCQy1KrVqK1To07NolalRq2KRd29P2tVatSp7/u76r46jcrvr8+iuk6N6joVqmvVmr9X1dQh50Y+PH2ao1bF1h+vu3e89r6/16lQq/pnobdOzaKuRoWKmoYZJ4PCqnK9P3vdpPjxygUjdWR4J6X+IRcJAyhk9yaO9yZ/NXel+DI3BS5y2T+TSrkUcgmDghsSnP3jCpop6ieOcglw6SaDqnOFaObsBGeZFAzUuHiHgWeOEk4yGRiGgVpdh8tKICC/AnK5DBKGgYQBJAwDhgEYMGDBgmUBlgXULAsW9/5kAYCF+v5jbP2/tfvrNPwd9+oAQJ1KhXO3GThfuQOZVAp96+oGl9tZFS7eYeCTWwaFkxwyKQOZhIFMIoFMykAqYSCXSCC9Vy4FUKsGZDKZSb+cDP27N3TckpwwtU9r4apfc9sxpb6lcTB0TOyxsEYcTKlnjZwwZ3xcEnJOGKtnjzlhTrsON7Hz8/ODVCrVWp0rLCzUWsXjE8MAcqkEcrkULpDapM/a2lrs2nUDI0bEGP1HpFKz2hPDWjUqqqqx/9ARdOvRC3VqBlX3JoWaP2vr61XdmyhW1apQWVOHnOt58PRtjhoVe6+eGlV1qkb1qmrVmv7VLHC3VoW7tSoADfceMMir1Pd/NRIcKrj2QJkUW66e1ypbfSHlgTIZPj1/wvAPzyqk+OJiapPbWH3hlBn1ZXj9RBKcZVK4OP2zqtowUXZxkkIhlaC0WILjO9Lh6aqAu7MM7s5yuCtkcHeWwUXG4EYFcOPOXbTwZODq5HC/ZgghhDcO9xvXyckJMTExSEpKanSPXVJSEkaPHs3jyOyLVFL/H2xXp8bltbXOyPUA+rf2M/n/MOonlNcNTihra2vx22+78PDQBKggRdW9SWXD5K/8bg0OHf0LXaNjUMsy9RPBe5PJyupanLuQidCWEahRAVW1KtytqcO163nw8m2O6nuTyZo6NZRKJdzc3e+totW/F7isvAIurq71Zer6FTf1vdU1NVu/esg0rOKhfjWYuW9V75/y+mOSeyt9jb6/rx4YBiyrRumdUnh6eYJhtB9eN3aRnUX9qt/tO0q4NHODmgXq1PUrunVqFqp7q78qNVu/yqtWa1YF2UaTZn0kSCm6buC4DB+crV9ddZZL4NtMAW9XOVSVEvxZ+Tf83J3h08wJvs2c4OMqw/UKoKSiBi08ZfT+ZUIIaQKHm9gBwJw5czBhwgT06NEDsbGxWLt2LXJycjBt2jS+h0YMYBjUX0aVy+EJ7fsjbqWzGNKhhc57J3ZVXMSIYe0a3SPx4GSyvmwXRozoo6Osv83vJ6rv96Em3U9U30Zfo22wLIvKqhrs2LUbA+KGoI6VaCbNd2vqJ8lVtf9Mok+m/Y2QiDaorGVRVlWLsqo6lFXX/6m8W4tiZQWq1BLUqlhU1apx485d3LhzF4AEF+7k6xiBDB+e3Q8nmQT+Hgr4uyugLpfgrCQDQd7NEOjuhLwKoLKmDp48XP4jhBB74ZATuyeeeALFxcVYsmQJ8vPzERUVhV27diE8PJzvoRHCC4Zh4CSTwEUGNHdXGL052a3wLEYMaa33RvFdu3Zh+PChqGElKCmvQXFFNQqVd3Hg2CmEtG6P0rsqFFfUoKSiBjdL7yKnSInyWgY1dWrkltxFbkn9JPD0kfsvn8vw/tk/4eemQJiPC8J9myHMxxVhPq5o1cINrVu4wU3hkL/SCCFEw2F/C06fPh3Tp0/nexiEiBbDMHBzksFNIUOYrytqa91QdZnFiH4RWk+d7dq1C0OGDsPtuyoUKKtwvaQC+4+nwjs4EoVlNcgpqcDlm6WoVDEoKq9GUXk1Tufc0eozyNMZrf3d0aaFG9rcm+y1DXCHhzOt8hFCHIPDTuwIIcKikEkQ6qNAqI8ruga7g8llMWJ4O812Art27ULfuHjkK2uRU1J576sC2UWVyLpVjltl1cgrrUJeaRUOZt5q1HaYjyuigj3QKcgTnYLq/2zurv2kOyGE2Dua2DWBPe9irQsfO7ubeg7Xu+wLeWd3rvoV0y77DX+6yoD2/q5o76+9MXjp3VpcvlWBrMJyZN3781JhOW4qqzUTwV1///M0vL+7Ap2DPRAd5oXuYV6ICvKAs7zxE+hC3mWf65zQV+7Iv5+EnBPmjI9LQs4JY/XsOSfMadvh3jzRFImJiUhMTIRKpUJmZqbV3jxBCOFORS1wvbJ+C5bccgbXKxjcqgLYB54tljIsQpoBLd1ZRLizaOXOwsNJT6OEEGJD5rx5giZ2FlAqlfD09ER+fr5V3jzBx27ihsZs7TZMOcdYHXN3FG9KmS3wEQtT61saCyHlREV1HS7cLMOZ66U4nXMHp3PuoKi8Rqte6+bNECQtw2MDu6Bv6+Zwt/BePWvEguuc0FfuyL+fhJwTlnweLnDVJx+xsOecUCqV8PPzo1eKWVtDAO1xF2tD+NjZ3dRzLN3ZXd8xIe/szlW/fOzsbui4EHLCSy5HbGsXxLZuAaB+u5frt+8i5dptpFy7jZPZJbh4s6z+ki4kOLj5HCQM0DnEC/1a+2Jw+xboFuoNqZkvSrZGLLjOCX3ljvz7Scg5Yc74uMRVn3zEwh5zwpx2aWJHCHF4DMMg1McVoT6uGBMdDKB+w+TDmQXYvD8NN+rckF1ciTO5d3Am9w4Sky/D21WOQe1aIK59Cwxs0xyervTkLSGEfzSxI4QQHXyaOWF4VADYHDVGjOiHWxV1OHq5GAczb2F/RiFuV9ZiW+oNbEu9AamEQY9wbyR0CsDwzgEI9HThe/iEEAdFEztCCDFBkJcLxseEYHxMCOpUaqRcu40/Mwrx54VCXCosx/GrJTh+tQRLdqYjJtwbj3QOpEkeIcTmaGJHCCFmkkkl6B3pi96Rvpg3vANySyqRlF6AXX/n49S9+/RSrt3WTPKGd2oBF9vuDkIIcVA0sSOEkCYK9XHF8/0i8Hy/CNwsrcLv5/K1JnkSRoo/y1MxPiYUgzu0gEImNd4wIYSYiSZ2TWDPmx3qwscGoKaew/VmrELeAJSrfsW0Gas9xcHXVYpne4Xg2V4hKFBWYff5AvySloe/88rwx8Vb+OPiLXi5yPFI5wCMjQ5Cl2APMEzjp2v5yAl95fYci6a2IeScMGd8XOKqTz5iYc85YU7btI+dGWiDYkKIpW5WAiduSXCqiEFpzT8TuUBXFn391ejpx8KZ/lebEKIDbVBsZbRBMbdtmHKOpRuA6jsm5A1AueqXjw1ADR131Jx4sB2JVIZjV0qwLTUPey8UoKpWDQBwdZJiZJcAPNUzFG2bu9AGxWZ8Hmu1IeScsOTzcMEaOWGrWNhzTtAGxTbSEEB73OzQED42ADX1HK43YxXyBqBc9SumzVjtOQ73txPXIQBxHQJQWlmLranXsel4DrIKy7H51A1sPnUDXYI9EOXMYAgjtXlO6CsXUyzElBPmjI9LXOcE1/Ut+Xdv6BjfOWFOuxKrjIAQQohRnq5yTO4bgaTXBmDziw9hVNcgyKUMzt5Q4rvLUgxcfhCf7MtEUXk130MlhNgJWrEjhBCeMQyj2T6luLwjvj9+DesOZKK4ogaf7LuEVcmXMbpbEKb0j0D7AMOXYQghjo0mdoQQIiC+bgq8NCACQcoLkIR3x4ZjOUjLvYMtKdexJeU6+rb2xQv9I9E3wovvoRJCBEiUl2Krq6vRrVs3MAyDtLS0RscYhtH6+vzzz/kZKCGE6CGVAI90DsD2GX3x88t98EiXQEglDI5kFWPy+pMYteovnC5iUKdS8z1UQoiAiHLF7o033kBQUBDOnDmj8/j69esxbNgwzfeenp62GhohhJgtJtwbMeHeuHHnLtYfvorvTuTg4s0yXLwpRfKnR/DSwFYY1z0EznLa9JgQRye6id3vv/+OvXv34ueff8bvv/+us46XlxcCAgJMbrO6uhrV1f/cvKxUKgHY92aHuvCxAaip53C9GauQNwDlql8xbcZqz3GwpB199Vs0k+HNhDZ4qX9LfH0sG18dvoKckruYv+0cPknKxOS+4XiyRyjcnWX0+4mDNoScE+aMj0tCywlz6tlzTpjTtqj2sSsoKEBMTAy2b98OPz8/REREIDU1Fd26ddPUYRgGwcHBqKqqQkREBKZMmYIXX3wREon+q9KLFi3C4sWLtcppg2JCCJ+qVcCxQgbJeRLcubfpsYuUxYAAFoOC1HAV3f+6E+KYHHKDYpZlMWLECPTt2xdvv/02srOzdU7s3n33XQwZMgQuLi74448/sGDBAsybNw9vv/223rZ1rdiFhobSBsUctWHKOZZuAKrvmJA3AOWqXz42ADV03FFzwpJ2zM0JlpFix9l8rD2UjStFFQAAN4UUffxqsejpAWju4ar3XEeKhZhywpLPwwUh54SxepYcE0pOiGqDYn2rZfc7efIkjh49CqVSiXnz5hmse/8ErmHCt2TJEoMTO4VCAYVCoVXeEEB73OzQED42ADX1HK43YxXyBqBc9SumzVjtOQ6WtGNOTjzZuyUe7xmO3edv4tM/LuHizTLsvSHBkU+PYXKfCEzpFwHvZk4mtS/2WIgpJ8wZH5eEnBPG6tnjf7PNaVfwE7uZM2fiySefNFinZcuWePfdd/HXX39pTcB69OiBZ555Bhs3btR57kMPPQSlUomCggL4+/tzNm5CCLE1iYTBiM6BGNYpALvO3sB7v6Yhr1KFlclZWH/kKib2aYkX+kfC3Ykx3hghxC4JfmLn5+cHPz8/o/U+/fRTvPvuu5rv8/LykJCQgM2bN6N37956z0tNTYWzszO8vLy4GC4hhPBOImGQ0MkftdkqOEXEIHH/VaTnK7Fq/2VsPJqNZ3uHIcy2zz4QQmxE8BM7U4WFhTX63s3NDQDQqlUrhISEAAB27NiBmzdvIjY2Fi4uLkhOTsb8+fPx4osv6rzUSggh9kzCAEM7+mNEl2AkpRfgk32XkJ6vxJpDV+EkkeKaSyamDWoDnwcu0RJC7JdoJnamkMvlWLVqFebMmQO1Wo3IyEgsWbIEM2bM4HtohBBiNQzDYGinAMR39Me+C4X4OCkD6fllWHsoG5uO52Jin5aY2j8SbnSJlhC7J9qJXcuWLfHgA7/Dhg1rtDExIYQ4EoZhEN/RHwNbe+PDTbtxROmF9PwyrNp/GV8fu4YJD4UilC7REmLXRDuxI4QQohvDMIjyYfH6Mw9h/6USzSXa1QeuwlkqxQ23LLw4oDU8XW3/1CshpGloYtcE9ryLtS587Oxu6jmW7uyu75iQd3bnql8x7bJvz3GwpB1b5URdXR3i2vpiYGsf7LtYiE//zEJGQQUS91/B13/lYFJsGJ7pGaSzPXuMhZhywpzxcUnIOWGsnj3/N9uctkWzQbEtJCYmIjExESqVCpmZmfTmCUKIqKhZ4GwJg925EuTf/edNFoMC1RgYyMKFlgII4YVDvnnClpRKJTw9PenNExy1Ye4u++bs7K7vmJB3dueqXzHtsm/PcbCkHT5y4v7yIQ8/jD8ySvBZ8mVk3ap/k4WHswzP922Jp3sE4tjBZLuMhZhywpLPwwUh54Sxek3JCb5/P4nqzRNC1hBAe9zF2hA+dnY39RxLd3bXd0zIO7tz1a+Ydtm35zhY0g4fOQEACicnjO4ein91C8Gvqbn4786zKLhbh0/+yMKGo9fQrzmDAWoGrnYaCzHlhDnj45KQc8JYPXv8b7Y57UqsMgJCCCF2Typh8K8ugXirqwofje+MyObNcOduLXbmSDF4xSGs3n8ZFdV1fA+TEHIfs1bsSktLsW3bNhw6dAjZ2dmorKxE8+bNER0djYSEBPTp08da4ySEEMITCQP8q2sgxnQPxbaUHLz/29+4VVmL93dfxBeHruClAZGYEBsOVye6CEQI30xascvPz8fUqVMRGBiIJUuWoKKiAt26dcOQIUMQEhKC5OT6+y06duyIzZs3W3vMhBBCeCCVMBjdLQjzuqnwwaNRaOnripKKGiz7/SIGfJCMLw5ewd0aFd/DJMShmfS/V127dsVzzz2HEydOICoqSmedu3fvYvv27VixYgVyc3Mxd+5cTgdKCCFEGKQMMDI6CI/GhGJb6g189mcWckoqsXTXBaw5eAXTBkbi2YfC4SyX8j1UQhyOSRO78+fPo3nz5gbruLi44KmnnsJTTz2FW7ducTI4QgghwiWTSvBYj1CMiQ7GttM38FnyJeSW3MW7v9VP8F4e2ApP9w6jCR4hNmTSxM7YpK6p9e2VPW92qAsfG4Caeg4Xm7FastmnI8VCyJux2nMcLGmHj5zQV25qLMZ2C8C/OrfAttQ8rDpwBTfuVGHJznR8fuAyXhoQgSdigqFowgSPckIYv5+EnBPG6tnzf7PNadvsfex+/fVX3Q0xDJydndG6dWtERESY06TdoA2KCSHEuDo1cOIWg73XJbhdU7/RsacTi/hgNWJbsJDRfgyEmMWqGxRLJBIwDIMHT2soYxgG/fr1w/bt2+Ht7W3+6O0AbVDMbRumnGPpBqD6jgl5A1Cu+uVjA1BDxx01Jyxph4+c0FfelFhU16nx8+kbWH3gCm4qqwEAAR4KTBsYifHdg6EwY4ZHOSGM309Czglj9YSQE5ay6gbFSUlJmD9/PpYuXYpevXoBAE6cOIG3334b77zzDjw9PfHSSy9h7ty5+PLLLy37BHaiIYD2uNmhIXxsAGrqOVxvxirkDUC56ldMm7HacxwsaYePnNBXbkks5HJgYt9IPNk7HD+ezEVi8mXcVFZh0Y4LWHvwKmYMbo3HYkLhZMYEj3JCGL+fhJwTxurZ43+zzWnX7IndrFmzsHbt2kZ71g0ZMgTOzs548cUXcf78eXzyySd4/vnnzW2aEEKICClkUkyIbYnHeoRi88lcrNqfhbzSKszfdg6rki/jlcGtMS4mBHIpXaMlpKnMzqLLly/rXAb08PDAlStXAABt2rRBUVFR00dHCCFENJzlUkzs0xIHXo/DwpEd0dxdgRt37uKtrX9j8Ef78ePJXNSq1HwPkxC7ZvbELiYmBq+//nqjLU1u3bqFN954Az179gQAXLp0CSEhIdyNkhBCiGg4y6WY3DcCh96Iwzv/6gg/NwVyS+7ijZ/PYshHB7DlVC7qaIJHiEXMnth9+eWXuHr1KkJCQtC6dWu0adMGISEhyM7Oxrp16wAA5eXleOeddzgfrDGnT59GfHw8vLy84OvrixdffBHl5eWN6uTk5GDkyJFo1qwZ/Pz88Oqrr6KmpsbmYyWEEEfnLJdiSr/6Cd7bj3SAn5sTckoq8fpPZ/HwigP4OeU6TfAIMZPZ99i1a9cOFy5cwJ49e5CZmQmWZdG+fXvEx8dDIqmfJ44ZM4brcRqVl5eHhx9+GE888QRWrlwJpVKJ2bNnY9KkSfjpp58AACqVCo888giaN2+Ow4cPo7i4GBMnTgTLsvjss89sPmZCCCGAi5MUL/SPxNO9w/DtX9ew5sAVZBdX4t9bzmBlchZeGdwawzs6xv6ohDSVRW9sZhgGw4YNw6BBg6BQKMAwDNfjMtvOnTshl8uRmJiomWAmJiYiOjoaWVlZaN26Nfbu3Yv09HTk5uYiKCgIAPDRRx9h0qRJWLp0qd5HiKurq1FdXa35XqlUArDvzQ514WMDUFPP4XozViFvAMpVv2LajNWe42BJO3zkhL5yW8ZCzgCTY8PwePcgbDqRi3WHs3G1qAJzfjyDT31d0N+bweBqy6+wiCknzBkfl4ScE8bq2WNOPNinKczex06tVmPp0qX4/PPPUVBQgMzMTERGRuKdd95By5YtMWXKFLMHzIXPPvsMH3zwAXJzczVlGRkZaN++PdavX49JkyZhwYIF+OWXX3DmzBlNndu3b8PHxwd//vkn4uLidLa9aNEiLF68WKucNigmhBDrqVYBB28ySM6ToKKufgGhhTOLhBA1uvuxkPC/pkCITZizQTFYMy1evJiNjIxkv/32W9bFxYW9fPkyy7Isu3nzZvahhx4ytznOnDt3jpXJZOwHH3zAVldXsyUlJeyjjz7KAmDfe+89lmVZdurUqWx8fLzWuU5OTux3332nt+2qqiq2tLRU85Wbm8sCYPPz89nt27ezFRUVbE1NTaOviooKncd0lT9Ypu9ca39x0a8lbZhyjrE6ho6b8jM3p0yssTC1vqWxcNScsFYsuM4JIceipKyS/XhPOtth/g42/M2dbPibO9nBy5PZraeusXerqnmNQ1Ni0ZQ48BULIeeEsXr2nBNFRUUsALa0tNTofMjsS7Fff/011q5diyFDhmDatGma8i5duuDixYvmNmeUvtWy+508eRI9evTAxo0bMWfOHMybNw9SqRSvvvoq/P39IZX+835CXZeN2XtvzNBHoVBAoVBoldMGxdy2QRsUa6PNWMWTE5a0Y+8bFHPFWy7HjLjWCCzLxE2P9vjq6DVcvlWB17b8jVUHruLVIW3wSOdASExcwhNTTpgzPi4JOSeM1bPHnLDqBsU3btxA69attcrVarVVri/PnDkTTz75pME6LVu2BAA8/fTTePrpp1FQUIBmzZqBYRisWLFC8+7agIAAHD9+vNG5t2/fRm1tLfz9/TkfOyGEEO44y4DpgyLxfP9IbDiSjS8OXcGlwnK88n0qPvvzEmYNaYvhUQEmT/AIESOzJ3adOnXCoUOHEB4e3qh8y5YtiI6O5mxgDfz8/ODn52fWOQ2TtK+++grOzs6Ij48HAMTGxmLp0qXIz89HYGAgAGDv3r1QKBSIiYnhduCEEEKswt1ZjleGtMHEvi2x/nA21h2+gsyCcsz47jTa+btj9sNtMCwqQBAP9hFia2ZP7BYuXIgJEybgxo0bUKvV2Lp1KzIyMvD1119j586d1hijyVauXIk+ffrAzc0NSUlJeP311/Hf//4XXl5eAIChQ4eiY8eOmDBhAj788EOUlJRg7ty5mDp1qvGbEQkhhAiKh7Mcsx5ug0l9W2L9kav48vBVZBSU4eVNp9E1xBNvDGuPvq3NWxggxN6ZvUHxyJEjsXnzZuzatQsMw2DBggW4cOECduzYoVkZ48uJEycQHx+Pzp07Y+3atVizZg1effVVzXGpVIrffvsNzs7O6Nu3Lx5//HGMGTMGy5cv53HUhBBCmsLTRY7ZD7fF4TcH49XBreHqJMWZ66V4Zt1xPLPuL5zJvcP3EAmxGYv2sUtISEBCQgLXY2myr7/+2midsLAw3lcWCSGEcM/TRY45Q9vhuT4tkZichU1/5eBIVjFGZx3B8KgAzBrciu8hEmJ1Zq/YEUIIIULm56bAwpGd8Me/B2Jc9xAwDPD7uZsY8dkRfH9ZgvzSKr6HSIjVmLRi5+3tbfJNqCUlJU0akD2x512sdaE3TwhjZ3eu+hXTLvv2HAdL2nHUN08YYkm/Ae5y/HdsRzzfJxQf78vCvou38FehBA9/fBgTHgrF9IGR8HDRv42EkHPCnPFxScg5YayePecE52+e2Lhxo+bvxcXFePfdd5GQkIDY2FgAwLFjx7Bnzx688847eO211ywYsn1ITExEYmIiVCoVMjMz6c0ThBBiR7LLgB05UmQp6xcqmslYDAtRo68/CyldvyICZs6bJ8x+pdi4ceMQFxeHmTNnNipfuXIl9u3bh+3bt5s9YHujVCrh6emJ/Px8HD9+HPHx8VqbB9bW1iIpKUnrmK7yB8v0nWttXPRrSRumnGOsjqHjpvzMzSmzBT5iYWp9S2PhqDlhSTt85IS+cjHFora2Fnv3JsE5ojuW77uMrFsVAIBIP1e8Oawd4tr6Nbo6JeSc4OpnYi4h54SxevacE0qlEn5+fiZN7Mx+eGLPnj14//33tcoTEhLw1ltvmducXWsIoD3uYm0IF/1a0gYfu+wLeWd3rvoV0y779hwHS9rhIyf0lYslFgwDDOkYgIejgvHDyVx8nJSJK0WVeOnbVPRp5Yv5j3RApyBPi/rkIyfMGR+XhJwTxurZY06Y067Zi8++vr7Ytm2bVvn27dvh6+trbnOEEEKIzcmkEjz7UDiSXx+EaQNbwUkmwdHLxfjXZ4fxxk9nUFRezfcQCbGI2St2ixcvxpQpU7B//37NPXZ//fUXdu/ejXXr1nE+QEIIIcRaPJzleGt4ezzTOwwf7MnAjjN5+PHUdfx+7iZmD2kNb7NuViKEf2av2E2aNAlHjx6Fl5cXtm7dip9//hmenp44cuQIJk2aZIUhEkIIIdYV6uOKz56Kxs8v90HnYE+UVdXh/367iOVnpTiZfZvv4RFiMos2KO7duzc2bdrE9VgIIYQQXsWEe2P7jL744WQOPtydgbzKWjz95UmM6RaE/4zogBYeznwPkRCDTFqxq6ioMKtRc+sTQgghQiGVMHimdzj2zu6LPv5qMAywPS0Pgz86gHWHrqBOpeZ7iIToZdKKXevWrfHKK69g0qRJCAoK0lmHZVns27cPK1aswIABAzBv3jxOBypE9rzZoS5c9GtJG3xsxirkDUC56pePDUANHXfUnLCkHT5yQl+5mGJhbhtucgZPRKoxe2RPLN2dhTPXS/HubxewLfU6lo7uhE5BHia1a42csOTzcEHIOWGsnj3nhDltm7SPXUZGBt5++238+uuv6NatG3r06IGgoCA4Ozvj9u3bSE9Px7FjxyCXyzFv3jy8+OKLkEqlTfoQQkQbFBNCiGNSs8DxQga/XpOgUsVAAhaDAlkMC1VDIb7/3BGBsdoGxdevX8eWLVtw8OBBZGdn4+7du/Dz80N0dDQSEhIwYsQISCTi376bNijmtg1TzrF0A1B9x4S8AShX/fKxAaih446aE5a0w0dO6CsXUyy4iENReTXe/S0Dv527CQAI8XbBwhFtUXklhTYotmI7XPx+suecsNoGxSEhIXjttddE/dowczQE0B43OzSEi34taYOPzViFvAEoV/3ysQGooeOOmhOWtMNHTugrF1MsmhKHQG85Ep+NwbiLBXh72zlcv30XUzedQQ8/CXoPZBHgShsUW7MdLn4/2WNOmNOu+JfXCCGEEI4Nbu+PpDkDMblvSzAMcKpIguGfHsGuv/P5HhpxcDSxI4QQQizQTCHDwpGdsOXF3gh0ZXG7shbTN53Gq9+n4nZFDd/DIw6KJnaEEEJIE3QN8cTcziq8PDACUgmDX8/kYegnB/HHhQK+h0YckN1M7JYuXYo+ffrA1dUVXl5eWseLi4sxbNgwBAUFQaFQIDQ0FDNnzoRSqdTUyc7OBsMwWl+7d++24SchhBAiNjIJMOfhNtj6ch+0buGGW2XVmLLxFOZuOYOyKttuDUMcm91M7GpqavDYY4/h5Zdf1nlcIpFg9OjR+PXXX5GZmYkNGzZg3759mDZtmlbdffv2IT8/X/M1ePBgaw+fEEKIA+ga6oWdr/TDiwMiwTDATynXMeKzo7h4h+F7aMRBWPRKsUOHDmHNmjW4fPkyfvrpJwQHB+Obb75BREQE+vXrx/UYAQCLFy8GAGzYsEHncW9v70aTvvDwcEyfPh0ffvihVl1fX18EBASY3Hd1dTWqq6s13zesAtrzZoe68LEBqKnncL0Zq5A3AOWqXz42ADV03FFzwpJ2+MgJfeViioWtckIK4PX41ohr64s3t55DTsldrFZKUfnbBbye0A4KmcRg+0L+/STknDBWz55zwpy2zdrHDgB+/vlnTJgwAc888wy++eYbpKenIzIyEqtWrcLOnTuxa9cuswdsjg0bNmD27Nm4c+eOwXp5eXl4+umnERISgm+//RZA/aXYiIgIhIaGoqqqCm3atMFrr72G8ePHG2xr0aJFmonl/WiDYkIIIYZUq4BfrklwpKB+MhfsyuK5NioE0H86iBnM2aAYrJm6devGbty4kWVZlnVzc2MvX77MsizLpqamsv7+/uY2Z7b169eznp6eeo8/+eSTrIuLCwuAHTlyJHv37l3NsVu3brErVqxgjx8/zp48eZJ95513WIlEwn7zzTcG+6yqqmJLS0s1X7m5uSwANj8/n92+fTtbUVHB1tTUNPqqqKjQeUxX+YNl+s619hcX/VrShinnGKtj6LgpP3NzysQaC1PrWxoLR80Ja8WC65xwhFjwmRP/99UvbLfFe9jwN3ey7d7exW48cpktLy+3OA58xULIOWGsnj3nRFFREQuALS0tNTpPMvtSbEZGBgYMGKBV7uHhYXQV7UH6VsLud/LkSfTo0cPkNj/++GMsXLgQGRkZ+M9//oM5c+Zg1apVAAA/P79Gmyv36NEDt2/fxgcffIBnn31Wb5sKhQIKhUKrnDYo5rYN2qBYG9+bsTalHm1Q3PR2aINibfaaE519WEwe3QdvbTuPQ5eKsODXCziYWYQ4N9qgmDYoNs6cds2e2AUGBiIrKwstW7ZsVH748GFERkaa1dbMmTPx5JNPGqzzYD/GBAQEICAgAO3bt4evry/69++Pd955B4GBgTrrP/TQQ1i3bp1ZfRBCCCHmauGuwMbJvfDVkat4f/dF7Lt4CyflUoR2LsaAdqbf902IIWZP7F566SXMmjULX331FRiGQV5eHo4dO4a5c+diwYIFZrXl5+cHPz8/c4dgMvbe7YP3P/jwoNTUVL2TPkIIIYRLEgmDF/pH4qFIX7z6/WlcKarExA0pmDWkDV4Z3AZSCT09S5rG7IndG2+8gdLSUsTFxaGqqgoDBgyAQqHA3LlzMXPmTGuMEQCQk5ODkpIS5OTkQKVSIS0tDQDQunVruLm5YdeuXSgoKEDPnj3h5uaG9PR0vPHGG+jbt69m1W/jxo2Qy+WIjo6GRCLBjh078Omnn+L999+32rgJIYSQB0UFe2Lbyw/hpTX78FehBJ/su4ST2SX45IloeDnbzU5kRIAs2u5k6dKlmD9/PtLT06FWq9GxY0e4ublxPbZGFixYgI0bN2q+j46OBgAkJydj0KBBcHFxwRdffIHXXnsN1dXVCA0NxaOPPoq33nqrUTvvvvsurl27BqlUirZt2+Krr74yeH8dIYQQYg2uTjI81UqNcf27YMGvF3AkqxgjPj2Ejx/rzPfQiB2zaGIHAK6urujRoweUSiX27duHdu3aoUOHDlyOrZENGzbo3cMOAOLi4nD06FGDbUycOBETJ07keGSEEEKI5cZ0C0J0uA+mbzqNzIJyPLf+FIaFMBimNms3MkIAWPDmiccffxwrV64EANy9exc9e/bE448/ji5duuDnn3/mfICEEEKI2LVu4Y7tM/pifEwI1CywK1eKKd+cRnG5/nvECdHF7BW7gwcPYv78+QCAbdu2Qa1W486dO9i4cSPeffddjBs3jvNBCpU972KtC715Qhg7u3PVL715oumEvMs+vXnC+m3YOifkDLBsTEdEB7th0c4LOJxVjBH/O4RPn+yKzoHNtNqgN0+YV8+ec8Kqb55wcXFBZmYmQkND8dxzzyEoKAj//e9/kZOTg44dO6K8vNzsAduLxMREJCYmQqVSITMzk948QQghxCryK4H1mVIU3GUgZViMbalGP38WDD0065DMefOE2St2oaGhOHbsGHx8fLB792788MMPAIDbt2/D2dnZshHbiRkzZmDGjBlQKpXw9PREXFwcjh8/jvj4eK3NA2tra5GUlKR1TFf5g2X6zrU2Lvq1pA1TzjFWx9BxU37m5pTZAh+xMLW+pbFw1JywpB0+ckJfuZhiYW85sXPWACzYkYnfzxfgp6tSXCtT4/Opg+Dh6mzR5+GCkHPCWD17zomGd9SbwuyJ3ezZs/HMM8/Azc0N4eHhGDRoEID6S7SdOzvWkzwNAbTHXawN4WNnd1PP4XqXfSHv7M5Vv3zs7G7ouKPmhCXt8JET+srFFAt7yQmvZi5Y9WwM1h26iv/uvoiTRRI8sz4Vayf0QJivq9HzrUnIOWGsnj3mhDntmv3wxPTp0/HXX3/hq6++wuHDhyGR1DcRGRmJd99919zmCCGEEKIHwzCYOiASGyfFwE3G4uLNMoxceRjJGYV8D40IlEXbncTExCAmJqZR2SOPPMLJgAghhBDSWO8IH7zeRYWthb44c70Uz284iVfiWiGCdkQhD7BoYnf9+nX8+uuvyMnJQU1NTaNjK1as4GRghBBCCPmHlwLYNKUn3tudie+O5+DTPy+jk7cEAwbXwpeHy+JEmMye2P3xxx8YNWoUIiIikJGRgaioKGRnZ4NlWXTv3t0aYySEEEIIAIVMgvfGdka3UC+8vf0czt8Gxn7+F9Y+1wPtAww/LUkcg9n32M2bNw///ve/ce7cOTg7O+Pnn39Gbm4uBg4ciMcee8waYySEEELIfR7vEYofp/aCj4JFTsldjE08ih1n8vgeFhEAs1fsLly4gO+//77+ZJkMd+/ehZubG5YsWYLRo0fj5Zdf5nyQQmXPmx3qwscGoKaew/VmrE0pswVH2IzVULmYcsKSdvjICX3lYoqFmHICANo2d8G/O6uws7g5jl29jVe+T0VaTgnmxreBTGr2uo1JhJwTxurZc06Y07bZGxQHBATgzz//RMeOHdGpUycsW7YMo0aNwpkzZ9C3b1/aoJgQQgixIRUL/JYjwR959ZO5Nh5qTGqrhhvddica5mxQbPbEbsyYMXjkkUcwdepUvPHGG9i2bRsmTZqErVu3wtvbG/v27WvS4O1BwwbF+fn5tEExB22Yco6lG4DqO9aUMlvgIxZcbABq6Lij5oQl7fCRE/rKxRQLMeWErrLfz93EW9vOo7JGhSBPZyQ+1Q1RwdzedyfknDBWz55zQqlUws/PzzpvnlixYoVmVW7RokUoLy/H5s2b0bp1a3z88ceWjdhONQTQHjc7NISPDUBNPYfrzVibUmYLjrQZq9hzwpJ2+MgJfeViioWYcuL+slHRoWgX6IWXvjmF7OJKPLHuBN4b2xnjY0KMjt1cQs4JY/XsMSfMadfsiV1kZKTm766urli1apW5TRBCCCHECtoFuOOXmf3w2uY0/HmxEHO3nMHZ63fw9iMd4SSzzn13RFgsjnJNTQ2uX7+OnJycRl+EEEII4Y+nixzrnuuBWUPaAAC+PnYNz6z7C4VlVTyPjNiC2RO7zMxM9O/fHy4uLggPD0dERAQiIiLQsmVLREREWGOMhBBCCDGDRMLgtfi2WPdcD7grZDiZfRv/+vQwUq7d5ntoxMrMnthNnjwZEokEO3fuREpKCk6fPo3Tp08jNTUVp0+ftsYYAQBLly5Fnz594OrqCi8vL511Tp48iSFDhsDLywve3t4YOnQo0tLSGtX5+++/MXDgQLi4uCA4OBhLliyBmc+PEEIIIXbh4Y7++GVmX7Ru4YbCsmo8ufYYNh2/Rv/dEzGz77FLS0tDSkoK2rdvb43x6FVTU4PHHnsMsbGx+PLLL7WOl5WVISEhAaNHj8aqVatQV1eHhQsXIiEhAdevX4dcLodSqUR8fDzi4uJw8uRJZGZmYtKkSWjWrBn+/e9/2/TzEEIIIbYQ2dwN22f0xetbzuD3czcxf9s5nM0txeLRneAsl/I9PMIxsyd2HTt2RFFRkTXGYtDixYsBABs2bNB5PCMjA7dv38aSJUsQGhoKAFi4cCG6dOmCnJwctGrVCps2bUJVVRU2bNgAhUKBqKgoZGZmYsWKFZgzZw4YhtHZdnV1NaqrqzXfK5VKAPa92aEufGwAauo5XG/G2pQyW6DNWMWTE5a0w0dO6CsXUyzElBPmjA8AFBLgf493RqdAd6zYdwmbT+XiQn4pVj7VDYGezkbPt6RPLtvhIhb2nBPmtG3SPnYNExkAOHXqFN5++22899576Ny5s9YjuMb2V2mqDRs2YPbs2bhz506j8rKyMkRGRmLGjBn4z3/+A5VKhXnz5mHfvn1IS0uDTCbDc889h9LSUvzyyy+a81JTU9G9e3dcuXJF7z2CixYt0kws70cbFBNCCLE3F+8w2HhJgso6Bm4yFpPbqtDak+9REUPM2aAYrAkYhmElEonm68Hv7y+ztvXr17Oenp46j507d45t1aqVZkzt27dnr127pjkeHx/PTp06tdE5N27cYAGwR48e1dtnVVUVW1paqvnKzc1lAbD5+fns9u3b2YqKCrampqbRV0VFhc5jusofLNN3rrW/uOjXkjZMOcdYHUPHTfmZm1Mm1liYWt/SWDhqTlgrFlznhCPEQkw50dSfyeWCO2zCxwfY8Dd3spHzfmPX7L/EVldX2yQOfMXCnnOiqKiIBcCWlpYanSeZdCk2OTm5ybNNXfSthN3v5MmT6NGjh9G27t69i+effx59+/bF999/D5VKheXLl2PEiBE4efIkXFxcAEDrcit7b8FS32VYAFAoFFAoFFrltEExt23QBsXaaDNW8eSEJe3QBsXaKCe4+f0U2cIT26b3xbytZ7E9LQ/v/Z6B8/ll+O+jXeDiZPy+OyHnhLF69pgTnG9QPHDgQIsHY8jMmTPx5JNPGqzTsmVLk9r67rvvkJ2djWPHjkEikWjKvL298csvv+DJJ59EQEAAbt682ei8wsJCAIC/v7/5H4AQQgixUy5OUnz8RDd0CfHC0l0X8EtaHjILyrHm2RiE+dJtRvbK5IcnKisr8frrr2P79u2ora3Fww8/jE8//RR+fn4Wd+7n59ek8x8cn0QiabTy1vC9Wq0GAMTGxuI///kPampq4OTkBADYu3cvgoKCTJ5AEkIIIWLBMAye7xeBjkEemPndaVzIV2LkysP47KloDGjbnO/hEQuYvI/dwoULsWHDBjzyyCN48sknkZSUhJdfftmaY2skJycHaWlpyMnJgUqlQlpaGtLS0jTvrY2Pj8ft27cxY8YMXLhwAefPn8fkyZMhk8kQFxcHAHj66aehUCgwadIknDt3Dtu2bcN7771n8IlYQgghROweivTFjlf6oWuoF0rv1mLi+hNITM6i/e7skMkrdlu3bsWXX36puXT67LPPom/fvlCpVJBKrb8PzoIFC7Bx40bN99HR0QDq7/8bNGgQ2rdvjx07dmDx4sWIjY2FRCJBdHQ0du/ejcDAQACAp6cnkpKSMGPGDPTo0QPe3t6YM2cO5syZY/XxE0IIIUIW6OmCzS8+hEW/nscPJ3Px4Z4M/H29FMsf7wo3hdm7oxGemByp3Nxc9O/fX/N9r169IJPJkJeXp9k3zpo2bNigdw+7BvHx8YiPjzdYp3Pnzjh48CCHIyOEEELEwVkuxX/HdUGXEC8s/PUcdp+/iazEcqyZEINWzd34Hh4xgckTO5VKpbkvTXOyTIa6ujrOB2Uv7HmzQ11og2LaoNiU+rRBsfXboQ2KtVFO2Pb302PdA9HazwWv/HAGWYXlGL3yCJaPi8KA1t6c9EkbFJuH8w2KgfoHEYYPH95o248dO3Zg8ODBaNasmaZs69atZgzVviQmJiIxMREqlQqZmZm0QTEhhBBRU9YA6zOluFJWfx96Qogaw0LUkNBt6TZlzgbFJk/sJk+ebFLn69evN6mePVMqlfD09ER+fj6OHz+O+Ph4rT1mamtrkZSUpHVMV/mDZfrOtTYu+rWkDVPOMVbH0HFTfubmlNkCH7Ewtb6lsXDUnLCkHT5yQl+5mGIhppyw5PNYqqZOjf/uzsA3x3MBAB291Fg3dQCae1i+sMFHLOw5J5RKJfz8/Eya2Jl8KdYRJmzmagigPW52aAgfG4Caeg7Xm7FacwNQLtBmrOLJCUva4SMn9JWLKRZiyglzxmcpuRz4v7Fd0C3MB//Z9jfS7wDj1p7Cp09Fo2dLnya2TRsUm8Kcdk3e7oQQQgghjmtcTAg2T+2F5s4s8kur8MSaY/jsj0tQqWlLFCGhiR0hhBBCTNIpyANzu6gwpmsg1CzwUVImnl13HAXKKr6HRu6hiR0hhBBCTOYsBT4c3xkfPdYVrk5SHLtSjOH/O4TkjEK+h0ZAEztCCCGEWGBcTAh2vNIPHQM9UFJRg8nrT+LdnemorlPxPTSHRhM7QgghhFikVXM3bJ3eB5P6tAQArDt8FaNXHsGFfCW/A3NgNLEjhBBCiMWc5VIsGtUJ657rAd9mTrh4swyjVh7G6v2X6cEKHtDL35rAnnex1oWPnd1NPYfrXfaFsLO7IbTLvnhywpJ2+MgJfeViioWYcsKc8XHJUJ8D2/jgt5mxePuXdOy7eAvv776IPy7cxPuPRiHMx9Xkdszt19R69pwT5rRt8gbFhN48QQghhBjDssCJWwx+zpagWsVAIWExtqUaD7VgwdAbKyxilTdPkH/Qmye4bcOUcyzd2V3fMaHt7G7O57FWG1zs7G7ouKPmhCXt8JET+srFFAsx5YQln4cL5vR5/fZdvLH1HE5m3wYADGjjiyWjOiLYy4WXWNhzTljlzRNEW0MA7XEXa0P42Nnd1HO43mVfKDu760O77IsnJyxph4+c0FcupliIKSfMGR+XTOkzooUcm1+MxZeHr+LDvRk4eKkYIz47itcT2uGpHsEmt2Nuv8bq2WNOmNMuPTxBCCGEEKuQSBhMHRCJ32f1R6+WPqisUWHxjnQ88cUJ5FfyPTpxookdIYQQQqyqVXM3/PDiQ1g6NgruChnOXC/Fh2el+N8fWbTvHcdoYkcIIYQQq5NIGDzTOxxJcwZiSPvmULEMVu6/goSPD9JbKzhkFxO77OxsTJkyBREREXBxcUGrVq2wcOFC1NTUaOqcOXMGTz31FEJDQ+Hi4oIOHTrgf//7n1Y7DMNofe3evdvWH4kQQghxSAGezlj9dDdMaqNCczcnZBdXYvL6k5j69SnkltD12aayi4cnLl68CLVajTVr1qB169Y4d+4cpk6dioqKCixfvhwAkJKSgubNm+Pbb79FaGgojh49ihdffBFSqRQzZ85s1N6+ffvQqVMnzfc+Pj42/TyEEEKII2MYBtF+LF59vB9WHbiK9UezkZRegIOZt/DyoFaYNrAVnOVSvodpl+xiYjds2DAMGzZM831kZCQyMjKwevVqzcTu+eefb3ROZGQkjh07hq1bt2pN7Hx9fREQEGBy/9XV1aiurtZ8r1TWvyrFnjc71IWPDUBNPYfrzViFvAEoV/2KaTNWe46DJe3wkRP6ysUUCzHlhDnj4xLXOeEsZfFmQhs82i0QS367gL+u3sYn+y5hy6lczHm4Df7VOQASCcNJLOw5J8xp2273sXv77bexe/dunDp1Sm+dZ599FlVVVfjpp58A1F+KjYiIQGhoKKqqqtCmTRu89tprGD9+vMG+Fi1ahMWLF2uV0wbFhBBCCDdYFkgrZrDtmgSlNfU7GYc2YzE6XI02nnY5VeGM6Dcovnz5Mrp3746PPvoIL7zwgs46x44dw8CBA/Hbb78hPj4eAFBUVIRvvvkGffv2hUQiwa+//oqlS5di48aNePbZZ/X2p2vFLjQ0lDYo5qgNU86xdANQfceEvAEoV/3ysQGooeOOmhOWtMNHTugrF1MsxJQTlnweLtgiJ+7WqLD+6DWsPXwVFdX1T8wObOOLPq4FmDCaNigW9AbF+lbC7nfy5En06NFD831eXh6GDRuGxx57TO+k7vz58xg9ejQWLFigmdQBgJ+fH1577TXN9z169MDt27fxwQcfGJzYKRQKKBQKrfKGANrjZoeG8LEBqKnncL0Zq5A3AOWqXzFtxmrPcbCkHT5yQl+5mGIhppwwZ3xcsmZOyOVyzIpvh2diW+LTPy7hu+M5OHCpGAchxQVcxKz4dojwa2bx+OwxJ8xpl9eJ3cyZM/Hkk08arNOyZUvN3/Py8hAXF4fY2FisXbtWZ/309HQMHjwYU6dOxdtvv210DA899BDWrVtn1rgJIYQQYl1+bgosGR2FSX1aYtmuC0i6UIjtZ/Lx69l8jIkOxquD26ClkQmeI+J1Yufn5wc/Pz+T6t64cQNxcXGIiYnB+vXrIZFo79Ry/vx5DB48GBMnTsTSpUtNajc1NRWBgYFmjZsQQgghthHZ3A2rnu6Gz3/chdM1AUjOKMLW0zfwS1oexkYHY2Zca5rg3ccunorNy8vDoEGDEBYWhuXLl+PWrVuaYw1Pt54/fx5xcXEYOnQo5syZg5s3bwIApFIpmjdvDgDYuHEj5HI5oqOjIZFIsGPHDnz66ad4//33bf+hCCGEEGKyMDdg2ojuSL9ZgU/2ZSI54xZ+SrmOn09fx7BOAXhxQCSiAt34Hibv7GJit3fvXmRlZSErKwshISGNjjU8+7FlyxbcunULmzZtwqZNmzTHw8PDkZ2drfn+3XffxbVr1yCVStG2bVt89dVXBu+vI4QQQohwdA31wvrJvZCacxuf/ZmFPy8W4vdzN/H7uZvoEe6Fbs4Mhqnt7rlQztjFmycmTZoElmV1fjVYtGiRzuP3T+omTpyI9PR0VFRUQKlU4tSpUzSpI4QQQuxQdJg3vprUE3tfG4DxMSGQSxmcunYH6zKkGP7ZEWw4chXKKtvutygEdrFiJ1T2vNmhLnxsAGrqOVxvxirkDUC56ldMm7HacxwsaYePnNBXLqZYiCknzBkfl4SYExE+zlg2piNmDY7EhiPZ2HT8Gq4UVWLRjnS8v/siRnUNxFM9Q9G2uYveNoSeE+a0bZf72PElMTERiYmJUKlUyMzMpA2KCSGEEIGpqgNOFjE4fFOCm3cZTXm4G4vYFmpE+7JwtrNlLdFvUMw3pVIJT09P2qCYozb42IxVyBuActWvmDZjtec4WNIOHzmhr1xMsRBTTljyebgg5Jx4sJ5MJsPJa7fx3Ynr2JtegFpV/XTHWSZBfMcWGBsdhD6RvpDee2WZkHPCbjYotncNAbTHzQ4N4WMDUFPP4XozViFvAMpVv2LajNWe42BJO3zkhL5yMcVCTDlhzvi4JOScuL9e3zb+6NvGH7fKqrH5xDV8czgTBXfV2HH2JnacvQl/DwXGdAvG0A7NwbLCzQlz2qWJHSGEEEJErbm7Ai8NiEBI2QWEdO2LX87cxK9n8lCgrMaag1ew5uAV+Cik+FuagX91DUa3UC8wDGO8YQGiiR0hhBBCHALDAF1DPNEjwg9v/6sD/rxQiJ1/5+PPCwUoqVbjyyPX8OWRawjydEZCVAAGtPZFnZrvUZuHJnaEEEIIcTgKmRTDOwdieOdAKCuq8MnmvShQBGN/xi3klVZh/ZFsrD+SDSeJFL+XpmJIxwAMatccfq7CnjoJe3SEEEIIIVbm4iRFV18WI0Z0gQoSHMy8hT8uFCI5oxCFZdXYd/EW9l2sf+tV2xZuCJBI4HShEH3atIDQ5nkCGw4hhBBCCH+c5VIM7RSAoZ0CUF1dgy9++h11LdrjwKUipOXeQWZhOTIhwcHv0iBhgKggDzRnJQi7oUR0S1++h08TO0IIIYQQXSQSBqFuwIhBkZgd3w4lFTU4nFmAzfvTkFfnhqvFlTh7QwlAgl7ZJTSxs3e0szs3bfCxy76Qd3bnql8x7bJvz3GwpB0+ckJfuZhiIaacMGd8XBJyThirx0VOuDsxeLidL9gcNeLje6OoUoWjWbew9ch5PNTSy2qxMKdd2qDYDPTmCUIIIYTYGr15wsrozRPctsHHLvtC3tmdq37FtMu+PcfBknb4yAl95WKKhZhywpLPwwUh54SxevacE/TmCRtpCCDt7M5NG3zssi/knd256ldMu+zbcxwsaYePnNBXLqZYiCknzBkfl4ScE8bq2WNOmNOuxCojIIQQQgghNkcTO0IIIYQQkbCLiV12djamTJmCiIgIuLi4oFWrVli4cCFqamo0dTZs2ACGYXR+FRYWaur9/fffGDhwIFxcXBAcHIwlS5aAbjMkhBBCiBjYxT12Fy9ehFqtxpo1a9C6dWucO3cOU6dORUVFBZYvXw4AeOKJJzBs2LBG502aNAlVVVVo0aIFgPqbD+Pj4xEXF4eTJ08iMzMTkyZNQrNmzfDvf//b5p+LEEIIIYRLdjGxGzZsWKNJW2RkJDIyMrB69WrNxM7FxQUuLi6aOrdu3cKff/6JL7/8UlO2adMmVFVVYcOGDVAoFIiKikJmZiZWrFiBOXPmgGEY230oQgghhBCO2cXETpfS0lL4+PjoPf7111/D1dUV48eP15QdO3YMAwcOhEKh0JQlJCRg3rx5yM7ORkREhM62qqurUV1d3ahvACgpKUFlZSWKi4t1Pjqt65iu8gfL9J1rbVz0a0kbppxjrI6h46b8zM0pswU+YmFqfUtj4ag5YUk7fOSEvnIxxUJMOWHJ5+GCkHPCWD17zomysjIAMOnWMbuc2F2+fBmfffYZPvroI711vvrqKzz99NONVvFu3ryJli1bNqrn7++vOaZvYrds2TIsXrxYq7xt27YWjJ4QQgghxHxlZWXw9PQ0WIfXid2iRYt0Tpjud/LkSfTo0UPzfV5eHoYNG4bHHnsML7zwgs5zjh07hvT0dHz99ddaxx683Now+zV0GXbevHmYM2eO5nu1Wo2SkhL4+vqiV69eOHnypM7zevbsqfOYrvL7y5RKJUJDQ5Gbm2t0I0Ku6Ruztdsw5RxjdQwdN/Yz11fmaLEwtb6lsXDUnLCkHT5yQl+5mGIhlpwA+IuFkHPCWD17zQmWZVFWVoagoCCjdXmd2M2cORNPPvmkwTr3r7Dl5eUhLi4OsbGxWLt2rd5z1q1bh27duiEmJqZReUBAAG7evNmorOGJ2YaVO10UCkWjy7cA4OXlBQCQSqV6A6nvmK5yXWUeHh42/8Vp6PNYsw1TzjFWx9xYmFoGOE4sTK1vaSwcNScsaYePnNBXLqZYiC0nANvHQsg5YayePeeEsZW6BrxO7Pz8/ODn52dS3Rs3biAuLg4xMTFYv349JBLdO7WUl5fjxx9/xLJly7SOxcbG4j//+Q9qamrg5OQEANi7dy+CgoK0LtGaasaMGWYf01VuqB1b4mIclrRhyjnG6pgbCyHHAeAnFqbWtzQWjpoTlrTDR07oKxdTLCgnmk7IOWGsnthyQhe7eFdsXl4eBg4ciLCwMHz99deQSqWaYwEBAY3qfvnll5g5cyby8vLg7e3d6FhpaSnatWuHwYMH4z//+Q8uXbqESZMmYcGCBYLa7qThXbSmvBOOWBfFQhgoDsJBsRAOioUwCC0OdvHwxN69e5GVlYWsrCyEhIQ0OvbgvPTLL7/Eo48+qjWpA+qXMZOSkjBjxgz06NED3t7emDNnTqP754RAoVBg4cKFWpd/ie1RLISB4iAcFAvhoFgIg9DiYBcrdoQQQgghxDi7eKUYIYQQQggxjiZ2hBBCCCEiQRM7QgghhBCRoIkdIYQQQohI0MSOEEIIIUQkaGInApWVlQgPD8fcuXP5HorDKisrQ8+ePdGtWzd07twZX3zxBd9Dcli5ubkYNGgQOnbsiC5dumDLli18D8lhjR07Ft7e3hg/fjzfQ3E4O3fuRLt27dCmTRusW7eO7+E4NFvnAW13IgLz58/HpUuXEBYWhuXLl/M9HIekUqlQXV0NV1dXVFZWIioqCidPnoSvry/fQ3M4+fn5KCgoQLdu3VBYWIju3bsjIyMDzZo143toDic5ORnl5eXYuHEjfvrpJ76H4zDq6urQsWNHJCcnw8PDA927d8fx48fh4+PD99Ackq3zgFbs7NylS5dw8eJFjBgxgu+hODSpVApXV1cAQFVVFVQqldbm2cQ2AgMD0a1bNwBAixYt4OPjg5KSEn4H5aDi4uLg7u7O9zAczokTJ9CpUycEBwfD3d0dI0aMwJ49e/gelsOydR7QxM6KDh48iJEjRyIoKAgMw2D79u1adVatWoWIiAg4OzsjJiYGhw4dMquPuXPn6nwvLmnMFrG4c+cOunbtipCQELzxxhsmvwfZ0dgiFg1OnToFtVqN0NDQJo5afGwZB2KepsYmLy8PwcHBmu9DQkJw48YNWwxddOwxT2hiZ0UVFRXo2rUrVq5cqfP45s2bMXv2bMyfPx+pqano378/hg8fjpycHE2dmJgYREVFaX3l5eXhl19+Qdu2bdG2bVtbfSS7Ze1YAICXlxfOnDmDq1ev4rvvvkNBQYFNPpu9sUUsAKC4uBjPPfcc1q5da/XPZI9sFQdivqbGRtfVAoZhrDpmseIiT2yOJTYBgN22bVujsl69erHTpk1rVNa+fXv2rbfeMqnNt956iw0JCWHDw8NZX19f1sPDg128eDFXQxYta8TiQdOmTWN//PFHS4foMKwVi6qqKrZ///7s119/zcUwRc+aOZGcnMyOGzeuqUN0WJbE5siRI+yYMWM0x1599VV206ZNVh+r2DUlT2yZB7Rix5OamhqkpKRg6NChjcqHDh2Ko0ePmtTGsmXLkJubi+zsbCxfvhxTp07FggULrDFcUeMiFgUFBVAqlQAApVKJgwcPol27dpyPVey4iAXLspg0aRIGDx6MCRMmWGOYosdFHIh1mBKbXr164dy5c7hx4wbKysqwa9cuJCQk8DFcURNqnsh469nBFRUVQaVSwd/fv1G5v78/bt68ydOoHBMXsbh+/TqmTJkClmXBsixmzpyJLl26WGO4osZFLI4cOYLNmzejS5cumvthvvnmG3Tu3Jnr4YoWV7+fEhIScPr0aVRUVCAkJATbtm1Dz549uR6uQzElNjKZDB999BHi4uKgVqvxxhtv0BP6VmBqntg6D2hix7MH73tgWdaieyEmTZrE0YgcV1NiERMTg7S0NCuMyjE1JRb9+vWDWq22xrAcTlN/P9GTmNZjLDajRo3CqFGjbD0sh2QsFrbOA7oUyxM/Pz9IpVKt//stLCzUmv0T66JYCAfFQhgoDsJFsREOocaCJnY8cXJyQkxMDJKSkhqVJyUloU+fPjyNyjFRLISDYiEMFAfhotgIh1BjQZdirai8vBxZWVma769evYq0tDT4+PggLCwMc+bMwYQJE9CjRw/ExsZi7dq1yMnJwbRp03gctThRLISDYiEMFAfhotgIh13GwibP3jqo5ORkFoDW18SJEzV1EhMT2fDwcNbJyYnt3r07e+DAAf4GLGIUC+GgWAgDxUG4KDbCYY+xoHfFEkIIIYSIBN1jRwghhBAiEjSxI4QQQggRCZrYEUIIIYSIBE3sCCGEEEJEgiZ2hBBCCCEiQRM7QgghhBCRoIkdIYQQQohI0MSOEEIIIUQkaGJHCCGEECISNLEjhBCBqampQevWrXHkyBGrtD9o0CDMnj3bKm0bU11djbCwMKSkpPDSPyFiRxM7QohVTZo0CQzDaH3d/2Jt0tjatWsRHh6Ovn372rTfQYMG4fPPP7dqHwqFAnPnzsWbb75p1X4IcVQ0sSOEWN2wYcOQn5/f6CsiIkKrXk1NDQ+jE57PPvsML7zwgsE6tbW1nPZZUlKCo0ePYuTIkZy2q8szzzyDQ4cO4cKFC1bvixBHQxM7QojVKRQKBAQENPqSSqUYNGgQZs6ciTlz5sDPzw/x8fEAgPT0dIwYMQJubm7w9/fHhAkTUFRUpGmvoqICzz33HNzc3BAYGIiPPvpI6/IiwzDYvn17o3F4eXlhw4YNmu9v3LiBJ554At7e3vD19cXo0aORnZ2tOT5p0iSMGTMGy5cvR2BgIHx9fTFjxoxGk6rq6mq88cYbCA0NhUKhQJs2bfDll1+CZVm0bt0ay5cvbzSGc+fOQSKR4PLlyzp/VqdPn0ZWVhYeeeQRTVl2djYYhsGPP/6IQYMGwdnZGd9++y2Ki4vx1FNPISQkBK6urujcuTO+//77Ru3p+lnp8ttvv6Fr164IDg7G7du38cwzz6B58+ZwcXFBmzZtsH79epN/bgDw1VdfoVOnTlAoFAgMDMTMmTM1x3x9fdGnTx+tsRJCmo4mdoQQXm3cuBEymQxHjhzBmjVrkJ+fj4EDB6Jbt244deoUdu/ejYKCAjz++OOac15//XUkJydj27Zt2Lt3L/bv32/2PVuVlZWIi4uDm5sbDh48iMOHD8PNzQ3Dhg1rtHKYnJyMy5cvIzk5GRs3bsSGDRsaTQ6fe+45/PDDD/j0009x4cIFfP7553BzcwPDMHj++ecbTYiA+glP//790apVK53jOnjwINq2bQsPDw+tY2+++SZeffVVXLhwAQkJCaiqqkJMTAx27tyJc+fO4cUXX8SECRNw/Phxs39Wv/76K0aPHg0AeOedd5Ceno7ff/8dFy5cwOrVq+Hn52fyz2316tWYMWMGXnzxRfz999/49ddf0bp160b99erVC4cOHTIUIkKIJVhCCLGiiRMnslKplG3WrJnma/z48SzLsuzAgQPZbt26Nar/zjvvsEOHDm1UlpubywJgMzIy2LKyMtbJyYn94YcfNMeLi4tZFxcXdtasWZoyAOy2bdsatePp6cmuX7+eZVmW/fLLL9l27dqxarVac7y6upp1cXFh9+zZoxl7eHg4W1dXp6nz2GOPsU888QTLsiybkZHBAmCTkpJ0fva8vDxWKpWyx48fZ1mWZWtqatjmzZuzGzZs0PvzmjVrFjt48OBGZVevXmUBsJ988one8xqMGDGC/fe//82yLGvyz6qqqop1d3dnz549y7Isy44cOZKdPHmyzvZN+bkFBQWx8+fPNzjO//3vf2zLli2Nfh5CiHlk/E4rCSGOIC4uDqtXr9Z836xZM83fe/To0ahuSkoKkpOT4ebmptXO5cuXcffuXdTU1CA2NlZT7uPjg3bt2pk1ppSUFGRlZcHd3b1ReVVVVaPLpJ06dYJUKtV8HxgYiL///hsAkJaWBqlUioEDB+rsIzAwEI888gi++uor9OrVCzt37kRVVRUee+wxveO6e/cunJ2ddR578GelUqnw3//+F5s3b8aNGzdQXV2N6upqzc/38uXLJv2s/vzzT/j6+qJz584AgJdffhnjxo3D6dOnMXToUIwZMwZ9+vQx6edWWFiIvLw8DBkyRO9nBAAXFxdUVlYarEMIMR9N7AghVtesWTOtS3H3H7ufWq3GyJEj8f7772vVDQwMxKVLl0zqk2EYsCzbqOz+e+PUajViYmKwadMmrXObN2/+/+3cSyjsbRwH8O97HBYu2bhFNGkWxAwztprGJXJpyDW3TDNELFAsRsgakwlRNiwsZOWacilMLonZMJGZSClWZDHJ1Ix3oXfe83c5M8o5R3O+n5qayzPP8/x/q2/P8/z/rve+vr6v+nU6nQCew4k7dXV1qKmpweDgICYmJlBeXg5/f/9324eEhLiC40sva6XX6zE4OAiDwQCJRIKAgAC0tra6tkRfXv97ftyGBYCcnBxcXl5iaWkJa2tryMjIQHNzMwYGBtzW7ds3z0743N7eCupMRJ+DZ+yI6EuRy+Uwm80QiUQQi8WC138B0dfXF3t7e67/3N3d4ezsTNBPaGgorq+vXZ8tFotghUgul8NisSAsLOzVOMHBwR7NVSKRwOl0YnNz8902ubm5CAgIwNjYGJaXl6HRaH7ap0wmw+npqUehzGg0oqCgANXV1UhKSkJsbKwg+HpSq6enJywsLEClUgn6Dg0NhVqtxtTUFAwGA8bHxwG4r1tQUBBEIhHW19d/Ovfj42PIZDK310hEH8NgR0RfSnNzM25vb1FRUYH9/X2cn59jZWUFGo0GDocDgYGB0Gq16OjowPr6Oo6Pj6FWq1+tFKWnp2NkZAQmkwkHBwdobGwUrL5VVVUhJCQEBQUFMBqNuLi4wObmJlpaWnB1deXRXEUiEWpra6HRaDA7O4uLiwtsbGxgZmbG1cbHxwdqtRo6nQ5isViwLfqWtLQ02Gw2mM1mt+OLxWKsrq5iZ2cHJycnaGhowM3Njet3T2p1eHgIm80GhULh+q6npwdzc3OwWq0wm81YXFxEfHy8x3Xr7e2FXq/H0NAQLBYLTCYThoeHBXM3Go3Iyspye41E9DEMdkT0pURGRmJ7exsOhwPZ2dlITExES0sLgoODXYGkv78fCoUCKpUKmZmZSE1NRUpKiqAfvV6P6OhoKBQKVFZWor29XbAF6u/vj62tLcTExKCoqAjx8fHQaDR4eHh4847U94yNjaGkpARNTU2Ii4tDfX09bDaboI1Wq4Xdbne7Wgc8PwqkqKjoza3Ol7q7uyGXy5GdnQ2lUomIiAgUFhYK2rir1dzcHPLy8vD9+/8nc/z8/KDT6SCVSqFQKODj44Pp6WkAntWttrYWBoMBo6OjSEhIQH5+vmAlcXd3F/f39ygpKXF7jUT0Mf88eXoIg4joC1MqlUhOTobBYPjTU3lle3sbSqUSV1dXCA8Pd9v+6OgImZmZb96k8NmkUim6uroEj5P51UpLSyGTydDZ2fnbxiT6W3DFjojoF3l8fITVakV3dzfKyso8CnXA89m9vr6+Vw/9/Wx2ux3FxcXIycn5peP86PHxEUlJSWhra/ttYxL9TbhiR0Re4Suu2E1OTkKr1SI5ORnz8/OIior601MiIi/HYEdERETkJbgVS0REROQlGOyIiIiIvASDHREREZGXYLAjIiIi8hIMdkRERERegsGOiIiIyEsw2BERERF5CQY7IiIiIi/xLx8cr1AmmjCBAAAAAElFTkSuQmCC\n", + "image/png": "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", "text/plain": [ "
" ] diff --git a/examples/simulating_discrete_nonlinear.ipynb b/examples/simulating_discrete_nonlinear.ipynb index 5d4440347..121efa4db 100644 --- a/examples/simulating_discrete_nonlinear.ipynb +++ b/examples/simulating_discrete_nonlinear.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "id": "e2b51597", "metadata": {}, @@ -24,6 +25,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "02dab3bc", "metadata": {}, @@ -54,6 +56,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "39555216", "metadata": {}, @@ -76,6 +79,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "36d410a9", "metadata": {}, @@ -85,13 +89,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "id": "852cb7dd", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAANkCAYAAABVuUSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AADsoUlEQVR4nOzdd3RU1d7G8e9MegJJ6B0C0qv0LmJBUVFBRBCpIoh6bdhf6/XaruVaEBRFiooICAoiSpEqIE0gEHpJIySB9F7mvH8MjBkyE5KYSSHPZy2W4z77nP07Qwp5cvbeJsMwDEREREREREREKilzWRcgIiIiIiIiIlKWFI6IiIiIiIiISKWmcEREREREREREKjWFIyIiIiIiIiJSqSkcEREREREREZFKTeGIiIiIiIiIiFRqCkdEREREREREpFJTOCIiIiIiIiIilZrCERERERERERGp1BSOiIiIiIiIiEilpnBERERERERERCo1hSMiIiIiIiIiUqkpHBERERERERGRSk3hiIiIiIiIiIhUagpHRERERERERKRSUzgiIiIiIiIiIpWawhERERERERERqdQUjoiIiIiIiIhIpaZwREREREREREQqNfeyLuBKkZGRQXBwMAC1atXC3V1vrYiIiIiIiEhJy8nJITY2FoAOHTrg7e39j6/p0p/gY2Ji2LFjBzt27GDnzp3s3LmT8+fPAzBu3Djmzp1b4mMuXLiQOXPmsH//fuLj46lbty79+/fn4YcfplevXiU+3kXBwcH06NHDZdcXEREREREREXs7duyge/fu//g6Lg1H6tSp48rL28nIyODuu+/m559/tmsPDQ0lNDSUBQsW8Oqrr/LSSy+VWk0iIiIiIiIiUv6V2tyPRo0a0aZNG1avXu2S699///22YGTgwIE89thj1K9fn+DgYN58801OnDjByy+/TL169Zg0aVKJj1+rVi3b6x07dlCvXr0SH0NERERERESksouKirLN3Mj7s/g/4dJw5OWXX6Z79+50796dOnXqcPr0aZo2bVri42zcuJEFCxYAMGTIEJYtW4abmxsA3bt35/bbb6dr166EhYXxzDPPMHz4cAIDA0u0hrxrjNSrV4+GDRuW6PVFRERERERExF5Jrffp0t1qXnvtNW677TaXT6/573//C4CbmxszZsywBSMX1axZk3feeQeA+Ph4Zs+e7dJ6RERE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ZmYW6T1Ys2YN9913H02bNsXHxwd/f386derEM888Q1RUVJGuJSIiIleQs8GwbApYchwft+RYj58NLt26ypohJSI8PNwADMAIDw8v9HlHjx41QkJCjKNHj7qwOskrLS3NGDVqlO3vy9mfV155Jd+56enpxtChQws8r379+sZff/3lcOw5c+bY+h04cMC47rrrnF6nR48eRkpKit35r7zyymXrvvTTesCAAQZgDBgwIF89p06dsp0zZ84c49lnn3V6zVq1ahkhISFO39fTp08bbdq0KbCufv36GefPn3d4fkF1OnsPnHnzzTcNs9nstA4vLy9j3rx5Ds9dv369rd/69esLrKWgj5VNmzYZ/v7+l/27WrFiRYFjOHLxvSroz6XvY0G15v243Ldvn9GzZ0+n133//fcNwzCM0NBQo127dg77mEwm4+uvvy7wHr788kvDx8enwHu4//77jezs7CK/P4Zh//e4evVqY8iQIU7HefTRRw3DMIy4uDjjmmuucdrvjTfecDpebm6u8fDDDxd4PwEBAcbq1audXiMpKcno27ev0/O7du1q7Nmzx+5z1pGUlJTLfp2qUqWK04+9vB8Pp06dKvR7fpG+r4mIiJSt9KwcI+x8qrE7NM5Ytf+MsWjDbmPBD0uM775831j64eNG5GutDOMV/8v/WfpgWd+KU8X9+bsgWnNEKhWLxcIdd9zBmjVrAGjRogUPPfQQ3bp1w9fXl6ioKLZu3er0t8Tjxo1j2bJlAHTq1Ilp06bRpk0b4uLiWLhwIXPnzuXMmTNcf/317N+/nwYNGjitZfLkyWzfvp1x48YxYsQI6tatS1hYGP/973/Ztm0bO3bs4D//+Q9vvfWW7ZyHHnqI4cOH8+KLL/LTTz9Rv359fvvttxJ5b7744gu2bt3KgAEDmDJlCi1btiQhIYH58+czf/58YmNjmThxItu2bct3bkpKCtdddx0nT54E4M4772TixInUr1+fU6dOMX36dDZu3MiWLVu47bbb2Lx5M25ubiVS96VmzJjBCy+8AECtWrV49tln6du3L7m5uaxdu5Z3332X1NRUxo8fT82aNbnllltKvIbMzExGjhxJUlISVatWZerUqQwcOJDatWuTnZ1NaGgo27Zt44cffijW9efMmUNqaio33XQTZ86c4Y477uA///mPXR8/P79iXXvy5Mns3r2bhx56iKFD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3n//fatp06bOfe+9916hxzhw4IBVp04dS5LlcDis8ePHWz/99JP1008/WePHj7ccDoclyapTp4514MCBMvcK7+Ut67lfv36WJKt69erWqFGjrM8//9xavXq1FRcXZ73zzjtWixYtnMfo2bOnlZWVVeZe4b28ZT0X5tprr7UkWbVr1yYcgWVZ3remf/zxRysoKMiSZFWpUsUaO3astXDhQmvdunXW999/b7399tvW1VdfbXXr1q3MvcJ7edN6vvLKK53jGjdubL355pvWihUrrCVLllgvvfSSVbNmTef+++67r8y9wnt5Yj1PmjTJeZygoCCrW7duxhouaThSGb4TEo5UUOdSZIfDYa1evTrf/qlTpzoX7FNPPVWmcyxbtsx5jMGDB1uZmZnG/mPHjlkNGza0JFnVqlUr9L+UjxgxwnmcL774It/+L774wrl/5MiRZeoV3s1b1vOIESOsd955x0pNTS3wHElJSVbPnj2d5/n444/L1Cu8m7es54LMnTvXkmTVqlXLmjZtGuEILMvyrjX9119/WTVq1LAkWa1atbLi4+MLPSf/pd03ect6/vXXX53HaNKkiXXmzJl8Y/bt22dFREQ4r0T566+/ytQvvJcn1vO5UHndunVWRkaGZVnm97uShiOV4Tsh4UgFFBcX51w499xzT4FjsrKyrFatWjn/0k1PTy/1eQYNGmRJsvz8/Ar9x8XMmTOdvbz88sv59h85csTy8/OzpJxbDQozcOBA57mOHDlS6l7hvbxpPZfE5s2bnccYMmRImY4B7+XN6/nMmTNWZGSkJcn66KOPrBkzZhCOwOvW9J133mlJsgIDA61t27aVug9Ubt60nl977TXn/v/7v/8r9FwPP/ywc9w333xT6l7hvTy1ngtS2nCksnwn5IGsFdDcuXOdn0eOHFngGLvdrttuu02SdPLkSS1btqxU5zh79qxiY2MlSQMGDFBkZGSB4/7xj38oPDxckjRnzpx8++fPn6+srKwie5Wk22+/XZKUlZWl+fPnl6pXeDdvWs8l0aZNG9WsWVOStHv37jIdA97Lm9fz448/rgMHDqhPnz7O/gBvWtOnTp3S559/Lkm66aab1KJFi1L1gcrPm9Zzenq683OTJk0KPV/Tpk2dn9PS0krVK7ybJ9azq1SW74SEIxXQihUrJEmhoaHq2LFjoeN69+7t/Lxy5cpSnSMuLs75F2ze45wvICBA3bp1c87JyMgosNfijnMhvcK7edN6Lqlz/6Cx2/kr1Nd463r+5Zdf9NZbbykgIEBvvfVWqfpB5eZNa/qbb75RSkqKJOn666931hMTE7Vz50799ddfpeoLlY83refo6Gjn5z179hR6nLz/ISbvHFR+nljPrlJZvhPyL/sKaOvWrZKkZs2ayeFwFDquZcuW+eaU9hznH6eo82RmZmrnzp0FHqdq1aqqW7duoceoV6+eMz0vba/wbt60nkti/fr1OnPmTInOhcrHG9dzRkaG7r77bmVnZ+uRRx5h3cLgTWs676tRu3fvru+//149evRQeHi4oqOjVadOHV100UUaM2aMEhISStUjKgdvWs8DBw5UVFSUJOm1115TUlJSvvkHDhxwvmq9e/fuatu2bal6hXfzxHp2lcrynZBwpIJJTU11/h96YZfpnVOtWjWFhoZKkuLj40t1nrzjiztPgwYNCpyXd7u4Y+Q9Tml7hffytvVcEs8995zz8w033FDq+fBe3rqeX3rpJW3evFlNmjTR//t//69UvaBy87Y1vWXLFkk5//iePn26rrzySq1evdoYc/jwYb366qtq3769czx8g7et58DAQH322WeqXr26du/erXbt2umdd97RqlWrtGzZMk2bNk0dO3bUyZMnFRUVpRkzZpSqT3g3T61nV6ks3wkJRyqYxMRE5+ewsLBix5/7g3D27Fm3nefcOQo6z7njuLNXeC9vW8/F+e9//6uvvvpKktSxY0cNHTq0VPPh3bxxPe/atUtTpkyRJL3xxhsKDg4uVS+o3LxtTZ84cUKSlJKSokcffVSBgYF64YUXdODAAaWlpen333933nt/4MABXX311fybw4d423qWpMsuu0zr16/X2LFjtX//ft17773q2bOnYmJiNG7cOCUnJ+upp57S2rVrecaOj/HUenaVyvKdkHCkgklNTXV+DggIKHZ8YGCgJDnvwXXHec6do6DznDuOO3uF9/K29VyUbdu2OR8wFRwcrI8//lg2m61UfcK7eeN6vvfee5Wamqrrr79ef/vb30rVByo/b1vT5247SE9Pl2VZ+uSTT/Too4+qfv36CggI0MUXX6yPPvpIo0aNkpQTDr799tul6hXey9vWsyRZlqWvvvpKX331VYHPjTp79qxmzZqlBQsWlKpHeD9PrWdXqSzfCQlHKpigoCDn57xPsS7MuQdClfa/BpbmPHmfjH3+ec4dx529wnt523ouzKFDh3TllVcqMTFRNptN77//vlq3bl2qHuH9vG09f/jhh4qNjVV4eLj+/e9/l6oH+AZvW9N5j9OtWzfjoax5Pffcc85/fM+cObNUvcJ7edt6zs7O1rBhwzR27Fjt27dPd955p3777TelpKTo7NmzWrlypYYMGaKtW7fq9ttv19ixY0vVJ7ybp9azq1SW74SEIxVMlSpVnJ9LcqnRuf+KUpJLmMp6nrwPiDr/POeO485e4b28bT0X5MSJE7riiiu0d+9eSTkPTbvppptK1R8qB29az8eOHdO4ceMkSVOmTNFFF11Uqh7gG7xpTZ9/nCuvvLLQY9SoUUOdOnWSJG3cuLHMbyaDd/G29fzmm2/qyy+/lCRNnjxZ06dPV/v27RUUFKTQ0FD16NFD8+bN06233ipJeuWVV7iCxId4aj27SmX5Tkg4UsEEBQWpZs2aknLuly3KyZMnnYsr7wOfSiLvw3KKO0/eh+Wcf55zxynuGHmPU9pe4b28bT2fLzExUX/729/0xx9/SMr5kvnAAw+UqjdUHt60nqdPn67jx48rIiJCNWrU0KxZs/L9+uWXX5zjf/nlF2ed16H6Dm9a0+dvl/RBmFlZWTp+/HiJe4X38rb1/P7770vK+VL52GOPFXqMvA+Cnz59eql6hffy1Hp2lcrynZBwpAJq1aqVpJx7ZTMzMwsdt23btnxzSirvLQF5j1PUeRwOh5o1a1bgcU6fPq0jR44UeozDhw87X39a2l7h3bxpPeeVkpKiwYMHa+3atZKkRx55RE888USp+kLl4y3r+dwlq6dOndItt9yim266Kd+vvM9iePvtt5113vDhW7xlTUvSxRdf7PyclZVV5HHy7i/qFZioXLxpPZ97jWnr1q2NZ5OcLzIyUnXq1CnR+VC5eGI9u0pl+U5IOFIB9ezZU1LOJUfr1q0rdNzy5cudn3v06FGqc3Tu3Nn5wJy8xzlfenq61qxZk2/O+b0Wd5wL6RXezZvW8zkZGRkaOnSo81j33nuvpk6dWqqeUDl543oGiuJNa/ryyy93ft69e3eR5zy3Pzg4WNWrVy9Vv/Be3rSez4V2RX3pPefcrWEEfb7FE+vZVSrNd0ILFc4vv/xiSbIkWffcc0+BY7KysqxWrVpZkqyIiAgrPT291Oe58sorLUmWw+Gw4uPjCxwzc+ZMZy9Tp07Nt//w4cOW3W63JFkDBw4s9FwDBw60JFl2u906fPhwqXuF9/Km9WxZlpWZmWldd911znG33nqrlZ2dXep+UDl523ouyowZM5zzZ8yYUer5qBy8aU1nZmZatWrVsiRZLVq0KPTv5j179jj/bdKvX79S9wrv5U3ruU2bNpYkKzAw0Dp58mSh59q8ebPzOIMHDy51r/BenlrPBRkxYoTz3H/++Wex4yvLd0LCkQqqV69ezr90V69enW//1KlTnQt20qRJ+fbn/UdvQfsty7JiY2OdY4YMGWJlZmYa+48dO2Y1bNjQ+YftxIkTBR7n1ltvdR7nyy+/zLf/iy++cO4fMWJEsT87Kh9vWc/Z2dnWyJEjnccZOnRovuMA3rKei0M4gnO8aU2/+OKLzuM8//zz+fanp6dbf/vb34r8dwkqN29Zz48//rjzGCNHjiww7EtJSbFiYmKc4955552S/Sag0vDEei5IacMRy6oc3wkJRyqo3377zQoODrYkWWFhYdZzzz1n/fzzz9aSJUusUaNGORdWdHS0debMmXzzS/oH4cYbb3SOi4mJsebNm2etXbvW+uCDD6ymTZs697399tuFHmP//v3O/5LjcDisRx991FqxYoW1YsUK69FHH7UcDoclyapVq1ah6ToqN29Zz2PGjHGOadOmjbVu3Tpr8+bNRf6C7/GW9VwcwhGc401rOiUlxerQoYNz7C233GJ9//331rp166zZs2dbXbt2de4bNGgQV/75IG9Zz8eOHbNq167tHNezZ0/r008/tX799Vfrl19+sd5++22rdevWzv2tWrWy0tLSXPXbBC/hifWcmJhozZgxw/jVo0cP57yXXnrJ2Ld+/foCj1MZvhMSjlRg8+fPt8LDw50L8/xf0dHR1s6dOwucW9K/2JOTk61BgwYVeg673V6ilHHNmjVW3bp1Cz1O3bp1rTVr1pTxdwKVgTes50aNGhU6t7Bf8E3esJ6LQziCvLxpTR86dMjq2LFjkX83Dxo0qMAvCvAN3rKe169fbzVu3LjYf2tceuml1t69ey/gdwTezN3r+c8//yzVv32LWtfe/p2QB7JWYIMHD9amTZv08MMPKzo6WiEhIYqIiFCnTp304osvav369UW+baMkgoODtWDBAn322WcaMGCAateurYCAADVo0EA333yz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7tW6KSkpRY7r16+f/vOf/yg4OFipqamaPXu27rjjDjVv3lyRkZG69957tXHjxmLPl/c8wcHBpe4XAABfxwNZAQCATzgXlgQEBJTqVpnIyMhSn6tWrVqSVOyDVCVp9OjRuv766/X555/rxx9/1KpVq3T69GkdPHhQ77zzjt59911NmDCh0DfwnH+ec+cGAAAlRzgCAAB8Qo0aNSRJ6enpqlGjhvN5H+5wLqA4efJkicbXrl1bDz30kB566CFlZ2drw4YNmjNnjt544w2dOnVKzz77rDp37qyrr766wPl5z0M4AgBA6XFbDQAAKDWbzVbeLZRa+/btnZ8XLVrk1nO1bdtWknT69OlS385jt9vVoUMHPfPMM4qNjXXWz732tyA7duzId24AAFByhCMAAKDUzj1TQ5LS0tLKsZOSu/LKK+Xv7y9JevXVV5WZmem2c/Xq1cv5ee3atWU+TocOHZwPW01ISCh03LlzNG3a1K1XxAAAUFkRjgAAgFLL+wX8Ql5B60n169fXyJEjJUkbN27UPffcU2RA8tdff2n69OllOleXLl0UGBgoSYqLiyt03OzZs4t8aOuvv/7qvGWmcePGhY47d468oQwAACg5njkCAABKrX379goKClJqaqomTpwoh8OhqKgo59ti6tevXyHfmjJt2jStXr1av//+uz744AOtWbNGo0aNUseOHRUWFqZTp07pjz/+0OLFi7Vw4UK1bdtWd911V6nPExgYqH79+mnhwoWKjY3VU089VeC4Rx99VPfee6+uvvpqXX755YqOjlZoaKiOHz+ulStX6vXXX5ck+fn56e677y7wGDt37lR8fLwk6aqrrip1rwAAgHAEAACUQZUqVfTggw9q6tSp+u233zRw4EBj/9KlS9WnT5/yaa4IYWFhWr58uYYPH67vv/9eW7Zs0UMPPVTo+PDw8DKf69Zbb9XChQu1evVq7d27V1FRUQWOO3XqlD766CN99NFHBe4PCgrSO++8o44dOxa4//PPP5ckVa1aVX//+9/L3C8AAL6M22oAAECZvPDCC3rvvffUq1cvVa9eXX5+fuXdUolUr15d3333nWJjYzVy5Eg1b95cYWFhcjgcql69ujp37qzRo0dr4cKF+vHHH8t8nn/84x+qW7euLMvSzJkzCxzz008/afr06Ro2bJjatm2rWrVqyeFwKDw8XB06dNAjjzyiLVu26Lbbbiv0POeOfccddxjPggEAACVnsyzLKu8mAAAAKqMXXnhBjz/+uJo3b65t27Y5bztylZUrV6pXr17y9/fXjh07Cr06BQAAFI0rRwAAANzk/vvvV61atbRz507Nnj3b5cefMmWKJGnkyJEEIwAAXACuHAEAAHCjt956S/fdd59atWql33//3WVXj8TFxalr164KCwvTjh07eIUvAAAXgAeyAgAAuNGoUaN06tQppaWl6dChQ4qMjHTJcRMSEjRp0iR16NCBYAQAgAvElSMAAAAAAMCn8cwRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPg0whEAAAAAAODTCEcAAAAAAIBPIxwBAAAAAAA+jXAEAAAAAAD4NMIRAAAAAADg0whHAAAAAACATyMcAQAAAAAAPo1wBAAAAAAA+DTCEQAAAAAA4NMIRwAAAAAAgE8jHAEAAAAAAD6NcAQAAAAAAPi0/w9qb27anB7j9wAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAANkCAYAAABVuUSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAB7CAAAewgFu0HU+AADsu0lEQVR4nOzdd1yVdf/H8dc5bBDEPVHcKzVzlyNLG5apacMyR6Vmtm3Zr3Xftr2zLNMyy9HQzDQzs0xzj9yG4lYEFARB9uZcvz9OHjkeDoJyEOT9fDx8ePxe3+u6PtcREd58h8kwDAMRERERERERkXLKfKULEBERERERERG5khSOiIiIiIiIiEi5pnBERERERERERMo1hSMiIiIiIiIiUq4pHBERERERERGRck3hiIiIiIiIiIiUawpHRERERERERKRcUzgiIiIiIiIiIuWawhERERERERERKdcUjoiIiIiIiIhIuaZwRERERERERETKNYUjIiIiIiIiIlKuKRwRERERERERkXJN4YiIiIiIiIiIlGsKR0RERERERESkXFM4IiIiIiIiIiLlmsIRERERERERESnXFI6IiIiIiIiISLmmcEREREREREREyjX3K13A1SIjI4OQkBAAqlWrhru73loRERERERGR4paTk0NsbCwArVu3xtvb+7Kv6dLv4GNiYti6dStbt25l27ZtbNu2jbi4OACGDx/O7Nmzi/2e8+bNY9asWfzzzz8kJCRQo0YNunfvzrhx4+jatWux3++ckJAQOnXq5LLri4iIiIiIiIi9rVu30rFjx8u+jkvDkRo1arjy8nbS09MZPHgwv/32m117eHg43333HfPmzeP111/njTfeKLGaRERERERERKT0K7G5H/Xq1aN58+asWLHCJdd/+OGHbcFIr169ePrpp6lduzYhISG88847HD16lDfffJNatWoxevToYr9/tWrVbK+3bt1KrVq1iv0eIiIiIiIiIuVdVFSUbeZG3u/FL4dLw5HXX3+djh070rFjR2rUqEFYWBgNGjQo9vv89ddfzJ8/H4B+/fqxePFi3NzcAOjYsSN33XUX7du3Jzw8nJdeeol77rmHSpUqFWsNedcYqVWrFnXr1i3W64uIiIiIiIiIveJa79Olu9X85z//4c4773T59Jr//e9/gPVNmTZtmi0YOadq1aq8//77ACQkJDBz5kyX1iMi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DPM83+YDjy95wn0J/d020c58pPiCEa8AqNEamt8JXZ+Avv+DB36EcVvh/6Lh+YPwyB9w9wzo9Qq0exCCb4CKdRWMlGEaOSLlzrhx41i6dCl//vknixcvpnXr1jz++ON06NABX19foqOj2bJlC/PmzeOBBx7gzTfftJ17xx13cM899/Djjz+yYsUKunTpwnPPPUfz5s05e/Ys8+fP5+uvvwas6wlc7BuTy3H99dcD1hDnscce48knn7RbU6Vx48Yuu3d+Xn/9dRYtWsSxY8d48803CQkJYeTIkdSqVYvjx48zdepU1qxZA0DXrl0ZPXq0wzXuuOMO6tevz4kTJ3jttdc4c+YMd999N97e3uzbt49PPvmEXbt20aVLF7Zs2ZJvHdWqVWPSpEmMGzeOyMhI2rdvz8svv8z1119PTk4OK1euZNKkSaSkpGAymZgxY0a+W+OOGzeOMWPGcPr0abp3785rr71Gs2bNiI+PZ9myZUybNo0OHTqwadOmfOtYtWoVEydOpHv37txxxx20adOGatWqkZ6ezqFDh/j888/ZuXMnAI888kiRtl3N6/rrr2f16tVs27aN9957j9tvv922eKmPjw916tS5pOu6UuvWrfnf//7Hs88+S2hoKNdccw2jR4/mpptuokaNGmRkZBAWFsbmzZtZuHAhUVFRhISEOB2NURoUx+eGsWPHMmvWLHbt2sX06dM5fvw4jz32mG2027Rp01ixYgUdOnSwbdmbn+nTp7N9+3aOHTvG+PHjWbJkCcOGDaNVq1Z4eXkRFxfHnj17+P333/nrr78YOHAgQ4YMcdl7IyIiV6+kjGzC49IIi0vlRFwaYWf+/T0utcDRH95k0sTJyI96JTL1xd069SWfRU+pFFx6p76ISykckXLHbDbz888/M3z4cBYuXMihQ4d45plnCn3+3LlzycnJYfHixezcuZOhQ4c69KlduzbLli1z6TemN910ky0k+P777/n+++/tjpf0op7+/v6sWrWK22+/nQMHDvDTTz/x008/OfS74YYb+OWXX/JdKNLT05Nvv/2W2267jdTUVD766CM++ugj23E3Nzc+/vhj4uPjnYYjAI8//jgJCQm89tprnD59mmeffdahj5eXFzNmzKBv3775XuPRRx9l+fLl/Pzzz4SGhjp889i6dWt++umnAkcGWSwW1q5daxshkp/+/fvz7rvvOj1+MWPHjmX69OnEx8czYcIEJkyYYDvWs2dPWyBV2jzzzDP4+fnxzDPPkJiYyKRJk5g0aVK+fT09PW3Th0qzy/3c4O7uzq+//spNN93EwYMH+f333/n999/t+txyyy2MHz+eW2+91WkdlStXZuPGjdx7772sX7+edevWsW7dOqf9AwICivCUIiJS3iSmZxN2JpWwuFSO5wk/TsSlOV341IyFOsRRz2zd5aXevwufngtCqpkSXV94hRr5r/lRKRgCamuEhzhQOCLlkq+vLz/++COrV69m1qxZbNiwgejoaHJzc6lRowbXXnstd955Z74/TfX29mbRokUsXbqU2bNns2XLFs6cOYOfnx9NmzZlwIABPPHEE4Vey+RSmc1mVqxYwQcffMDSpUs5evQoqampV3Snk+DgYPbs2cOXX37Jjz/+yN69e0lKSqJy5cq0a9eOBx98kAceeCDf9UjO6datGzt27ODtt99m1apVxMbGUrVqVa6//nqee+45rr/+ervRPM688sor3HnnnUydOpW//vqLU6dOYTabqVevHrfccgvPPPOM3doiFzKbzSxcuJAvvviC2bNnExoaCkCjRo247777ePbZZwtcI+T555+nTZs2rFy5kl27dnHq1CnbdIiaNWvSqVMnhg0bxh133HHRZylInTp12Lp1K++++y5r164lMjKSjIyMy7pmSRk1ahR33XUXX3zxBStWrODgwYMkJCTg5eVFnTp1aN26NX369GHQoEF2o6JKq+L43FC7dm127drF5MmTmT9/PkePHsXLy4vmzZszbNgwxowZU2DQcU7NmjVZt24dy5YtY968eWzevJno6Giys7MJDAykSZMmdO3albvuuosePXoU59sgIiJlUFpWDsdirQFI2JlUjp1J/TcQcRaAGFQimTa24COWINPpf3+PpY7pDB6mXNcW7envfNHTwHrg6eva+8tVx2RczXtGlqDIyEiCgoIAiIiIKNLw78OHD9t21WjSpImrShQREXE5/Z8mIlI65eRaiDybzvEzqRyNTeH4mVSOxVpHg0QnOf5gxZtM6v4bdtS7YMvbuqZY/E3O14ArFmZ369a2dgHIudfB4FtZU1/Kscv5/tsZjRwRERERERG5SiSmZXMkNoVjsSkcjU399/cUwuPTyM49/3NxMxZqEk+wOYbubnmnv1h/r25KcH2xftXzWfPj39f+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iSsoAMgbvOQdHRIYGMiYMWMA67bDzzzzjNPrZGdnX/JCk2azmVdeeQWAY8eOMWzYsAJDhKSkJKZOnerQnnfR2HNbA+cnMDCQJ554AoBNmzbx7LPP2nYPyc/p06eZOXPmRZ/DmcLWVZrccsstdOrUCYBJkyaxYMGCAvuHhIQUGBaUBgMGDKB27doAvP3223a7RZ0TERHB888/D1invJz793nO8OHD8fHxAeC5557Ld3rN2rVrmTFjRoG1vPrqq4D1Y3nw4MEkJCQ47ZuZmclnn312yaGhiFydEtKyWLL7JE/P30X7t/7k7mmb+GTVYfZEJpLff9VeZNHVvI9n3X9koed/2Os9im8932Wc+y+05jBuFOIHIB6+0OgmuPkNeHQVvBQGD/4INzwFtduB2fn6YiIiUjSaViMFM5vB0+9KV1GsXn/9dRYsWEBkZCQvvfQSu3fvZtiwYVSvXp1Dhw4xefJktm3bRocOHey2oC2spKQk7rrrLoKDg7n77rvp3Lkz9evXx93dnaioKJYuXWr7xr9OnTrceeeddudPnDiRP//8k5CQEKZOncrmzZsZM2YMrVu3xtPTk8jISNavX8+8efN46623GDFixCW9D4899hh//vknixcv5scff2Tnzp2MGTOGTp06UbFiRZKSkjhw4ABr1qzhl19+wdvb2xZwnNOuXTu8vb3JyMjgtddew8PDg/r169t2MKlTp47tG9v//ve/rF27lr///pspU6awZs0aRo0axbXXXoufnx9nz55l3759rFy5kuXLl9O6dWseffTRS3q2vAtuPvvss/zf//0ftWrVsk23CQ4OLnBb2Cvl+++/p1OnTsTHx3Pffffx7bffct9999GkSRPc3NyIiYlh165dLF26lC1btjB+/Hj69et3pct2ytPTkxkzZtCvXz+SkpK44YYbeOGFF7j55ptxc3Nj06ZNvPfee7aQ73//+5/dujtg3TVq4sSJPP/884SFhdG+fXsmTJhAp06dyMjI4LfffuOjjz6iTp06pKWlOR0V0rdvX55++mmmTJnCunXraNGiBY899hjdunWjSpUqpKamcuTIEdavX8+iRYs4e/Ysw4cPd/l7JCKll2EYHDydzF8HYlh9IIYdJ85S0NIhHuTQ1nSEruZQrjeH0t7tMJ6FXizkX25eENTp/JohddqDu+flPYiIiBRK6fvuQMTFKlasyO+//07v3r2Jjo5m3rx5zJs3z67PiBEj6Nmzp8NPsYsiLCyMyZMnOz1eq1YtlixZQoUKFezafX19+euvvxg0aBDr1q1jx44djB49+pLrcMZkMvHDDz/w9NNP8/nnn3P06FFefPFFp/3z26nG39+fp556ig8++ICdO3dyyy232B1fvXo1N954I2AdtfPnn38yYsQIFi1axJ49exzClrwCAgIu7cGAxo0bc++997JgwQJWrFjhMEXq+PHjhd6hpyQ1atSIzZs3M2jQIPbu3cvSpUsLHB1yOe9RSbnjjjuYNWsWY8aMITk5mddff53XX3/dro+bmxsTJ05k7Nix+V5j/PjxhIeH88knn3Dy5EmHj5uqVavy448/cs899xRYy0cffUTlypWZOHEi0dHRBW7/7OfnV+COTyJydcrIzmXT0TOs2h/DmoOxnExId9rXjVzamI7R1RxKF3MoHcyH8DUVcSqn2QPqdjgfhtTtCB7eFz9PRESKncIRKZdatWrFvn37eP/991m8eDHh4eH4+/vTunVrRo0axZAhQ5g9e/YlXbt+/fps3bqV3377jU2bNnHixAlOnz5NSkoKgYGBtGzZkn79+jF69Gin39xWrVqVtWvXsnjxYr7//nu2bNlCbGwsJpOJ2rVr0759ewYMGMCgQYMu412wbjk8bdo0xo4dy5dffsmaNWsIDw8nJSWFChUq0KBBA9q3b8/tt9/uMMLlnPfee48mTZowd+5c9u3bR2JiotO1Uvz9/fnpp5/YsGEDc+bMYf369Zw6dYr09HQCAgJo1KgRnTp14o477nAIWorq22+/pUOHDixcuJCDBw+SnJxc4FSe0qJp06bs3r2bBQsW8NNPP7Ft2zZiY2PJzc2lSpUqNGvWjG7dujFw4EC7BXxLs+HDh9OzZ08+/vhjVqxYQXh4OBaLhdq1a3PTTTfx5JNP2i2WnJ8pU6Zw66238sknn7Bt2zbS0tKoW7cuffv25YUXXijUDkgmk4nXX3+dhx56iM8//5y//vqLY8eOkZiYiK+vL0FBQbRr145bbrmFgQMH2kY9icjVLTY5k9UHYvhz/2nWH44lIzv//yvMWGhpCqOrOZSu5lA6mg/ib3IenuTL5AZ1rvt3a93uENT5qhuhKyJSVpkMV6+MWE5ERkYSFBQEWOfQF2Wr0sOHD9t2YWjSpImrShQREXE5/Z8mpZ1hGByOSeHP0NOs3H+a3REJ+a4ZYsJCc1OELQzpZN5PRVNa0W5mMkPNNtYgpEFPqNcFvPyL50FERMqxy/n+2xmNHBERERGRq1pOroVtYWdtgUh4fH4hh0Fj00lbGNLFHEplU0rRb1aj9fmtdetfDz6Bl1u+iIiUAIUjIiIiInLVSc/KZf3hWFaEnmbV/tOcTbtwcVSDBqbof8OQfXQx76eaKbHoN6rW/N9pMj0guBv4Vi6W+kVEpGQpHBERERGRq0JCWhar9sewIjSadYfOkJ5tvwZWXVOMbWRIV3MotUzxRb9Jlcbn1wwJ7g4VHBcsFxGRskfhiIiIiIiUWaeTMvhjXzS/743m7+Px5ObZb7cWcXQ177OGIW6h1DWdKfoNAuv/G4T0sP4eULsYqxcRkdJC4YiIiIiIlCmRZ9P4fW80y/dGs+PEWVt7NRL+XS9kH9ebQwk2ny76xQPqnh8V0qA7BNYrxspFRKS0UjgiIiIiIqXe8TOpLN8bxfKQaEJOWtcGqUwSffNMk2lsPlX0C1eoYT9NpnJDMJmKuXoRESntFI6IiIiISKl0JCaF30Ki+C0kigPRyQSQQhfzfu52t+4m08IcUfSL+la1Lpx6bqpM1SYKQ0REROGIiIiIiJQAiwVy0sHdB8xmp92OxVoDkV//iSIy+jSdzAcYZA6lq2coLU0nMJsMp+fmyzvQGoac21GmWvMC7y8iIuWTwhERERERcZ3oENj8GYQugew08PCFlv2h6zio2RqAsDOpLAuJYuWe4/jHbKOrOZT3zKG09jqGW1HDEK8AqH/9+akyNa4Bs5sLHkxERK4mCkdERERExDVCFsLiMWDJOd+WnQZ75mGE/MhfTV7lryh3asZvp6s5lNGmo3h45jq/Xn48/KBel/PTZGq1BTd9iSsiIkWj/zlEREREpPhFhzgGI3mYLDncdOBNbjZRtK9I3b0hqPP5MKTOdeDmUSwli4hI+aVwRERERESK3+bPnAYj5xRmHVTDzRNT3Y7np8nU7QjuXsVUpIiIiJXCkVLAzc2NnJwccnNzsVgsmLVImIiIlEEWi4XcXOuUCDc3rfFQnmVkZeO+9+dL+kLTYnLHVKc9pgbWMMRUtxN4+hZ7jSIiInkpHCkFvL29yczMxDAMUlJSCAgIuNIliYiIFFlKSgqGYV0808fH5wpXIyUt12Lw97E4Fu+MxLJvER+a0gt9bnLla/BrdhPmhj0x1+sCXhVcWKmIiIgjhSOlQEBAAImJiQBER0cDUKFCBY0gERGRMsFisZCSkmL7PwzA39//ClYkJWl/VBI/7zrJL7siaZO6gafdF9PSfKLwF/Dwwf+J9dpeV0REriiFI6WAn58fPj4+pKenk5uby8mTJzGZTBqSLCIiZUJubq5txAhYR434+fldwYrE1aIS01my+xQ/7zrJwehEbjNv42v3xbTwDC/6xVoOVDAiIiJXnMKRUsBkMlGvXj3Cw8NJT7cOQTUMg5ycghcxExERKW18fHyoV68epsKstCllSlpWDn/si+anHSfZePQMGBb6mrfysedimpsjLu2iZnfo+njxFioiInIJFI6UEmazmfr165OamkpycrJtFImIiEhp5+bmho+PD/7+/vj5+SkYuYpYLAZbw+L5aUckv4VEkZqVixkL/cxbeMJjMU3NJ52em1O5Ce6NboQds/LftcbsDgO/gJqtXfcAIiIihaRwpBQxmUxUqFCBChW0CJmIiIhcOSfiUvlp50kW74okIt46qtWMhf7mTTzp/jONzaecn1ytOfR4AfdWA8HsBu2Hw+ZpEPozZKeBhy+0HGAdMaJgRERESgmFIyIiIiJCamYOv4VE8eP2SLaGxdva3cjlLvMmnnD/mUbmKOcXqNYCer5oDT7yriFSszUMnA79P4OcdHD30RojIiJS6igcERERESmnDMNgZ3gCP26PYOmeU6RmnZ/S60YuA8wbecJ9MQ3Mp51fpHorayjS4q6CQw+zGTy1UK+IiJROCkdEREREypnY5EwW74pkwfZIjsSk2B1zJ4eBbhsY57aE4IJCkZqtoedL0OwOjQQREZEyT+GIiIiISDmQk2thzcFYFmyP4K8DMeRYDLvjHuRwt9t6xrn9TD1zrPML1WwDN74MzfqCFt8VEZGrhMIRERERkatY5Nk0FmyL4IftEZxOynQ47kEOg93WMs59CXVNZ5xfqHY760iRprcpFBERkauOwhERERGRq0x2roVV+2OYvy2ctYdiMQzHPp5kc4/bWsa6/1JwKFKnPfR8GZr0USgiIiJXLYUjIiIiIleJiPg05m8LZ8H2SGKTHUeJAHiRxb1ua3jc/RdqmeLz7QNA3Y7WUKTxzQpFRETkqqdwRERERKQMy8m1sHL/ab77O5z1h52PAPEii/vdVvOk169UtcQ5v2BQZ+v0mUY3KRQREZFyQ+GIiIiISBl0OimDeVvDmbc1PN+1RM7xIouRXmt43GMpATlxYHHSsV5XayjS8EaFIiIiUu4oHBEREREpIwzDYNPROL7ZfII/958m15LPYiL/8iaTl6puZEj2Yrwz4yDHScf63eDGlyC4u0IREREptxSOiIiIiJRyiWnZ/Lgjgu//DufYmdQC+9bwzmFina3cFD8f95QCFloN7m7dkje4WzFXKyIiUvYoHBEREREppfadSmTOpjCW7D5FZo6z+TBWXet6MaHaRlqfmIvpZAGhSIOe1lCk/vXFXK2IiEjZpXBEREREpBTJzrXwx75o5mwKY1vY2QL7+ni4cW+bQMb6/kXNfTNhfwELrTbsZQ1F6nUp5opFRETKPoUjIiIiIqXAmZRM5v0dznd/hxOdlFFg3ybVKzCyQxXuzlmG97bpkF5AiNK4t3Wh1aBOxVyxiIjI1UPhiIiIiMgVtCcigTmbwvj1nyiycp1PnfFwM3Frq5qMuK4S7aMXYNo0DTISnF+4yS3WUKRuh+IvWkRE5CqjcERERESkhOXkWvh9XzRfbzjOzvCEAvtW9/fiwc71eaBtANX2zYKfp0FGovMTmt4GPV+EOu2Lt2gREZGrmMIRERERkRKSmJbN/G3hzNkUxqnEgqfOtK9fieHXB3NbQ288t38OMz+HzAJCkWZ3WEOR2tcWb9EiIiLlgMIRERERERc7FpvC7E1hLNwRSVpWrtN+nu5m7mpbmxHXB3NNpVzY/Bks+wKykp1fvPmd1ukztdq4oHIREZHyQeGIiIiIiAsYhsHmo3F8teE4fx2MwTCc961V0ZuhXepzf8cgqphSYPPHsHUGZKU4P6nFXdaRIjVbF3vtIiIi5Y3CEREREZFilJ1r4dd/TjFj3XH2RyUV2LddvUAe6daA21rVxD0jHja9A1u/hOxUJ2eYoGV/ayhSo1XxFy8iIlJOKRwRERERKQbJGdnM2xrOrI1hRBWwnoib2UTf1rUYeUMw19WrBCmxsOp12PYVZKc5OcsE19wNPV6A6i1c8wAiIiLlmMIRERERkcsQlZjOrI1hzPs7nOTMHKf9ArzdGdK5HsO7BlM70AeST8Mf/2cNRXLS8z/JZIZrBllDkWrNXPQEIiIionBERERE5BKEnkpi5vpj/LLnFDkW5wuKNKzqx8gbghnUvi6+nu6QHA2//xe2fw05TkaYmMzQ+h5rKFK1iYueQERERM5ROCIiIiJSSIZhsOVYPNPXHmXdodgC+3YMrsToHo24uXl1zGYTJEXBqo9hx+wCQhE3aHMfdB8PVRsXe/0iIiKSP4UjIiIiIhdhsRis3H+aaWuOsjsiwWk/kwlua1WTUT0aWtcTAUg8CRs/hh1zIDfTyYlu0HYIdH8OqjQq9vpFRESkYApHRERERJzIzrXwy+5TfL72KIdjnG+r6+1h5p72QTzavQH1q/hZGxMiYMNHsOsbyM3K/0Sz+7+hyHio3MAFTyAiIiKFoXBERERE5ALpWbnM3xbOzPXHOZngZLFUoIqfJ8O6BvNQ1/pU9vO0NiaEw/rJsOtbsGTnf6LZA9o9CN2eg0r1XfAEIiIiUhQKR0RERET+lZiezdxNYczaFEZ8qpPRHkDdSj6M6dGQezoE4e3hZm08G2YNRXZ/X3Aoct1D0O1ZCKxX/A8gIiIil0ThiIiIiJR78alZfL3hOHM2hRW4HW+zGv6MvbERd7aphbub+d+Tj8P6/8Ge+WBxcq6bJ1w3zBqKVKzrgicQERGRy1Fi4ciJEyf45JNPWLZsGREREXh5edGoUSPuvfdexo0bh6+v72XfIywsjOnTp7Ny5UqOHj1Kamoq/v7+NG/enNtuu43HHnuM6tWrF8PTiIiIyNUgJjmDmeuP8+2WE6Rl5Trt175+JR6/sRE3Na+OyWSyNsYdhfUfWkMRw8m5bl7Qfjjc8AxUrFP8DyAiIiLFwmQYhuHqmyxdupShQ4eSlJSU7/GmTZuybNkyGje+9C3rvvnmG8aMGUN6uvN5wZUrV2b+/Pn06dPnku/jTGRkJEFBQQBERERQt65+KiQiIlJaRSWm88XaY8zbGk5mjsVpv17NqvF4r8Z0DK58vjHuKKybBP8scB6KuHtD+5Fww9MQUKuYqxcRESnfXPH9t8tHjuzatYv77ruP9PR0KlSowIQJE+jVqxfp6enMnz+fL7/8kkOHDnHHHXewfft2/P39i3yPjRs3MmLECCwWC2azmeHDh9O/f39q165NeHg4c+bMYenSpcTHx9O/f3/27t1Lw4YNXfC0IiIiUppFxKcxbc1RFu6IIDs3/58PmUzQt3Utxt3YmJa1A84fiD1knT4T8iMYTgIVdx/o8DDc8BT413TBE4iIiIgruDwcefrpp0lPT8fd3Z0VK1bQtWtX27GbbrqJJk2a8OKLL3Lo0CE+/PBD3nzzzSLf491338VisX6R8umnn/L444/bjnXs2JFBgwYxfvx4Jk+eTHp6OpMnT2bq1KmX/WwiIiJSNkTEpzH1ryP8tDOSHEv+oYib2UT/trV5vFdjGlevcP5A7EFY+wHs/QlwMuDW3Qc6PgLXPwX+NYr/AURERMSlXDqtZuvWrXTu3BmAMWPG8Pnnnzv0sVgsXHPNNezfv5/AwEBiYmLw8PAo0n0qV67M2bNnqVKlCmfOnMm3T2JiIoGBgQBcd9117Nixo2gPcxGaViMiIlL6WEeKHOHH7c5DEQ83E4Ouq8vYGxtRv4rf+QMx+62hyL7FOA1FPHyh46PWUKRCteJ/ABEREXFQ5qbV/Pzzz7bXI0eOzLeP2Wxm2LBhTJgwgYSEBFavXs0tt9xSpPtkZVm32mvQoIHTPhUrVqRq1aqcOXPG1l9ERESuTicT0pn615ECp894upu5v2MQY3o2ok6gz/kDp/dZQ5HQJTgNRTwrQKdR0PUJ8Kta/A8gIiIiJcql4ciGDRsA8PPzo3379k779ezZ0/Z648aNRQ5HmjVrxs6dOzl+/LjTPklJSbZRJc2aNSvS9UVERKRsOJmQzrTVR1iw3Xko4u1h5sHO9RndoyE1ArzPH4gOgbXvw/6lzm/g6Q+dR0OXceBXpZirFxERkSvFpeHI/v37AWjcuDHu7s5v1bx5c4dziuKxxx5j9OjRxMXF8fnnn/PYY4859Jk4caJdfxEREbl6RCdmMHX1YX7Y5jwU8XI3M7RLfcb0bEh1/zyhSNQe60iRA786v4FXAHQeA10eB9/KzvuJiIhImeSycCQjI8M2UuNi838qVaqEn58fqampREREFPleDz/8MBs2bGDu3LmMGzeOHTt2cNddd1GrVi3Cw8P55ptvbFN8/u///o/evXsX+R6RkZEFHo+KiiryNUVEROTyxKVkMn3NUb7ZcsLplrye7mYe7FyPsT0bUT3vSJFTu6yhyMHfnN/AqyJ0eQy6jAWfSsVcvYiIiJQWLgtHkpOTba8rVKhQQE+rc+FISkpKke/l5ubGnDlz6NevH++88w4zZ85k5syZdn169erFK6+8cknBCGBb7EVERESuvKSMbGauO8ZXG46TmpWbbx9PdzMPdKrH2Bsb2U+fObkD1rwPh/9wfgPvitapM53HgE9g8RYvIiIipY5LR46c4+npedH+Xl5eAKSnp1/S/fbv38/cuXMJCQnJ9/jmzZv56quvaNGiBXXq1Lmke4iIiMiVlZaVw+xNYXyx9hiJ6dn59vF0MzOkUxBjb2xMzYp5QpHI7bDmPTjyp/MbeAdaF1ntPNoakIiIiEi54LJwxNv7/BcjhdkdJjMzEwAfH5+L9HS0fv16+vXrR2JiIvXr1+ett96iT58+VK5cmdOnT/PLL7/w2muvMX/+fNatW8eKFSto1apVke5xsek+UVFRdOrUqci1i4iIyMVl5uTy/d/hfLb6KGdSMvPt4242cW/HIJ68qTG1Kub5eiJiqzUUObrK+Q18KllDkU6jwTugmKsXERGR0s5l4Yi/v7/tdWGmyqSmpgKFm4KTV2ZmJkOGDCExMZGaNWuyZcsWatasaTtet25dHn/8cXr27EmHDh04deoUw4cPZ/v27UW6T3HsmywiIiJFk2sxWLQzko9XHuZkQv6jS00mGHhtHZ7p3ZR6VXzPHwjfYg1Fjq12fgOfynD9k9Zteb38nfcTERGRq5pLR45UqVKFuLi4iy5mevbsWVs4UtS1PX7//XdOnjwJwJNPPmkXjOTVqlUrhg4dysyZM9mxYwd79uyhbdu2RbqXiIiIlAzDMFi1P4YP/jjAodPOf8hy+zU1ea5PU5rUyBNshG2Ete/B8XXOb+BbFW54Cjo8Al5F+8GMiIiIXH1cupVvy5YtWb9+PUeOHCEnJ8fpdr4HDhywvW7RokWR7pF369/rrruuwL7t27e3LdR64MABhSMiIiKl0I4T8by3/ADbws467dOzaTWev6UZrevmWRfk+HpY+z6ErXd+cb9qcMPT0OFh8PQrxqpFRESkLHNpONKtWzfWr19PamoqO3bsoHPnzvn2W7t2re31DTfcUKR75A1ccnJyCuybnX1+4TZnQY2IiIhcGUdikvng94OsCD3ttE+nBpV54dZmdAyubG0wDOsIkbXvw4mNzi9eoYY1FGk/Ejx9nfcTERGRcsmlCcGAAQN49913AZg1a1a+4YjFYmHu3LkABAYG0qtXryLdo0GDBrbX69ev584773TaN28Ik/c8ERERuXKiEzP4eOUhFmyPwGLk36d5TX9evr05PZtWw2QyWUORY2usoUj4ZucXr1ATuj0L7YeDR9EXfRcREZHywezKi3fq1Inu3bsD8NVXX7F5s+MXLx9++KFtaszTTz+Nh4eH3fE1a9ZgMpkwmUyMGDHC4fybb74ZX1/rT4CmT5/udCvf5cuXs3jxYgDq1KnDtddee6mPJSIiIsUgOSObSX8coOek1czfln8wUifQh4/ua8tvT3XnxmbVMQEcWQlf3wrfDHAejPjXhtsnwdN7oMtjCkZERESkQC6fWzJlyhRuuOEG0tPTueWWW3jllVfo1asX6enpzJ8/nxkzZgDQtGlTxo8fX+TrBwYG8vLLL/P666+TnJzM9ddfz5NPPkmfPn2oVKkSp0+fZsmSJXz55ZdYLBYA3nvvPcxml+ZCIiIi4kROroV52yL4+M9DxKVm5dunkq8HT9zUhKFd6uHl7mYdKXL4T+vuMycL2HEuoI51pEi7h8DD20VPICIiIlcbl4cj7dq144cffmDo0KEkJSXxyiuvOPRp2rQpy5Yts9v+tyheffVV4uPjmTJlCikpKbz77ru26Tx5eXh48M477zB06NBLuo+IiIhcOsMw+OtADO/8tp+jsan59vHxcOPR7g0Y1aMhAd4e1lDk0B/W6TMndzi/eMWgf0ORoeDu5aInEBERkatViaxK2q9fP/755x+mTJnCsmXLiIyMxNPTk8aNG3PPPffwxBNP2KbGXAqTycRHH31k26p3w4YNnDhxgrS0NCpUqEDjxo3p2bMnY8aMoWnTpsX4ZCIiIlIYe08m8s5v+9l0NC7f425mE/d3DOLpm5tQPcDbGooc+M0aikTtdn7hwHrQfTy0fQDcPV1TvIiIiFz1TIZhOFn6TIoiMjKSoKAgACIiIqhbt+4VrkhEROTKi0pM539/HGLRrkicfcXRu0UNXr69OY2rV/g3FFlmDUWi/3F+4cD60ON5aDsE3Dyc9xMREZGrjiu+/9Z+tiIiIlLs0rJy+HzNUWasP0ZGtiXfPtfUCeCVvi24vlFVsFgg9BdY+wGczn9xdQAqNbCGIm3uUygiIiIixUbhiIiIiBQbwzBYsvsU7y0/QHRSRr59alX05oVbmzHg2jqYMWDfz9ZQJGaf8wtXbgQ9XoDW94CbvnwRERGR4qWvLkRERKRY7I5I4D9L97ErPCHf436ebjzeqzGPdGuAtxsQugjWToLY/c4vWqUx9HgRrhmkUERERERcRl9liIiIyGU5nZTB+78fYNHOk/keN5tgSKd6PNO7KdX83GHfYutIkTMHnV+0atN/Q5G7wezmospFRERErBSOiIiIyCXJyM5l5vpjTFtzlLSs3Hz7dG9SldfubEnTar6w9ydYNwnOHHJ+0WrNrdNnWg1UKCIiIiIlRuGIiIiIFIlhGPyxL5q3lu0n8mx6vn2Cq/jyf3e0pHezypj2/gQLJkHcEecXrd4Ser4ILfqD2eyiykVERETyp3BERERECu1ITAr/WbqP9YfP5Hu8gpc7T97UmBFd6+K1byF89j+IP+b8gjWusYYizfspFBEREZErRuGIiIiIXFRKZg6frjrMVxuOk2MxHI6bTHBfhyDG39yQascWw/T/wdkw5xes2Rp6vgTN7lAoIiIiIlecwhERERFxyjAMlv4TxdvLQjmdlJlvn07BlXmjb2Naxf4Gs4dCwgnnF6zV9t9QpK81UREREREpBRSOiIiISL4ORifzxi972XIsPt/jNQO8efX2RtyRuxrTT6MhMdz5xWq3g54vQ9NbFYqIiIhIqaNwREREROwkZWTz8Z+HmbM5jNx8ptB4uJkYc0Ndnqy0Ba/VT0FSpPOL1WlvDUWa9FEoIiIiIqWWwhEREREBrFNoftlzireW7Sc2Of8pNDc1DuD9hnuotvt5SDrp/GJ1O1pDkcY3KxQRERGRUk/hiIiIiHD8TCqv/byXDUfy34WmQUUzn7XYS4ujX2FaF+X8QkFd4MaXoGEvhSIiIiJSZigcERERKccysnP5fO1Rpq05SlaOxeG4v3sOnzTZxY2x8zDtjnZ+oXrXW0ORBj0VioiIiEiZo3BERESknFp/OJbXft5LWFyawzFvMnmz1t/ck/kTbsdjnV+kfjdrKBLcXaGIiIiIlFkKR0RERMqZmKQMJi7bz9I9pxyO+ZDB435rGO2+DK+zcc4vEtwdbnwZgru5sFIRERGRkqFwREREpJzItRh89/cJJv1+kOTMHLtjvmQw3P1PnvBejl9OAuQ6uUjDG6HnS1D/eleXKyIiIlJiFI6IiIiUAwejk3l50T/sCk+wa/cjneFuK3jMczkBRhLk5H8+jW6y7j5Tr7PLaxUREREpaQpHRERErmIZ2blM/esIn689So7FsLVXII3hbisY5fEbgaSA4eQCjXtbR4oEdSqZgkVERESuAIUjIiIiV6m/j8UxYVEIx86k2tr8SWOE2+884r6cQFOq85Ob3GIdKVK3fQlUKiIiInJlKRwRERG5yiSmZ/Pe8v3M2xphawsglYfdl/Ow2+8EmBx3p7Fpejv0fBHqXFcClYqIiIiUDgpHRERErhKGYbB8bzRv/LKP2ORMACqSwsPuyxnp9jsBpnTnJze7wxqK1L62ZIoVERERKUUUjoiIiFwFTidl8OrPe/kz9DQAgSTziPtyRrj9gX9BoUjzO61ritRqU0KVioiIiJQ+CkdERETKMMMw+HFHJBN/DSU5I4dKJPGo+28Md1tBBVOG8xNb9oceL0LNa0quWBEREZFSSuGIiIhIGXUyIZ1XFoWw9lAslUniZfdlPOS2Aj9TppMzTNBqgDUUqdGyJEsVERERKdUUjoiIiJQxhmHw/dZw3v3tAF6ZcUxw/5WH3FbiW1Aocs3d0OMFqN6iRGsVERERKQsUjoiIiJQhEfFpvPTTPxw+epSn3X9lqNdKfExZ+Xc2meGawdDjeajWrGQLFRERESlDFI6IiIiUVhYL5KSDuw8WTMzdHMbXv29huLGEr71W4m3Kzv88kxla32sNRao2KdmaRURERMoghSMiIiKlTXQIbP4MQpdAdhoWdx/+dmtPYGouf7ptx8tpKOIGbe6zhiJVGpVszSIiIiJlmMIRERGR0iRkISweA5YcW5M5J52uORuc/69tcoO2Q6DHeKjcsGTqFBEREbmKKBwREREpLaJDHIKRghhmd0zXPgDdnoPKDVxcnIiIiMjVS+GIiIhIabH5s0IFIwYmTO2HY+r2HFSqXwKFiYiIiFzdFI6IiIiUBhYLxr4lmArR1eTuDXd8BGazy8sSERERKQ/0VZWIiEgpsGLPcUw5aYXrnJNu/SUiIiIixUIjR0RERK6gxLRsXv9lL8n//EofDzAVZuiIhy+4+7i8NhEREZHyQuGIiIjIFbLpyBnG/7iHNsnr+dzjk8IFIwAtB2hKjYiIiEgxUjgiIiJSwjJzcvlwxSG+XH+MfqZNTPaYhrvJUriTze7Q9XHXFigiIiJSzigcERERKUGHTifz9Pzd7I9KYrDbWj5wn4HZZNj1MTBhwnA82ewOA7+Amq1LqFoRERGR8kHhiIiISAmwWAzmbA7j3eUHyMqxMNTtT97ymOXYsf1ITO1Hwt+fQ+jPkJ1mXWOk5QDriBEFIyIiIiLFTuGIiIiIi8UkZfD8wn9YdygWgEfcfuM1j28dO3YeC7e9a12VdeB06P+ZdVcadx+tMSIiIiLiQgpHREREXOj3vdFMWPQPZ9OyAXjc7Wde9Fjg2LHbs3DzG/bb1ZjN4OlXQpWKiIiIlF8KR0RERFwgPSuX//66j3lbI/5tMXjWfSFPuy927HzjK9DzxULu4ysiIiIixU3hiIiISDHbH5XEk/N2cSQm5d8Wgwnu3zPGfZlj5z7/hRueLtH6RERERMSewhEREZFiYhgG32w5wVvL9pOVY92a14SFN93nMNz9T8cTbv8AOo8p4SpFRERE5EIKR0RERIpBQloWLy78hxWhp21tZiy84z6T+93XXNDbBP0+hvYjSrBCEREREXFG4YiIiMhl+vtYHM/8sJuoxAxbmxu5/M/jcwa6bbTvbDLDgOnQ9v4SrlJEREREnFE4IiIicolyci18+tcRPv3rMBbjfLsHOXzsMZU73Lban2B2h0EzodXAki1URERERAqkcEREROQSnEpI55n5u9kaFm/X7kUWM7yn0pPt9ie4ecI9c6B53xKsUkREREQKQ+GIiIhIEa0+EMOzC3aTkJZt1+5NJgsqfkqbzJ32J7h7w/3fQePeJViliIiIiBSWwhEREZFCysm18L8Vh/h87VGHYwHmDJZX+4w6iRcEIx5+8MB8aNCjhKoUERERkaJSOCIiIlII0YkZPDlvJ9vCzjocaxZo4aeAqVSIuSAY8QqAB3+Eel1KqEoRERERuRQKR0RERC5i7aFYnv1hN/GpWQ7HBjX34f2MN3GP3mN/wDsQHloMda4rmSJFRERE5JIpHBEREXEiJ9fCxysP89maIxiG/TEPNxP/vbk69x94ElNMqP1B36ow7Geo2brEahURERGRS6dwREREJB8xSRk8OW8Xfx+PdzhWJ9CHGQNq02rlQ3DmkP3BCjVh2BKo3ryEKhURERGRy6VwRERE5AIbj5zh6fm7OJPiOI2mT8safNinMgEL7oazx+0PBtSF4b9AlUYlVKmIiIiIFAeFIyIiIv+yWAymrz3KhysOYrlgGo272cTLtzfnkZZgmnsXJEbYd6gUDMN+gUr1S6xeERERESkeCkdERESAxPRsxi/Yw8r9px2O1a7ozacPXEd731iY1Q9Sou07VGkMw5dCQO0SqlZEREREipPCERERKfcORCfx2Dc7CItLczh2U/PqfHhPWyqlHIbZ/SE11r5DtRbWNUb8a5RQtSIiIiJS3BSOiIhIufbzrpO8vOgfMrItdu1mE4y/pRljezbCHL0bvhkI6WftT67ZBh76GfyqlFi9IiIiIlL8FI6IiEi5lJVj4e1loczZfMLhWGU/Tz65vx3dmlSFiK3w7WDITLTvVKcDDF0IPpVKqGIRERERcRWFIyIiUu5EJaYz7rud7AxPcDjWtm5Fpg1tT51AHwjbAN/fB1kp9p3qXQ8PLgAv/5IpWERERERcSuGIiIiUK5uPxvHkvJ35btP7QOd6vNGvJV7ubnBkFcx/EHLS7Ts1vBHu/x48/UqmYBERERFxOYUjIiJSLhiGwayNYbz9235yL9in18vdzNsDWzO4fV1rw8HfYcFDkHtBgNLkFrj3G/DwLqGqRURERKQkKBwREZGrXkZ2Lv+3eC8/7Yx0OBZU2YfPh7anVe2K1obQJbDwYbDk2Hds0Q8GfQ3uniVQsYiIiIiUJIUjIiJyVYtKTOexb3awJzLR4dhNzavz0b3XUtHXw9rwzwJY/BgYufYdrxkMA78AN/23KSIiInI10ld5IiJy1doeFs9j3+7kTEqmw7Gnb27C0zc3wWw2WRt2zoVfngLsp9xw7VC46xMwu7m+YBERERG5IhSOiIjIVem7v0/w5i/7yM61Dzv8PN2YfN+13Nqq5vnGrV/Cb887XqTDI9D3f2A2u7haEREREbmSFI6IiMhVJSvHwptL9/H93+EOx4Kr+DJjWAea1sizBe+mT2HFq44X6jIObn0bTCYXVisiIiIipYHCERERuWrEJGfw+Lc72X7irMOxHk2r8en97c6vLwKwdhKsfsvxQt2fh5teVTAiIiIiUk4oHBERkavC3pOJjJq7najEDIdjj/VsxAu3NsPt3PoihgF/TYT1HzpeqNer0PMFF1crIiIiIqWJwhERESnzlodE8eyC3WRkW+zavT3MfDC4LXe1rX2+0TDgj/+DLZ85XuiWt+D6J11crYiIiIiUNgpHRESkzDIMg0//OsLkPw85HKsT6MOMYe1pVbvi+UaLxbrw6vavHC/W93/QaZQLqxURERGR0krhiIiIlEkZ2bm8sPAflu455XCsU4PKTH/wOqpU8DrfaMm1btW7+9sLepusW/VeN8y1BYuIiIhIqaVwREREypyYpAxGzd3OnshEh2P3dwziv/2vwdM9z/a7udmw+DHYu9C+s8kNBn4Obe51ccUiIiIiUpopHBERkTJl78lEHp2znegk+4VXzSb4vzta8vANwZjy7jKTkwULR8KBX+0vZHaHwV9Dy/4lULWIiIiIlGYKR0REpMxwtvBqBS93Pn2gHb2aVbc/ITsDFgyDw3/Yt7t5wr1zodntLq5YRERERMoChSMiIlLqGYbB1L+O8GE+C68GVfbhq+EdaVrD3/5AVirMfwCOrbFvd/eBId9Do5tcV7CIiIiIlCkKR0REpFTLyrHw8qJ/WLTzpMOxTg0q8/nQ9lT287Q/kJkM390L4Zvs2z0rwAM/QHA3F1YsIiIiImWNwhERESm1EtOyGfPtdrYci3c4dl+HICYOuGDhVYD0BPh2EJzcbt/uFQBDf4KgTq4rWERERETKJIUjIiJSKoXHpTFy9laOxqbatZtM8H99W/BItwb2C68CpMbBNwMg+h/7dp9K8NBiqN3OtUWLiIiISJmkcEREREqdneFnGTVnO3GpWXbtPh5ufDqkHb1b1nA8KSUG5vaHmFD7dt+qMGwJ1LzGhRWLiIiISFmmcEREREqV5SFRPPPDbjJz7HekqebvxdfDO9K6bkXHk5JOwZy7IO6wfbt/LRj2C1Rr6sKKRURERKSsUzgiIiKlgmEYfLn+GO8uP4Bh2B9rXtOfr0Z0pE6gj+OJZ0/A3LvgbJh9e8UgGP4LVG7osppFRERE5OqgcERERK64nFwLr/+yj+//Dnc41r1JVaY9eB3+3h6OJ8YdtY4YSYq0b6/UwBqMBNZzUcUiIiIicjVROCIiIldUSmYO477bydpDsQ7HhnQK4r/9r8HDzex4YswB6xojKdH27VWbWtcYCajtoopFRERE5GqjcERERK6YmOQMRs7axr5TSQ7HXr69OWN6NHTckQYgOgTmDoC0M/bt1VvBsJ+hQnWX1CsiIiIiVyeFIyIickUci01h2NdbiTybbtfu6W7mo3uv5Y42tfI/8eRO+GYgZCTYt9e61rpdr29ll9QrIiIiIlcvhSMiIlLidoaf5ZHZ2ziblm3XXtnPky+HdaB9/Ur5nxj+N3w3GDIvGGlStxM8+CP4BLqmYBERERG5qikcERGRErUy9DRPzNtJRrb9Vr31Kvsy5+FONKjql/+Jx9fD9/dBdqp9e/0b4IEfwMvfRRWLiIiIyNVO4YiIiJSYeVvD+b/FIVgu2Kq3dZ2KfD2iI9X8vfI/8chKmP8g5GTYtzfsBfd/D56+rilYRERERMoFhSMiIuJyhmHw8crDTFl12OFYj6bVmP7gdfh5Ofkv6cBv8ONwyM2yb296G9wzBzy8XVCxiIiIiJQnCkdERMSlcnIt/N/ivfywPcLh2KDr6vLeoNb5b9ULsG8x/PQoWHLs21vcBYO+AndPF1QsIiIiIuWNwhEREXGZtKwcnvh+F38diHE4Nq5XI56/pVn+W/UC7JkPP48Fw35tElrfCwOmg5v+CxMRERGR4qGvLEVExCUS0rJ4ePY2doYn2LWbTPDfu1rxUNdg5yfvmA1LnwEuWJyk3UPQbwqY3Yq3WBEREREp1xSOiIhIsTudlMGwr7Zy8HSyXbuXu5kp97fjtmtqOj/57xmw/AXH9o6j4PYPwOxkCo6IiIiIyCVSOCIiIsUq7EwqD339NxHx6XbtFX08+Gp4BzoEV3Z+8sYp8Ofrju3XPwl9JlqHnYiIiIiIFDOFIyIiUmz2nUpk+NfbOJOSaddeI8CLbx7pTNMa/vmfaBiw9gNY847jsR4vQq9XFIyIiIiIiMsoHBERkWKx9Xg8j8zeRnKm/c4yDar6MffhTgRV9s3/RMOAVf+BDR85HrvpNejxvAuqFRERERE5T+GIiIhctlX7T/P4dzvJzLHfWaZV7QDmPNyJqhW88j/RMOD3CfD3dMdjt74DXce5oFoREREREXsKR0RE5LIs2hnJCwv/Iddiv7NM5waV+XJ4BwK8PfI/0WKBZc/BjlmOx+74EDo+6oJqRUREREQcKRwREZFL9vWG4/z311CH9t4tajD1gXZ4ezjZcteSC0uegD3fX3DABP2nQruhxV+siIiIiIgTCkdERKTIDMPgo5WH+WTVYYdjg66ry/uDWuPu5mTL3dxsWDQa9i2ybze5wd0zoPVgF1QsIiIiIuKcwhERESkSwzB4e9l+Zm447nBsVPcGTLi9BWazk51lcjJh4cNw4Ff7drMHDP4aWt7lgopFRERERAqmcERERArNYjF4dclevv873OHYi7c1Y2zPRpicbbmbnQ4/PARH/rRvd/OC+76Bpre6oGIRERERkYtTOCIiIoWSk2vhxYX/sGjXSbt2kwneGnAND3au7/zkrFSYdz8cX2ff7u4DQ+ZBo14uqFhEREREpHAUjoiIyEVl5Vh4at4uft8XbdfuZjbxv3vaMLBdXecnZyTBd/dAxBb7ds8K8OCPUP96F1QsIiIiIlJ4CkdERKRAGdm5PPbtDtYcjLVr93Az8emQdtx2TS3nJ6efhW8Hwckd9u1eFWHoTxDU0QUVi4iIiIgUjcIRERFxKiUzh0fnbGPLsXi7di93M58/1J5ezao7Pzn1DHwzAKJD7Nt9KsNDi6H2tcVer4iIiIjIpVA4IiIi+UpMy2bE7K3sCk+wa/fzdGPm8I50bVTF+cnJp2HuXRB7wL7drzoMWwI1WhZ/wSIiIiIil0jhiIiIOIhLyeShr7YSGpVk1x7g7c7shztxXb1Kzk9OjIQ5d0H8Uft2/9ow/Beo2sQFFYuIiIiIXDqFIyIiYic2OZMHvtzC4ZgUu/bKfp5880gnWtWu6Pzks2Ewpx8kXLDVb8V61mCkcoPiL1hERERE5DIpHBEREZuYpAyGfLmFo7Gpdu01Arz47tHONK7u7/zkM0esU2mS7Lf6pXJDGPYLBAa5oGIRERERkcuncERERAA4nZTBkBlbOHbGPhipE+jD96M6U7+Kn/OTYw5Yg5GU0/btVZtZ1xgJKGBHGxERERGRK0zhiIiIEJ1oHTFy/IJgpF5lX+aN7kKdQB/nJ0f9Y92VJi3Ovr3GNfDQz1ChWrHXKyIiIiJSnBSOiIiUc6cS0hny5RZOxKXZtQdXsQYjtSoWEIxE7oBvB0JGon177XYwdBH4VnZBxSIiIiIixUvhiIhIORZ5No0hX24hIj7drr1hVT/mje5CjQBv5yef2Azf3QNZyfbtQZ3hwR/Bu4CFW0VEREREShGFIyIi5VREfBr3z9jCyQT7YKRRNT/mjepC9YKCkWNrYd79kG0/2oTg7jBkPnhVcEHFIiIiIiKuoXBERKQcCo+zjhi5MBhpUr0C343qTHX/AoKRwyvhhwchJ8O+vdHNcP934FHANBwRERERkVLIXFI3OnHiBOPHj6d58+b4+flRuXJlOnbsyKRJk0hLS7v4BYpg5cqVjBgxgsaNG+Pn50fFihVp2rQpgwcPZvr06aSkpBTr/UREypKwM6ncN2OzQzDSrIY/80Z3KTgY2f+rdcTIhcFIs74wZJ6CEREREREpk0yGYRiuvsnSpUsZOnQoSUlJ+R5v2rQpy5Yto3Hjxpd1n7NnzzJy5EiWLFlSYL9du3Zx7bXXXta9LhQZGUlQUBAAERER1K1bt1ivLyJSHMLj0rhvxmaiEu3DjeY1/fnu0c5UqeDl/OS9P8FPo8DItW9vOQAGzQQ3j+IvWERERETkAq74/tvl02p27drFfffdR3p6OhUqVGDChAn06tWL9PR05s+fz5dffsmhQ4e444472L59O/7+/pd0n8TERPr06cOOHTsAGDhwIIMHD6ZRo0a4ubkRERHB2rVr+emnn4rz8UREyoyIeOtUmguDkZa1Avju0c5U8vN0fvLu72HJODAs9u1t7of+n4GbZmmKiIiISNnl8pEjPXr0YP369bi7u7Nu3Tq6du1qd3zSpEm8+OKLALzxxhu8+eabl3SfYcOG8c033+Dl5cWCBQu466678u1nGAa5ubm4uxfvF/IaOSIipdmphHTum7HZYVeaa+oE8O0jnQn0LSAY2T4Lfn3Gsf264XDnx2AusRmaIiIiIiIu+f7bpV/Rbt26lfXr1wPwyCOPOAQjAOPHj6dFixYATJkyhezs7CLfZ8OGDXzzzTcAvPXWW06DEQCTyVTswYiISGkWnZiR73a9LWsVIhjZMj3/YKTTGOg3RcGIiIiIiFwVXPpV7c8//2x7PXLkyPwLMJsZNmwYAAkJCaxevbrI95k6dSoAFStW5Iknnih6oSIiV6mYpAwe+HILJ+LsF74+t8ZIgcHI+snw+8uO7Tc8Dbe/DyZTMVcrIiIiInJluDQc2bBhAwB+fn60b9/eab+ePXvaXm/cuLFI98jKyrItwNqnTx+8va27LOTm5hIREUFYWBgZGRkFXUJE5KoUm5zJAzP/5tiZVLv2JtUr8G1Ba4wYBqx+F1b9x/FYz5eh938UjIiIiIjIVcWl4cj+/fsBaNy4cYFTWZo3b+5wTmHt2bPHFn60bt2apKQknnnmGapWrUq9evVo0KABFStWpE+fPqxZs6boDyEiUgbFp2YxdObfHImx37q8YTU/vhvVmarOdqUxDFj5Bqx9z/HYzW9ArwkKRkRERETkquOyxTcyMjI4c+YMwEUXR6lUqRJ+fn6kpqYSERFRpPuEhobaXlssFjp06MDhw4ft+mRlZbFy5UpWrVrFu+++y0svvVSke4B1wZeCREVFFfmaIiKukJCWxYMz/+bg6WS79gZV/Zg3qgvV/b3zP9EwrNNo/v7c8dht70GXsS6oVkRERETkynNZOJKcfP6L8goVKly0/7lwJCUl5aJ984qPj7e9fv/998nIyOC2227jv//9L23atCEpKYmffvqJl19+mcTERF5++WWaN29O//79i3SfcyvhioiUZolp2Qz96m/2RyXZtder7Mv3ozpTI8BJMGKxWBde3TnH8didH0GHh4u/WBERERGRUsJl02ryrvPh6VnAgn//8vKyDvFOT0+/SE97qann59JnZGTQp08ffv31Vzp27IiXlxfVqlXjscce49dff8X8764KEyZMwMU7GIuIlLiUzByGzdrK3pP2wUidQB++H9WZWhV98j8xNwd+HusYjJjMMGC6ghERERERueq5bOTIuYVRwTqt5WIyMzMB8PFx8sV7Ie4D1tEjbm5uDv26devG3XffzcKFC9m/fz8hISG0adOm0Pe52HSfqKgoOnXqVOjriYgUp/SsXB6ZvY09EQl27bUrejN/dBfqVvLN/8TcbPjpUQj92b7d5AaDvoRrBrmkXhERERGR0sRl4Yi/v7/tdWGmypwbAVKYKTjO7lOtWjXatWvntO+tt97KwoULAdi2bVuRwpGLrZsiInKlZOVYGPvdDv4+Hm/XXiPAi+9HdSGospNgJCcTfhwJB5fZt5s94J7Z0OJO1xQsIiIiIlLKuGxajbe3N1WqVAEuvpjp2bNnbeFIUdf2yNv/YgFG3r6xsbFFuo+ISGmUk2vhmR92seag/ee0Kn6efPdoF4Kr+uV/YlYazBviGIy4e8OQeQpGRERERKRccelWvi1btgTgyJEj5OTkOO134MAB2+sWLVoU6R6tWrWyvc7NzS2wb97jBW0tLCJSFlgsBi8vCuG3kGi79gBvd755pDONqzsZiZeZAt/fC0dX2bd7+MIDC6BJHxdVLCIiIiJSOrk0HOnWrRtgnTKzY8cOp/3Wrl1re33DDTcU6R7169enXr16AISFhRW40OrRo0dtr+vUqVOk+4iIlCaGYfCfpftYuMN+ZJ6vpxuzH+5Ey9oB+Z+YkQjf3g1h6+3bPf1h6CJo2NNFFYuIiIiIlF4uDUcGDBhgez1r1qx8+1gsFubOnQtAYGAgvXr1KvJ9Bg2yLhiYlJTEqlWrnPZbtGiR7fW54EZEpCz634qDzNl8wq7N093MzGEduK5epfxPSouHuf0h4m/7du+KMGwJ1O/qompFREREREo3l4YjnTp1onv37gB89dVXbN682aHPhx9+yP79+wF4+umn8fDwsDu+Zs0aTCYTJpOJESNG5HufZ555xrZrzXPPPUdSUpJDn2+//ZY1a9YAcMcddxR5bRMRkdJi2pojfLb6qF2bu9nE9Aev4/rGVfM/KSUW5vSDU7vs232rwPBfoW57F1UrIiIiIlL6uTQcAZgyZQo+Pj7k5ORwyy238O6777JlyxZWr17NmDFjePHFFwFo2rQp48ePv6R71KtXj//+978AhISE0KlTJ2bNmsWOHTtYvXo1Tz75pC1YCQgI4KOPPiqWZxMRKWlzN4fxwe8H7drMJvjovmu5uUWN/E9KioLZd8DpvfbtFWrAiGVQq/A7d4mIiIiIXI1cvippu3bt+OGHHxg6dChJSUm88sorDn2aNm3KsmXL7LblLaoXXniB+Ph43n//fQ4ePMjDDz/s0Kd69er8/PPPNGnS5JLvIyJypSzcEcnrS/Y5tL93dxv6ta2d/0kJETD3Log/Zt8eUAeG/QJVG7ugUhERERGRssXlI0cA+vXrxz///MOzzz5L06ZN8fX1JTAwkA4dOvD++++za9cuGje+/C/Q3333XTZu3MhDDz1EcHAwXl5eVKxYkY4dOzJx4kQOHTpE166aUy8iZc+KfdG8uHCPQ/vrd7bk3o5OpgnGH4dZfR2DkcB6MPI3BSMiIiIiIv8yGQVt7yKFFhkZaVvHJCIigrp1617hikTkavH3sTge+norWTkWu/bxfZry5M1ORsKdOQxz7oLkU/btlRvB8KVQUTt2iYiIiEjZ5Irvv10+rUZERC7dvlOJPDpnu0MwMrpHQ564ycnIj9Oh1l1pUmPs26s1t+5K41/TRdWKiIiIiJRNCkdEREqpE3GpDP96G8mZOXbt93aoy4Tbm2MymRxPOrUbvhkI6fH27TVbw0M/g5+T3WxERERERMoxhSMiIqVQTFIGD321lTMpmXbtt7SswTsDW+cfjERuh2/uhsxE+/ba18FDi8CnkgsrFhEREREpuxSOiIiUMonp2QyftY3w+DS79s4NKvPJkHa4u+WzlvaJTfDdPZCVYt9erys8sAC8A1xYsYiIiIhI2aZwRESkFMnIzmXUnO3sj0qya29ZK4Avh3fA28PN8aSjq2H+A5BtH6bQoAcMmQ+efi6sWERERESk7FM4IiJSSuTkWnji+11sDbNfL6R+FV/mPNyJAG8Px5MO/QE/PAS59tNvaNwH7vsGPHxcWLGIiIiIyNUhn7HZIiJS0gzDYMKiEFbuP23XXs3fi28e7kw1fy/Hk/YvhfkPOgYjze6A+79TMCIiIiIiUkgKR0RESoH3fj/Ajzsi7dr8vd2Z+3An6lXxdTwhZCEsGA6WbPv2VnfDvXPAPZ8wRURERERE8qVwRETkCvtqw3G+WHvMrs3L3cxXwzvSolY+C6nu+g5+ehSMXPv2tg/AoJngls/0GxERERERcUrhiIjIFbTsnyjeWhZq1+ZmNvHZA9fRqUFlxxO2zYQljwOGfXv7kdD/MzDns2CriIiIiIgUSOGIiMgVsvV4PM8u2I1xQc7x3t2t6d2yhuMJmz+DZeMd2zuPhTs/ArM+pYuIiIiIXArtViMicgUcPp3Mo3O2kZVjsWt/4dZm3NMhyPGEdf+DvyY6tnd7Fm5+A0wmF1UqIiIiInL1UzgiIlLCTidlMGLWNpIycuzaH+hcj8dvbGTf2TBg9Tuw7gPHC/X6P+jxgoIREREREZHLpHBERKQEJWdkM/zrrZxMSLdr792iOv+9qxWmvEGHYcCfr8GmTx0v1Oe/cMPTLq5WRERERKR8UDgiIlJCsnIsjP12Jweik+3arw0K5NMh1+HulmfNEIsFlr8I2750vNDtH0DnMS6uVkRERESk/FA4IiJSAgzD4OWf/mHDkTN27cFVfPlqeAd8PPPsMmPJhaVPw65vLriKCfp9DO1HuLpcEREREZFyReGIiEgJmPTHQRbtOmnXVsXPkzkPd6JKBa/zjbk58PNYCFlgfwGTGQZMh7b3l0C1IiIiIiLli8IREREX+2bLCaatOWrX5uPhxtcjOlK/it/5xpwsWPQohC6xv4DZHQbNhFYDS6BaEREREZHyR+GIiIgLrQw9zRtL9tq1uZlNfPZgO9oGBZ5vzM6AH0fAoeX2F3DzhHvmQPO+Lq9VRERERKS8UjgiIuIie08m8tT8XVgM+/a3BlzDTc1rnG/ISoP5D8Cx1fYd3b3h/u+gcW/XFysiIiIiUo4pHBERcYGoxHQembONtKxcu/anbmrMkE71zjdkJsP398OJDfYX8PCDB+ZDgx4lUK2IiIiISPmmcEREpJilZubwyOztnE7KtGu/u10dnu3T9HxDRiJ8Oxgit9pfwCsAHlwI9TqXQLUiIiIiIqJwRESkGOVaDJ6at4vQqCS79k4NKvPuoNaYTCZrQ1o8fDMQonbbX8A7EB5aDHWuK5F6RURERERE4YiISLGa+Gsoqw7E2LU1qOrHF0Pb4+XuZm1Iifn/9u47Oqoy/+P4ZyaTnpAQeg1gCAREN9J7Fdsqwq66Kouioit2EQurggVRUH6i66Iogh2sFAELvYMUQ+8tQOglpJe5vz+yTHJJDzOTTOb9Oofj3O99nnu/cJ54mA+3SJ/fKp3Yap4cVF0aNEOq3cotvQIAAADIQTgCAE7y2coDmrrygKkWHuSrT+9tq6rBfjmFxKPS5/2kU7vMk0NqS4NmSjWbu6dZAAAAAA6EIwDgBAt3HNcrs81Xgvj5WDXpn23UuHpwTuHcIemzW6Sz+82Tq9SX7pklVbvCTd0CAAAAyItwBAAu09aj5/Xo1/lf2Tv271epXeOInI0z+3KCkfPx5kFVG0mDZklVI93SKwAAAID8CEcA4DIcO5+m+6euy/fK3if7NNWtsfVyNk7ukj6/RbqQYJ5cLUq6Z7ZUpa6bugUAAABQEMIRACij5PQs3f/ZHzqWmGaq94+tpyd6N83ZOL415xkjySfNk2vE5DxjJLSWm7oFAAAAUBjCEQAoA7vd0NPf/qmtRy95ZW+jCL158ZW9RzfmvK439ax5cu2rpH/OkIKrua9hAAAAAIUiHAGAMvi/+bv069bjplrj6sH66J//e2Vv/Frpy79L6efNE+u1kQb+IAWGu69ZAAAAAEUiHAGAUpr55xG9v3CPqRYWmOeVvQeWS1/fIWUkmSc27CTd/a3kH+rGbgEAAAAUh3AEAEohLv6cnv1+k6nmY7Vo4t3X5Lyyd88CadrdUlaqeWKTHtI/vpb8gt3XLAAAAIASIRwBgBI6dj5NQz5fp/Qsu6k+6paW6hRVXdr5i/TtP6XsDPPEpn2l27+QfAPc2C0AAACAkrKWdwMA4AnSMrP14BfrdOJCuqn+zw6R+meHSGnbTGn63fmDkZibpTu+IhgBAAAAKjDCEQAohmEYGv79Jm06bH64aqcrqunlm1tIm76Vvhss2bPME6/8u/T3qZLNz33NAgAAACg1whEAKMYHi/ZodtxRUy2yWpD+e/c18o37UvrxQcnINk/6y0BpwCTJh7sXAQAAgIqOcAQAivDLlmN6+7ddplqov02T72mj8C2fSbMek2SYJ7W5X7rlfcnq475GAQAAAJQZ4QgAFGLr0fN6avqfpprVIr13V6yi9kyV5j6Tf1KHR6Sb3pGs/O8VAAAA8BRc7w0ABTh5IV1DPlun1Ezz7TIjboxRz2OfSYtezz+p6zNSrxcli8VNXQIAAABwBsIRALhERpZdQ79ar6Pn00z121vX0/3pX0rL38k/qeeLUvfhbuoQAAAAgDMRjgDAJV77eZv+OHDWVGsbGa43QqbJsnxi/gl9X5c6Peam7gAAAAA4G+EIAOTx7R/x+mL1QVOtfpi/Pq/9rWxrpuafcOPbUrsh7mkOAAAAgEsQjgDA/2w8dFYvzthiqgXapNmR0xUY9+0loy05b6S55p/uaxAAAACASxCOAICkExfS9K8v1ysj2+6o2ZSl3yKnq+quOebBFh+p/4fSVbe7uUsAAAAArkA4AsDrZWTZNfTLDTqemO6o+SpLs2tPVoMjS8yDrTbp759KLfq5uUsAAAAArkI4AsDrvfrzVq07mPsAVn9l6Juw/6r5ubXmgT5+0u2fS81ucHOHAAAAAFyJcASAV5v+xyF9ufqQYztQafo8aIKuSY8zD7QFSnd+LV3Ry80dAgAAAHA1whEAXmvDobN6acZWx3awUjXVf5za2neYB/qFSHdNlxp1cXOHAAAAANyBcASAVzpxIU0P53kAaxUl6zO/txRr2WMe6F9FGviD1KBdOXQJAAAAwB0IRwB4nUsfwFpVifrC701daT1gHhhYVfrnT1LdWPc3CQAAAMBtCEcAeJ3Xft7meABrdZ3Xl35vqLk13jwouIb0zxlS7Svd3yAAAAAAtyIcAeBVftxwWF+sPihJqqUz+tpvtK6wJpgHhdaRBs2SakSXQ4cAAAAA3I1wBIDX2HEsUSN+2ixJqm85qa98RyvSesI8KKyBdM8sKaJJOXQIAAAAoDwQjgDwColpmXr4yw1Ky7SrkSVBX/m9oXqW0+ZBVRvnBCPhDcunSQAAAADlgnAEQKVnGIaGfxen/aeSFWU5rK/83lAtyznzoOrR0qCZUpW65dIjAAAAgPJDOAKg0vt42T79uvW4YiwH9YXfGFW3JJoH1GwpDZohhdQsl/4AAAAAlC/CEQCV2up9p/XWLzvVyrJPX/iNUbgl2Tygzl9yXtcbFFEu/QEAAAAof4QjACqt44lpevTrjbra2Kmpfm+piiXVPKB+O+nu76TA8HLpDwAAAEDFQDgCoFLKzLbr0a83KCployb7jVOwJd08ILKzdNd0yT+0fBoEAAAAUGEQjgColN6at0OBhxZrku94BVgyzTub9JT+8bXkF1Q+zQEAAACoUAhHAFQedruUlaq5O87pwMrv9bHvBPlbssxjom+Qbpsq+QaUS4sAAAAAKh7CEQCe79hmadUH0raZUmaKehs2Xe+bLavFMI+LuUX622TJ5lc+fQIAAACokAhHAHi2zd9LPz0k2XOvEMl3tYgktbpdunWi5MP/9gAAAACY8S0BgOc6tjlfMFIQo9lNsvT/ULL6uKkxAAAAAJ7EWt4NAECZrfqg2GBEkiwBVQhGAAAAABSKcASAZ7Lbc54xUhLbZuaMBwAAAIACEI4A8ExZqVJmSsnGZqbkjAcAAACAAhCOAPBMtkDJN6hkY32DcsYDAAAAQAEIRwB4JqtVh2pfW7KxLW6VrPzvDgAAAEDB+LYAwCPtPZmkVw+2kGEUM9BqkzoOdUtPAAAAADwT4QgAj5OWma1HvtqgPvZVsliKGGi1Sf0/kmq3cltvAAAAADyPrbwbAIDSemX2VmUe36Hb/JaYd1htOa/29Q3KuZWm41CCEQAAAADFIhwB4FFm/nlE36yN1399v5OPJfeeGsM3SJbHNkgBVXIevsozRgAAAACUEOEIAI+x92SSRvy4WVdZ9upGn7WmfZYOQ6UqdcqpMwAAAACejH9aBeAR0jKz9ejXG5Wcka1nbdPMOwOrSp0fL5/GAAAAAHg8whEAHuHNeTu0PSFRXayb1cVnq3lnl6elgLDyaQwAAACAxyMcAVDhLdxxXFNXHpBF9vxXjYTWldoNKZ/GAAAAAFQKhCMAKrQTiWl65rtNkqQbrGt1lXW/eUCP5yXfwHLoDAAAAEBlQTgCoMKy2w09/W2cziRnyKYsPWP71jygWlPpL3eXT3MAAAAAKg3CEQAV1qRl+7R8zylJ0t99lqqJ9Zh5QO+XJB9eugUAAADg8hCOAKiQ4uLP6e1fd0qS/JWhJ20/mAfUjZVibimHzgAAAABUNoQjACqcpPQsPT5to7LshiTpXp9fVdty1jyozyjJYnF/cwAAAAAqHcIRABXOyzO26ODpFElSFSVpqG2meUCTHjm/AAAAAMAJCEcAVCgzNh7RjxuPOLYfsv2sMEuKeVDvkW7uCgAAAEBlRjgCoMI4eDpZL87Y4tiuobO6z+cX86AWt0r1rnFvYwAAAAAqNcIRABVCZrZdj0/7U0npWY7a47afFGjJyB1k8ZF6vVgO3QEAAACozAhHAFQI43/fpbj4c47tSMsx3WVbZB4UO1Cq3tS9jQEAAACo9AhHAJS71ftO68Mle021l4N/ko+ycwu2AKn7c27uDAAAAIA3IBwBUK4S0zI17Ns4GUZu7WqfA+qdtcw8sN2DUlg99zYHAAAAwCsQjgAoVyNnbtWRc6mm2vu1fjYP8g+Tujzlxq4AAAAAeBPCEQDl5udNR/VTntf2StJ99eLV8MxK88AuT0hBEW7sDAAAAIA3IRwBUC6OnU/Tv3/aYqqFBvjoed9vzQNDaknt/+XGzgAAAAB4G8IRAG5ntxt65rs4nU/NNNU/bndCfsfWmwd3f1byC3ZjdwAAAAC8DeEIALebsvKAlu85ZardclUttd//gXlg1cbSNfe4sTMAAAAA3ohwBIBb7Tx2QW/9ssNUqxMWoDev2CbLSXNdvV6UfHzd2B0AAAAAb0Q4AsBt0rOy9eT0P5WRZTfV3xnQXEErx5oH124ltRzgxu4AAAAAeCvCEQBuM/73XdqekGiq3d+lsTqdmSmdjzcP7j1KsvK/KAAAAACuxzcPAG6xet9pTVq6z1RrVitUw3vUkZa9bR4c2UWK6u3G7gAAAAB4M8IRAC6XmJapYd/GyTBya34+Vv3fHX9RwB8TpZTT5gl9RkoWi3ubBAAAAOC1CEcAuNzImVt15FyqqTasb7RaVEmXVv7HPLjZTVKDdm7sDgAAAIC3IxwB4FLzNifop41HTLUOTSL0QNcmObfTZCbn7rBYpd4vublDAAAAAN6OcASAy5xKSte/Z2wx1UIDbHrn9r/I5/wh6Y/J5glX3ynVjHFjhwAAAABAOALARQzD0Is/bdGZ5AxT/ZVbWqpeeKC0eIxkz8zd4eMn9XjezV0CAAAAAOEIABeZFXdUv2w9Zqr1bVFL/WPrSce3SXHTzBPaPiCFN3RjhwAAAACQg3AEgNMdT0zTyzO3mmpVg3w1un8rWSwWacGrkvK+uiZE6jrMvU0CAAAAwP8QjgBwKsMw9MKPm3U+NdNUf/3WVqoR6i8dWi3tmmee1OkxKbi6G7sEAAAAgFyEIwCc6rv1h7VwxwlT7ear6+qmq+pIhiHNH2WeEFRd6viI+xoEAAAAgEsQjgBwmiPnUvXq7G2mWo1Qf716S8ucjd2/S4dWmSd1Gy75h7qpQwAAAADIj3AEgFMYhqHnvt+kpPQsU31M/1aqGuwn2e3SglfMk8IaSm0Gu7FLAAAAAMiPcASAU3y55pCW7zllqv3tmvrq06JWzsaWH6TjW8yTeo6QbP5u6hAAAAAACkY4AuCyHTqdojFzt5tqtasE6OWbW+RsZGVIi143T6oRI111u5s6BAAAAIDCEY4AuCx2u6Fnvo9TSka2qf7W369SWKBvzsaGz6SzB8wTe78sWX3c0yQAAAAAFIFwBMBlmbLygNbuP2Oq3dW+obpH18jZSE+Slow1T2rQXmp2g5s6BAAAAICiEY4AKLN9J5M09pcdplr9qoEacWNMbmHNRCnZ/Gpf9RklWSyubxAAAAAASoBwBECZ2O2Gnvthk9Kz7Kb6uL9frRB/W85GyhlpxXvmiU37SpGd3NQlAAAAABSPcARAmXyx+qD+OHDWVLu3UyN1vKJabmH5eCk90Tyx98tu6A4AAAAASs5t4cjBgwc1bNgwNW/eXMHBwYqIiFDbtm01btw4paSkuOScKSkpatKkiSwWiywWixo1auSS8wDeJv5Mit665HaahhFBevb6ZrmF84elNZPME1vdJtVu5YYOAQAAAKDkbO44yezZszVw4EAlJub+C3JKSorWrVundevW6ZNPPtGcOXMUFRXl1PO+/PLL2r9/v1OPCXg7wzD0wo+b872d5s0BrRTkl+d/KYvflLLTc7etNqnnCDd1CQAAAAAl5/IrRzZu3Kg77rhDiYmJCgkJ0ejRo7Vy5UotWLBAQ4YMkSTt2rVLN910ky5cuODU87777rsKCAhQaGio044LeLtv18Vr+Z5Tptqd7RqqU1T13MLJXdKfX5kntr5Ximji+gYBAAAAoJRcHo488cQTSk1Nlc1m02+//aYRI0aoY8eO6tWrlyZNmqSxY3Ne8blr1y698847Tjlndna2hgwZouzsbI0YMUIRERFOOS7g7Y6dT9Prc7abanXCAvTCjc3NAxe+Jhl5HtTqGyR1e9YNHQIAAABA6bk0HFm7dq2WLVsmSbr//vvVsWPHfGOGDRummJic135OmDBBmZmZl33eCRMmaP369WrWrJmee+65yz4egJzbaV6csVkX0rJM9Tf6t1KVAN/cwpH10vZZ5skdhkqhtdzQJQAAAACUnkvDkRkzZjg+Dx48uOAGrFYNGjRIknTu3DktWrToss558OBBvfxyztswPvzwQ/n5+V3W8QDkmBV3VPO3nzDVBsTWU8/mNc0D579i3g6sKnV+3MXdAQAAAEDZuTQcWb58uSQpODhYrVu3LnRc9+7dHZ9XrFhxWeccOnSokpOT9c9//lM9evS4rGMByHEqKV2jZm011aqH+Ovlm1uYB+5dKO1fYq51eVoKCHNxhwAAAABQdi4NR7Zvz3k2QVRUlGy2wl+M07x57vMKLs4pi2nTpmnu3LmqWrWq055fAkAaNWurzqaYb3l7rV9LhQfluTLLbs9/1UhoXandEDd0CAAAAABl57JX+aalpenUqZw3WtSvX7/IsVWrVlVwcLCSk5MVHx9fpvOdPXtWTz75pCTpzTffVI0aNcp0nMIcPny4yP0JCQlOPR9QUfy69Zh+3mRe3ze2qq0bWtUxD9w+U0r401zr8bzkG+jaBgEAAADgMrksHMn7Wt6QkJBix18MR5KSksp0vuHDh+v48ePq2LGj4xXBztSgQQOnHxOo6M6nZOrFGVtMtfAgX71yy5XmgdmZ0oLXzLVqTaW/3O3iDgEAAADg8rnstpq0tDTH55I8FNXf31+SlJqaWupzLV26VJ9++qlsNps+/PBDWSyWUh8DQH6vzdmmkxfSTbWRN7dQjVB/88A/v5LO7DXXer8k+bgsfwUAAAAAp3HZN5eAgADH54yMjGLHp6fnfAELDCzdJfjp6el68MEHZRiGnnjiCV111VWla7SEirvdJyEhQe3atXPJuYHysHTXSX2/3nw7Wc9mNXTrX+qZB2amSovfNNfqxkoxt7i4QwAAAABwDpeFI6GhoY7PJblVJjk5WVLJbsHJa/To0dq5c6caNGigV155pfgJZVTcc1OAyiQ1I1v/nrHZVAv1t+mNAa3yX5m15iPpwiXP3OkzSuIKLgAAAAAewqVXjlSrVk2nT58u9mGmZ8+edYQjpX22x1tvvSVJ6tOnj2bPnl3gmIvHTk5O1rRp0yRJNWvWVK9evUp1LsBbvLtgl+LPmG9xe+HGGNUJu+TKrtSz0vLx5lqTHjm/AAAAAMBDuPSBAC1atNCyZcu0Z88eZWVlFfo63x07djg+x8TElOocF2/ZmTJliqZMmVLk2FOnTunOO++UJHXv3p1wBCjA1qPn9cmy/aZau0YR+kfbAoLLFe9JaefNtd4jXdgdAAAAADifyx7IKkldunSRlHPFxvr16wsdt2TJEsfnzp07u7IlAEXItht64cfNyrYbjpqfj1VvDLhSVuslt8lcOCatnmiutbhVqneN6xsFAAAAACdyaThy6623Oj4XdlWH3W7X559/LkkKDw9Xz549S3UOwzCK/RUZGSlJioyMdNQWL15cpt8TUJl9tvKANh02XwkytOcViqoZmn/wkrFSVp5bbyw+Uq8XXdwhAAAAADifS8ORdu3aqWvXrpKkyZMna9WqVfnGvPPOO9q+fbsk6YknnpCvr69p/+LFi2WxWGSxWHTvvfe6sl3Aqx05l6q3f9tpql1RI1gP97gi/+DTe6UNn5lrsQOl6k1d2CEAAAAAuIZLnzkiSRMmTFDnzp2Vmpqqvn37asSIEerZs6dSU1M1bdo0TZo0SZIUHR2tYcOGubodAAUwDEMvzdiilIxsU33MgKvkb/PJP2HRaMmelbttC5C6P+fiLgEAAADANVwejsTGxmr69OkaOHCgEhMTNWLEiHxjoqOjNWfOHNPrfwG4z9zNx7RwxwlT7c52DdWucUT+wQlx0pYfzLV2D0ph9VzYIQAAAAC4jktvq7no5ptv1qZNm/TUU08pOjpaQUFBCg8PV5s2bfTWW29p48aNioqKckcrAC5xPiVTI2dtNdVqhPrr+RuaFzxhwavmbf8wqctTLuoOAAAAAFzP5VeOXBQZGanx48dr/PjxpZrXo0cPGYZR/MAiHDhw4LLmA5XZm7/s0KmkdFNt5M0tFBbom3/w/mXSnvnmWpcnpKACrjABAAAAAA/hlitHAFRMfxw4o2/WHjLVejWvqZta1ck/2DCkBa+YayG1pPb/cmGHAAAAAOB6hCOAl0rPytYLP2421YL8fPRqv5ayWCz5J+ycKx3+w1zr/qzkF+zCLgEAAADA9QhHAC/14eJ92nMiyVQb1reZ6lcNyj/Ynp3/WSNVG0vX3OPCDgEAAADAPQhHAC+050SSPli0x1S7qn6Y7u3UqOAJcdOkkzvMtV4vSj4FPJcEAAAAADwM4QjgZQzD0IszNisj2+6o+VgteqN/K/lYC7idJjNNWjzGXKvdSmo5wMWdAgAAAIB7EI4AXmbmn0e1et8ZU+2BLo11Zb2wgies+1Q6H2+u9R4lWfnfBwAAAIDKgW83gBc5n5qp1+dsM9XqhQfqiT5NC56Qligte9tci+wiRfV2UYcAAAAA4H6EI4AXeee3nTqVlGGqjby5hYL8bAVPWPWBlHLaXOszUirobTYAAAAA4KEIRwAvsenwOX2x+qCp1iempvq2rF3whKST0qr/mGvNbpIatHNRhwAAAABQPghHAC+QbTf075+2yDByawG+Vo28uWXhk5a9LWXkedWvxSr1fsl1TQIAAABAOSEcAbzA12sOavOR86baY72aqkFEUMETzh6U/phsrl19p1QzxkUdAgAAAED5IRwBKrkTF9I09tedptoVNYI1pGuTwictHiPZM3O3ffykHs+7qEMAAAAAKF+EI0AlN2buDl1IyzLVXrv1SvnZCvnxP75NiptmrrV9QApv6KIOAQAAAKB8EY4AldjKvaf008Yjplr/2HrqdEX1wictfE1SnoeT+IVIXYe5pkEAAAAAqAAIR4BKKiPLrpdmbDHVQgNsGnFjEc8NObRa2jnXXOv0mBRcRJgCAAAAAB6OcASopD5etk97Tyabas9e10w1Qv0LnmAY0vxR5lpQdanjI65pEAAAAAAqCMIRoBKKP5Oi9xfuNtWuqh+mu9pHFj5p9+/SoVXmWrfhkn+oCzoEAAAAgIqDcASohF6ZvVVpmXbHtsUivX7rlfKxWgqeYLdLC14x18IaSm0Gu7BLAAAAAKgYCEeASua3rcc0f/sJU+2fHSJ1Vf3wwidt+UE6bn4+iXqOkGyF3IIDAAAAAJUI4QhQiaRlZuvVn7eZatVD/DWsb7PCJ2VlSIteN9dqxEhX3e6CDgEAAACg4iEcASqRD5fs1eGzqabaizfFKCzQt/BJGz6Tzh4w13q/LFl9nN8gAAAAAFRAhCNAJRF/JkUTF+811do1jlC/v9QtfFJ6krRkrLnWoL3U7AYXdAgAAAAAFRPhCFBJvD5nm9Kzch/CarVIr9zSUhZLIQ9hlaQ1E6Vk8/NJ1GdUzhNcAQAAAMBLEI4AlcDSXSf169bjpto/O0Qqpk6VwielnJFWvGeuNe0rRXZyQYcAAAAAUHERjgAeLiPLrlGzt5pqEcF+evraIh7CKknLx0vpieZa75ed3B0AAAAAVHyEI4CHm7pyv/adTDbVnr2umcKCingI6/kj0ppJ5lqr26TarVzQIQAAAABUbIQjgAc7kZimCfN3m2pX1w/T7W0aFD1x8RgpOz1322qTeo5wQYcAAAAAUPERjgAebMy8HUrOyDbVRt3SUlZrEQ9UPblL+vMrc631YCmiiQs6BAAAAICKj3AE8FDrDpzRTxuPmGq3ta6v2IZVi5648DXJyH2rjXyDpG7DXdAhAAAAAHgGwhHAA2XbDb080/wQ1tAAm569vnnRE4+sl7bPMtc6DJVCazm5QwAAAADwHIQjgAf6eu0hbUswv2nmqT7RqhHqX/TE+a+YtwOrSp0fd3J3AAAAAOBZCEcAD3M2OUPv/LbTVGtWK1SDOkYWPXHvQmn/EnOty9NSQJiTOwQAAAAAz0I4AniYcb/t1LmUTFNt1C0tZfMp4sfZbs9/1UiVelK7IS7oEAAAAAA8C+EI4EG2HDmvb9YeMtVuuqqOOl5RreiJ22dKCX+aaz2el3wDndsgAAAAAHggwhHAQxiGoVGztsowcmuBvj76940xRU/MzpQWvGauVWsqXX2X85sEAAAAAA9EOAJ4iJ83JWjdwbOm2qO9olQ3vJirP/78Sjqz11zr/ZLkY3NyhwAAAADgmQhHAA+QlpmtN+ftMNUaRgTp/i6Ni56YmSotftNcqxsrxdzi5A4BAAAAwHMRjgAe4OOl+3TkXKqpNuLGGAX4+hQ9cc1H0oUEc63PKMlicW6DAAAAAODBCEeACu54Ypr+u9h8W0yHJhG6rmWtoiemnpWWjzfXmvTI+QUAAAAAcCAcASq4t37ZodTMbMe2xSK9/NeWshR39ceK96S08+Za75Eu6BAAAAAAPBvhCFCBxcWf048bjphq/2jbQC3qVil64oVj0uqJ5lqLW6V61zi3QQAAAACoBAhHgArKMAy9+vM2Uy3E36anr21W/OQlY6WsPM8osfhIvV50cocAAAAAUDkQjgAV1OxNCVp/yat7H+sVpRqh/kVPPL1X2vCZuRY7UKre1MkdAgAAAEDlQDgCVEBpmdl6c+52U61hRJDu7dyo+MmLRkv2rNxtW4DU/TnnNggAAAAAlQjhCFABTVq6T0fPp5lqI26Mkb+tmFf3JsRJW34w19o9KIXVc3KHAAAAAFB5EI4AFcyx82maeMmrezs2qVb8q3slacGr5m3/MKnLU07sDgAAAAAqH8IRoIIZ+6v51b1Wi/TSX1sU/+re/cukPfPNtS5PSEERLugSAAAAACoPwhGgAvmzgFf33tG2YfGv7jUMacEr5lpILan9v5zcIQAAAABUPoQjQAVhGIZenb3VVAvxt2lY3+jiJ++cKx3+w1zr/qzkF+zEDgEAAACgciIcASqIWXFHteHQOVPtsV5Rqh5SzKt77dn5nzVStbF0zT3ObRAAAAAAKinCEaACSMvM1thfdppqkdVK+OreuGnSyR3mWq8XJR9f5zUIAAAAAJUY4QhQAUxZcUBHzqWaaiV6dW9mmrR4jLlWu5XUcoCTOwQAAACAyotwBChnZ5Iz9N9Fe0y19o0j1LdFCV7du+5T6Xy8udZ7lGTlRxsAAAAASopvUEA5e2/Bbl1IzzLVXrypBK/uTUuUlr1trkV2kaJ6O7lDAAAAAKjcCEeAcrT/VLK+XH3QVLv1L3XVqn5Y8ZNXfSClnDbX+oyUigtVAAAAAAAmhCNAOXpr3g5l2Q3Htp/Nqmeua1b8xKST0qr/mGvNbpIatHNyhwAAAABQ+RGOAOXkjwNn9MvWY6ba4M6NVL9qUPGTl70tZSTlblusUu+XnNwhAAAAAHgHwhGgHBiGodFztptqVYN8NbRHVPGTzx6U/phsrl19p1QzxokdAgAAAID3IBwBysGczQn6M/6cqfZ476YKC/QtfvLiMZI9M3fbx0/q8bxzGwQAAAAAL0I4ArhZela2xv6y01RrVC1Id7ePLH7y8W1S3DRzre0DUnhDJ3YIAAAAAN6FcARwsy9WHdShMymm2nPXN5efrQQ/jgtfk5T7AFf5hUhdhzm3QQAAAADwMoQjgBudT8nU+wv3mGqtI6vq+itrFz/50Gpp51xzrdNjUnB1J3YIAAAAAN6HcARwo/8s2q3zqZmm2ogbY2SxWIqeaBjS/FHmWlB1qeMjzm0QAAAAALwQ4QjgJvFnUvTZyoOm2k2t6qh1ZNXiJ+/+XTq0ylzrNlzyD3VihwAAAADgnQhHADcZ++tOZWTbHdu+PhY9e32z4ifa7dKCV8y1sIZSm8FO7hAAAAAAvBPhCOAGf8af0+y4o6baPzs0UmS14OInb/lBOr7FXOs5QrL5O7FDAAAAAPBehCOAixmGoTfmbDfVQgNseqxXVPGTszKkRa+bazVipKtud2KHAAAAAODdCEcAF1u444TWHjhjqj3WK0pVg/2Kn7zhM+nsAXOt98uS1cd5DQIAAACAlyMcAVwo225o7C87TbV64YEa1LFR8ZPTk6QlY821Bu2lZjc4r0EAAAAAAOEI4Eoz/zyinccvmGrD+kYrwLcEV36smSglnzDX+oySinvtLwAAAACgVAhHABdJz8rWO7/tMtWa1w5Vv7/UK35yyhlpxXvmWtO+UmQnJ3YIAAAAAJAIRwCX+Wr1IR05l2qqPXt9M/lYS3Dlx/LxUnqiudb7ZSd2BwAAAAC4iHAEcIELaZn6z6I9plrbRlXVs1nN4iefPyKtmWSutbpNqt3KiR0CAAAAAC4iHAFc4JNl+3UmOcNUe/6G5rKU5Hkhi8dI2em521ab1HOEkzsEAAAAAFxEOAI42amkdH2ybJ+p1iemllpHRhQ/+eQu6c+vzLXWg6WIJk7sEAAAAACQF+EI4GT/WbhHyRnZjm2rJedZIyWy8DXJsOdu+wZJ3YY7uUMAAAAAQF6EI4ATHTqdoq/WHDTVBlxTX9G1QouffGS9tH2WudZhqBRay4kdAgAAAAAuRTgCONH433cqM9twbPv5WPXUtdElmzz/FfN2YFWp8+NO7A4AAAAAUBDCEcBJth1N1My4o6baPztGql54YPGT9y6S9i8x17o8LQWEObFDAAAAAEBBCEcAJxn36w4ZuReNKNTfpkd6RhU/0W6X5o8y16rUk9oNcWp/AAAAAICCEY4ATrBm32kt2nnSVHuwWxNFBPsVP3n7TCnhT3Otx/OSbwmuOAEAAAAAXDbCEeAyGYahN3/ZYapVD/HX/V0bFz85O1Na8Jq5Vq2pdPVdTuwQAAAAAFAUwhHgMv227bg2Hjpnqj3RO0pBfrbiJ//5lXRmr7nW+yXJpwRzAQAAAABOQTgCXIZsu6Fxv+401SKrBekf7RoWPzkzVVr8prlWN1aKucWJHQIAAAAAikM4AlyGGRuPaM+JJFNtWN9m8vUpwY/W2knShQRzrc8oyWJxXoMAAAAAgGIRjgBllJlt17sLdplqLepU0V9b1Sl+cuo5adl4c61Jj5xfAAAAAAC3IhwByui7dYcVfybVVBt+XTNZrSW48mPFBCntnLnWe6TzmgMAAAAAlBjhCFAGaZnZen/hblPtmobh6tGsRvGTLxyTVk8011rcKtW7xnkNAgAAAABKjHAEKIOv1xxSwvk0U+2Zvs1kKcnzQpaMlbLyXHFi8ZF6vejkDgEAAAAAJUU4ApRSSkaW/rt4j6nW6Ypq6hRVvfjJp/dKGz4z12IHStWbOrFDAAAAAEBpEI4ApTR15QGdSsow1Yb1jS7Z5EVvSPas3G1bgNTjeSd2BwAAAAAoLcIRoBQS0zL10ZJ9plrPZjXUOjKi+MkJcdKW78219g9JVeo6sUMAAAAAQGkRjgCl8Mmy/TqfmmmqDevbrGSTF7xq3vYPkzo/6ZzGAAAAAABlRjgClNCZ5Ax9uny/qXbDlbV1Zb2w4ifvXybtmW+udXlCCirBFScAAAAAAJciHAFK6KOle5WUnvu8EItFeuraEjxrxDCkBa+YayG1pPb/cnKHAAAAAICyIBwBSuBEYpo+W3nAVOt3dV1F1wotfvLOudLhP8y17s9KfsHOaxAAAAAAUGaEI0AJ/HfxXqVl2h3bPlaLnuxTgqtG7Nn5nzVStbF0zT1O7hAAAAAAUFaEI0AxjpxL1ddrDplqt7Wur0bVS3DlR9w06eQOc63Xi5KPrxM7BAAAAABcDsIRoBjvL9itjOzcq0b8fKx6rHfT4idmpkmLx5hrtVtJLQc4uUMAAAAAwOUgHAGKcOBUsr5bf9hUu6t9Q9ULDyx+8rpPpfPx5lrvUZKVHzsAAAAAqEj4lgYUYcKC3cq2G47tAF+rhva4oviJaYnSsrfNtcguUlRvJ3cIAAAAALhchCNAIXYfv6AZfx4x1e7p2Eg1qwQUP3nVB1LKaXOtz8ic9/8CAAAAACoUwhGgEO8t3CMj96IRhfjb9K/uJbhqJOmktOo/5lqzm6QG7ZzbIAAAAADAKQhHgALsPn5BP286aqoN7txIVYP9ip+87G0pIyl322KVer/k5A4BAAAAAM5COAIU4NKrRkL9bbq/S+PiJ549KP0x2Vy7+k6pZoxzGwQAAAAAOA3hCHCJwq4aCQ8qwVUji8dI9szcbR8/qcfzTu4QAAAAAOBMhCPAJQq6auS+klw1cnybFDfNXGv7gBTe0LkNAgAAAACcinAEyKOgq0buLelVIwtfk5QnVfELkboOc26DAAAAAACnIxwB8ni/gDfUlOhZI4dWSzvnmmudHpOCqzu3QQAAAACA0xGOAP+z58QFzS7Ls0YMQ5o/ylwLqi51fMS5DQIAAAAAXIJwBPif9xaU8aqR3b9Lh1aZa92GS/6hzm0QAAAAAOAShCOALuOqEbtdWvCKuRbWUGoz2MkdAgAAAABchXAE0GVcNbLlB+n4FnOt5wjJ5u/cBgEAAAAALkM4Aq9X5qtGsjKkRa+bazVipKtud3KHAAAAAABXIhyB1yvzVSMbPpPOHjDXer8sWX2c2h8AAAAAwLUIR+DVynzVSHqStGSsudagvdTsBid3CAAAAABwNcIReLUyXzWyZqKUfMJc6zNKslic2h8AAAAAwPXcFo4cPHhQw4YNU/PmzRUcHKyIiAi1bdtW48aNU0pKymUdOyUlRT/++KMefvhhtW3bVlWrVpWvr6+qVaumjh07atSoUTp27JiTfieoLAq6auTeTiW4aiTljLTiPXOtaV8pspOTOwQAAAAAuIPFMPL+u7lrzJ49WwMHDlRiYmKB+6OjozVnzhxFRUWV+tibNm1S586dlZSUVOS4KlWqaNKkSbrjjjtKfY6SOHz4sBo0aCBJio+PV/369V1yHjjP499s1Ky43HAkxN+mZc/2VNXgYsKR316UVr5vrv1ruVS7lQu6BAAAAADk5Yrv3y6/cmTjxo264447lJiYqJCQEI0ePVorV67UggULNGTIEEnSrl27dNNNN+nChQulPn5iYqIjGOncubPGjBmj33//XRs2bNCvv/6qhx56SFarVYmJibr77rs1b948p/7+4Jn2nEgq8KqRYoOR80ekNZPMtVa3EYwAAAAAgAezufoETzzxhFJTU2Wz2fTbb7+pY8eOjn29evVS06ZN9eyzz2rXrl165513NGrUqFId32q16vbbb9fIkSPVokWLfPv79u2rG264Qf3791d2drYee+wx7d69WxaeDeHV/ruojM8aWTxGyk7P3bbapJ4jnN8gAAAAAMBtXHrlyNq1a7Vs2TJJ0v33328KRi4aNmyYYmJiJEkTJkxQZmZmqc7RqVMnTZ8+vcBg5KJ+/fppwIABkqS9e/dq48aNpToHKpdDp1M0M8581cg9nSKLv2rk5C7pz6/MtdaDpYgmTu4QAAAAAOBOLg1HZsyY4fg8ePDgghuwWjVo0CBJ0rlz57Ro0SKX9NKzZ0/H571797rkHPAME5fsVbY997KRQF8f3d+lBAHHwtckw5677RskdRvugg4BAAAAAO7k0nBk+fLlkqTg4GC1bt260HHdu3d3fF6xYoVLeklPz70VwsfHxyXnQMWXcD5V36+PN9Xubt9QEcVdNXJkvbR9lrnWYagUWsvJHQIAAAAA3M2l4cj27dslSVFRUbLZCn+8SfPmzfPNcbYlS5Y4Pl+8jQfe56Ml+5SZnXvViJ/NqiHdSnDVyPxXzNuBVaXOjzu5OwAAAABAeXDZA1nT0tJ06tQpSSr2tTpVq1ZVcHCwkpOTFR8fX+TYsoiLi9OcOXMkSa1atSpTOHL48OEi9yckJJSpN7jPyQvpmvbHIVPt9jb1VatKQNET9y6S9i8x17o8LQWEOblDAAAAAEB5cFk4kve1vCEhIcWOvxiOXHwtr7Okp6frgQceUHZ2tiRp9OjRZTrOxXcow3NNXr5faZm5zwyxWS16qNsVRU+y26X5o8y1KvWkdkOc3yAAAAAAoFy47LaatLQ0x2c/v2Ke5yDJ399fkpSamurUPh599FGtW7dOknTPPffo5ptvdurx4RnOpWToi1UHTLX+sfXUICKo6InbZ0oJf5prPZ6XfAOd2h8AAAAAoPy47MqRgIDcWxUyMjKKHX/xgamBgc770jlmzBh98sknkqS2bdvqgw8+KPOxirvdJyEhQe3atSvz8eFaU1ceUHJGtmPbapEe7lHMVSPZmdKC18y1ak2lq+9yQYcAAAAAgPLisnAkNDTU8bkkt8okJydLKtktOCXx0UcfacSIEZJyHvg6d+5cBQcHl/l4xT03BRXXhbRMTVlxwFS76aq6alKjmLX251fSmUte+9z7JcnHZT82AAAAAIBy4LLbagICAlStWjVJxT/M9OzZs45wxBnP9vjmm280dOhQSVJkZKR+//13Va9e/bKPC8/05epDOp+aaao90rOYq0YyU6XFb5prdWOlmFuc3B0AAAAAoLy59FW+LVq0kCTt2bNHWVlZhY7bsWOH4/PlvmZ31qxZGjRokOx2u+rUqaMFCxZw1YcXS83I1uTl+0y1vi1qqXntKkVPXDtJunDJG4j6jJIsFuc2CAAAAAAody4NR7p06SIp55aZ9evXFzpuyZLc16R27ty5zOdbsGCBbr/9dmVlZalatWr6/fffdcUVxVwhgEpt2h+HdCrJ/MybR3tFFT0p9Zy0bLy51qSn1KSHU3sDAAAAAFQMLg1Hbr31VsfnKVOmFDjGbrfr888/lySFh4erZ8+eZTrXypUr1a9fP6WnpyssLEy//vqrWrZsWaZjoXJIz8rWR0vMV410i66hq+qHFz1xxQQp7Zy51vtlp/YGAAAAAKg4XBqOtGvXTl27dpUkTZ48WatWrco35p133tH27dslSU888YR8fX1N+xcvXiyLxSKLxaJ77723wPP8+eefuummm5ScnKzg4GDNmTNHrVu3du5vBh7nxw1HdCwxzVR7rLirRi4ck1ZPNNda3CrVu8a5zQEAAAAAKgyXv3ZjwoQJ6ty5s1JTU9W3b1+NGDFCPXv2VGpqqqZNm6ZJkyZJkqKjozVs2LBSH3/v3r267rrrdO7cOUnS66+/rrCwMG3ZsqXQOTVr1lTNmjXL9PuBZ8jKtuu/i/eYau0aR6hto4iiJy4ZK2Wl5m5bfKReL7qgQwAAAABAReHycCQ2NlbTp0/XwIEDlZiY6Hi9bl7R0dGaM2eO6fW/JbVs2TKdOHHCsf3UU08VO2fkyJEaNWpUqc8FzzEr7qjiz6SaasVeNXJ6r7ThM3MtdqBUvamTuwMAAAAAVCQuva3moptvvlmbNm3SU089pejoaAUFBSk8PFxt2rTRW2+9pY0bNyoqqpgvrkAJ2e2GPlhkvmrk6gbh6hJVzOucF70h2fO8VckWIPV43gUdAgAAAAAqEothGEZ5N1EZHD58WA0aNJAkxcfH8/rgcjR3c4KGfrXBVPt4UBtd26JW4ZMS4qSPuplrnZ+Qrn3VBR0CAAAAAMrKFd+/3XLlCOAuhmFo4uK9plrz2qHq3byYZ8wsuCQE8Q+TOj/p3OYAAAAAABUS4QgqlZV7T2vzkfOm2tCeUbJaLYVP2r9M2jPfXOvyhBRUzMNbAQAAAACVAuEIKpVLrxppGBGkG6+sXfgEw5AWvGKuhdSS2v/LBd0BAAAAACoiwhFUGpsPn9fyPadMtQe7NZHNp4hlvnOudPgPc637s5JfsAs6BAAAAABURIQjqDQ+XGK+aqR6iL/+3rqIB/PYs/M/a6RqY+mae1zQHQAAAACgoiIcQaWw/1Sy5m5JMNUGd26kAF+fwifFTZNO7jDXer0o+fi6oEMAAAAAQEVFOIJKYdLSfcr7UuoQf5sGdogsfEJmmrR4jLlWu5XUcoBrGgQAAAAAVFiEI/B4JxLT9MP6w6ba3e0bKiywiCtA1n0qnY8313qPkqz8SAAAAACAt+GbIDze5BX7lZFtd2z7+Vh1X5fGhU9IS5SWvW2uRXaRonq7qEMAAAAAQEVGOAKPlpiWqa9XHzLV/ta6nmpVCSh80qoPpJTT5lqfkZLF4oIOAQAAAAAVHeEIPNqXqw/qQnqWY9tikYZ0bVL4hKST0qr/mGvNbpIatHNRhwAAAACAio5wBB4rLTNbny4/YKrdcGVtNakRUvikZW9LGUm52xar1Psl1zQIAAAAAPAIhCPwWD9sOKxTSemm2r+6X1H4hLMHpT8mm2tX3ynVjHFBdwAAAAAAT0E4Ao+UbTc0aek+U61zVDVdVT+88EmLx0j2zNxtHz+px/OuaRAAAAAA4DEIR+CR5m1J0MHTKabaw92jCp9wfJsUN81ca/uAFN7QBd0BAAAAADwJ4Qg8jmEYmrh4r6l2Zb0q6hxVrfBJC1+TZORu+4VKXYe5pkEAAAAAgEchHIHHWbb7lLYeTTTVHu4eJUthr+I9tEbaOddc6/SYFFzdRR0CAAAAADwJ4Qg8zodLzFeNNKoWpOuvrF3wYMOQ5o8y14KqSx2HuqY5AAAAAIDHIRyBR4mLP6eVe0+bag92u0I+1kKuGtn9u3RopbnWbbjkH+qiDgEAAAAAnoZwBB7l0jfU1Aj114Br6hU82G6XFrxiroU1lNoMdlF3AAAAAABPRDgCj3HodIrmbUkw1e7r3FgBvj4FT9jyg3R8i7nWc4Rk83dRhwAAAAAAT0Q4Ao/x6Yr9sud54Uywn4/ual/Iq3izMqRFr5trNVtIV93uugYBAAAAAB6JcAQe4VxKhr5dF2+q/aNdQ4UF+hY8YcNn0tkD5lrvlyVrIVeZAAAAAAC8FuEIPMJXaw4pJSPbse1jtWhw50YFD05PkpaMNdcatJeir3ddgwAAAAAAj0U4ggovPStbn608YKrd2KqO6lcNKnjCmolS8glzrc8oyVLIG20AAAAAAF6NcAQV3qw/j+rEhXRTbUjXxgUPTjkjrXjPXGvaV4rs5KLuAAAAAACejnAEFZphGPpk2X5TrX3jCF1VP7zgCcvHS+mJ5lrvl13THAAAAACgUiAcQYW2dPcp7Tx+wVR7sFuTggefPyKtmWSutbpNqt3KRd0BAAAAACoDwhFUaB8v3WfavqJGsHo2q1nw4CVvStl5br+x2qSe/3ZhdwAAAACAyoBwBBXWtqOJWr7nlKk2pGsTWa0FPFj15C5p45fmWuvBUkQhzyYBAAAAAOB/CEdQYX2yzHzVSPUQP90aW6/gwQtfkwx77rZvkNRtuAu7AwAAAABUFoQjqJASzqdqVtxRU21Qx0YK8PXJP/jIemn7LHOtw1AptJYLOwQAAAAAVBaEI6iQpq48oCy74dgO8LVqYIfIggfPf8W8HVhV6vy4C7sDAAAAAFQmhCOocJLSs/T1mkOm2t9b11dEsF/+wXsXSfuXmGtdnpYCwlzYIQAAAACgMiEcQYUz/Y94XUjLcmxbLNL9XQp4fa/dLs0fZa5VqSe1G+LaBgEAAAAAlQrhCCqUrGy7Pl2+31Tr26KWGlcPzj94+0wp4U9zrcfzkm+g6xoEAAAAAFQ6hCOoUOZuOaYj51JNtSFdC7hqJDtTWvCauVatqXT1XS7sDgAAAABQGRGOoMIwDEMfLzW/vje2YbhaR1bNP/jPr6Qze8213i9JPjYXdggAAAAAqIwIR1BhrNl/RpuPnDfVHuzaRBaLxTwwM1Va/Ka5VjdWirnFxR0CAAAAACojwhFUGJ8sMz9rpGFEkPq2rJ1/4NpJ0oUEc63PqJwntwIAAAAAUEqEI6gQDpxK1oIdx021+zo3ko/1ksAj9Zy0bLy51qSn1KSHS/sDAAAAAFRehCOoEKauPCDDyN0ODbDptjYN8g9cMUFKO2eu9X7Zpb0BAAAAACo3whGUu8S0TH23Lt5Uu7NdQwX7X/Jw1QvHpNUTzbUWt0r1rnFtgwAAAACASo1wBOXuu3WHlZyR7di2WqRBHSPzD1wyVsrK85pfi4/U60U3dAgAAAAAqMwIR1Cusu2Gpq40P4j1+itrq37VIPPA03ulDZ+Za7EDpepNXdwhAAAAAKCyIxxBuZq//bjiz6Saavd1bpx/4KI3JHtW7rYtQOrxvIu7AwAAAAB4A8IRlKtPl5uvGmlVL0ytI6uaByXESVu+N9faPyRVqevi7gAAAAAA3oBwBOVmy5HzWrP/jKl2X5dGslgueX3vglfN2/5hUucnXdscAAAAAMBrEI6g3ExZccC0XSPUXze1uuRqkP3LpD3zzbUuT0hBEa5tDgAAAADgNQhHUC5OXkjX7LijptqgDpHys+VZkoYhLXjFPDGkltT+X27oEAAAAADgLQhHUC6+WnNQGdl2x7afzaq72jc0D9o5Vzr8h7nW/VnJL9gNHQIAAAAAvAXhCNwuPStbX64+aKrd+pe6qhbin1uwZ+d/1kjVxtI197ihQwAAAACANyEcgdvNjkvQqaQMU23wpa/vjZsmndxhrvV6UfLxdXF3AAAAAABvQzgCtzIMI9/reztdUU0xdarkFjLTpMVjzBNrt5JaDnBDhwAAAAAAb0M4Ardas/+MtiUkmmr3XXrVyLpPpfPx5lrvUZKV5QoAAAAAcD6+bcKtpqwwXzUSWS1IvZrXzC2kJUrL3jZPiuwiRfV2Q3cAAAAAAG9EOAK3OXQ6Rb9tO26q3dupkaxWS25h1QdSymnzxD6jJItFAAAAAAC4AuEI3OazVQdkGLnbof423damQW4h6aS06j/mSc3/KjVo654GAQAAAABeiXAEbnEhLVPT/zA/R+T2tg0U4m/LLSx7W8pIyt22WHPeUAMAAAAAgAsRjsAtvl9/WEnpWY5tqyXnlhqHswelPyabJ119p1Qzxj0NAgAAAAC8FuEIXM5uN/TZygOm2rUtaqlBRFBuYfEYyZ6Zu+3jJ/V43j0NAgAAAAC8GuEIXG7p7pM6cDrFVBuc9/W9x7dJcdPMk9o+IIU3dEN3AAAAAABvRzgCl/t81UHTdvPaoWrfOCK3sPA1SXme1OoXKnUd5p7mAAAAAABej3AELnXwdLIW7Txhqg3q2EiWi6/mPbRG2jnXPKnTY1JwdTd1CAAAAADwdoQjcKkvVh00vb63SoBNt8bWzdkwDGn+KPOEoOpSx6Fu6w8AAAAAAMIRuExKRpa+XXfJ63vbNFCQ3/9e37v7d+nQSvOkbsMl/1A3dQgAAAAAAOEIXGjmn0eVmJb7+l6LRRrYITJnw26XFrxinhDWUGoz2I0dAgAAAABAOAIXMYz8r+/tEV1DjaoH52xs+UE6vsU8qecIyebvngYBAAAAAPgfwhG4xB8HzmrHsQum2qBOjXI+ZGVIi143T6jZQrrqdvc0BwAAAABAHoQjcInPVh0wbUdWC1L3pjVyNjZ8Jp0171fvlyWrj1t6AwAAAAAgL8IRON2x82n6dcsxU+2fHSJltVqk9CRpyVjzhAbtpejr3dghAAAAAAC5CEfgdF+vPaQse+77ewN9fXRb6wY5G2smSsknzBP6jMp5WisAAAAAAOWAcAROlZFl19drDplqt8bWU1iQr5RyRlrxnnlC075SZCc3dggAAAAAgBnhCJxq3pYEnUpKN9UGdfzf63uXj5fSE80Ter/sps4AAAAAACgY4Qic6tLX97ZrHKGYOlWk80ekNZPMg1vdJtVu5b7mAAAAAAAoAOEInGbz4fPacOicqXZPx0Y5H5a8KWXnuaLEapN6/tttvQEAAAAAUBjCETjN55e8vrd2lQD1bVlLOrlL2vileXDrwVJEY/c1BwAAAABAIQhH4BRnkzM0M+6oqXZ3+4by9bFKC1+TDHvuDt8gqdtwN3cIAAAAAEDBCEfgFNPXxSsjKzcA8fWx6B/tGkpH1kvbZ5kHdxgqhdZyc4cAAAAAABSMcASXLdtu6ItVB021m1rVUY1Qf2n+K+bBgVWlzo+7sTsAAAAAAIpGOILLtmD7cR05l2qqDerUSNq7SNq/xDy4y9NSQJj7mgMAAAAAoBiEI7hsn19y1UiremGKrR8mzR9lHlilntRuiPsaAwAAAACgBAhHcFn2nUzS8j2nTLVBHSNl2T5TSvjTPLjH85JvoPuaAwAAAACgBAhHcFm+XnPItB0e5Kubr6whLXjNPLBaU+nqu9zYGQAAAAAAJUM4gjJLy8zW9xsOm2q3ta6vgK3TpDN7zYN7vyT52NzYHQAAAAAAJUM4gjKbsylB51IyTbW7W9eUFr9pHlj3GinmFjd2BgAAAABAyRGOoMy+WmN+EGuXqOpqtPcr6UKCeWCfUZLF4r7GAAAAAAAoBcIRlMm2o4nacOicqXZPbLi0bLx5YJOeUpPubusLAAAAAIDSIhxBmVx61UjNUH/1OvONlHbOPLD3y+5rCgAAAACAMiAcQaklpWdpxsYjptr9VwfKZ82H5oEtbpXqXeO+xgAAAAAAKAPCEZTajI1HlJyR7di2WqSBGdOlrNTcQRYfqdeL5dAdAAAAAAClQziCUjEMQ1+uNt9S84+oLAVv+co8MHagVL2pGzsDAAAAAKBsCEdQKhsOndOOYxdMtSes30r2rNyCLUDq8bybOwMAAAAAoGwIR1AqX11y1UjP8GOqdfBn86D2D0lV6rqxKwAAAAAAyo5wBCV2NjlDP29OMNVeCfrePMg/TOr8pPuaAgAAAADgMhGOoMS+X39YGVl2x3Zn23Y1PLPSPKjLE1JQhJs7AwAAAACg7AhHUCJ2u6Gv1x7KUzH0esgP5kEhtaT2/3JrXwAAAAAAXC7CEZTIyr2ntf9UsmP7Wut6NU7bZh7U/VnJL9jNnQEAAAAAcHkIR1AiX63JfRCrVXb9O+A784CqjaVr7nFzVwAAAAAAXD7CERTreGKaftt23LHd37pcjezx5kG9XpR8fN3cGQAAAAAAl49wBMWa/ke8su2GJMlfGRrme8kbamq3kloOKIfOAAAAAAC4fIQjKFJWtl3f5HkQ690+C1TXcso8qPcoycpSAgAAAAB4Jr7RokiLdp5Uwvk0SVKIUvSIbYZ5QGQXKaq3+xsDAAAAAMBJCEdQpC9X5z6I9QHbXFWzXDAP6DNKsljc2xQAAAAAAE5EOIJCxZ9J0dLdJyVJ1XReD/jMNQ9o/lepQdty6AwAAAAAAOchHEGhvl0XLyPnOax61DZDIZa03J0Wa84bagAAAAAA8HCEIyhQVrZd367LeV1vfctJ3e0z3zzg6julmjHl0BkAAAAAAM5FOIICLd55UscT0yVJT9m+l58lO3enj5/U4/ly6gwAAAAAAOciHEGBpv2R8/reaEu8+luXm3e2fUAKb1gOXQEAAAAA4HyEI8jn2Pk0LdxxQpI03PatrBYjd6dfqNR1WDl1BgAAAACA8xGOIJ/v1sXLbkjXWHbpWp/15p2dHpOCq5dPYwAAAAAAuADhCEzsdkPT/oiXZOg532nmnUHVpY5Dy6UvAAAAAABchXAEJsv2nNKRc6nqYf1T7a07zDu7DZf8Q8unMQAAAAAAXIRwBCbT1h6SRXY9Z5tu3hHWUGozuHyaAgAAAADAhQhH4HDyQrp+33ZcN1tXKcZ6yLyz5wjJ5l8+jQEAAAAA4EKEI3D4YcNhWeyZGmb7zryjZgvpqtvLpykAAAAAAFyMcASSJMMwNP2PeN3hs0iR1hPmnb1flqw+5dMYAAAAAAAuRjgCSdLqfWd0/NRpPWH70byjQXsp+vryaQoAAAAAADdwWzhy8OBBDRs2TM2bN1dwcLAiIiLUtm1bjRs3TikpKU47z7x589S/f3/Vr19f/v7+ql+/vvr376958+Y57RyV0bQ/Dmmwzy+qYTlv3tFnlGSxlEtPAAAAAAC4g80dJ5k9e7YGDhyoxMRERy0lJUXr1q3TunXr9Mknn2jOnDmKiooq8znsdrsefPBBTZ482VQ/cuSIjhw5ohkzZuiBBx7QRx99JKuVC2byOpeSoVVbdmu+bbZ5R9O+UmSn8mkKAAAAAAA3cXlKsHHjRt1xxx1KTExUSEiIRo8erZUrV2rBggUaMmSIJGnXrl266aabdOHChTKf59///rcjGImNjdU333yjtWvX6ptvvlFsbKwk6ZNPPtGLL754+b+pSubHDUd0v2aoiiXVUTNkyXnWCAAAAAAAlZzFMAzDlSfo1q2bli1bJpvNpqVLl6pjx46m/ePGjdOzzz4rSRo5cqRGjRpV6nPs2rVLLVu2VFZWltq0aaOlS5cqMDDQsT8lJUXdu3fXunXrZLPZtH379su6SqUghw8fVoMGDSRJ8fHxql+/vlOP7yqGYeju8T9qSuJD8rdk5u5odbv0t4/LrzEAAAAAAArgiu/fLr1yZO3atVq2bJkk6f77788XjEjSsGHDFBMTI0maMGGCMjMz840pzrvvvqusrCxJ0vvvv28KRiQpKChI77//viQpKytL//d//1fqc1RWGw6e0a1np5qCEbvFJvUcUY5dAQAAAADgPi4NR2bMmOH4PHjw4IIbsFo1aNAgSdK5c+e0aNGiUp3DMAzNnDlTktS8eXN16NChwHEdOnRQs2bNJEkzZ86Uiy+YqfiObZZ++pdafdZct9uWmnZZ2gyWIhqXU2MAAAAAALiXS8OR5cuXS5KCg4PVunXrQsd1797d8XnFihWlOsf+/ft19OjRfMcp6jxHjhzRgQMHSnWeSmXz99KkHlLcN/IzMky7DEmWGjHl0hYAAAAAAOXBpeHI9u3bJUlRUVGy2Qp/MU7z5s3zzSmpbdu2FXgcZ5+n0ji2WfrpIcmeVeBuiyT98mzOOAAAAAAAvIDLXuWblpamU6dOSVKxD0epWrWqgoODlZycrPj4+FKd5/Dhw47PxZ3n4gNbJF3WeQqSkJBQquOVm1UfFBqMONizpFX/lfpPdE9PAAAAAACUI5eFI3lfyxsSElLs+IvhSFJSksvOExwc7Phc2vPkDVY8lt0ubZtZsrHbZkj9PpCsLn/bMwAAAAAA5cpl33zT0tIcn/38/Iod7+/vL0lKTU112XkunqMs56kUslKlzJSSjc1MyRkPAAAAAEAl57IrRwICAhyfMzIyihiZIz09XZLyvYbXmee5eI6ynKe423ASEhLUrl27Uh3T7WyBkm9QyQIS36Cc8QAAAAAAVHIuC0dCQ0Mdn0tyC0tycrKkkt2CU9bzXDxHWc5T3PNMPILVKrXoJ8V9U/zYFrdySw0AAAAAwCu47NtvQECAqlWrJqn4h5mePXvWEVyU9tkeeUOL4s6T9+qPSvEMkbLo+IhkLSYTs9qkjkPd0w8AAAAAAOXMpZcGtGjRQpK0Z88eZWUV/oaUHTt2OD7HxMSU6RyXHsfZ56k0areS+n9UeEBiteXsr93KvX0BAAAAAFBOXBqOdOnSRVLO7Szr168vdNySJUscnzt37lyqczRu3Fh169bNd5yCLF26VJJUr149NWrUqFTnqVRa/V16cLF09V05zxaRcv579V059VZ/L8/uAAAAAABwK5eGI7feeqvj85QpUwocY7fb9fnnn0uSwsPD1bNnz1Kdw2KxqF+/fpJyrgxZvXp1geNWr17tuHKkX79+slgspTpPpVO7ldR/ovTCEWnE0Zz/9p/IFSMAAAAAAK/j0nCkXbt26tq1qyRp8uTJWrVqVb4x77zzjrZv3y5JeuKJJ+Tr62vav3jxYlksFlksFt17770FnufJJ5+Uj4+PJOmxxx7L95re1NRUPfbYY5Ikm82mJ5988nJ+W5WL1Sr5BfPwVQAAAACA13L5N+IJEyYoMDBQWVlZ6tu3r8aMGaPVq1dr0aJFeuihh/Tss89KkqKjozVs2LAynSM6OlrDhw+XJK1bt06dO3fW9OnTtW7dOk2fPl2dO3fWunXrJEnDhw9X06ZNnfObAwAAAAAAHs9lr/K9KDY2VtOnT9fAgQOVmJioESNG5BsTHR2tOXPmmF7LW1qjR4/WiRMn9Omnn2rjxo36xz/+kW/M/fffr9dff73M5wAAAAAAAJWPW+6luPnmm7Vp0yY99dRTio6OVlBQkMLDw9WmTRu99dZb2rhxo6Kioi7rHFarVZMnT9acOXPUr18/1a1bV35+fqpbt6769eunuXPn6pNPPpGV20cAAAAAAEAeFsMwjPJuojI4fPiwGjRoIEmKj49X/fr1y7kjAAAAAAAqH1d8/+YyCgAAAAAA4NUIRwAAAAAAgFcjHAEAAAAAAF6NcAQAAAAAAHg1whEAAAAAAODVCEcAAAAAAIBXIxwBAAAAAABejXAEAAAAAAB4NcIRAAAAAADg1QhHAAAAAACAVyMcAQAAAAAAXo1wBAAAAAAAeDXCEQAAAAAA4NUIRwAAAAAAgFcjHAEAAAAAAF6NcAQAAAAAAHg1whEAAAAAAODVCEcAAAAAAIBXIxwBAAAAAABezVbeDVQWWVlZjs8JCQnl2AkAAAAAAJVX3u/ceb+LXw7CESc5efKk43O7du3KsRMAAAAAALzDyZMn1ahRo8s+DrfVAAAAAAAAr2YxDMMo7yYqg7S0NG3evFmSVKNGDdlsFf+inISEBMdVLmvXrlWdOnXKuSOg7FjPqGxY06hMWM+oTFjPqGw8cU1nZWU57t5o1aqVAgICLvuYFf8bvIcICAhQ27Zty7uNMqtTp47q169f3m0ATsF6RmXDmkZlwnpGZcJ6RmXjSWvaGbfS5MVtNQAAAAAAwKsRjgAAAAAAAK9GOAIAAAAAALwa4QgAAAAAAPBqhCMAAAAAAMCrEY4AAAAAAACvRjgCAAAAAAC8msUwDKO8mwAAAAAAACgvXDkCAAAAAAC8GuEIAAAAAADwaoQjAAAAAADAqxGOAAAAAAAAr0Y4AgAAAAAAvBrhCAAAAAAA8GqEIwAAAAAAwKsRjgAAAAAAAK9GOAIAAAAAALwa4QgAAAAAAPBqhCMV3MGDBzVs2DA1b95cwcHBioiIUNu2bTVu3DilpKQ47Tzz5s1T//79Vb9+ffn7+6t+/frq37+/5s2bV+JjZGVl6cMPP1TXrl1Vo0YNBQYG6oorrtBDDz2krVu3Oq1XeC5PWM/Hjx/XJ598orvuukstWrRQSEiI/Pz8VKdOHV1//fWaNGmSUlNTndYrPJsnrOnCbNq0Sb6+vrJYLLJYLLr33nud1i88k6et58zMTE2dOlU33XSTGjZsKH9/f1WvXl2tWrXSAw88oO+++85pPcPzeNJ6XrVqle677z41a9ZMISEh8vf3V506dXTdddfp448/VkZGhtP6hedy5Zq22+3atm2bpk6dqqFDh6pt27by9/d3/B1h8eLFpTpeSkqKxo4dq7Zt2yoiIkLBwcFq3ry5hg0bpoMHD15Wry5loMKaNWuWUaVKFUNSgb+io6ON3bt3X9Y5srOzjfvvv7/Qc0gyHnjgASM7O7vI45w8edJo27Ztocfw9/c3Pv7448vqFZ7NE9bzpEmTDB8fnyLnSzKaNm1qxMXFXVav8HyesKaLOm67du1Mx7nnnnsuq1d4Nk9bz3FxccaVV15Z5LHCwsIuq194Lk9Zz3a73XjssceK/XtHy5YtjYMHD15Wv/Bsrl7TU6dOLXINLlq0qMTH2r17t9G0adNCj1WlShVj9uzZZe7VlQhHKqgNGzYYgYGBhiQjJCTEGD16tLFy5UpjwYIFxpAhQ0w/CImJiWU+z/PPP+84VmxsrPHNN98Ya9euNb755hsjNjbWse+FF14o9BhZWVlGly5dHGMHDBhgzJs3z1izZo3x3nvvGTVr1jQkGVar1Zg7d26Ze4Xn8pT1/NprrxmSDD8/P2PAgAHGhx9+aCxZssTYsGGD8d133xl9+/Z1HKNGjRpGfHx8mXuFZ/OUNV2YCRMmGJIc/38mHPFunrae4+LijIiICEOSERAQYDz66KPGrFmzjPXr1xurVq0yPv/8c+Ouu+4yGjRoUOZe4bk8aT2/8cYbjnGhoaHGyJEjjd9++81YuXKlMWXKFFMAeOWVVxqZmZll7heeyx1resqUKY7j+Pr6Gtdcc43RqlWrUocjiYmJRnR0tGPekCFDjAULFhgrV640Ro8ebYSEhBiSjKCgIGPjxo1l6tWVCEcqqK5duxqSDJvNZqxcuTLf/rFjxzoW3ciRI8t0jp07dxo2m82QZLRp08ZISUkx7U9OTjbatGnj6KOwNHLy5MmOXoYOHZpv/+7dux1JZ1RUFP9j90Kesp7Hjx9vPPfcc8aJEycKPc/TTz/t6HXw4MFl6hWez1PWdEHi4+ON0NBQw2KxGJ999hnhCDxqPaempjr+4t2wYUNj165dhZ4zPT29TL3Cs3nKes7IyDDCw8Md/yhT0BfFzMxMo3379o5+v/vuuzL1C8/mjjV98R+1V61aZaSmphqGYRgjR44sdTjy0ksvOeaMHTs23/4VK1Y4fna6d+9epl5diXCkAlqzZo1jUT300EMFjsnOzjZiYmIMSUZ4eLiRkZFR6vM8/PDDjvOsWrWqwDGrVq0qMvgwDMPRR0REhJGcnFzgmDFjxjiO8+2335a6V3guT1vPxUlPTzfq1KljSDmXbJf2dgZ4Pk9f07fccosj3Nu/fz/hiJfztPV88Qo/q9VqrF69utR9oHLzpPUcFxfn2D9gwIBCzzVz5kzHuKeffrrUvcKzuWtNF6S04UhGRoYRFhZmSDJiYmIK/TvyQw895Dju2rVrndKrs/BA1gpoxowZjs+DBw8ucIzVatWgQYMkSefOndOiRYtKdQ7DMDRz5kxJUvPmzdWhQ4cCx3Xo0EHNmjWTJM2cOVOGYZj279q1S9u3b5ck3X777QoKCirwOHkf9PfTTz+Vqld4Nk9azyXh5+enzp07S5LOnz+v06dPl/oY8GyevKa///57zZo1S9WqVdO4ceNK1RMqJ09az9nZ2frwww8lSX369FH79u1L1QcqP09az3kfstqkSZNCz3fFFVcUOAfewR1r2lkWLVqk8+fPS5LuueceWa0FRw0V+Xsh4UgFtHz5cklScHCwWrduXei47t27Oz6vWLGiVOfYv3+/jh49mu84RZ3nyJEjOnDgQIG9Fnec2rVrKzo6uky9wrN50nouqfT0dMdnHx+fMh0DnstT1/T58+f1+OOPS5LGjh2ratWqlaonVE6etJ5XrlypI0eOSJJuueUWRz0tLU179+7VkSNHlJ2dXareULl40npu2rSpLBaLJGnfvn2FHmPv3r2OzxfDFngPd6xpZynp98I2bdo4/kG9on0vJBypgC5eiREVFSWbzVbouObNm+ebU1Lbtm0r8DilPU9ZjhMfH6/k5OQS9wrP5knruSQyMzO1atUqSVKtWrUUERFR6mPAs3nqmn7uueeUkJCgrl27FvqvT/A+nrSeV69e7fjcqlUr7d69W3/7299UpUoVRUVFqX79+qpWrZoGDRpk+kIJ7+FJ6zksLEx33nmnJOnnn3/Wpk2b8s3PysrSmDFj8o2H93DHmnaWkv5s2Gw2RUVFSSq/XgtDOFLBpKWl6dSpU5Kk+vXrFzm2atWqCg4OlpQTOJTG4cOHHZ+LO0+DBg0cny89T1mOYxiGaR4qL09bzyUxadIkx+/ptttuK/V8eDZPXdMrVqzQpEmT5Ovrq4kTJzr+tRLezdPWc96/eO/YsUOxsbH68ccflZmZ6aifP39eX3zxhWJjYzV//vxS9QnP5mnrWZLGjx+va665RhkZGeratateffVVzZ8/X6tXr9Znn32mNm3aaPXq1QoKCtLnn3/OFX9exl1r2lku/mwEBwcrPDy8yLEXfzZOnjxpuiK7vBGOVDAXLlxwfA4JCSl2/MUfgqSkJJed5+I5CjqPs46DysnT1nNx9u3bp3//+9+O87zwwgulmg/P54lrOiMjQw8++KAMw9DTTz+tli1blqoXVF6etp7PnDnj+PzEE08oOTlZTz31lHbv3q309HTt3btXw4cPl8Vi0YULF3Tbbbfp0KFDpeoVnsvT1rOUcwXqsmXL9O677yowMFAjR47Utddeq44dO+ree+/Vpk2b9MADD2j9+vWmW8ngHdy1pp3lYr+l6VWqWN8LCUcqmLS0NMdnPz+/Ysf7+/tLklJTU112novnKOg8zjoOKidPW89FSUlJ0YABAxwPmnr//fdVt27dUvUJz+eJa/rNN9/Utm3b1KhRI7388sul6gOVm6et57y35KalpenVV1/V+PHjFRUVJT8/PzVp0kRjx47V6NGjJeU8mPDiLQmo/DxtPV+0cOFCffnllzp+/Hi+fRcf/jp16lQexuqF3LWmneViv6XpVapY3wsJRyqYgIAAx+eS/E/w4mVIgYGBLjtP3kudLj2Ps46DysnT1nNhsrKydNtttykuLk6S9PDDD5uetA3v4WlreufOnXrjjTck5QR6hb1RDN7J09Zz3uNUr15dzz33XIHHGD58uGrXri1J+vbbb8v0ZjJ4Hk9bz5I0YcIE3XLLLVq3bp26deum33//XefPn1d6erq2bdumZ555RmfOnNFbb72lXr16Vah/YYfruWtNO8vFfkvTq1SxvhcSjlQwoaGhjs8l+R/gxX9FKcnlS2U9T95/qbn0PM46DionT1vPBTEMQ/fee6/mzp0rKeeV1f/5z39K1R8qD09a04Zh6KGHHlJ6err69++vv/71r6XqAZWfJ63nS4/To0ePQv910mazqXfv3pJybsUp6k0gqDw8bT1v2rRJTz/9tAzDUJ8+fbRw4UL16dNHVapUkZ+fn2JiYjRu3DhNmjRJUs6zo0aOHFmqXuHZ3LWmneViv6XpVapY3wsJRyqYgIAAx8OWinto6dmzZx0LK+8Dn0oi70N9ijtP3of6XHqeshzHYrEU+1AhVA6etp4L8sgjj+irr76SJN1www368ssvC31vOyo/T1rTq1ev1pIlSyRJnTp10rRp0/L9mj17tmP8/v37HfUtW7aUql94Jk9az5duF9dD3v0nT54sUZ/wbJ62nqdMmSK73S5JeuWVV+Tj41PgMe677z41bdpUkjR16lSuhPIi7lrTznLxZyM5OVnnzp0rcuzFn40aNWqYbrEpb/wNvwJq0aKFJGnPnj3KysoqdNyOHTscn2NiYsp0jkuPU9rzlOU4DRo0MD2EB5WbJ63nSz333HOaOHGiJKlbt2764Ycf5OvrW6reUPl4yprOe8nq8OHDdeedd+b79fjjjzvGLF261FH//vvvS9UvPJenrGdJpocJZ2dnF3mcvPuLev0lKhdPWs95X2F6zTXXFHmci/vPnDmjEydOlLhXeD53rGlnKenPRlZWluN16+XVa2EIRyqgLl26SMpJ3davX1/ouIv/IihJnTt3LtU5Gjdu7HiYZN7jFGTp0qWSpHr16qlRo0YF9lrccY4dO6Zdu3aVqVd4Nk9az3m9/vrrGjt2rCSpbdu2+vnnnyvUPZEoP566poGCeNJ67tatm+NzcbfKXPyL98VjwTt40nrOG9oV9aVXkul11YR93sUda9pZSvq9cN26dY6rXCrc90IDFc6aNWsMSYYk46GHHipwTHZ2thETE2NIMsLDw42MjIxSn+fhhx92nGfVqlUFjlm1apVjzNChQwscc7GPiIgIIzk5ucAxY8aMcRzn22+/LXWv8Fyetp4NwzDeffddx7hWrVoZp0+fLnU/qLw8cU0XZv/+/Y7599xzT6nnw/N52nqOjY01JBnBwcHGuXPnChyTmJhoVKlSxZBkXHHFFaXuFZ7Lk9bzo48+6tg/d+7cQs+VkZFh1KlTx5BkhIWFGXa7vdT9wnO5a00XZOTIkY5zL1q0qNjx6enpRlhYmCHJiImJKXStPvTQQ47jrl271im9OgvhSAXVtWtXQ5Jhs9mMlStX5ts/duxYx6IaOXJkvv2LFi0q9i+8O3fuNHx8fAxJRps2bYyUlBTT/pSUFKNNmzaOPnbt2lXgcSZPnuw41yOPPJJv/549exx/SYmKijIyMzOL/wNApeJJ6/nTTz81LBaLIcmIjo42jh07VurfLyo/T1rTRSEcgWF41nqePn2641z33ntvgWMeeOABx5hx48YV/ZtHpeMp6/nXX391nOeqq64yzp8/X+C5XnjhBce4O++8s/g/AFQ67ljTBSltOGIYhvHSSy855owdOzbf/pUrVxo2m82QZHTv3r3EvbgL4UgFtWHDBiMwMNCQZISEhBhvvPGGsWrVKmPhwoXGgw8+6Fh00dHRRmJiYr75Jf0heP755x3jYmNjjWnTphl//PGHMW3aNMe/zkgyXnjhhUKPkZWVZXTu3Nkx9m9/+5vxyy+/GGvWrDHef/99o2bNmoYkw2q1FpmMo/LylPX8008/Of6yU6VKFWPevHnG5s2bi/yVlJTkrD8meBBPWdPFIRyBYXjeer7xxhsdY6+77jpjxowZxoYNG4yZM2ea9sXGxhqpqamX+8cDD+NJ67lXr16OcY0bNzbeffddY+XKlcaGDRuMb7/91rj++usd+4ODg40dO3Y4448IHsZda3rKlCmmX/369XPMe+6550z7li1bVuAxEhMTjejoaMe8Bx980Fi4cKGxatUq44033jBCQkIMSUZgYKCxceNGJ/0JOQ/hSAU2a9YsxxUXBf2Kjo42du/eXeDckv4QZGdnG/fdd1+h55Bk3H///UZ2dnaRvZ48edJo27Ztocfw9/c3Pv7448v544CH84T1fM899xQ5t6BfJU3SUfl4wpouDuEILvKk9XzhwgWjb9++RR6nbdu2RkJCwuX8kcCDecp6PnPmjNGzZ89i/65Ro0YN4/fff7/cPxZ4MHes6dL8/beo4+zevdto2rRpoXOrVKlizJ49+zL/RFyDcKSCO3DggPHUU08Z0dHRRlBQkBEeHm60adPGeOuttwp9vodhlP7yqTlz5hj9+vUz6tata/j5+Rl169Y1+vXrV6orPTIzM43//ve/RpcuXYxq1aoZAQEBRpMmTYwhQ4YYW7ZsKfFxUHlV9PVMOILSquhrujiEI8jLk9az3W43vvnmG+P66683ateubfj6+ho1atQwrr32WuPTTz81srKySnwsVE6esp7tdrsxY8YM4/bbbzcaN25sBAYGOtZzjx49jLfeeotnn8EwDNevaWeFI4ZhGElJScZbb71ltGnTxggPDzeCgoKMZs2aGU899ZRx4MCBMv4JuJ7FMHhZNgAAAAAA8F68yhcAAAAAAHg1whEAAAAAAODVCEcAAAAAAIBXIxwBAAAAAABejXAEAAAAAAB4NcIRAAAAAADg1QhHAAAAAACAVyMcAQAAAAAAXo1wBAAAAAAAeDXCEQAAAAAA4NUIRwAAAAAAgFcjHAEAAAAAAF6NcAQAAAAAAHg1whEAAAAAAODVCEcAAAAAAIBXIxwBAAAAAABejXAEAAAAAAB4NcIRAADgUqNGjZLFYpHFYinvVsrFwoULZbFYVKtWLaWkpDjtuDfddJMsFotGjhzptGMCAOCtCEcAAABcxG6368knn5QkPfPMMwoKCnLasV966SVJ0ttvv63Dhw877bgAAHgjwhEAAFBqU6dOdVwNcuDAgfJup8KaNm2aNm/erOrVq2vo0KFOPXaHDh107bXXKiUlRW+88YZTjw0AgLchHAEAAC41atQoGYYhwzDKuxW3Gz16tCTpoYceUnBwsNOPP2zYMEnS5MmTlZCQ4PTjAwDgLQhHAAAAXOD333/Xtm3bJEkDBw50yTn69OmjmjVrKiMjQx999JFLzgEAgDcgHAEAAHCByZMnS5KuueYaNW/e3CXn8PHx0R133CFJmjJlildenQMAgDMQjgAAgBJbvHixLBaLBg8e7Kg1btzY8fyRi78WL17s2F/c22oaNWoki8Wie++9V5K0YcMG3X333WrQoIECAwMVFRWlp59+WqdOnTLNW7lypW677TY1bNhQAQEBuuKKK/Tcc8/pwoULxf4+srOz9dlnn+mvf/2r6tatK39/f1WrVk1dunTR+PHjlZqaWvo/nDzS0tI0a9YsSdLf/va3YnuZOnWqrrvuOtWuXVt+fn4KCwtT06ZN1bt3b73xxhuOK1AKcvH4hw4d0ooVKy6rbwAAvJWtvBsAAAC46IsvvtADDzygjIwMR23v3r36v//7P82ZM0dLlixR7dq19fbbb+vZZ581XSmxb98+jR07VvPnz9eSJUsUEhJS4DkOHTqkW265RXFxcab6mTNntGLFCq1YsUITJ07UnDlzFB0dXabfx5o1axwBS4cOHQodl5SUpBtvvFHLli0z1TMzM5WYmKg9e/Zo4cKF2rBhg77//vsCj9G2bVv5+PgoOztb8+bNU5cuXcrUMwAA3oxwBAAAlFjbtm21efNmzZw5Uy+++KIk6ddff1XdunVN4xo3blzqY8fFxembb75RVFSUnnnmGbVq1UoXLlzQp59+qi+//FK7du3SM888owEDBmj48OHq0KGDHnvsMTVr1kynTp3Se++9p7lz52rDhg16/fXX9eabb+Y7x+nTp9WlSxfFx8fL399fQ4YMUffu3dWoUSMlJSXpt99+04QJE7Rnzx7dcMMN2rBhg8LCwkr9e7kYdlgsFrVu3brQcaNGjXKM/etf/6q7777bcSXMiRMntHHjRv3888+FXnUjSUFBQWrZsqU2bdqkJUuWlLpXAAAgWQxuTgUAAKU0depUx601+/fvV6NGjQodO2rUKL3yyiuSVOAzMRo1aqSDBw9Kkjp16qTff/9dQUFBpjG33Xabvv/+e/n4+CgsLEw9e/bU9OnT5ePj4xiTnZ2tLl26aPXq1apWrZqOHTsmm83870B33323vv76a0VGRmrRokUFhjgbN25U165dlZycrBEjRjjeOFMaN954o+bNm6crrrhCe/bsKXRcw4YNFR8fr7///e/67rvvCh135swZRUREFLr/vvvu05QpUxQUFKSkpKQiwxQAAJAfzxwBAAAVgsVi0SeffJIvGJGkoUOHSsoJQNLS0jRp0iRTMCLlPJz0wQcflJRzhcilz+k4cOCApk+fLkn6z3/+U+jVLbGxsXrkkUck5YRAZXH48GFJUs2aNYscd+zYMUlS165dixxXVDCS9zwpKSmOYwIAgJIjHAEAABXCVVddpZiYmAL3XX311Y7P1157baFhQd5x+/btM+2bM2eOsrOzFRQUpBtuuKHIXrp16yZJOnr0qA4dOlSi/vM6efKkJKlq1apFjqtTp44kafr06UpJSSn1eS7K++dBOAIAQOkRjgAAgAqhqIefhoeHl3rcpW+tWbdunaScqytsNlu+N+zk/fXXv/7VMa8sYcOZM2ckFR+O3HPPPZJy3rzTuHFjPfroo/rpp58c4UpJ5T1PcnJyKbsFAACEIwAAoEIo6Haai6xWa6nHZWdnm/adOHGiTH2V5YqOgIAASSr2lcAvvfSS7rvvPlksFp04cUIffPCBBgwYoJo1a+rKK6/UyJEjdfz48WLPl/c8vr6+pe4XAABvx9tqAACAV7gYllSvXl2LFi0q8byyvHmnRo0aSkxMdFxBUhhfX19NnjxZw4YN0zfffKOFCxdq3bp1ysjI0NatW7V161aNHz9eX375pfr161focfKeJ+/VMwAAoGQIRwAAgFeoVq2apJzbbWJiYvI90NWZatSoob179+rs2bMlGt+iRQu99tpreu2115SWlqbly5fr66+/1ueff66kpCTdeeed2rt3r+MZJZfKe54GDRo45fcAAIA34bYaAABQap74qtjY2FhJUnp6uuP5I67SqlUrSdLevXtlt9tLNTcgIEB9+vTRp59+qnHjxknKuW3m559/LnTOrl27JOVc5VLUbUcAAKBghCMAAKDULj5TQ8oJGzzBzTff7Ah13n33XZee6+KreZOSkrR9+/YyH6d3796Oz6dOnSp03MWwp3379mU+FwAA3oxwBAAAlFre2zv27t1bjp2UXLNmzXTbbbdJkqZNm6bx48cXOX7//v365ptvynSui+GIJK1du7bAMWfOnNHs2bNlGEahx/ntt98cnwt79sm+ffscwUnfvn3L0i4AAF6PZ44AAIBSi42NVUBAgNLS0vTSSy/J19dXkZGRjrfF1KtXT4GBgeXcZX4TJ07UunXrtG/fPg0bNkwzZ87UoEGD1LJlS/n7++v06dOKi4vTL7/8ooULF6p///668847S32eRo0a6aqrrtKmTZu0YMECDR48ON+YxMRE3XLLLWrUqJEGDBig9u3bKzIyUjabTQkJCZo9e7Y++eQTSTl/nnlfL5zXggULJEk2m63QMQAAoGiEIwAAoNRCQ0P1+OOPa+zYsdqwYUO+KxYWLVqkHj16lE9zRYiIiNCKFSt0++23a9myZVq6dKmWLl1a6PgqVaqU+VxDhgzRY489ppkzZyolJaXQZ4EcOHCgyKtY6tSpo5kzZyokJKTA/V9//bUk6brrrlONGjXK3C8AAN6M22oAAECZvPnmm/r444/VtWtXRUREuPTtL85Uu3ZtLV26VD///LPuvvtuNWnSREFBQfL19VWNGjXUqVMnDRs2TEuWLNGnn35a5vMMHDhQgYGBSkpK0qxZs/Ltj4yM1Nq1azVq1Cj17dtXzZo1U3h4uGw2m6pXr65u3bpp3Lhx2rFjh1q3bl3gOY4cOeIId4YOHVrmXgEA8HYWo6gbXQEAAFBmQ4cO1cSJE9WnTx/9/vvvTj/+66+/rpdeekkxMTHaunWrR75FCACAioBwBAAAwEWOHTumqKgoJScna9WqVerQoYPTjp2UlKRGjRrp9OnTmjZtmu644w6nHRsAAG/DbTUAAAAuUrt2bT311FOSpFdffdWpx/7ggw90+vRptWvXTrfffrtTjw0AgLfhgawAAAAu9Oyzz8pmy/krV1EPZi2t0NBQjRw5UgMGDOB2GgAALhO31QAAAAAAAK/GbTUAAAAAAMCrEY4AAAAAAACvRjgCAAAAAAC8GuEIAAAAAADwaoQjAAAAAADAqxGOAAAAAAAAr0Y4AgAAAAAAvBrhCAAAAAAA8GqEIwAAAAAAwKsRjgAAAAAAAK9GOAIAAAAAALwa4QgAAAAAAPBqhCMAAAAAAMCrEY4AAAAAAACvRjgCAAAAAAC8GuEIAAAAAADwaoQjAAAAAADAqxGOAAAAAAAAr0Y4AgAAAAAAvBrhCAAAAAAA8Gr/D/ujdip5D9rcAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -122,6 +126,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "17955fa7", "metadata": {}, @@ -131,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "id": "654c2948", "metadata": {}, "outputs": [], @@ -182,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "id": "80836738", "metadata": {}, "outputs": [], @@ -196,6 +201,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "30567aaa", "metadata": {}, @@ -205,13 +211,13 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "id": "39e9b769", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABC0AAAM9CAYAAAC4/YkeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AAB1DElEQVR4nO39e3ycdZ03/r9nMkmTnilt6SGBtkAphdrKoYqUBVTwLioH0XpaBBfUn3pze8DV1b1V1FvXU8V13dXvCivKqlhdFDl0DxyloAsKrZWCHFpK0qa0pYWekuYw8/uDbeykSTpJ55qZJM/n49HHY+Yzn2uu93CRdq5XPodULpfLBQAAAECFSZe7AAAAAICeCC0AAACAiiS0AAAAACqS0AIAAACoSEILAAAAoCIJLQAAAICKJLQAAAAAKpLQAgAAAKhIQgsAAACgIgktAAAAgIoktAAAAAAqktACAAAAqEhCCwAAAKAiCS0AAACAiiS0AAAAACqS0AIAAACoSEILAAAAoCIJLQAAAICKJLQAAAAAKlKm3AUkqbW1NVavXh0REZMmTYpMZkh/XAAAACiLjo6O2LJlS0REzJs3L2pra4vyviW5i29ra4sbbrghfvazn8WqVati27ZtUV1dHdOnT4/TTz893vve98YrX/nKop939erVsXDhwqK/LwAAANCzBx98ME499dSivFfioUVjY2O8/vWv7xrxsE9bW1s88cQT8cQTT8T3v//9+MhHPhJLly6NVCqVdEkAAADAIJBoaNHR0ZEXWLzsZS+Lj370o3HcccfFzp07Y8WKFbF06dLYvXt3XHPNNTF16tT467/+66Kdf9KkSV2PH3zwwZg6dWrR3hsAAAB4SXNzc9dMh/3vxQ9VKpfL5Yr2bt3827/9W7z5zW+OiIjTTjst7rvvvqiqqsrr8/vf/z5OO+20aG9vj8MOOyw2b95ctLUnmpqaoqGhISJeGvFRX19flPcFAAAA/iyp++9Edw+5//77ux5/8pOfPCCwiIg4+eST4w1veENERGzfvj0ef/zxJEsCAAAABolEQ4u2traux7Nmzeq139FHH931eO/evUmWBAAAAAwSiYYWs2fP7nq8du3aXvs9/fTTERGRSqXi2GOPTbIkAAAAYJBINLR4+9vfHmPHjo2IiK985SvR2dl5QJ9HHnkkbrvttoiIeNvb3tbVHwAAABjeEt09ZNKkSXH99dfHO9/5zrj//vvj1FNPjQ9/+MMxe/bs2LVrV9x///2xdOnSaGtriwULFsQ3vvGNfr1/U1NTn683NzcfSvkAAABAGSW6e8g+a9asiW984xvxL//yL9H9dEcccUR84hOfiPe+970xatSofr1vKpUquK/dQwAAACAZg3L3kIiI9vb2+PGPfxy33HLLAYFFRMRzzz0XP/nJT+Kee+5JuhQAAABgEEl0esju3bvjvPPOi1//+tdRVVUVH//4x+Pd7353zJo1K1pbW+O///u/4/Of/3ysWLEi3vjGN8Y111wTH/rQhwp+/8bGxj5fb25ujoULFx7qxwAAAADKINHpIR/72Mdi6dKlERFx/fXXx6WXXnpAn46Ojjj33HPj7rvvjnQ6HY888ki87GUvK8r5kxqeAgAAAPzZoJseksvl4vvf/35EvLT1aU+BRUREJpOJL3zhCxERkc1mu44BAAAAhrfEQovnnnsutm3bFhERL3/5y/vse/LJJ3c9fvzxx5MqCQAAABhEEgstMpk/L5fR0dHRZ9/29vYejwMAAACGr8RCiwkTJsTYsWMjIuI3v/lNn8HFvffe2/V45syZSZUEAAAADCKJhRbpdDpe//rXR0TExo0b44tf/GKP/bZv3x6f+MQnup6/4Q1vSKokAAAAYBBJdC7GZz7zmbj55ptjz549cfXVV8fvf//7uPTSS7u2PP3tb38b3/zmN+PZZ5+NiIjXvOY1ce655yZZEgAAADBIJBpazJkzJ26++eZ4+9vfHlu3bo1bbrklbrnllh77vvrVr46f/exnSZYDAAAADCKJr3r52te+Nh5//PG47rrrYvny5fHoo4/GCy+8EJlMJqZMmRKnnnpqvOMd74jzzz8/UqlU0uUAAAAAg0Qql8vlyl1EUpqamqKhoSEiIhobG6O+vr7MFQEAAMDQk9T9d2ILcQIAAAAcCqEFAAAAUJGEFgAAAEBFEloAAAAAFUloAQAAAFQkoQUAAABQkYQWAAAAQEUSWgAAADCkZLO52NPWEdlsLpH+pTjHQGoaijLlLgAAAACKYc3GHXHtirWxfPWmaGnvjLrqqlg8b0pcsWhWzJ029pD7l+IcA6lpKEvlcrkhG9s0NTVFQ0NDREQ0NjZGfX19mSsCAAAgCTev3BBXLVsVHT2MTMikU7F0yfy4YMH0AfcvxTkGUlOlSOr+20gLAAAABrU1G3f0erMfEdGRzcVHl62KsbXVcczk0fHU5l3x0WWrorPA/hHR72OS6H/VslVx7OQxw2rEhZEWAAAADGofXbYybnp4Q7nLKImLT6qPpUvml7uMAyR1/20hTgAAAAatbDYXy1dvKncZJXP76uZhtTin0AIAAIBBq7WjM1raO8tdRsm0tHdGa8fw+bxCCwAAAAat2kxV1FVXlbuMkqmrrorazPD5vEILAAAABq10OhWL500pqO+FC6bFY5//X3HBgmn96j+QY5Lqf968qZFOpwrqOxQILQAAABjU3viyg9/wZ9KpeO9fHB11NVXxvr84OjIHufHfv/9Ajkmq/+WLZvbZZ6gRWgAAADCo/eKRvncOyaRTsXTJ/K6tQudOGxtLl8zvNSTo3n8gxyTdf7jIlLsAAAAAGKg/NL0Qv1q1Ma8tk05FRzYXddVVcd68qXH5opkH3OxfsGB6HDt5TFy3Yl3cvro5Wto7++w/kGOS7j8cpHK53JDdKyWpfWIBAAAov1wuF2/759/Gf6/b1tU2pjYT93zsrKireWnBykLWf8hmc9Ha0Vlw/4Eck3T/ckvq/ttICwAAAAalOx/bnBdYRER88Oxj4vDRI/r1Pul0KkbW9O/2uL/HJN1/qLKmBQAAAINOR2c2/m75Y3lt08fXxWWvmlGegkiE0AIAAIBB56e/a4ynt+zOa/vY62ZHbXVVmSoiCUILAAAABpVdezvimv96Mq/txOlj44L508tUEUkRWgAAADCo/POv18bWXXvz2j61+PhBsWAl/SO0AAAAYNB4bkdrfO/Xa/Pazj5uUrzqmIllqogkCS0AAAAYNL55xxPR0t7Z9TydivibxceXsSKSJLQAAABgUHjiuZ3x04ca89recnJDHDdlTJkqImlCCwAAAAaFLy9/PLK5Pz+vq66Kj547u3wFkTihBQAAwBCWzeZiT1tHZPe/2y9i/1KcI5vNxV2PPxd3Pb45r/09Z8yMI8bWFlwng0+m3AUAAABQfGs27ohrV6yN5as3RUt7Z9RVV8XieVPiikWzYu60sYfcvxTn6N5/fxNH18R7zzx6gP91GCxSuVyu8PhskGlqaoqGhoaIiGhsbIz6+voyVwQAAJC8m1duiKuWrYqOHkYyZNKpWLpkflywYPqA+5fiHH31j4h4yyn18bU3z+/xNUovqftv00MAAACGkDUbd/R5s9+RzcVVy1bFmo07BtS/FOc4WP+IiF88vCGvJoYmIy0AAACGkI8uWxk3PbzhoP1SEVGVTkVnNheF3BTu6x8R/T4mqf4Xn1QfS5cYbVEJjLQAAACgT9lsLpav3lRQ31y8NMKh0N9i7+s/kGOS6n/76uZ+LRjK4CO0AAAAGCJaOzoPWLByKGtp74zWjuHzeYcjoQUAAMAQUZupirrqqnKXUTJ11VVRmxk+n3c4EloAAAAMEel0KhbPm1JQ39ccPzlu+z+L4jVzJver/0COSar/efOmRvp/1tlgaBJaAAAADCFXLJoVB7uNz6RTcdU5x8UJ08bFVeceF5mD3Pjv338gxyTV//JFM/vsw+AntAAAABhC2jqzfS5kmUmnYumS+TF32tiIiJg7bWwsXTK/15Cge/+BHJN0f4auTLkLAAAAoHi+deeTPbbXVVfFefOmxuWLZh5ws3/Bgulx7OQxcd2KdXH76uZoae/ss/9Ajkm6P0NTKpfLDdn9YZLaJxYAAKAS/aHphTj/2/fntX1y8XFxyWkzojZTVdD6D9lsLlo7OgvuP5Bjku5P6SV1/22kBQAAwBDRfZTFhFE1cclpM2JkTeG3ful0ql/9B3JM0v0ZOqxpAQAAMAT8ccOLccdjm/Pa3nPGLDf7DGpCCwAAgCGg+yiLw0ZWx7tOO6pM1UBxCC0AAAAGuTUbd8R/rnkur+2KM2bFqBFGWTC4CS0AAAAGue6jLMaPrI5LXzWjPMVAEQktAAAABrHHmnfEvz+6Ka/tikUzY7RRFgwBQgsAAIBB7Nt3PZX3fGxtJt5llAVDhNACAABgkHriuZ1x+x+b89ouXzQrxtZWl6kiKC6hBQAAwCD1rTufjFzuz8/H1GbistNnlK0eKDahBQAAwCD05HM747bV+aMs/ur0mTGuzigLhg6hBQAAwCD0D3c9lT/KYkQm/ur0meUrCBIgtAAAABhkntq8K275w8a8tstOnxHjRhplwdAitAAAAIaNbDYXe9o6IpvNHbzzAI8pRf+/v+OJvFEWo0dk4vJFRlkw9Ni4FwAAGPLWbNwR165YG8tXb4qW9s6oq66KxfOmxBWLZsXcaWOLckyp+t/+h+Zo7cjmvXbpq46K8SNrBvhfBypXKpfLFR4xDjJNTU3R0NAQERGNjY1RX19f5ooAAIBSu3nlhrhq2aro6GEkQyadiqVL5scFC6Yf0jHl7B8R8aWLTox3vOKoHl+DUkjq/ttICwAAYMhas3FHnzf7HdlcfOSnK2P983ti2vi6iIjY+EJLfPOOJ6K32Rrdjyl3/4iIz9z8aCxoOKzXUSMwWBlpAQAADFkfXbYybnp4Q7nLKImLT6qPpUvml7sMhqmk7r8txAkAAAxJ2Wwulq/eVO4ySub21c39WmAUBgOhBQAAMCS1dnRGS3tnucsomZb2zmjtGD6fl+FBaAEAAAxJtZmqqKuuKqhvKhVx4rSxceK0sZFKFfb+qVTECVPHVEz/uuqqqM0U9nlhsBBaAAAAQ1I6nYrF86YU1PdNL6+PW//PGXHr/zkjLnr59IMf8D/H3Pahv6iY/ufNmxrpdIEJBwwSQgsAAGDIumLRrIOOVMikU3H5opl5x2QOcvO//zGV1h+GEqEFAAAwZE0aMyLSfaQWmXQqli6Zn7dV6NxpY2Ppkvm9BgXdj6m0/jCUZJJ647POOivuvffefh1z9913x1lnnZVMQQAAwLDzr79dH5097KhRV10V582bGpcvmtnjzf4FC6bHsZPHxHUr1sXtq5ujpb2zz2MqrT8MFalcLpfInjj9DS3S6XQ8++yzMX16YfO1CpHUPrEAAEDla23vjNO/fFc8v7utq+3NJ02Pz194YtRmqgpe/yGbzUVrR2fBx1RafyiFpO6/Extp8f3vfz92797dZ581a9bEW9/61oiIeM1rXlPUwAIAABjefvnIhrzAIiLiir+YFSNr+ncblE6n+nVMpfWHwSyx/9Nnzjz4IjA33HBD1+N3vetdSZUCAAAMM7lcLq5dsS6v7YxjJ8acKaZRwGBStoU4s9ls/OhHP4qIiNGjR8eb3vSmcpUCAAAMMfc+sSWe2rwrr83uGjD4lC20uPPOO2PDhg0REfHmN785Ro4cWa5SAACAIea6bqMsjp08Os6cPalM1QADVbbQ4oc//GHXY1NDAACAYnl8046478mteW2XL5oZqT62PgUqU1lCi127dsUvfvGLiIg48sgjbXMKAAAUzXX35Y+yOHxUTVz4cov+w2BUliVn/+3f/q1rZ5FLLrlkwIlnU1NTn683NzcP6H0BAIDBafPO1rh55ca8tktOOypqq6vKVBFwKMoSWhRrasi+PWABAAAiIm74zfpo68x2Pa/JpOMvX3lUGSsCDkXJp4c0NTXFPffcExERr3zlK2P27NmlLgEAABiCWto6419/uz6v7U0vnx4TR48oU0XAoSr5SIt//dd/jWz2peTz0ksvPaT3amxs7PP15ubmWLhw4SGdAwAAGBxueqQptu9pz2v7K9ucwqBW8tDihhtuiIiIESNGxFvf+tZDeq/6+vpilAQAAAxy2WzugG1Oz5w9KWYfMaZMFQHFUNLpIb/73e9izZo1ERHxhje8IQ477LBSnh4AABii7nlic6zdsjuv7YozjLKAwa6kocX+C3Ae6tQQAACAfa7tts3pcUeMiUXHTCxTNUCxlCy0aG9vjxtvvDEiIiZNmhSLFy8u1akBAIAh7NGNL8YDTz+f13b5GTMjlUqVqSKgWEoWWixfvjy2bNkSERHveMc7IpMpy26rAADA/8hmc7GnrSOy2Vxix5Si//9379N5bRNHj4gLFkwr6HigspUsOdh/asi73vWuUp0WAADoZs3GHXHtirWxfPWmaGnvjLrqqlg8b0pcsWhWzJ02tijHlKr/7aubo7U9m/fau047KkZkqgb4XweoJKlcLld4rDpA27dvj6lTp8bevXvjxBNPjNWrVyd9yoiIaGpqioaGhoh4aXtUu40AADDc3bxyQ1y1bFV09DCSIZNOxdIl8+OCBdMP6Zhy9o+I+OKFJ8Y7X3lUj68ByUjq/rsk00N++tOfxt69eyPCKAsAACiXNRt39Hmz35HNxVXLVsWqxu2xt6Mz9nZ0xqrG7f06ptz9IyI++6tHY83GHQf5rwEMBiUZaXH66afHAw88EFVVVfHss8/GtGmlmV9mpAUAAPzZR5etjJse3lDuMkri4pPqY+mS+eUuA4aNQT3S4v77749cLhcdHR0lCywAAIA/y2ZzsXz1pnKXUTK3r27u1wKjQGUq2e4hAABA+bR2dEZLe2e5yyiZlvbOaO0YPp8XhiqhBQAADAO1maqoqx4+O2rUVVdFrR1EYNATWgAAwDCQTqdi8bwpBfV93QlHxD0fOyvu+dhZ8bq5R/TrmErpf968qZFOpwrqC1QuoQUAAAwTVyyaFVUHuZHPpFPxodfMjhkTR8WMiaPiQ6+dHZl+HFMp/S9fNLPPPsDgILQAAIBhYu60sbFw5mG9vp5Jp2Lpkvkxd9rYvGOWLpnfa1DQ/ZhK6w8MbplyFwAAAJTGrr0dsarxxQPa66qr4rx5U+PyRTN7vNm/YMH0OHbymLhuxbq4fXVztLR39nlMpfUHBq9ULpcbsvsAJbVPLAAADEY/+u/18be/+GPX83Qq4s6PnhVHHT6y4PUfstlctHZ0Rm2mqqBjKq0/kIyk7r+NtAAAgGEgl8vFj//72by21xx/RMycNKpf75NOp2JkTeG3EZXWHxhcrGkBAADDwOoNL8ajG3fktb1j4ZFlqgagMEILAAAYBrqPspg+vi7+YvakMlUDUBihBQAADHE7W9vjV6s25rW97dSGg25/ClBuQgsAABjibl65Mfa0dXY9r0qnYsmpDWWsCKAwQgsAABjCelyAc87kOGJsbZkqAiic0AIAAIawVU0vxprmbgtwvsICnMDgILQAAIAh7Cc9LMB5xrEW4AQGB6EFAAAMUTt6WIDz7QstwAkMHkILAAAYom5+ZEO0tP95Ac5MOhVLTrEAJzB4CC0AAGAIyuVy8aNuU0Nee/wRMdkCnMAgIrQAAIAhaGXjC/H4pp15bW+3ACcwyAgtAABgCOq+zWnDhLo445iJZaoGYGCEFgAAMMTsaG2PW/6QvwDn2049MtIW4AQGGaEFAAAMMb98ZEO0tme7nmfSqXjLKfVlrAhgYIQWAAAwhORyuQOmhpwz94iYPMYCnMDgI7QAAIAh5JEeFuB8hwU4gUFKaAEAABGRzeZiT1tHZLO5xI4pRf8fPvBMXtuRE0bG6UdbgBMYnDLlLgAAAMppzcYdce2KtbF89aZoae+MuuqqWDxvSlyxaFbMnTa2KMeUqv/tq5vz1rKIiHjbwgYLcAKDViqXyxUeJQ8yTU1N0dDQEBERjY2NUV9v8SEAAP7s5pUb4qplq6Kjh5EMmXQqli6ZHxcsmH5Ix5Szf0TE/7vwxPjLVx7V42sAxZLU/bfpIQAADEtrNu7o82a/I5uLq5atijUbdwz4mHL3j4i4+leP5n0GgMHE9BAAAIala1es7fNmP+KlkOB9N/wuTjrqsIiIeHj99n4dUyn9r1uxLpYumd9nP4BKJLQAAGDYyWZzsXz1poL6Nm5vicbtLf16//4ek3T/21c3x9fe/DJrWwCDjukhAAAMO60dndHS3lnuMkqmpb0zWjuGz+cFhg6hBQAAw05tpirqqqvKXUbJ1FVXRW1m+HxeYOgQWgAAMOyk06lYPG9KQX3nTBkTHzz76Pjg2UfHcVNG9+uYSul/3ryppoYAg5I1LQAAGJauWDQrfrVyY58LWWbSqfjGkgUxd9rYiIh4/bxpcf63VxR8TKX0v3zRzF5fB6hkRloAADAszZ02Nj5yzuxeX8+kU7F0yfyuwGLfMUuXzI9ML6MWuh9Taf0BBhsjLQAAGLZe2NN2QFtddVWcN29qXL5oZo83+xcsmB7HTh4T161YF7evbo6W9s4+j6m0/gCDSSqXy/W9sfMg1tTUFA0NDRER0djYGPX19WWuCACAStGZzcVpf3dnbN65t6vtPWfMjE8uPr7g9R+y2Vy0dnRGbaaqoGMqrT9AsSR1/22kBQAAw9IDT2/NCywiIpac0tCvm/10OhUjawr/Sl1p/QEqnTUtAAAYln7xyIa85ydOHxvHHjGmTNUA0BOhBQAAw86eto749z9uymu7cMH0MlUDQG+EFgAADDv/tea52NPW2fU8nYo4f8G0MlYEQE+EFgAADDs3PZw/NWTRsZNi8pjaMlUDQG+EFgAADCtbdu6N+57cktf2ppebGgJQiYQWAAAMK7es2hjZ3J+fj6ypinNPOKJ8BQHQK6EFAADDSvddQ/7XCVNsEwpQoYQWAAAMG09t3hmrN7yY13ahqSEAFUtoAQDAsNF9lMWkMSPiVUcfXqZqADgYoQUAAMNCNpuLXz6yMa/tgvnTIlPlKzFApfI3NAAAw8Lv1m+PDS+05LWZGgJQ2YQWAAAMC794pCnv+ewjRscJ08aWqRoACiG0AABgyGtt74xb/9Cc13bhy6dHKpUqU0UAFEJoAQDAkHf345tjZ2tHXtuFC0wNAah0QgsAAIa87ruGvHLWhJg2vq5M1QBQKKEFAABD2vbdbXH3nzbntV1kAU6AQUFoAQDAkHbb6uZo78x1Pa/JpGPxvKllrAiAQgktAAAY0n7ZbWrIOccfEWNrq8tUDQD9IbQAAGDIevb5PfG79dvz2kwNARg8hBYAAAxZv1yZP8risJHV8RezJ5WpGgD6S2gBAECPstlc7GnriGw2d/DOFdi/szMb//ZwU17bG+dPi5qMr8AAg0Wm3AUAAFBZ1mzcEdeuWBvLV2+KlvbOqKuuisXzpsQVi2bF3GljB03/2/7QHHs7snmvXWhqCMCgksrlcoVF1YNQU1NTNDQ0REREY2Nj1NfXl7kiAIDKdvPKDXHVslXR0cNohkw6FUuXzI8LFkwflP0jIv7+rQviAsEFQNEldf9tbBwAABHx0giFvm74O7K5uGrZqlizcceg7B8RcdXP/twfgMpnpAUAABER8dFlK+OmhzcctF9ddTrGj6yJF/a0RUt7dtD1v/ik+li6ZP5B+wFQOCMtAABITDabi+WrNxXUt6U9G80vthYUEFRi/9tXNxe8mCcA5SW0AAAgWjs6o6W9s9xllERLe2e0dgyPzwow2JUstNi6dWt89atfjdNPPz2mTJkSI0aMiGnTpsUrXvGK+Ou//uv4zW9+U6pSAADopjZTFXXVVeUuoyTqqquiNjM8PivAYFeS0OJnP/tZzJkzJz7xiU/EAw88EM8991y0tbVFc3NzPPjgg/H1r389vvKVr5SiFAAAepBOp2LxvCkF9V10zMT4wV8tjNOPOXxQ9j9v3tRIp1MF9QWgvDJJn+CHP/xhvPvd745sNhuTJ0+O97///bFo0aKYMGFCbNq0KZ5++um45ZZborq6OulSAADowxWLZsUvHt4Qfa32kEmn4lPnHR9zp42NSaNHxPnfXtHnbh2V2P/yRTP7+IQAVJJEQ4vHHnss3vve90Y2m40zzjgjbrnllhg3btwB/a688spoa2tLshQAAA6ifkJdpFMRnb3c82fSqVi6ZH7MnTY2IiLmThsbS5fM73Wb0UrvD0DlSzS0uPLKK2Pv3r0xceLEuOmmm3oMLPapqalJshQAAA7irsc29xhY1FVXxXnzpsbli2YecMN/wYLpcezkMXHdinVx++rmaGnvHFT9AahsqVwul8h+T48//ngcf/zxERFx9dVXx2c/+9kkTtOnpPaJBQAYit53w+/iPx59ruv5WbMnxj/95clRm6kqaA2IbDYXrR2dg7Y/AAOX1P13YiMtfvazn3U9fstb3tL1ePv27bF169aYMGFCHH54YYslAQCQrD1tHXHvE1vy2s6bNy1G1hT+dTGdTg3q/gBUnsR2D/ntb38bERHjxo2L448/Pn70ox/F/PnzY8KECTF79uyYOHFizJo1Kz73uc/Frl27kioDAIAC3POnLdHanu16XpVOxTlzjyhjRQCQ4EiLNWvWRETEjBkz4sorr4x//Md/PKDPunXr4uqrr46f//zn8R//8R8xbdq0fp2jqampz9ebm5v79X4AAMPV8j9uynt+2qzD47BR1hwDoLwSCy22bdsWES+tbbFq1aoYP358fPnLX443velNMXbs2Fi9enV85jOfieXLl8cf//jHeMtb3hL33XdfpNOFD/7YN18GAICBa23vjLseey6v7X+dOKVM1QDAnyU2PWT37t0REbF3796oqqqK5cuXx/ve976YNGlSjBgxIk455ZS49dZbY/HixRER8cADD8RNN92UVDkAAPTivie3xu62zq7nqVTEuSeYGgJA+SU20qK2trYruHjLW94Sr3zlKw/ok06n42tf+1osX748IiJ+8pOfxJvf/OaCz9HY2Njn683NzbFw4cJ+VA0AMPws/2P+lNpTj5oQk8fUlqkaAPizxEKLMWPGdIUW+0ZT9OSEE06I6dOnx4YNG+Khhx7q1zlsYQoAcGjaOrJxxxpTQwCoTIlND9l/vYmDhQv7+m7evDmpcgAA6MFv1j4fO1o78tqEFgBUisRCixNOOKHrcWdnZx89//x6JmMfbQCAUvr3blNDFjSMj2nj68pUDQDkSyy0+Iu/+Iuux08//XSffdeuXRsREdOnT0+qHAAAuunozMZ/PJo/NWSxURYAVJDEQovzzz8/qqurIyL63BXk3nvvjeeffz4iIs4444ykygEAoJsHn9kW23a35bUtPnFqmaoBgAMlFlocfvjhccUVV0RExH/913/FjTfeeECfnTt3xoc//OGu5+973/uSKgcAgG7+/Y+b8p7PnTo2jjx8ZJmqAYADJRZaRER87nOfiyOPPDIiIi655JK48sor4+67747f//73cf3118fChQtj5cqVERHx/ve/P0499dQkywEA4H9ks7kDQovz5pkaAkBlSXTly0mTJsW///u/x/nnnx9PPfVUfPvb345vf/vbB/T7q7/6q/j7v//7JEsBAGA/jzRuj8079+a1/S9TQwCoMImOtIiIOP7442PlypXxta99LV7xilfEhAkToqamJurr6+Otb31r3HXXXXHdddd1rX8BAEDylq/OH2Vx7OTRcczk0WWqBgB6VpI9RkeNGhUf+9jH4mMf+1gpTgcAQB9yuVws7zY1xK4hAFSixEdaAABQWVZveDE2vNCS12ZqCACVSGgBADDMdB9lcdThI+P4qWPKVA0A9E5oAQAwjORyB+4asvjEqZFKpcpUEQD0TmgBADCM/Om5nbFu6+68NutZAFCphBYAAMNI911Dpo+vi5fVjytTNQDQN6EFAMAwsvyPzXnPX3fCFFNDAKhYQgsAgGHi6S274onnduW1LZ5naggAlUtoAQAwTHRfgHPSmBFx8pGHlaka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73hH13udffbZuV/+8pe5Bx98MHfdddfljj766K7Xvve97xXx07FP0tf5hhtu6Pri87rXvS53zTXX5O66667cww8/nPvVr36Ve+tb39p1jpEjR7rBSUipfp67+9WvfpWLiNzkyZP9g1kCpbrOL7zwQu7kk0/uer/Xv/71uRtuuCH3m9/8JrdixYrcj370o9yHP/zhXH19vZ/pIivFNf7pT3/a9T41NTW5j3zkI7nbbrst99///d+5H//4x7lFixZ1vT516tTcCy+8UORPObztf4PR0NCQO/fccxO7yfEdrHxKcZ19Byu/Uv48d+c7WGUSWhTZWWedlYuIXCaTyT3wwAMHvP7Vr3616wfgc5/73IDOcc8993S9xxvf+MZcR0dH3utbtmzJHXnkkbmIyB122GG57du3D+g89C7p63zjjTfm3ve+9+XWr1/fa59vfetbXed49atf3e9zcHCl+HnubufOnbmGhoZcROR++MMf+gezBEp1nS+55JKu89x444299stms7n29vYBn4cDleIan3jiiV3vceutt/bY501velNXn6VLlw7oPPTsM5/5TO6WW27Jbdq0KZfL5XLr1q1L5CbHd7DyKsV19h2s/Er189yd72CVS2hRRA8++GDX/9zve9/7euzT2dmZO/7447v+MWtra+v3ec4777xcROSqqqpyjY2NPfb5yU9+0lXL17/+9X6fg96V6joX4pRTTun6bcDWrVsTOcdwVa7rfOWVV3b99i6Xy/kHM2Glus733Xdf13muvvrqQy2bfijFNX7xxRe7znHSSSf12m/VqlVd/S6++OJ+nYP+Seomx3ewylKqm9me+A5WOqW6zr6DVS4LcRbRL3/5y67H7373u3vsk06n413veldERGzfvj3uueeefp1j165dceedd0ZExDnnnBP19fU99nvTm94UY8eOjYiIm266qV/noG+luM6F2rcwUDabjXXr1iVyjuGqHNf5wQcfjH/8x3+Mmpqa+M53vnNI70VhSnWdv/3tb0dExOjRo+Oqq67q9/EMXCmucVtbW9fjWbNm9drv6KOP7nq8d+/efp2D8vMdjP35Dja0+A5W2YQWRXTfffdFRMSoUaPi5JNP7rXfmWee2fV4xYoV/TrHgw8+2PVFZ//36a6mpiZe+cpXdh3T3t7er/PQu1Jc50Lt/6U3nfbjXEylvs4dHR3x3ve+N7LZbHziE5+I4447bsDvReFKcZ3b2tri5ptvjoiIxYsXx+jRoyPipWu+fv36ePbZZ/NueimuUlzjiRMnxoQJEyIiYu3atb32e/rpp7sez549u1/noPx8B2N/voMNHb6DVT4/YUX02GOPRUTEMcccE5lMptd+c+bMOeCY/p6j+/v0dZ6Ojo548skn+3UeeleK61yoe++9NyIiMplMHHPMMYmcY7gq9XX++te/HqtWrYqjjz46PvWpTw34feifUlznVatWRWtra0REnHbaabFp06Z497vfHePHj48ZM2bEUUcdFePGjYvzzjsvHnjggQF8CvpSqp/l9773vRER8fDDD8fy5ct77POFL3whIiKqqqriiiuu6Pc5KC/fwdif72BDh+9glU9oUSStra2xdevWiIhehwvuc9hhh8WoUaMiIqKxsbFf59m//8HO09DQ0ONxDFyprnMhbrvttvjDH/4QERGve93ruoaicuhKfZ3Xrl0bn//85yMi4p/+6Z+itrZ2QO9D/5TqOq9ZsybvnPPmzYvrr78+du/ende+fPnyOOOMM+Kb3/xmv96f3pXyZ/lv//Zv47WvfW1ERFx00UXxsY99LJYvXx4PPfRQ/PSnP42zzjorfv7zn0dVVVV861vfiuOPP77f56C8fAdjH9/Bhg7fwQYHoUWR7Ny5s+vxvqG/fdn3xWjXrl2JnWffOQZyHnpWqut8MNu2bYsPfvCDEfHSb+z2/faO4ij1dX7f+94XLS0t8da3vjXOPffcAb0H/Veq67xt27aux5/73Odi69at8YY3vCF+97vfRWtrazz33HPxT//0TzF27NjIZrPx0Y9+tNff1NM/pfxZHj16dCxfvjy+973vRX19fSxdujTOO++8WLhwYbztbW+Le++9N970pjfF/fffHx/4wAf6/f6Un+9gRPgONtT4DjY4CC2KZN/Q34iX5jIezIgRIyIioqWlJbHz7DvHQM5Dz0p1nfvS2dkZ73znO2P9+vUREfF//+//jZe//OVFe39Ke51/+MMfxh133BFjx46Na665pt/HM3Clus77j6jYu3dvvPGNb4ybb745Tj755BgxYkRMnjw53v/+98dtt90W6XQ6crlcfPzjH49cLtev83CgUv+d/bvf/S5+8pOf9LquxR133BE/+MEPYseOHQN6f8rLdzB8BxtafAcbPIQWRbL/UKJCFlTb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", + "image/png": "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JA0fPlxut7vddqNHj251Tqg2btzY5vtEuh+0z4rrHKoVK1b4H5911lmm9BGvrL7Ozz//vJYuXarevXurrKysy++D8FhxnTds2OAPJYqKilRXV6c777xT/fr106BBg1RYWKjMzExdfvnleuedd8L/EOiUVV/P3/zmNyVJhw4d0lNPPdVmmwcffLBVe8SGrvwM5vF49Omnn5paF+xx+mewhIQEDR8+3OZq0B0//elP9dFHH2n48OH6/ve/b3c5aAOhRYQ0Njb6f3PS3nDB03r37q20tDRJUmVlZVj9VFVV+R931k9BQYH/cbj9oG1WXedQbNiwQa+99pqkUzdChBaRY/V1PnLkiO68805J0iOPPKL+/ft36X0QHquu85k3Oj6fTxMmTNDPf/5zHT161H+8ublZb775pi655BI9+uijYb0/Ombl1/PXvvY1/xST2267TbfccoteeeUVrV27VosXL9asWbP005/+VJL0n//5n7rsssvC7gP24WcwnPbaa6/po48+kiRdccUV/ulAiD3bt2/XAw88IEn61a9+5R8NiehCaBEhx48f9z/u1atXp+1P/1B04sQJ0/o53UdX+kHbrLrOnWlqatK8efPk9XolSQ899FBE3z/eWX2dv/vd72r//v06//zzdcstt3TpPRA+q67z4cOH/Y8fffRRffrpp/rCF76g1atXq7GxUQcOHNCTTz6pzMxMGYahe+65xz+dBN1n5dezy+XSH/7wB73wwgsqLi7WggULdM0112jixImaPXu2XnrpJU2dOlVvvPGGfvzjH4f9/rAXP4NBOvU9/bbbbpN06mv+9A0vYtM3v/lNNTQ06Etf+pKmTZtmdzloB6FFhJw5HzmUxfOSkpIkSQ0NDab1c7qPrvSDtll1nTvz7W9/W2vXrpUkzZkzR1dffXVE3z/eWXmd//GPf+h3v/ud3G63nnrqKTkcjrDfA11j1XU+efJkQJ+XX365Xn31VU2cOFFJSUnq37+/vvnNb+rVV1+V03nqv+V7772XBZQjxOrv25s2bdIzzzyjioqKNl9/7733tHDhQu3du7dL7w/78DMYvF6v/v3f/127d++WJP3Xf/2Xxo0bZ3NV6KpnnnlGb775pjIyMvT444/bXQ46QGgRIWcOJQplNfDTi/ekpKSY1s+ZCwSF2w/aZtV17sjDDz+sBQsWSJImTpyoX/3qVxF7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", "text/plain": [ "
" ] @@ -233,6 +239,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "1020f95a", "metadata": {}, @@ -244,13 +251,13 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "id": "f8675193", "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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WHFxcaPrTJ482butvn37miVLlpjt27ebJUuWmL59+3pfmzJlShD3DpVCPc5btmzxbmPQoEFmxowZ5sMPPzSfffaZ2bBhg3nmmWeM0+k0kkxUVJRZt25dCPbS3qw6lmurGxUVZeLi4kxiYiLhSIhZNc4XL140/fr1825v5MiR5v333zf5+flmx44dZvny5eaFF14wGRkZhCMhYMU45+XleX8vO51O8+STT5oVK1aY7du3mz/+8Y9mxIgR3jrx8fHm6NGjQd5Le6t6ItOlSxczfPjwkJ1MPfbYY95tDx061DvOCxYsMD169PC+9t577wW1LqwZ58WLF3uP43vvvdfMnTvX/OUvfzGfffaZWbVqlXn00Ue9NVu1asXv7BCw8niubtWqVUaSSUtLIxxpJghHItidd95pJBmXy2W2bt1a4/W33nrLe6C9/vrrjapx8OBB43K5jCSTk5NjSkpKfF6/cuWKycnJ8fYjFN9s212ox/nTTz81jzzyiPniiy/8tlmxYoVxOBxGkunRo4fxeDwB14F/VhzL1bndbu8J9LRp00zXrl0JR0LMqnF+/PHHjSQTGxtrVq5c6bedx+Mx165da3Qd1M6KcX7ggQe825g3b16tbV566SVvm+eee65RdVC71157zaxevdqcPn3aGGPMsWPHQnIytWnTJu92R4wYYdxut8/rZ8+eNV26dDGSTEpKijl//nzQasOacV66dKl55plnzIkTJ/y2+Y//+A+fgAzBZdXxXN3ly5dN586djSSzaNEiwpFmgnAkQv31r3/1HkTPPPNMrW0qKipMz549vX80y8vLA67z85//3Ftn27ZttbbZtm2bt824ceMCrgH/rBrnhqh62d/OnTtDUsOOwjXGc+bMMZLMTTfdZK5evUo4EmJWjXPVK8Fmz57d1G4jQFaNc2pqqpFk2rZt67fNxYsXvX257bbbAq6BhgvVydR9993nDdoKCwtrbbNkyRJv7bfeeitotVGTVSfNtan8ItLpdJqzZ89aWtturBrn8ePH+wRehCPNAxOyRqgVK1Z4l5988sla2zidTv30pz+VJF28eFEfffRRQDWMMVq5cqUkKTs7W9///vdrbff9739fN910kyRp5cqVMsYEVAf+WTHODTV06FDv8tGjR0NSw47CMcYnTpzQa6+9Jkl69913FRMT06TtoX5WjfN//ud/SpKSk5P1/PPPB95RNIlV41xeXi5J6t69u982ycnJateunU97RI7Lly9r06ZNkqR77rlHGRkZtbb70Y9+pKSkJEnS//7v/1rWP1ircpJOj8ejY8eOhbczaLLt27dr3rx5iomJ0TvvvBPu7qAKwpEIlZeXJ0lKSEhQv379/LYbMmSId/nTTz8NqMaxY8dUVFRUYzt11Tl58qSOHz8eUB34Z8U4N9TVq1e9y1FRUSGpYUfhGONx48bpypUrevzxx5kV3SJWjHN5ebk30B42bJji4uIkSRUVFSosLNTx48dVVlYWaNcRAKuO58ovJOo6SSouLta5c+d82iNy7Nixwxtq1fUZLCYmxvvl1Y4dO3Tt2jVL+gdr8Rms5XC73Ro7dqw8Ho9eeeUVfj83M4QjEWr//v2SpMzMTLlcLr/tsrOza7ynofbt21frdoJdB/5ZMc4N9cknn3iXe/bsGZIadmT1GC9dulTr1q1Tamqq5syZ0+jtIDBWjPPu3bu94Ufv3r1VXFysCRMmqF27durSpYu6d++u5ORkDRs2TB9//HHgO4F6WXU8P/vss5Kkb775Ru+++26tbX75y1/WaI/I0ZjPYG63W4cPHw5pvxAelZ/BoqOjlZmZGebeoCl+9atfac+ePcrMzNTUqVPD3R1UQzgSgcrKyrzfBvm7zLJSamqqEhISJEmFhYUB1fnqq6+8y/XV6dy5s3c50DqonVXj3BC7d+/W2rVrJV0/6SIcCQ6rx/jChQuaMGGCJGnmzJlq3759o7aDwFg1zlVPpjwej3JycvT222/r4sWL3vXl5eXauHGj7r77bs2aNSug7aNuVh7PP/vZz7y35jz33HMaO3asVq9erYKCAi1fvlwjR47Ur371K0nSq6++qnvuuSfgGggvPoOh0tq1a7Vnzx5J0r333uu9jQqR5+jRo5o2bZokad68ed4rPNF8EI5EoMuXL3uXW7duXW/7yg9g3377bcjqVNZoTB3Uzqpxrs/Vq1f11FNPqaKiQpI0ffr0oG7fzqwe40mTJunrr7/WwIEDNXbs2EZtA4GzapzPnz/vXZ41a5YOHz6sH/7wh9q+fbvKysp05swZvfPOO0pOTpYxRpMnT/behoOms/J4joqK0n//93/rf/7nf9SnTx/Nnz9fDz74oPr376+HH35YK1as0NChQ/Xhhx/qzTffDHj7CD8+g0G6/nv9ueeek3T9uK88sUZkevbZZ1VaWqpHH31Uw4cPD3d3UAvCkQhU9Z7xhkykGBsbK0kqLS0NWZ3KGo2pg9pZNc71ef7551VQUCBJGj16tEaMGBHU7duZlWO8efNm/f73v5fL5dK7774rh8MR8DbQOFaN85UrV3xqDhs2TGvWrFH//v0VGxur9u3b69lnn9WaNWvkdF7/8z9lyhQm0Q4Sq39n79+/X4sWLdLevXtrfX3btm1asGCBTp482ajtI7z4DIaKigr9y7/8i06cOCFJ+sUvfqG+ffuGuVdorEWLFmnjxo1KSkrS3Llzw90d+EE4EoGqXoLVkBnoKydxio+PD1mdqhNFBVoHtbNqnOsyY8YMzZ8/X5LUv39/zZs3L2jbhnVjfPXqVT399NMyxuiFF17QLbfcElhH0STh+J0tXb96pLaJ+wYPHqwf/ehHkq6fYPs7uUZgrPydvWXLFg0cOFCrV69Wp06dtHjxYp0+fVrl5eUqLCzUvHnz1KpVKy1dulQDBgzQF198EXANhBefwTBu3Dj96U9/kiT90z/9k/7t3/4tzD1CY507d04TJ06UdP0K7I4dO4a5R/CHcCQCJSYmepcbcvlk5beJDbnMt7F1qn5jGWgd1M6qcfbnvffe804UlZ2drXXr1vlcuoums2qMp0+froMHD6pz587693//98A6iSYLx+/s9u3b1/kN47333utd3rFjR0B1UDurxvnq1av6yU9+okuXLqlDhw7Kz8/XqFGj9L3vfU/R0dHKyMjQuHHjtHnzZsXFxamoqEijR48ObGcQdnwGs7cpU6bov/7rvyRJd955p5YtW8ZTaiLYSy+9pHPnziknJ0fjxo0Ld3dQB/9TqaPZiouLU9u2bfXNN9/4TNhVmwsXLnj/aFadsKshqk4AVl+dqhOABVoHtbNqnGuzZMkS7y/vrl276sMPP1S7du2avF34smqMKyfevOeee7R69epa21Ru+8qVK1q6dKkkKS0tTXfffXdAtVCTVeNctX0gEziePXs2oDqonVXj/Kc//cl7q8z48ePVoUOHWtvdfPPNGjVqlObPn6+dO3dq9+7d6tOnT0C1ED7VP4Pl5OT4bctnsJZl1qxZmjlzpiTptttu05o1a7giKIIVFRVp8eLFkqS7775by5Ytq7P9mTNnvJ/Dunfvrttvvz3kfcR3CEciVK9evbRlyxYdOXJEbrfb7yMDDxw44F0O9AkjvXr1qnU7wa4D/6wY5+pWrVqln/70p/J4POrYsaM2bdpU74kWGs+KMa68JHvhwoVauHBhnW3PnTunn/zkJ5KkIUOGEI4EiRXjfPPNN3uXKydQ9qfq63U9chaBsWKcqz7697bbbquzbb9+/by3Rh44cIBwJII05jOYy+XSjTfeGNJ+IbR++9vfavLkyZKu/27YsGEDT6eJcFVvi3vrrbfqbb9//37v57DRo0cTjliM22oi1ODBgyVd/5Z3586dfttVPhddkgYNGhRQje7duys9Pb3GdmqzefNmSVKnTp3UrVu3gOrAPyvGuapNmzbpkUcekdvtVtu2bfXhhx+qR48ejd4e6mf1GCM8rBjnrl27qkuXLpKk48eP1znR6tGjR73LnTp1CqgO/LNinKsGLm63u862165dq/V9aP769+/vnYi1rs9g5eXlys/P974nOjrakv4h+BYvXqznn39eknTDDTdo48aNXLULWIxwJEI99NBD3mV/3wR7PB4tWrRIkpSSkqKhQ4cGVMPhcCg3N1fS9W8lKv/4Vpefn+/91iI3N5enYASRFeNcaevWrcrNzdXVq1eVnJysDRs2+HwTjdCwYoyNMfX+69q1q6TrJ9iV6z7++ONG7RNqsupYfvjhhyVJxcXF2rRpk992y5cv9y5XntCj6awY5+7du3uXt2zZUmfbqifVVd+H5i8xMVE/+MEPJEkbN270e6vW8uXLVVxcLEkaOXKkZf1DcC1fvlxPPvmkjDHKyMjQpk2bvF9QIrJ169atQZ/DKg0ZMsS77g9/+EP4Om5XBhHrzjvvNJKMy+UyW7durfH6W2+9ZSQZSeb111+v8fpHH33kfX306NG11jh48KCJiooykkxOTo4pKSnxeb2kpMTk5OR4+3Ho0KFg7BqqsGKcd+3aZVJSUowkk5CQYPLy8oK8F6iLFWNcn65duxpJpmvXro16P+pnxTifOHHCxMXFGUmmd+/e5tKlSzXaLF682LudBx54oKm7hWpCPc4XLlwwrVq1MpJMYmKi2bNnT639WLdunXE6nUaS6dSpk6moqGjqrsGPY8eOBfw7eOHChXX+f2CMMZs2bfK2efDBB43b7fZ5/ezZs6ZLly5GkklJSTHnz59v4p6gLqEa5w0bNpiYmBgjyaSlpZkDBw4Er9MIWKjGuT6V7x8yZEij3o/g4BrLCPb2229r0KBBKi0t1fDhwzV16lQNHTpUpaWlWrp0qXeW66ysLO/jowKVlZWlSZMmaebMmSooKNCgQYP0yiuvqEePHjp69KhmzZqlXbt2SZImTZrEva4hEOpxPnr0qO69915dvHhRkvTmm28qOTlZn3/+ud/3pKWlKS0trVH7g5qsOJYRflaMc5cuXTRt2jS9/PLL2rt3rwYMGKBXXnlFt9xyi4qLi7V8+XK98847kqSkpCTNnTs3aPuH60I9zikpKZo8ebJee+01Xb58WXfccYfGjx+vYcOGKTU1VV9//bVWrlyp3/3ud/J4PJKkmTNnyunkYuFgycvL05EjR7w/nzt3zrt85MiRGt/2PvHEE42qc/fdd+uxxx7T0qVLtWrVKg0bNkwTJkxQenq69u7dq+nTp+tvf/ubpOuTeKampjaqDmpnxTjn5+dr5MiRKi8vV3R0tObOnatr167V+RksIyNDKSkpAddC7aw6nhEhwp3OoGlWrVplkpKSvGlj9X9ZWVnm8OHDtb63od82V1RUmJ/97Gd+a0gyY8aM4VupEArlOFdNuxv6r7GpOPyz4liuC1eOWMOqcZ48ebJxOBx+66SlpdV6VQOCI9Tj7PF4zIQJE+ocY0kmOjrazJ49O4R7ak+jR48O6G9mbRr6TXNJSYm5//77/W7b6XTyNzlErBjn119/PeDPYAsXLgztjtuMlcdzXSrfz5Uj4cXXCBFuxIgR2rNnj1588UVlZWWpVatWSklJUU5OjveqjszMzCbVcDqdWrBggdauXavc3Fylp6crJiZG6enpys3N1bp16zR//ny+lQohK8YZ4cUY24NV4zxjxgx9+umnevzxx9WtWzfFxsYqOTlZ/fv31y9/+UsdOnRIAwcODMIeoTahHmeHw6G5c+dqx44devbZZ/UP//APSkxMVFRUlJKTk9WvXz+99NJL+vzzz/Wv//qvQdwzWC0+Pl5r167V+++/r2HDhiktLU0xMTHq3Lmz/vmf/1l5eXl64403wt1NAGgRHMbUMZ09AAAAAABAC8dX/QAAAAAAwNYIRwAAAAAAgK0RjgAAAAAAAFsjHAEAAAAAALZGOAIAAAAAAGyNcAQAAAAAANga4QgAAAAAALA1whEAAAAAAGBrhCMAAAAAAMDWCEcAAAAAAICtEY4AAAAAAABbIxwBAAAAAAC2RjgCAAAAAABsjXAEAAAAAADYGuEIAAAAAACwNcIRAAAAAABga4QjAAAAAADA1ghHAAAAAACArRGOAAAAAAAAWyMcAQAAAAAAtkY4AgAAAAAAbI1wBAAAAAAA2BrhCAAAAAAAsDXCEQAAAAAAYGv/D1IfpOavj5DBAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -265,7 +272,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAAM6CAYAAABjPS0fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AACDBklEQVR4nOzdeXyU5b3///csmewhbJGERNlFasQNqhUPgkUF64ILtfaoeOAc2mP70xa/trVHD1202ko9Pe2x5RQUa1Xk9FAXllOLCzUuBUUwFlAQhGwsYUvIPjP37w+aMXNPlpnJbPc9r+fjweMxuXPd93WHSWDmnevzuRyGYRgCAAAAAABIU85k3wAAAAAAAEAyEY4AAAAAAIC0RjgCAAAAAADSGuEIAAAAAABIa4QjAAAAAAAgrRGOAAAAAACAtEY4AgAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLRGOAIAAAAAANIa4QgAAAAAAEhrhCMAAAAAACCtEY4AAAAAAIC0RjgCAAAAAADSGuEIAAAAAABIa+5k34BdtLa2qrKyUpI0dOhQud381QIAAAAAEGter1eHDh2SJJWXlysrK6vf1+QdfIxUVlZq8uTJyb4NAAAAAADSxsaNGzVp0qR+X4eyGgAAAAAAkNZYORIjQ4cODTzeuHGjiouLk3g3AAAAAADYU11dXaByo+t78f4gHImRrj1GiouLVVpamsS7AQAAAADA/mLV75OyGgAAAAAAkNYIRwAAAAAAQFojHAEAAAAAAGmNcAQAAAAAAKS1uIYjmzdv1oMPPqiZM2eqrKxMmZmZysvL07hx4zR37ly98cYbMZln0aJFcjgcYf15/fXXYzInAAAAAACwh7jtVjN16lT95S9/CTne3t6unTt3aufOnXryySd1yy23aOnSpfJ4PPG6FQAAAAAAgB7FLRypqamRJJWUlOjGG2/UxRdfrFNPPVU+n09vv/22Fi9erJqaGj311FPyer165plnYjJvZWVlr58fOXJkTOYBAAAAAAD2ELdwZPz48XrwwQd1/fXXy+VyBX3uggsu0C233KKLLrpIH3/8sZ599ll9/etf18UXX9zvec8888x+XwMAAAAAAKSPuPUcWb16tebMmRMSjHQaMmSIFi9eHPj4D3/4Q7xuBQAAAAAAoEdJ3a3mkksuCTz+5JNPkncjAAAAAAAgbcWtrCYc7e3tgcdOJ7sKAwAAAAD65vf7deLECTU0NKi9vV0+ny/Zt4QwuVwueTweFRQUKC8vL2WygKSGIxs2bAg8Hj9+fEyuOWPGDG3evFmNjY0qLCzUhAkTdMUVV2jBggUaOHBgTOYAAAAAACRHY2OjampqZBhGsm8FUfB6vWpra1NjY6McDoeGDx+u/Pz8ZN9W8sIRv9+vhx56KPDxnDlzYnLd9evXBx4fOnRIGzZs0IYNG/Twww9r+fLluuaaa6K6bnV1da+fr6uri+q6AAAAAIDwdBeMOByOHntdIvX4fL7A82cYhmpqalIiIElaOPLoo49q48aNkqTZs2fr/PPP79f1ysvLde2112ry5MkqKSlRR0eHPvroIz399NN6+eWXdezYMV1//fV66aWXNHPmzIivX1ZW1q/7AwAAAABEz+/3BwUjeXl5GjRokHJycuRwOJJ8dwiXYRhqbm7WkSNHdOLEiUBAMm7cuKSW2DiMJKxF2rBhg774xS/K6/WqqKhIH3zwgU455ZSor3fs2DEVFhb2+PklS5boa1/7miSppKREu3btUnZ2dkRzRPLDVlVVpdLS0oiuDwAAAADoWUNDg2pqaiSdDEZKS0sJRSzMMAxVV1frxIkTkqThw4eroKAgrHOrq6sDCxhi9f474StH/va3v2n27Nnyer3KzMzUypUr+xWMSOo1GJGkBQsW6N1339XSpUtVW1urVatW6atf/WpEc1RVVfX6+bq6Ok2ePDmiawIAAAAAwtPQ0BB4PGjQIIIRi3M4HBo0aFAgHGloaAg7HImHhIYje/bs0WWXXaajR4/K5XLp2Wef1dSpUxMy94IFC7R06VJJJ1euRBqOsBIEAAAAAJKnc7dTh8OhnJycJN8NYqGzJMowjKDdbJMhYQU9tbW1+uIXv6ja2lo5HA49/vjjmj17dqKm14QJEwKPO5diAQAAAACsoXO7XpfLxaoRm+jaTDfZ2zEnJBypr6/XjBkztHv3bknSL3/5S916662JmDqAbZ4AAAAAAEB34h6OHD9+XJdffrm2bdsmSXrooYd0xx13xHvaEJ3zSyebsgIAAAAAAEhxDkeam5t15ZVXavPmzZKk73//+/rOd74Tzyl7tGTJksDjRPU5AQAAAAAAqS9u4Uh7e7tmz56tN998U5J055136sc//nHE11m+fLkcDoccDocWLVoU8vnKykrt2rWr12ssWbJEy5YtkyQNGzYsob1OAAAAAABAaovbbjVf+cpX9PLLL0uSpk+frnnz5unDDz/scbzH49G4ceMinue9997T/PnzNW3aNM2cOVPl5eUaPHiwvF6vduzYod///vf685//LOlk454lS5YoNzc3ui8KAAAAAADYTtzCkVWrVgUev/rqqzrrrLN6HX/aaafp008/jWoun8+n9evXa/369T2OGTx4sJYtW6arr746qjkAAAAAAIA9xS0cSZRZs2Zp2bJlevvtt/X+++/rwIEDOnz4sAzD0KBBgzRx4kRdccUVmjt3rgoKCpJ9uwAAAAAAIMU4DPa4jYnq6mqVlZVJkqqqqlRaWprkOwKQTvx+Q61en7LcLjmdjrick2rjAQBAetm5c6e8Xq/cbrfGjh2b7NtBjETzvMbj/bflV44AQDrbVtugpRW7ta5yv1o6fMrOcGlm+TDNnzJKE0q6Xy0X6TmpNh4AAACINVaOxAgrRwAk2gtbarRw5VZ5/aH/jLudDi2eM1HXnD28X+ek2ngAAJC+WDliT6wcAQBEbVttQ4+hgiR5/Ya+vXKrCrIyNKYoT5K06+AJfXvlVvnCPCcVxi9cuVVji/JZQQIAAIC4IhwBAAtaWrG7x2Ckk89v6PblmyK6bqTnxHu8129oWcUeLZ4zMexzAAAAEs2OvdPmzp2rJ598ss+dZZcvX67bb79dkrRnzx6NGDEiMTcYY4QjAGAxfr+hdZX7k30bCbO2sk4/u+Es27zQAAAA9kHvNPtwJvsGAACRafX61NLhS/ZtJExLh0+t3vT5egEAgDW8sKVGV/+qQqs21wRem7V0+LRq88njL2ypSfIdIhKsHAEAi8lyu5TpdqrN60/2rSREdoZLWW5Xsm8DAABYgN9v6Ghze9zn+fhAY1i91oryMzXulPy43svAHA8rbGOAcAQALObD2uPy99FvpNO1Z5foJ9edJUn67qoP9MKW2rDPSZXxs8qL+Q8fAACE5Whzu8778fpk34akk73WvvLbv8Z9nvf+7YsanJcZ93nsjrIaALCQrVXH9NWlf1VHGOGI2+nQv/zDaGV7XMr2uLTgH0bL3UfI0PWcVBk/b8rIXscAAAAA/UU4AgAW8f6+o/rHpX9VY6u3z7Fup0OL50wMagQ2oaRAi+dM7DGQMJ+TauMBAACAeKGsBgAs4L29RzX38Y1qbAsORs45tVCnDc7Rnz48EOiQPqu8WPOmjOw2VLjm7OEaW5SvZRV7tLayrs9zEjV+yV8+CSmx+cVNZ+vKs0r689cGAAAAhIVwBIDtRLPPfKTnJHL8+1VHddvjm3TCFIxcPHaIfnvr+crKcMl/Y/jX71yx8bMbzgrrnESM/8VN52jTniOqPd4aOO4Ns68KAABAp4E5Hr33b1+M+zz3v/A3rams63Pcl84q1g+u/lxc72Vgjieu108XhCMAbCOafeYjPSfR4zPdTvn8RkhQMHXcUC255TxlZZzcxcXpdCjHE9k/6ZGeE+/x44blB4UjOw+cCPtcAAAA6eTrj0Q0J71j2hj96W/7e/1ljtvp0L9eMsayzVKdzpNdOPz+3ndIbGpqSsTtxB09RwDYQjT7zEd6TjLGt3n9If/pTjs9OBixC/M2dx8faEzSnQAAAPQuHXqn5eeffG127NixXsd99NFHCbib+GPlCADL21bboIUrt/aY3Hv9hhau3KrSgdkaP+zkf1A79kd2TrLHd5o8YqB+c8t5ynTbKxiRpLFFeUEf7zzIyhEAAJC6Iu21ZjUjR57cMbCxsVEfffSRTj/99JAx7e3t+t///d9E31pcEI4AsLylFbv7DBW8fkPX//rtiK4b6TnxHi9Jwwdm2zIYkUJXjuw93KTWDp/tVsgAAAD7iLTXmpVMnTo18Hjx4sX67//+76DPG4ahO++8U7W1teZTLYmyGgCW5vcbWle5P9m3kTD/9+EB+W3aqHSMaeWI35B2H7JHDSsAALC3zl5rdglGJOmcc87RBRdcIEn67W9/q7lz5+q1117T5s2b9dxzz2n69On6zW9+owsvvDDJdxobrBwBYGmtXl+gP0c6aOnwqdXri7j5qhXkZro1vDBbNcdaAsd2Hmy0/JJUAAAAq3riiSc0depUHTx4UE8++aSefPLJoM9/+9vfVnl5ud5+O7LV0KmIlSMALC3L7VJ2GpVdZGe4lGXTshpJGndK8OoRmrICAAAkz/jx47V582Z9/etf12mnnSaPx6OhQ4fqiiuu0Jo1a7R48eJk32LMEI4AsDSn06GZ5cPCGjvzzGF687vT9eZ3p+uKMyM7J1XGzyovttVyTbPQHWtoygoAAJBMw4cP12OPPaZPP/1UbW1tOnjwoNatW6dZs2ZJkubOnSvDMGQYhkaMGJHcm+0HwhEAljd/yqget1Hr5HY69M3pYzW8MFvDC7P1/00fG9E5qTJ+3pSRvY6xurGmcGQnK0cAAACQAIQjACwvmn3mIz0n1cbblbmsZu+RZrWmUU8ZAAAAJIf9OvoBSEvXnD1cBdkZuv2JTUHHr55Yoq9NHd1tqBDp3vSpNt6OzDvWGIa06+AJnTl8QJLuCAAAAOnAYRiGPfeETLDq6mqVlZVJkqqqqlRaWprkOwLSz5aqY7r2v94MfJzhdOjjB2bK4ei7R4ffb0S0N32qjbeTKQ+/quqjn+1Y8+iXJ2r2OfybCgBAutu5c6e8Xq/cbrfGjh2b7NtBjETzvMbj/TdlNQBso76xLejjIfmZYQUjUuR706faeDsxN2XdSVNWAAAAxBnhCADbqD9hCkfyMpN0J+iPsSHb+RKOAAAAIL4IRwDYRmg44knSnaA/xhWZVo4cZMcaAAAAxBfhCADbqD/RHvQxK0esyVxWs+9Is1ra2bEGAAAA8UM4AsA2DplXjuQTjljRmKI8dW0VYxjSJ4corQEAAED8EI4AsI2QhqysHLGkbI9LZQNzgo59fIDSGgAAAMQP4QgA26DniH2MLaIpKwAAQDowDCPZtyCJcASAjZh7jgxl5YhljTX1HdlFU1YAANKey+WSJHm9Xvl89COzA5/PF3guO5/fZCEcAWAL7V6/jrd0BB2j54h1jWM7XwAAYJKT81nZ7bFjx5J3I4iZrs9j1+c3GQhHANjCkab2kGP0HLEu8441VUfZsQYAgHRXWFgYeHzw4EEdPHhQra2tKVOWgfAYhqHW1tbAc9hp4MCBSbwryZ3U2QEgRsz9RlxOhwqzM5J0N+iv0UNP7ljT+VrHMKRdB0+ovHRAcm8MAAAkTVZWlgYMGKDjx49Lkg4fPqzDhw/L4XAkvSQD4fP5fCGB1oABA5SZmdxfbBKOALAF8za+g3I9cjodPYxGqsv2uHTqoBztPdwcOPbxgUbCEQAA0lxxcbE8Ho8OHToUOGYYhrxebxLvCv0xdOhQDR48ONm3QTgCwB7Yxtd+xhblBYcjNGUFACDtORwODRkyRAUFBTpx4oSamprU3t4uv9+f7FtDmJxOpzwej3Jzc5WXlyePJzV2mCQcAWAL5p1q2MbX+saekq/12z+rQ91JU1YAAPB3Ho9HgwYN0qBBg5J9K7AJGrICsAVzzxG28bW+0B1rWDkCAACA+CAcAWAL5nCEbXytb2xR8I411Udb1NxOPTEAAABij3AEgC2EhCOU1VjemKI8mXvq7jpIaQ0AAABij3AEgC3UN5p7jrByxOqyMk7uWNPVx/QdAQAAQBwQjgCwhdCVI4QjdjD2lODSmp30HQEAAEAcEI4AsDyvz68jzawcsaOxRTRlBQAAQPwRjgCwvKPNHTKM4GND8uk5YgfjTCtHKKsBAABAPBCOALA8c0mNwyENyiEcsYOxpu18a461qKmNHWsAAAAQW4QjACzPHI4MzPHI7eKfNzsYPZQdawAAABB/vHsAYHls42tfWRkunTY4N+gYfUcAAAAQa4QjACyPbXztzdyUdScrRwAAABBjhCMALI9tfO0ttCkrK0cAAAAQW4QjACzvEOGIrZmbsu5kxxoAAADEGOEIAMurP2Eqq2EbX1sZWxS8cqTmWItOsGMNAAAAYohwBIDl1TeycsTORg3NDdmxZielNQAAAIghwhEAlmfuOTKUcMRWsjJcGmHasYbSGgAAAMQS4QgAS/P7DR1uYrcauwvpO3KQlSMAAACIHcIRAJZ2vKVDPr8RdIyeI/YTumMNK0cAAAAQO4QjACzNXFIjSYNyCUfsZkyReccaVo4AAAAgdghHAFiaeRvfgiy3Mt2uJN0N4sW8cqT2eKsaWzuSdDcAAACwG8IRAJYWuo0v/UbsaNTQXLlMW9bsPEhpDQAAAGKDcASApbGNb3rIdLt02uCcoGOU1gAAACBWCEcAWBrb+KaPcUU0ZQUAAEB8EI4AsDRzODIkj2asdjUuZDtfwhEAAADEBuEIAEsL6TnCyhHbGmtqykpZDQAAAGKFcASApYWsHKEhq22NNa0cqTveqgZ2rAEAAEAMEI4AsDQasqaPkUO62bGGviMAAACIAcIRAJZlGEY3ZTX0HLGrTLdLI9ixBgAAAHFAOALAshrbvGr3+YOOsXLE3sadwo41AAAAiD3CEQCWZS6pkQhH7C6kKetBVo4AAACg/whHAFiWuaQm1+NStseVpLtBIpi38/2YshoAAADEAOEIAMtip5r0Yy6rOdDQpuMt7FgDAACA/iEcAWBZIeEIJTW2N2JwrtymHWt2UVoDAACAfiIcAWBZodv4slON3XncTo0Ykht0jKasAAAA6C/CEQCWdShkG19WjqQDc9+Rj/Y3hH2u32+oud0rv9+w5HgAAADEhzvZNwAA0aKsJj0VZgevEPrd23vV0OrV/CmjNKGkoNtzttU2aGnFbq2r3K+WDp+yM1yaWT6sx3NSbTwAAADiy2EYBr+uioHq6mqVlZVJkqqqqlRaWprkOwLsb/Zjb+r9fccCH//o2jN1ywWnJe+GEHcvbKnRt57bou4WWridDi2eM1HXnD085JyFK7fK281J3Z2TauMBAAAQLB7vv1k5AsCyzCtHhtJzxNa21TZo4cqt3QYjkuT1G/rWc1t0oKFVpQNzJEnVR5v10LodYZ+TCuMXrtyqsUX5rCABAABIIMIRAJZV30jPkXSytGJ3t6stuvIb0oNrd0R03UjPifd4r9/Qsoo9WjxnYtjnAAAAoH9oyArAkprbvWrp8AUdIxyxL7/f0LrK/cm+jYRZW1lHk1YAAIAEIhwBYEnmVSOSNJiyGttq9fpCwjA7a+nwqdWbPl8vAABAshGOALCkQ6Z+I5lup/IyqRS0qyy3S9kZrrDGOiSNGpKjUUNy5Ajz+g5JIwdnp8z47AyXstzhfb0AAADoP8IRAJbU3Ta+Dke4bz1hNU6nQzPLh4U19rpzS/Xq3dP06t3TNPvc8HZ9ue7cUr32/6anzPhZ5cVyOvl+BgAASBTCEQCWFBKO5NNvxO7mTxkldx+Bgdvp0LwpI6M+J9XGAwAAIDEIRwBYkrnnCNv42t+EkgItnjOxx3DB7XRo8ZyJQVvgRnpOqo0HAABAYlCgD8CSuiurgf1dc/ZwjS3K17KKPVpbWaeWDp+yM1yaVV6seVNGdhsqRHpOosb/cPXf9M7uI4HjORku/eHrXyAYAQAASAKHYRjsFRgD1dXVKisrkyRVVVWptLQ0yXcE2NvXf/+e1n342dau35g2RndffnoS7wiJ5vcbavX6lOV2hd2fI9Jz4jl+a9UxXfNfbwY+djkd+uhHV8jtYlEnAABAb+Lx/ptXYAAsKXTlCGU16cbpdCjH446ocWmk58Rz/PCB2UEf+/yGDjS29TAaAAAA8UQ4AsCS6k8E9xyhISusZnCuR1kZwf8N1xxtSdLdAAAApDfCEQCWVN9IzxFYm8Ph0PDC4NUjNceak3Q3AAAA6Y1wBIDltHb41NjmDTpGOAIrGj4wJ+jj6iOsHAEAAEgGwhEAlnO4qT3k2FDCEVhQ6MoRwhEAAIBkIBwBYDnmkpoMl0MF2exMDuspHUg4AgAAkAoIRwBYjnmnmsG5mXI4wt+xBEgVIStHaMgKAACQFIQjACwnZBvffLbxhTV1t3LEMIwk3Q0AAED6IhwBYDkh2/jSbwQWNdwUjrR5/SHf3wAAAIg/whEAlnOIbXxhE0X5WXI7g0vCqo+ynS8AAECiEY4AsJyQshrCEViUy+lQcWFW0DGasgIAACQe4QgAywkNR+g5AuuiKSsAAEDyEY4AsBxzT4ah+awcgXUNL8wJ+piVIwAAAIlHOALAciirgZ2E7FjDyhEAAICEIxwBYCkdPr+ONXcEHSMcgZWZd6xh5QgAAEDiEY4AsJQjTaHbnNJzBFZWauo5Un20RYZhJOluAAAA0hPhCABLMW/j63RIhTmEI7Au88qRE21eNbR4k3Q3AAAA6YlwBIClmPuNDMrNlMvpSNLdAP1XPCBbDtO3cPWx5uTcDAAAQJoiHAFgKeadaiipgdV53E4VmXZcoikrAABAYhGOALAU88oRtvGFHZQOZDtfAACAZCIcAWAp9Y1s4wv7GV7Idr4AAADJRDgCwFLMK0coq4EdmJuyVhOOAAAAJBThCABLCe05wsoRWF/IyhHKagAAABKKcASApYSuHCEcgfWZV44QjgAAACQW4QgASwkJR2jIChsoNa0cOdLUruZ2b5LuBgAAIP0QjgCwDJ/f0JEmtvKF/ZhXjkhSLatHAAAAEoZwBIBlHG1ul98IPjaUshrYQI7HrUG5wUEfTVkBAAASh3AEgGWYS2okaWAuK0dgD+amrIQjAAAAiUM4AsAy6huDS2oG5mQow8U/Y7AHdqwBAABIHt5VALAMdqqBnYXsWMPKEQAAgIQhHAFgGYQjsDNWjgAAACRPXMORzZs368EHH9TMmTNVVlamzMxM5eXlady4cZo7d67eeOONmM+5YsUKXX755SouLlZWVpZGjBihW265Re+8807M5wKQWIfYxhc2VsrKEQAAgKRxx+vCU6dO1V/+8peQ4+3t7dq5c6d27typJ598UrfccouWLl0qj6d/TRVbW1t14403avXq1UHH9+7dq7179+qZZ57RokWLdN999/VrHgDJY+45wja+sBNzWc2Bxla1e/3yuFnkCQAAEG9xe8VVU1MjSSopKdGdd96pP/zhD9q4caPefvtt/fznP9fw4cMlSU899ZTmzp3b7/nmzZsXCEamTZum559/Xhs3btSyZcs0evRo+f1+3X///Vq6dGm/5wKQHJTVwM5KC3OCPjYMaf/x1iTdDQAAQHqJ28qR8ePH68EHH9T1118vl8sV9LkLLrhAt9xyiy666CJ9/PHHevbZZ/X1r39dF198cVRzbdiwQc8884wk6aqrrtIf//jHwJyTJk3S1VdfrfPOO0/79u3TPffcoxtuuEGFhYX9+voAJJ45HBlKOAIbKch2Ky/TrRNt3sCx6qPNOnVwTi9nAQAAIBbitnJk9erVmjNnTkgw0mnIkCFavHhx4OM//OEPUc/105/+VJLkcrn02GOPhcw5ZMgQPfzww5Kko0ePatmyZVHPBSB5QlaO5FNWA/twOBwhTVmracoKAACQEEktZL7kkksCjz/55JOornHixAm98sorkqQZM2aotLS023HXXXedCgoKJEmrVq2Kai4AyeP3Gzp8wtxzhJUjsBe28wUAAEiOpIYj7e2fvdFxOqO7lY0bN6qt7eRvk6dOndrjOI/HowsuuCBwTkdHR1TzAUiOhtYOef1G0DHCEdhNyI41rBwBAABIiKSGIxs2bAg8Hj9+fFTX2L59e9jX6Py81+vVzp07o5oPQHKYS2okaVAuZTWwF3NZDStHAAAAEiNuDVn74vf79dBDDwU+njNnTlTXqaqqCjzuqaSmU1lZWdB5EyZMCHue6urqXj9fV1cX9rUARO6QaRvf/Cy3sjK672kEWFVIWQ0rRwAAABIiaeHIo48+qo0bN0qSZs+erfPPPz+q6zQ2NgYe5+Xl9To2Nzc38PjEiRMRzdM1WAGQeOxUg3RgXjlSe6xFPr8hl9ORpDsCAABID0kpq9mwYYO++93vSpKKior061//Ouprtba2Bh57PL0vsc/M/OzNVEsLv40DrCRkpxrCEdiQeeWI12/oYGNrD6MBAAAQKwlfOfK3v/1Ns2fPltfrVWZmplauXKlTTjkl6utlZWUFHndt8NqdzsatkpSdnd3LyFBdy3e6U1dXp8mTJ0d0TQDhYxtfpIMhuZnyuJ1q9/oDx2qOtqh4QGT/ZwEAACAyCQ1H9uzZo8suu0xHjx6Vy+XSs88+2+sOM+HIz88PPO6rVKapqSnwuK8SHLO++pkAiK/6Rrbxhf05nQ4NL8zWnvrP/r+qOdai6ApPAQAAEK6EldXU1tbqi1/8ompra+VwOPT4449r9uzZ/b5u19Cir6apXVd/0EMEsBbKapAuzNv5VrNjDQAAQNwlJBypr6/XjBkztHv3bknSL3/5S916660xuXbXHWd27NjR69jOz7vdbo0ZMyYm8wNIDMIRpIuQ7XzZsQYAACDu4h6OHD9+XJdffrm2bdsmSXrooYd0xx13xOz6kyZNCjRi3bBhQ4/j2tvb9c4774ScA8Aa6k+Yy2r4GYY9mcMRVo4AAADEX1zDkebmZl155ZXavHmzJOn73/++vvOd78R0jvz8fF166aWSpPXr1/dYWrNq1So1NDRIUkzKeQAkjmEYOhTSkJWVI7An8441NUebk3QnAAAA6SNu4Uh7e7tmz56tN998U5J055136sc//nHE11m+fLkcDoccDocWLVrU7Zi7775bkuT1enXHHXfI5/MFfb6+vj4QyhQWFmr+/PkR3weA5DnR5g3avUOShlJWA5vqrqzGMIwk3Q0AAEB6iNtuNV/5ylf08ssvS5KmT5+uefPm6cMPP+xxvMfj0bhx46Kaa/r06brpppu0YsUKvfjii5oxY4buuusulZSUqLKyUg888ID27dsn6WRZz8CBA6OaB0BymEtqJGkwZTWwKfPKkdYOv440tWswgSAAAEDcxC0cWbVqVeDxq6++qrPOOqvX8aeddpo+/fTTqOd7/PHH1dDQoLVr1+q1117Ta6+9FvR5p9Op++67TwsWLIh6DgDJYW7GmuNxKceT0J3IgYQZVpAll9Mhn/+z1SI1x1oIRwAAAOIoYVv5xlt2drbWrFmjp59+WjNmzFBRUZE8Ho/Kysp08803q6KioseyHACprb6RnWqQPtwup4YVZAUdq6EpKwAAQFzF7VevsaqPnjt3rubOnRv2+Jtvvlk333xzTOYGkBpCt/GlpAb2NnxgdtAWvuxYAwAAEF+2WTkCwL4OhWzjy8oR2FtpN01ZAQAAED+EIwBSXsjKEbbxhc2Zm7KycgQAACC+CEcApDx6jiDddLedLwAAAOKHcARAyjOvHBlKzxHYXOnAnKCPa442J+lOAAAA0gPhCICUV0/PEaQZc1lNQ6tXDa0dSbobAAAA+yMcAZDy6DmCdFM8ICvkGNv5AgAAxA/hCICU1tzuVXO7L+gYK0dgd1kZLg01hYCEIwAAAPFDOAIgpR02ldRI0mB6jiAN0JQVAAAgcQhHAKS0Q6aSGo/bqfxMd5LuBkgcc98RwhEAAID4IRwB0oDfb6i53Su/37DcePM2vkPzMuVwOMKaB7CyUnM4QlkNAABA3PDrV8DGttU2aGnFbq2r3K+WDp+yM1yaWT5M86eM0oSSAkuM//XrnwQda273alttQ7fjATspNZXVVLNyBAAAIG4chmGE96te9Kq6ulplZWWSpKqqKpWWlib5jpDuXthSo4Urt8rbzeoMt9OhxXMm6pqzh9tmPGA3r+44oH9a/m7g4yF5Hr37bzOSeEcAAACpIR7vvymrAWxoW21Dj8GCJHn9hhau3KpttQ22GA/Y0fDCnKCP60+0q7XD18NoAAAA9AdlNYANLa3Y3WOw0MnrN3T9r99UYY5Hx5rbLTl+WcUeLZ4zsddxgFWZG7JKJ5uyjh6al4S7AQAAsDdWjgA24/cbWle5P6yxLR1+1R1vVUuH35Lj11bWhd0EFrCavEy3BmRnBB2jKSsAAEB8EI4ANtPq9aklTZbet3T41OpNj68V6SlkxxqasgIAAMQF4QhgM1lul7IzXMm+jYTIznApy50eXyvS0/BCtvMFAABIBMIRwGacTodmlg8La+yUMUP05D9N1kVjBlty/KzyYjmdjrDGAlZk7jtSfbQ5SXcCAABgb4QjgA3NnzJK7j5CA7fToXtnnaGp44bq+7MmWHL8vCkjex0DWF3IyhHKagAAAOKCcASwoQklBb3u4uJ2OrR4zkRNKCkIGt9TIJHq4wG7Cuk5QlkNAABAXLCVL2BT15w9XD9/+WPtPfLZMnyPy6mrJpZo3pSRIcHCNWcP19iifC2r2KO1lXVq6fApO8OlWeXFlhgP2NHwwpygj/c3tKrD51eGi99tAAAAxJLDMAz2wYyB6upqlZWVSZKqqqpUWlqa5DsCpCkPv6rqLr9pXnLLebr8c333I/H7DbV6fcpyu8Lq6ZFq4wG7ONrUrnN+9OegY2/cM01lg3J6OAMAAMD+4vH+m189ATbW1OYN+jg/K7zFYk6nQzked9hBRKqNB+yiMCdDOZ7gHZnoOwIAABB7hCOAjTW1+4I+zvVQSQdYicPhCGnKWk3fEQAAgJgjHAFsqsPnV7vXH3QsN5NwBLAa83a+NGUFAACIPcIRwKbMJTWSlEc4AlhO6Ha+zT2MBAAAQLQIRwCbMpfUSFJOpqubkQBSWcjKEXqOAAAAxBzhCGBT3a0coecIYD2lA4N3pqGsBgAAIPYIRwCbMocjWRlOudjtBbAcc1lN7bFW+f1Gku4GAADAnghHAJtqagsuq6HfCGBNpaaymnafX/Un2pJ0NwAAAPZEOALYVFN78MqRHEpqAEsampcpjyv4v+sqSmsAAABiinAEsClzWQ3b+ALW5HQ6VFyYFXSMpqwAAACxRTgC2JQ5HMljpxrAskK282XlCAAAQEwRjgA2Zd7Kl7IawLrMfUdqjjUn6U4AAADsiXAEsKnQlSOEI4BVDS8M3s63+kh44Yjfb6i53RvR7jaRnhPv8QAAAInAuyXApsy71eR4KKsBrMph2oV7w8f1+vbKLZo/ZZQmlBSEjN9W26ClFbu1rnK/Wjp8ys5waWb5sB7HR3NOvMcDAAAkEitHAJuiIStgDy9sqdEv1u8MOmZIWrW5Rlf/qkIvbKkJGX/1ryq0anONWjpOhqQtHb4ex0dzTrzHAwAAJBrvlgCbMm/lS1kNYD3bahu0cOVW+YzuS1C8fkPfXrlVhiGNHJKrPfVNWvg/W+XroWTFPF5SxOfEY/zClVs1tiifFSQAACBpeLcE2JR55UgOu9UAlrO0Yre8ffTm8PkN3fXclrCvGen4RMzh9RtaVrFHi+dMjOi+AAAAYoWyGsCmzD1HWDkCWIvfb2hd5f5k30bCrK2so0krAABIGsIRwKbMZTVs5QtYS6vXF+jPkQ5aOnxq9abP1wsAAFIL4QhgU6Fb+VJWA1hJltul7Izwf24j3ZAq0+1QptvR98B+zBHJ+OwMl7Lc/DsFAACSg3AEsKmmdvNWvqwcAazE6XRoZvmwsMZef26pPn7gSl137vCwx3/041n66MezIjon0jkiGT+rvFhOZ2RhDQAAQKwQjgA2xVa+gPXNnzJK7j4CA7fToXlTRkY1PhFzRHNPAAAAiUY4AtiQ32+ouZ2GrIDVTSgp0OI5E3sMF9xOhxbPmRjYAjfS8YmYI5p7AgAASDTeLQE21NxNE8ecSJsFAEgJ15w9XGOL8rWsYo/WVtappcOn7AyXZpUXa96UkSGhQqTjEzFH5/iH/m+7/vJxfeC40yE9f8dFOnP4gBj+jQEAksnvN9Tq9SnL7QqrXDLVxkd7DqzPYRgG++bFQHV1tcrKyiRJVVVVKi0tTfIdIZ0daGjV5x98JejY+/fN0MBcT5LuCEAspOILwkjGH2xs1eQHgv9teuOeaSoblBPWvQEAUte22gYtrditdZX7A6H5zPJhmj9lVLfBfKqNj/YcJEc83n8TjsQI4QhSye5DJzR98YagYx/9+AplshMEgCQyDENn/eBlNbZ+1hNp+e2TdMnpRUm8KwBAf72wpUYLV26V1x/61rKzfPKas4en7Phoz0HyxOP9Nz1HABtqagsuq8lwOQhGACSdw+HQqKF5Qcd2H2pK0t0AAGJhW21Dj6GCJHn9hhau3KpttQ0pOT7ac2A/9BwBbKipPXinGrbxBZAqRg/J1daqY4GPd9efSN7NAAD6bWnF7h5DhU5ev6EFT72rc08bqM17j6bUeElhn7OsYo8Wz5nY6zhYF++YABsyb+PLTjUAUsWooblBH7NyBACsy+83tK5yf1hjq462qOpoS9jXTrXxkrS2sk4/u+GskB5bqdZUNhE9yuyId0yADTWZtvHNzaSkBkBqoKwGAOyj1etTSze7JNpVS4dPx1raNSg3U1LqNZVNRNNaOyMcAWzIvHKEshoAqcK8cmR/Q6tOtHlZ4QYAFvTytgPJvoWEm/bI65pzfpmGFWTpJ+t2BJXjtHT4tGpzjV7cUhtWk1grjU8HNGQFbIiyGgCpasTgXDlMK3b3sHoEACzlRJtXC1du1V0rtoR9zvhh+bpj2midPiyv78EJHB/JOZJ0vMWr376xRz9asz1lmsomomltOuAdE2BD5t1qcjyU1QBIDVkZLg0vzFZ1lzrv3fUnVF46IIl3BQDxkWq9IqLpLWE+5/19R3XXc1u093BzWOdLJ7fC/fmcszWhpEBXlpfo6l9V9NoANZHjJYV1TqS8fkNf+/17Ov+0gXp375GwGr6m2vh0a0BLOALYkHm3GlaOAEglo4bmBYUjn7ByBIDNpFqviGh6S3R3zsghudqxv0Hdva92SOru7bbb6dDiORMD80woKdDiORN7XLmQ6PHhnON0SGNPyddH+xu7+6vq0b4jzdp3JPwQKdXG99SA1q54xwTYUEjPERqyAkgho4bk6i8fHwp8vPsQ2/kCsI9U6xURTW+Jns7ZVhdaZpGX6daPrz1T407J17KKPVpbWRcIU2aVF2velJEhAcw1Zw/X2KLUGR/uOXvqm7T8zT168u29IefbUUuHT61eX9r0L3QYhhG7tUNprLq6WmVlZZKkqqoqlZaWJvmOkM7uWvG+nt9SG/h4wdRR+t7MM5J4RwDwmafe/lT3vfC3wMcTigu09s6Lk3hHABAb22obwirpePEbUzShpCDlxof7NXQ699RC/eKmc1Q2KCdwLNVKg2JRSmT+3Of+/U9psUtPdoZLf/vB5Sm5ciQe77/TIwIC0ox5K9+8NEl7AViDeTvfPfVN8vuNlHzxBQCRWFqxO6xeDtf8qkLZHpda2n0pNV5SWOdI0hnF+Vq54EK5XcF7fDidjohWGqTa+L7OcTodmlk+TKs21/R5nXGn5Gv6+CK9uuOAPj7Q9yrJVBs/q7w4rf5vZrcawIZCy2oIRwCkjtGmcKSlw6f9Da1JuhsAiA2/39C6yv1hje3wG2po9aojzAagiRofyTmf1jfLad5+LE3MnzJK7j5CA7fTof/48tn67szx+o8vn2PJ8fOmjOx1jN0QjgA2FLqVLz1HAKSOUwoylWvaRWs3TVkBWFyr15cWpRadOvtRpKPOBq49BQw9NYm16vh0wa+TARsyl9WkSxMlANbgcDg0cmiuPqz5rLHf7voTmjJ2SBLvCgD6J8vtUnaGK20CkuwMl7Lc6fsLuFRrKpuIprV2R0PWGKEhK1LJhT95RXXHP1ui/sTcSZo2viiJdwQAwf6/Z9/Xi1s/axw99wsjtOjqzyXxjgCg/769cktYvSimjhuqb0wfo1+9uksbuuzelezxksI+5/pzS7V4zsQ+x6WDVGsqm4imtckWj/fflNUANhTSc8STvqk+gNQ0amhu0MefsJ0vABu46qySPse4nQ5954rxmjRikL5zxfiwej8kanwk56RbP4redDZwDTdYsPp4uyIcAWzGMIyQsppcGrICSDHmHWvoOQLADv68/UCvn7dCbwn6USBd8Y4JsJk2r18+U5fxPMIRAClm1JDglSO1x1vU2uFTVgYr3QBYU+2xFv3Pu1VBx9xOh7x+w3K9JehHgXREz5EYoecIUsXhE20678frg45t/P6lKsrPStIdAUCo5navJtz/p6Bj6+68WGcU84IbgDXd/8KH+t3bewMfe9xObfh/l2hAdkbK9IqIpreEFftRwP7oOQKgT01toR3SWTkCINXkeNwqHhAc2tJ3BIBVHWho1YpNwatGvjKpTMUDslOqV0Q0vSXoR4F0QTgC2ExTe3AzVofj5FZrAJBqzE1Z6TsCwKqWbNitdq8/8HGGy6EFU0cn8Y4ARIpwBLAZ8041uR63HA6SfgCpZ9QQc1NWVo4AsJ6Dja16+q97g47deH6ZSgqzk3RHAKJBOALYTOhONawaAZCaRptXjtSzcgSA9Sx9Y4/auqwacTsd+jqrRgDLIRwBbKa7lSMAkIq6286XPvEArOTwiTY99XbwqpHrzy1V2aCcJN0RgGgRjgA2ExKO0IwVQIoy9xw50ebVoca2JN0NAERuWcUetXR8tmrX5XToX6exagSwIsIRwGbM4UiOh7IaAKmpZEC2sjKCX4p8QlNWABZxrLldT771adCxa84u0WmDc7s/AUBKIxwBbMbcc4RtfAGkKqfToRGDzX1HaMoKwBoer9gT9LrL6ZDumDYmiXcEoD8IRwCbCVk5QjgCIIWN7qbvCACkuuMtHXrizU+Djl01sSTk3zQA1kE4AtiMORzJY7caACnM3HeE7XwBWMGTb32qxi6vuRwO6RusGgEsjXAEsJmQrXzZrQZACgsJR9jOF0CKa2zt0LKKPUHHZp1ZrLGn5CfpjgDEAuEIYDOU1QCwklFDgpegVx1pVpvX18NoAEi+3729V8dbOoKOfWM6q0YAqyMcAWwmtCErZTUAUpd55YjfkPYdbk7S3QCIJ7/fUHO7V36/YcnxktTY0qHf/uWToGOXf+4UnVFcEPY1AKQmfqUM2EzoVr78mANIXflZGRqan6lDjW2BY58cOsHydMBGttU2aGnFbq2r3K+WDp+yM1yaWT5M86eM0oSS0FAh1cZ3PeelrbXq8AWHKd+cPjbKvxkAqYR3TYDNhDZk5cccQGobNSTXFI7QdwSwixe21Gjhyq3ydlmd0dLh06rNNXpxS60Wz5moa84enrLjezqnk0MnA90zhw+I7i8IQMrgXRNgM03t5pUjlNUASG2ji/L01z1HAh+znS9gD9tqG3oMFSTJ6zf07ZVbVZCdobFFedp58IS+vXKrfCkyXlKf5xiSFq7cqrFF+T2uOgFgDYQjgM00tZl7jvBjDiC1jRpi3rGG7XwBO1hasbvHYKSTz2/o9ic2hX3NVBsvnQxVllXs0eI5EyM6D0BqoSErYDPmsppcwhEAKW700OAda3YfapJhhN8gEUDq8fsNravcn+zbSJi1lXURNXYFkHoIRwAb8fr8avP6g47lslsNgBRn3rHmeEuHjjS1J+luAMRCq9enlo702Za7pcOnVrYhByyNcASwEfM2vhIrRwCkvtKBOfK4gl+S7K6n7whgZVlul7Iz0ucXNNkZLmW50+frBeyIcASwEXNJjcRWvgBSn8vp0GmDc4KO7T5E3xHAypxOh2aWDwtr7DVnl+hvP7hcV08sSanxkZwzq7xYTqcjrLEAUhPhCGAj3YUjuexWA8ACzKU17FgDWN/8KaPUV17gdjq04B9GKzfTra9NHS13Hyckcnwk58ybMrLXMQBSH+EIYCPmsppMt1NuFz/mAFLfKFNT1k8IRwDLO6M4X4PzMnv8vNvp0OI5EwNb4E4oKdDiORN7DCMSPT7acwBYE+vtARsxrxxhG18AVsF2voD9fFjToEONbSHHszNcmlVerHlTRoaECtecPVxji/K1rGKP1lbWqaXDl9Tx0Z4DwHocBnvlxUR1dbXKysokSVVVVSotLU3yHSEdvfy3/fqXp94LfHzqoBz95Z5pSbwjAAjPe3uP6vpfvxX42O10aPuPrlAGq98Ay3pgzTb99o09gY9LB2bpT3f9g7Iz3GH15/D7DbV6fcpyu1JifLTnAIi9eLz/5hUHYCNN7cErR3LoNwLAIkabeo54/YaqjjQn6W4A9Jffb2j1B3VBx66eOFy5mRlhhwpOp0M5nvCClESMj/YcANZAOALYSFNbcM8RymoAWEVhjkeDcz1Bx2jKCljXu3uPqu54a9Cxq88Ob+cXAEgGwhHARsw9R3IIRwBYiHnHmk/YzhewrBe31gR9PO6UPI0fRm8OAKmLcASwkdCGrJTVALCOUUOCd6xh5QhgTR0+v9ZW7g86dvVEVo0ASG2EI4CNmLfyzfGwcgSAdZhXjrBjDWBNb31yWEea2oOOfekswhEAqY1wBLARtvIFYGWjhrJyBLCDF7fUBn08sXSARpi26waAVEM4AtiIeeVILmU1ACzEvHLkcFO7jjd3JOluAESjtcOnl/8WXFJzFSU1ACyAcASwkZCGrJTVALCQUwflyG3aHvMTSmsAS3n9o4Nq7PJ6xOGgpAaANRCOADZCWQ0AK8twOXXqoJygY5TWANby0ta6oI8njxikYQOyknQ3ABA+whHARprazStHKKsBYC0hTVnZzhewjBNtXq3ffiDo2NVns2oEgDUQjgA20tQW3HOElSMArIamrIB1/XnbfrV5/YGP3U6HZp1ZnMQ7AoDwEY4ANhLSc4RwBIDFjBrCdr6AVZl3qbl47BANzPUk6W4AIDKEI4CNhPYcoawGgLWYV458erhZPr+RpLsBEK6jTe16Y2d90DF2qQFgJYQjgE34/YaaO8xb+bJyBIC1jDb1HGn3+lVztCVJdwMgXOs+3C9vlyAz0+3UZZ8blsQ7AoDIEI4ANtHS4ZNh+uVqLlv5ArCYQbkeDcjOCDrGdr5A6ntxa03Qx5eeUUTvMwCWQjgC2IR5pxqJlSMArMfhcHSzYw1NWYFUtv94q/6650jQsaspqQFgMYQjgE2Yd6qR2MoXgDWNGhLcd+QTtvMFUtqayrqg1at5mW5dcnpR8m4IAKJAOALYhLkZq9vpUKabH3EA1hO6coRwBEhlL24N3qXmss+doqwMfkEDwFp45wTYhDkcyc10y+FwJOluACB65qaslNUAqWvv4SZtrToWdIySGgBWRDgC2IS550guJTUALMq8ne/BxjY1tnYk6W4A9OYl06qRQbkeXTRmSJLuBgCiRzgC2IS55wjNWAFY1WmDc+Q0LXzbU8/qESAVvbS1LujjWeXDlOHiLQYA6+FfLsAmzGU1OYQjACwq0+1S6cCcoGOU1gCp56P9jfroQGPQsavOoqQGgDURjgA20dQevHIkL5OyGgDWZW7K+snBxh5GBvP7DTW3e+X3G30PjvKceI9HekjF77tIz3lhS3XQx8UDsjRpxKCw5wOAVMKvlgGbCFk54uHHG4B1DcjOCPr4sdd3q+Z4q+ZPGaUJJQUh47fVNmhpxW6tq9yvlg6fsjNcmlk+rMfx0ZwT7/FID6n4fRfVHG/s1h/frwk6fuGoQXKaa+IAwCIchmHE7dcYBw8e1MaNG7Vx40Zt2rRJmzZt0uHDhyVJt912m5YvXx6TeRYtWqQf/OAHYY197bXXdMkll8Rk3q6qq6tVVlYmSaqqqlJpaWnM5wB685O127XkL7sDH88+Z7ge/fLZybshAIjSC1tq9K3ntqi7X167nQ4tnjNR15w9PGj8wpVb5e3mhO7GR3NOvMcjPaTi910s53A5Hfo539sAEiAe77/j+qvlU045JZ6XB9BFyG41lNUAsKBttQ1auHJrt8GIJHn9hr713BbtqW9SSWG2ao+16D9f2Rn2eEkRnxOP8QtXbtXYonxWkKSRzu/t7kIFKfT7It7j43FPPr63AVhYwtbdl5WV6YwzztDLL78c13kqKyt7/fzIkSPjOj+QLCG71VBWA8CCllbs7vGNVye/If3H+p1hXzPS8YmYw+s3tKxijxbPmRjRfcG6wvne9voNfemXb8jtdMrr9/cYsMVi/MmP4zMH39sArCiu757uv/9+TZo0SZMmTdIpp5yiTz/9NO7hxJlnnhnX6wOpytxzhK18AViN329oXeX+ZN9GwqytrNPPbjiLHg1pIJLvbb8htfv84V87zuOjOYfvbQBWFNd3T+H2AQHQf+aymhwPZTUArKXV61NLh6/vgTbR0uFTq9dHA+00wPc2AKQ+tvIFbMJcVpPHyhEAFpPldik7I7xg1+mQykvyFe4vpp0O6azhBTpreEFE50Q6RyTjszNcynITZKeDSL637YDvbQBWRDgC2ETIVr6EIwAsxul0aGb5sLDGzj6nVC/9f/+ga88Jb1eM2eeU6sVvXqwXv3lxROdEOkck42eVF1N2kCYi+d6+dHyRVn9ziqaPL4rr+HjOwfc2ACuyXTgyY8YMDR48WB6PR0VFRbrkkkv00EMP6ejRo/26bnV1da9/6urqYvQVANExhyN57FYDwILmTxkldx9vqtxOh+ZNGRnV+ETMEc09wf7mTxklRx95gdvp0MLLTteZwwfo7stOD+v7KNrx8ZyD720AVmS7cGT9+vU6cuSIOjo6dOjQIW3YsEHf+973NGrUKL3wwgtRX7esrKzXP5MnT47hVwFErqmd3WoAWN+EkgItnjOxxzdgbqdDi+dMDGwTGun4RMzR13iHFHJPsL9TB+coo5dgId7fd8n4WQAAK7HNu6fy8nJde+21mjx5skpKStTR0aGPPvpITz/9tF5++WUdO3ZM119/vV566SXNnDkz2bcLxJRhGOxWA8A2rjl7uMYW5WtZxR6traxTS4dP2RkuzSov1rwpI0PeeEU6PhFzdB3/0tbakJ0+vjB6SIz+tmAVL26pVbsvdB/ceH3fpcrPAgBYhcMwjD52K4+drlv53nbbbVq+fHlMrnvs2DEVFhb2+PklS5boa1/7miSppKREu3btUnZ2dkRzVFdX9/r5urq6wOqRqqoqlZaWRnR9oD/avD6d/m//F3Tstbsv0cghuUm6IwCIDb/fUKvXpyy3K6weBpGOT8QczW1enffjP6ul47OA5EfXnqlbLjgtrPuDPVz1ywpV1hwPfHzp+CL98uZz4vZ9l4o/CwAQK9XV1SorK5MUu/fftiir6S0YkaQFCxZo/vz5kqTa2lqtWrUq4jlKS0t7/VNcXBzNrQMxYd6pRpJy2coXgA04nQ7leNxhv/GKdHwi5sjJdGvGhOBmnGs+qA37/mB9ldXHg4IRSfrHC06L6/ddKv4sAEAqs0U4Eo4FCxYEHm/YsCGJdwLEnrmkRqKsBgBSyazy4F+i/HXPER1sbE3S3SDRntm4L+jjkgFZ+odxQ5N0NwCA7qRNODJhwoTA45qamiTeCRB7Te2h4Uh2BitHACBVXHL60KAVfYYh/enD/Um8IyTKiTavXtwS/Nrzy5NOlYvVFgCQUtImHElgaxUg4UKasXqo/QWAVJKV4dIXJ5wSdGz1B3VJuhsk0ktba4N2lHM6pDmT6E0HAKkmbcKRbdu2BR6XlJQk8U6A2DP3HKGkBgBSj7m0ZuOnR3SwgdIau3vWVFIzfXyRigdEtjEAACD+0iYcWbJkSeDx1KlTk3gnQOyxjS8ApL6p40JLa/7vb5TW2NmHNcf1QXVwI9abP39qku4GANCblA9Hli9fLofDIYfDoUWLFoV8vrKyUrt27er1GkuWLNGyZcskScOGDdPs2bPjcatA0nRdritJuZn0GwGAVJOV4dIMSmvSirkRa/GALE0dV5SkuwEA9Cauv16uqKgICi7q6+sDj3ft2qXly5cHjZ87d27Ec7z33nuaP3++pk2bppkzZ6q8vFyDBw+W1+vVjh079Pvf/15//vOfJUkul0tLlixRbm5uVF8PkKrMK0dyPKwcAYBUNKu8WM9v+Wwb301/L60pKshK4l0hHpravHrhfXMj1jIasQJAiorrO6ilS5fqySef7PZzb775pt58882gY9GEI5Lk8/m0fv16rV+/vscxgwcP1rJly3T11VdHNQeQysy71eRRVgMAKekfxg1VXqZbJ/4eahuGtO7D/brtCyOSe2OIuW4bsZ5flsQ7AgD0xvLvoGbNmqVly5bp7bff1vvvv68DBw7o8OHDMgxDgwYN0sSJE3XFFVdo7ty5KigoSPbtAnERunKEshoASEWdpTV/7LKiYM0HdYQjNmQuqZl2epFKCmnECgCpKq7hyPLly0NKZyI1d+7cXleUFBUV6Z/+6Z/0T//0T/2aB7Ay8241rBwBgNQ1q7w4KBzZtPeIDjS06hRKa2yDRqwAYD0p35AVQN/YrQYArOPisUOU3+XfacOQ1lXSmNVOzNv3nmzEOjRJdwMACAfhCGAD5p4juZTVAEDK6m7XmjWEI7bR1ObVC12a7kone424XbzsBoBUxr/SgA2Yy2pYOQIAqW1WeXHQx5s+Par9x1uTdDeIpdUf1AYa7kp/b8Q6iUasAJDqCEcAGwhpyEo4AgAp7eJxwaU1krTuQ1aP2MEzfw0uqbnk9CINpxErAKQ8whHABrpuFShJeZmU1QBAKst0uzTjc6bSmg8IR6zuw5rj2mpuxDqZRqwAYAWEI4ANhDRk9bByBABS3ZWm0pp39x5V3fGWJN0NYmHFpuBVI8MKsnTJ6TRiBQArIBwBbIDdagDAeqaMHaL8LFNpTeX+JN0N+qu53avn3zc1Yp1EI1YAsAr+tQZsIGS3GsIRAEh5mW6XLpswLOhYuu5a4/cbam73yu83UmJ8NOe8uCW0EeuXacQKAJbBOyjA4rw+v1o7/EHH2MoXAKzhyrOG6X83Vwc+fm/vUdUea1FJmjTw3FbboKUVu7Wucr9aOnzKznBpZvkwzZ8yShNKChI+vj9zPP9+TdDx804bSCNWALAQVo4AFtfc4Qs5xsoRALCGKWOGhpbWfJgepTUvbKnR1b+q0KrNNWr5+/9lLR0+rdp88vgLW2oSOr6/c5gXmGzee6zbOQAAqYl3UIDFmfuNSDRkBQCr8Liduvxzw/SH9z5bPbLmg1rNmzIyiXcVf9tqG7Rw5VZ5eyhZ8foNfeu5Lfqw5rhOKcjSgYZWLavYExJAxGq8pJjP4TMMLVy5VWOL8ntcpQIASB28gwIsrqmtu5UjlNUAgFVcWV4cFI5s3nfM9qU1Syt29xiMdPIb0m/f2BP2NeM9PppzvH5Dyyr2aPGciRHNAwBIPMpqAIszrxzJdDvpjA8AFnLRmCEqMJXWPP9+TUo1G43l+J0HG/XCltpuzrKntZV1ET03AIDkYOUIYHFs4wsA1tZZWvM/XVaP/PRPH+mXr+5KmWaj/R0/b8pINbZ69du/7NYrOw7242/Lelo6fGr1+pRDySsApDT+lQYsrqk9uKyGkhoAsJ5BeZ6QY52NQF/cUqvFcybqmrOHBz73wpaakJ4dvY2P5pxYjl+1ObrGpE6H9IXRg/XWJ4d77O3R3/EXjRkiSXpzV31c5sjOcCnLzf/NAJDqWHsPWFzIyhF+MwUAlrKttkHLeulj4fWfbOy5rbYhML6vZqZdx0dzTqzHR2v2OaX6/fwLdO05w/seHOX4p+Z9Xk/N+3zc5phVXiyn0xHWWABA8vAuCrC4pnbKagDAysJpTur1G/rSL9+Qx+1Uu9ff54qFruMlRXxOPMZ3lZfpPtmTpJdz3E5HYNee+VNG6cUttb3+PfVnfKLmAACkLlaOABZnXjmS42HpLgBYhd9vaF3l/vDGGlJrR/ghROf4aM6J13iHpH+/aoL+eu+levTLZ8vdw4oKt9OhxXMmBvqaTCgp0OI5E+M2PlFzAABSF79iBizOvJVvHitHAMAyWr0+tXSEbsluV4akL08qU47HrWvOHq6xRflaVrFHayvrAg1cZ5UXa96UkSGhQrzHJ2oOAEBqchiGwd5iMVBdXa2ysjJJUlVVlUpLS5N8R0gXP169TUsrPqtVv+G8Uj1y48Qk3hEAIFx+v6HP/fuf0iYgyc5w6W8/uDykB4ffb6jV61OW2xVWf454j0/UHACA6MTj/TdlNYDFhfQcoawGACzD6XRoZvmwsMZOH1+kF+64SNNOHxrR+GjOidf4npqTOp0O5XjcYYcK8R6fqDkAAKmDcASwOHNZDQ1ZAcBa5k8Z1WPfik5up0N3X3a6JpYV6v9dPj6i8dGcE6/xNCcFAKQqwhHA4kK28iUcAQBLsUOzUZqTAgCsjndRgMVRVgMA1meHZqM0JwUAWBkNWWOEhqxIlqt+WaHKmuOBj396w1mac35ZEu8IANAfdmg2SnNSAEA8xeP9NytHAIszrxxhK18AsLbOxp7xGp+IOaK5JwAAkomeI4DF0XMEAAAAAPqHcASwuJDdaug5AgAAAAARIRwBLMwwjNCGrKwcAQAAAICIEI4AFtbS4ZO5pXIuNd4AAAAAEBHCEcDCzCU1kpSbSVkNAAAAAESCcASwMHMzVomyGgAAAACIFOEIYGHmfiMup0OZbn6sAQAAACASvIsCLKy7nWocDkeS7gYAAAAArIlwBLAwc1kNJTUAAAAAEDnCEcDC2MYXAAAAAPqPcASwsJCVIx52qgEAAACASBGOABYW0nOElSMAAAAAEDHCEcDCzCtHcjyEIwAAAAAQKcIRwMKa2oNXjuRlUlYDAAAAAJEiHAEsjN1qAAAAAKD/CEcACyMcAQAAAID+IxwBLCxkK196jgAAAABAxAhHAAsL3a2GniMAAAAAECnCEcDCQlaOUFYDAAAAABEjHAEsjJ4jAAAAANB/hCOAhYWU1XgoqwEAAACASBGOABZGWQ0AAAAA9B/hCGBhIWU17FYDAAAAABEjHAEsqt3rV4fPCDrGbjUAAAAAEDnCEcCizKtGJMpqAAAAACAahCOARZn7jUiEIwAAAAAQDcIRwKLMO9VIUk4GZTUAAAAAECnCEcCizCtHcjwuOZ2OJN0NAAAAAFgX4QhgUSE71VBSAwAAAABRIRwBLCp0G19KagAAAAAgGoQjgEWZe46wcgQAAAAAokM4AliUuedIrodwBAAAAACiQTgCWFToyhHKagAAAAAgGoQjgEXRkBUAAAAAYoNwBLAoymoAAAAAIDYIRwCLYuUIAAAAAMQG4QhgUfQcAQAAAIDYIBwBLCqkrIaVIwAAAAAQFcIRwKJCymo8rBwBAAAAgGgQjgAWFVpWw8oRAAAAAIgG4QhgUZTVAAAAAEBsEI4AFhWycoStfAEAAAAgKoQjgEWFbuVLzxEAAAAAiAbhCGBBPr+hlg56jgAAAABALBCOABbUbOo3IhGOAAAAAEC0CEcACzL3G5HYyhcAAAAAokU4AliQeacaiZUjAAAAABAtwhHAgszNWD1upzJc/DgDAAAAQDR4NwVYUOg2vpTUAAAAAEC0CEcACwrdxpeSGgAAAACIFuEIYEHmniO5HsIRAAAAAIgW4QhgQSFlNZmU1QAAAABAtAhHAAuirAYAAAAAYodwBLAgymoAAAAAIHYIRwALYuUIAAAAAMQO4QhgQU3t9BwBAAAAgFghHAEsiJUjAAAAABA7hCOABYWEIx5WjgAAAABAtAhHAAsK3cqXlSMAAAAAEC3CEcCCQnarIRwBAAAAgKgRjgAWFFpWQzgCAAAAANEiHAEsKLSshp4jAAAAABAtwhHAgiirAQAAAIDYIRwBLMYwDMpqAAAAACCGCEcAi2nt8MtvBB+jrAYAAAAAokc4AliMuaRGoqwGAAAAAPqDcASwGHNJjSTlEY4AAAAAQNQIRwCLMe9U43RImW5+lAEAAAAgWryjAiymu51qHA5Hku4GAAAAAKyPcASwGHaqAQAAAIDYIhwBLMZcVsNONQAAAADQP4QjgMWErByhGSsAAAAA9AvhCGAxIT1HKKsBAAAAgH4hHAEshpUjAAAAABBbhCOAxTS103MEAAAAAGKJcASwGFaOAAAAAEBsEY4AFhOyW42HlSMAAAAA0B+EI4DFsHIEAAAAAGKLcASwGHarAQAAAIDYIhwBLIaVIwAAAAAQW4QjgMWE9BxhtxoAAAAA6BfCEcBiKKsBAAAAgNgiHAEshrIaAAAAAIgtwhHAYpraKasBAAAAgFgiHAEspMPnV7vXH3SMlSMAAAAA0D+EI4CFmEtqJHqOAAAAAEB/EY4AFmIuqZEoqwEAAACA/iIcASyku5UjOawcAQAAAIB+IRwBLMQcjmRnuORyOpJ0NwAAAABgD4QjgIU0tZl3qmHVCAAAAAD0V1zDkYMHD2r16tW6//77NXPmTA0ZMkQOh0MOh0Nz586Ny5wrVqzQ5ZdfruLiYmVlZWnEiBG65ZZb9M4778RlPiCRmtqDV47QbwQAAAAA+i+uv3Y+5ZRT4nn5IK2trbrxxhu1evXqoON79+7V3r179cwzz2jRokW67777EnZPQKyZy2rYqQYAAAAA+i9hZTVlZWW67LLL4nb9efPmBYKRadOm6fnnn9fGjRu1bNkyjR49Wn6/X/fff7+WLl0at3sA4s0cjuRRVgMAAAAA/RbXd1b333+/Jk2apEmTJumUU07Rp59+qpEjR8Z8ng0bNuiZZ56RJF111VX64x//KJfrZLnBpEmTdPXVV+u8887Tvn37dM899+iGG25QYWFhzO8D1uD3G2r1+pTldskZRjPTVBpv3so3h7IaAAAAAOi3uIYjP/jBD+J5+YCf/vSnkiSXy6XHHnssEIx0GjJkiB5++GF95Stf0dGjR7Vs2TItXLgwIfeG1LGttkFLK3ZrXeV+tXT4lJ3h0szyYZo/ZZQmlBRYYvzz79cEHdt58IS21TZ0Ox4AAAAAEB6HYRhGoibrunLktttu0/Lly/t9zRMnTmjIkCFqa2vTFVdcoXXr1nU7rr29XUOHDlVDQ4O+8IUv6M033+z33F1VV1errKxMklRVVaXS0tKYXh/988KWGi1cuVVef+i3u9vp0OI5E3XN2cNtMx4AAAAA7Coe778tv5Xvxo0b1dbWJkmaOnVqj+M8Ho8uuOCCwDkdHR0JuT8k37bahh6DBUny+g0tXLlV22obbDEeAAAAABAZy3dz3L59e+Dx+PHjex07fvx4vfzyy/J6vdq5c6cmTJgQ9jzV1dW9fr6uri7sayGxllbs7jFY6OT1G/rq0nd06qAc7TvSbMnxyyr2aPGcib2OAwAAAACEsnw4UlVVFXjc11KazmU3nedFEo50PRfW4fcbWle5P6yxR5s7dLT5eNjXTrXxayvr9LMbzgqrCSwAAAAA4DOWL6tpbGwMPM7Ly+t1bG5ubuDxiRMn4nZPSB2tXp9aOnx9D7SBlg6fWr3p8bUCAAAAQCxZfuVIa2tr4LHH4+l1bGZmZuBxS0tLRPN0XaHSnbq6Ok2ePDmiayL+stwuZWe40iIgyc5wKcvN1r4AAAAAECnLhyNZWVmBx+3t7b2O7WzcKknZ2dkRzcPuM9bkdDo0s3yYVm2u6XPseacN1E2TyrRiU5Xe23vUcuNnlRdTUgMAAAAAUbB8WU1+fn7gcV+lMk1NTYHHfZXgwD7mTxkldx+hgdvp0I+uOVM3nl+mH11zpiXHz5systcxAAAAAIDuWT4c6bqio68dZbqWxtBgNX1MKCnQ4jkT1VO84HY6tHjORE0oKQga31MgkerjAQAAAACRsXxZTdcdZ3bs2NHr2M7Pu91ujRkzJq73hdRyzdnDtfytT/X+vmOBYxkuh66eOFzzpowMCRauOXu4xhbla1nFHq2trFNLh0/ZGS7NKi+2xHgAAAAAQPgchmEYiZrs008/1ciRJ5f+33bbbVq+fHm/r9nY2KghQ4aovb1dV1xxhdatW9ftuPb2dg0dOlQNDQ268MIL9dZbb/V77q6qq6sDq1GqqqroUZKCrv/1W0G9O3507ed0ywUj+jzP7zfU6vUpy+0Kq6dHqo0HAAAAADuJx/tvy5fV5Ofn69JLL5UkrV+/vsfSmlWrVqmhoUGSNHv27ITdH1JHc3vwjjV5meEtnHI6HcrxuMMOIlJtPAAAAACgdykfjixfvlwOh0MOh0OLFi3qdszdd98tSfJ6vbrjjjvk8wW/Ca6vr9d3vvMdSVJhYaHmz58f13tGampu9wZ9nJ1h+aoyAAAAAEAMxPXdYUVFhXbt2hX4uL6+PvB4165dIWU1c+fOjWqe6dOn66abbtKKFSv04osvasaMGbrrrrtUUlKiyspKPfDAA9q3b58k6aGHHtLAgQOjmgfWZl45kpvpStKdAAAAAABSSVzDkaVLl+rJJ5/s9nNvvvmm3nzzzaBj0YYjkvT444+roaFBa9eu1WuvvabXXnst6PNOp1P33XefFixYEPUcsLYWUziS4yEcAQAAAABYoKwmXNnZ2VqzZo2efvppzZgxQ0VFRfJ4PCorK9PNN9+sioqKHstyYH+GYaiJshoAAAAAQDcSuluNnbFbTWpr7fBp/H3/F3Rsw/+7RKcNzk3SHQEAAAAAosFuNUCUzP1GJCmbshoAAAAAgAhHkCaa2rwhx3I8lNUAAAAAAAhHkCZaOrpZOZLByhEAAAAAAOEI0oS5rCYrwymX05GkuwEAAAAApBLCEaSFZlNZDSU1AAAAAIBOhCNIC+aVIzk0YwUAAAAA/B3hCNJCcwfhCAAAAACge4QjSAvmsppsymoAAAAAAH9HOIK0YC6ryWXlCAAAAADg7whHkBbMW/lSVgMAAAAA6EQ4grTQRFkNAAAAAKAHhCNIC5TVAAAAAAB6QjiCtNBiCkeyCUcAAAAAAH9HOIK0wFa+AAAAAICeEI4gLZi38s2h5wgAAAAA4O8IR5AWzD1HWDkCAAAAAOhEOIK0QFkNAAAAAKAnhCNIC+ayGrbyBQAAAAB0IhxBWmArXwAAAABATwhHkBZaOtjKFwAAAADQPcIRpIUmdqsBAAAAAPSAcAS25/MbavP6g45RVgMAAAAA6EQ4Atszl9RIlNUAAAAAAD5DOALbM+9UI1FWAwAAAAD4DOEIbM+8U40k5bByBAAAAADwd4QjsD1zOOJ0SJluvvUBAAAAACfxDhG219weulONw+FI0t0AAAAAAFIN4Qhsz7xyhJIaAAAAAEBXhCOwPcIRAAAAAEBvCEdge+aymmx2qgEAAAAAdEE4AtszrxzJZeUIAAAAAKALwhHYXospHMkmHAEAAAAAdEE4Atuj5wgAAAAAoDeEI7C97rbyBQAAAACgE+EIbI+VIwAAAACA3hCOwPYIRwAAAAAAvSEcge2xlS8AAAAAoDeEI7A9tvIFAAAAAPSGcAS2Z97Kl7IaAAAAAEBXhCOwvSbKagAAAAAAvSAcge2ZV45QVgMAAAAA6IpwBLZn7jmSTTgCAAAAAOiCcAS2Zy6ryaGsBgAAAADQBeEIbI+GrAAAAACA3hCOwNbavX55/UbQMcIRAAAAAEBXhCOwtWZTSY1EWQ0AAAAAIBjhCGzN3IxVknIyWTkCAAAAAPgM4QhsrdtwJINwBAAAAADwGcIR2Jq5rMbjcsrt4tseAAAAAPAZ3iXC1swrRyipAQAAAACYEY7A1kK28aWkBgAAAABgQjgCWzOvHMlmG18AAAAAgAnhCGytydRzJDeTbXwBAAAAAMEIR2Br5rKabMpqAAAAAAAmhCOwtZCGrJTVAAAAAABMCEdga+atfHM8lNUAAAAAAIIRjsDWWDkCAAAAAOgL4QhsjXAEAAAAANAXwhHYmrmsJpuyGgAAAACACeEIbM28ciSXlSMAAAAAABPCEdhayFa+hCMAAAAAABPCEdhaE7vVAAAAAAD6QDgCWzOvHMnNZOUIAAAAACAY4QhszdxzJDuDcAQAAAAAEIxwBLZm3q2GshoAAAAAgBnhCGzNvHIkh7IaAAAAAIAJ4Qhsy+831NJhCkfYrQYAAAAAYEI4Attq9fpkGMHHcjIoqwEAAAAABCMcgW2ZS2okymoAAAAAAKEIR2Bb5m18JcpqAAAAAAChCEdgW02mnWokKctNOAIAAAAACEY4AtsK2anG45LT6UjS3QAAAAAAUhXhCGzLXFZDSQ0AAAAAoDuEI7At88qRbMIRAAAAAEA3CEdgW82mniNs4wsAAAAA6A7hCGwrpOcI2/gCAAAAALpBOALb6q4hKwAAAAAAZoQjsK3mtuCymmzKagAAAAAA3SAcgW01dwSvHMmlrAYAAAAA0A3CEdgWW/kCAAAAAMJBOALbaqKsBgAAAAAQBsIR2BZlNQAAAACAcBCOwLbMZTXZlNUAAAAAALpBOALbMpfV5GQQjgAAAAAAQhGOwLZaTGU1OZn0HAEAAAAAhCIcgW01s1sNAAAAACAMhCOwrWZzWQ3hCAAAAACgG4QjsC3zbjU5HspqAAAAAAChCEdgW5TVAAAAAADCQTgCW/L6/Gr3+oOOEY4AAAAAALpDOAJbMpfUSJTVAAAAAAC6RzgCW2pp7y4cYeUIAAAAACAU4QhsydxvRJKyCUcAAAAAAN0gHIEtNZm28XU5HfK4+HYHAAAAAITi3SJsqSVkG1+XHA5Hku4GAAAAAJDKCEdgS2zjCwAAAAAIF+EIbKnZVFbDTjUAAAAAgJ4QjsCWWDkCAAAAAAgX4QhsqbmbniMAAAAAAHSHcAS2ZC6ryaasBgAAAADQA8IR2JK5rCaXlSMAAAAAgB4QjsCWzFv5ZhOOAAAAAAB6QDgCW2oK2a2GcAQAAAAA0D3CEdhSS0hZDT1HAAAAAADdIxyBLZl7jlBWAwAAAADoCeEIbKmpnbIaAAAAAEB4CEdgS+aymhzKagAAAAAAPSAcgS2Zy2pYOQIAAAAA6AnhCGypmbIaAAAAAECYCEdgS6ErRyirAQAAAAB0j3AEthTac4SVIwAAAACA7hGOwHYMw1BzB1v5AgAAAADCQzgC22nz+uXzG0HHKKsBAAAAAPSEcAS2Yy6pkaRcVo4AAAAAAHpAOALbMZfUSJTVAAAAAAB6RjgC22lu84Yco6wGAAAAANCThIUj+/bt0913360zzjhDubm5GjRokCZPnqxHHnlEzc3N/br2okWL5HA4wvrz+uuvx+YLQsoyb+Ob6XbK5XQk6W4AAAAAAKkuIb9OX7Nmjb761a/q+PHjgWPNzc3atGmTNm3apKVLl2rt2rUaNWpUIm4HNmcOR9jGFwAAAADQm7iHI1u3btWcOXPU3NysvLw8fe9739O0adPU0tKiFStW6Le//a0++ugjXXnlldq0aZPy8vL6NV9lZWWvnx85cmS/ro/U19weXFZDSQ0AAAAAoDdxf9d41113qbm5WW63Wy+//LIuvPDCwOemT5+usWPH6p577tGOHTv085//XPfff3+/5jvzzDP7e8uwOFaOAAAAAAAiEdeeI5s2bQr0+Jg3b15QMNJp4cKFOuOMMyRJ//Ef/6GOjo543hLSgHkrX8IRAAAAAEBv4hqOPP/884HHt99+e/c34HTq1ltvlSQdPXqUhqnotyZTWQ3b+AIAAAAAehPXcOSNN96QJOXm5uq8887rcdzUqVMDjysqKuJ5S0gD5rKaXHqOAAAAAAB6Edd3jdu3b5ckjRkzRm53z1ONHz8+5JxozZgxQ5s3b1ZjY6MKCws1YcIEXXHFFVqwYIEGDhwY9XWrq6t7/XxdXV3U10ZsmctqWDkCAAAAAOhN3MKR1tZW1dfXS5JKS0t7HTtw4EDl5uaqqalJVVVV/Zp3/fr1gceHDh3Shg0btGHDBj388MNavny5rrnmmqiuW1ZW1q/7QuKYy2roOQIAAAAA6E3cwpHGxsbA43C25+0MR06cOBHVfOXl5br22ms1efJklZSUqKOjQx999JGefvppvfzyyzp27Jiuv/56vfTSS5o5c2ZUc8AaQhuyUlYDAAAAAOhZXFeOdPJ4PH2Oz8zMlCS1tLREPNddd92lRYsWhRz//Oc/r1tvvVVLlizR1772Nfl8Ps2fP1+7du1SdnZ2RHP0taKlrq5OkydPjuiaiA+28gUAAAAARCJu4UhWVlbgcXt7e5/j29raJCni0EKSCgsLe/38ggUL9O6772rp0qWqra3VqlWr9NWvfjWiOfoqDULqaKasBgAAAAAQgbjtVpOfnx94HE6pTFNTk6TwSnCisWDBgsDjDRs2xGUOpIbQlSOU1QAAAAAAeha3cCQrK0tDhgyR1PdOL0ePHg2EI/FqfDphwoTA45qamrjMgdRAWQ0AAAAAIBJxC0ck6YwzzpAk7dq1S16vt8dxO3bsCDkn1gzDiMt1kXrMZTVs5QsAAAAA6E1cw5EpU6ZIOlky89577/U4rmuZy0UXXRSXe9m2bVvgcUlJSVzmQGowrxzJpawGAAAAANCLuIYj1157beDxE0880e0Yv9+v3/3ud5JONladNm1aXO5lyZIlgcdTp06NyxxIDaFb+bJyBAAAAADQs7iGI5MnT9bFF18sSVq2bJnefvvtkDGLFy/W9u3bJUl33nmnMjIygj6/fPlyORwOORyObrfrrays1K5du3q9jyVLlmjZsmWSpGHDhmn27NnRfDmwCPPKEcpqAAAAAAC9iXu9wS9+8QtddNFFamlp0WWXXaZ7771X06ZNU0tLi1asWKH//u//liSNGzdOCxcujPj67733nubPn69p06Zp5syZKi8v1+DBg+X1erVjxw79/ve/15///GdJksvl0pIlS5SbmxvTrxGpw+831NLBbjUAAAAAgPDF/V3jOeeco+eee07/+I//qIaGBt17770hY8aNG6c1a9YEbf8bCZ/Pp/Xr12v9+vU9jhk8eLCWLVumq6++Oqo5YA3mYESirAYAAAAA0LuE/Er9qquu0gcffKBf/OIXWrNmjaqrq+XxeDRmzBjdeOON+sY3vqGcnJyorj1r1qxAyc7777+vAwcO6PDhwzIMQ4MGDdLEiRN1xRVXaO7cuSooKIjxV4ZUYy6pkQhHAAAAAAC9cxjscRsT1dXVKisrkyRVVVWptLQ0yXeUnvYebtLUn70edGz7D6+g7wgAAAAA2EQ83n/HtSErkGjmlSMOh5SVwbc5AAAAAKBnvGuErZjDkZwMlxwOR5LuBgAAAABgBYQjsJXmdm/Qx9nsVAMAAAAA6APhCGzFvHIkN5NeIwAAAACA3hGOwFZaTOFIdgbhCAAAAACgd4QjsJUmU1kN2/gCAAAAAPpCOAJbMa8cyc2k5wgAAAAAoHeEI7AVc88RymoAAAAAAH0hHIGtUFYDAAAAAIgU4QhsxVxWk0NZDQAAAACgD4QjsBVzWU0OZTUAAAAAgD4QjsBWmimrAQAAAABEiHAEthKycoSyGgAAAABAHwhHYCsh4QgrRwAAAAAAfSAcga2YG7KylS8AAAAAoC+EI7CV0K18KasBAAAAAPSOcAS2ErqVLytHAAAAAAC9IxyBrbCVLwAAAAAgUoQjsJXQrXwpqwEAAAAA9I5wBLbR4fOrw2cEHaOsBgAAAADQF8IR2Ia5pEZiK18AAAAAQN8IR2Ab5pIaScrJoKwGAAAAANA7whHYRncrR7JZOQIAAAAA6APhCGzDvI1vhsshj5tvcQAAAABA73jnCNtoagsuq8lmG18AAAAAQBgIR2AbzR3BK0dyM+k3AgAAAADoG+EIbMNcVkO/EQAAAABAOAhHYBvmshq28QUAAAAAhINwBLbRYiqryfFQVgMAAAAA6BvhCGzDvJUvK0cAAAAAAOEgHIFtNFNWAwAAAACIAuEIbCN05QhlNQAAAACAvhGOwDbMW/mycgQAAAAAEA7CEdgGW/kCAAAAAKJBOALbCNnKN4OyGgAAAABA3whHYBvmrXxzM1k5AgAAAADoG+EIbMPckJWyGgAAAABAOAhHYBshZTWEIwAAAACAMBCOwDbMZTVs5QsAAAAACAfhCGzDXFbDyhEAAAAAQDgIR2AbzZTVAAAAAACiQDgCWzAMQ82U1QAAAAAAokA4Alto8/plGMHHWDkCAAAAAAgH4QhswbxTjcRWvgAAAACA8BCOwBbMzVglKZeyGgAAAABAGAhHYAvmbXwlKTuDlSMAAAAAgL4RjsAWzGU1WRlOOZ2OJN0NAAAAAMBKCEdgCy2mshpKagAAAAAA4SIcgS2Ye47QjBUAAAAAEC7CEdhCU3twWQ3b+AIAAAAAwkU4Alswl9XkUFYDAAAAAAgT4QhswVxWw8oRAAAAAEC4CEdgC+atfAlHAAAAAADhIhyBLZi38qWsBgAAAAAQLsIR2AJlNQAAAACAaBGOwBbMDVnZyhcAAAAAEC7CEdgCW/kCAAAAAKJFOAJbYCtfAAAAAEC0CEdgC/QcAQAAAABEi3AEttBMWQ0AAAAAIEqEI7CF0JUjlNUAAAAAAMJDOAJboKwGAAAAABAtwhHYgrmshq18AQAAAADhIhyBLZhXjuRSVgMAAAAACBPhCCzP5zfU5vUHHaOsBgAAAAAQLsIRWJ65pEairAYAAAAAED7CEVhei6mkRqKsBgAAAAAQPsIRWJ6534jEyhEAAAAAQPgIR2B5TaayGqdDynTzrQ0AAAAACA/vIGF55rKaXI9bDocjSXcDAAAAALAawhFYnrmshpIaAAAAAEAkCEdgeebdatjGFwAAAAAQCcIRWJ555UgOO9UAAAAAACJAOALLCw1HWDkCAAAAAAgf4Qgsz9yQlZ4jAAAAAIBIEI7A8sxb+bJyBAAAAAAQCcIRWF53W/kCAAAAABAuwhFYHlv5AgAAAAD6g3AElkdZDQAAAACgPwhHYHnmshq28gUAAAAARIJwBJbHVr4AAAAAgP4gHIHlNVNWAwAAAADoB8IRWF7oyhHKagAAAAAA4SMcgeWF9hxh5QgAAAAAIHyEI7A88241bOULAAAAAIgE4Qgsz1xWk5tJWQ0AAAAAIHyEI7A0wzBCymqyM1g5AgAAAAAIH+EILK3d55fXbwQdo+cIAAAAACAShCOwNPOqEYmyGgAAAABAZAhHYGnmfiMSDVkBAAAAAJEhHIGlNZt2qpGkHHqOAAAAAAAiQDgCSzOvHPG4nXK7+LYGAAAAAISPd5GwNHM4QjNWAAAAAECkCEdgaeaGrJTUAAAAAAAiRTgCS2sy9RyhGSsAAAAAIFKEI7A0c1kN2/gCAAAAACJFOAJLM5fVZFNWAwAAAACIEOEILM1cVkNDVgAAAABApAhHYGkhDVkpqwEAAAAARIhwBJYWspUvZTUAAAAAgAgRjsDSmimrAQAAAAD0E+EILC1k5QhlNQAAAACACBGOwNIoqwEAAAAA9BfhCCzNXFaTTVkNAAAAACBChCOwNPPKkVzKagAAAAAAESIcgaWFbOXLyhEAAAAAQIQIR2BpTeayGnqOAAAAAAAiRDgCSzOvHKGsBgAAAAAQKcIRWJq55wgNWQEAAAAAkSIcgWX5/UboVr6EIwAAAACACBGOwLJavb6QY7keymoAAAAAAJEhHIFlmVeNSJTVAAAAAAAiRzgCyzI3Y5UoqwEAAAAARI5wBJZl3sZXkrLchCMAAAAAgMgQjsCyumvG6nQ6knQ3AAAAAACrIhyBZZnLaiipAQAAAABEI2HhyL59+3T33XfrjDPOUG5urgYNGqTJkyfrkUceUXNzc8zmWbFihS6//HIVFxcrKytLI0aM0C233KJ33nknZnMgNTS1BZfV0IwVAAAAABCNhOx7umbNGn31q1/V8ePHA8eam5u1adMmbdq0SUuXLtXatWs1atSoqOdobW3VjTfeqNWrVwcd37t3r/bu3atnnnlGixYt0n333Rf1HEgtLR3BK0fYxhcAAAAAEI24rxzZunWr5syZo+PHjysvL08PPPCA3nrrLb3yyiv653/+Z0nSRx99pCuvvFInTpyIep558+YFgpFp06bp+eef18aNG7Vs2TKNHj1afr9f999/v5YuXRqTrwvJZ+45wsoRAAAAAEA04v6r9rvuukvNzc1yu916+eWXdeGFFwY+N336dI0dO1b33HOPduzYoZ///Oe6//77I55jw4YNeuaZZyRJV111lf74xz/K5Tr5RnnSpEm6+uqrdd5552nfvn265557dMMNN6iwsDAmX5/V+f2GWr0+ZbnDa2aaSuPNZTX0HAEAAAAARMNhGIYRr4tv2rRJkydPliQtWLBAv/nNb0LG+P1+nXnmmdq+fbsGDhyoAwcOKCMjI6J5rrzySq1du1Yul0uffvqpSktLQ8asWLFCX/nKVyRJjzzyiBYuXBjFV9Sz6upqlZWVSZKqqqq6vYdUsq22QUsrdmtd5X61dPiUneHSzPJhmj9llCaUFFhi/N3/s1Xb6hoCx4oHZGnZbZO6HQ8AAAAAsId4vP+Oa1nN888/H3h8++23d38DTqduvfVWSdLRo0f1+uuvRzTHiRMn9Morr0iSZsyY0eNfynXXXaeCgpNvmletWhXRHHbzwpYaXf2rCq3aXBPo29HS4dOqzSePv7ClxhLjuwYjklR3vLXb8QAAAAAA9CauZTVvvPGGJCk3N1fnnXdej+OmTp0aeFxRUaEZM2aEPcfGjRvV1tYWch0zj8ejCy64QC+//LI2btyojo6OiFeo2MG22gYtXLlVXn/3C4a8fkPfXrlVBVkZGlOUp10HT+jbK7fKZ6HxC1du1diifFaQAAAAAADCEtdwZPv27ZKkMWPGyO3uearx48eHnBPpHObr9DTPyy+/LK/Xq507d2rChAlhz1NdXd3r5+vq6sK+VjItrdjdYzDSyec3dPvyTWFfM9XGe/2GllXs0eI5E8M+BwAAAACQvuIWjrS2tqq+vl6S+qz/GThwoHJzc9XU1KSqqqqI5uk6vq95OmuSOs+LJBzpeq5V+f2G1lXuT/ZtJMTayjr97IazwmoCCwAAAABIb3HrOdLY2Bh4nJeX1+f43NxcSYp4O99I5umcI5p57KDV6wv09LC7lg6fWr3p8bUCAAAAAPonritHOnk8nj7HZ2ZmSpJaWlriNk/nHNHM09eKlrq6usDOPKkqy+1SdoYrLQKS7AyXstxs7QsAAAAA6FvcVo5kZWUFHre3t/c5vrOpanZ2dtzm6ZwjmnlKS0t7/VNcXBzR9ZLB6XRoZvmwsMZee3aJtv/wCl1zdoklx88qL6akBgAAAAAQlriFI/n5+YHH4ZSwNDU1SQqvBCfaeTrniGYeu5g/ZZTcfYQGbqdD//IPo5XtcWnBP4y25Ph5U0b2OgYAAAAAgE5xXTkyZMgQSX3v9HL06NFAcBFp49OuTVj7mqdraYwdGqxGY0JJgRbPmdhjwOB2OrR4zsTANrhWHw8AAAAAQF/iupXvGWecoTfeeEO7du2S1+vtcTvfHTt2BJ0Tia47znS9Tm/zuN1ujRkzJqJ57OSas4drbFG+llXs0drKOrV0+JSd4dKs8mLNmzIyJFiw+ngAAAAAAHrjMAzDiNfF7733Xv3kJz+RJL3zzjv6/Oc/3+24hx56SN/73vckSX/605902WWXhT1HY2OjhgwZovb2dl1xxRVat25dt+Pa29s1dOhQNTQ06MILL9Rbb70V4VfTu+rq6sBqlKqqqj63FU4Vfr+hVq9PWW5XWD06rD4eAAAAAGBt8Xj/HbeyGkm69tprA4+feOKJbsf4/X797ne/kyQVFhZq2rRpEc2Rn5+vSy+9VJK0fv36HktrVq1apYaGBknS7NmzI5rDzpxOh3I87rCDBauPBwAAAADALK7hyOTJk3XxxRdLkpYtW6a33347ZMzixYu1fft2SdKdd96pjIyMoM8vX75cDodDDodDixYt6naeu+++W5Lk9Xp1xx13yOcL3qq2vr5e3/nOdySdDGDmz5/fr68LAAAAAADYR1zDEUn6xS9+oezsbHm9Xl122WX6yU9+onfeeUevvfaaFixYoHvuuUeSNG7cOC1cuDCqOaZPn66bbrpJkvTiiy9qxowZevHFF/Xuu+/qiSee0AUXXKB9+/ZJOlnCM3DgwNh8cQAAAAAAwPLi2pBVks455xw999xz+sd//Ec1NDTo3nvvDRkzbtw4rVmzJmhb3kg9/vjjamho0Nq1a/Xaa6/ptddeC/q80+nUfffdpwULFkQ9BwAAAAAAsJ+4rxyRpKuuukoffPCBvvWtb2ncuHHKyclRYWGhzj//fD388MN6//33+717THZ2ttasWaOnn35aM2bMUFFRkTwej8rKynTzzTeroqKix7IcAAAAAACQvuK6W006sepuNQAAAAAAWInldqsBAAAAAABIdYQjAAAAAAAgrRGOAAAAAACAtEY4AgAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLRGOAIAAAAAANIa4QgAAAAAAEhrhCMAAAAAACCtEY4AAAAAAIC0RjgCAAAAAADSGuEIAAAAAABIa4QjAAAAAAAgrRGOAAAAAACAtEY4AgAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLTmTvYN2IXX6w08rqurS+KdAAAAAABgX13fc3d9L94fhCMxcujQocDjyZMnJ/FOAAAAAABID4cOHdKIESP6fR3KagAAAAAAQFpzGIZhJPsm7KC1tVWVlZWSpKFDh8rtTv1FOXV1dYFVLhs3blRxcXGS7wjxwPNsfzzH6YHnOT3wPKcHnuf0wPOcHniek8Pr9QaqN8rLy5WVldXva6b+O3iLyMrK0qRJk5J9G1ErLi5WaWlpsm8DccbzbH88x+mB5zk98DynB57n9MDznB54nhMrFqU0XVFWAwAAAAAA0hrhCAAAAAAASGuEIwAAAAAAIK0RjgAAAAAAgLRGOAIAAAAAANIa4QgAAAAAAEhrhCMAAAAAACCtOQzDMJJ9EwAAAAAAAMnCyhEAAAAAAJDWCEcAAAAAAEBaIxwBAAAAAABpjXAEAAAAAACkNcIRAAAAAACQ1ghHAAAAAABAWiMcAQAAAAAAaY1wBAAAAAAApDXCEQAAAAAAkNYIRwAAAAAAQFojHLG4ffv26e6779YZZ5yh3NxcDRo0SJMnT9Yjjzyi5ubmmM2zYsUKXX755SouLlZWVpZGjBihW265Re+8807M5kDP4vk8NzQ0aMWKFfrnf/5nnXvuuSosLJTH49HQoUN1ySWX6JFHHtGxY8di84WgV4n6ee6qrq5OhYWFcjgccjgcuuSSS+IyDz6TyOd5/fr1mjt3rsaMGaPc3FwNGDBA48aN0w033KBf//rXOnHiREznw2cS8Txv27ZN3/zmN1VeXq6CgoLAv93Tpk3To48+qsbGxpjMg2AHDx7U6tWrdf/992vmzJkaMmRI4N/QuXPnxmVOXoclXqKeZ16HJVcyfp674nVYijFgWatXrzYGDBhgSOr2z+mnn2588skn/ZqjpaXF+NKXvtTjHE6n0/jhD38Yo68I3Ynn87x27VojMzOzx2t3/jnllFOMV199NcZfGbpKxM9zd66//vqgeaZOnRrzOfCZRD3PR44cMa655po+f7bff//9/n9RCJGI5/mRRx4x3G53r8/vaaedZmzdujVGXxU69fZ3ftttt8V0Ll6HJU8inmdehyVfIn+eu8PrsNTCyhGL2rp1q+bMmaPjx48rLy9PDzzwgN566y298sor+ud//mdJ0kcffaQrr7yyX78ZnDdvnlavXi1JmjZtmp5//nlt3LhRy5Yt0+jRo+X3+3X//fdr6dKlMfm6ECzez/Phw4fV1tYmp9Opyy+/XI8++qheffVVbd68WS+++KK+/OUvS5IOHDigL33pS9qyZUssvzz8XaJ+ns1eeukl/e///q+Kiopidk30LFHP8/HjxzVjxgy98MILkqQrr7xSTz31lN5++21VVFTo6aef1l133aXS0tKYfF0IlojneeXKlbr77rvl9Xrl8Xj0rW99S2vWrNFf//pXPfPMM5oyZYokae/evbriiit0/PjxmH19CFZWVqbLLrssbtfndVhqiNfzzOuw1BLvn2czXoeloGSnM4jOJZdcYkgy3G638dZbb4V8/qc//WkggfzBD34Q1Ryvv/564BpXXXWV4fV6gz5/6NAh49RTTzUkGQMHDjSOHj0a1TzoWbyf5xUrVhgLFiww9u7d2+OY//zP/wzMMX369IjnQN8S8fNs1tjYaJSVlRmSjN/97nf8xiIBEvU833LLLYF5VqxY0eM4v99vdHR0RD0PupeI5/nMM88MXGP16tXdjrnuuusCYxYvXhzVPOje/fffb7z00kvG/v37DcMwjD179sTlN828DkuuRDzPvA5LvkT9PJvxOiw1EY5Y0MaNGwM/QAsWLOh2jM/nM84444zAf5jt7e0RzzNr1ixDkuFyuYyqqqpuxzz77LOBe3nkkUcingM9S9TzHI7zzz8/sHy3vr4+LnOkq2Q9z9/85jcNSca0adMMwzD4TznOEvU8v/HGG4F5Fi1a1N/bRoQS8TwfP348MMe5557b47itW7cGxl1//fURzYHIxOvNFK/DUkui3jR3h9dhiZOo55nXYamJshoLev755wOPb7/99m7HOJ1O3XrrrZKko0eP6vXXX49ojhMnTuiVV16RJM2YMaPH5dfXXXedCgoKJEmrVq2KaA70LhHPc7g6m0P5/X7t2bMnLnOkq2Q8zxs3btR//dd/yePx6Ne//nW/roXwJOp5/tWvfiVJysvL08KFCyM+H/2TiOe5vb098HjU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", + "image/png": "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+Fnuyvz58wPmGTp0aMznwOcS9T5/+umnxsyZM3v8uX733Xd7/0UhSCLe5yeffNLIycnp9v3t37+/8fLLL8foq0KH7v4/v/7662M6V1NTkzFjxoyQ8zmdTmPBggUxnRPHJeJ9XrVqlZGVldXjv9WDBw82Xn311ZjMiUCJ/HnuypVXXhkw5+TJk+M+J0IjHLGwzZs3+38xys/PN+6++27jrbfeMtauXWt85zvfCfglrKGhIep5fvKTn/hf64wzzjCWLl1qbNiwwVi6dKlxxhln+J+78847Y/jVoUO83+c33njD/xrnnnuu8Zvf/MZ45ZVXjM2bNxsvvfSScdNNNxlOp9OQZLhcLmPVqlVx+CrTW6J+lrua1+VyGdnZ2UZBQQHhSJwl6n0+cuSIcdZZZ/lfb9asWcZTTz1lvP3228bGjRuN5cuXG7feeqtRWlpKOBIHiXifKyoq/P8uO51O44YbbjCee+45Y8OGDcazzz5rXHrppf55cnJyjF27dsX4q0xvnT/InHjiica0adPi9mHq61//uv+1p0yZ4n+fFy9ebIwYMcL/3MMPPxzTeZGY9/nPf/6z/+f4oosuMh544AHj1VdfNTZv3mw8//zzxtVXX+2fMzc3l3+z4yCRP89mzz//vCHJKCoqIhxJEYQjFnbeeecZkgy322289dZbQc//9re/9f+g/eIXv4hqjg8//NBwu92GJOPss882mpqaAp5vbGw0zj77bP864vGX7XQX7/f5zTffNGbPnm28//77Icc899xzhsPhMCQZI0aMMHw+X8TzILRE/CybeTwe/wfoX/3qV8bQoUMJR+IsUe/zt771LUOSkZWVZaxYsSLkOJ/PZ7S3t0c9D7qWiPf5kksu8b/GQw891OWY22+/3T/mlltuiWoedO2uu+4yXnjhBWPfvn2GYRjGnj174vJhau3atf7XvfTSSw2PxxPw/MGDB40TTzzRkGT07dvX+PTTT2M2NxLzPi9btsy46aabjI8//jjkmP/+7/8OCMgQW4n6eTY7evSoUVZWZkgynnzyScKRFEE4YlH//Oc//T9EN910U5djvF6vccopp/j/o9nW1hbxPN/97nf986xfv77LMevXr/eP+d73vhfxHAgtUe9zODpv+3vnnXfiMkc6StZ7vHDhQkOScfLJJxutra2EI3GWqPe5806w++67r7fLRoQS9T7369fPkGQMGDAg5JgjR47413LmmWdGPAfCF68PU9OnT/cHbVVVVV2OWbp0qX/u3/72tzGbG8ES9aG5Kx1/iHQ6ncbBgwcTOne6SdT7/IMf/CAg8CIcSQ00ZLWo5557zn/7hhtu6HKM0+nUddddJ0k6cuSI1q1bF9EchmFoxYoVkqQxY8bonHPO6XLcOeeco5NPPlmStGLFChmGEdE8CC0R73O4pkyZ4r+9a9euuMyRjpLxHn/88ce66667JEn/8z//o8zMzF69HnqWqPf5D3/4gySpT58++v73vx/5QtEriXqf29raJEnDhg0LOaZPnz4aOHBgwHhYx9GjR7V27VpJ0gUXXKDS0tIux11xxRUqLCyUJP3tb39L2PqQWB1NOn0+n/bs2ZPcxaDXNmzYoIceekiZmZn605/+lOzloBPCEYuqqKiQJOXl5emss84KOW7y5Mn+22+++WZEc+zZs0e1tbVBr9PdPDU1Ndq7d29E8yC0RLzP4WptbfXfdrlccZkjHSXjPf7e976nxsZGfetb36IreoIk4n1ua2vzB9oXXnihsrOzJUler1dVVVXau3evWlpaIl06IpCon+eOP0h09yGpoaFB9fX1AeNhHRs3bvSHWt39DpaZmen/49XGjRvV3t6ekPUhsfgdzD48Ho++853vyOfz6Y477uDf5xRDOGJRH3zwgSRp5MiRcrvdIceNGTMm6Jpwbdu2rcvXifU8CC0R73O4Xn/9df/tU045JS5zpKNEv8fLli3TqlWr1K9fPy1cuDDq10FkEvE+b9261R9+lJeXq6GhQbfddpsGDhyoE088UcOGDVOfPn104YUX6rXXXov8i0CPEvXzfPPNN0uSDh06pP/5n//pcsx//Md/BI2HdUTzO5jH49HOnTvjui4kR8fvYBkZGRo5cmSSV4PeuP/++/Xee+9p5MiR+ulPf5rs5cCEcMSCWlpa/H8NCrXNskO/fv2Ul5cnSaqqqoponurqav/tnuYpKyvz3450HnQtUe9zOLZu3aqVK1dKOv6hi3AkNhL9Hh8+fFi33XabJOmee+7RoEGDonodRCZR73PnD1M+n09nn322HnzwQR05csT/eFtbm9asWaOpU6fq3nvvjej10b1E/jx/+9vf9pfm3HLLLfrOd76jF154QZs2bdLy5cs1a9Ys3X///ZKkn/3sZ7rgggsingPJxe9g6LBy5Uq99957kqSLLrrIX0YF69m1a5d+9atfSZIeeugh/w5PpA7CEQs6evSo/3Z+fn6P4zt+ATt27Fjc5umYI5p50LVEvc89aW1t1bx58+T1eiVJd999d0xfP50l+j3+8Y9/rP3792vixIn6zne+E9VrIHKJep8//fRT/+17771XO3fu1MUXX6wNGzaopaVFBw4c0J/+9Cf16dNHhmHoJz/5ib8MB72XyJ9nl8ulJ554Qn/5y180btw4LVq0SJdddpnGjx+vK6+8Us8995ymTJmiV155Rb/+9a8jfn0kH7+DQTr+7/ott9wi6fjPfccHa1jTzTffrObmZl199dWaNm1aspeDLhCOWFDnmvFwGilmZWVJkpqbm+M2T8cc0cyDriXqfe7J97//fW3atEmSdP311+vSSy+N6euns0S+x//4xz/02GOPye1263/+53/kcDgifg1EJ1Hvc2NjY8CcF154oV588UWNHz9eWVlZGjRokG6++Wa9+OKLcjqP/+f/zjvvpIl2jCT63+wPPvhATz75pCorK7t8fv369Vq8eLFqamqien0kF7+Dwev16pvf/KY+/vhjSdK///u/64wzzkjyqhCtJ598UmvWrFFhYaEeeOCBZC8HIRCOWFDnLVjhdKDvaOKUk5MTt3k6N4qKdB50LVHvc3d+85vfaNGiRZKk8ePH66GHHorZayNx73Fra6tuvPFGGYahW2+9VaeddlpkC0WvJOPfbOn47pGuGvdNmjRJV1xxhaTjH7BDfbhGZBL5b/Ybb7yhiRMn6oUXXlBJSYn+/Oc/a9++fWpra1NVVZUeeugh5ebmatmyZZowYYLef//9iOdAcvE7GL73ve/p73//uyTpq1/9qn7+858neUWIVn19vebPny/p+A7sIUOGJHlFCIVwxIIKCgr8t8PZPtnx18RwtvlGO0/nv1hGOg+6lqj3OZSHH37Y3yhqzJgxWrVqVcDWXfReot7ju+++Wx9++KHKysr0y1/+MrJFoteS8W/2oEGDuv0L40UXXeS/vXHjxojmQdcS9T63trbqmmuu0WeffabBgwfr7bff1rXXXqsTTjhBGRkZKi0t1fe+9z394x//UHZ2tmpra3X99ddH9sUg6fgdLL3deeedeuSRRyRJ5513np555hlOqbGw22+/XfX19Tr77LP1ve99L9nLQTdCt1JHysrOztaAAQN06NChgIZd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", "text/plain": [ "
" ] @@ -299,6 +306,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "fb9c601d", "metadata": {}, @@ -316,7 +324,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 7, "id": "92767723", "metadata": {}, "outputs": [], @@ -337,6 +345,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "5a5e6f76", "metadata": {}, @@ -346,7 +355,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 8, "id": "e82445c4", "metadata": {}, "outputs": [ @@ -354,44 +363,36 @@ "data": { "text/latex": [ "$$\n", - "\\begin{array}{ll}\n", - "A = \\left(\\begin{array}{rllrllrllrllrll}\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "&\n", - "B = \\left(\\begin{array}{rll}\n", - "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "\\\\\n", - "C = \\left(\\begin{array}{rllrllrllrllrll}\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "&\n", - "D = \\left(\\begin{array}{rll}\n", - "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", - "\\end{array}\\right)\n", - "\\end{array}~,~dt=0.02\n", + "\\left(\\begin{array}{rllrllrllrllrll|rll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\hline\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right)~,~dt=0.02\n", "$$" ], "text/plain": [ - "['ud']>" + "StateSpace(array([[0., 0., 0., 0., 0.],\n", + " [1., 0., 0., 0., 0.],\n", + " [0., 1., 0., 0., 0.],\n", + " [0., 0., 1., 0., 0.],\n", + " [0., 0., 0., 1., 0.]]), array([[1.],\n", + " [0.],\n", + " [0.],\n", + " [0.],\n", + " [0.]]), array([[0., 0., 0., 0., 1.]]), array([[0.]]), 0.02)" ] }, - "execution_count": 12, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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xm41AAAAdGCUSOE1ly/IauYIAAAAHQhHKLzKrXy97QEAAPgro0QKr8VWvgAAAHRDOELhWZAVAACA7ghHKLySBVkBAADohlEihVcqmznSpKwGAACADgYtHHn++edz9tlnZ8qUKRkzZkw233zzTJ06NZdddlmWL1/eL3088cQT+cQnPpFdd901m2yySUaMGJGtttoq06dPzxVXXJHXXnutX/qhupTK1hxpUFYDAABAB42D0cmcOXPy/ve/P6+++mr715YvX5558+Zl3rx5ufrqq3Prrbdmxx13XO8+Lr/88px77rkplUrrfH3RokW5++67c/fdd+dLX/pSbr755vzN3/zNevdD9SkPR5rsVgMAAEAHAz5KfOSRR3L00Ufn1VdfzdixY3PxxRfnvvvuy5133pkPf/jDSZKnn346hx9+eJYuXbpefVx//fU5++yzUyqVMmLEiJxxxhmZM2dO/u///i/XXXdd9tlnnyTJc889l3e84x3rhDQUX8VWvspqAAAA6GDAZ46cfvrpWb58eRobG3P77bdn2rRp7c8dcMAB2WmnnXLOOefkqaeeyhe+8IVccMEFfe7joosuan98ww035PDDD2//+9SpU3PcccflPe95T2644YYsXLgw11xzTc4888wNuzCqRvmaI8pqAAAA6GhAZ47Mmzcvd999d5Lk5JNPXicYWeuss87KlClTkiRf/OIX09zc3Kc+lixZkscffzxJsvvuu68TjHT0b//2b+2P77vvvj71QXUr362myW41AAAAdDCgo8Qbb7yx/fFJJ53U+QnU1+f4449PkixevLg9TOmt1atXtz/ubs2SN77xje2PV61a1ac+qG7la440mjkCAABABwMajtxzzz1JkjFjxmSPPfbost1+++3X/vjee+/tUx9bbrllNt988yTJs88+22W73/72t+2PJ0+e3Kc+qG7lZTXWHAEAAKCjAV1z5Mknn0ySTJo0KY2NXXe1yy67VLymLz7ykY/kkksuycMPP5zbbrsthx56aEWbteuSNDQ05EMf+lCf+1iwYEG3zy9cuLDPx2RwlJfVNNqtBgAAgA4GLBxZuXJlFi1alCQZP358t20322yzjBkzJsuWLcv8+fP73NcnP/nJPPjgg7njjjty1FFH5eMf/3gOPPDAbLnllnn22Wfz1a9+NXPnzk1DQ0O+/OUvt69x0hcTJkzo82sYHipmjiirAQAAoIMBC0dee+219sdjx47tsf3acGR9tvMdO3ZsbrvttsyaNSuXXHJJLr/88lx++eXrtHn3u9+dc845J29729v6fHyqW3PFVr5mjgAAAPBXAzpzZK0RI0b02H7kyJFJkhUrVqxXfw8++GC+853vdLnuyB133JHXve51mTJlSjbZZJM+H7+nGS0LFy7M1KlT+3xcBl5L+YKs1hwBAACggwELR0aNGtX+uOOOMl1Zu4PM6NGj+9zX97///XzgAx/IqlWr8jd/8zf59Kc/nb//+7/PxhtvnPnz5+e73/1uLrroonz1q1/NT3/609xxxx15/etf36c+eioNYvhqtlsNAAAA3Riw+oKNN964/XFvSmWWLVuWpHclOB29+OKLOfHEE7Nq1aq8+c1vzn333Zcjjzwym2++eZqamrLjjjvmvPPOy49+9KPU1dXlV7/6VT7xiU/07WKoahUzRyzICgAAQAcDNkocNWpUttxyyyQ97/SyePHi9nCkrwufzp49u/21M2bMyJgxYzptd+CBB+bAAw9Mktxwww1ZvHhxn/qhOrW1tVWEI03KagAAAOhgQH+FvnZXmGeeeSalUqnLdk899VTFa3qr49a/u+++e7dt99hjjyRJa2trfv3rX/epH6pTc9lONUnSoKwGAACADgY0HNlnn32SrCmZeeihh7psN3fu3PbHe++9d5/6aGz867Ip3QUwSdLc3Nzp6yiu8lkjSdJktxoAAAA6GNBR4pFHHtn+eObMmZ22aW1tzbXXXpskGTduXKZPn96nPnbYYYf2x/fcc0+3bX/6058mSerq6jJx4sQ+9UN1am5trfia3WoAAADoaEDDkalTp2bfffdNklxzzTX5+c9/XtHm8ssvby+NOe2009LU1LTO87NmzUpdXV3q6upy4YUXVrz+8MMPT13dmsHuxRdfnD/84Q+dnstVV12VBx98MEny9re/PVtsscV6XxfVo6SsBgAAgB4MeG3Jl770pey9995ZsWJFDj744MyYMSPTp0/PihUrMnv27Fx11VVJksmTJ+ess87q8/F32WWXnHTSSfn617+eP/zhD9ltt91y+umnZ999923fynf27Nm57rrrkiQNDQ35j//4j369RoavUiczR5rsVgMAAEAHAx6O7Lbbbvnud7+bD3zgA1myZElmzJhR0Wby5MmZM2fOOtv/9sWVV16Z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GDGix/YjR45MkqxYsaJP/Sxbtqz98apVq3LEEUfkpptuyh577JGRI0dm6623zkc/+tHMmTMn9fX1aWtryznnnJO2trZujkq1K7WWL8hq5ggAAACdG7CZI6NGjWp/3JsFUVetWpUkGT169Hr3kySf//znU9/JLIF99tkn7373u/P9738/jz/+eB5//PHsuuuuve6np3KfhQsXZurUqb0+HgOrfLcaC7ICAADQlQELRzbeeOP2x70plVk7A6Q3JThd9bPDDjtk55137rLtIYccku9///tJknnz5vUpHOlp3RSGl1JrWVmNrXwBAADowoCNGEeNGpUtt9wySc+LmS5evLg9HOnr2h4d2/cUYHRs+9JLL/WpH6pL+cwRZTUAAAB0ZUB/nT5lypQkyTPPPJNSqdRlu6eeeqriNb315je/uf1xS0tLt207Pt/d1sJUv/KZIw0WZAUAAKALAzpi3GeffZKsKZl56KGHumw3d+7c9sd77713n/rYfvvt84Y3vCFJ8tvf/rbbth2f32677frUD9WlYkFWa44AAADQhQENR4488sj2xzNnzuy0TWtra6699tokybhx4zJ9+vQ+9/Oe97wnSfLiiy/mvvvu67LdDTfc0P5433337XM/VI/ysppGZTUAAAB0YUDDkalTp7aHENdcc01+/vOfV7S5/PLL8+STTyZJTjvttDQ1Na3z/KxZs1JXV5e6urpceOGFnfZz+umnt+9a8//+3/9bZ3vftb71rW/l7rvvTpIcfvjhFlgtuFJL2YKsymoAAADowoCPGL/0pS9l9OjRKZVKOfjgg/PZz342999/f37yk5/klFNOyTnnnJMkmTx5cs4666z16uMNb3hDPvOZzyRJHnrooUydOjXf+MY38tBDD+Wuu+7Kxz/+8Zx44olJkk022SRXXHFFv1wbw1d5WY2ZIwAAAHRlwFcl3W233fLd7343H/jAB7JkyZLMmDGjos3kyZMzZ86cdbbl7at/+Zd/ySuvvJJLL700TzzxRHsY0tHWW2+dG2+8MTvttNN690N1qAhHzBwBAACgC4MyYjziiCPy6KOP5owzzsjkyZOz0UYbZdy4cdlzzz1z6aWX5he/+EUmTZq0wf189rOfzc9+9rN88IMfzMSJEzNy5Mhsuumm2WuvvXLRRRfl17/+daZNm9YPV8Rw11xRVmPmCAAAAJ2ra2tra+u5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akyOAgAAoHsDPnJ85JFHcvTRR+fVV1/N2LFjc/HFF+e+++7LnXfemQ9/+MNJkqeffjqHH354li5d2m/9/uhHP8oPfvCDbL311v12TIa/5rLdaswcAQAAoCcDHo6cfvrpWb58eRobG3P77bdnxowZmTZtWg444IBcddVV+dznPpckeeqpp/KFL3yhX/pcunRpTj311CTJZZdd1i/HpDpUzhwRjgAAANC9AQ1H5s2bl7vvvjtJcvLJJ2fatGkVbc4666xMmTIlSfLFL34xzc3NG9zvjBkzMn/+/EyfPj0f/OAHN/h4VI+KrXztVgMAAEAPBnTkeOONN7Y/Pumkkzo/gfr6HH/88UmSxYsXt4cp6+uBBx7If/3Xf2XEiBH56le/ukHHovqUyspqGpTVAAAA0IMBDUfuueeeJMmYMWOyxx57dNluv/32a3987733rnd/pVIpH/nIR9La2pp//dd/zc4777zex6I6lcpnjiirAQAAoAcDulvNk08+mSSZNGlSGhu77mqXXXapeM36uOyyy/LII4/kjW98Y2bMmLHex+nMggULun1+4cKF/dof66d85ojdagAAAOjJgIUjK1euzKJFi5Ik48eP77btZpttljFjxmTZsmWZP3/+evX37LPP5jOf+UyS5Morr8yoUaPW6zhdmTBhQr8ej4FRPnNEWQ0AAAA9GbBfq7/22mvtj8eOHdtj+zFjxiTJem/ne8opp2TFihU55phjcvDBB6/XMah+pRZlNQAAAPTNgM4cWWvEiBE9th85cmSSZMWKFX3u69prr80dd9yRTTbZJFdccUWfX98bPc1oWbhwYaZOnTogfdN7pdbyBVmV1QAAANC9AQtHOpa1rF69usf2q1atSpKMHj26T/0sWrQoZ511VpLk4osvzjbbbNOn1/dWT6VBDA8VM0eU1QAAANCDAfu1+sYbb9z+uDelMsuWLUvSuxKcjs4888wsWrQoe+65Zz72sY/17SQpnPI1RyzICgAAQE8GdObIlltumUWLFvW408vixYvbw5G+LHz6xz/+Md/85jeTJAcccECuv/76btu/9NJLmT17dpJkhx12yNve9rZe90V1qNitxswRAAAAejCgW/lOmTIl99xzT5555pmUSqUut/N96qmn1nlNb3Us1/nc5z7XY/snn3wyxx13XJLkhBNOEI4UUHPFzBHhCAAAAN0b0JqD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2cyRBmU1AAAA9JJwhEIoD0ea7FYDAABALxlBUgilsrIaM0cAAADoLeEIhVAq363GmiMAAAD0knCEQii1li/I6q0NAABA7xhBUggWZAUAAGB9CUcohPKyGlv5AgAA0FvCEQqhvKym0W41AAAA9JIRJIVQsSCrshoAAAB6SThCIZSvOdJoQVYAAAB6yQiSQii1lJXVWHMEAACAXhKOUAjN5TNHlNUAAADQS8IRCqGlIhzx1gYAAKB3jCCpem1tbRXhiK18AQAA6C3hCFWvuWynmiRpUFYDAABALwlHqHrls0aSpMluNQAAAPSSESRVr7m1teJrZo4AAADQW4MWjjz//PM5++yzM2XKlIwZMyabb755pk6dmssuuyzLly/foGMvWbIks2fPzoc//OHsvvvuGTduXEaMGJGtttoq+++/fy677LL8+c9/7p8LYdgpdVJWYytfAAAAequura2tcmTZz+bMmZP3v//9efXVVzt9fuedd86tt96aHXfcsc/Hvu2223LUUUdl1apV3bZ73etel+985zuZPn16n/vojQULFmTChAlJkvnz52f8+PED0g+VXnptZaZefOc6X/vF+QdlszEjhuiMAAAAGCgDMf4e8JkjjzzySI4++ui8+uqrGTt2bC6++OLcd999ufPOO/PhD384SfL000/n8MMPz9KlS/t8/D/96U9ZtWpV6uvrc8ghh+SKK67IXXfdlYcffjg333xzjjnmmCTJiy++mHe+85355S9/2Z+XxzDQ2cyRBjNHAAAA6KXGge7g9NNPz/Lly9PY2Jjbb78906ZNa3/ugAMOyE477ZRzzjknTz31VL7whS/kggsu6NPxm5qacsopp2TGjBl5wxvesM5zu+22W4444ojsvffe+X//7/9l+fLlOeuss3LnnXd2cTSqUacLstZbTgcAAIDeGdCymnnz5mXq1KlJklNOOSX//d//XdGmtbU1b3nLW/Lkk09ms802y4svvpimpqZ+P5e99torDz74YOrr6/PSSy9liy226NfjK6sZOs++vDQHXD53na/95uJD7VgDAABQQFVXVnPjjTe2Pz7ppJM6P4H6+hx//PFJksWLF+fuu+8ekHPZf//9k6wJY373u98NSB8MjVInM0ca7VYDAABALw1oOHLPPfckScaMGZM99tijy3b77bdf++N77713QM6l44Kt9UouCqV8zZGG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MmbMmIwdOzYjRowY6lNKIhyhylWsOaKsBgCAKtTW1pZFixZl0aJFQ30qMODWhoAvvvhittpqq2yxxRapqxvasZxwhKpWvuZIo91qAACoQgsXLsyrr766ztfq6urS0NAwRGcEA6OlpSVtbX8dx7388stZvXp1tt122yE8K+EIVa58K18zRwAAqDYrV65cJxjZYostsskmm2TkyJFD/tt06G9tbW1ZtWpVlixZkj/96U9JkldffTVbbLFFRo4cOWTn5dfsVLVmW/kCAFDl/vznP7c/3nrrrbP11ltn1KhRghEKqa6uLqNGjWp/r6+1ePHiITwr4QhVrqVi5oi3NAAA1WX58uXtj8eNGzd0JwKDrOP7vePPwVAwkqSqlc8caTJzBACAKtPS0pIkaWxstMYINaWhoaH9Pb/252CoCEeoauW71TRYcwQAAKBqDJfyMeEIVa2irMZuNQAAAPSRkSRVrbl8K18zRwAAAOgj4QhVrdRiQVYAAAA2jJEkVa3UakFWAAAANoxwhKpmQVYAAKCvZs2albq6utTV1eX3v//9UJ8Ow4BwhKpWOXPEWxoAAIC+MZKkqlWuOWLmCAAAQEf7779/6urqsv/++w/1qQxbwhGqWvnMkQZrjgAAAD048cQT09bWlra2tkycOHGoT4dhQDhCVasoq7FbDQAAAH1kJElVqyirMXMEAACAPhKOUNWay3arseYIAAD0o9bWZNmyNf8tkO52qylfn+MPf/hDzjzzzEyaNCmjR4/OFltskUMOOSS33XZbl8f//e9/3378WbNmJUm+973v5R/+4R+y9dZbZ/To0dlll11y7rnnZvHixV0e58QTT0xdXV2PpT9dXc/a18+dOzdJMnfu3PZ2a/8oK1pDOEJVa2ktnzniLQ0AABvskUeSE05INt44GTt2zX9POGHN12vIvffem7e+9a254oor8tvf/jYrV67MK6+8kttvvz2HHXZYLrvssl4d5+STT87RRx+dO++8My+//HJWrlyZp59+Opdeemne/OY354knnhjgK6EnRpJUtfI1R8wcAQCADfSd7yR77plce22yfPmary1fvubve+655vkasHDhwhx11FFpaGjIJZdcknvvvTcPPPBAvvCFL2TcuHFJkvPOOy+/+tWvuj3OlVdema9//euZOnVqvvOd7+TBBx/MrbfemmOOOaa9n0MOOSRLlizp92u4+OKL89hjj2XPPfdMkuy555557LHH1vlz++2393u/1ahxqE8ANkSzrXwBAKgFra3Jn/408P08/nhy/PFJqdT586XSmudf//rkLW8Z2HPZYotkCDdc+PWvf53tt98+P/vZz7Lddtu1f32vvfbKXnvtlb//+79PqVTKVVddlS996UtdHmfevHk57LDDctNNN6Wx8a9D8EMPPTRvfvObc8EFF2TBggW56KKL8vnPf75fr2G77bbLdtttlzFjxiRJxowZk7cM9H2rUsIRqlpL+cwRZTUAABTRn/6UbL31UJ/FGqVScsABA9/PSy8lW2018P104z//8z/XCUbW2mefffK2t70t999/f+65555ujzFy5Mh87WtfWycYWeuTn/xkrr/++jz++OO55ppr8u///u8ZOXJkv50/vWckSVWzICsAADAQxo0bl8MPP7zL5/fYY48kybPPPtvtcQ4++OBsu+22nT5XX1+fE044IUmyePHiPPzww+t5tmwo4QhVrWRBVgAAYADstNNOqe+mrGfzzTdPkrz22mvdHmevvfbq9vmpU6e2P3788cf7cIb0JyNJqlqpbOZIU4OZIwAAwIbbaKONun1+bXDS2sM2x1v3UA71ute9rv3xK6+80suzo79Zc4SqVr5bTYOyGgAAimiLLdaswTHQPv7x5Prre253zDHJf/7nwJ7LFlsM7PEHSV1d92OUtra2bp9ncAhHqGoVC7IO4WrWAAAwYOrrB2dx0hkzkhtu6Hq3miRpbEzOO2/IF0utFi+++GK3z7/UIfRaW6qzVm9npyxbtmw9z461jCSpauVb+SqrAQCADfDWtybXXrsmAOlMY+Oa59/61sE9ryo2b968Xj9fvs3uxhtvnCT585//3O0xnn766W6f72n2CsIRqlz5miPKagAAYAMdd1zy4IPJCScka9fd2GijNX9/8ME1z9Nrt99+exYuXNjpc62trfnGN76RJNlss82y++67r/P8DjvskGTNoq9dBSCrV6/OD37wg27PYdSoUUmSVatW9enca4lwhKpWvuZIk91qAABgw731rcmsWclrryVLl67576xZZoysh1WrVuWUU05JS0tLxXOXXHJJHnvssSTJP//zP2fkyJHrPL/ffvu1P7788ssrXt/W1pbTTjstf/zjH7s9h2222SbJmm2HrXHSOWuOUNUqtvI1cwQAAPpPfX0yZsxQn0VV23PPPfOjH/0oe++9d84444zstNNOeemll/KNb3wjs2fPTpKMHz8+559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95l+fwd3/3d5k5c2ZeeumlnHnmmfnABz6QTTfdNEnS1NSU7bfffmAuvooIR6hq5WU1jdYcAQAAhpFTTz01c+fOzaxZs3LsscdWPL/NNtvkxz/+cXtYUW7mzJnZb7/92gOVtWU4a5155pnZdddduw1Hjj322Hz2s5/Ns88+my9+8Yv54he/2P7c9ttvn9///vfrdW1FogaBqlY5c8RbGgAAGF5mzpyZ6667Lvvvv3+22GKLjBw5MpMnT84555yTX/3qV3nTm97U5Wt32WWXPPzww/noRz+a7bffPiNGjMhWW22Vd7zjHZkzZ06n5Tblxo4dm/vuuy+nnXZapkyZko3WriVDu7o2BUf9YsGCBZkwYUKSZP78+Rk/fvwQn1FtmDTj1nXWHbnlE/vkLdt1nrgCAMBw9Jvf/CalUimNjY3Zaaedhvp06Ae///3v2xdTnTlzZk488cShPaFhbH3e/wMx/vZrdqpWW1ubBVkBAADYYEaSVK2W1spJT9YcAQAAoK+EI1St8lkjid1qAAAA6DvhCFWruaW14muNymoAAADoIyNJqlZnZTVNZo4AAADQR41DfQKwvppbKsORBuEIAAAwxCZOnBgbw1YXM0eoWp0vyOotDQAAQN8YSVK1OltzpMluNQAAAPSRcISq1dluNcpqAAAA6CvhCFWrpbWTmSP13tIAAAD0jZEkVat8Qdb6uqTezBEAAAD6SDhC1SqVhSONZo0AAACwHowmqVqlsrKaRouxAgAAsB6EI1St8gVZLcYKAADA+hCOULXKt/JtavB2BgAAoO+MJqlaLa3la46YOQIAAEDfCUeoWpULsgpHAAAA6DvhCFWrvKymUVkNAAAA68FokqpVUVZjtxoAAADWg3CEqtVszREAAAD6gXCEqtXSWlZWU+/tDAAAQN8ZTVK1mssWZG1SVgMAAFSRiRMnpq6uLieeeOJQn0qf7L///qmrq8v+++8/1KfSb4QjVK3y3WoalNUAAACwHoQjVK2Kshq71QAAALAejCapWspqAAAA6A/CEapWqWzmSIMFWQEAoF+1trZl+epSWst2iiyK1atX58orr8z06dOz1VZbZcSIEXn961+fww47LN/61rfSWjbmWKu3a25ceOGFqaurS13dur/IXfv65557LknyjW98o73d2j8dj/373/++/euzZs1Kknzve9/LP/zDP2TrrbfO6NGjs8suu+Tcc8/N4sWLuzyfE088MXV1dZk4cWK35z1r1qz2/n7/+99XvH7u3LlJkrlz51acd0/HHq4ah/oEYH2Vyv6BbrLmCAAA9Isn/rgkV9/7bG577IWsaG7J6KaGHLrr6/OhfXbMm7bdZKhPr18899xzOfTQQ/Pkk0+u8/UXX3wxt912W2677bb8z//8T2666aZsvvnmQ3SWnTv55JPz9a9/fZ2vPf3007n00ktz7bXX5o477sib3vSmITq76uRX7VQtC7ICAED/u+mXf8g/fuXe3PDwH7KiuSVJsqK5JTc8vObrN/3yD0N8hhtu6dKlOeCAA9qDkSOPPDI333xzHnzwwXzve9/LfvvtlyS599578853vjMtLS392v/MmTPz2GOPZdttt02SvOtd78pjjz22zp+ZM2d2+torr7wyX//61zN16tR85zvfyYMPPphbb701xxxzTJJk4cKFOeSQQ7JkyZJ+Peckufjii/PYY49lzz33TJLsueeeFed9++2393u/g8HMEapWqWXdKW5NFmQFAKCgWlvbsnj56gHv59cvvpYzr38kLV2U0ZRa23Lm9Y9k641HZvLrNh7Qc9lsoxGpH6BfgH7605/Os88+myT51Kc+lYsuuqj9uT322CPvec978sEPfjDf/va38/Of/zxXXXVVPvrRj/Zb/zvssEOSpKmpKUkybty4vOUtb+nVa+fNm5fDDjssN910Uxob/zqkP/TQQ/PmN785F1xwQRYsWJCLLroon//85/vtnJNku+22y3bbbZcxY8YkScaMGdPr8x7uBi0cef755/PlL385c+bMyfPPP5+RI0dm0qRJOfroo/Oxj30sG220Ub/0M3v27MycOTOPPvpoFi9enNe//vXZd999c+qpp+btb397v/TB8FBeVtNoQVYAAApq8fLV2ePf7xjq00iStLS25biv/d+A9/PQp/4hW4wd2e/HXbVqVa6++uokyZve9KZceOGFFW3q6upy5ZVX5n//93/zpz/9KV/5ylf6NRzZECNHjszXvva1dYKRtT75yU/m+uuvz+OPP55rrrkm//7v/56RI/v/e1hEg/Kr9jlz5uRv/uZvcvnll+epp57K8uXLs3jx4sybNy//8i//kt133709tVtfK1euzBFHHJHjjjsut99+e1544YWsWrUqzz33XL71rW9l7733XicNpPqVhyPKagAAgJ489NBD+fOf/5xkzQKjDQ0NnbbbZJNNcvTRRydJnnjiiSxcuHCwTrFbBx98cHs5Trn6+vqccMIJSZLFixfn4YcfHsxTq2oDHo488sgjOfroo/Pqq69m7Nixufjii3PfffflzjvvzIc//OEkaxaOOfzww7N06dL17ufkk0/OLbfckiSZPn16brzxxjzwwAO55ppr8sY3vjGtra254IIL2hNCql9zeVmN3WoAAIAePP744+2P3/a2t3XbtuPzHV83lPbaa69un586dWr74+FyztVgwMtqTj/99CxfvjyNjY25/fbbM23atPbnDjjggOy0004555xz8tRTT+ULX/hCLrjggj73MXfu3Fx33XVJkiOOOCI//OEP29O/vfbaK//4j/+YPfbYI88//3zOOeecvPe97824ceP65fqqXWtrW1aWWjKqsaFX9XzDqX15HaSyGgAAoCevvPJK++PXve513bZ9/etf3+nrhtLWW2/d7fMdr2m4nHM1GNBwZN68ebn77ruTrJnZ0TEYWeuss87KzJkz8+STT+aLX/xizjvvvPZFaXrrc5/7XJKkoaEhV155ZcW0qC233DKXXnppjjvuuCxevDjXXHNNzjrrrPW7qILo69Zcw7H9T3+9aJ2v3f/sn/LEH5cUZmsxAABYa7ONRuShT/3DgPdzwU2/ypzHei4feeffbJNP/+ObB/RcNttoxIAeP1mztkh32to6X5h2KFXjOVeDAQ1HbrzxxvbHJ510Uqdt6uvrc/zxx+e8887L4sWLc/fdd+eggw7qdR9Lly7NnXfemSQ56KCDMn78+E7bvfvd784mm2ySJUuW5IYbbqjpcOSmX/4hZ13/yDprdqzdmuvmX/4xlx/91rzrb7erqvZJ8tuXl+Ufv3JvRXsAAKh29fV1A7I4ablTp0/Kj3/1QsVn7Y4a6+vysf0nDcr5DITNN9+8/fELL7yQyZMnd9n2xRdf7PR19X8p6W9tba14TUfLli1b39Ps1Tl15qWXXmp/3PGck6E97+FuQBdpuOeee5Ks2d5njz326LLd2j2kkzX7SPfFAw88kFWrVlUcp9yIESPad6t54IEH0tzc3Kd+iuKJPy7pNFhYa+3WXD956qXMf2V5fvLUSzmzytqfdf0jeeKP/b+nNwAAFN2btt0klx/91jR2UeLeWF+Xy49+a1XP1u649ez//V/3u+488MADnb5u443XbGO8ePHibl//9NNPd/t8T7NAOjNv3rxeP1++ze7a8167IG1XBuK8h7sBnTny5JNPJkkmTZrU6TZDa+2yyy4Vr+lrH+XH6aqf22+/PaVSKb/5zW/ypje9qdf9LFiwoNvnh8vKxT25+t5nu02BkzVreZw0q/sfuOHcvtTalmvu/V0uP/qtvX4NAACwxrv+drvstPXGuebe3+XWxxa2l70ftus2OXmfHao6GEmSPfbYI+PGjcuf//znfOMb38iZZ57Z6Y41r732Wq6//voka7b83Wabbdqf22GHHZIkv/71r/Paa6+1hw4dvfzyy7njju63Xx41alSStP/Cvzduv/32LFy4cJ3zWau1tTXf+MY3kiSbbbZZdt9993WeX3ver732Wp5++unsvPPOFcdYvXp1fvCDH/T7eQ93AzZzZOXKlVm0aM2aEF2Vuqy12WabZcyYMUmS+fPn96mfju176mfChAmdvq43JkyY0O2fjisCD1etrW257bEXhvo0BsWtjy1Maw8hEAAA0Lm1M0h+9elD8sRnDsmvPn1I1c8YWWvkyJH50Ic+lCT51a9+lU9/+tMVbdra2vLxj3+8fUz78Y9/fJ3n11YtrF69Ov/5n/9Z8frm5uacfPLJWbFiRbfnsjbg+O1vf9vr81+1alVOOeWUtLS0VDx3ySWX5LHHHkuS/PM//3NGjly39KljtcXll19e8fq2tracdtpp+eMf/9ir83722WcLs8bJgM0cee2119ofjx07tsf2Y8aMybJly/q8nW9f+lkbwCTZoG2Dq9XKUktWNFf+ABXRiuaWrCy1ZKMRA74hEwAAFFZ9fV0hP1NfcMEFueGGG/Lss8/moosuyuOPP55//ud/zrbbbpvf/e53+cpXvtK+uci0adPykY98ZJ3XH3744dl+++3z3HPP5fzzz8+iRYvy7ne/O6NGjcrjjz+eL3/5y/nlL3+Zt73tbd2W7vzd3/1dfvKTn2TevHm55JJLcuihh7aPW0ePHp3ttqtcS3HPPffMj370o+y9994544wzstNOO+Wll17KN77xjcyePTvJmokD559/fsVrd9ttt7z97W/P/fffn6997WtZvXp1TjjhhGy66ab5zW9+k//+7//O3XffnWnTpuXnP/95t+c9c+bMvPTSSznzzDPzgQ98IJtuummSpKmpKdtvv333N2AYGrB3+cqVK9sfjxjR8yrDaxOtnpK1DemnY2rW1356mmmycOHCYT97ZFRjQ0Y3NdREQDK6qSGjGiunxgEAAGy88ca58847c+ihh+app57KD3/4w/zwhz+saLf33nvn5ptvrii7GTFiRL71rW/lHe94R5YtW5YrrrgiV1xxRfvzDQ0N+cIXvpA///nP3YYjH/3oR/PVr341r7zySs4777ycd9557c/tt99+7QFNR6eeemrmzp2bWbNm5dhjj614fptttsmPf/zj9rCi3MyZM7Pffvu1Bypry3DWOvPMM7Prrrt2G44ce+yx+exnP5tnn302X/ziF/PFL36x/bntt98+v//977t87XA1YGU1a2uQkjVTjXqytlZp9OjRA9ZPx3qovvYzfvz4bv90Vu813NTX1+XQXV/fc8MkR/7ttnnyM+/Iu/5226psf9iu26S+i0WkAAAAJk6cmEceeSRf+cpXst9++2WLLbZIU1NTXve61+Ud73hHvvnNb+anP/1pxY4va+2zzz556KGH8sEPfjDbbrttmpqass022+Q973lPfvrTn+b000/v8Ry22267PPDAAzn55JMzadKkdca33Zk5c2auu+667L///tliiy0ycuTITJ48Oeecc05+9atfdbu+5i677JKHH344H/3oR7P99ttnxIgR2WqrrfKOd7wjc+bM6bTcptzYsWNz33335bTTTsuUKVOy0UYb9eq8h7MBmznScUGa3pSwrN0qqDclOOvbT8ftiPraT1F8aJ8dc/Mv/9jj1lwf+fs3ZvSIhpzy92/MnEcXVl37k/fZocvnAQAAkjUzQE499dSceuqp6/X6nXfeOddee22Xz1944YW58MILuz3GG9/4xlx99dV97vu4447Lcccd1+fXJWtCmSuvvLLL50888cSceOKJ3R7jda973TozRqrdgM4c2XLLLZP0vNPL4sWL24OLjoum9kbHRVh76qdjaUxf+ymKvm7NVe3tAQAAoCcDurLOlClTcs899+SZZ55JqVTqcjvfp556ap3X9EXH6UIdj9NdP42NjZk0aVKf+imSvm7NVe3tAQAAoDsD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jl22e+Mb39j+eNWqVX3qg6Hncxgd+RxWLD6HDV/CkSp0zz33JEnGjBmTPfbYo8t2++23X/vje++9t099PPDAA+0fpjoep9yIESPy9re/vf01zc3NfeqHrg3Gfe6tjh+s6+v9s9GfBvs+l0qlfOQjH0lra2v+9V//NTvvvPN6H4veG4z7vHr16vZ1Rg499NCMHTs2yZp7/txzz+X5559fZ2BN/xuM+7zllltm8803T5I8++yzXbb77W9/2/548uTJfeqDoedzGB35HFYcPocNb366qtCTTz6ZJJk0aVIaGxu7bLfLLrtUvKavfZQfp7t+SqVSfvOb3/SpH7o2GPe5t+bOnZskaWxszKRJkwakj1o12Pf5sssuyyOPPJI3vvGNmTFjxnofh74ZjPv8yCOPZOXKlUmSadOm5YUXXshJJ52UcePGZeLEidl+++2z6aab5rDDDst99923HldBTwbr5/kjH/lIkuThhx/Obbfd1mmbiy66KEnS0NCQD33oQ33ug6Hlcxgd+RxWHD6HDW/CkSqzcuXKLFq0KEl63Glgs802y5gxY5Ik8+fP71M/Hdv31M+ECRM6fR3rb7Duc2/MmTMnjz76aJLkkEMOaZ++y4Yb7Pv87LPP5jOf+UyS5Morr8yoUaPW6zj0zWDd5yeeeGKdPnfdddfMmjUry5YtW+frt912W/bdd9988Ytf7NPx6d5g/jx/8pOfzD/8wz8kSY466qicffbZue222zJv3rx897vfzf7775/vf//7aWhoyJe//OVMmTKlz30wtHwOYy2fw4rD57DhTzhSZV577bX2x2unTHdn7Yevvm4X2Jd+1vaxPv3QucG6zz155ZVXcuqppyZZ89vHtb+JpH8M9n0+5ZRTsmLFihxzzDGDulVdrRus+/zKK6+0P/70pz+dRYsW5Z3vfGcefPDBrFy5Mi+++GKuvPLKbLLJJmltbc2ZZ57Z5awD+m4wf57Hjh2b2267LV/72tcyfvz4XH755TnssMMyderUHHvssZk7d27e/e5352c/+1k+9rGP9fn4DD2fw0h8Disan8OGP+FIlVk7ZTpZU2fak5EjRyZJVqxYMWD9rO1jffqhc4N1n7vT0tKS97///XnuueeSJJ/61Key22679dvxGdz7fO211+aOO+7IJptskiuuuKLPr2f9DdZ97jhDZNWqVTniiCNy0003ZY899sjIkSOz9dZb56Mf/WjmzJmT+vr6tLW15ZxzzklbW1uf+qFzg/3v9oMPPpjvfOc7Xa47cscdd+Qb3/hGlixZsl7HZ2j5HIbPYcXic1h1EI5UmY7Tr3qzsN7aBZxGjx49YP10XCSqr/3QucG6z9352Mc+lv/93/9Nkhx++OE5//zz++3YrDFY93nRokXtO5dcfPHF2Wabbfr0ejbMUPy7nSSf//znO124b5999sm73/3uJMnjjz+exx9/vE/90LnB/Hf7+9//fvbff//cdddd2XXXXfPDH/4wf/rTn7J69er89re/zX/8x3+kubk5X/3qV/N3f/d3eeGFF/rcB0PL5zB8DisOn8Oqh3Ckymy88cbtj3szdXLtbxJ7M8V3ffvp+NvKvvZD5wbrPnflvPPOy1VXXZVkzUDqe9/7XhoaGvrl2PzVYN3nM888M4sWLcqee+5piv0QGIp/t3fYYYduV8A/5JBD2h/PmzevT/3QucG6zy+++GJOPPHErFq1Km9+85tz33335cgjj8zmm2+epqam7LjjjjnvvPPyox/9KHV1dfnVr36VT3ziE327GIacz2G1zeewYvE5rHp0vZQ6w9KoUaOy5ZZbZtGiRVmwYEG3bRcvXtz+P8yOi3X1RsfFvxYsWJA999yzy7YdF//qaz90brDuc2cuvfTSXHLJJUmS3XffPbfccovfRA2QwbjPf/zjH/PNb34zSXLAAQfk+uuv77b9Sy+9lNmzZydZM8B+29ve1uu+6Nxg/Tx3bN+XBRxfeumlPvVD5wbrPs+ePbv9tTNmzFhnvYmODjzwwBx44IG54447csMNN2Tx4sXZbLPN+tQXQ8fnsNrlc1ix+BxWXYQjVWjKlCm555578swzz6RUKnW5XeBTTz21zmv64k1velOnx+muH9uL9a/BuM/lrrzyypx77rntx/rxj3+cTTfddIOOSfcG+j53nI79uc99rsf2Tz75ZI477rgkyQknnOB/yv1kMH6e3/zmN7c/bmlp6bZtx+e723KWvhmM+9xxi9fdd9+927Z77LFH7rjjjrS2tubXv/61n+cq4nNYbfI5rHh8Dqsuymqq0D777JNkzTTKhx56qMt2a/dET5K99967T33stdde7QuAdTxOudWrV+f++++veA0bbjDuc0ff/OY38/GPfzxJsuOOO+aOO+7Illtuud7Ho3cG+z4zNAbjPm+//fZ5wxvekCT57W9/223bjs9vt912feqHrg3Gfe4YuJRKpW7bNjc3d/o6hj+fw2qPz2Ew9IQjVejII49sfzxz5sxO27S2tubaa69NkowbNy7Tp0/vUx8bb7xxDjzwwCRrVrzvaorwDTfc0L4S/lFHHdWnPujeYNzntW644YacdNJJaWtry/jx43PnnXdm2223Xa9j0TcDfZ8nTpyYtra2Hv+std9++7V/bdasWet1TVQarJ/n97znPUnWrEtx3333ddnuhhtuaH+877779rkfOjcY93mHHXZof3zPPfd02/anP/1pkqSuri4TJ07sUz8MLZ/DaovPYcXlc1iVaaMq7bvvvm1J2hobG9vuu+++iuc/97nPtSVpS9L2b//2bxXPz5w5s9vn29ra2u688872Nv/4j//YViqV1nn+5ZdfbnvDG97QlqRt3Lhxba+88kp/XBodDMZ9/vGPf9w2YsSItiRtW2+9ddtTTz3Vz1dBTwbjPvdk7ev322+/9Xo9PRuM+/zcc8+1jRo1qi1J2x577NG2dOnSijbf/OY3249z+OGHb+hlUWag7/OTTz7ZVldX15akbbvttmtbsGBBp+fxP//zP+3HmTZt2oZeFt343e9+1/69PuGEE3r1Gp/Dqs9A3Wefw4aXgbrPPfE5bHgwx7JKfelLX8ree++dFStW5OCDD86MGTMyffr0rFixIrNnz25f4Xry5MntW0f11QEHHJBjjz02s2fPzs0335yDDjoop59+erbddts89thjufjii/P8888nSS655BILvQ2Agb7P999/f4466qisXr06TU1NueKKK9Lc3Nzt1p7jx4/PuHHj1veS6MRg/Dwz9AbjPr/hDW/IZz7zmZxzzjl56KGHMnXq1Jxzzjl5y1vekldffTU33HBD/vu//ztJsskmm+SKK67ot+tjjYG+z7vssktOOumkfP3rX88f/vCH7Lbbbjn99NOz7777ZuONN878+fMze/bsXHfddUmShoaG/Md//Ee/XmOtu/fee/PMM8+0/33RokXtj5955pmK3/aeeOKJ69WPz2FDazDus89hQ2+wfp6pEkOdzrD+br755rZNNtmkPWks/zN58uS23/zmN52+trcJ5/Lly9sOO+ywLvuor69f74SU3hnI+/xv//ZvXR63qz8zZ84c2AuuUYPx89ydta/3G4uBNVj3+dxzz22fXdDZn6233rrTWQ30j4G+zytXrmw75phjevz3esyYMW3f/va3B/BKa9MJJ5zQp/9vdsbnsOFvMO6zz2FDbzB/nrvjc9jwYM2RKnbEEUfk0UcfzRlnnJHJkydno402yrhx47Lnnnvm0ksvzS9+8YsNXrV89OjRmTNnTr797W/noIMOytZbb50RI0ZkwoQJed/73pd77703F154Yf9cEJ0ajPvM0HOfa8Ng3efPfvaz+dnPfpYPfvCDmThxYkaOHJlNN900e+21Vy666KL8+te/zrRp0/rhiujMQN/nkSNHZvbs2bnrrrty/PHHZ/LkyRkzZkwaGxuz+eabZ9q0aTn//PPz1FNP5X3ve18/XhmDzecwgMFT19bWYQUYAAAAgBpj5ggAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANQ04QgAAABQ04QjAAAAQE0TjgAAAAA1TTgCAAAA1DThCAAAAFDThCMAAABATROOAAAAADVNOAIAAADUNOEIAAAAUNOEIwAAAEBNE44AAAAANU04AgAAANS0/x9IX8EnCxQPPAAAAABJRU5ErkJggg==", + "image/png": "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cWP2ca9evVod27t37+zjDRs2FDXPsmXLWn2+aVlNj9W375YTXSooQNKnfnP03bxRgAQAAKBIfes3Rp+B/dsemABlnznSp88/N72bN29udeymTZuyj/v27VvUPCNGjGj11w477FDcwrtDdfWWo27b45hjIt5+O+Loo3vW+CJfU/32W3HopjfaNfzItX+N5/6/sTF17V971PieuCbX3P3je+KaXHPnj++Ja+pp43vimlxz54/viWvqaeN74ppcc/eP74lrcs2dP76UcxyW+ntFlNREJCA4MnDgwOzjtkpl1q37ZzpQWyU4iXXOOVtOcmlNbW3EhRdGDBsWcdFFPWt8B15z8v+ZGLXpVk62iS2dmL/0+Y9H3x23j1M///EeNb4nrsk1d//4nrgm19z543vimnra+J64Jtfc+eN74pp62vieuCbX3P3je+KaXHPnjy/lHCcd1cOrIzpR2QdHmjZhbetEmaalMYlosNoR++yz5bSaloILtbVbnt9nn545vgOv2euA8TFzt81R3ZAuPDy95QzvxiOqGse39JdFV4/viWtyzd0/vieuyTW75u4Y3xPX5Jpdc3eM74lrcs3dP74nrsk1l+c1V4KyP8r3j3/8Y3zyk1uOab3sssviggsuaHHsIYccEvfff3/U1tbG+vXro66ubqvnb1SKo4RK6plnIq65JuLXv97Sg6Rfv4j/838izj67eSCip47vwGt+euujccUzq7O/r8o0xGc3/i1OOmpCwW/6vzz0ZFz/XwvjntrtY0Ndn+hbvzEOS/2928b3xDW55u4f3xPX5Jpdsz8j1+ya/Rm55p41vieuyTWX5zX3FKXYf5d9cGTNmjWx3XbbxebNm+PTn/503HvvvQXHbd68OYYNGxarV6+OiRMnxoIFC7Z67qbKLjjSqKFhyyk2fftu6UlSbuOLeM1/Pf16nP2rZ7K/33P7AXHvWZPbfvtUOjauWRd9BvZvV71dqcf3xDW55u4f3xPX5Jpdc3eM74lrcs2uuTvG98Q1uebuH98T1+Say/Oau5vgSAsOO+ywuPfee6O2tjZeffXVgn8wc+bMiWOPPTYiIq688so499xzO2XuRmUbHKkgty1aFuf95tns7/cZMSju/Or+3bgiAAAAilWK/XeP7zly4403RlVVVVRVVcUll1xScMzXvva1iIhIpVJx+umnRzrdvLfEihUr4vzz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lnfAgAFtjm8Mjqxdu7bouWpqauKmm26KI444Iv7v//2/MWvWrJg1a1azMVOmTImLLrqoQ4ERylt9OresRs8RAAAA/qmkmSONevXq1eb43r17R8SWo3Y74rnnnoubb745lixZUvD5xx9/PK6//vrYc889Y6eddir6/dvKaFm+fHlMmDCh6Pel9PLKavQcAQAAoImSBUf69OmTfdye02E2bdoUERF9+/Yteq5HH300jjjiiHjvvfdi5MiR8b3vfS8OOuig2HbbbeOtt96Ku+66K775zW/GnDlz4pFHHon7778/9t5776LmaKs0iJ6rXs8RAAAAWlGy+oKBAwdmH7enVGbdunUR0b4SnKY2bdoUxx57bLz33nux/fbbxxNPPBHTpk2LD3zgA1FXVxcjRoyI0047LR555JHo06dPvPnmm3H88ccXdzGUtXTuaTWO8gUAAKCJku0S+/TpE0OHDo2ILSe9tObdd9/NBkeKbXz6+9//Pt54442IiDjjjDNi++23Lzhu7733jmnTpkVExOLFi+OZZ54pah7KV31OQ9Y6ZTUAAAA0UdIfoe+1114REfHyyy9HKpVqcdzzzz+ffbznnnsWNUfTo38/9rGPtTp27NixBeck2VI5DVlrZI4AAADQREl3ifvvv39EbCmZWbx4cYvjHn744ezjSZMmFTVHbe0/26a0FoCJiKivry/4OpJNQ1YAAABaU9LgyJFHHpl9PHv27IJjGhoa4uabb46IiMGDB8eUKVOKmmO33XbLPn700UdbHds0CNP0dSSbshoAAABaU9LgyIQJE+ITn/hERERcf/318fjjj+eNmTlzZrY05swzz4y6urpmzz/00ENRVVUVVVVVMX369LzXf/KTn4x+/fpFRMRPf/rTFo/yvffee+O//uu/IiJip512io9+9KMdvSzKTKpBWQ0AAAAtK/ku8dprr42+fftGKpWKgw8+OC677LJ44okn4sEHH4xTTz01zjvvvIiIGD16dMyYMaPo9x88eHBccMEFERGxZs2a2G+//eKiiy6KBx98MP7nf/4n7rvvvjjttNPiM5/5TDS8v0m+/PLLo9oGuWKkcspq6hzlCwAAQBMlb7yx7777xq9+9auYNm1arF69Oi666KK8MaNHj465c+c2O/63GN/4xjdi5cqVce2118batWvjsssui8suuyxvXF1dXfzf//t/s6fW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dHz+85+Pn/70p7F27dpOnY+eKZXOLauROQIAAEC+2q6Y5O67745p06bF6tWrs19bv359LFq0KBYtWhSzZs2KuXPnxqhRo7ZqnnfffTdOOOGEuPPOO/OeW716dbz00kvx29/+NiZOnBgf/ehHt2ouer7czBENWQEAACik5MGRp59+Oo455pjYsGFDDBgwIC688MKYMmVKbNiwIebMmRO/+MUv4sUXX4zDDz88Fi1aFAMHDuzQPO+9914cdNBBsXjx4oiIOOqoo+Lzn/987L777lFTUxPLli2Lhx9+OH7729925uXRg+WV1WjICgAAQAElD46ceeaZsWHDhqitrY37778/Jk6cmH3uwAMPjD322CPOO++8ePHFF2PmzJlxySWXdGieM844IxYvXhy9e/eO2267LT7zmc80e37cuHFx1FFHxTXXXBPpdHprLokykMlkIp3Xc0TmCAAAAPlK+qP0hQsXxqOPPhoRESeddFKzwEijGTNmxJ577hkREddee23U19cXPc/8+fPjlltuiYiI733ve3mBkaaqqqqitrZLqonoRrlZIxERtXqOAAAAUEBJgyN33HFH9vEJJ5xQeAHV1XHcccdFRMSqVaviwQcfLHqeH/3oRxERMWjQoPjqV79a/EJJnNxjfCMi6pxWAwAAQAEl3S3Onz8/IiL69+8fY8eObXHc5MmTs48fe+yxoubYvHlztgHrQQcdFH369ImIiHQ6HcuWLYulS5fGxo0bi106Za6+oSHva06rAQAAoJCSBkeee+65iIgYNWpUq6UsY8aMyXtNez3zzDPZ4MeHP/zhWL16dZx11lmx3XbbxS677BK77bZbDBo0KA466KB46KGHir8IylK6QOaIniMAAAAUUrLmGxs3bowVK1ZERMSIESNaHTtkyJDo379/rFu3LpYtW1bUPH/5y1+yjxsaGmLcuHHx0ksvNRuzefPm+MMf/hDz5s2Lyy67LM4///yi5oiIeP3111t9fvny5UW/J6VTKHPEaTUAAAAUUrLgyJo1a7KPBwwY0Ob4xuDI2rVri5pn5cqV2cdXXHFFbNy4MT796U/Hd77znfjIRz4Sq1evjt/+9rdxwQUXxHvvvRcXXHBBjBkzJqZOnVrUPDvvvHNR4+lehXqOyBwBAACgkJL9KL1pn49evXq1Ob53794REbFhw4ai5lm3bl2zOQ866KD43e9+F+PHj4/evXvHsGHD4stf/nL87ne/i+r3MwcuvPDCyGTyN88kR+4xvhERdTJHAAAAKKBkmSONjVEjtpS1tGXTpk0REdG3b98OzxOxJXukpqYmb9z+++8fn/3sZ+M3v/lNPPfcc7FkyZL4yEc+0u552ir3Wb58eUyYMKHd70dp1ac1ZAUAAKB9ShYcGThwYPZxe0plGjNA2lOC09I8w4YNi3333bfFsYccckj85je/iYiIJ598sqjgSFt9U+hZUoUyR5TVAAAAUEDJ6gz69OkTQ4cOjYi2m5m+++672eBIsb09mo5vK4DRdOw777xT1DyUl9yeIzXVVVFVJTgCAABAvpI2Ydhrr70iIuLll1+OVCrV4rjnn38++3jPPfcsao699947+zidTrc6tunzrR0tTPlL5ZxWo6QGAACAlpQ0OLL//vtHxJaSmcWLF7c47uGHH84+njRpUlFzjBw5MnbZZZeIiFi6dGmrjVZfeeWV7OOddtqpqHkoL7llNXWCIwAAALSgpMGRI488Mvt49uzZBcc0NDTEzTffHBERgwcPjilTphQ9z+c+97mIiFi9enXMmzevxXG333579nFj4IZkyi2rqa1xUg0AAACFlXTHOGHChPjEJz4RERHXX399PP7443ljZs6cGc8991xERJx55plRV1fX7PmHHnooqqq29IuYPn16wXnOOuus7Kk155xzTqxevTpvzH/+53/GQw89FBERhx9+eNG9TSgvqZzTampljgAAANCCkv84/dprr42+fftGKpWKgw8+OC677LJ44okn4sEHH4xTTz01zjvvvIiIGD16dMyYMaNDc+yyyy7xne98JyIilixZEhMmTIjZs2fH4sWL48EHH4wzzjgjG1jZZptt4pprrumUa6Pnyi2rqXVSDQAAAC0oeVfSfffdN371q1/FtGnTYvXq1XHRRRfljRk9enTMnTu32bG8xTr33HNj5cqVccUVV8QLL7wQJ554Yt6Y4cOHxx133BF77LFHh+ehPOQ2ZK2tVlYDAABAYV2yYzziiCPi2WefjbPPPjtGjx4d/fr1i8GDB8e4cePiiiuuiKeffjpGjRq11fNcdtll8dhjj8UXv/jF2HXXXaN3794xaNCgGD9+fHz3u9+NF198MSZOnNgJV0RPV5/Xc0TmCAAAAIV12Xm2I0eOjKuvvjquvvrqol53wAEHtHoCTa6J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5ZSIiHjxxRfj8MMPjzVr1nTqvD/4wQ+iT58+MXDgwE57X3q2vLIamSMAAAC0oeTBkTPPPDM2bNgQtbW1cf/998dFF10UEydOjAMPPDCuu+66uPLKKyNiS4Bk5syZnTJnOp2OU045JdLpdFx00UWx7bbbdsr70vOl806rkTkCAABA60q6c1y4cGE8+uijERFx0kknxcSJE/PGzJgxI/bcc8+IiLj22mujvr5+q+e99tprY/HixfHBD34wzj///K1+P8pHfU5ZTZ3MEQAAANpQ0uDIHXfckX18wgknFF5AdXUcd9xxERGxatWqePDBB7dqztdeey0uvvjiiIj42c9+Fr169dqq96O85DZkrREcAQAAoA0lDY7Mnz8/IiL69+8fY8eObXHc5MmTs48fe+yxrZrztNNOi3Xr1sUXv/jFOOCAA7bqvSg/qZyymjplNQAAALShpKfVPPfccxERMWrUqKitbXmqMWPG5L2mI+bMmRP33HNPDBkypNP6lzR6/fXXW31++fLlnTofHZNK555WI3MEAACA1pUsOLJx48ZYsWJFRESMGDGi1bFDhgyJ/v37x7p162LZsmUdmu/dd9+Ns846KyIiLr/88hg2bFiH3qclO++8c6e+H6WRmzmirAYAAIC2lKzmoOmxvAMGDGhzfP/+/SMiYu3atR2a79xzz4233norJk6cmD0imMqT23OkrlpZDQAAAK0raeZIo/Y0Re3du3dERGzYsKHouR555JG44YYbora2Nn72s59FVVXnZwu0ldGyfPnymDBhQqfPS3FSOafV1CirAQAAoA0lC4706dMn+3jz5s1tjt+0aVNERPTt27eoeTZt2hRf+tKXIpPJxJlnnhkf+chHiltoO7VVGkTPUJ+XOSI4AgAAQOtKVnMwcODA7OP2lMqsW7cuItpXgtPUpZdeGi+88ELsvPPO8e1vf7u4RZI46YbchqzKagAAAGhdSTNHhg4dGv/4xz/aPOnl3XffzQZHim18esUVV0RExKc+9am4++67C45pfO9169bFnDlzIiJi+PDhceCBBxY1Fz1fbs+RWpkjAAAAtKGkR/nutdde8eijj8bLL78cqVSqxeN8n3/++ezjPffcs6g5Gkt2Zs+eHbNnz2517IoVK+LYY4+NiIjJkycLjiRQfc5pNY7yBQAAoC0lrTnYf//9I2JLxsbixYtbHPfwww9n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x5/+FHHccRGpVOHnU6ktz2+/fcSHPlTatQwdGtGNP/x88cUXY+TIkfHYY4/FTjvtlP36+PHjY/z48fG//tf/ilQqFdddd11ce+21Lb7Pk08+GYcddljceeedUVv7zy34oYceGh/60Ifi4osvjr/97W/x3e9+N6688spOvYaddtopdtppp+jfv39ERPTv3z8+VOr7VqYERyhrymoAAKgY//hHxPDh3b2KLQGSAw8s/Txvvx0xbFjp52nFD3/4w2aBkUb7779//Ou//ms88cQT8eijj7b6Hr17945f/OIXzQIjjb7+9a/HbbfdFn/605/i+uuvj+9973vRq1evTls/7acGgbJWn3tajcwRAACgEwwePDgOP/zwFp8fO3ZsRET89a9/bfV9Dj744Nhxxx0LPlddXR3HH398RESsXLkynnrqqQ6ulq0lOEJZS+WW1dT4SAMAAFtvjz32iOpWynq23XbbiIg2e4WMHz++1ecnTJiQfbxkyZIiVkhnspOkrOU2ZK1TVgMAAHSCfv36tfp8Y+CkoY1jjoe3UQr1gQ98IPt45cqV7VwdnU3PEcpaKucvohplNQAAJNXQoVv6cJTSV78acdttbY875piIH/6wtGsZOrS0799FqqrsUcqB4AhlLa8hq6N8AQBIqurq0jcoveiiiNtvb/m0moiI2tqICy/s9map5eKtt95q9/ONpTqN2pudsm7dug6ujkZ2kpS13IasymoAAGAr7LNPxM03bwmAFFJbu+X5ffbp2nWVsSeffLLdz+cesztw4MCIiFi1alWr7/Hiiy+2+rzslbYJjlDWchuy1sgcAQCArXPssRGLFkUcf3xEY9+Nfv22/H7Roi3P0273339/LF++vOBzDQ0NcdNNN0VExJAhQ+JjH/tYs+d32223iNjS9PWFF14o+B6bN2+O3/72t62uoU+fPhERsWnTpqLWXknsJClrGrICAEAJ7LNPxI03RqxZE7F27Zb/3nijjJEO2LRpU5x66qmRTqfznrv88suzJ9SceOKJ0bt372bPT548Oft45syZBd//nHPOiTfeeKPVNeywww4RseXY4Uwm0+rYSqXnCGUtldZzBAAASqa6OqJ//+5eRVkbN25c3H333TFp0qQ4++yzY4899oi33347brrpppgzZ05ERIwYMSK++c1v5r123333jYkTJ8bjjz8ev/jFL2Lz5s1x/PHHx6BBg+Kll16K6667Lv74xz/GfvvtFwsWLGhxDfvtt1/Mnj073n777TjnnHNi2rRpMWjQoIiIqKuri5EjR5bm4suI4AhlLfe0mlqZIwAAQA9y+umnx8MPPxw33nhjfOELX8h7focddoj77rsvG6zIdcMNN8TkyZOzAZXGMpxGX/va12LvvfduNTjyhS98IS677LL461//Gj/4wQ/iBz/4Qfa5kSNHxtKlSzt0bUnix+yUtdyymlpH+QIAAD3M7Nmz4//9v/8XBxxwQAwdOjR69+4do0ePjvPOOy/+/Oc/x1577dXia8eMGRNPPfVUfOUrX4mRI0dGr169YtiwYfHpT3865s6dG1dddVWb8w8YMCAWLFgQZ555Zuy5557Rr7GXDFlVGQVHneL111+PnXfeOSIili1bFiNGjOjmFVWGabP+O+a/vCL7+28cvmec/Il/6cYVAQBAcV566aVIpVJRW1sbe+yxR3cvh06wdOnSbDPV2bNnx/Tp07t3QT1YRz7/pdh/yxyhrNXnnFZTV+MjDQAAQHHsJClr6dyyGj1HAAAAKJLgCGWtXs8RAAAAtpLgCGUtlVNW4yhfAAAAimUnSVlTVgMAAMDWqu3uBcDWyG3IKnMEAADobrvuums4GLa82ElS1mSOAAAAsLUERyhr9enmwZE6wREAAACKJDhCWUs1NC+rqVFWAwAAQJHsJClruWU1dY7yBQAAoEiCI5S13LKa2hofaQAAAIpjJ0lZS6Vzy2pkjgAAAFAcwRHKWiq3rEZDVgAAAIokOEJZyw2OyBwBAACgWIIjlK1MJpPfkFXPEQAAAIpkJ0nZys0aiYiolTkCAABAkQRHKFupdKHgiI80AAAAxbGTpGzVNzTkfa1WQ1YAAACKJDhC2UoXyhwRHAEAAKBIgiOUrYKZI8pqAAAAKJKdJGUr96SaCJkjAAAAFE9whLJVqCFrncwRAACgTOy6665RVVUV06dP7+6lFOWAAw6IqqqqOOCAA7p7KZ3GTpKyVZ/OL6upcZQvAAAARRIcoWwVKqupU1YDAABAkQRHKFv1OWU1NdVVUVUlOAIAAEBxBEcoW6mc02qU1AAAQOdqaMjE+s2paCiQtZ0Emzdvjp/85CcxZcqUGDZsWPTq1Su23377OOyww+I///M/o6HACZkR7e+5cckll0RVVf4PcRtf/9prr0VExE033ZQd1/ir6XsvXbo0+/Ubb7wxIiJ+/etfx6c+9akYPnx49O3bN8aMGRMXXnhhrFq1qsX1TJ8+PaqqqmLXXXdtdd033nhjdr6lS5fmvf7hhx+OiIiHH344b91tvXdPVdvdC4COSuX8BV0nOAIAAJ3iL2+ujlnz/xr3Lvl7bKhPR9+6mjj0w9vHyfv/S+y14zbdvbxOsXTp0jj00EPj+eefb/b1t956K+69996499574+c//3nceeedse2223bTKgs76aST4oYbbmj2tRdeeCEuv/zyuPnmm2PevHkxZsyYblpdeZI5QtnKPa1G5ggAAGy9O//njfjMj+bH7U+9ERvq0xERsaE+Hbc/teXrd/7PG928wq23du3a+OQnP5kNjBx55JFx1113xaJFi+LXv/51TJ48OSIi5s+fH0cccUSk0+lOnX/27NmxZMmS2HHHHSMiYurUqbFkyZJmv2bPnl3wtT/5yU/ihhtuiAkTJsStt94aixYtinvuuSeOPvroiIh4880345BDDok1a9Z06pojIi699NJYsmRJjBs3LiIixo0bl7fu+++/v9Pn7QoyRyhbqZzTaupqxPoAAEiuhoZMvLt+c0nnePGtNXHObc8UPPwgYkv29jm3PRPDB/aO0R8YWNK1DOnXK6pL9APQb3/72/HXv/41IiK+8Y1vxHe/+93sc2PHjo3Pfe5z8cUvfjF++ctfxoIFC+K6666Lr3zlK502/2677RYREXV1dRERMXjw4PjQhz7Urtc++eSTcdhhh8Wdd94ZtbX/3NIfeuih8aEPfSguvvji+Nvf/hbf/e5348orr+y0NUdE7LTTTrHTTjtF//79IyKif//+7V53T9dlwZHXXnst/uM//iPmzp0by5Yti969e8fuu+8eRx99dJx++unRr1+/Tpnn3nvvjeuuuy6efPLJeOedd2LYsGExfvz4+NKXvhSHHnpop8xBz5BbVlPrpBoAABLs3fWbY+z3/tDdy4h0QyaO/cV/l3yexd/4VAwd0LvT33fTpk0xa9asiIjYe++945JLLskbU1VVFT/5yU/i97//ffzjH/+IH/3oR50aHNkavXv3jl/84hfNAiONvv71r8dtt90Wf/rTn+L666+P733ve9GrV69uWGX56ZIftd99993xkY98JK6++up44YUXYv369fHuu+/GokWL4rzzzot99903Xn755a2ao6GhIU4++eQ47LDD4o477og33ngjNm/eHG+88Ubccccdcdhhh8Upp5zSYkMdyk9uQ9baapkjAABA6xYvXpxtWjp9+vSoqakpOG6bbbbJlqr85S9/ieXLl3fVElt18MEHZ8txclVXV8fxxx8fERErV66Mp556qiuXVtZKvpt8+umn45hjjonVq1fHgAED4tJLL40FCxbEvHnz4pRTTomIiBdffDEOP/zwraqJ+vrXvx7XX399RETsu+++ceutt8bChQvj1ltvjX333TciImbNmhXf+MY3tv6i6BFyj/KVOQIAALTlT3/6U/bxv/7rv7Y6tunzTV/XncaPH9/q8xMmTMg+XrJkSamXkxglL6s588wzY8OGDVFbWxv3339/TJw4MfvcgQceGHvssUecd9558eKLL8bMmTMLpjS15cUXX4zvf//7EbGlIcwjjzwSffv2jYgtH5zPfOYzMXny5Fi0aFFcddVVceKJJ8aoUaM65frKXUNDJjam0tGntqZd9Xw9aXxuHaTYCAAA0JaVK1dmHw8fPrzVsdtvv33B13Wnttb8gQ98IPu4p6y5HJQ0OLJw4cJ49NFHI2LLUUNNAyONZsyYEbNnz47nnnsurr322vj617+ebUrTXj/4wQ8ilUpFRMQPf/jDbGCkUb9+/eKHP/xhTJw4MVKpVFxzzTXx4x//uINXlQzFHs3V08ZHRCxdsa7Z719dsT7Oue1/EnW8GAAANBrSr1cs/sanSjrHxXf+OeYuabt85H9/ZIf49mf2LulahvQrfa+Mqqry+wlrOa65HJQ0OHLHHXdkH59wwgkFx1RXV8dxxx0XF154YaxatSoefPDBOPjgg9s9RyaTiTvvvDMiIsaMGRMf//jHC477+Mc/Hh/84AfjhRdeiDvvvDN+9KMfVeyH6s7/eSNm3PZMs4amjUdz3fU/b8bMo/eJqR/dqceOb3zN9+9/odnXMhGtvgYAAMpZdXVVSRqUNnX6lFFx35//nnf4QVO11VVx2gGjSr6WUtl2222zj996660YPXp0i2P//ve/F3xd9fv9Dtvqablu3bpWn++It956q93PN11zRPeuu6crac+R+fPnR8SW433Gjh3b4rjGM6QjIh577LGi5nj11VfjzTffzHuf1uZ54403YunSpUXNkxR/eXN1XiCiqcajuR58/u1YtnJ9PPj823FODxrf9DUt/X2dasjEjNueib+8ubrtPxAAACBrrx23iZlH7xO1LZS411ZXxcyj9ynrTO2mR8/+93+3furOwoULC75u4MAtxxi/++67rb7+xRdfbPX5jvzA/sknn2z387nH7Dauu7EhbUtKse6erqSZI88991xERIwaNargMUONxowZk/ea9vrLX/5S8H3aM0/j2dLt8frrr7f6fE/pXNyWWfP/2moUOGJLL48Tbmz9G64nj4/YEiC5fv6rMfPofYp6HQAAVLqpH90p9hg+MK6f/2rcs2R5tuz9sA/vECftv1tZB0YiIsaOHRuDBw+OVatWxU033RTnnHNONqOiqTVr1sRtt90WERF77bVX7LDDDtnnGveSL774YqxZsyYbdGhqxYoV8cADD7S6lj59+kTEluOF2+v++++P5cuXN1tPo4aGhrjpppsiImLIkCHxsY99rNnzjetes2ZNvPDCC/HBD34w7z02b94cv/3tbzt93T1dyTJHNm7cGCtWrIiIiBEjRrQ6dsiQIdG/f/+IiFi2bFlR8zQNWrQ1z84775x9XOw8O++8c6u/mnYE7qkaGjJx75K/tz0wIe5Zsjwa2ggEAQAA+RozSP787UPiL985JP787UPKPmOkUe/evePkk0+OiC0n0Hz3u9/NG5PJZOKrX/1qdk/71a9+tdnzjVUJmzdvjh/+8Id5r6+vr4+TTz45NmzY0OpaGgMcr7zySrvXv2nTpjj11FMjnU7nPXf55ZdnT6g58cQTo3fv5qVPTastZs6cWfD9zznnnHjjjTfate6//vWvkckkY89VssyRpsfyDhgwoM3x/fv3j3Xr1sXatWtLNk9jACYiip4nCTam0rGhPv8bKKk21KdjYyod/XqV/FAmAABIpOrqqkT+e/riiy+O22+/Pf7617/GJZdcEkuWLIkTTjghdthhh3j11VfjRz/6UTz00EMRETFx4sT40pe+1Oz1hx9+eIwcOTJee+21+OY3vxkrVqyIz372s9GnT5/485//HP/xH/8RTz/9dHz84x+PJ554osV17LfffvHggw/Gk08+GZdffnkceuih2X1r3759Y6ed8vsojhs3Lu6+++6YNGlSnH322bHHHnvE22+/HTfddFPMmTMnIrYkDnzzm9/Me+2+++4bEydOjMcffzx+8YtfxObNm+P444+PQYMGxUsvvRTXXXdd/PGPf4z99tsvFixY0Oq6Z8+eHW+//Xacc845MW3atBg0aFBERNTV1cXIkSNbvwE9UMk+5Rs3bsw+7tWr7S7DjRGttiJrWzNP06hZsfO0lWmyfPnyHp890qe2JvrW1VRMgKRvXU30qa3p7mUAAAA9zMCBA2PevHlx6KGHxvPPPx+//e1vC5aSTJo0Ke66666oqWm+r+jVq1f853/+Z3z605+OdevWxTXXXBPXXHNN9vmampr4wQ9+ECtXrmw1OPKVr3wlfvrTn8bKlSvjwgsvjAsvvDD73OTJk7MBmqZOP/30ePjhh+PGG2+ML3zhC3nP77DDDnHfffdlgxW5brjhhpg8eXI2oNJYhtPoa1/7Wuy9996tBke+8IUvxGWXXRZ//etf4wc/+EH84Ac/yD43cuTIsuzxWbKymsYapIgtqUZtaaxVyj2GtzPnaVoPVew8I0aMaPVXoXqvnqa6uioO/fD2bQ+MiCM/umM8951Px9SP7tijxhfzmsM+vENUt9BICgAAqGy77rprPPPMM/GjH/0oJk+eHEOHDo26urr4wAc+EJ/+9KfjlltuiUceeSTvxJdG+++/fyxevDi++MUvxo477hh1dXWxww47xOc+97l45JFH4v/7//6/Ntew0047xcKFC+Okk06KUaNGNdvftmb27Nnx//7f/4sDDjgghg4dGr17947Ro0fHeeedF3/+859jr732avG1Y8aMiaeeeiq+8pWvxMiRI6NXr14xbNiw+PSnPx1z586Nq666qs35BwwYEAsWLIgzzzwz9txzz+jXr1+71t2TlSxzpGlDmvaUsDQeFdSeEpyOztP0OKJi50mKk/f/l7jrf95s82iuL/2v3aNvr5o49X/tHnOfXd5jxkdEu19z0v7tb7gLAABUnl69esXpp58ep59+eode/8EPfjBuvvnmFp+/5JJL4pJLLmn1PXbfffeYNWtW0XMfe+yxceyxxxb9uogtQZmf/OQnLT4/ffr0mD59eqvv8YEPfKBZxki5K2nmyNChQyOi7ZNe3n333WzgomnT1PZo2oS1rXmalsYUO09SFHs0V08b39HXAAAAQEtK2llnr732ikcffTRefvnlSKVSLR7n+/zzz2cf77nnnkXPUeh9OnueJCn2aK6eNr6jrwEAAIBCShoc2X///ePRRx+NdevWxeLFi+Nf//VfC457+OGHs48nTZpU1By77bZb7LjjjvHmm282e59C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TJ06tc3v66effnrrL4o8XXGfb7755kzfvn1bvb/bbrtt5v777++kq6JRa3/mxx9/fKfOtX79+sxhhx3W4nzV1dWZSy65pFPnZIuuuM/33HNPpnfv3m3+Xb399ttn/vjHP3bKnDTXld/PhXzuc59rNufkyZNLPictExwpY0899VT2H0YDBgzIXHrppZkFCxZk5s2blznllFOa/SNs9erVHZ7nggsuyL7Xvvvum7n11lszCxcuzNx6662ZfffdN/vchRde2IlXR6NS3+dHH300+x6TJk3KXHbZZZkHHngg89RTT2Xuu+++zKmnnpqprq7ORESmpqYmc88995TgKitbV30vF5q3pqYm06dPn8zAgQMFR0qsq+7zqlWrMmPHjs2+31FHHZX55S9/mXniiScyTz75ZOb222/PnHnmmZkRI0YIjpRAV9zn+fPnZ/9erq6uzpxwwgmZO+64I7Nw4cLMb37zm8wRRxyRnadv376ZV155pZOvsrI13cjssssumYMPPrhkm6kvfOEL2feeMmVK9j5ff/31md133z373M9//vNOnZeuuc+33HJL9vv4kEMOyVxzzTWZP/7xj5mnnnoqc9ddd2WOOeaY7Jz9+vXzd3YJdOX3c6677rorExGZ4cOHC470EIIjZewTn/hEJiIytbW1mQULFuQ9f+WVV2a/0b71rW91aI4XXnghU1tbm4mIzLhx4zLr169v9vy6desy48aNy66jFD/ZrnSlvs+PPfZY5uijj878+c9/bnHMHXfckamqqspERGb33XfPNDQ0FD0PLeuK7+VcqVQqu4H+zne+kxk5cqTgSIl11X3+4he/mImITO/evTN33nlni+MaGhoy9fX1HZ6HwrriPh9++OHZ9/jxj39ccMw555yTHXP66ad3aB4Ku/jiizN333135u9//3smk8lkXn311ZJspubNm5d93yOOOCKTSqWaPf/OO+9kdtlll0xEZAYPHpxZuXJlp81N19znOXPmZE499dTMa6+91uKY//iP/2gWIKNzddX3c641a9Zkdt5550xEZG6++WbBkR5CcKRM/fd//3f2m+jUU08tOCadTmf23HPP7P80N2/eXPQ8X/nKV7LzPP744wXHPP7449kxp512WtFz0LKuus/t0TTtb/HixSWZoxJ11z2eOXNmJiIyH/zgBzObNm0SHCmxrrrPTTPBrrrqqq1dNkXqqvs8ZMiQTERkhg4d2uKYVatWZdfysY99rOg5aL9SbaYOPfTQbKBt2bJlBcfceuut2bmvvPLKTpubfF21aS6k8QeR1dXVmXfeeadL5640XXWfzzjjjGYBL8GRnkFD1jJ1xx13ZB+fcMIJBcdUV1fHcccdFxERq1atigcffLCoOTKZTNx5550RETFmzJj4+Mc/XnDcxz/+8fjgBz8YERF33nlnZDKZouahZV1xn9trypQp2cevvPJKSeaoRN1xj1977bW4+OKLIyLiZz/7WfTq1Wur3o+2ddV9/tGPfhQREYMGDYqvfvWrxS+UrdJV93nz5s0REbHbbru1OGbQoEGx3XbbNRtP+VizZk3MmzcvIiI+9alPxYgRIwqO++xnPxvbbLNNRET813/9V5etj67V2KSzoaEhXn311e5dDFtt4cKF8eMf/zh69eoVP/3pT7t7OTQhOFKm5s+fHxER/fv3j7Fjx7Y4bvLkydnHjz32WFFzvPrqq/Hmm2/mvU9r87zxxhuxdOnSouahZV1xn9tr06ZN2cc1NTUlmaMSdcc9Pu2002LdunXxxS9+UVf0LtIV93nz5s3ZgPZBBx0Uffr0iYiIdDody5Yti6VLl8bGjRuLXTpF6Krv58YfSLS2SVq9enWsWLGi2XjKx5NPPpkNarX2b7BevXplf3j15JNPRn19fZesj67l32DJkUql4pRTTomGhoY4//zz/f3cwwiOlKnnnnsuIiJGjRoVtbW1LY4bM2ZM3mva6y9/+UvB9+nseWhZV9zn9nr44Yezj/fcc8+SzFGJuvoez5kzJ+65554YMmRIzJw5s8PvQ3G64j4/88wz2eDHhz/84Vi9enWcddZZsd1228Uuu+wSu+22WwwaNCgOOuigeOihh4q/CNrUVd/PX/7ylyMi4h//+Ef87Gc/Kzjmu9/9bt54ykdH/g2WSqXipZdeKum66B6N/warq6uLUaNGdfNq2Brf//7349lnn41Ro0bFRRdd1N3LIYfgSBnauHFj9qdBLaVZNhoyZEj0798/IiKWLVtW1Dyvv/569nFb8+y8887Zx8XOQ2FddZ/b45lnnom5c+dGxJZNl+BI5+jqe/zuu+/GWWedFRERl19+eQwbNqxD70Nxuuo+N91MNTQ0xLhx4+Laa6+NVatWZb++efPm+MMf/hAHHnhgXHHFFUW9P63ryu/nE088MVuac/rpp8cpp5wSd999dyxatChuv/32OOqoo+L73/9+RER8/etfj0996lNFz0H38m8wGs2dOzeeffbZiIg45JBDsmVUlJ9XXnklvvOd70RExI9//ONshic9h+BIGVqzZk328YABA9oc3/gPsLVr15ZsnsY5OjIPhXXVfW7Lpk2b4uSTT450Oh0REZdeemmnvn8l6+p7fO6558Zbb70VEydOjFNOOaVD70Hxuuo+r1y5Mvv4iiuuiJdeeik+/elPx8KFC2Pjxo3x9ttvx09/+tMYNGhQZDKZuOCCC7JlOGy9rvx+rqmpiZtuuil+/etfxz777BOzZs2Kz3zmMzF+/Pj43Oc+F3fccUdMmTIlHnjggfje975X9PvT/fwbjIgtf6+ffvrpEbHl+75xY015+vKXvxwbNmyIY445Jg4++ODuXg4FCI6UoaY14+1ppNi7d++IiNiwYUPJ5mmcoyPzUFhX3ee2fPWrX41FixZFRMTxxx8fRxxxRKe+fyXrynv8yCOPxA033BC1tbXxs5/9LKqqqop+Dzqmq+7zunXrms150EEHxe9+97sYP3589O7dO4YNGxZf/vKX43e/+11UV2/53/+FF16oiXYn6eq/s5977rm4+eabY8mSJQWff/zxx+P666+PN954o0PvT/fybzDS6XT8+7//e7z22msREfGNb3wj9t13325eFR118803xx/+8IfYZptt4pprrunu5dACwZEy1DQFqz0d6BubOPXt27dk8zRtFFXsPBTWVfe5NZdddlnMmjUrIiLGjx8fP/7xjzvtvem6e7xp06b40pe+FJlMJs4888z4yEc+UtxC2Srd8Xd2xJbskUKN+/bff//47Gc/GxFbNtgtba4pTlf+nf3oo4/GxIkT4+67746ddtopbrnllvj73/8emzdvjmXLlsWPf/zj6NevX8yZMycmTJgQf/7zn4ueg+7l32Ccdtpp8fvf/z4iIv73//7f8c1vfrObV0RHrVixImbMmBERWzKwd9hhh25eES0RHClDAwcOzD5uT/pk408T25Pm29F5mv7Esth5KKyr7nNLfv7zn2cbRY0ZMybuueeeZqm7bL2uuseXXnppvPDCC7HzzjvHt7/97eIWyVbrjr+zhw0b1upPGA855JDs4yeffLKoeSisq+7zpk2b4thjj4333nsvtt9++3jiiSdi2rRp8YEPfCDq6upixIgRcdppp8UjjzwSffr0iTfffDOOP/744i6GbuffYJXtwgsvjOuuuy4iIj7xiU/Ebbfd5pSaMnbOOefEihUrYty4cXHaaad193JoRcut1Omx+vTpE0OHDo1//OMfzRp2FfLuu+9m/6fZtGFXezRtANbWPE0bgBU7D4V11X0u5NZbb83+5T1y5Mh44IEHYrvtttvq96W5rrrHjY03P/WpT8Xdd99dcEzje69bty7mzJkTERHDhw+PAw88sKi5yNdV97np+GIaOL7zzjtFzUNhXXWff//732dLZc4444zYfvvtC47be++9Y9q0aTFr1qxYvHhxPPPMM7HPPvsUNRfdJ/ffYOPGjWtxrH+DJcsVV1wRl19+eUREfOxjH4vf/e53MoLK2Jtvvhm33HJLREQceOCBcdttt7U6/u23387+O2y33XaLf/3Xfy35GvknwZEytddee8Wjjz4aL7/8cqRSqRaPDHz++eezj4s9YWSvvfYq+D6dPQ8t64r7nOuuu+6K4447LhoaGmKHHXaIefPmtbnRouO64h43pmTPnj07Zs+e3erYFStWxLHHHhsREZMnTxYc6SRdcZ/33nvv7OPGBsotafp8a0fOUpyuuM9Nj/792Mc+1urYsWPHZksjn3/+ecGRMtKRf4PV1tbGHnvsUdJ1UVo/+clP4oILLoiILX833HfffU6nKXNNy+KuvPLKNsc/99xz2X+HHX/88YIjXUxZTZnaf//9I2LLT3kXL17c4rjGc9EjIiZNmlTUHLvttlvsuOOOee9TyCOPPBIRETvttFPsuuuuRc1Dy7riPjc1b968OProoyOVSsXQoUPjgQceiN13373D70fbuvoe0z264j6PHDkydtlll4iIWLp0aauNVl955ZXs45122qmoeWhZV9znpgGXVCrV6tj6+vqCr6PnGz9+fLYRa2v/Btu8eXM88cQT2dfU1dV1yfrofLfcckt89atfjYiIf/mXf4k//OEPsnahiwmOlKkjjzwy+7ilnwQ3NDTEzTffHBERgwcPjilTphQ1R1VVVUydOjUitvxUovF/vrmeeOKJ7E8tpk6d6hSMTtQV97nRggULYurUqbFp06YYNGhQ3Hfffc1+Ek1pdMU9zmQybf4aOXJkRGzZYDd+7aGHHurQNZGvq76XP/e5z0VExOrVq2PevHktjrv99tuzjxs39Gy9rrjPu+22W/bxo48+2urYppvqpq+j5xs4cGB88pOfjIiIP/zhDy2Wat1+++2xevXqiIg46qijumx9dK7bb789TjjhhMhkMjFixIiYN29e9geUlLddd921Xf8OazR58uTs12688cbuW3ilylC2PvGJT2QiIlNbW5tZsGBB3vNXXnllJiIyEZH51re+lff8gw8+mH3++OOPLzjHCy+8kKmpqclERGbcuHGZ9evXN3t+/fr1mXHjxmXX8eKLL3bGpdFEV9znp59+OjN48OBMRGT69++fmT9/fidfBa3pinvclpEjR2YiIjNy5MgOvZ62dcV9fu211zJ9+vTJRETmwx/+cOa9997LG3PLLbdk3+fwww/f2ssiR6nv87vvvpvp169fJiIyAwcOzDz77LMF13HPPfdkqqurMxGR2WmnnTLpdHprL40WvPrqq0X/HTx79uxWPweZTCYzb9687JjPfOYzmVQq1ez5d955J7PLLrtkIiIzePDgzMqVK7fySmhNqe7zfffdl+nVq1cmIjLDhw/PPP/88523aIpWqvvclsbXT548uUOvp3PIsSxj1157bUyaNCk2bNgQBx98cFx00UUxZcqU2LBhQ8yZMyfb5Xr06NHZ46OKNXr06Dj33HPj8ssvj0WLFsWkSZPi/PPPj9133z1eeeWVuOKKK+Lpp5+OiIhzzz1XrWsJlPo+v/LKK3HIIYfEqlWrIiLie9/7XgwaNCj+9Kc/tfia4cOHx/Dhwzt0PeTriu9lul9X3OdddtklvvOd78R5550XS5YsiQkTJsT5558fH/nIR2L16tVx++23x09/+tOIiNhmm23immuu6bTrY4tS3+fBgwfHBRdcEBdffHGsWbMm9ttvvzjjjDPioIMOiiFDhsRbb70Vd955Z/ziF7+IhoaGiIi4/PLLo7pasnBnmT9/frz88svZ369YsSL7+OWXX877ae/06dM7NM+BBx4YX/jCF2LOnDlx1113xUEHHRRnnXVW7LjjjrFkyZK49NJL429/+1tEbGniOWTIkA7NQ2FdcZ+feOKJOOqoo2Lz5s1RV1cX11xzTdTX17f6b7ARI0bE4MGDi56Lwrrq+5ky0d3RGbbOXXfdldlmm22y0cbcX6NHj8689NJLBV/b3p82p9PpzIknntjiHBGROemkk/xUqoRKeZ+bRrvb+6ujUXFa1hXfy62ROdI1uuo+X3DBBZmqqqoW5xk+fHjBrAY6R6nvc0NDQ+ass85q9R5HRKauri5z1VVXlfBKK9Pxxx9f1P8zC2nvT5rXr1+fOeyww1p87+rqav9PLpGuuM/f+ta3iv432OzZs0t74RWmK7+fW9P4epkj3cuPEcrcEUccEc8++2ycffbZMXr06OjXr18MHjw4xo0bl83qGDVq1FbNUV1dHddff33MnTs3pk6dGjvuuGP06tUrdtxxx5g6dWrcc889MWvWLD+VKqGuuM90L/e4MnTVfb7sssviscceiy9+8Yux6667Ru/evWPQoEExfvz4+O53vxsvvvhiTJw4sROuiEJKfZ+rqqrimmuuiSeffDK+/OUvx4c+9KEYOHBg1NTUxKBBg2Ls2LFxzjnnxJ/+9Kf42te+1olXRlfr27dvzJ07N375y1/GQQcdFMOHD49evXrFzjvvHP/2b/8W8+fPj0suuaS7lwmQCFWZTCvt7AEAAAASzo/6AQAAgIomOAIAAABUNMERAAAAoKIJjgAAAAAVTXAEAAAAqGiCIwAAAEBFExwBAAAAKprgCAAAAFDRBEcAAACAiiY4AgAAAFQ0wREAAACgogmOAAAAABVNcAQAAACoaIIjAAAAQEUTHAEAAAAqmuAIAAAAUNEERwAAAICKJjgCAAAAVDTBEQAAAKCiCY4AAAAAFU1wBAAAAKhogiMAAABARRMcAQAAACqa4AgAAABQ0f5/0KtbcsjP+agAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -415,6 +416,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "862ce22c", "metadata": {}, @@ -424,13 +426,13 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "id": "d8f6e5b3", "metadata": {}, "outputs": [ { "data": { - "image/png": "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9t5vO+02zcsZFpqAACCGzM/JkLOdX8L8DgYA65AcAYAYkZmarEuG9231cafdpkVzxykzNTmEUQFAbMhMTdaiuePaTJDwOxgArBOy5MiBAwf0ve99T2PGjFFSUpJ69+6tKVOm6NFHH1V1dXWXXKOwsFD33HOPsrKylJycrLi4OPXr10/Tp0/X448/rhMnTnTJdQAgUlWcrG+25nY5NGdCmlYuyNHs7EEWRAUAsWF29iCtXJCjORPSFO9s/jZ8TAqJEQCwis3v9wd9VtiqVat02223qbKyssXHR40apdWrVysjI6PT11i0aJF++MMfyuv1trpnyJAhWrlypcaOHdvp67SmuLhY6enpkqSioiKlpaV1+TUA4FxU1XqU/fAbOntC5F/mTdHF5/XlfDsAhJjXa+jiX7+jQyfqGte+c8UI3XfVSAujAoDIEIzP30GvHMnPz9fcuXNVWVmpbt266ec//7k+/PBDvf322/r6178uSfrss8903XXX6eTJk526xrJly/S9731PXq9XcXFx+u53v6tVq1bp448/1t/+9jfl5ORIkvbv369rr7221SQNAESzTw4cNyVG4hx2TRram8QIAFjA6bTr+rGpprVXt5YqBN9bAgBaEPTkyL333qvq6mo5nU698cYbeuCBBzR16lRdfvnlevrpp/Wb3/xGkrRjxw499thjnbrGz372s8bby5cv12OPPaaZM2dqypQpuvXWW7Vu3TrddNNNkqSysjItWbLk3P9gABBhNu07aro/Nq2HEgIcLQkA6HrXjU0x3d9z+JR2lHMMHACsENTkyMaNG/Xee+9JkubNm6epU6c227Nw4UKNGTNGkvTb3/5WHo+nQ9eoqqrSp59+KkmaMGGCrrvuuhb3/eQnP2m8/eGHH3boGgAQDTY2SY5MGtrbokgAAJI0YXBPDerpNq29urXUomgAILYFNTny8ssvN96+6667Wg7Abtftt98uSTp27FhjMiVQ9fVnmgu21bPkvPPOa7xdV1fX6j4AiEb1XkN5RcdNa5OH9rImGACAJMlmszWrHnl1axlHawDAAkFNjqxbt06SlJSUpIkTJ7a6b9q0aY23c3NzO3SNvn37qnfv099+7tmzp9V9n3/+eePtkSNpdAUgtmwrrVStxzCtTRxCcgQArHZdljk5sv9ItbaVVlkUDQDErqAmR7Zv3y5JGj58uJxOZ6v7Ro8e3exnOuIb3/iGJGnLli1as2ZNi3sa+pI4HA7Nnz+/w9cAgEi2ad8x0/2RA7qpZ2KcRdEAABqMTeuhwb0TTWuvcLQGAEKu9YzFOaqtrVVFRYUktTtWp1evXkpKStKpU6dUVFTU4Wv993//tzZt2qS33npLN954oxYsWKArrrhCffv21Z49e/TUU09p7dq1cjgc+t3vftfY46QjiouL23y8rKysw88JAKFCvxEACE8NR2ueeu9MlfOqrWX64bWjZbMxTQwAQiVoyZETJ8502u7WrVu7+xuSI50Z59utWzetWbNGS5cu1a9+9SstWrRIixYtMu256aabdP/99+vCCy/s8PNLapyhDACRxu/3a9N+c+UI/UYAIHxcl2VOjhQfq1F+caWy03taFxQAxJigHaupra1tvB0X137pdnx8vCSppqamU9fbtGmT/v73v7fad+Stt97Ss88+q6oqznACiC17Kk7p6Kl609qkIVSOAEC4OD81WcP6JpnWXs3naA0AhFLQkiMJCQmNt8+eKNOahgkybre7nZ3Nvfjii7rsssv0zjvvKCsrS//617905MgR1dfX6/PPP9cvfvELeTwePfXUU7r44otVXl7e4WsUFRW1+c+GDRs6/JwAEAqbmhypGZicoLReHf9dCwAIDpvN1qwx66qCMhkGU2sAIFSCdqyme/fujbcDOSpz6tQpSYEdwTnbwYMHdeedd6qurk7nn3++PvzwQyUlncm8Z2Rk6Ec/+pGmTJmiq666Stu2bdM999yjf/7znx26Tnt9UwAgXDVtxjpxaC/OsQNAmLl+XIqefHd34/2yylp9UnRME6n0A4CQCGrlSN++fSW138z02LFjjcmRjvb2eOGFFxp/9oEHHjAlRs52xRVX6IorrpAkLV++XMeOHWtxHwBEm2b9RhjhCwBhZ9SA7hre3/wl4Sv5NPwHgFAJ6ijfhqkwu3fvltfrbXXfjh07mv1MoM4e/TthwoQ2906cOFGSZBiGdu7c2aHrAEAkOnyiTnsrTpnWmFQDAOGnpaM1qzlaAwAhE9TkSE5OjqTTR2Y2b97c6r61a9c23r7kkks6dA2n88zJoLYSMJLk8Xha/DkAiFab95v7jXSLd2r0wO6t7AYAWOmGcebkyKETdc1GsQMAgiOoyZEvfvGLjbefeeaZFvcYhqHnnntOktSzZ09Nnz69Q9cYNmxY4+1169a1uff999+XdDozP3To0A5dBwAi0cYm/UbGD+4ppyOov/oBAJ00vH/3ZgnsV7dytAYAQiGo75CnTJmiSy+9VJK0ZMkSffTRR832LFq0qPFozH/913/J5XKZHl+6dKlsNptsNpseeuihZj9/3XXXNTYW/PnPf66SkpIWY3n66ae1adMmSdJFF12kPn36dPrPBQCRoumkmskcqQGAsNb0aM2aT8vk42gNAARd0L8+fOKJJ+R2u+X1enX11Vfrl7/8pdavX693331Xd999t+6//35J0siRI7Vw4cIOP//o0aN11113SZJKSko0fvx4/eIXv9C6deuUl5enV155RbfddpvuvvtuSZLD4dAvfvGLrvsDAkCYqq736tPSKtPapKE0YwWAcHbdWHNypOJkvT7ec8SiaAAgdgS98cb48eP1j3/8Q1/96ldVVVWlBx54oNmekSNHatWqVabxvx3xhz/8QadOndI//vEPHT58WP/93//d4r6kpCQ9/fTTuuyyyzp1HQCIJHkHjpu+bXTabcpO72ldQACAdmX066bMlGQVlp1Jbr+ytUwXD+9rYVQAEP1CcvD8hhtu0NatW/Xd735XI0eOVGJionr27KlJkybp17/+tT755BMNHz68088fHx+vF154Qe+8845uv/12jRw5UklJSXI6nerdu7emTp2qH//4x9qxY4e+8pWvdOGfDADCV9N+I+cP6qHEOJpRA0C4u75JY9bXPi2T12dYFA0AxAab3+/nEGMXKC4uVnp6uiSpqKhIaWlpFkcEINZ9bcnHWrerovH+vJxh+vH1mRZGBAAIxIEj1frCI++a1p77jyn6wsh+FkUEAOElGJ+/GVkAAFHI6zO0Zb+5cmQy/UYAICIM7pOosWk9TGuvbi21KBoAiA0kRwAgCu0oP6FT9T7T2sQhTKoBgEhxfZPGrK9vO6h6L0drACBYSI4AQBRqOsJ3WN8k9eseb1E0AICOmtlkpG9ljUcf7K5oZTcA4FyRHAGAKLSxyZGaSUM4UgMAkSStV6LGD+5pWvvXJ8UyDNoFAkAwkBwBgCjj9/ubVY5MHsqRGgCINNePTTXdX5lfpvN/8rruW5anwtKqVn4KANAZJEcAIMoUH6vRwao609okmrECQMRxtvBOvcbj0/ItJZr1ZK5W5JWEPigAiFIkRwAgymxsUjXSJylOw/omWRQNAKAz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", + "image/png": "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999/v6qrW3fI/tvf/qa1a9dKkq677rpO9zYBgEDVuzx641PjvuyZ41mtBgCIbPPyhskeQOhxyah+IagGiE2vFpRrVYv+P5eM6q/bzh9iUkXRI+hrbp544gklJibK7Xbr6quv1iOPPKKPPvpIa9as0be+9S398Ic/lCSNGjVKCxYs6NI1Bg8erIcffliSVFRUpClTpuiZZ57Rpk2btGbNGt17773NwUpqaqoef/zxbvmzAUBb1n5+UDUNp/osWSzS9eM50QoAENlyMlK1aPZ4vwHJr9/6XMedrhBVBUQ/r9enuka3So/W6cFXPzM81ivJocduOrvd1hIIXNC7kp5zzjl66aWXdNttt6m6uloLFy5sNWfUqFFauXKl4VjezvrBD36gI0eO6NFHH9Xnn3+ub3zjG63mDBgwQK+++qpGjhzZ5esAgD/LCyoM98/L7qP0nokmVQMAQPeZOSFTIwekaEn+bq0qqpTT5ZHdajEcJVp6xKkfvlyoP982iTdswBkorqjW4vwSrS7aL6fLI6tFOu1/NUnSL27M1cDUBHMKjDIh6dZyww03aOvWrfre976nUaNGKSkpSb169dK5556rRx99VFu2bNGIESPO+DqPPPKI1q9fr6997WsaOnSo4uPj1bNnT02ePFn/93//px07duiCCy7ohj8RALStut6ld7YfNIxxKg0AIJo0rSD57KFrVPzwNfrsoWs0aUhvw5w3PzugZ9bvMadAIAosLyjXjCfztWxzeXMj5JbByJcnZmp6LquTu4vF5/P5/E+DP2VlZc19TEpLS5WVlWVyRQDM8M9PSvWDl7c233fYLNr431eqV1KciVUBABBcFcecuu5363S07tR2GofNon/edaEmDOplXmFABCquqNaMJ/MNK7La8s+7LtDkoX1CVFV4Ccb7b875AYButKLQuKXm0lEDCEYAAFEvo1eifnPLBMOYy+PTPS9s1vE6+o8AnbE4v8RvMCJJL24oDUE1sYNwBAC6ycGaeq3fWWUYmzkhw6RqAAAIramjB+jblw03jJUfc+r7LxeKxepAYLxen1a3OI2mPauKKuUNIERBYAhHAKCbrNxaadgLmhRn05VjB5pXEAAAIbbgqlGa0mKZ/7+LD2hJ/u7mEzd4Mwe0r97tae4x4o/T5VG9O7C58C/op9UAQKxoeUrNNePSlBhnM6kaAABCz26z6ne3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", "text/plain": [ "
" ] @@ -458,6 +460,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "c6c41775", "metadata": {}, @@ -467,13 +470,13 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 10, "id": "83655c36", "metadata": {}, "outputs": [ { "data": { - "image/png": "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1PP8inOrvFQ77qpyvOrnqf5Z3a+xESFqFh1W/QRU4/fhiCRdeeWVeumll3To0CGtWLFC55xzTo3nzZ4927N97rnnNlV78DFTp07V448/Lsn9H5SSkhL94x//0Icffqht27ZJknr06KGbb75Zv//97086ymj37t165ZVXtGDBAu3du1cOh0MpKSkaMWKE/vSnP510XZuKJ8g89thjmjp1qlavXq0XX3xRS5cu1eHDh5WUlKQRI0Zo8uTJ6tGjR6N81qrat2+vPXv26JZbbtH06dO1ZcsWvfDCC/r666+VmZmphIQEnXPOOfrzn/+ss88++5T327dvn/75z39q/vz52rVrl4qLi9WyZUsNHjxYv//97zV8+PBa35uTk6M5c+Zo0aJFWrt2rfbu3auysjIlJibqzDPP1JVXXqkJEyYoLKzm/7jv3r1bHTp0kCS98847mjBhgmbPnq233npLP/30k7KysjR06NAan+oDAABOn8vlktMl2Z1OOZwu2Z0uOY+/Vt93eupOp+RwuWsOp9w1l/uY58flfq/jeN3lkqHudOnEOcff7zzej9N14vyKmstVcV5F38ZzK7/fVcM58pzj/rJauVbx/oovxMb94+fqxJdul6vKtuT5gl35S/yJL/DujYp99+knrnP87Ybf/aqeV3GOKp3nOfskx2v9wm4IE2oPHFyGcyt93qqfsXJPVf4Mqv3ZGXqu/mdWtb9gc8ewjnp4TMO+SwQbnw9Hpk+frokTJ0o68SWyqnvvvVevv/66SkpKdPfdd2vJkiWKjo42nDNjxgzPl6KxY8eywCokSYcOHdLo0aO1fv16Q3316tVavXq1FixYoDlz5tT4BKT33ntPt99+u0pLSw317du3a/v27Zo2bZqefPJJPfzww6fs49VXX9V9990nu93uqR04cEAzZszQ7NmzNW/ePJ133nkN/JR1M3v2bI0fP15FRUWeWlZWlubMmaMvvvhC//nPf3TttdfW+v5p06bprrvuUnFxsaGekZGhjIwMffzxx7rtttv0r3/9q8bAqV+/ftqzZ0+1+qFDh7RgwQItWLBA//rXv/Tll1+qVatWJ/0sLpdLN998s95///1TfWwAAExR8eW83OFSudOpcrs7LCg7/mp3OFXmcMrucMnudKrM7n61O1yGernDfW758ffUdtzudKnc4fTc0+48cR/3uSeu76lXCjUcld7vqVdcr1KIAcDH8Neyzrwajixbtkzbt2/37GdnZ3u2t2/frunTpxvOnzBhQoPu07ZtWz3xxBN66KGHtGbNGqWnp+uhhx5Sr169lJubq9mzZ+tf//qXJCkuLk4vvfRSg+6DwHPFFVdo8+bNuvvuuzVu3DglJiZq69atevLJJ7V582Z98cUXevPNN3XHHXcY3jd37lxNmDBBLpdLMTExmjRpki688EKFhIRoxYoVevrpp5Wdna3JkycrISFBf/jDH2rtYf78+frhhx/Up08f3XPPPerdu7eKi4v16aef6pVXXlFRUZHGjx+vbdu21Tpq4nRt2LBBH330kVq3bq1JkyZp4MCBcrlcmj9/vp555hmVlJTo9ttv14gRI9SiRYtq73/77bf129/+VpLUq1cv3XHHHerXr5+ioqK0a9cuTZs2TV9++aWmTZum+Ph4vfDCC9Wu4XA4dNZZZ+niiy9Wv379lJycrLKyMu3atUszZszQV199pXXr1um666475eiPl19+WRs2bNC5556rP/zhD+ratauOHTum3bt3N8YfFwDAjzicLpXaHSotd6rU7nRv253H9x0qsztV6nCqzF7px2HcLj2+Xe448VNmd4cQ5cfrZZ5jruPHjfsVr/aKbaczqP81GwB8jVfDkbfeekvvvvtujceWL1+u5cuXG2oNDUck6cEHH9TRo0f17LPPatOmTTVeq2XLlpozZ466dOnS4PuYxel0KaeozOw2mkyzqDBZrRav36didMj555/vqfXv31+jR4/WGWecoUOHDum1114zhCPl5eW64447PMHI0qVL1bdvX8/xs88+W1deeaUGDx6szMxMPfDAA7r66quVlJRUYw/ff/+9fvOb3+jTTz81hB/nnnuumjdvrkcffVR79+7V3Llzdfnllzf6n4EkrVu3TgMGDNCiRYsUHx9v+CydO3fWTTfdpLy8PM2YMUP33Xef4b0ZGRm66667JEm33HKL3nrrLcPIkH79+umKK67QI488or/97W96+eWXdccdd6hr166G63zzzTc1/t0855xzdOONN+qdd97RrbfeqiVLlmjRokW64IILav08GzZs0M0336zp06d7pi8BAHxLmd2p4jKHisrtKix1uLfL7Coqd6io1L1dYneqpMyhknKHissdKil3qrjcoVLP/ol6SXlF6HH89XgQUu4ggQAAnJrPT6upj6efflqXXHKJXn/9dS1dulSZmZmKiIhQ165ddckll+iuu+4yfPHzJzlFZRrwfwvNbqPJrHn0QjWPCff6fe666y5DMFIhMTFREydO1DPPPKMNGzYoNzfX87+dTz/9VPv375ckPfLII4ZgpEK7du303HPP6aabblJRUZHeeecdPfjggzX2EBERoXfeeafGUSF33323nnjiCZWVlWnp0qVeC0ck9+iPmv5+3HDDDXrooYd04MABLV26tFo4UjG6pU2bNrVOmZGkxx9/XO+++67279+v9957T//3f/9nOH6q0HLixIn6xz/+oXXr1mnOnDknDUcSEhL06quvEowAQCNyOF0qKLUrv6Rc+SV25ZfYVVhqV0Fp5VeHCstO1Az1UruKytzHi8scsjMFA5JsVotsFousVinEapXVcrxW8WOxyFp1+/hrxblWi+X4qzzbNqtFFotFtuM1i8Uim9W9ba30fs++RbIcv56lYl8V9RPnWK0WWeSuWSzyXMMiSdXed+I8i06cX7GtiutInvu4z3Vfy32fE+dX7Evumjy14/evOL/SOZV/Far4vajqdU5sn7iG52i1Y5Zq51Xt6WTnV+xZTpx6/HMY65X/LNzXN/ZiqeHPR7Xdp8pnNfZf83Vruo4M76vlz6KWz1f5/lX/fIz7xut4Xmp530nfqxP/m0bdeDUcmT59erWpM/U1YcKEeo0oGTx4sAYPHnxa90TwuPHGG2s9NmDAAM/2rl27PCHIwoXukMpisejWW2+t9f1XX3217rzzTuXm5mrhwoW1hiMjR45Uy5YtazwWGxurLl266JdfftHOnTtP9XEarHfv3urTp0+NxywWi/r166cDBw7U2MNnn30mSRo3bpwiIiJqvUdISIgGDx6sWbNmaeXKlSftx+Vy6dChQ8rLy1NZ2YkRU23atNG6deuqrRFT1bhx4xQbG3vScwAg2DidLuWX2JVbXG74OVZcptzicuUV25XnCT6qvrpDDjQtm9WiEKtFYTarQmwWhdisJ7atFoXarAo9vh9qPXFOqNVi2HafY1WozR0ahNqs7lerRbbj73Mfq3SO1X2O+15WTy+G/eN9VOxX1GyWGratVk8AUnFuRSAAAL4goEaOAPXVvXv3Wo8lJiZ6tvPz8z3bGzdulOR+0kttoYYkhYWFqV+/flq8eLHnPfXtoXIflXtobA3tITc317Ou0L//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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEcAAAM6CAYAAABjPS0fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAB7CAAAewgFu0HU+AACsy0lEQVR4nOzdd3hUVf7H8c9k0gvpCSUh9A5KXSsICNhwxfLDggq6lrWxyq6FVURdV13FsmtbxQVFV3RVVMSCNAVEKdKkdwIEkhDS+8z8/hgYclOAhEzulPfreeaZe889997vZDfIfLjnHIvD4XAIAAAAAADATwWYXQAAAAAAAICZCEcAAAAAAIBfIxwBAAAAAAB+jXAEAAAAAAD4NcIRAAAAAADg1whHAAAAAACAXyMcAQAAAAAAfo1wBAAAAAAA+DXCEQAAAAAA4NcIRwAAAAAAgF8jHAEAAAAAAH6NcAQAAAAAAPg1whEAAAAAAODXCEcAAAAAAIBfIxwBAAAAAAB+jXAEAAAAAAD4tUCzC/AVpaWlWr9+vSQpMTFRgYH8aAEAAAAAaGyVlZXKysqSJPXs2VOhoaGnfU2+wTeS9evXa8CAAWaXAQAAAACA31i+fLn69+9/2tdhWA0AAAAAAPBrPDnSSBITE13by5cvV4sWLUysBgAAAAAA35SRkeEauVH1u/jpIBxpJFXnGGnRooVSUlJMrAYAAAAAAN/XWPN9MqwGAAAAAAD4NcIRAAAAAADg1whHAAAAAACAXyMcAQAAAAAAfo1wBAAAAAAA+DXCEQAAAAAA4NcIRwAAAAAAgF8jHAEAAAAAAH6NcAQAAAAAAPg1whEAAAAAAODXAs0uAEalpaXKzc1VcXGxbDab2eUAfsVqtSo8PFwxMTEKDQ01uxwAAAAATYRwxEM4HA5lZGQoLy/P7FIAv1VZWamysjIdOXJE0dHRatGihSwWi9llAQAAAHAzwhEPcfjw4RrBSGAg//MATamystK1nZeXp+DgYCUkJJhYEQAAAICm4NZv35mZmVq+fLmWL1+uFStWaMWKFTp8+LAk6eabb9b06dMb/Z4Oh0OfffaZZs6cqZUrV+rgwYMKCwtTcnKy+vbtq6FDh+qmm26S1Wpt9Hs3VHl5ubKyslz7SUlJiomJ8agaAX9gs9mUm5urzMxMSVJWVpaaNWum4OBgkysDAAAA4E5uDUeSk5Pdefka9u7dqxtuuEFLliwxtJeWlurIkSPavHmzPvjgA40aNUoxMTFNWtuJFBYWurbj4+MVHx9vYjWA/7JarYqPj5fNZnMFuYWFhYqLizO5MgAAAADu1GTjNlq3bq0uXbpo7ty5brl+enq6LrjgAu3atUtWq1VjxozRyJEjlZaWJrvdrl27dmnevHmaNWuWW+5/OoqKilzbzZo1M7ESAJLz9/BYOFJUVEQ4AgAAAPg4t4YjkyZNUv/+/dW/f38lJydr9+7datu2baPfx+FwaMyYMdq1a5diY2P19ddf66yzzjL0GTBggEaPHq033njD44arlJeXS5IsFotCQkJMrgZASEiILBaLHA6H6/cTAAAAgO9yazjyxBNPuPPyLh988IF+/PFHSdJbb71VIxipyhMnObXb7ZKcj/SzMgZgPovFIqvVqsrKStfvJwAAAADfFWB2AY3h1VdflSR17txZV199tcnVAAAAAAAAb+J5j1HU0969e/XLL79IkkaOHOlqr6io0P79+2W1WtW8eXMFBQWZVSIAAAAAAPBgXv/kyLFgRJJ69uypgwcPaty4cYqJiVHbtm3VunVrxcTEaNSoUVqzZo15hQIAAAAAAI/k9U+ObNy40bWdk5OjXr16KSsry9CnuLhYn3/+uebMmaP//Oc/GjNmTL3vs2/fvhMez8jIqPc1AQAAAACA+bw+HMnJyXFtP/LIIyotLdWYMWP00EMPqVOnTsrKytKMGTP0+OOPq7y8XLfccou6du2qvn371us+qampjV06AAAAAADwAF4/rKaoqMi1XVpaqltuuUUzZsxQjx49FBwcrFatWunhhx/W9OnTJTnnInn00UdNqhZoXIsWLZLFYpHFYtGiRYtqHJ88ebLrOAAAAACgdl7/5EhoaKhrOzAwUH//+99r7XfdddfpxRdf1MqVKzV37lzl5uYqJibmlO+Tnp5+wuMZGRkaMGDAKV8PAAAAAAB4Bq8PR6KiolzbZ555ppKTk+vsO2LECK1cuVJ2u12rVq3S0KFDT/k+KSkpp1UnAAAAAADwTF4/rKbqXCAnmxek6vHqk7YCvmjy5MlyOBxyOBxmlwIAAAAAHsvrw5Hu3bu7tm022wn7Vj0eGOj1D80AAAAAAIBG4PUJQb9+/RQWFqaSkhLt3LnzhH137Njh2m7VqpW7SwMAAAAAeIhjT1M7HJKj6r6r7fjx4+ccfZejyvbx6zmq9VM9+zvkqHZe7ccNNdXyeWp+Vud7cGCAmkeH1uyAGrw+HImIiNBFF12kWbNmacOGDdq2bZs6duxYo5/dbtcXX3whSQoPD1efPn2aulR4iMmTJ+uJJ56Q5PwDpbS0VP/617/04Ycfatu2bZKkrl276qabbtKdd955wqeMdu/erVdeeUVz587V3r17ZbPZ1KpVKw0ZMkT33HOPevbsWee5x1aQefzxxzV58mStWLFCL774ohYvXqysrCwlJCRoyJAhmjhxorp27doon7W6Nm3aaM+ePbr55ps1ffp0bdmyRS+88IK+//57ZWRkKCYmRuecc44eeughnXXWWSe93/bt2/Xaa69p3rx52rt3r8rLy9WiRQsNHDhQ99xzj/r161fnuRkZGZo1a5YWLFigtWvX6sCBA6qsrFRCQoL69eun66+/Xtdcc40CAmp/4G3RokUaPHiwJGnhwoUaOHCgpk+frhkzZmjjxo3KysrSTTfd5Fq5CgAAND673aFKu0M2u0OVdrvsdqnSbj+672yvvm13HG87tu26jsO5fbyvXG2uvg6HbHbJ7jjeZrM7v5jaHc5rOBw6eo6O7juO9pfrWvaj/R0OHT0uV/ux/s5rVtnX8f1jX67t9qPvDrmu5eznqPmlvOo9dfy4qu0fu4br+NGTq36pdziqfqE2/t3vZF/wq+7X/JLuqLZf8wu7MUwwBg5V72v84u+oUa/hnGNBwgmCDOPPo+bPrHod/uiM1Bh9cfe5ZpfhFTw+HJk+fbrGjRsn6fiXyOoefvhhzZo1Sw6HQ3fffbfmzJmjoKAgQ5+///3vridHxo0bp5CQELfXDs936NAhXXTRRVqzZo2hfcWKFVqxYoXmzp2rzz//vNYv5O+9955uv/12lZWVGdq3b9+u7du365133tFTTz2lRx555KR1vP766xo/frwqKytdbQcOHND777+vzz77TN98840GDhzYsA95imbNmqUxY8aouLjY1ZaZmanPP/9cs2fP1gcffKDRo0fXef4LL7ygiRMnqqKiwtC+a9cu7dq1S++9954effRRPfnkkzXOtdlsSklJkd1ur3HswIED+vLLL/Xll1/qnXfe0WeffabIyMgTfpbS0lKNGDFC8+bNO9nHBgDANDa7QxU2uypsdlXajm7bHaqotKvSblfFsTabQ5VH3yvszr6VNrvKj553rG+lza5Ku+N4f/ux85zHjwUWx7YrXOc7249dq9LmUIXdIdvR7WNhQ4XdLputavhx/JrHrgPAw/hzMlRPbg1HlixZou3bt7v2s7OzXdvbt2+v8S+4Y8eObdB9BgwYoLvuukuvv/66vv/+e5133nm6//771alTJ2VlZen999/X+++/L8k5KWttAQv805VXXqmNGzfqvvvu08iRIxUXF6ctW7boqaee0qZNmzR79my9/fbbuuOOOwznzZkzR2PHjpXD4VBkZKQmTJigCy+8UIGBgfrpp5/0zDPPKDs7WxMnTlRMTIz++Mc/1lnDd999p+XLl6tnz54aP368evbsqZKSEs2aNUuvvPKKiouLdeONN2rbtm0KDg52y89h/fr1+uijj9SiRQtNmDBB/fr1k8Ph0Hfffadnn31WpaWluv322zVkyBAlJibWOP/555/Xgw8+KEnq1auX/vjHP6pjx46KiYnRli1b9Oqrr2rZsmV66qmnlJCQoPvuu89w/rFkf8iQIbr44ovVs2dPJSYmqqCgQDt37tTbb7+tZcuW6fvvv9fdd9+td99994Sf56GHHtK6det0+eWXa+zYsUpLS9OhQ4eUn5/fSD8xAIC3sNsdKrfZVVZhV1mlTWWVzvfSCrvKKu0qr3SGDOWubZtru6zasYpj27bjoYazzeE65mqzGYMPZ5DhDCaObZMlAIDncGs4MnXq1Dq/xCxdulRLly41tDU0HJGkf/7znyosLNR7772n5cuX67rrrqvRp0OHDvrqq6+UkJDQ4PuYxW536EhxudllNJnY8GAFBFjcfp9jT4dccMEFrrY+ffpoxIgR6tatmw4dOqTXX3/dEI5UVFTo9ttvdwUjixcv1plnnuk6ftZZZ+mqq67S2WefrYyMDP35z3/WNddcU+f/737++WddcsklmjVrliH8OP/88xUfH69HH31Ue/fu1Zw5czRq1KhG/xlI0q+//qq+fftqwYIFatasmeGzdOjQQWPGjFF+fr7ef/993X///YZzN27cqL/+9a+SnE93Pf74464hQ5LUt29fXXvttbr55pv1/vvv669//atuvPFGxcbGuvpYrVZt2bJFHTp0qFHboEGDNG7cOD3++ON68sknNWPGDD366KO1Dp87Zt26dXr00Uf11FNPNfhnAgBwL5vdoeLyShWX246+KlVSblNRuU0lR9tLKmwqKXcGGqVHt0srbSopt6u00qZS174z7CittB0NQY4HIeWVNZ9KBACgOo8fVnOqrFar3n33XV133XWaOnWqfv75Z2VlZSkyMlLdu3fXVVddpTvuuEOhod45Gc2R4nL1/Zv/DBFY9eiFio90/9Cne++91xCMHBMXF6dx48bp2Wef1fr165WXl6fo6GhJzuEnBw4ckCQ9+uijhmDkmLS0ND3//POuYSrTpk3TX/7yl1prCA0N1bRp02p9KuS+++7Tk08+qfLyci1evNht4Ygk/ec//zEEI8dcf/31evDBB3XgwAEtXry4RjgyZcoUVVRUqF+/fjWCkWMCAgL0r3/9S//73/9UWFioTz75RLfddpvruMViqTUYqWrSpEl6/fXXlZ2drS+//FITJkyos2+nTp14QgwAGpnD4VBxuU35pRUqKK1UQWmlCssqVVR2/N25bauyXami8uNtxWWVKq5whiGEFpCkAItkDbA4XxaLAqpsH2sPMGzL0BZw7Jyj7RbL8XMtVfo6X3KdZ6ll+9i1peN9AyzOv6dU7RNgsVRpkyxH+8tikUXHjstwrkXH3o8fl44ed57qarfo+LWqnivJ0KZjfatd53jf4+cd61P1Gsf6yHVNubaP3636sVquUe1a1euq7Z5VP4+qtVuOfZ4aNVU7XvVnUUc9tf08arvm8RothuPVr228z4l/nrV9vhP9POv6Wda43knOra0OnBq3hiPTp08/7ckPx44dW68nSi666CJddNFFp3VP+I8bbrihzmN9+/aV5PzL4K5du1whyLF5LCwWi2655ZY6z7/mmmt09913Ky8vT/PmzaszHBk2bJiSkpJqPRYVFaWOHTtqw4YNJ12N6XT07NlTvXr1qvWYxWJR7969deDAgVprmD17tiTpqquuqjUYOSYmJkY9e/bUypUrtWzZMkM4Up3dbtfBgwdVUFBgmMMkJSVF2dnZWrt27Qk/z+jRo2W1Wk/YBwD8jcPhUFG5TXklFcorrnC+l1Qov6TKtiv4qFD+0QCk4GhbYVmlbIwDaVIWixRkDVBQgEVBgQEKDAhQsNWiQGuAAq0WBQUEKCjQosCAAAVZne+BVouCrAEKDDj6bq1yvMq21fXu7GcNsLjOcbYZ+wQGOPed1zjWZtw/1na8f9V2Z4jhancFE3x7A+AZfObJEaAhunTpUuexuLg413ZBQYFr+7fffpMktW3bttb5N44JDg5W7969tWjRItc59a2hah1Va2hsDa1hz549ysrKkiQ98sgjpzT5rCQdPHiwRpvD4dAHH3ygd955R7/88otKSkrqPL/q/EW1qSvoAQBfUVZpU25xhXKKynWkuFxHiiqOvpfrSPHR7eJy5RYbww8mzDwuyGpRsDVAIUFWBVsDFBzofAUd3Q6p0lb1+LH9oKMhxLH+hn3r8dCi6jHnvnE7MCBAQYHOACSw2nWtTTDEGADgRDgCvxYeHl7nsaor1NhsNtd2Tk6OJNX5tEdVzZs3N5xT3xqq1lG1hsbW0BoyMzMbdL+qK+JIztVlrrzySn3zzTendP6JghNJhvlMAMAblFXalFNUrsOF5couLNPhwnIdLjr2Xq7DhWVH38uVW1yuonL3/TfBLNYAi8KDrAoLtio82Kqw4ECFBQUoLNiqsCCrQoKc76FBAUffj7+OtYcefQ8JtCok8Oh7UIBCAp3HjrUFBxI8AACMCEe8RGx4sFY9eqHZZTSZ2HD3rMrSmHgM1BiWTJo0Sddcc80pnRcREWHYf/rpp13ByKBBg3T33XerT58+at68ucLCwlzhzMCBA7V48WLX6jZ1YUgNAE9QabPrcFG5sgrKlFVQpsyC0irbzvfDRc4wpKC08uQX9DDhwVZFhgQqMiRQESGBigixVtk+2h5cvd2q8OBAhVcJQMKDrAoPcT69wX9bAQBmIRzxEgEBliaZoBQnd2yIyaFDh07a99jwkapDdHxJfHy8azsoKEg9evSo9zUcDoemTp0qyblCz4IFCwxP7VR1oidwAKCp2OwOHS4s08H8Uh3MK9Wh/NKj22XKKixTZn6p8+mPonKdJMs1jcUiNQsNUkx4kKLDnK9mYUFqFhqkZqGBigoNVFRoULX3QDU7uh0ZEqhAa+1/VgMA4I0IR4B66tGjh5YtW6Zdu3YpKyurznlHKioqtHr1atc5vqhdu3aKjo5WXl5ejaW5T1VOTo4rRLrmmmvqDEYKCwu1ZcuWBtcKAKei0mbXoYIyHcgt0YHcEmXkOQOQg3nOAORQfqkyC8o8ZmJSi0WKDgtSXHiwYsKDFBcRrJjwYMWGByk2IlgxYcGKDqsZgkSFBCqAYSUAALgQjgD1dOGFF+rtt9+Ww+HQtGnT9OCDD9ba75NPPlFeXp7rHF9ktVp1ySWX6MMPP9TcuXO1adMmde3atV7XqKw8/ih5UVFRnf2mTp1q6AsADVFYVqkDuSXan1ui/UdKXNvOMMQZgJgZfFgDLIqPCFZcRLASIkMUHxms+Ajne0JksGLDncdiI5zb0WFBzJ0BAEAjIBwB6umKK65Qy5YtdeDAAT399NO6+OKL1bNnT0Of9PR0/fnPf5bknOx03LhxZpTaJB555BF9/PHHstlsuvrqq/Xdd98pJSWl1r42m00zZ87UoEGDXH0SExMVExOj3Nxcffjhh7r//vsVEmIcQrZixQo99thjbv8sALyfze7QgdwSpecUa29OsfYcfd972PmeV1Jx8os0MmuARQmRwUqMClFSVKgSI0Oc281CFB8RooTIYMVHOt+bhQbxRAcAACYgHAHqKTg4WG+99ZZGjhyp/Px8nXvuufrLX/6ioUOHymq16qefftKzzz7rWsnlhRdeUEJCgslVu0/Pnj31wgsv6P7779fGjRvVo0cP3X777RoyZIiSk5NVWlqq3bt3a9myZfrkk0+UkZGh9evXu8KRgIAA3XDDDXrttde0bt06nXfeeXrggQfUsWNH5eXl6euvv9brr7+uyMhItWzZUlu3bjX5EwMwW1mlTXsPF2tndpH2HC5yhh85Jdp7uEj7c0tUYWuaJz+sARYlR4UoOTpUzZuFKrlZqJKaOQOQpChnAJIYFaK48GACDwAAPBzhCNAAl156qaZNm6Y77rhDBQUFmjRpkiZNmmToY7Va9dRTT+mPf/yjSVU2nT/96U+KiIjQn/70J+Xl5en555/X888/X2vf4OBghYaGGtqefvppLV26VGvWrNHKlSt1/fXXG47HxcXp008/1aRJkwhHAD/hcDiUVVimnVlFR1+F2pFVqJ3ZRUrPKZa7R76EBgWoZUyYWkaHKblZqJpHh7gCkOZHw5D4yBCGtAAA4CMIR4AGuvnmmzVo0CC9/PLLmjt3rvbu3Su73a6WLVtqyJAhuvfee2sMt/Flt912my6//HL9+9//1ty5c7Vlyxbl5uYqJCRErVq1Us+ePTVs2DBdddVVNZ6kiY6O1tKlS/Xiiy/q448/1rZt2xQYGKjU1FRdeumlGj9+fJ1DdQB4N7vdoX1HSrT5YL62ZRZqR2ahdmQXaWdmoQrK3DfPUEJksFrGhKlVTFiN91axYYoND2JZWQAA/IjF4fDURea8y759+5SamirJOd9Efb7Ibdu2TZWVlQoMDFTHjh3dVSKAeuD3Emh82YVl2nKwwPXafKhA2w4VqLjc1uj3igi2qnV8hFrHhSktPkKpceFKiwtXSqwzBAkNsjb6PQEAQNM4ne/fdeHJEQAA0KjKK+3aeqhAGw7kafPRIGTroQJlF5Y36n0So0LUNj5CreOdwUfr+HC1jnO+4iKCefIDAACcMsIRAADQYGWVNm05WKD1+/P02/58/bY/T1sOFqjcZm+U64cEBqhtQoTaJ0aqXWKE85UQqbaJEWoWGtQo9wAAACAcAQAAp6S0wqbNx4KQfXn67UCeth4qaJTVYWLDg9S5eZQ6JkUdDUEi1S4hQq1iwljpBQAAuB3hCAAAqNWB3BKt2nNEq/Yc0a97j2jjgXxVnuYyMaFBAeqUHKVOyVHq0jxKnZtHqXNylBKjQhgGAwAATEM4AgAAVF5p18aMfGcQcjQQOZhfelrXbBMfrm4tm6lzcjNnCNI8Sq3jwln+FgAAeBzCEQAA/FBucbmW78rRqr3OMGTdvjyVVTZ8npC2CRHq0SpaPVs1U49W0ereMlrRYcwJAgAAvAPhCAAAfiC/tEIrduVo2Y7D+mnHYW06mC9HA0bIWCzOIKRnq2j1bBV9NAhppigmRwUAAF6McAQAAB9UXF6pFbuPaNmOw1q287DW78tVQ6YLiQ4LUp/WMerTOlZ902LVKzVGkSH89QEAAPgW/nYDAIAPKKu0adWeI/r56JMha/flNmgVmQ5Jkep7NAjpkxajdgmRrBYDAAB8HuEIAABean9uiRZtydSiLVlauj1bxeW2ep0fGhSg3qmx6tcmVn3SYtU7NUYx4cFuqhYAAMBzEY4AAOAlKmx2rdpzRAu3ZGrR5ixtOVRQr/ODrQHq3TpGZ7eP1zntE3RGarRCAq1uqhYAAMB7EI4AAODBDuWX6octWVq4JVNLtmWroKzylM8NDLCoV0q0zmmfoLPbx6tvWqxCgwhDAAAAqiMcAQDAgzgcDm05VKBv1h/UvE2HtOFA/imfa7FIPVpG65z28Tqrfbz6t4lj8lQAAIBTwN+YAAAwmcPh0Lp9efrmt4P69rcM7T5cfMrnRocFaVCnRA3ukqiBHRMVHxnixkoBAAB8E+EIAAAmsNkdWrXniL75LUPf/XZQB/JKT/ncHq2aaXDnJF3QOVFnpsbKymoyAAAAp4VwBACAJlJhs+uXnTnOQGTDIWUXlp3SeVGhgRrYMVEXdE7UoM6JSooKdXOlAAAA/oVwBAAAN7LbHVqxO0efr9mvb347qNziilM6r1VMmC7q0VzDuiWrb1qsgqwBbq4UAADAfxGOAADgBtszC/X56v2atXq/9ueWnNI5bRMidFGP5rq4R3P1bBUti4XhMgAAAE2BcAQAgEaSXVimL9cc0Odr9mvdvrxTOqdL86ijgUgLdUqOJBABAAAwAeEI/M706dM1btw4SdKuXbvUpk0b17GxY8fq3XffVVpamnbv3m1OgQC8Skm5Td9vOqRZv+7Tj9uyZbM7TnpOr5RoVyDSNiGiCaoEAADAiRCOAABQTw6HQ8t35eh/q/bp298OqrCs8qTndEyK1Kg+rXT5GS2VEhveBFUCAADgVBGOAABwivJKKvTZr/v0wS97tT2z8KT9EyJD9PszW2pU71bq3rIZQ2YAAAA8FOEIUMX06dM1ffp0s8sA4EEcDofW7svTBz/v0ex1B1RaYT9h/7Agq0Z0T9aoPik6t328AlllBgAAwOMRjgAAUIuiskp9seaAPvhljzYcyD9h3wCLdG6HBI3q3UojujdXRAj/eQUAAPAm/O0NAIAqNmXk67+/7NWs1ftPOpdIu4QIje6fqit6t1Jys9AmqhAAAACNjWd9gSrGjh0ri8ViWMGmKovFIovFosmTJ0uSVqxYoeuuu04pKSkKCQlRq1atdOONN2rTpk2ndL9ff/1Vd955pzp37qzIyEhFRESoc+fO+uMf/6itW7ee8NydO3dqypQpGjlypNq0aaOwsDCFhYUpLS1No0eP1rfffnvC86dPn+76PLt371ZZWZlefvllnXXWWUpISDB8TsDXVdrs+mLNfl31xk+6+JXFmvHznjqDkcAAiy7t2UL//cPvNH/CIN0xqD3BCAAAgJfjyRGggV5//XWNHz9elZXHv0AdOHBA77//vj777DN98803GjhwYK3n2u12/fnPf9bLL78sh8O47OfWrVu1detWTZ06Va+99ppuv/32Gufv2rVL7du3r/Xae/fu1d69e/Xxxx9rzJgxmjZtmgIDT/yrnp2drVGjRmnNmjUn+dSAbykqq9RHK9L1zpJd2p9bcsK+rWLCdP3vWuuafilKiiIMAQAA8CWEI0ADfPfdd1q+fLl69uyp8ePHq2fPniopKdGsWbP0yiuvqLi4WDfeeKO2bdum4ODgGuffe++9ev311yVJAwcO1NixY9WuXTuFh4dr7dq1evnll7Vhwwbdcccdat68uS6//HLD+TabTcHBwRoxYoSGDRumbt26KS4uTjk5Odq6datee+01bdiwQe+//77atWunJ5544oSf59Zbb9X69et10003afTo0WrevLn27t2rkJCQxvuhAR4kq6BM7/60WzN+3qO8koo6+wVYpCFdknTD79I0sFOirAGsNgMAAOCLCEe8hd0uleSYXUXTCYuTAjx31NfPP/+sSy65RLNmzTKEH+eff77i4+P16KOPau/evZozZ45GjRplOPf77793BSNTp07Vrbfeajjev39/jRkzRpdeeqkWLFig++67T5dcconh6Y8WLVpo9+7datGiRY3ahg4dqjvvvFO33HKLpk+frilTpuiBBx5QdHR0nZ9n3bp1NWrp06dP/X4ogBfYmVWotxfv0qe/7lN5Zd2rziRGheja/qm6dkBrtYoJa8IKAQAAYAbCEW9RkiM9X/swCp/0lx1SRILZVdQpNDRU06ZNq/WpkPvuu09PPvmkysvLtXjx4hrhyLPPPitJuuqqq2oEI1Wv/+qrr6pbt27as2ePFi5cqGHDhrmOR0REKCIios76LBaLpkyZohkzZqioqEjz5s3TVVddVWf/IUOG1FkL4AtW7Tmit37cobkbD6naSDaDM1NjdNv57TS8e7KCWIIXAADAbxCOAA0wbNgwJSUl1XosKipKHTt21IYNG7Rz507Dsfz8fC1atEiSdPXVV5/wHl27dlVCQoKys7O1bNkyQzhSXUVFhQ4dOqSCggLZbDZXe3x8vDIzM7V27doThiM33HDDCWsBvJHd7tD8zZl668cdWrH7yAn7Xtg1SbcPbK/+bWJlsTB0BgAAwN8QjgAN0KVLlxMej4uLkyQVFBQY2levXi273fko/3XXXafrrrvulO538ODBGm0VFRV66623NGPGDK1evVrl5eV1np+dnX3C6/fq1euU6gC8gcPh0HcbDurF77dq66HCOvsFWS0a1buVbju/nTomRzVhhQAAAPA0hCNAA4SHh5/weMDR+VKqPsUhSZmZmQ26X3FxsWE/JydHw4cP16pVq07p/JKSE6/CERsb26C6AE/icDi0aGuWpszdot/259fZLyo0UDf8Lk3jzm3DErwAAACQRDjiPcLinPNw+IuwOLMrcIuqYcm///1vnXPO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t8eAdeN75coVIykpqcb38r59++p+UTCxYowXL15sNGrUqNqxbdasmfH111+76apQ3f/Wo0ePdmusnJwc44EHHqgynt1uN6ZPn+7WmL7OivFds2aNERQUVOPf5VatWhnffPONW2LiJivfw5V59NFHTTEHDRrk8ZhwD4oj9djevXsdH5iaNGlizJgxw9ixY4eRkpJijBs3zvThLDMz0+U4U6dOdZyrd+/expIlS4xdu3YZS5YsMXr37u3Y98Ybb7jx6uDp8d26davjHAkJCcbMmTON9evXG3v37jXWrVtnPP/884bdbjckGX5+fsaaNWs8cJW+y6r3b2Vx/fz8jODgYKNp06YURzzEqvHNyMgw+vbt6zjfiBEjjC+++MJITU01du/ebSxfvtyYOHGiERUVRXHEzawY423btjn+DtvtdmPs2LHGihUrjF27dhn//d//bQwfPtwRp1GjRsbx48fdfJW+qeyXmvbt2xtDhw712BerJ554wnHuxMREx/guXLjQ6NSpk2PfJ5984ta4vsyK8f38888d79thw4YZc+fONb755htj7969xqpVq4zHH3/cEbNx48b8fXYzK9/D5a1atcqQZERGRlIcqYcojtRjAwcONCQZ/v7+xo4dOyrs/+CDDxxvymnTprkU48iRI4a/v78hyYiLizNycnJM+7Ozs424uDhHHp74ldtXeXp8t2/fbjz22GPG999/X2WfFStWGDabzZBkdOrUySgpKXE6Dipnxfu3vKKiIscX6XfffdeIjo6mOOIhVo3v008/bUgygoKCjJUrV1bZr6SkxCgsLHQ5DiqyYowffPBBxznmz59faZ9XX33V0eell15yKQ7M3nnnHWP16tXGhQsXDMMwjBMnTnjki1VKSorjvMOHDzeKiopM+y9dumS0b9/ekGSEh4cbV65ccVtsX2bF+C5dutR4/vnnjVOnTlXZ549//KOpMAb3seo9XF5WVpbRrl07Q5KxePFiiiP1EMWReurbb791vOGef/75SvsUFxcb3bp1c/yjWlBQ4HScF1980RFn586dlfbZuXOno8/48eOdjoGKrBrf2ih7a+CePXs8EsPXeGt858yZY0gyunTpYuTn51Mc8RCrxrfs3V+zZ8+ua9pwglVjHBERYUgymjdvXmWfjIwMRy59+vRxOgZq5qkvVvfff7+jwHb69OlK+yxZssQR+4MPPnBbbNxk1RfnypT+wGi3241Lly5ZGtuXWDXGEyZMMBW7KI7UP0zIWk+tWLHCsT127NhK+9jtdo0aNUqSlJGRoY0bNzoVwzAMrVy5UpLUtWtX9e/fv9J+/fv3V5cuXSRJK1eulGEYTsVBRVaMb20lJiY6to8fP+6RGL7GG+N76tQpvfPOO5Kkjz/+WIGBgXU6H6pm1fj+27/9myQpLCxML7/8svOJwmVWjXFBQYEkqWPHjlX2CQsLU4sWLUz9cevLyspSSkqKJOm+++5TVFRUpf0eeeQRhYaGSpL+53/+x7L8YI3SiTpLSkp04sQJ7yaDOtm1a5fmz5+vwMBAffTRR95OBy6iOFJPbdu2TZIUEhKivn37Vtlv0KBBju3t27c7FePEiRM6d+5chfNUF+fs2bM6efKkU3FQkRXjW1v5+fmObT8/P4/E8DXeGN/x48crOztbTz/9NLOme5gV41tQUOAoXg8ZMkTBwcGSpOLiYp0+fVonT55UXl6es6mjlqx6D5f+8FDdl6bMzExdvnzZ1B+3vt27dzuKWdV9xgoMDHT8OLV7924VFhZakh+swWeshqGoqEjjxo1TSUmJXn/9df4W12MUR+qpQ4cOSZJiYmLk7+9fZb+uXbtWOKa2fvjhh0rP4+44qMiK8a2tzZs3O7a7devmkRi+xurxXbp0qdasWaOIiAjNmTPH5fOgdqwY3/379zuKHz179lRmZqYmTZqkFi1aqH379urYsaPCwsI0ZMgQbdq0yfmLQLWseg+/8MILkqSff/5ZH3/8caV9fv/731foj1ufK5+xioqKdPToUY/mBWuVfsYKCAhQTEyMl7OBqz788EMdOHBAMTExevPNN72dDuqA4kg9lJeX5/iVqKrbMEtFREQoJCREknT69Gmn4pw5c8axXVOcdu3aObadjQMzq8a3Nvbv36/k5GRJN76AURypO6vH9+rVq5o0aZIk6f3331fLli1dOg9qx6rxLfvFqqSkRHFxcZo3b54yMjIc7QUFBdqwYYMGDx6sWbNmOXV+VM3K9/AzzzzjeDTnpZde0rhx47R69WqlpaVp+fLlGjFihD788ENJ0ltvvaX77rvP6RjwDj5jITk5WQcOHJAkDRs2zPH4FOqX48eP691335UkzZ8/33EnJ+oniiP1UFZWlmO7SZMmNfYv/WB2/fp1j8UpjeFKHJhZNb41yc/P13PPPafi4mJJ0owZM9x6fl9l9fhOmTJFP/30kwYMGKBx48a5dA7UnlXje+XKFcf2rFmzdPToUf3jP/6jdu3apby8PF28eFEfffSRwsLCZBiGpk6d6ngMB3Vj5XvYz89Pf/nLX/Rf//Vf6tWrlxYsWKCHHnpI8fHxevTRR7VixQolJiZq/fr1eu+995w+P7yHz1i+7cqVK3rppZck3Xifl365Rv3zwgsvKDc3V48//riGDh3q7XRQRxRH6qGyz5HXZlLFoKAgSVJubq7H4pTGcCUOzKwa35q8/PLLSktLkySNHj1aw4cPd+v5fZWV47tlyxZ99tln8vf318cffyybzeb0OeAcq8Y3OzvbFHPIkCH68ssvFR8fr6CgILVs2VIvvPCCvvzyS9ntN/6pf+ONN5gw2w2s/ht96NAhLV68WAcPHqx0/86dO7Vw4UKdPXvWpfPDO/iM5buKi4v11FNP6dSpU5Kkt99+W7179/ZyVnDF4sWLtWHDBoWGhmru3LneTgduQHGkHip7u1ZtZqYvneypUaNGHotTdkIpZ+PAzKrxrc7MmTO1YMECSVJ8fLzmz5/vtnP7OqvGNz8/X7/97W9lGIYmTpyoO++807lE4RJv/H2Wbtw9UtlkfnfffbceeeQRSTe+ZFf1BRu1Z+Xf6K1bt2rAgAFavXq12rZtq88//1wXLlxQQUGBTp8+rfnz56tx48ZaunSp+vXrp++//97pGPAOPmP5rvHjx+urr76SJP3qV7/Sv/zLv3g5I7ji8uXLmjx5sqQbd1e3bt3ayxnBHSiO1ENNmzZ1bNfm9srSXxhrc/uvq3HK/orpbByYWTW+Vfnkk08ck0l17dpVa9asMd3Si7qxanxnzJihI0eOqF27dvrXf/1X55KEy7zx97lly5bV/uo4bNgwx/bu3budioOKrBrj/Px8Pfnkk7p27ZpatWql1NRUjRw5UrfddpsCAgIUFRWl8ePHa8uWLQoODta5c+c0evRo5y4GXsNnLN/0xhtv6NNPP5UkDRw4UH/9619ZpaaeevXVV3X58mXFxcVp/Pjx3k4HblL1FOu4ZQUHB6t58+b6+eefTRN6Vebq1auOf1TLTuhVG2UnCKspTtkJwpyNAzOrxrcyS5YscfyBj46O1vr169WiRYs6nxc3WTW+pRNw3nfffVq9enWlfUrPnZ2draVLl0qSIiMjNXjwYKdi4Sarxrdsf2cmc7x06ZJTcVCRVWP81VdfOR6VmTBhglq1alVpvzvuuEMjR47UggULtGfPHu3fv1+9evVyKhasV/4zVlxcXJV9+YzVMMyaNUvvv/++JKlPnz768ssvuROonjp37pw+//xzSdLgwYP117/+tdr+Fy9edHzO6tixo37xi194PEe4huJIPdW9e3dt3bpVx44dU1FRUZVLCR4+fNix7exKI927d6/0PO6Og4qsGN/yVq1apVGjRqmkpEStW7dWSkpKjV+64Borxrf0Nu1FixZp0aJF1fa9fPmynnzySUnSoEGDKI7UkRXje8cddzi2SydNrkrZ/dUtO4vas2KMyy7926dPn2r79u3b1/Eo5OHDhymO1AOufMby9/dX586dPZoXPOPf//3fNXXqVEk3/hasW7eO1WnqsbKPwn3wwQc19j906JDjc9bo0aMpjtzCeKymnrr77rsl3fjFd8+ePVX2K10/XZISEhKcitGxY0e1adOmwnkqs2XLFklS27Zt1aFDB6fioCIrxreslJQUPfbYYyoqKlLz5s21fv16derUyeXzoXpWjy+sZcX4RkdHq3379pKkkydPVjvR6vHjxx3bbdu2dSoOKmfFGJctuBQVFVXbt7CwsNLjcOuKj493TMRa3WesgoICpaamOo4JCAiwJD+4z+eff66XX35ZknT77bdrw4YN3JUL3KIojtRTDz/8sGO7ql+FS0pKtHjxYklSeHi4EhMTnYphs9mUlJQk6cavFqX/OJeXmprq+FUjKSmJFTHcwIrxLbVjxw4lJSUpPz9fYWFhWrdunelXabifFeNrGEaN/0VHR0u68UW7tG3Tpk0uXRNusur9++ijj0qSMjMzlZKSUmW/5cuXO7ZLv9SjbqwY444dOzq2t27dWm3fsl+uyx6HW1fTpk117733SpI2bNhQ5SNay5cvV2ZmpiRpxIgRluUH91i+fLnGjh0rwzAUFRWllJQUxw+PqL86dOhQq89ZpQYNGuRo+/Of/+y9xFEzA/XWwIEDDUmGv7+/sWPHjgr7P/jgA0OSIcmYNm1ahf0bN2507B89enSlMY4cOWL4+fkZkoy4uDgjJyfHtD8nJ8eIi4tz5JGenu6OS4Nhzfju27fPCA8PNyQZISEhxrZt29x8FaiKFeNbk+joaEOSER0d7dLxqJoV43vq1CkjODjYkGT07NnTuHbtWoU+n3/+ueM8Dz74YF0vC2V4eoyvXr1qNG7c2JBkNG3a1Dhw4ECleaxZs8aw2+2GJKNt27ZGcXFxXS8N5Zw4ccLpv7eLFi2qdvwNwzBSUlIcfR566CGjqKjItP/SpUtG+/btDUlGeHi4ceXKlTpeCSrjqfFdt26dERgYaEgyIiMjjcOHD7svaTjFU2Nck9LjBw0a5NLxsB73XtZj8+bNU0JCgnJzczV06FC9+eabSkxMVG5urpYuXeqYDTs2Ntax1JSzYmNjNWXKFL3//vtKS0tTQkKCXn/9dXXq1EnHjx/XrFmztG/fPknSlClTeBbWjTw9vsePH9ewYcOUkZEhSXrvvfcUFham7777rspjIiMjFRkZ6dL1wMyK9y+8x4rxbd++vd5991299tprOnjwoPr166fXX39dd955pzIzM7V8+XJ99NFHkqTQ0FDNnTvXbdcHz49xeHi4pk6dqnfeeUdZWVm66667NGHCBA0ZMkQRERH66aeftHLlSv3Hf/yHSkpKJEnvv/++7HZuCq6rbdu26dixY47Xly9fdmwfO3aswi+/Y8aMcSnO4MGD9cQTT2jp0qVatWqVhgwZokmTJqlNmzY6ePCgZsyYoR9//FHSjck8IyIiXIoDMyvGNzU1VSNGjFBBQYECAgI0d+5cFRYWVvsZKyoqSuHh4U7HQkVWvYfRAHm7OoO6WbVqlREaGuqoTJb/LzY21jh69Gilx9b2l+fi4mLjmWeeqTKGJOPZZ5/l1yoP8OT4lq2I1/Y/VyvnqJwV79/qcOeIZ1k1vlOnTjVsNluVcSIjIyu9swF15+kxLikpMSZNmlTt+EoyAgICjNmzZ3vwSn3L6NGjnfq3sTK1/dU5JyfHeOCBB6o8t91u599eN7NifKdNm+b0Z6xFixZ59sJ9iJXv4eqUHs+dI/UHPy/Uc8OHD9eBAwf0yiuvKDY2Vo0bN1Z4eLji4uIcd3XExMTUKYbdbtfChQuVnJyspKQktWnTRoGBgWrTpo2SkpK0Zs0aLViwgF+rPMCK8YX3ML4Nm1XjO3PmTG3fvl1PP/20OnTooKCgIIWFhSk+Pl6///3vlZ6ergEDBrjhilCep8fYZrNp7ty52r17t1544QX16NFDTZs2lZ+fn8LCwtS3b1+9+uqr+u677/S73/3OjVcGqzRq1EjJycn64osvNGTIEEVGRiowMFDt2rXTP/3TP2nbtm2aPn26t9MEAJ9gM4xqprgHAAAAAABo4PipHwAAAAAA+DSKIwAAAAAAwKdRHAEAAAAAAD6N4ggAAAAAAPBpFEcAAAAAAIBPozgCAAAAAAB8GsURAAAAAADg0yiOAAAAAAAAn0ZxBAAAAAAA+DSKIwAAAAAAwKdRHAEAAAAAAD6N4ggAAAAAAPBpFEcAAAAAAIBPozgCAAAAAAB8GsURAAAAAADg0yiOAAAAAAAAn0ZxBAAAAAAA+DSKIwAAAAAAwKdRHAEAAAAAAD6N4ggAAAAAAPBpFEcAAAAAAIBPozgCAAAAAAB8GsURAAAAAADg0yiOAAAAAAAAn/b/Abw9lw7xhCOlAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -504,6 +507,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "a7a163d6", "metadata": {}, @@ -515,13 +519,13 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 11, "id": "dce984be", "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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1KhRcrvdatKkiT744AN17NixxttD9VidZ4SGFXlu27at2rRpI0k6fPhwpYulZmVl+R63atXKrziomBV5LllkcbvdlbYtKioq932o+3r37u1bTLWy87DCwkJt2bLF957IyEhL+ofAW7JkiR577DFJUocOHbRu3TpG6AIWoyASJv7jP/7D97iiX3u9Xq8WL14sSUpISNCAAQP8iuFwOJSeni7pyi8PxX9sy9qyZYvvl4n09HTuXBFAVuS52KZNm5Senq6CggLFx8dr7dq1pX5tRvBYkWdjTJX/2rZtK+nKRXXxcx9//HGN9glXs+p4HjlypCQpJydH69evr7BdZmam73HxRTxqz4o8t2/f3vd4w4YNlbYteSFd8n2o+xo3bqzbbrtNkrRu3boKp2FlZmYqJydHkjRixAjL+ofAyszM1IMPPihjjJKTk7V+/XrfD5MIX+3atavWOVix/v37+57785//HLqO25lB2OjXr5+RZFwul9m0adNVr8+ePdtIMpLMtGnTrnr9o48+8r0+ZsyYcmPs37/fREREGEkmNTXV5Obmlno9NzfXpKam+vrxzTffBGLXUIIVed65c6dJSEgwkkzDhg3Nxo0bA7wXqIoVea5K27ZtjSTTtm3bGr0fVbMiz0eOHDExMTFGkklJSTEXL168qs2SJUt827njjjtqu1soI9h5vnDhgmnQoIGRZBo3bmx2795dbj/WrFljnE6nkWRatWplPB5PbXcNFTh06JDf38GLFi2q9HNgjDHr16/3tbnzzjuN2+0u9fqZM2dMmzZtjCSTkJBgzp8/X8s9QWWClee1a9eaqKgoI8kkJSWZr7/+OnCdhl+CleOqFL+/f//+NXo/AoexlGHktddeU9++fZWXl6chQ4boueee04ABA5SXl6eMjAzfytSdO3f23erJX507d9bTTz+tmTNn6vPPP1ffvn01efJkdezYUVlZWZo1a5Z27twpSXr66aeZtxoEwc5zVlaWhg4dquzsbEnSSy+9pPj4eH355ZcVvicpKUlJSUk12h+Uz4rjGaFnRZ7btGmjGTNm6JlnntGePXvUp08fTZ48Wd27d1dOTo4yMzP1xhtvSJLi4uI0b968gO0frgh2nhMSEjRlyhRNnTpVly5d0q233qrHH39cgwcPVmJior7//nstX75cf/rTn+T1eiVJM2fOlNPJQOBA2bhxow4ePOj777Nnz/oeHzx48Kpfdh944IEaxRk4cKDuvfdeZWRkaMWKFRo8eLAmTpyoli1bas+ePXr55Zf13XffSbqyEGdiYmKN4qB8VuR5y5YtGjFihAoLCxUZGal58+apqKio0vOw5ORkJSQk+B0LV7PqWEYYCXVFBv5ZsWKFiYuL81UVy/7r3LmzOXDgQLnvre4vyh6Px/zqV7+qMIYk89BDD/HLUxAFM88lq9rV/VfT6jcqZ8XxXBlGiFjDqjxPmTLFOByOCuMkJSWVO3oBgRHsPHu9XjNx4sRKcyzJREZGmjlz5gRxT+1pzJgxfv3dLE91f1XOzc01w4YNq3DbTqeTv8tBYkWep02b5vd52KJFi4K74zZi5bFcmeL3M0Ik9PjpIMwMHz5cu3fv1n/913+pc+fOatCggRISEpSamuobvdGpU6daxXA6nXrrrbe0evVqpaenq2XLloqKilLLli2Vnp6uNWvWaOHChfzyFERW5BmhR57twao8v/LKK/r00081evRotWvXTtHR0YqPj1fv3r314osv6ptvvtEtt9wSgD1CeYKdZ4fDoXnz5mnbtm0aP368fvKTn6hx48aKiIhQfHy8evXqpUmTJunLL7/UU089FcA9g9ViY2O1evVqvfPOOxo8eLCSkpIUFRWl1q1b6xe/+IU2btyo6dOnh7qbAFAvOIypZEl6AAAAAACAeoif+AEAAAAAgO1QEAEAAAAAALZDQQQAAAAAANgOBREAAAAAAGA7FEQAAAAAAIDtUBABAAAAAAC2Q0EEAAAAAADYDgURAAAAAABgOxREAAAAAACA7VAQAQAAAAAAtkNBBAAAAAAA2A4FEQAAAAAAYDsURAAAAAAAgO1QEAEAAAAAALZDQQQAAAAAANgOBREAAAAAAGA7FEQAAAAAAIDtUBABAAAAAAC2Q0EEAAAAAADYDgURAAAAAABgOxREAAAAAACA7VAQAQAAAAAAtkNBBAAAAAAA2A4FEQAAAAAAYDv/H7HpCjDX2JMRAAAAAElFTkSuQmCC", "text/plain": [ "
" ] From 421cfaa44613a1cb8ac87944537fdc8ca5306714 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sat, 8 Jul 2023 12:09:20 +0200 Subject: [PATCH 0341/1025] Add math keywords to equations, Update some math equations Add math keywords to equations, Update some math equations --- control/statefbk.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 758f093f9..b13971ff8 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -589,7 +589,7 @@ def create_statefbk_iosystem( This function creates an input/output system that implements a state feedback controller of the form - u = ud - K_p (x - xd) - K_i integral(C x - C x_d) + .. math :: u = u_d - K_p (x - x_d) - K_i \int(C x - C x_d) It can be called in the form @@ -603,9 +603,9 @@ def create_statefbk_iosystem( gains and a corresponding list of values of a set of scheduling variables. In this case, the controller has the form - u = ud - K_p(mu) (x - xd) - K_i(mu) integral(C x - C x_d) + .. math :: u = u_d - K_p(\mu) (x - x_d) - K_i(\mu) \int(C x - C x_d) - where mu represents the scheduling variable. + where :math:`\mu` represents the scheduling variable. Parameters ---------- @@ -623,7 +623,7 @@ def create_statefbk_iosystem( If a tuple is given, then it specifies a gain schedule. The tuple should be of the form `(gains, points)` where gains is a list of - gains :math:`K_j` and points is a list of values :math:`\\mu_j` at + gains :math:`K_j` and points is a list of values :math:`\mu_j` at which the gains are computed. The `gainsched_indices` parameter should be used to specify the scheduling variables. From 30102bfb0c1bd1ab48d6056dd9fa66369bb59777 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sat, 8 Jul 2023 16:57:49 +0200 Subject: [PATCH 0342/1025] Change most/all signals x,xd,xhat,u,ud to :math: to be consistent with :math:formula, fix typos --- control/statefbk.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index b13971ff8..c8e333490 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -614,7 +614,7 @@ def create_statefbk_iosystem( is given, the output of this system should represent the full state. gain : ndarray or tuple - If an array is given, it represents the state feedback gain (K). + If an array is given, it represents the state feedback gain (`K`). This matrix defines the gains to be applied to the system. If `integral_action` is None, then the dimensions of this array should be (sys.ninputs, sys.nstates). If `integral action` is @@ -631,10 +631,10 @@ def create_statefbk_iosystem( Set the name of the signals to use for the desired state and inputs. If a single string is specified, it should be a format string using the variable `i` as an index. Otherwise, - a list of strings matching the size of xd and ud, + a list of strings matching the size of :math:`x_d` and :math:`u_d`, respectively, should be used. Default is "xd[{i}]" for xd_labels and "ud[{i}]" for ud_labels. These settings can - also be overriden using the `inputs` keyword. + also be overridden using the `inputs` keyword. integral_action : ndarray, optional If this keyword is specified, the controller can include integral @@ -650,13 +650,13 @@ def create_statefbk_iosystem( gainsched_indices : int, slice, or list of int or str, optional If a gain scheduled controller is specified, specify the indices of the controller input to use for scheduling the gain. The input to - the controller is the desired state xd, the desired input ud, and - the system state x (or state estimate xhat, if an estimator is + the controller is the desired state :math:`x_d`, the desired input :math:`u_d`, and + the system state :math:`x` (or state estimate :math:`\hat{x}`, if an estimator is given). If value is an integer `q`, the first `q` values of the - [xd, ud, x] vector are used. Otherwise, the value should be a + :math:`[x_d, u_d, x]` vector are used. Otherwise, the value should be a slice or a list of indices. The list of indices can be specified - as either integer offsets or as signal names. The default is to - use the desired state xd. + as either integer offsets or as signal names. The default is to + use the desired state :math:`x_d`. gainsched_method : str, optional The method to use for gain scheduling. Possible values are 'linear' @@ -677,9 +677,9 @@ def create_statefbk_iosystem( ------- ctrl : NonlinearIOSystem Input/output system representing the controller. This system - takes as inputs the desired state `xd`, the desired input - `ud`, and either the system state `x` or the estimated state - `xhat`. It outputs the controller action `u` according to the + takes as inputs the desired state :math:`x_d`, the desired input + :math:`u_d`, and either the system state :math:`x` or the estimated state + :math:`\hat{x}`. It outputs the controller action :math:`u` according to the formula :math:`u = u_d - K(x - x_d)`. If the keyword `integral_action` is specified, then an additional set of integrators is included in the control system (with the gain @@ -690,8 +690,8 @@ def create_statefbk_iosystem( clsys : NonlinearIOSystem Input/output system representing the closed loop system. This - systems takes as inputs the desired trajectory `(xd, ud)` and - outputs the system state `x` and the applied input `u` + system takes as inputs the desired trajectory :math:`(x_d, u_d)` and + outputs the system state :math:`x` and the applied input :math:`u` (vertically stacked). Other Parameters From dfc8b7304d4e81fdd5ba58497f02706c35766af0 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sat, 8 Jul 2023 12:22:36 +0200 Subject: [PATCH 0343/1025] Add 'literal block ::' for code line Add 'literal block ::' for code line --- control/statefbk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/statefbk.py b/control/statefbk.py index c8e333490..3c6b49266 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -591,7 +591,7 @@ def create_statefbk_iosystem( .. math :: u = u_d - K_p (x - x_d) - K_i \int(C x - C x_d) - It can be called in the form + It can be called in the form:: ctrl, clsys = ct.create_statefbk_iosystem(sys, K) From d0aa48adb2de3441a66390c243d8fb5089b88241 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sat, 8 Jul 2023 14:19:33 +0200 Subject: [PATCH 0344/1025] Add full example to create_statefbk_iosystem --- control/statefbk.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/control/statefbk.py b/control/statefbk.py index 3c6b49266..9a71e6637 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -721,6 +721,23 @@ def create_statefbk_iosystem( System name. If unspecified, a generic name is generated with a unique integer id. + Examples + -------- + >>> import control as ct + >>> import numpy as np + >>> + >>> A = [[0, 1], [-0.5, -0.1]] + >>> B = [[0], [1]] + >>> C = np.eye(2) + >>> D = np.zeros((2, 1)) + >>> sys = ct.ss(A, B, C, D) + >>> + >>> Q = np.eye(2) + >>> R = np.eye(1) + >>> + >>> K, _, _ = ct.lqr(sys,Q,R) + >>> ctrl, clsys = ct.create_statefbk_iosystem(sys, K) + """ # Make sure that we were passed an I/O system as an input if not isinstance(sys, NonlinearIOSystem): From aa9ef958c53dcdbf04384784ab5d1cabf42a08b2 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Fri, 21 Jul 2023 14:24:30 -0700 Subject: [PATCH 0345/1025] fix name of default name for duplcated system in interconnect --- control/nlsys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index 82b6aeef3..2f8d549e4 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -2132,8 +2132,8 @@ def interconnect( If a system is duplicated in the list of systems to be connected, a warning is generated and a copy of the system is created with the name of the new system determined by adding the prefix and suffix - strings in config.defaults['iosys.linearized_system_name_prefix'] - and config.defaults['iosys.linearized_system_name_suffix'], with the + strings in config.defaults['iosys.duplicate_system_name_prefix'] + and config.defaults['iosys.duplicate_system_name_suffix'], with the default being to add the suffix '$copy' to the system name. In addition to explicit lists of system signals, it is possible to From 5e92bb405e7db4466933d1bf35cbe72065f1c0d7 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 24 Jul 2023 10:05:16 -0700 Subject: [PATCH 0346/1025] remove namedio from docstrings --- control/iosys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 99f0e7db6..53cda7d19 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -539,7 +539,7 @@ def isctime(sys, strict=False): return sys.isctime(strict) -# Utility function to parse nameio keywords +# Utility function to parse iosys keywords def _process_iosys_keywords( keywords={}, defaults={}, static=False, end=False): """Process iosys specification. @@ -611,7 +611,7 @@ def pop_with_default(kw, defval=None, return_list=True): return name, inputs, outputs, states, dt # -# Parse 'dt' in for named I/O system +# Parse 'dt' for I/O system # # The 'dt' keyword is used to set the timebase for a system. Its # processing is a bit unusual: if it is not specified at all, then the From 4e96553e2cf0e7bcb4b562c7347bf64f34f2bb50 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 24 Jul 2023 12:37:25 -0700 Subject: [PATCH 0347/1025] add signal_table method to show implicit interconnections --- control/nlsys.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/control/nlsys.py b/control/nlsys.py index 2f8d549e4..041a29e59 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1001,6 +1001,69 @@ def unused_signals(self): return ({inputs[i][:2]: inputs[i][2] for i in unused_sysinp}, {outputs[i][:2]: outputs[i][2] for i in unused_sysout}) + def signal_table(self, show_names=False): + """Print table of signal names, sources, and destinations. + + Intended primarily for systems that have been connected implicitly + using signal names. + + Parameters + ---------- + show_names : bool (optional) + Instead of printing out the system number, print out the name of + each system. Default is False because system name is not usually + specified when performing implicit interconnection using + :func:`interconnect`. + + Examples + -------- + >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y') + >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u') + >>> L = ct.interconnect([C, P], inputs='e', outputs='y') + >>> L.signal_table() + signal | source | destination + -------------------------------------------------------------- + e | input | system 0 + u | system 0 | system 1 + y | system 1 | output + """ + + spacing = 26 + print('signal'.ljust(10) + '| source'.ljust(spacing) + '| destination') + print('-'*(10 + spacing * 2)) + + # collect signal labels + signal_labels = [] + for sys in self.syslist: + signal_labels += sys.input_labels + sys.output_labels + signal_labels = set(signal_labels) + + for signal_label in signal_labels: + print(signal_label.ljust(10), end='') + sources = '| ' + dests = '| ' + + # overall interconnected system inputs and outputs + if self.find_input(signal_label) is not None: + sources += 'input' + if self.find_output(signal_label) is not None: + dests += 'output' + + # internal connections + for idx, sys in enumerate(self.syslist): + loc = sys.find_output(signal_label) + if loc is not None: + if not sources.endswith(' '): + sources += ', ' + sources += sys.name if show_names else 'system ' + str(idx) + loc = sys.find_input(signal_label) + if loc is not None: + if not dests.endswith(' '): + dests += ', ' + dests += sys.name if show_names else 'system ' + str(idx) + print(sources.ljust(spacing), end='') + print(dests.ljust(spacing), end='\n') + def _find_inputs_by_basename(self, basename): """Find all subsystem inputs matching basename From b5925c37408d110011b059c73fe23664c1c9bba2 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 24 Jul 2023 14:03:58 -0700 Subject: [PATCH 0348/1025] unit test --- control/tests/interconnect_test.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 3a333aef5..9779cbe08 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -201,6 +201,24 @@ def test_interconnect_docstring(): np.testing.assert_almost_equal(T.C @ T. A @ T.B, T_ss.C @ T_ss.A @ T_ss.B) np.testing.assert_almost_equal(T.D, T_ss.D) +def test_signal_table(capsys): + P = ct.ss(1,1,1,0, inputs='u', outputs='y') + C = ct.tf(10, [.1, 1], inputs='e', outputs='u') + L = ct.interconnect([C, P], inputs='e', outputs='y') + L.signal_table() + captured = capsys.readouterr().out + + # break the following strings separately because the printout order varies + # because signals are stored as a dict + mystrings = \ + ["signal | source | destination", + "-------------------------------------------------------------", + "e | input | system 0", + "u | system 0 | system 1", + "y | system 1 | output"] + + for str_ in mystrings: + assert str_ in captured def test_interconnect_exceptions(): # First make sure the docstring example works From 614de832ad906de71cd29433703b14014439e9d8 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 24 Jul 2023 15:16:28 -0700 Subject: [PATCH 0349/1025] add signal_table function, test against show_names --- control/nlsys.py | 37 ++++++++++++++++++++++++++++-- control/tests/interconnect_test.py | 35 +++++++++++++++++++--------- doc/control.rst | 1 + 3 files changed, 60 insertions(+), 13 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index 041a29e59..80bb7d303 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -31,7 +31,7 @@ __all__ = ['NonlinearIOSystem', 'InterconnectedSystem', 'nlsys', 'input_output_response', 'find_eqpt', 'linearize', - 'interconnect'] + 'interconnect', 'signal_table'] class NonlinearIOSystem(InputOutputSystem): @@ -1020,7 +1020,7 @@ def signal_table(self, show_names=False): >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y') >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u') >>> L = ct.interconnect([C, P], inputs='e', outputs='y') - >>> L.signal_table() + >>> L.signal_table() # doctest: +SKIP signal | source | destination -------------------------------------------------------------- e | input | system 0 @@ -2563,3 +2563,36 @@ def _convert_static_iosystem(sys): return NonlinearIOSystem( None, lambda t, x, u, params: sys @ u, outputs=sys.shape[0], inputs=sys.shape[1]) + +def signal_table(sys, **kwargs): + """Print table of signal names, sources, and destinations. + + Intended primarily for systems that have been connected implicitly + using signal names. + + Parameters + ---------- + sys : :class:`InterconnectedSystem` + Interconnected system object + show_names : bool (optional) + Instead of printing out the system number, print out the name of + each system. Default is False because system name is not usually + specified when performing implicit interconnection using + :func:`interconnect`. + + Examples + -------- + >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y') + >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u') + >>> L = ct.interconnect([C, P], inputs='e', outputs='y') + >>> ct.signal_table(L) # doctest: +SKIP + signal | source | destination + -------------------------------------------------------------- + e | input | system 0 + u | system 0 | system 1 + y | system 1 | output + """ + assert isinstance(sys, InterconnectedSystem), "system must be"\ + "an InterconnectedSystem." + + sys.signal_table(**kwargs) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 9779cbe08..89827db79 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -201,24 +201,37 @@ def test_interconnect_docstring(): np.testing.assert_almost_equal(T.C @ T. A @ T.B, T_ss.C @ T_ss.A @ T_ss.B) np.testing.assert_almost_equal(T.D, T_ss.D) -def test_signal_table(capsys): - P = ct.ss(1,1,1,0, inputs='u', outputs='y') - C = ct.tf(10, [.1, 1], inputs='e', outputs='u') +@pytest.mark.parametrize("show_names", (True, False)) +def test_signal_table(capsys, show_names): + P = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P') + C = ct.tf(10, [.1, 1], inputs='e', outputs='u', name='C') L = ct.interconnect([C, P], inputs='e', outputs='y') - L.signal_table() - captured = capsys.readouterr().out + L.signal_table(show_names=show_names) + captured_from_method = capsys.readouterr().out + + ct.signal_table(L, show_names=show_names) + captured_from_function = capsys.readouterr().out # break the following strings separately because the printout order varies - # because signals are stored as a dict + # because signal names are stored as a set mystrings = \ ["signal | source | destination", - "-------------------------------------------------------------", - "e | input | system 0", - "u | system 0 | system 1", - "y | system 1 | output"] + "-------------------------------------------------------------"] + if show_names: + mystrings += \ + ["e | input | C", + "u | C | P", + "y | P | output"] + else: + mystrings += \ + ["e | input | system 0", + "u | system 0 | system 1", + "y | system 1 | output"] for str_ in mystrings: - assert str_ in captured + assert str_ in captured_from_method + assert str_ in captured_from_function + def test_interconnect_exceptions(): # First make sure the docstring example works diff --git a/doc/control.rst b/doc/control.rst index a2fb8e69b..c9f8bc97f 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -36,6 +36,7 @@ System interconnections negate parallel series + signal_table Frequency domain plotting From 91aac8f5394bae7cd8716acf7dd332d7f43e7875 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 24 Jul 2023 15:57:08 -0700 Subject: [PATCH 0350/1025] remove **kwargs --- control/nlsys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index 80bb7d303..b1f43fe39 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -2564,7 +2564,7 @@ def _convert_static_iosystem(sys): None, lambda t, x, u, params: sys @ u, outputs=sys.shape[0], inputs=sys.shape[1]) -def signal_table(sys, **kwargs): +def signal_table(sys, show_names=False): """Print table of signal names, sources, and destinations. Intended primarily for systems that have been connected implicitly @@ -2595,4 +2595,4 @@ def signal_table(sys, **kwargs): assert isinstance(sys, InterconnectedSystem), "system must be"\ "an InterconnectedSystem." - sys.signal_table(**kwargs) + sys.signal_table(show_names=show_names) From 796acad0a56855a103a48d586647869c3e383d4a Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Tue, 25 Jul 2023 10:28:09 -0700 Subject: [PATCH 0351/1025] switch docstring example to use system names --- control/nlsys.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index b1f43fe39..2f64c3211 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1017,15 +1017,15 @@ def signal_table(self, show_names=False): Examples -------- - >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y') - >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u') + >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P') + >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u', name='C') >>> L = ct.interconnect([C, P], inputs='e', outputs='y') - >>> L.signal_table() # doctest: +SKIP + >>> L.signal_table(show_names=True) # doctest: +SKIP signal | source | destination -------------------------------------------------------------- - e | input | system 0 - u | system 0 | system 1 - y | system 1 | output + e | input | C + u | C | P + y | P | output """ spacing = 26 @@ -1053,12 +1053,12 @@ def signal_table(self, show_names=False): for idx, sys in enumerate(self.syslist): loc = sys.find_output(signal_label) if loc is not None: - if not sources.endswith(' '): + if not sources.endswith(', '): sources += ', ' sources += sys.name if show_names else 'system ' + str(idx) loc = sys.find_input(signal_label) if loc is not None: - if not dests.endswith(' '): + if not dests.endswith(', '): dests += ', ' dests += sys.name if show_names else 'system ' + str(idx) print(sources.ljust(spacing), end='') @@ -2582,15 +2582,15 @@ def signal_table(sys, show_names=False): Examples -------- - >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y') - >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u') + >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P') + >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u', name='C') >>> L = ct.interconnect([C, P], inputs='e', outputs='y') - >>> ct.signal_table(L) # doctest: +SKIP + >>> L.signal_table(show_names=True) # doctest: +SKIP signal | source | destination -------------------------------------------------------------- - e | input | system 0 - u | system 0 | system 1 - y | system 1 | output + e | input | C + u | C | P + y | P | output """ assert isinstance(sys, InterconnectedSystem), "system must be"\ "an InterconnectedSystem." From b787a9ef8f44850161c8983d727ad8a2f20018c6 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Tue, 25 Jul 2023 14:58:02 -0700 Subject: [PATCH 0352/1025] add tests for auto-sum and auto-split --- control/nlsys.py | 16 +++---- control/tests/interconnect_test.py | 77 ++++++++++++++++++++++++++---- 2 files changed, 77 insertions(+), 16 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index 2f64c3211..d3fbc7609 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1021,14 +1021,14 @@ def signal_table(self, show_names=False): >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u', name='C') >>> L = ct.interconnect([C, P], inputs='e', outputs='y') >>> L.signal_table(show_names=True) # doctest: +SKIP - signal | source | destination - -------------------------------------------------------------- - e | input | C - u | C | P - y | P | output + signal | source | destination + -------------------------------------------------------------------- + e | input | C + u | C | P + y | P | output """ - spacing = 26 + spacing = 32 print('signal'.ljust(10) + '| source'.ljust(spacing) + '| destination') print('-'*(10 + spacing * 2)) @@ -1053,12 +1053,12 @@ def signal_table(self, show_names=False): for idx, sys in enumerate(self.syslist): loc = sys.find_output(signal_label) if loc is not None: - if not sources.endswith(', '): + if not sources.endswith(' '): sources += ', ' sources += sys.name if show_names else 'system ' + str(idx) loc = sys.find_input(signal_label) if loc is not None: - if not dests.endswith(', '): + if not dests.endswith(' '): dests += ', ' dests += sys.name if show_names else 'system ' + str(idx) print(sources.ljust(spacing), end='') diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 89827db79..675c94402 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -215,23 +215,84 @@ def test_signal_table(capsys, show_names): # break the following strings separately because the printout order varies # because signal names are stored as a set mystrings = \ - ["signal | source | destination", - "-------------------------------------------------------------"] + ["signal | source | destination", + "------------------------------------------------------------------"] if show_names: mystrings += \ - ["e | input | C", - "u | C | P", - "y | P | output"] + ["e | input | C", + "u | C | P", + "y | P | output"] else: mystrings += \ - ["e | input | system 0", - "u | system 0 | system 1", - "y | system 1 | output"] + ["e | input | system 0", + "u | system 0 | system 1", + "y | system 1 | output"] for str_ in mystrings: assert str_ in captured_from_method assert str_ in captured_from_function + # check auto-sum + P1 = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P1') + P2 = ct.tf(10, [.1, 1], inputs='e', outputs='y', name='P2') + P3 = ct.tf(10, [.1, 1], inputs='x', outputs='y', name='P3') + P = ct.interconnect([P1, P2, P3], inputs=['e', 'u', 'x'], outputs='y') + P.signal_table(show_names=show_names) + captured_from_method = capsys.readouterr().out + + ct.signal_table(P, show_names=show_names) + captured_from_function = capsys.readouterr().out + + mystrings = \ + ["signal | source | destination", + "-------------------------------------------------------------------"] + if show_names: + mystrings += \ + ["u | input | P1", + "e | input | P2", + "x | input | P3", + "y | P1, P2, P3 | output"] + else: + mystrings += \ + ["u | input | system 0", + "e | input | system 1", + "x | input | system 2", + "y | system 0, system 1, system 2 | output"] + + for str_ in mystrings: + assert str_ in captured_from_method + assert str_ in captured_from_function + + # check auto-split + P1 = ct.ss(1,1,1,0, inputs='u', outputs='x', name='P1') + P2 = ct.tf(10, [.1, 1], inputs='u', outputs='y', name='P2') + P3 = ct.tf(10, [.1, 1], inputs='u', outputs='z', name='P3') + P = ct.interconnect([P1, P2, P3], inputs=['u'], outputs=['x','y','z']) + P.signal_table(show_names=show_names) + captured_from_method = capsys.readouterr().out + + ct.signal_table(P, show_names=show_names) + captured_from_function = capsys.readouterr().out + + mystrings = \ + ["signal | source | destination", + "-------------------------------------------------------------------"] + if show_names: + mystrings += \ + ["u | input | P1, P2, P3", + "x | P1 | output ", + "y | P2 | output", + "z | P3 | output"] + else: + mystrings += \ + ["u | input | system 0, system 1, system 2", + "x | system 0 | output ", + "y | system 1 | output", + "z | system 2 | output"] + + for str_ in mystrings: + assert str_ in captured_from_method + assert str_ in captured_from_function def test_interconnect_exceptions(): # First make sure the docstring example works From c2b4480c3d1e285e8a398427352209d89d49428c Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 14 Aug 2023 11:10:31 -0700 Subject: [PATCH 0353/1025] rename function to connection_table, add option to change column width --- control/nlsys.py | 51 ++++++++++++++++++------------ control/tests/interconnect_test.py | 14 ++++---- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index d3fbc7609..05b45b8fc 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -31,7 +31,7 @@ __all__ = ['NonlinearIOSystem', 'InterconnectedSystem', 'nlsys', 'input_output_response', 'find_eqpt', 'linearize', - 'interconnect', 'signal_table'] + 'interconnect', 'connection_table'] class NonlinearIOSystem(InputOutputSystem): @@ -1001,11 +1001,11 @@ def unused_signals(self): return ({inputs[i][:2]: inputs[i][2] for i in unused_sysinp}, {outputs[i][:2]: outputs[i][2] for i in unused_sysout}) - def signal_table(self, show_names=False): - """Print table of signal names, sources, and destinations. + def connection_table(self, show_names=False, column_width=32): + """Print table of connections inside an interconnected system model. - Intended primarily for systems that have been connected implicitly - using signal names. + Intended primarily for :class:`InterconnectedSystems` that have been + connected implicitly using signal names. Parameters ---------- @@ -1014,13 +1014,15 @@ def signal_table(self, show_names=False): each system. Default is False because system name is not usually specified when performing implicit interconnection using :func:`interconnect`. + column_width : int (optional) + Character width of printed columns Examples -------- >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P') >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u', name='C') >>> L = ct.interconnect([C, P], inputs='e', outputs='y') - >>> L.signal_table(show_names=True) # doctest: +SKIP + >>> L.connection_table(show_names=True) # doctest: +SKIP signal | source | destination -------------------------------------------------------------------- e | input | C @@ -1028,9 +1030,12 @@ def signal_table(self, show_names=False): y | P | output """ - spacing = 32 - print('signal'.ljust(10) + '| source'.ljust(spacing) + '| destination') - print('-'*(10 + spacing * 2)) + print('signal'.ljust(10) + '| source'.ljust(column_width) + \ + '| destination') + print('-'*(10 + column_width * 2)) + + # TODO: version of this method that is better suited + # to explicitly-connected systems # collect signal labels signal_labels = [] @@ -1061,8 +1066,12 @@ def signal_table(self, show_names=False): if not dests.endswith(' '): dests += ', ' dests += sys.name if show_names else 'system ' + str(idx) - print(sources.ljust(spacing), end='') - print(dests.ljust(spacing), end='\n') + if len(sources) >= column_width: + sources = sources[:column_width - 3] + '.. ' + print(sources.ljust(column_width), end='') + if len(dests) > column_width: + dests = dests[:column_width - 3] + '.. ' + print(dests.ljust(column_width), end='\n') def _find_inputs_by_basename(self, basename): """Find all subsystem inputs matching basename @@ -2018,7 +2027,7 @@ def interconnect( signals are given names, then the forms 'sys.sig' or ('sys', 'sig') are also recognized. Finally, for multivariable systems the signal index can be given as a list, for example '(subsys_i, [inp_j1, ..., - inp_jn])'; as a slice, for example, 'sys.sig[i:j]'; or as a base + inp_jn])'; or as a slice, for example, 'sys.sig[i:j]'; or as a base name `sys.sig` (which matches `sys.sig[i]`). Similarly, each output-spec should describe an output signal from @@ -2235,8 +2244,7 @@ def interconnect( raise ValueError('check_unused is False, but either ' + 'ignore_inputs or ignore_outputs non-empty') - if connections is False and not inplist and not outlist \ - and not inputs and not outputs: + if connections is False and not any((inplist, outlist, inputs, outputs)): # user has disabled auto-connect, and supplied neither input # nor output mappings; assume they know what they're doing check_unused = False @@ -2564,11 +2572,11 @@ def _convert_static_iosystem(sys): None, lambda t, x, u, params: sys @ u, outputs=sys.shape[0], inputs=sys.shape[1]) -def signal_table(sys, show_names=False): - """Print table of signal names, sources, and destinations. +def connection_table(sys, show_names=False, column_width=32): + """Print table of connections inside an interconnected system model. - Intended primarily for systems that have been connected implicitly - using signal names. + Intended primarily for :class:`InterconnectedSystems` that have been + connected implicitly using signal names. Parameters ---------- @@ -2579,13 +2587,16 @@ def signal_table(sys, show_names=False): each system. Default is False because system name is not usually specified when performing implicit interconnection using :func:`interconnect`. + column_width : int (optional) + Character width of printed columns + Examples -------- >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P') >>> C = ct.tf(10, [.1, 1], inputs='e', outputs='u', name='C') >>> L = ct.interconnect([C, P], inputs='e', outputs='y') - >>> L.signal_table(show_names=True) # doctest: +SKIP + >>> L.connection_table(show_names=True) # doctest: +SKIP signal | source | destination -------------------------------------------------------------- e | input | C @@ -2595,4 +2606,4 @@ def signal_table(sys, show_names=False): assert isinstance(sys, InterconnectedSystem), "system must be"\ "an InterconnectedSystem." - sys.signal_table(show_names=show_names) + sys.connection_table(show_names=show_names) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 675c94402..e57567333 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -202,14 +202,14 @@ def test_interconnect_docstring(): np.testing.assert_almost_equal(T.D, T_ss.D) @pytest.mark.parametrize("show_names", (True, False)) -def test_signal_table(capsys, show_names): +def test_connection_table(capsys, show_names): P = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P') C = ct.tf(10, [.1, 1], inputs='e', outputs='u', name='C') L = ct.interconnect([C, P], inputs='e', outputs='y') - L.signal_table(show_names=show_names) + L.connection_table(show_names=show_names) captured_from_method = capsys.readouterr().out - ct.signal_table(L, show_names=show_names) + ct.connection_table(L, show_names=show_names) captured_from_function = capsys.readouterr().out # break the following strings separately because the printout order varies @@ -237,10 +237,10 @@ def test_signal_table(capsys, show_names): P2 = ct.tf(10, [.1, 1], inputs='e', outputs='y', name='P2') P3 = ct.tf(10, [.1, 1], inputs='x', outputs='y', name='P3') P = ct.interconnect([P1, P2, P3], inputs=['e', 'u', 'x'], outputs='y') - P.signal_table(show_names=show_names) + P.connection_table(show_names=show_names) captured_from_method = capsys.readouterr().out - ct.signal_table(P, show_names=show_names) + ct.connection_table(P, show_names=show_names) captured_from_function = capsys.readouterr().out mystrings = \ @@ -268,10 +268,10 @@ def test_signal_table(capsys, show_names): P2 = ct.tf(10, [.1, 1], inputs='u', outputs='y', name='P2') P3 = ct.tf(10, [.1, 1], inputs='u', outputs='z', name='P3') P = ct.interconnect([P1, P2, P3], inputs=['u'], outputs=['x','y','z']) - P.signal_table(show_names=show_names) + P.connection_table(show_names=show_names) captured_from_method = capsys.readouterr().out - ct.signal_table(P, show_names=show_names) + ct.connection_table(P, show_names=show_names) captured_from_function = capsys.readouterr().out mystrings = \ From 58e1b601e84c2943a5a62eb42767a50da4627498 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 14 Aug 2023 12:07:33 -0700 Subject: [PATCH 0354/1025] added field to interconnectedSystem and LinearICSystem to keep track of whether connection was explicit or implicit and issue a warning in connection_table if explicit --- control/nlsys.py | 36 ++++++++++++++++++------------ control/statesp.py | 3 ++- control/tests/interconnect_test.py | 30 ++++++++++++++++++++++++- 3 files changed, 53 insertions(+), 16 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index 05b45b8fc..44eba2962 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -589,11 +589,14 @@ class InterconnectedSystem(NonlinearIOSystem): """ def __init__(self, syslist, connections=None, inplist=None, outlist=None, - params=None, warn_duplicate=None, **kwargs): + params=None, warn_duplicate=None, connection_type=None, + **kwargs): """Create an I/O system from a list of systems + connection info.""" from .statesp import _convert_to_statespace from .xferfcn import TransferFunction + self.connection_type = connection_type # explicit, implicit, or None + # Convert input and output names to lists if they aren't already if inplist is not None and not isinstance(inplist, list): inplist = [inplist] @@ -1034,8 +1037,10 @@ def connection_table(self, show_names=False, column_width=32): '| destination') print('-'*(10 + column_width * 2)) - # TODO: version of this method that is better suited - # to explicitly-connected systems + # TODO: update this method for explicitly-connected systems + if not self.connection_type == 'implicit': + warn('connection_table only gives useful output for implicitly-'\ + 'connected systems') # collect signal labels signal_labels = [] @@ -2239,6 +2244,7 @@ def interconnect( dt = kwargs.pop('dt', None) # bypass normal 'dt' processing name, inputs, outputs, states, _ = _process_iosys_keywords(kwargs) + connection_type = None # explicit, implicit, or None if not check_unused and (ignore_inputs or ignore_outputs): raise ValueError('check_unused is False, but either ' @@ -2249,8 +2255,10 @@ def interconnect( # nor output mappings; assume they know what they're doing check_unused = False - # If connections was not specified, set up default connection list + # If connections was not specified, assume implicit interconnection. + # set up default connection list if connections is None: + connection_type = 'implicit' # For each system input, look for outputs with the same name connections = [] for input_sys in syslist: @@ -2262,17 +2270,17 @@ def interconnect( if len(connect) > 1: connections.append(connect) - auto_connect = True - elif connections is False: check_unused = False # Use an empty connections list connections = [] - elif isinstance(connections, list) and \ - all([isinstance(cnxn, (str, tuple)) for cnxn in connections]): - # Special case where there is a single connection - connections = [connections] + else: + connection_type = 'explicit' + if isinstance(connections, list) and \ + all([isinstance(cnxn, (str, tuple)) for cnxn in connections]): + # Special case where there is a single connection + connections = [connections] # If inplist/outlist is not present, try using inputs/outputs instead inplist_none, outlist_none = False, False @@ -2507,7 +2515,7 @@ def interconnect( syslist, connections=connections, inplist=inplist, outlist=outlist, inputs=inputs, outputs=outputs, states=states, params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, - **kwargs) + connection_type=connection_type, **kwargs) # See if we should add any signals if add_unused: @@ -2528,7 +2536,7 @@ def interconnect( syslist, connections=connections, inplist=inplist, outlist=outlist, inputs=inputs, outputs=outputs, states=states, params=params, dt=dt, name=name, warn_duplicate=warn_duplicate, - **kwargs) + connection_type=connection_type, **kwargs) # check for implicitly dropped signals if check_unused: @@ -2536,7 +2544,7 @@ def interconnect( # If all subsystems are linear systems, maintain linear structure if all([isinstance(sys, StateSpace) for sys in newsys.syslist]): - return LinearICSystem(newsys, None) + newsys = LinearICSystem(newsys, None, connection_type=connection_type) return newsys @@ -2606,4 +2614,4 @@ def connection_table(sys, show_names=False, column_width=32): assert isinstance(sys, InterconnectedSystem), "system must be"\ "an InterconnectedSystem." - sys.connection_table(show_names=show_names) + sys.connection_table(show_names=show_names, column_width=column_width) diff --git a/control/statesp.py b/control/statesp.py index 362945ad6..38dd2388d 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1459,7 +1459,7 @@ class LinearICSystem(InterconnectedSystem, StateSpace): """ - def __init__(self, io_sys, ss_sys=None): + def __init__(self, io_sys, ss_sys=None, connection_type=None): # # Because this is a "hybrid" object, the initialization proceeds in # stages. We first create an empty InputOutputSystem of the @@ -1483,6 +1483,7 @@ def __init__(self, io_sys, ss_sys=None): self.input_map = io_sys.input_map self.output_map = io_sys.output_map self.params = io_sys.params + self.connection_type = connection_type # If we didnt' get a state space system, linearize the full system if ss_sys is None: diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index e57567333..a37b18eec 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -276,7 +276,7 @@ def test_connection_table(capsys, show_names): mystrings = \ ["signal | source | destination", - "-------------------------------------------------------------------"] + "-------------------------------------------------------------------"] if show_names: mystrings += \ ["u | input | P1, P2, P3", @@ -294,6 +294,34 @@ def test_connection_table(capsys, show_names): assert str_ in captured_from_method assert str_ in captured_from_function + # check change column width + P.connection_table(show_names=show_names, column_width=20) + captured_from_method = capsys.readouterr().out + + ct.connection_table(P, show_names=show_names, column_width=20) + captured_from_function = capsys.readouterr().out + + mystrings = \ + ["signal | source | destination", + "------------------------------------------------"] + if show_names: + mystrings += \ + ["u | input | P1, P2, P3", + "x | P1 | output ", + "y | P2 | output", + "z | P3 | output"] + else: + mystrings += \ + ["u | input | system 0, syste.. ", + "x | system 0 | output ", + "y | system 1 | output", + "z | system 2 | output"] + + for str_ in mystrings: + assert str_ in captured_from_method + assert str_ in captured_from_function + + def test_interconnect_exceptions(): # First make sure the docstring example works P = ct.tf(1, [1, 0], input='u', output='y') From 36379972b9f538990f72ab079f70c89c71576d58 Mon Sep 17 00:00:00 2001 From: Sawyer Fuller Date: Mon, 14 Aug 2023 12:55:38 -0700 Subject: [PATCH 0355/1025] added connection_table to documentation in control.rst --- doc/control.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/control.rst b/doc/control.rst index c9f8bc97f..96714bf7d 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -36,7 +36,7 @@ System interconnections negate parallel series - signal_table + connection_table Frequency domain plotting From 5c23f1a64dfe8c2927a27c96966a5616152318a6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 16 Sep 2023 08:17:54 -0700 Subject: [PATCH 0356/1025] change "(optional)" to ", optional" per numpydoc --- control/nlsys.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/control/nlsys.py b/control/nlsys.py index 44eba2962..fd6e207fc 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -395,7 +395,7 @@ def dynamics(self, t, x, u, params=None): current state u : array_like input - params : dict (optional) + params : dict, optional system parameter values Returns @@ -436,7 +436,7 @@ def output(self, t, x, u, params=None): current state u : array_like input - params : dict (optional) + params : dict, optional system parameter values Returns @@ -1012,13 +1012,13 @@ def connection_table(self, show_names=False, column_width=32): Parameters ---------- - show_names : bool (optional) + show_names : bool, optional Instead of printing out the system number, print out the name of each system. Default is False because system name is not usually specified when performing implicit interconnection using :func:`interconnect`. - column_width : int (optional) - Character width of printed columns + column_width : int, optional + Character width of printed columns. Examples -------- @@ -2590,13 +2590,13 @@ def connection_table(sys, show_names=False, column_width=32): ---------- sys : :class:`InterconnectedSystem` Interconnected system object - show_names : bool (optional) + show_names : bool, optional Instead of printing out the system number, print out the name of each system. Default is False because system name is not usually specified when performing implicit interconnection using :func:`interconnect`. - column_width : int (optional) - Character width of printed columns + column_width : int, optional + Character width of printed columns. Examples From 3950f675ee572bcbb05ac2b9d7f1397d836cbcb0 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 16 Sep 2023 09:30:16 -0700 Subject: [PATCH 0357/1025] remove unneeded :math: directives --- control/statefbk.py | 58 ++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 9a71e6637..43cdbdf23 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -296,14 +296,14 @@ def acker(A, B, poles): def lqr(*args, **kwargs): - """lqr(A, B, Q, R[, N]) + r"""lqr(A, B, Q, R[, N]) Linear quadratic regulator design. The lqr() function computes the optimal state feedback controller u = -K x that minimizes the quadratic cost - .. math:: J = \\int_0^\\infty (x' Q x + u' R u + 2 x' N u) dt + .. math:: J = \int_0^\infty (x' Q x + u' R u + 2 x' N u) dt The function can be called with either 3, 4, or 5 arguments: @@ -442,14 +442,14 @@ def lqr(*args, **kwargs): def dlqr(*args, **kwargs): - """dlqr(A, B, Q, R[, N]) + r"""dlqr(A, B, Q, R[, N]) Discrete-time linear quadratic regulator design. The dlqr() function computes the optimal state feedback controller u[n] = - K x[n] that minimizes the quadratic cost - .. math:: J = \\sum_0^\\infty (x[n]' Q x[n] + u[n]' R u[n] + 2 x[n]' N u[n]) + .. math:: J = \sum_0^\infty (x[n]' Q x[n] + u[n]' R u[n] + 2 x[n]' N u[n]) The function can be called with either 3, 4, or 5 arguments: @@ -584,12 +584,12 @@ def create_statefbk_iosystem( xd_labels=None, ud_labels=None, gainsched_indices=None, gainsched_method='linear', control_indices=None, state_indices=None, name=None, inputs=None, outputs=None, states=None, **kwargs): - """Create an I/O system using a (full) state feedback controller. + r"""Create an I/O system using a (full) state feedback controller. This function creates an input/output system that implements a state feedback controller of the form - .. math :: u = u_d - K_p (x - x_d) - K_i \int(C x - C x_d) + .. math:: u = u_d - K_p (x - x_d) - K_i \int(C x - C x_d) It can be called in the form:: @@ -603,7 +603,7 @@ def create_statefbk_iosystem( gains and a corresponding list of values of a set of scheduling variables. In this case, the controller has the form - .. math :: u = u_d - K_p(\mu) (x - x_d) - K_i(\mu) \int(C x - C x_d) + .. math:: u = u_d - K_p(\mu) (x - x_d) - K_i(\mu) \int(C x - C x_d) where :math:`\mu` represents the scheduling variable. @@ -623,18 +623,18 @@ def create_statefbk_iosystem( If a tuple is given, then it specifies a gain schedule. The tuple should be of the form `(gains, points)` where gains is a list of - gains :math:`K_j` and points is a list of values :math:`\mu_j` at - which the gains are computed. The `gainsched_indices` parameter - should be used to specify the scheduling variables. + gains `K_j` and points is a list of values `mu_j` at which the + gains are computed. The `gainsched_indices` parameter should be + used to specify the scheduling variables. xd_labels, ud_labels : str or list of str, optional Set the name of the signals to use for the desired state and - inputs. If a single string is specified, it should be a - format string using the variable `i` as an index. Otherwise, - a list of strings matching the size of :math:`x_d` and :math:`u_d`, - respectively, should be used. Default is "xd[{i}]" for - xd_labels and "ud[{i}]" for ud_labels. These settings can - also be overridden using the `inputs` keyword. + inputs. If a single string is specified, it should be a format + string using the variable `i` as an index. Otherwise, a list of + strings matching the size of `x_d` and `u_d`, respectively, should + be used. Default is "xd[{i}]" for xd_labels and "ud[{i}]" for + ud_labels. These settings can also be overridden using the + `inputs` keyword. integral_action : ndarray, optional If this keyword is specified, the controller can include integral @@ -650,13 +650,13 @@ def create_statefbk_iosystem( gainsched_indices : int, slice, or list of int or str, optional If a gain scheduled controller is specified, specify the indices of the controller input to use for scheduling the gain. The input to - the controller is the desired state :math:`x_d`, the desired input :math:`u_d`, and - the system state :math:`x` (or state estimate :math:`\hat{x}`, if an estimator is - given). If value is an integer `q`, the first `q` values of the - :math:`[x_d, u_d, x]` vector are used. Otherwise, the value should be a - slice or a list of indices. The list of indices can be specified - as either integer offsets or as signal names. The default is to - use the desired state :math:`x_d`. + the controller is the desired state `x_d`, the desired input `u_d`, + and the system state `x` (or state estimate `xhat`, if an + estimator is given). If value is an integer `q`, the first `q` + values of the `[x_d, u_d, x]` vector are used. Otherwise, the + value should be a slice or a list of indices. The list of indices + can be specified as either integer offsets or as signal names. The + default is to use the desired state `x_d`. gainsched_method : str, optional The method to use for gain scheduling. Possible values are 'linear' @@ -677,10 +677,10 @@ def create_statefbk_iosystem( ------- ctrl : NonlinearIOSystem Input/output system representing the controller. This system - takes as inputs the desired state :math:`x_d`, the desired input - :math:`u_d`, and either the system state :math:`x` or the estimated state - :math:`\hat{x}`. It outputs the controller action :math:`u` according to the - formula :math:`u = u_d - K(x - x_d)`. If the keyword + takes as inputs the desired state `x_d`, the desired input + `u_d`, and either the system state `x` or the estimated state + `xhat`. It outputs the controller action `u` according to the + formula `u = u_d - K(x - x_d)`. If the keyword `integral_action` is specified, then an additional set of integrators is included in the control system (with the gain matrix `K` having the integral gains appended after the state @@ -690,8 +690,8 @@ def create_statefbk_iosystem( clsys : NonlinearIOSystem Input/output system representing the closed loop system. This - system takes as inputs the desired trajectory :math:`(x_d, u_d)` and - outputs the system state :math:`x` and the applied input :math:`u` + system takes as inputs the desired trajectory `(x_d, u_d)` and + outputs the system state `x` and the applied input `u` (vertically stacked). Other Parameters From e65750a1c89362b904efe2c0e6dbe3cfef3fdf29 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 16 Sep 2023 09:30:46 -0700 Subject: [PATCH 0358/1025] fix up equations in stochsys --- control/stochsys.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/control/stochsys.py b/control/stochsys.py index 50dacf70c..b1bb6ef46 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -36,24 +36,24 @@ # contributed by Sawyer B. Fuller def lqe(*args, **kwargs): - """lqe(A, G, C, QN, RN, [, NN]) + r"""lqe(A, G, C, QN, RN, [, NN]) Linear quadratic estimator design (Kalman filter) for continuous-time systems. Given the system .. math:: - x &= Ax + Bu + Gw \\\\ + dx/dt &= Ax + Bu + Gw \\ y &= Cx + Du + v with unbiased process noise w and measurement noise v with covariances - .. math:: E{ww'} = QN, E{vv'} = RN, E{wv'} = NN + .. math:: E\{w w^T\} = QN, E\{v v^T\} = RN, E\{w v^T\} = NN The lqe() function computes the observer gain matrix L such that the stationary (non-time-varying) Kalman filter - .. math:: x_e = A x_e + B u + L(y - C x_e - D u) + .. math:: dx_e/dt = A x_e + B u + L(y - C x_e - D u) produces a state estimate x_e that minimizes the expected squared error using the sensor measurements y. The noise cross-correlation `NN` is @@ -195,7 +195,7 @@ def dlqe(*args, **kwargs): with unbiased process noise w and measurement noise v with covariances - .. math:: E{ww'} = QN, E{vv'} = RN, E{wv'} = NN + .. math:: E\{w w^T\} = QN, E\{v v^T\} = RN, E\{w v^T\} = NN The dlqe() function computes the observer gain matrix L such that the stationary (non-time-varying) Kalman filter From aef709cda19495ba3968454bbca6cbfca0fbcd71 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 30 Jun 2023 22:30:58 -0700 Subject: [PATCH 0359/1025] initial refactoring of bode_plot --- control/frdata.py | 12 +- control/freqplot.py | 888 ++++++++++++++++++++++++++++---------------- control/lti.py | 85 +++-- control/sisotool.py | 3 +- control/timeplot.py | 8 +- 5 files changed, 636 insertions(+), 360 deletions(-) diff --git a/control/frdata.py b/control/frdata.py index 62ac64426..3aafa83db 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -54,7 +54,7 @@ from .lti import LTI, _process_frequency_response from .exception import pandas_check -from .iosys import InputOutputSystem, _process_iosys_keywords +from .iosys import InputOutputSystem, _process_iosys_keywords, common_timebase from . import config __all__ = ['FrequencyResponseData', 'FRD', 'frd'] @@ -93,6 +93,8 @@ class FrequencyResponseData(LTI): fresp : 3D array Frequency response, indexed by output index, input index, and frequency point. + dt : float, True, or None + System timebase. Notes ----- @@ -169,6 +171,7 @@ def __init__(self, *args, **kwargs): else: z = np.exp(1j * self.omega * otherlti.dt) self.fresp = otherlti(z, squeeze=False) + arg_dt = otherlti.dt else: # The user provided a response and a freq vector @@ -182,6 +185,7 @@ def __init__(self, *args, **kwargs): "The frequency data constructor needs a 1-d or 3-d" " response data array and a matching frequency vector" " size") + arg_dt = None elif len(args) == 1: # Use the copy constructor. @@ -191,6 +195,8 @@ def __init__(self, *args, **kwargs): " an FRD object. Received %s." % type(args[0])) self.omega = args[0].omega self.fresp = args[0].fresp + arg_dt = args[0].dt + else: raise ValueError( "Needs 1 or 2 arguments; received %i." % len(args)) @@ -210,9 +216,11 @@ def __init__(self, *args, **kwargs): # Process iosys keywords defaults = { - 'inputs': self.fresp.shape[1], 'outputs': self.fresp.shape[0]} + 'inputs': self.fresp.shape[1], 'outputs': self.fresp.shape[0], + 'dt': None} name, inputs, outputs, states, dt = _process_iosys_keywords( kwargs, defaults, end=True) + dt = common_timebase(dt, arg_dt) # choose compatible timebase # Process signal names InputOutputSystem.__init__( diff --git a/control/freqplot.py b/control/freqplot.py index 90b390631..6b8135ad6 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -2,6 +2,18 @@ # # Author: Richard M. Murray # Date: 24 May 09 +# +# Functionality to add +# [ ] Get rid of this long header (need some common, documented convention) +# [ ] Add mechanisms for storing/plotting margins? (currently forces FRD) +# [ ] Allow line colors/styles to be set in plot() command (also time plots) +# [ ] Allow bode or nyquist style plots from plot() +# [ ] Allow nyquist_curve() to generate the response curve (?) +# [ ] Allow MIMO frequency plots (w/ mag/phase subplots a la MATLAB) +# [ ] Update sisotool to use ax= +# [ ] Create __main__ in freqplot_test to view results (a la timeplot_test) +# [ ] Get sisotool working in iPython and document how to make it work + # # This file contains some standard control system plots: Bode plots, # Nyquist plots and pole-zero diagrams. The code for Nichols charts @@ -54,14 +66,28 @@ from .margins import stability_margins from .exception import ControlMIMONotImplemented from .statesp import StateSpace +from .lti import frequency_response from .xferfcn import TransferFunction +from .frdata import FrequencyResponseData from . import config __all__ = ['bode_plot', 'nyquist_plot', 'gangof4_plot', 'singular_values_plot', 'bode', 'nyquist', 'gangof4'] +# Default font dictionary +_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.feature_periphery_decades': 1, 'freqplot.number_of_samples': 1000, 'freqplot.dB': False, # Plot gain in dB @@ -90,55 +116,60 @@ # Bode plot # - -def bode_plot(syslist, omega=None, - plot=True, omega_limits=None, omega_num=None, - margins=None, method='best', *args, **kwargs): +def bode_plot( + data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, + plot=None, margins=None, method='best', **kwargs): """Bode plot for a system. - Plots a Bode plot for the system over a (optional) frequency range. + Bode plot of a frequency response over a (optional) frequency range. Parameters ---------- - syslist : linsys - List of linear input/output systems (single system is OK) + data : list of `FrequencyResponseData` + List of :class:`FrequencyResponseData` objects. For backward + compatibility, a list of LTI systems can also be given. omega : array_like - List of frequencies in rad/sec to be used for frequency response + List of frequencies in rad/sec over to plot over. dB : bool - If True, plot result in dB. Default is false. + If True, plot result in dB. Default is False. Hz : bool If True, plot frequency in Hz (omega must be provided in rad/sec). - Default value (False) set by config.defaults['freqplot.Hz'] + Default value (False) set by config.defaults['freqplot.Hz']. deg : bool If True, plot phase in degrees (else radians). Default value (True) - config.defaults['freqplot.deg'] - plot : bool - If True (default), plot magnitude and phase - omega_limits : array_like of two values - Limits of the to generate frequency vector. - If Hz=True the limits are in Hz otherwise in rad/s. - omega_num : int - Number of samples to plot. Defaults to - config.defaults['freqplot.number_of_samples']. + set by config.defaults['freqplot.deg']. margins : bool If True, plot gain and phase margin. - method : method to use in computing margins (see :func:`stability_margins`) - *args : :func:`matplotlib.pyplot.plot` positional properties, optional - Additional arguments for `matplotlib` plots (color, linestyle, etc) + method : str, optional + Method to use in computing margins (see :func:`stability_margins`). + *fmt : :func:`matplotlib.pyplot.plot` format string, optional + Passed to `matplotlib` as the format string for all lines in the plot. **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional - Additional keywords (passed to `matplotlib`) + Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - mag : ndarray (or list of ndarray if len(syslist) > 1)) - magnitude - phase : ndarray (or list of ndarray if len(syslist) > 1)) - phase in radians - omega : ndarray (or list of ndarray if len(syslist) > 1)) - frequency in rad/sec + out : 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. + mag : ndarray (or list of ndarray if len(data) > 1)) + If plot=False, magnitude of the respone (deprecated). + phase : ndarray (or list of ndarray if len(data) > 1)) + If plot=False, phase in radians of the respone (deprecated). + omega : ndarray (or list of ndarray if len(data) > 1)) + If plot=False, frequency in rad/sec (deprecated). Other Parameters ---------------- + plot : bool + If True (default), plot magnitude and phase. + omega_limits : array_like of two values + Limits of the to generate frequency vector. If Hz=True the limits + are in Hz otherwise in rad/s. + omega_num : int + Number of samples to plot. Defaults to + config.defaults['freqplot.number_of_samples']. grid : bool If True, plot grid lines on gain and phase plots. Default is set by `config.defaults['freqplot.grid']`. @@ -172,23 +203,25 @@ def bode_plot(syslist, omega=None, is the discrete timebase. If timebase not specified (``dt=True``), `dt` is set to 1. + 3. The legacy version of this function is invoked if instead of passing + frequency response data, a system (or list of systems) is passed as + the first argument, or if the (deprecated) keyword `plot` is set to + True or False. The return value is then given as `mag`, `phase`, + `omega` for the plotted frequency response (SISO only). + Examples -------- >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) >>> Gmag, Gphase, Gomega = ct.bode_plot(G) """ + # + # Process keywords and set defaults + # + # Make a copy of the kwargs dictionary since we will modify it kwargs = dict(kwargs) - # Check to see if legacy 'Plot' keyword was used - if 'Plot' in kwargs: - import warnings - warnings.warn("'Plot' keyword is deprecated in bode_plot; use 'plot'", - FutureWarning) - # Map 'Plot' keyword to 'plot' keyword - plot = kwargs.pop('Plot') - # Get values for params (and pop from list to allow keyword use in plot) dB = config._get_param( 'freqplot', 'dB', kwargs, _freqplot_defaults, pop=True) @@ -206,315 +239,516 @@ def bode_plot(syslist, omega=None, initial_phase = config._get_param( 'freqplot', 'initial_phase', kwargs, None, pop=True) omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) + freqplot_rcParams = config._get_param( + 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + + if not isinstance(data, (list, tuple)): + data = [data] + + # For backwards compatibility, allow systems in the data list + if all([isinstance( + sys, (StateSpace, TransferFunction)) for sys in data]): + data = frequency_response( + data, omega=omega, omega_limits=omega_limits, + omega_num=omega_num) + warnings.warn( + "passing systems to `bode_plot` is deprecated; " + "use `frequency_response()`", DeprecationWarning) + if plot is None: + plot = True # Keep track of legacy usage (see notes below) - # If argument was a singleton, turn it into a tuple - if not isinstance(syslist, (list, tuple)): - syslist = (syslist,) - - omega, omega_range_given = _determine_omega_vector( - syslist, omega, omega_limits, omega_num, Hz=Hz) + # + # Process the data to be plotted + # + # To maintain compatibility with legacy uses of bode_plot(), we do some + # initial processing on the data, specifically phase unwrapping and + # setting the initial value of the phase. If bode_plot is called with + # plot == False, then these values are returned to the user (instead of + # the list of lines created, which is the new output for _plot functions. + # + # TODO: update to match timpelot inputs/outputs structure - if plot: - # Set up the axes with labels so that multiple calls to - # bode_plot will superimpose the data. This was implicit - # before matplotlib 2.1, but changed after that (See - # https://github.com/matplotlib/matplotlib/issues/9024). - # The code below should work on all cases. - - # Get the current figure - - if 'sisotool' in kwargs: - fig = kwargs.pop('fig') - ax_mag = fig.axes[0] - ax_phase = fig.axes[2] - sisotool = kwargs.pop('sisotool') - else: - fig = plt.gcf() - ax_mag = None - ax_phase = None - sisotool = False - - # Get the current axes if they already exist - for ax in fig.axes: - if ax.get_label() == 'control-bode-magnitude': - ax_mag = ax - elif ax.get_label() == 'control-bode-phase': - ax_phase = ax - - # If no axes present, create them from scratch - if ax_mag is None or ax_phase is None: - plt.clf() - ax_mag = plt.subplot(211, label='control-bode-magnitude') - ax_phase = plt.subplot( - 212, label='control-bode-phase', sharex=ax_mag) - - mags, phases, omegas, nyquistfrqs = [], [], [], [] - for sys in syslist: - if not sys.issiso(): + mags, phases, omegas, nyquistfrqs = [], [], [], [] # TODO: remove + for response in data: + if not response.issiso(): # TODO: Add MIMO bode plots. raise ControlMIMONotImplemented( "Bode is currently only implemented for SISO systems.") - else: - omega_sys = np.asarray(omega) - if sys.isdtime(strict=True): - nyquistfrq = math.pi / sys.dt - if not omega_range_given: - # limit up to and including nyquist frequency - omega_sys = np.hstack(( - omega_sys[omega_sys < nyquistfrq], nyquistfrq)) - else: - nyquistfrq = None - mag, phase, omega_sys = sys.frequency_response(omega_sys) - mag = np.atleast_1d(mag) - phase = np.atleast_1d(phase) + mag, phase, omega_sys = response + mag = np.atleast_1d(mag) + phase = np.atleast_1d(phase) + nyquistfrq = None if response.isctime() else math.pi / response.dt - # - # Post-process the phase to handle initial value and wrapping - # + ### + ### Code below can go into plotting section, but may need to + ### duplicate in frequency_response() ?? + ### - if initial_phase is None: - # Start phase in the range 0 to -360 w/ initial phase = -180 - # If wrap_phase is true, use 0 instead (phase \in (-pi, pi]) - initial_phase_value = -math.pi if wrap_phase is not True else 0 - elif isinstance(initial_phase, (int, float)): - # Allow the user to override the default calculation - if deg: - initial_phase_value = initial_phase/180. * math.pi - else: - initial_phase_value = initial_phase + # + # Post-process the phase to handle initial value and wrapping + # + if initial_phase is None: + # Start phase in the range 0 to -360 w/ initial phase = -180 + # If wrap_phase is true, use 0 instead (phase \in (-pi, pi]) + initial_phase_value = -math.pi if wrap_phase is not True else 0 + elif isinstance(initial_phase, (int, float)): + # Allow the user to override the default calculation + if deg: + initial_phase_value = initial_phase/180. * math.pi else: - raise ValueError("initial_phase must be a number.") - - # Shift the phase if needed - if abs(phase[0] - initial_phase_value) > math.pi: - phase -= 2*math.pi * \ - round((phase[0] - initial_phase_value) / (2*math.pi)) - - # Phase wrapping - if wrap_phase is False: - phase = unwrap(phase) # unwrap the phase - elif wrap_phase is True: - pass # default calculation OK - elif isinstance(wrap_phase, (int, float)): - phase = unwrap(phase) # unwrap the phase first - if deg: - wrap_phase *= math.pi/180. + initial_phase_value = initial_phase + + else: + raise ValueError("initial_phase must be a number.") + + # Shift the phase if needed + if abs(phase[0] - initial_phase_value) > math.pi: + phase -= 2*math.pi * \ + round((phase[0] - initial_phase_value) / (2*math.pi)) + + # Phase wrapping + if wrap_phase is False: + phase = unwrap(phase) # unwrap the phase + elif wrap_phase is True: + pass # default calculation OK + elif isinstance(wrap_phase, (int, float)): + phase = unwrap(phase) # unwrap the phase first + if deg: + wrap_phase *= math.pi/180. + + # Shift the phase if it is below the wrap_phase + phase += 2*math.pi * np.maximum( + 0, np.ceil((wrap_phase - phase)/(2*math.pi))) + else: + raise ValueError("wrap_phase must be bool or float.") + + mags.append(mag) + phases.append(phase) + omegas.append(omega_sys) + nyquistfrqs.append(nyquistfrq) + # Get the dimensions of the current axis, which we will divide up + # TODO: Not current implemented; just use subplot for now + + # + # Process `plot` keyword + # + # We use the `plot` keyword to track legacy usage of `bode_plot`. + # Prior to v0.10, the `bode_plot` command returned mag, phase, and + # omega. Post v0.10, we return an array with the same shape as the + # axes we use for plotting, with each array element containing a list + # of lines drawn on that axes. + # + # There are three possibilities at this stage in the code: + # + # * plot == True: either set explicitly by the user or we were passed a + # non-FRD system instead of data. Return mag, phase, omega, with a + # warning. + # + # * plot == False: set explicitly by the user. Return mag, phase, + # omega, with a warning. + # + # * plot == None: this is the new default setting and if it hasn't been + # changed, then we use the v0.10+ standard of returning an array of + # lines that were drawn. + # + # The one case that can cause problems is that a user called + # `bode_plot` with an FRD system, didn't set the plot keyword + # explicitly, and expected mag, phase, omega as a return value. This + # is hopefully a rare case (it wasn't in any of our unit tests nor + # examples at the time of v0.10.0). + # + # All of this should be removed in v0.11+ when we get rid of deprecated + # code. + # + + if plot is True or plot is False: + warnings.warn( + "`bode_plot` return values of mag, phase, omega is deprecated; " + "use frequency_response()", DeprecationWarning) - # Shift the phase if it is below the wrap_phase - phase += 2*math.pi * np.maximum( - 0, np.ceil((wrap_phase - phase)/(2*math.pi))) + if plot is False: + if len(data) == 1: + return mags[0], phases[0], omegas[0] + else: + return mags, phases, omegas + # + # Find/create axes + # + # Data are plotted in a standard subplots array, whose size depends on + # which signals are being plotted and how they are combined. The + # baseline layout for data is to plot everything separately, with + # the magnitude and phase for each output making up the rows and the + # columns corresponding to the different inputs. + # + # Input 0 Input m + # +---------------+ +---------------+ + # | mag H_y0,u0 | ... | mag H_y0,um | + # +---------------+ +---------------+ + # +---------------+ +---------------+ + # | phase H_y0,u0 | ... | phase H_y0,um | + # +---------------+ +---------------+ + # : : + # +---------------+ +---------------+ + # | mag H_yp,u0 | ... | mag H_yp,um | + # +---------------+ +---------------+ + # +---------------+ +---------------+ + # | phase H_yp,u0 | ... | phase H_yp,um | + # +---------------+ +---------------+ + # + # Several operations are available that change this layout. + # + # * Omitting: either the magnitude or the phase plots can be omitted + # using the plot_magnitude and plot_phase keywords. + # + # * Overlay: inputs and/or outputs can be combined onto a single set of + # axes using the overlay_inputs and overlay_outputs keywords. This + # basically collapses data along either the rows or columns, and a + # legend is generated. + # + + # Decide on the number of inputs and outputs + ninputs, noutputs = 0, 0 + for response in data: + ninputs += response.ninputs + noutputs += response.noutputs + ntraces = 1 # TODO: assume 1 trace per response for now + + # Figure how how many rows and columns to use + offsets for inputs/outputs + nrows = noutputs * 2 + ncols = ninputs + + # See if we can use the current figure axes + fig = plt.gcf() # get current figure (or create new one) + if ax is None and plt.get_fignums(): + ax = fig.get_axes() + if len(ax) == nrows * ncols: + # Assume that the shape is right (no easy way to infer this) + ax = np.array(ax).reshape(nrows, ncols) + elif len(ax) != 0 and 'sisotool' not in kwargs: # TODO: remove sisotool + # Need to generate a new figure + fig, ax = plt.figure(), None + else: + # Blank figure, just need to recreate axes + ax = None + + # Create new axes, if needed, and customize them + if ax is None and 'sisotool' not in kwargs: # TODO: remove sisotool + with plt.rc_context(_freqplot_rcParams): + ax_array = fig.subplots(nrows, ncols, sharex=True, squeeze=False) + fig.set_tight_layout(True) + fig.align_labels() + + elif 'sisotool' not in kwargs: # TODO: remove sisotool + # Make sure the axes are the right shape + if ax.shape != (nrows, ncols): + raise ValueError( + "specified axes are not the right shape; " + f"got {ax.shape} but expecting ({nrows}, {ncols})") + ax_array = ax + + # Set up the axes with labels so that multiple calls to + # bode_plot will superimpose the data. This was implicit + # before matplotlib 2.1, but changed after that (See + # https://github.com/matplotlib/matplotlib/issues/9024). + # The code below should work on all cases. + # + # TODO: rewrite this code to us subplot and the ax keyword to implement + # the same functionality. + + # Get the current figure + if 'sisotool' in kwargs: + fig = kwargs.pop('fig') # redo to use ax parameter + ax_mag = fig.axes[0] + ax_phase = fig.axes[2] + sisotool = kwargs.pop('sisotool') + else: + fig = plt.gcf() + ax_mag = None + ax_phase = None + sisotool = False + + # Get the current axes if they already exist + for ax in fig.axes: + if ax.get_label() == 'control-bode-magnitude': + ax_mag = ax + elif ax.get_label() == 'control-bode-phase': + ax_phase = ax + + # If no axes present, create them from scratch + if ax_mag is None or ax_phase is None: + plt.clf() + ax_mag = plt.subplot(211, label='control-bode-magnitude') + ax_phase = plt.subplot( + 212, label='control-bode-phase', sharex=ax_mag) + + # + # Plot the data + # + # The ax_magnitude and ax_phase arrays have the axes needed for making the + # plots. Labels are used on each axes for later creation of legends. + # The generic labels if of the form: + # + # To output label, From input label, system name + # + # The input and output labels are omitted if overlay_inputs or + # overlay_outputs is False, respectively. The system name is always + # included, since multiple calls to plot() will require a legend that + # distinguishes which system signals are plotted. The system name is + # stripped off later (in the legend-handling code) if it is not needed. + # + + for mag, phase, omega_sys, nyquistfrq in \ + zip(mags, phases, omegas, nyquistfrqs): + + nyquistfrq_plot = None + if Hz: + omega_plot = omega_sys / (2. * math.pi) + if nyquistfrq: + nyquistfrq_plot = nyquistfrq / (2. * math.pi) + else: + omega_plot = omega_sys + if nyquistfrq: + nyquistfrq_plot = nyquistfrq + phase_plot = phase * 180. / math.pi if deg else phase + mag_plot = mag + + if nyquistfrq_plot: + # append data for vertical nyquist freq indicator line. + # if this extra nyquist line is is plotted in a single plot + # command then line order is preserved when + # creating a legend eg. legend(('sys1', 'sys2')) + omega_nyq_line = np.array( + (np.nan, nyquistfrq_plot, nyquistfrq_plot)) + omega_plot = np.hstack((omega_plot, omega_nyq_line)) + mag_nyq_line = np.array(( + np.nan, 0.7*min(mag_plot), 1.3*max(mag_plot))) + mag_plot = np.hstack((mag_plot, mag_nyq_line)) + phase_range = max(phase_plot) - min(phase_plot) + phase_nyq_line = np.array( + (np.nan, + min(phase_plot) - 0.2 * phase_range, + max(phase_plot) + 0.2 * phase_range)) + phase_plot = np.hstack((phase_plot, phase_nyq_line)) + + # Magnitude + if dB: + ax_mag.semilogx(omega_plot, 20 * np.log10(mag_plot), + *fmt, **kwargs) + else: + ax_mag.loglog(omega_plot, mag_plot, *fmt, **kwargs) + + # Add a grid to the plot + labeling + ax_mag.grid(grid and not margins, which='both') + ax_mag.set_ylabel("Magnitude (dB)" if dB else "Magnitude") + + # Phase + ax_phase.semilogx(omega_plot, phase_plot, *fmt, **kwargs) + + # + # Plot gain and phase margins + # + + # Show the phase and gain margins in the plot + if margins: + # Compute stability margins for the system + margin = stability_margins(response, method=method) + gm, pm, Wcg, Wcp = (margin[i] for i in (0, 1, 3, 4)) + + # Figure out sign of the phase at the first gain crossing + # (needed if phase_wrap is True) + phase_at_cp = phases[0][(np.abs(omegas[0] - Wcp)).argmin()] + if phase_at_cp >= 0.: + phase_limit = 180. else: - raise ValueError("wrap_phase must be bool or float.") - - mags.append(mag) - phases.append(phase) - omegas.append(omega_sys) - nyquistfrqs.append(nyquistfrq) - # Get the dimensions of the current axis, which we will divide up - # TODO: Not current implemented; just use subplot for now - - if plot: - nyquistfrq_plot = None - if Hz: - omega_plot = omega_sys / (2. * math.pi) - if nyquistfrq: - nyquistfrq_plot = nyquistfrq / (2. * math.pi) + phase_limit = -180. + + if Hz: + Wcg, Wcp = Wcg/(2*math.pi), Wcp/(2*math.pi) + + # Draw lines at gain and phase limits + ax_mag.axhline(y=0 if dB else 1, color='k', linestyle=':', + zorder=-20) + ax_phase.axhline(y=phase_limit if deg else + math.radians(phase_limit), + color='k', linestyle=':', zorder=-20) + mag_ylim = ax_mag.get_ylim() + phase_ylim = ax_phase.get_ylim() + + # Annotate the phase margin (if it exists) + if pm != float('inf') and Wcp != float('nan'): + if dB: + ax_mag.semilogx( + [Wcp, Wcp], [0., -1e5], + color='k', linestyle=':', zorder=-20) else: - omega_plot = omega_sys - if nyquistfrq: - nyquistfrq_plot = nyquistfrq - phase_plot = phase * 180. / math.pi if deg else phase - mag_plot = mag - - if nyquistfrq_plot: - # append data for vertical nyquist freq indicator line. - # if this extra nyquist lime is is plotted in a single plot - # command then line order is preserved when - # creating a legend eg. legend(('sys1', 'sys2')) - omega_nyq_line = np.array( - (np.nan, nyquistfrq_plot, nyquistfrq_plot)) - omega_plot = np.hstack((omega_plot, omega_nyq_line)) - mag_nyq_line = np.array(( - np.nan, 0.7*min(mag_plot), 1.3*max(mag_plot))) - mag_plot = np.hstack((mag_plot, mag_nyq_line)) - phase_range = max(phase_plot) - min(phase_plot) - phase_nyq_line = np.array( - (np.nan, - min(phase_plot) - 0.2 * phase_range, - max(phase_plot) + 0.2 * phase_range)) - phase_plot = np.hstack((phase_plot, phase_nyq_line)) - - # - # Magnitude plot - # + ax_mag.loglog( + [Wcp, Wcp], [1., 1e-8], + color='k', linestyle=':', zorder=-20) + if deg: + ax_phase.semilogx( + [Wcp, Wcp], [1e5, phase_limit + pm], + color='k', linestyle=':', zorder=-20) + ax_phase.semilogx( + [Wcp, Wcp], [phase_limit + pm, phase_limit], + color='k', zorder=-20) + else: + ax_phase.semilogx( + [Wcp, Wcp], [1e5, math.radians(phase_limit) + + math.radians(pm)], + color='k', linestyle=':', zorder=-20) + ax_phase.semilogx( + [Wcp, Wcp], [math.radians(phase_limit) + + math.radians(pm), + math.radians(phase_limit)], + color='k', zorder=-20) + + # Annotate the gain margin (if it exists) + if gm != float('inf') and Wcg != float('nan'): if dB: - ax_mag.semilogx(omega_plot, 20 * np.log10(mag_plot), - *args, **kwargs) + ax_mag.semilogx( + [Wcg, Wcg], [-20.*np.log10(gm), -1e5], + color='k', linestyle=':', zorder=-20) + ax_mag.semilogx( + [Wcg, Wcg], [0, -20*np.log10(gm)], + color='k', zorder=-20) else: - ax_mag.loglog(omega_plot, mag_plot, *args, **kwargs) - - # Add a grid to the plot + labeling - ax_mag.grid(grid and not margins, which='both') - ax_mag.set_ylabel("Magnitude (dB)" if dB else "Magnitude") - - # - # Phase plot - # - - # Plot the data - ax_phase.semilogx(omega_plot, phase_plot, *args, **kwargs) - - # Show the phase and gain margins in the plot - if margins: - # Compute stability margins for the system - margin = stability_margins(sys, method=method) - gm, pm, Wcg, Wcp = (margin[i] for i in (0, 1, 3, 4)) - - # Figure out sign of the phase at the first gain crossing - # (needed if phase_wrap is True) - phase_at_cp = phases[0][(np.abs(omegas[0] - Wcp)).argmin()] - if phase_at_cp >= 0.: - phase_limit = 180. - else: - phase_limit = -180. - - if Hz: - Wcg, Wcp = Wcg/(2*math.pi), Wcp/(2*math.pi) - - # Draw lines at gain and phase limits - ax_mag.axhline(y=0 if dB else 1, color='k', linestyle=':', - zorder=-20) - ax_phase.axhline(y=phase_limit if deg else - math.radians(phase_limit), - color='k', linestyle=':', zorder=-20) - mag_ylim = ax_mag.get_ylim() - phase_ylim = ax_phase.get_ylim() - - # Annotate the phase margin (if it exists) - if pm != float('inf') and Wcp != float('nan'): - if dB: - ax_mag.semilogx( - [Wcp, Wcp], [0., -1e5], - color='k', linestyle=':', zorder=-20) - else: - ax_mag.loglog( - [Wcp, Wcp], [1., 1e-8], - color='k', linestyle=':', zorder=-20) - - if deg: - ax_phase.semilogx( - [Wcp, Wcp], [1e5, phase_limit + pm], - color='k', linestyle=':', zorder=-20) - ax_phase.semilogx( - [Wcp, Wcp], [phase_limit + pm, phase_limit], - color='k', zorder=-20) - else: - ax_phase.semilogx( - [Wcp, Wcp], [1e5, math.radians(phase_limit) + - math.radians(pm)], - color='k', linestyle=':', zorder=-20) - ax_phase.semilogx( - [Wcp, Wcp], [math.radians(phase_limit) + - math.radians(pm), - math.radians(phase_limit)], - color='k', zorder=-20) - - # Annotate the gain margin (if it exists) - if gm != float('inf') and Wcg != float('nan'): - if dB: - ax_mag.semilogx( - [Wcg, Wcg], [-20.*np.log10(gm), -1e5], - color='k', linestyle=':', zorder=-20) - ax_mag.semilogx( - [Wcg, Wcg], [0, -20*np.log10(gm)], - color='k', zorder=-20) - else: - ax_mag.loglog( - [Wcg, Wcg], [1./gm, 1e-8], color='k', - linestyle=':', zorder=-20) - ax_mag.loglog( - [Wcg, Wcg], [1., 1./gm], color='k', zorder=-20) - - if deg: - ax_phase.semilogx( - [Wcg, Wcg], [0, phase_limit], - color='k', linestyle=':', zorder=-20) - else: - ax_phase.semilogx( - [Wcg, Wcg], [0, math.radians(phase_limit)], - color='k', linestyle=':', zorder=-20) - - ax_mag.set_ylim(mag_ylim) - ax_phase.set_ylim(phase_ylim) - - if sisotool: - ax_mag.text( - 0.04, 0.06, - 'G.M.: %.2f %s\nFreq: %.2f %s' % - (20*np.log10(gm) if dB else gm, - 'dB ' if dB else '', - Wcg, 'Hz' if Hz else 'rad/s'), - horizontalalignment='left', - verticalalignment='bottom', - transform=ax_mag.transAxes, - fontsize=8 if int(mpl.__version__[0]) == 1 else 6) - ax_phase.text( - 0.04, 0.06, - 'P.M.: %.2f %s\nFreq: %.2f %s' % - (pm if deg else math.radians(pm), - 'deg' if deg else 'rad', - Wcp, 'Hz' if Hz else 'rad/s'), - horizontalalignment='left', - verticalalignment='bottom', - transform=ax_phase.transAxes, - fontsize=8 if int(mpl.__version__[0]) == 1 else 6) - else: - plt.suptitle( - "Gm = %.2f %s(at %.2f %s), " - "Pm = %.2f %s (at %.2f %s)" % - (20*np.log10(gm) if dB else gm, - 'dB ' if dB else '', - Wcg, 'Hz' if Hz else 'rad/s', - pm if deg else math.radians(pm), - 'deg' if deg else 'rad', - Wcp, 'Hz' if Hz else 'rad/s')) - - # Add a grid to the plot + labeling - ax_phase.set_ylabel("Phase (deg)" if deg else "Phase (rad)") - - def gen_zero_centered_series(val_min, val_max, period): - v1 = np.ceil(val_min / period - 0.2) - v2 = np.floor(val_max / period + 0.2) - return np.arange(v1, v2 + 1) * period + ax_mag.loglog( + [Wcg, Wcg], [1./gm, 1e-8], color='k', + linestyle=':', zorder=-20) + ax_mag.loglog( + [Wcg, Wcg], [1., 1./gm], color='k', zorder=-20) + if deg: - ylim = ax_phase.get_ylim() - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], 45.)) - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], 15.), minor=True) + ax_phase.semilogx( + [Wcg, Wcg], [0, phase_limit], + color='k', linestyle=':', zorder=-20) else: - ylim = ax_phase.get_ylim() - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], math.pi / 4.)) - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], math.pi / 12.), minor=True) - ax_phase.grid(grid and not margins, which='both') - # ax_mag.grid(which='minor', alpha=0.3) - # ax_mag.grid(which='major', alpha=0.9) - # ax_phase.grid(which='minor', alpha=0.3) - # ax_phase.grid(which='major', alpha=0.9) - - # Label the frequency axis - ax_phase.set_xlabel("Frequency (Hz)" if Hz - else "Frequency (rad/sec)") + ax_phase.semilogx( + [Wcg, Wcg], [0, math.radians(phase_limit)], + color='k', linestyle=':', zorder=-20) + + ax_mag.set_ylim(mag_ylim) + ax_phase.set_ylim(phase_ylim) + + if sisotool: + ax_mag.text( + 0.04, 0.06, + 'G.M.: %.2f %s\nFreq: %.2f %s' % + (20*np.log10(gm) if dB else gm, + 'dB ' if dB else '', + Wcg, 'Hz' if Hz else 'rad/s'), + horizontalalignment='left', + verticalalignment='bottom', + transform=ax_mag.transAxes, + fontsize=8 if int(mpl.__version__[0]) == 1 else 6) + ax_phase.text( + 0.04, 0.06, + 'P.M.: %.2f %s\nFreq: %.2f %s' % + (pm if deg else math.radians(pm), + 'deg' if deg else 'rad', + Wcp, 'Hz' if Hz else 'rad/s'), + horizontalalignment='left', + verticalalignment='bottom', + transform=ax_phase.transAxes, + fontsize=8 if int(mpl.__version__[0]) == 1 else 6) + else: + plt.suptitle( + "Gm = %.2f %s(at %.2f %s), " + "Pm = %.2f %s (at %.2f %s)" % + (20*np.log10(gm) if dB else gm, + 'dB ' if dB else '', + Wcg, 'Hz' if Hz else 'rad/s', + pm if deg else math.radians(pm), + 'deg' if deg else 'rad', + Wcp, 'Hz' if Hz else 'rad/s')) + + # Add a grid to the plot + labeling + ax_phase.set_ylabel("Phase (deg)" if deg else "Phase (rad)") + + def gen_zero_centered_series(val_min, val_max, period): + v1 = np.ceil(val_min / period - 0.2) + v2 = np.floor(val_max / period + 0.2) + return np.arange(v1, v2 + 1) * period + if deg: + ylim = ax_phase.get_ylim() + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], 45.)) + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], 15.), minor=True) + else: + ylim = ax_phase.get_ylim() + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], math.pi / 4.)) + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], math.pi / 12.), minor=True) + ax_phase.grid(grid and not margins, which='both') + # ax_mag.grid(which='minor', alpha=0.3) + # ax_mag.grid(which='major', alpha=0.9) + # ax_phase.grid(which='minor', alpha=0.3) + # ax_phase.grid(which='major', alpha=0.9) + + # Label the frequency axis + ax_phase.set_xlabel("Frequency (Hz)" if Hz + else "Frequency (rad/sec)") - if len(syslist) == 1: - return mags[0], phases[0], omegas[0] - else: - return mags, phases, omegas + # + # Label the axes (including trace labels) + # + # Once the data are plotted, we label the axes. The horizontal axes is + # always frequency and this is labeled only on the bottom most row. The + # vertical axes can consist either of a single signal or a combination + # of signals (when overlay_inputs or overlay_outputs is True) + # + # Input/output signals are give at the top of columns and left of rows + # when these are individually plotted. + # + + pass + + # + # Create legends + # + # Legends can be placed manually by passing a legend_map 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). + # + # If no legend spec is passed, a minimal number of legends are used so + # that each line in each axis can be uniquely identified. The details + # depends on the various plotting parameters, but the general rule is + # to place legends in the top row and right column. + # + # Because plots can be built up by multiple calls to plot(), the legend + # strings are created from the line labels manually. Thus an initial + # call to plot() may not generate any legends (eg, if no signals are + # overlaid), but subsequent calls to plot() will need a legend for each + # different response (system). + # + + pass + + # + # Update the plot title (= figure suptitle) + # + # If plots are built up by multiple calls to plot() and the title is + # not given, then the title is updated to provide a list of unique text + # items in each successive title. For data generated by the frequency + # response function this will generate a common prefix followed by a + # list of systems (e.g., "Step response for sys[1], sys[2]"). + # + + pass + + if plot is True: # legacy usage; remove in future release + if len(data) == 1: + return mags[0], phases[0], omegas[0] + else: + return mags, phases, omegas + + return None # TODO: replace with ax # diff --git a/control/lti.py b/control/lti.py index efbc7c15b..4db2df128 100644 --- a/control/lti.py +++ b/control/lti.py @@ -5,6 +5,7 @@ """ import numpy as np +import math from numpy import real, angle, abs from warnings import warn @@ -56,16 +57,16 @@ def damp(self): zeta = -real(splane_poles)/wn return wn, zeta, poles - def frequency_response(self, omega, squeeze=None): + def frequency_response(self, omega=None, squeeze=None): """Evaluate the linear time-invariant system at an array of angular frequencies. - Reports the frequency response of the system, + For continuous time systems, computes the frequency response as G(j*omega) = mag * exp(j*phase) - for continuous time systems. For discrete time systems, the response - is evaluated around the unit circle such that + For discrete time systems, the response is evaluated around the + unit circle such that G(exp(j*omega*dt)) = mag * exp(j*phase). @@ -87,23 +88,25 @@ def frequency_response(self, omega, squeeze=None): Returns ------- - response : :class:`FrequencyReponseData` + response : :class:`FrequencyResponseData` Frequency response data object representing the frequency response. This object can be assigned to a tuple using mag, phase, omega = response - where ``mag`` is the magnitude (absolute value, not dB or - log10) of the system frequency response, ``phase`` is the wrapped - phase in radians of the system frequency response, and ``omega`` - is the (sorted) frequencies at which the response was evaluated. + where ``mag`` is the magnitude (absolute value, not dB or log10) + of the system frequency response, ``phase`` is the wrapped phase + in radians of the system frequency response, and ``omega`` is + the (sorted) frequencies at which the response was evaluated. If the system is SISO and squeeze is not True, ``magnitude`` and - ``phase`` are 1D, indexed by frequency. If the system is not SISO - or squeeze is False, the array is 3D, indexed by the output, - input, and frequency. If ``squeeze`` is True then - single-dimensional axes are removed. + ``phase`` are 1D, indexed by frequency. If the system is not + SISO or squeeze is False, the array is 3D, indexed by the + output, input, and, if omega is array_like, frequency. If + ``squeeze`` is True then single-dimensional axes are removed. """ + from .frdata import FrequencyResponseData + omega = np.sort(np.array(omega, ndmin=1)) if self.isdtime(strict=True): # Convert the frequency to discrete time @@ -114,10 +117,9 @@ def frequency_response(self, omega, squeeze=None): s = 1j * omega # Return the data as a frequency response data object - from .frdata import FrequencyResponseData response = self(s) return FrequencyResponseData( - response, omega, return_magphase=True, squeeze=squeeze) + response, omega, return_magphase=True, squeeze=squeeze, dt=self.dt) def dcgain(self): """Return the zero-frequency gain""" @@ -368,7 +370,8 @@ def evalfr(sys, x, squeeze=None): return sys(x, squeeze=squeeze) -def frequency_response(sys, omega, squeeze=None): +def frequency_response( + sys, omega=None, omega_limits=None, omega_num=None, squeeze=None): """Frequency response of an LTI system at multiple angular frequencies. In general the system may be multiple input, multiple output (MIMO), where @@ -377,12 +380,13 @@ def frequency_response(sys, omega, squeeze=None): Parameters ---------- - sys: StateSpace or TransferFunction - Linear system - omega : float or 1D array_like + sys: LTI system or list of LTI systems + Linear system(s) for which frequency response is computed. + omega : float or 1D array_like, optional A list of frequencies in radians/sec at which the system should be - evaluated. The list can be either a python list or a numpy array - and will be sorted before evaluation. + evaluated. The list can be either a Python list or a numpy array + and will be sorted before evaluation. If None (default), a common + set of frequencies that works across all systems is computed. squeeze : bool, optional If squeeze=True, remove single-dimensional entries from the shape of the output even if the system is not SISO. If squeeze=False, keep all @@ -392,7 +396,7 @@ def frequency_response(sys, omega, squeeze=None): Returns ------- - response : FrequencyResponseData + response : :class:`FrequencyResponseData` Frequency response data object representing the frequency response. This object can be assigned to a tuple using @@ -402,12 +406,15 @@ def frequency_response(sys, omega, squeeze=None): the system frequency response, ``phase`` is the wrapped phase in radians of the system frequency response, and ``omega`` is the (sorted) frequencies at which the response was evaluated. If the - system is SISO and squeeze is not True, ``magnitude`` and ``phase`` + system is SISO and squeeze is not False, ``magnitude`` and ``phase`` are 1D, indexed by frequency. If the system is not SISO or squeeze is False, the array is 3D, indexed by the output, input, and frequency. If ``squeeze`` is True then single-dimensional axes are removed. + Returns a list of :class:`FrequencyResponseData` objects if sys is + a list of systems. + See Also -------- evalfr @@ -438,11 +445,37 @@ def frequency_response(sys, omega, squeeze=None): #>>> # s = 0.1i, i, 10i. """ - return sys.frequency_response(omega, squeeze=squeeze) - + from .freqplot import _determine_omega_vector + + # Convert the first argument to a list + syslist = sys if isinstance(sys, (list, tuple)) else [sys] + + # Get the common set of frequencies to use + omega_syslist, omega_range_given = _determine_omega_vector( + syslist, omega, omega_limits, omega_num) + + responses = [] + for sys_ in syslist: + # Add the Nyquist frequency for discrete time systems + omega_sys = omega_syslist.copy() + if sys_.isdtime(strict=True): + nyquistfrq = math.pi / sys_.dt + if not omega_range_given: + # limit up to and including nyquist frequency + # TODO: make this optional? + omega_sys = np.hstack(( + omega_sys[omega_sys < nyquistfrq], nyquistfrq)) + + # Compute the frequency response + responses.append(sys_.frequency_response(omega_sys, squeeze=squeeze)) + + return responses if isinstance(sys, (list, tuple)) else responses[0] # Alternative name (legacy) -freqresp = frequency_response +def freqresp(sys, omega): + """Legacy version of frequency_response.""" + warn("freqresp is deprecated; use frequency_response", DeprecationWarning) + return frequency_response(sys, omega) def dcgain(sys): diff --git a/control/sisotool.py b/control/sisotool.py index 0ba94d498..0e43f6ef4 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -4,6 +4,7 @@ from .freqplot import bode_plot from .timeresp import step_response from .iosys import common_timebase, isctime, isdtime +from .lti import frequency_response from .xferfcn import tf from .statesp import ss, summing_junction from .bdalg import append, connect @@ -146,7 +147,7 @@ def _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect=None): sys_loop = sys if sys.issiso() else sys[0,0] # Update the bodeplot - bode_plot_params['syslist'] = sys_loop*K.real + bode_plot_params['data'] = frequency_response(sys_loop*K.real) bode_plot(**bode_plot_params) # Set the titles and labels diff --git a/control/timeplot.py b/control/timeplot.py index 6409a6660..b6966fa16 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -220,7 +220,7 @@ def time_response_plot( # # * Omitting: either the inputs or the outputs can be omitted. # - # * Combining: inputs, outputs, and traces can be combined onto a + # * Overlay: inputs, outputs, and traces can be combined onto a # single set of axes using various keyword combinations # (overlay_signals, overlay_traces, plot_inputs='overlay'). This # basically collapses data along either the rows or columns, and a @@ -340,11 +340,11 @@ def time_response_plot( # # The ax_output and ax_input arrays have the axes needed for making the # plots. Labels are used on each axes for later creation of legends. - # The gneric labels if of the form: + # The generic labels if of the form: # # signal name, trace label, system name # - # The signal name or tracel label can be omitted if they will appear on + # The signal name or trace label can be omitted if they will appear on # the axes title or ylabel. The system name is always included, since # multiple calls to plot() will require a legend that distinguishes # which system signals are plotted. The system name is stripped off @@ -440,7 +440,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Label the axes (including trace labels) # # Once the data are plotted, we label the axes. The horizontal axes is - # always time and this is labeled only on the bottom most column. The + # always time and this is labeled only on the bottom most row. The # vertical axes can consist either of a single signal or a combination # of signals (when overlay_signal is True or plot+inputs = 'overlay'. # From 530d689c430d731f433344fb24d69c6ca6903dda Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 4 Jul 2023 07:08:18 -0700 Subject: [PATCH 0360/1025] update sisotool to use ax for bode_plot --- control/freqplot.py | 47 ++++++++++------------------------ control/sisotool.py | 8 +++--- control/tests/sisotool_test.py | 6 ++--- 3 files changed, 21 insertions(+), 40 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 6b8135ad6..6cd1afaef 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -118,7 +118,7 @@ def bode_plot( data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, - plot=None, margins=None, method='best', **kwargs): + plot=None, margins=None, margin_info=False, method='best', **kwargs): """Bode plot for a system. Bode plot of a frequency response over a (optional) frequency range. @@ -139,7 +139,9 @@ def bode_plot( If True, plot phase in degrees (else radians). Default value (True) set by config.defaults['freqplot.deg']. margins : bool - If True, plot gain and phase margin. + If True, plot gain and phase margin. (TODO: merge with margin_info) + margin_info : bool + If True, plot information about gain and phase margin. method : str, optional Method to use in computing margins (see :func:`stability_margins`). *fmt : :func:`matplotlib.pyplot.plot` format string, optional @@ -410,9 +412,9 @@ def bode_plot( # Decide on the number of inputs and outputs ninputs, noutputs = 0, 0 - for response in data: - ninputs += response.ninputs - noutputs += response.noutputs + for response in data: # TODO: make more pythonic/numpic + ninputs = max(ninputs, response.ninputs) + noutputs = max(noutputs, response.noutputs) ntraces = 1 # TODO: assume 1 trace per response for now # Figure how how many rows and columns to use + offsets for inputs/outputs @@ -426,7 +428,7 @@ def bode_plot( if len(ax) == nrows * ncols: # Assume that the shape is right (no easy way to infer this) ax = np.array(ax).reshape(nrows, ncols) - elif len(ax) != 0 and 'sisotool' not in kwargs: # TODO: remove sisotool + elif len(ax) != 0: # Need to generate a new figure fig, ax = plt.figure(), None else: @@ -434,13 +436,13 @@ def bode_plot( ax = None # Create new axes, if needed, and customize them - if ax is None and 'sisotool' not in kwargs: # TODO: remove sisotool + if ax is None: with plt.rc_context(_freqplot_rcParams): ax_array = fig.subplots(nrows, ncols, sharex=True, squeeze=False) fig.set_tight_layout(True) fig.align_labels() - elif 'sisotool' not in kwargs: # TODO: remove sisotool + else: # Make sure the axes are the right shape if ax.shape != (nrows, ncols): raise ValueError( @@ -457,31 +459,8 @@ def bode_plot( # TODO: rewrite this code to us subplot and the ax keyword to implement # the same functionality. - # Get the current figure - if 'sisotool' in kwargs: - fig = kwargs.pop('fig') # redo to use ax parameter - ax_mag = fig.axes[0] - ax_phase = fig.axes[2] - sisotool = kwargs.pop('sisotool') - else: - fig = plt.gcf() - ax_mag = None - ax_phase = None - sisotool = False - - # Get the current axes if they already exist - for ax in fig.axes: - if ax.get_label() == 'control-bode-magnitude': - ax_mag = ax - elif ax.get_label() == 'control-bode-phase': - ax_phase = ax - - # If no axes present, create them from scratch - if ax_mag is None or ax_phase is None: - plt.clf() - ax_mag = plt.subplot(211, label='control-bode-magnitude') - ax_phase = plt.subplot( - 212, label='control-bode-phase', sharex=ax_mag) + ax_mag = ax_array[0, 0] + ax_phase = ax_array[1, 0] # # Plot the data @@ -633,7 +612,7 @@ def bode_plot( ax_mag.set_ylim(mag_ylim) ax_phase.set_ylim(phase_ylim) - if sisotool: + if margin_info: ax_mag.text( 0.04, 0.06, 'G.M.: %.2f %s\nFreq: %.2f %s' % diff --git a/control/sisotool.py b/control/sisotool.py index 0e43f6ef4..a66160cef 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -100,6 +100,8 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, plt.close(fig) fig,axes = plt.subplots(2, 2) fig.canvas.manager.set_window_title('Sisotool') + else: + axes = np.array(fig.get_axes()).reshape(2, 2) # Extract bode plot parameters bode_plot_params = { @@ -109,9 +111,9 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, 'deg': deg, 'omega_limits': omega_limits, 'omega_num' : omega_num, - 'sisotool': True, - 'fig': fig, - 'margins': margins_bode + 'ax': axes[:, 0:1], + 'margins': margins_bode, + 'margin_info': True, } # Check to see if legacy 'PrintGain' keyword was used diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index 2327440df..5a86c73d0 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -78,9 +78,9 @@ def test_sisotool(self, tsys): 'deg': True, 'omega_limits': None, 'omega_num': None, - 'sisotool': True, - 'fig': fig, - 'margins': True + 'ax': np.array([[ax_mag], [ax_phase]]), + 'margins': True, + 'margin_info': True, } # Check that the xaxes of the bode plot are shared before the rlocus click From c3ebbdac0d61f643ac65b7f103c2de967f02c329 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 4 Jul 2023 13:24:47 -0700 Subject: [PATCH 0361/1025] updated bode_plot titling + MIMO implementation --- control/frdata.py | 14 + control/freqplot.py | 612 ++++++++++++++++++++------------- control/lti.py | 3 +- control/tests/freqplot_test.py | 68 ++++ control/tests/freqresp_test.py | 5 +- control/tests/kwargs_test.py | 15 +- control/timeplot.py | 54 +-- 7 files changed, 504 insertions(+), 267 deletions(-) create mode 100644 control/tests/freqplot_test.py diff --git a/control/frdata.py b/control/frdata.py index 3aafa83db..f431966d1 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -78,6 +78,8 @@ class FrequencyResponseData(LTI): corresponding to the frequency points in omega w : iterable of real frequencies List of frequency points for which data are available. + sysname : str or None + Name of the system that generated the data. smooth : bool, optional If ``True``, create an interpolation function that allows the frequency response to be computed at any frequency within the range of @@ -204,6 +206,10 @@ def __init__(self, *args, **kwargs): # # Process key word arguments # + + # If data was generated by a system, keep track of that + self.sysname = kwargs.pop('sysname', None) + # Keep track of return type self.return_magphase=kwargs.pop('return_magphase', False) if self.return_magphase not in (True, False): @@ -638,6 +644,14 @@ def feedback(self, other=1, sign=-1): return FRD(fresp, other.omega, smooth=(self.ifunc is not None)) + # Plotting interface + def plot(self, *args, **kwargs): + from .freqplot import bode_plot + + # For now, only support Bode plots + # TODO: add 'kind' keyword and Nyquist plots (?) + bode_plot(self, *args, **kwargs) + # Convert to pandas def to_pandas(self): if not pandas_check(): diff --git a/control/freqplot.py b/control/freqplot.py index 6cd1afaef..fa698474b 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -53,22 +53,26 @@ # # $Id$ +# TODO: clean up imports import math +from os.path import commonprefix import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np import warnings from math import nan +import itertools from .ctrlutil import unwrap from .bdalg import feedback from .margins import stability_margins from .exception import ControlMIMONotImplemented from .statesp import StateSpace -from .lti import frequency_response +from .lti import frequency_response, _process_frequency_response from .xferfcn import TransferFunction from .frdata import FrequencyResponseData +from .timeplot import _make_legend_labels from . import config __all__ = ['bode_plot', 'nyquist_plot', 'gangof4_plot', 'singular_values_plot', @@ -95,6 +99,7 @@ 'freqplot.Hz': False, # Plot frequency in Hertz 'freqplot.grid': True, # Turn on grid for gain and phase 'freqplot.wrap_phase': False, # Wrap the phase plot at a given value + 'freqplot.freq_label': "Frequency [%s]", # deprecations 'deprecated.bode.dB': 'freqplot.dB', @@ -118,7 +123,9 @@ def bode_plot( data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, - plot=None, margins=None, margin_info=False, method='best', **kwargs): + plot=None, plot_magnitude=True, plot_phase=True, margins=None, + margin_info=False, method='best', legend_map=None, legend_loc=None, + title=None, relabel=True, **kwargs): """Bode plot for a system. Bode plot of a frequency response over a (optional) frequency range. @@ -243,6 +250,8 @@ def bode_plot( omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) freqplot_rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + freq_label = config._get_param( + 'freqplot', 'freq_label', kwargs, _freqplot_defaults, pop=True) if not isinstance(data, (list, tuple)): data = [data] @@ -270,16 +279,19 @@ def bode_plot( # # TODO: update to match timpelot inputs/outputs structure - mags, phases, omegas, nyquistfrqs = [], [], [], [] # TODO: remove - for response in data: - if not response.issiso(): - # TODO: Add MIMO bode plots. - raise ControlMIMONotImplemented( - "Bode is currently only implemented for SISO systems.") + if not plot_magnitude and not plot_phase: + raise ValueError( + "plot_magnitude and plot_phase both False; no data to plot") + mags, phases, omegas, nyquistfrqs = [], [], [], [] + sysnames = [] + for response in data: mag, phase, omega_sys = response mag = np.atleast_1d(mag) phase = np.atleast_1d(phase) + # mag, phase = response.magnitude, response.phase # TODO: use this + noutputs, ninputs = response.noutputs, response.ninputs + omega_sys = response.omega nyquistfrq = None if response.isctime() else math.pi / response.dt ### @@ -292,7 +304,8 @@ def bode_plot( # if initial_phase is None: - # Start phase in the range 0 to -360 w/ initial phase = -180 + # Start phase in the range 0 to -360 w/ initial phase = 0 + # TODO: change this to 0 to 270 (?) # If wrap_phase is true, use 0 instead (phase \in (-pi, pi]) initial_phase_value = -math.pi if wrap_phase is not True else 0 elif isinstance(initial_phase, (int, float)): @@ -305,33 +318,38 @@ def bode_plot( else: raise ValueError("initial_phase must be a number.") - # Shift the phase if needed - if abs(phase[0] - initial_phase_value) > math.pi: - phase -= 2*math.pi * \ - round((phase[0] - initial_phase_value) / (2*math.pi)) - - # Phase wrapping - if wrap_phase is False: - phase = unwrap(phase) # unwrap the phase - elif wrap_phase is True: - pass # default calculation OK - elif isinstance(wrap_phase, (int, float)): - phase = unwrap(phase) # unwrap the phase first - if deg: - wrap_phase *= math.pi/180. + # TODO: hack to make sure that SISO case still works properly + my_phase = phase.reshape((noutputs, ninputs, -1)) # TODO: remove + for i, j in itertools.product(range(noutputs), range(ninputs)): + # Shift the phase if needed + if abs(my_phase[i, j, 0] - initial_phase_value) > math.pi: + my_phase[i, j] -= 2*math.pi * round( + (my_phase[i, j, 0] - initial_phase_value) / (2*math.pi)) + + # Phase wrapping + if wrap_phase is False: + my_phase[i, j] = unwrap(my_phase[i, j]) # unwrap the phase + elif wrap_phase is True: + pass # default calc OK + elif isinstance(wrap_phase, (int, float)): + my_phase[i, j] = unwrap(my_phase[i, j]) # unwrap phase first + if deg: + wrap_phase *= math.pi/180. - # Shift the phase if it is below the wrap_phase - phase += 2*math.pi * np.maximum( - 0, np.ceil((wrap_phase - phase)/(2*math.pi))) - else: - raise ValueError("wrap_phase must be bool or float.") + # Shift the phase if it is below the wrap_phase + my_phase[i, j] += 2*math.pi * np.maximum( + 0, np.ceil((wrap_phase - my_phase[i, j])/(2*math.pi))) + else: + raise ValueError("wrap_phase must be bool or float.") + phase = my_phase.reshape(phase.shape) # TODO: remove mags.append(mag) phases.append(phase) omegas.append(omega_sys) nyquistfrqs.append(nyquistfrq) - # Get the dimensions of the current axis, which we will divide up - # TODO: Not current implemented; just use subplot for now + + # Save the system names for later + sysnames.append(response.sysname) # # Process `plot` keyword @@ -418,7 +436,8 @@ def bode_plot( ntraces = 1 # TODO: assume 1 trace per response for now # Figure how how many rows and columns to use + offsets for inputs/outputs - nrows = noutputs * 2 + nrows = (noutputs if plot_magnitude else 0) + \ + (noutputs if plot_phase else 0) ncols = ninputs # See if we can use the current figure axes @@ -435,10 +454,16 @@ def bode_plot( # Blank figure, just need to recreate axes ax = None + # 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 + # Create new axes, if needed, and customize them if ax is None: with plt.rc_context(_freqplot_rcParams): - ax_array = fig.subplots(nrows, ncols, sharex=True, squeeze=False) + ax_array = fig.subplots( + nrows, ncols, sharex='col', sharey='row', squeeze=False) fig.set_tight_layout(True) fig.align_labels() @@ -450,18 +475,6 @@ def bode_plot( f"got {ax.shape} but expecting ({nrows}, {ncols})") ax_array = ax - # Set up the axes with labels so that multiple calls to - # bode_plot will superimpose the data. This was implicit - # before matplotlib 2.1, but changed after that (See - # https://github.com/matplotlib/matplotlib/issues/9024). - # The code below should work on all cases. - # - # TODO: rewrite this code to us subplot and the ax keyword to implement - # the same functionality. - - ax_mag = ax_array[0, 0] - ax_phase = ax_array[1, 0] - # # Plot the data # @@ -478,200 +491,259 @@ def bode_plot( # stripped off later (in the legend-handling code) if it is not needed. # - for mag, phase, omega_sys, nyquistfrq in \ - zip(mags, phases, omegas, nyquistfrqs): - - nyquistfrq_plot = None - if Hz: - omega_plot = omega_sys / (2. * math.pi) - if nyquistfrq: - nyquistfrq_plot = nyquistfrq / (2. * math.pi) - else: - omega_plot = omega_sys - if nyquistfrq: - nyquistfrq_plot = nyquistfrq - phase_plot = phase * 180. / math.pi if deg else phase - mag_plot = mag - - if nyquistfrq_plot: - # append data for vertical nyquist freq indicator line. - # if this extra nyquist line is is plotted in a single plot - # command then line order is preserved when - # creating a legend eg. legend(('sys1', 'sys2')) - omega_nyq_line = np.array( - (np.nan, nyquistfrq_plot, nyquistfrq_plot)) - omega_plot = np.hstack((omega_plot, omega_nyq_line)) - mag_nyq_line = np.array(( - np.nan, 0.7*min(mag_plot), 1.3*max(mag_plot))) - mag_plot = np.hstack((mag_plot, mag_nyq_line)) - phase_range = max(phase_plot) - min(phase_plot) - phase_nyq_line = np.array( - (np.nan, - min(phase_plot) - 0.2 * phase_range, - max(phase_plot) + 0.2 * phase_range)) - phase_plot = np.hstack((phase_plot, phase_nyq_line)) - - # Magnitude - if dB: - ax_mag.semilogx(omega_plot, 20 * np.log10(mag_plot), - *fmt, **kwargs) - else: - ax_mag.loglog(omega_plot, mag_plot, *fmt, **kwargs) - - # Add a grid to the plot + labeling - ax_mag.grid(grid and not margins, which='both') - ax_mag.set_ylabel("Magnitude (dB)" if dB else "Magnitude") + for mag, phase, omega_sys, nyquistfrq, sysname in \ + zip(mags, phases, omegas, nyquistfrqs, sysnames): - # Phase - ax_phase.semilogx(omega_plot, phase_plot, *fmt, **kwargs) - - # - # Plot gain and phase margins - # + # TODO: hack to handle MIMO while not breaking SISO + my_mag = mag.reshape((noutputs, ninputs, -1)) + my_phase = phase.reshape((noutputs, ninputs, -1)) + for i, j in itertools.product( + range(my_mag.shape[0]), range(my_mag.shape[1])): + if plot_magnitude: + ax_mag = ax_array[i*2 if plot_phase else i, j] + if plot_phase: + ax_phase = ax_array[i*2 + 1 if plot_magnitude else i, j] - # Show the phase and gain margins in the plot - if margins: - # Compute stability margins for the system - margin = stability_margins(response, method=method) - gm, pm, Wcg, Wcp = (margin[i] for i in (0, 1, 3, 4)) - - # Figure out sign of the phase at the first gain crossing - # (needed if phase_wrap is True) - phase_at_cp = phases[0][(np.abs(omegas[0] - Wcp)).argmin()] - if phase_at_cp >= 0.: - phase_limit = 180. + nyquistfrq_plot = None + if Hz: + omega_plot = omega_sys / (2. * math.pi) + if nyquistfrq: + nyquistfrq_plot = nyquistfrq / (2. * math.pi) else: - phase_limit = -180. + omega_plot = omega_sys + if nyquistfrq: + nyquistfrq_plot = nyquistfrq - if Hz: - Wcg, Wcp = Wcg/(2*math.pi), Wcp/(2*math.pi) - - # Draw lines at gain and phase limits - ax_mag.axhline(y=0 if dB else 1, color='k', linestyle=':', - zorder=-20) - ax_phase.axhline(y=phase_limit if deg else - math.radians(phase_limit), - color='k', linestyle=':', zorder=-20) - mag_ylim = ax_mag.get_ylim() - phase_ylim = ax_phase.get_ylim() - - # Annotate the phase margin (if it exists) - if pm != float('inf') and Wcp != float('nan'): + phase_plot = my_phase[i, j] * 180. / math.pi if deg \ + else my_phase[i, j] + mag_plot = my_mag[i, j] + + if nyquistfrq_plot: + # append data for vertical nyquist freq indicator line. + # if this extra nyquist line is is plotted in a single plot + # command then line order is preserved when + # creating a legend eg. legend(('sys1', 'sys2')) + omega_nyq_line = np.array( + (np.nan, nyquistfrq_plot, nyquistfrq_plot)) + omega_plot = np.hstack((omega_plot, omega_nyq_line)) + mag_nyq_line = np.array(( + np.nan, 0.7*min(mag_plot), 1.3*max(mag_plot))) + mag_plot = np.hstack((mag_plot, mag_nyq_line)) + phase_range = max(phase_plot) - min(phase_plot) + phase_nyq_line = np.array( + (np.nan, + min(phase_plot) - 0.2 * phase_range, + max(phase_plot) + 0.2 * phase_range)) + phase_plot = np.hstack((phase_plot, phase_nyq_line)) + + # Magnitude + if plot_magnitude: if dB: ax_mag.semilogx( - [Wcp, Wcp], [0., -1e5], - color='k', linestyle=':', zorder=-20) + omega_plot, 20 * np.log10(mag_plot), *fmt, + label=sysname, **kwargs) else: ax_mag.loglog( - [Wcp, Wcp], [1., 1e-8], - color='k', linestyle=':', zorder=-20) + omega_plot, mag_plot, *fmt, label=sysname, **kwargs) - if deg: - ax_phase.semilogx( - [Wcp, Wcp], [1e5, phase_limit + pm], - color='k', linestyle=':', zorder=-20) - ax_phase.semilogx( - [Wcp, Wcp], [phase_limit + pm, phase_limit], - color='k', zorder=-20) + # Add a grid to the plot + labeling + ax_mag.grid(grid and not margins, which='both') + + # Phase + if plot_phase: + ax_phase.semilogx( + omega_plot, phase_plot, *fmt, label=sysname, **kwargs) + + # + # Plot gain and phase margins + # + + # Show the phase and gain margins in the plot + if margins: + # Compute stability margins for the system + margin = stability_margins(response, method=method) + gm, pm, Wcg, Wcp = (margin[i] for i in [0, 1, 3, 4]) + + # Figure out sign of the phase at the first gain crossing + # (needed if phase_wrap is True) + phase_at_cp = phases[0][(np.abs(omegas[0] - Wcp)).argmin()] + if phase_at_cp >= 0.: + phase_limit = 180. else: - ax_phase.semilogx( - [Wcp, Wcp], [1e5, math.radians(phase_limit) + - math.radians(pm)], - color='k', linestyle=':', zorder=-20) - ax_phase.semilogx( - [Wcp, Wcp], [math.radians(phase_limit) + - math.radians(pm), - math.radians(phase_limit)], - color='k', zorder=-20) - - # Annotate the gain margin (if it exists) - if gm != float('inf') and Wcg != float('nan'): - if dB: - ax_mag.semilogx( - [Wcg, Wcg], [-20.*np.log10(gm), -1e5], - color='k', linestyle=':', zorder=-20) - ax_mag.semilogx( - [Wcg, Wcg], [0, -20*np.log10(gm)], - color='k', zorder=-20) + phase_limit = -180. + + if Hz: + Wcg, Wcp = Wcg/(2*math.pi), Wcp/(2*math.pi) + + # Draw lines at gain and phase limits + if plot_magnitude: + ax_mag.axhline(y=0 if dB else 1, color='k', linestyle=':', + zorder=-20) + mag_ylim = ax_mag.get_ylim() + + if plot_phase: + ax_phase.axhline(y=phase_limit if deg else + math.radians(phase_limit), + color='k', linestyle=':', zorder=-20) + phase_ylim = ax_phase.get_ylim() + + # Annotate the phase margin (if it exists) + if plot_phase and pm != float('inf') and Wcp != float('nan'): + if dB: + ax_mag.semilogx( + [Wcp, Wcp], [0., -1e5], + color='k', linestyle=':', zorder=-20) + else: + ax_mag.loglog( + [Wcp, Wcp], [1., 1e-8], + color='k', linestyle=':', zorder=-20) + + if deg: + ax_phase.semilogx( + [Wcp, Wcp], [1e5, phase_limit + pm], + color='k', linestyle=':', zorder=-20) + ax_phase.semilogx( + [Wcp, Wcp], [phase_limit + pm, phase_limit], + color='k', zorder=-20) + else: + ax_phase.semilogx( + [Wcp, Wcp], [1e5, math.radians(phase_limit) + + math.radians(pm)], + color='k', linestyle=':', zorder=-20) + ax_phase.semilogx( + [Wcp, Wcp], [math.radians(phase_limit) + + math.radians(pm), + math.radians(phase_limit)], + color='k', zorder=-20) + + ax_phase.set_ylim(phase_ylim) + + # Annotate the gain margin (if it exists) + if plot_magnitude and gm != float('inf') and \ + Wcg != float('nan'): + if dB: + ax_mag.semilogx( + [Wcg, Wcg], [-20.*np.log10(gm), -1e5], + color='k', linestyle=':', zorder=-20) + ax_mag.semilogx( + [Wcg, Wcg], [0, -20*np.log10(gm)], + color='k', zorder=-20) + else: + ax_mag.loglog( + [Wcg, Wcg], [1./gm, 1e-8], color='k', + linestyle=':', zorder=-20) + ax_mag.loglog( + [Wcg, Wcg], [1., 1./gm], color='k', zorder=-20) + + if plot_phase: + if deg: + ax_phase.semilogx( + [Wcg, Wcg], [0, phase_limit], + color='k', linestyle=':', zorder=-20) + else: + ax_phase.semilogx( + [Wcg, Wcg], [0, math.radians(phase_limit)], + color='k', linestyle=':', zorder=-20) + + ax_mag.set_ylim(mag_ylim) + ax_phase.set_ylim(phase_ylim) + + if margin_info: + if plot_magnitude: + ax_mag.text( + 0.04, 0.06, + 'G.M.: %.2f %s\nFreq: %.2f %s' % + (20*np.log10(gm) if dB else gm, + 'dB ' if dB else '', + Wcg, 'Hz' if Hz else 'rad/s'), + horizontalalignment='left', + verticalalignment='bottom', + transform=ax_mag.transAxes, + fontsize=8 if int(mpl.__version__[0]) == 1 else 6) + if plot_phase: + ax_phase.text( + 0.04, 0.06, + 'P.M.: %.2f %s\nFreq: %.2f %s' % + (pm if deg else math.radians(pm), + 'deg' if deg else 'rad', + Wcp, 'Hz' if Hz else 'rad/s'), + horizontalalignment='left', + verticalalignment='bottom', + transform=ax_phase.transAxes, + fontsize=8 if int(mpl.__version__[0]) == 1 else 6) else: - ax_mag.loglog( - [Wcg, Wcg], [1./gm, 1e-8], color='k', - linestyle=':', zorder=-20) - ax_mag.loglog( - [Wcg, Wcg], [1., 1./gm], color='k', zorder=-20) - + # TODO: gets overwritten below + plt.suptitle( + "Gm = %.2f %s(at %.2f %s), " + "Pm = %.2f %s (at %.2f %s)" % + (20*np.log10(gm) if dB else gm, + 'dB ' if dB else '', + Wcg, 'Hz' if Hz else 'rad/s', + pm if deg else math.radians(pm), + 'deg' if deg else 'rad', + Wcp, 'Hz' if Hz else 'rad/s')) + + def gen_zero_centered_series(val_min, val_max, period): + v1 = np.ceil(val_min / period - 0.2) + v2 = np.floor(val_max / period + 0.2) + return np.arange(v1, v2 + 1) * period + + # TODO: what is going on here + # TODO: fix to use less dense labels, when needed + if plot_phase: if deg: - ax_phase.semilogx( - [Wcg, Wcg], [0, phase_limit], - color='k', linestyle=':', zorder=-20) + ylim = ax_phase.get_ylim() + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], 45.)) + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], 15.), minor=True) else: - ax_phase.semilogx( - [Wcg, Wcg], [0, math.radians(phase_limit)], - color='k', linestyle=':', zorder=-20) - - ax_mag.set_ylim(mag_ylim) - ax_phase.set_ylim(phase_ylim) - - if margin_info: - ax_mag.text( - 0.04, 0.06, - 'G.M.: %.2f %s\nFreq: %.2f %s' % - (20*np.log10(gm) if dB else gm, - 'dB ' if dB else '', - Wcg, 'Hz' if Hz else 'rad/s'), - horizontalalignment='left', - verticalalignment='bottom', - transform=ax_mag.transAxes, - fontsize=8 if int(mpl.__version__[0]) == 1 else 6) - ax_phase.text( - 0.04, 0.06, - 'P.M.: %.2f %s\nFreq: %.2f %s' % - (pm if deg else math.radians(pm), - 'deg' if deg else 'rad', - Wcp, 'Hz' if Hz else 'rad/s'), - horizontalalignment='left', - verticalalignment='bottom', - transform=ax_phase.transAxes, - fontsize=8 if int(mpl.__version__[0]) == 1 else 6) - else: - plt.suptitle( - "Gm = %.2f %s(at %.2f %s), " - "Pm = %.2f %s (at %.2f %s)" % - (20*np.log10(gm) if dB else gm, - 'dB ' if dB else '', - Wcg, 'Hz' if Hz else 'rad/s', - pm if deg else math.radians(pm), - 'deg' if deg else 'rad', - Wcp, 'Hz' if Hz else 'rad/s')) - - # Add a grid to the plot + labeling - ax_phase.set_ylabel("Phase (deg)" if deg else "Phase (rad)") - - def gen_zero_centered_series(val_min, val_max, period): - v1 = np.ceil(val_min / period - 0.2) - v2 = np.floor(val_max / period + 0.2) - return np.arange(v1, v2 + 1) * period - if deg: - ylim = ax_phase.get_ylim() - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], 45.)) - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], 15.), minor=True) - else: - ylim = ax_phase.get_ylim() - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], math.pi / 4.)) - ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], math.pi / 12.), minor=True) - ax_phase.grid(grid and not margins, which='both') - # ax_mag.grid(which='minor', alpha=0.3) - # ax_mag.grid(which='major', alpha=0.9) - # ax_phase.grid(which='minor', alpha=0.3) - # ax_phase.grid(which='major', alpha=0.9) + ylim = ax_phase.get_ylim() + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], math.pi / 4.)) + ax_phase.set_yticks(gen_zero_centered_series( + ylim[0], ylim[1], math.pi / 12.), minor=True) - # Label the frequency axis - ax_phase.set_xlabel("Frequency (Hz)" if Hz - else "Frequency (rad/sec)") + ax_phase.grid(grid and not margins, which='both') + + # + # Update the plot title (= figure suptitle) + # + # If plots are built up by multiple calls to plot() and the title is + # not given, then the title is updated to provide a list of unique text + # items in each successive title. For data generated by the frequency + # response function this will generate a common prefix followed by a + # list of systems (e.g., "Step response for sys[1], sys[2]"). + # + + # Set the initial title for the data + sysnames = list(set(sysnames)) # get rid of duplicates + if title is None: + title = "Bode plot for " + ", ".join(sysnames) + + if fig is not None and title is not None: + # Get the current title, if it exists + old_title = None if fig._suptitle is None else fig._suptitle._text + new_title = title + + if old_title is not None: + # Find the common part of the titles + common_prefix = commonprefix([old_title, new_title]) + + # Back up to the last space + last_space = common_prefix.rfind(' ') + if last_space > 0: + common_prefix = common_prefix[:last_space] + common_len = len(common_prefix) + + # Add the new part of the title (usually the system name) + if old_title[common_len:] != new_title[common_len:]: + separator = ',' if len(common_prefix) > 0 else ';' + new_title = old_title + separator + new_title[common_len:] + + # Add the title + with plt.rc_context(freqplot_rcParams): + fig.suptitle(new_title) # # Label the axes (including trace labels) @@ -685,7 +757,62 @@ def gen_zero_centered_series(val_min, val_max, period): # when these are individually plotted. # - pass + # Label the columns (do this first to get row labels in the right spot) + for j in range(ninputs): + # If we have more than one column, label the individual responses + if noutputs > 1 or ninputs > 1: + with plt.rc_context(_freqplot_rcParams): + ax_array[0, j].set_title(f"From {data[0].input_labels[j]}") + + # Label the frequency axis + ax_array[-1, j].set_xlabel(freq_label % ("Hz" if Hz else "rad/s",)) + + # Label the rows + for i in range(noutputs): + if plot_magnitude: + ax_mag = ax_array[i*2 if plot_phase else i, 0] + ax_mag.set_ylabel("Magnitude (dB)" if dB else "Magnitude") + if plot_phase: + ax_phase = ax_array[i*2 + 1 if plot_magnitude else i, 0] + ax_phase.set_ylabel("Phase (deg)" if deg else "Phase (rad)") + + if noutputs > 1 or ninputs > 1: + if plot_magnitude and plot_phase: + # Get existing ylabel for left column and add a blank line + ax_mag.set_ylabel("\n" + ax_mag.get_ylabel()) + ax_phase.set_ylabel("\n" + ax_phase.get_ylabel()) + + # TODO: remove? + # Redraw the figure to get the proper locations for everything + # fig.tight_layout() + + # Get the bounding box including the labels + inv_transform = fig.transFigure.inverted() + mag_bbox = inv_transform.transform( + ax_mag.get_tightbbox(fig.canvas.get_renderer())) + phase_bbox = inv_transform.transform( + ax_phase.get_tightbbox(fig.canvas.get_renderer())) + + # Get the axes limits without labels for use in the y position + mag_bot = inv_transform.transform( + ax_mag.transAxes.transform((0, 0)))[1] + phase_top = inv_transform.transform( + ax_phase.transAxes.transform((0, 1)))[1] + + # Figure out location for the text (center left in figure frame) + xpos = mag_bbox[0, 0] # left edge + ypos = (mag_bot + phase_top) / 2 # centered between axes + + # Put a centered label as text outside the box + fig.text( + 0.8 * xpos, ypos, f"To {data[0].output_labels[i]}\n", + rotation=90, ha='left', va='center', + fontsize=_freqplot_rcParams['axes.titlesize']) + else: + # Only a single axes => add label to the left + ax_array[i, 0].set_ylabel( + f"To {data[0].output_labels[i]}\n" + + ax_array[i, 0].get_ylabel()) # # Create legends @@ -707,20 +834,33 @@ def gen_zero_centered_series(val_min, val_max, period): # different response (system). # - pass + # 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' - # - # Update the plot title (= figure suptitle) - # - # If plots are built up by multiple calls to plot() and the title is - # not given, then the title is updated to provide a list of unique text - # items in each successive title. For data generated by the frequency - # response function this will generate a common prefix followed by a - # list of systems (e.g., "Step response for sys[1], sys[2]"). - # + # TODO: add in additional processing later + + # Put legend in the upper right + legend_map[0, -1] = legend_loc + + # Create axis legends + for i in range(nrows): + for j in range(ncols): + ax = ax_array[i, j] + # Get the labels to use, removing common strings + labels = _make_legend_labels( + [line.get_label() for line in ax.get_lines()]) - pass + # Generate the label, if needed + if len(labels) > 1 and legend_map[i, j] != None: + with plt.rc_context(freqplot_rcParams): + ax.legend(labels, loc=legend_map[i, j]) + # + # Legacy return pocessing + # if plot is True: # legacy usage; remove in future release if len(data) == 1: return mags[0], phases[0], omegas[0] diff --git a/control/lti.py b/control/lti.py index 4db2df128..62eabd69d 100644 --- a/control/lti.py +++ b/control/lti.py @@ -119,7 +119,8 @@ def frequency_response(self, omega=None, squeeze=None): # Return the data as a frequency response data object response = self(s) return FrequencyResponseData( - response, omega, return_magphase=True, squeeze=squeeze, dt=self.dt) + response, omega, return_magphase=True, squeeze=squeeze, dt=self.dt, + sysname=self.name) def dcgain(self): """Return the zero-frequency gain""" diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py new file mode 100644 index 000000000..aa2fb9dc0 --- /dev/null +++ b/control/tests/freqplot_test.py @@ -0,0 +1,68 @@ +# 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 + +from control.tests.conftest import slycotonly +pytestmark = pytest.mark.usefixtures("mplcleanup") + +def test_basic_freq_plots(savefigs=False): + # Basic SISO Bode plot + plt.figure() + # ct.frequency_response(sys_siso).plot() + sys1 = ct.tf([1], [1, 2, 1], name='System 1') + sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='System 2') + response = ct.frequency_response([sys1, sys2]) + ct.bode_plot(response) + if savefigs: + plt.savefig('freqplot-siso_bode-default.png') + + # Basic MIMO Bode plot + plt.figure() + 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") + ct.frequency_response(sys_mimo).plot() + if savefigs: + plt.savefig('freqplot-mimo_bode-default.png') + + # Magnitude only plot + plt.figure() + ct.frequency_response(sys_mimo).plot(plot_phase=False) + if savefigs: + plt.savefig('freqplot-mimo_bode-magonly.png') + + # Phase only plot + plt.figure() + ct.frequency_response(sys_mimo).plot(plot_magnitude=False) + + +if __name__ == "__main__": + # + # Interactive mode: generate plots for manual viewing + # + # Running this script in python (or better ipython) will show a + # collection of figures that should all look OK on the screeen. + # + + # In interactive mode, turn on ipython interactive graphics + plt.ion() + + # Start by clearing existing figures + plt.close('all') + + # Define and run a selected set of interesting tests + # TODO: TBD (see timeplot_test.py for format) + + test_basic_freq_plots(savefigs=True) + + # + # Run a few more special cases to show off capabilities (and save some + # of them for use in the documentation). + # + + pass diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index 9fc52112a..746e694be 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -273,8 +273,9 @@ def test_discrete(dsystem_type): else: # Calling bode should generate a not implemented error - with pytest.raises(NotImplementedError): - bode((dsys,)) + # with pytest.raises(NotImplementedError): + # TODO: check results + bode((dsys,)) def test_options(editsdefaults): diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 19f4bb627..2f111f590 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -164,18 +164,22 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): @pytest.mark.parametrize( - "function", [control.time_response_plot, control.TimeResponseData.plot]) -def test_time_response_plot_kwargs(function): + "data_fcn, plot_fcn", [ + (control.step_response, control.time_response_plot), + (control.step_response, control.TimeResponseData.plot), + (control.frequency_response, control.FrequencyResponseData.plot), + ]) +def test_response_plot_kwargs(data_fcn, plot_fcn): # Create a system for testing - response = control.step_response(control.rss(4, 2, 2)) + response = data_fcn(control.rss(4, 2, 2)) # Call the plotting function normally and make sure it works - function(response) + plot_fcn(response) # Now add an unrecognized keyword and make sure there is an error with pytest.raises(AttributeError, match="(has no property|unexpected keyword)"): - function(response, unknown=None) + plot_fcn(response, unknown=None) # @@ -234,6 +238,7 @@ def test_time_response_plot_kwargs(function): 'flatsys.FlatSystem.__init__': test_unrecognized_kwargs, 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, + 'FrequencyResponseData.plot': test_response_plot_kwargs, 'InputOutputSystem.__init__': test_unrecognized_kwargs, 'flatsys.LinearFlatSystem.__init__': test_unrecognized_kwargs, 'NonlinearIOSystem.linearize': test_unrecognized_kwargs, diff --git a/control/timeplot.py b/control/timeplot.py index b6966fa16..c2a384888 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -604,35 +604,14 @@ def _make_line_label(signal_index, signal_labels, trace_index): ax = ax_array[i, j] # Get the labels to use labels = [line.get_label() for line in ax.get_lines()] - - # Look for a common prefix (up to a space) - common_prefix = commonprefix(labels) - last_space = common_prefix.rfind(', ') - if last_space < 0 or plot_inputs == 'overlay': - common_prefix = '' - elif last_space > 0: - common_prefix = common_prefix[:last_space] - prefix_len = len(common_prefix) - - # Look for a common suffice (up to a space) - common_suffix = commonprefix( - [label[::-1] for label in labels])[::-1] - suffix_len = len(common_suffix) - # Only chop things off after a comma or space - while suffix_len > 0 and common_suffix[-suffix_len] != ',': - suffix_len -= 1 - - # Strip the labels of common information - if suffix_len > 0: - labels = [label[prefix_len:-suffix_len] for label in labels] - else: - labels = [label[prefix_len:] for label in labels] + labels = _make_legend_labels(labels, plot_inputs == 'overlay') # Update the labels to remove common strings if len(labels) > 1 and legend_map[i, j] != None: with plt.rc_context(timeplot_rcParams): ax.legend(labels, loc=legend_map[i, j]) + # # Update the plot title (= figure suptitle) # @@ -806,3 +785,32 @@ def get_plot_axes(line_array): """ _get_axes = np.vectorize(lambda lines: lines[0].axes) return _get_axes(line_array) + + +# Utility function to make legend labels +def _make_legend_labels(labels, ignore_common=False): + + # Look for a common prefix (up to a space) + common_prefix = commonprefix(labels) + last_space = common_prefix.rfind(', ') + if last_space < 0 or ignore_common: + common_prefix = '' + elif last_space > 0: + common_prefix = common_prefix[:last_space] + prefix_len = len(common_prefix) + + # Look for a common suffice (up to a space) + common_suffix = commonprefix( + [label[::-1] for label in labels])[::-1] + suffix_len = len(common_suffix) + # Only chop things off after a comma or space + while suffix_len > 0 and common_suffix[-suffix_len] != ',': + suffix_len -= 1 + + # Strip the labels of common information + if suffix_len > 0: + labels = [label[prefix_len:-suffix_len] for label in labels] + else: + labels = [label[prefix_len:] for label in labels] + + return labels From a7e995135ecc0a86c03c9b640281e921f086697e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 6 Jul 2023 22:01:22 -0700 Subject: [PATCH 0362/1025] gangof4 refactoring into response/plot + related bode_plot changes --- control/frdata.py | 6 +- control/freqplot.py | 751 ++++++++++++++++----------- control/matlab/__init__.py | 1 + control/matlab/wrappers.py | 27 +- control/tests/config_test.py | 5 + control/tests/conftest.py | 16 +- control/tests/convert_test.py | 1 + control/tests/discrete_test.py | 1 + control/tests/freqplot_test.py | 167 +++++- control/tests/freqresp_test.py | 32 +- control/tests/kwargs_test.py | 15 +- control/tests/slycot_convert_test.py | 1 + 12 files changed, 687 insertions(+), 336 deletions(-) diff --git a/control/frdata.py b/control/frdata.py index f431966d1..e3b8a3a33 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -210,6 +210,10 @@ def __init__(self, *args, **kwargs): # If data was generated by a system, keep track of that self.sysname = kwargs.pop('sysname', None) + # Keep track of default properties for plotting + self.plot_phase=kwargs.pop('plot_phase', None) + self.title=kwargs.pop('title', None) + # Keep track of return type self.return_magphase=kwargs.pop('return_magphase', False) if self.return_magphase not in (True, False): @@ -650,7 +654,7 @@ def plot(self, *args, **kwargs): # For now, only support Bode plots # TODO: add 'kind' keyword and Nyquist plots (?) - bode_plot(self, *args, **kwargs) + return bode_plot(self, *args, **kwargs) # Convert to pandas def to_pandas(self): diff --git a/control/freqplot.py b/control/freqplot.py index fa698474b..7cc79d5f1 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -8,11 +8,18 @@ # [ ] Add mechanisms for storing/plotting margins? (currently forces FRD) # [ ] Allow line colors/styles to be set in plot() command (also time plots) # [ ] Allow bode or nyquist style plots from plot() -# [ ] Allow nyquist_curve() to generate the response curve (?) -# [ ] Allow MIMO frequency plots (w/ mag/phase subplots a la MATLAB) -# [ ] Update sisotool to use ax= -# [ ] Create __main__ in freqplot_test to view results (a la timeplot_test) +# [ ] Allow nyquist_response() to generate the response curve (?) +# [i] Allow MIMO frequency plots (w/ mag/phase subplots a la MATLAB) +# [i] Update sisotool to use ax= +# [i] Create __main__ in freqplot_test to view results (a la timeplot_test) # [ ] Get sisotool working in iPython and document how to make it work +# [i] Allow share_magnitude, share_phase, share_frequency keywords for units +# [ ] Re-implement including of gain/phase margin in the title (?) +# [i] Change gangof4 to use bode_plot(plot_phase=False) w/ proper labels +# [ ] Allow use of subplot labels instead of output/input subtitles +# [ ] Add line labels to gangof4 +# [ ] Update FRD to allow nyquist_response contours +# [ ] Allow frequency range to be overridden in bode_plot # # This file contains some standard control system plots: Bode plots, @@ -75,8 +82,9 @@ from .timeplot import _make_legend_labels from . import config -__all__ = ['bode_plot', 'nyquist_plot', 'gangof4_plot', 'singular_values_plot', - 'bode', 'nyquist', 'gangof4'] +__all__ = ['bode_plot', 'nyquist_plot', 'singular_values_plot', + 'gangof4_plot', 'gangof4_response', 'bode', 'nyquist', + 'gangof4'] # Default font dictionary _freqplot_rcParams = mpl.rcParams.copy() @@ -100,6 +108,9 @@ 'freqplot.grid': True, # Turn on grid for gain and phase 'freqplot.wrap_phase': False, # Wrap the phase plot at a given value 'freqplot.freq_label': "Frequency [%s]", + 'freqplot.share_magnitude': 'row', + 'freqplot.share_phase': 'row', + 'freqplot.share_frequency': 'col', # deprecations 'deprecated.bode.dB': 'freqplot.dB', @@ -123,9 +134,9 @@ def bode_plot( data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, - plot=None, plot_magnitude=True, plot_phase=True, margins=None, + plot=None, plot_magnitude=True, plot_phase=None, margins=None, margin_info=False, method='best', legend_map=None, legend_loc=None, - title=None, relabel=True, **kwargs): + sharex=None, sharey=None, title=None, relabel=True, **kwargs): """Bode plot for a system. Bode plot of a frequency response over a (optional) frequency range. @@ -240,7 +251,6 @@ def bode_plot( 'freqplot', 'Hz', kwargs, _freqplot_defaults, pop=True) grid = config._get_param( 'freqplot', 'grid', kwargs, _freqplot_defaults, pop=True) - plot = config._get_param('freqplot', 'plot', plot, True) margins = config._get_param( 'freqplot', 'margins', margins, False) wrap_phase = config._get_param( @@ -253,6 +263,19 @@ def bode_plot( freq_label = config._get_param( 'freqplot', 'freq_label', kwargs, _freqplot_defaults, pop=True) + # Use sharex and sharey as proxies for share_{magnitude, phase, frequency} + if sharey is not None: + if 'share_magnitude' in kwargs or 'share_phase' in kwargs: + ValueError( + "sharey cannot be present with share_magnitude/share_phase") + kwargs['share_magnitude'] = sharey + kwargs['share_phase'] = sharey + if sharex is not None: + if 'share_frequency' in kwargs: + ValueError( + "sharex cannot be present with share_frequency") + kwargs['share_frequency'] = sharex + if not isinstance(data, (list, tuple)): data = [data] @@ -269,7 +292,7 @@ def bode_plot( plot = True # Keep track of legacy usage (see notes below) # - # Process the data to be plotted + # Pre-process the data to be plotted (unwrap phase) # # To maintain compatibility with legacy uses of bode_plot(), we do some # initial processing on the data, specifically phase unwrapping and @@ -277,31 +300,19 @@ def bode_plot( # plot == False, then these values are returned to the user (instead of # the list of lines created, which is the new output for _plot functions. # - # TODO: update to match timpelot inputs/outputs structure + + # If plot_phase is not specified, check the data first, otherwise true + if plot_phase is None: + plot_phase = True if data[0].plot_phase is None else data[0].plot_phase if not plot_magnitude and not plot_phase: raise ValueError( "plot_magnitude and plot_phase both False; no data to plot") - mags, phases, omegas, nyquistfrqs = [], [], [], [] - sysnames = [] + mag_data, phase_data, omega_data = [], [], [] for response in data: - mag, phase, omega_sys = response - mag = np.atleast_1d(mag) - phase = np.atleast_1d(phase) - # mag, phase = response.magnitude, response.phase # TODO: use this + phase = response.phase.copy() noutputs, ninputs = response.noutputs, response.ninputs - omega_sys = response.omega - nyquistfrq = None if response.isctime() else math.pi / response.dt - - ### - ### Code below can go into plotting section, but may need to - ### duplicate in frequency_response() ?? - ### - - # - # Post-process the phase to handle initial value and wrapping - # if initial_phase is None: # Start phase in the range 0 to -360 w/ initial phase = 0 @@ -314,42 +325,42 @@ def bode_plot( initial_phase_value = initial_phase/180. * math.pi else: initial_phase_value = initial_phase - else: raise ValueError("initial_phase must be a number.") - # TODO: hack to make sure that SISO case still works properly - my_phase = phase.reshape((noutputs, ninputs, -1)) # TODO: remove + # Reshape the phase to allow standard indexing + phase = phase.reshape((noutputs, ninputs, -1)) + + # Shift and wrap for i, j in itertools.product(range(noutputs), range(ninputs)): # Shift the phase if needed - if abs(my_phase[i, j, 0] - initial_phase_value) > math.pi: - my_phase[i, j] -= 2*math.pi * round( - (my_phase[i, j, 0] - initial_phase_value) / (2*math.pi)) + if abs(phase[i, j, 0] - initial_phase_value) > math.pi: + phase[i, j] -= 2*math.pi * round( + (phase[i, j, 0] - initial_phase_value) / (2*math.pi)) # Phase wrapping if wrap_phase is False: - my_phase[i, j] = unwrap(my_phase[i, j]) # unwrap the phase + phase[i, j] = unwrap(phase[i, j]) # unwrap the phase elif wrap_phase is True: pass # default calc OK elif isinstance(wrap_phase, (int, float)): - my_phase[i, j] = unwrap(my_phase[i, j]) # unwrap phase first + phase[i, j] = unwrap(phase[i, j]) # unwrap phase first if deg: wrap_phase *= math.pi/180. # Shift the phase if it is below the wrap_phase - my_phase[i, j] += 2*math.pi * np.maximum( - 0, np.ceil((wrap_phase - my_phase[i, j])/(2*math.pi))) + phase[i, j] += 2*math.pi * np.maximum( + 0, np.ceil((wrap_phase - phase[i, j])/(2*math.pi))) else: raise ValueError("wrap_phase must be bool or float.") - phase = my_phase.reshape(phase.shape) # TODO: remove - mags.append(mag) - phases.append(phase) - omegas.append(omega_sys) - nyquistfrqs.append(nyquistfrq) + # Put the phase back into the original shape + phase = phase.reshape(response.magnitude.shape) - # Save the system names for later - sysnames.append(response.sysname) + # Save the data for later use (legacy return values) + mag_data.append(response.magnitude) + phase_data.append(phase) + omega_data.append(response.omega) # # Process `plot` keyword @@ -389,10 +400,17 @@ def bode_plot( "use frequency_response()", DeprecationWarning) if plot is False: + # Process the data to match what we were sent + for i in range(len(mag_data)): + mag_data[i] = _process_frequency_response( + data[i], omega_data[i], mag_data[i], squeeze=data[i].squeeze) + phase_data[i] = _process_frequency_response( + data[i], omega_data[i], phase_data[i], squeeze=data[i].squeeze) + if len(data) == 1: - return mags[0], phases[0], omegas[0] + return mag_data[0], phase_data[0], omega_data[0] else: - return mags, phases, omegas + return mag_data, phase_data, omega_data # # Find/create axes # @@ -428,12 +446,11 @@ def bode_plot( # legend is generated. # - # Decide on the number of inputs and outputs + # Decide on the maximum number of inputs and outputs ninputs, noutputs = 0, 0 for response in data: # TODO: make more pythonic/numpic ninputs = max(ninputs, response.ninputs) noutputs = max(noutputs, response.noutputs) - ntraces = 1 # TODO: assume 1 trace per response for now # Figure how how many rows and columns to use + offsets for inputs/outputs nrows = (noutputs if plot_magnitude else 0) + \ @@ -447,26 +464,32 @@ def bode_plot( if len(ax) == nrows * ncols: # Assume that the shape is right (no easy way to infer this) ax = np.array(ax).reshape(nrows, ncols) + + # 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 + elif len(ax) != 0: # Need to generate a new figure fig, ax = plt.figure(), None + else: # Blank figure, just need to recreate axes ax = None - # 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 - # Create new axes, if needed, and customize them if ax is None: with plt.rc_context(_freqplot_rcParams): - ax_array = fig.subplots( - nrows, ncols, sharex='col', sharey='row', squeeze=False) + ax_array = fig.subplots(nrows, ncols, squeeze=False) fig.set_tight_layout(True) fig.align_labels() + # Set up default sharing of axis limits if not specified + for kw in ['share_magnitude', 'share_phase', 'share_frequency']: + if kw not in kwargs or kwargs[kw] is None: + kwargs[kw] = config.defaults['freqplot.' + kw] + else: # Make sure the axes are the right shape if ax.shape != (nrows, ncols): @@ -474,13 +497,96 @@ def bode_plot( "specified axes are not the right shape; " f"got {ax.shape} but expecting ({nrows}, {ncols})") ax_array = ax + fig = ax_array[0, 0].figure # just in case this is not gcf() + + # Get the values for sharing axes limits + share_magnitude = kwargs.pop('share_magnitude', None) + share_phase = kwargs.pop('share_phase', None) + share_frequency = kwargs.pop('share_frequency', None) + + # Set up axes variables for easier access below + if plot_magnitude and not plot_phase: + mag_map = np.empty((noutputs, ninputs), dtype=tuple) + for i in range(noutputs): + for j in range(ninputs): + mag_map[i, j] = (i, j) + phase_map = np.full((noutputs, ninputs), None) + share_phase = False + + elif plot_phase and not plot_magnitude: + phase_map = np.empty((noutputs, ninputs), dtype=tuple) + for i in range(noutputs): + for j in range(ninputs): + phase_map[i, j] = (i, j) + mag_map = np.full((noutputs, ninputs), None) + share_magnitude = False + + else: + mag_map = np.empty((noutputs, ninputs), dtype=tuple) + phase_map = np.empty((noutputs, ninputs), dtype=tuple) + for i in range(noutputs): + for j in range(ninputs): + mag_map[i, j] = (i*2, j) + phase_map[i, j] = (i*2 + 1, j) + + # Identity map needed for setting up shared axes + ax_map = np.empty((nrows, ncols), dtype=tuple) + for i, j in itertools.product(range(nrows), range(ncols)): + ax_map[i, j] = (i, j) + + # + # Set up axes limit sharing + # + # This code uses the share_magnitude, share_phase, and share_frequency + # keywords to decide which axes have shared limits and what ticklabels + # to include. The sharing code needs to come before the plots are + # generated, but additional code for removing tick labels needs to come + # *during* and *after* the plots are generated (see below). + # + # Note: if the various share_* keywords are None then a previous set of + # axes are available and no updates should be made. + # + + # Utility function to turn off sharing + def _share_axes(ref, share_map, axis): + ref_ax = ax_array[ref] + for index in np.nditer(share_map, flags=["refs_ok"]): + if index.item() == ref: + continue + if axis == 'x': + ax_array[index.item()].sharex(ref_ax) + elif axis == 'y': + ax_array[index.item()].sharey(ref_ax) + else: + raise ValueError("axis must be 'x' or 'y'") + + # Process magnitude, phase, and frequency axes + for name, value, map, axis in zip( + ['share_magnitude', 'shape_phase', 'share_frequency'], + [ share_magnitude, share_phase, share_frequency], + [ mag_map, phase_map, ax_map], + [ 'y', 'y', 'x']): + if value in [True, 'all']: + _share_axes(map[0 if axis == 'y' else -1, 0], map, axis) + elif axis == 'y' and value in ['row']: + for i in range(noutputs): + _share_axes(map[i, 0], map[i], 'y') + elif axis == 'x' and value in ['col']: + for j in range(ncols): + _share_axes(map[-1, j], map[j], 'x') + elif value in [False, 'none']: + # TODO: turn off any sharing that is on + pass + elif value is not None: + raise ValueError( + f"unknown value for `{name}`: '{value}'") # # Plot the data # - # The ax_magnitude and ax_phase arrays have the axes needed for making the - # plots. Labels are used on each axes for later creation of legends. - # The generic labels if of the form: + # The mag_map and phase_map arrays have the indices axes needed for + # making the plots. Labels are used on each axes for later creation of + # legends. The generic labels if of the form: # # To output label, From input label, system name # @@ -490,221 +596,277 @@ def bode_plot( # distinguishes which system signals are plotted. The system name is # stripped off later (in the legend-handling code) if it is not needed. # + # Note: if we are building on top of an existing plot, tick labels + # should be preserved from the existing axes. For log scale axes the + # tick labels seem to appear no matter what => we have to detect if + # they are present at the start and, it not, remove them after calling + # loglog or semilogx. + # - for mag, phase, omega_sys, nyquistfrq, sysname in \ - zip(mags, phases, omegas, nyquistfrqs, sysnames): + # Create a list of lines for the output + out = np.empty((nrows, ncols), dtype=object) + for i in range(nrows): + for j in range(ncols): + out[i, j] = [] # unique list in each element - # TODO: hack to handle MIMO while not breaking SISO - my_mag = mag.reshape((noutputs, ninputs, -1)) - my_phase = phase.reshape((noutputs, ninputs, -1)) - for i, j in itertools.product( - range(my_mag.shape[0]), range(my_mag.shape[1])): - if plot_magnitude: - ax_mag = ax_array[i*2 if plot_phase else i, j] - if plot_phase: - ax_phase = ax_array[i*2 + 1 if plot_magnitude else i, j] + for index, response in enumerate(data): + # Get the (pre-processed) data in fully indexed form + mag = mag_data[index].reshape((noutputs, ninputs, -1)) + phase = phase_data[index].reshape((noutputs, ninputs, -1)) + omega_sys, sysname = response.omega, response.sysname - nyquistfrq_plot = None - if Hz: - omega_plot = omega_sys / (2. * math.pi) - if nyquistfrq: - nyquistfrq_plot = nyquistfrq / (2. * math.pi) - else: - omega_plot = omega_sys - if nyquistfrq: - nyquistfrq_plot = nyquistfrq + # Keep track of Nyquist frequency for discrete time systems + nyq_freq = None if response.isctime() else math.pi / response.dt - phase_plot = my_phase[i, j] * 180. / math.pi if deg \ - else my_phase[i, j] - mag_plot = my_mag[i, j] - - if nyquistfrq_plot: - # append data for vertical nyquist freq indicator line. - # if this extra nyquist line is is plotted in a single plot - # command then line order is preserved when - # creating a legend eg. legend(('sys1', 'sys2')) - omega_nyq_line = np.array( - (np.nan, nyquistfrq_plot, nyquistfrq_plot)) - omega_plot = np.hstack((omega_plot, omega_nyq_line)) - mag_nyq_line = np.array(( - np.nan, 0.7*min(mag_plot), 1.3*max(mag_plot))) - mag_plot = np.hstack((mag_plot, mag_nyq_line)) - phase_range = max(phase_plot) - min(phase_plot) - phase_nyq_line = np.array( - (np.nan, - min(phase_plot) - 0.2 * phase_range, - max(phase_plot) + 0.2 * phase_range)) - phase_plot = np.hstack((phase_plot, phase_nyq_line)) + for i, j in itertools.product(range(noutputs), range(ninputs)): + # Get the axes to use for magnitude and phase + ax_mag = ax_array[mag_map[i, j]] + ax_phase = ax_array[phase_map[i, j]] + + # Get the frequencies and convert to Hz, if needed + omega_plot = omega_sys / (2 * math.pi) if Hz else omega_sys + if nyq_freq is not None and Hz: + nyq_freq = nyq_freq / (2 * math.pi) + + # Save the magnitude and phase to plot + mag_plot = 20 * np.log10(mag[i, j]) if dB else mag[i, j] + phase_plot = phase[i, j] * 180. / math.pi if deg else phase[i, j] # Magnitude if plot_magnitude: - if dB: - ax_mag.semilogx( - omega_plot, 20 * np.log10(mag_plot), *fmt, - label=sysname, **kwargs) - else: - ax_mag.loglog( - omega_plot, mag_plot, *fmt, label=sysname, **kwargs) + pltfcn = ax_mag.semilogx if dB else ax_mag.loglog + convert = (lambda x: 20 * np.log10(x)) if dB else (lambda x: x) + + # Plot the main data + lines = pltfcn( + omega_plot, mag_plot, *fmt, label=sysname, **kwargs) + out[mag_map[i, j]] += lines + + # Plot vertical line at Nyquist frequency + # TODO: move this until after all data are plotted + if nyq_freq: + pltfcn( + [nyq_freq, nyq_freq], ax_mag.get_ylim(), + color=lines[0].get_color(), linestyle='--') # Add a grid to the plot + labeling ax_mag.grid(grid and not margins, which='both') # Phase if plot_phase: - ax_phase.semilogx( + lines = ax_phase.semilogx( omega_plot, phase_plot, *fmt, label=sysname, **kwargs) + out[phase_map[i, j]] += lines - # - # Plot gain and phase margins - # + # Plot vertical line at Nyquist frequency + # TODO: move this until after all data are plotted + if nyq_freq: + ax_phase.semilogx( + [nyq_freq, nyq_freq], ax_phase.get_ylim(), + color=lines[0].get_color(), linestyle='--') - # Show the phase and gain margins in the plot - if margins: - # Compute stability margins for the system - margin = stability_margins(response, method=method) - gm, pm, Wcg, Wcp = (margin[i] for i in [0, 1, 3, 4]) - - # Figure out sign of the phase at the first gain crossing - # (needed if phase_wrap is True) - phase_at_cp = phases[0][(np.abs(omegas[0] - Wcp)).argmin()] - if phase_at_cp >= 0.: - phase_limit = 180. - else: - phase_limit = -180. + # Add a grid to the plot + labeling + ax_phase.grid(grid and not margins, which='both') - if Hz: - Wcg, Wcp = Wcg/(2*math.pi), Wcp/(2*math.pi) + # + # Plot gain and phase margins (SISO only) + # - # Draw lines at gain and phase limits - if plot_magnitude: - ax_mag.axhline(y=0 if dB else 1, color='k', linestyle=':', - zorder=-20) - mag_ylim = ax_mag.get_ylim() + # Show the phase and gain margins in the plot + if margins: + if ninputs > 1 or noutputs > 1: + raise NotImplementedError( + "margins are not available for MIMO systems") + + # Compute stability margins for the system + margin = stability_margins(response, method=method) + gm, pm, Wcg, Wcp = (margin[i] for i in [0, 1, 3, 4]) + + # Figure out sign of the phase at the first gain crossing + # (needed if phase_wrap is True) + phase_at_cp = phase[ + 0, 0, (np.abs(omega_data[0] - Wcp)).argmin()] + if phase_at_cp >= 0.: + phase_limit = 180. + else: + phase_limit = -180. - if plot_phase: - ax_phase.axhline(y=phase_limit if deg else - math.radians(phase_limit), - color='k', linestyle=':', zorder=-20) - phase_ylim = ax_phase.get_ylim() - - # Annotate the phase margin (if it exists) - if plot_phase and pm != float('inf') and Wcp != float('nan'): - if dB: - ax_mag.semilogx( - [Wcp, Wcp], [0., -1e5], - color='k', linestyle=':', zorder=-20) - else: - ax_mag.loglog( - [Wcp, Wcp], [1., 1e-8], - color='k', linestyle=':', zorder=-20) + if Hz: + Wcg, Wcp = Wcg/(2*math.pi), Wcp/(2*math.pi) + # Draw lines at gain and phase limits + if plot_magnitude: + ax_mag.axhline(y=0 if dB else 1, color='k', linestyle=':', + zorder=-20) + mag_ylim = ax_mag.get_ylim() + + if plot_phase: + ax_phase.axhline(y=phase_limit if deg else + math.radians(phase_limit), + color='k', linestyle=':', zorder=-20) + phase_ylim = ax_phase.get_ylim() + + # Annotate the phase margin (if it exists) + if plot_phase and pm != float('inf') and Wcp != float('nan'): + if dB: + ax_mag.semilogx( + [Wcp, Wcp], [0., -1e5], + color='k', linestyle=':', zorder=-20) + else: + ax_mag.loglog( + [Wcp, Wcp], [1., 1e-8], + color='k', linestyle=':', zorder=-20) + + if deg: + ax_phase.semilogx( + [Wcp, Wcp], [1e5, phase_limit + pm], + color='k', linestyle=':', zorder=-20) + ax_phase.semilogx( + [Wcp, Wcp], [phase_limit + pm, phase_limit], + color='k', zorder=-20) + else: + ax_phase.semilogx( + [Wcp, Wcp], [1e5, math.radians(phase_limit) + + math.radians(pm)], + color='k', linestyle=':', zorder=-20) + ax_phase.semilogx( + [Wcp, Wcp], [math.radians(phase_limit) + + math.radians(pm), + math.radians(phase_limit)], + color='k', zorder=-20) + + ax_phase.set_ylim(phase_ylim) + + # Annotate the gain margin (if it exists) + if plot_magnitude and gm != float('inf') and \ + Wcg != float('nan'): + if dB: + ax_mag.semilogx( + [Wcg, Wcg], [-20.*np.log10(gm), -1e5], + color='k', linestyle=':', zorder=-20) + ax_mag.semilogx( + [Wcg, Wcg], [0, -20*np.log10(gm)], + color='k', zorder=-20) + else: + ax_mag.loglog( + [Wcg, Wcg], [1./gm, 1e-8], color='k', + linestyle=':', zorder=-20) + ax_mag.loglog( + [Wcg, Wcg], [1., 1./gm], color='k', zorder=-20) + + if plot_phase: if deg: ax_phase.semilogx( - [Wcp, Wcp], [1e5, phase_limit + pm], + [Wcg, Wcg], [0, phase_limit], color='k', linestyle=':', zorder=-20) - ax_phase.semilogx( - [Wcp, Wcp], [phase_limit + pm, phase_limit], - color='k', zorder=-20) else: ax_phase.semilogx( - [Wcp, Wcp], [1e5, math.radians(phase_limit) + - math.radians(pm)], - color='k', linestyle=':', zorder=-20) - ax_phase.semilogx( - [Wcp, Wcp], [math.radians(phase_limit) + - math.radians(pm), - math.radians(phase_limit)], - color='k', zorder=-20) - - ax_phase.set_ylim(phase_ylim) - - # Annotate the gain margin (if it exists) - if plot_magnitude and gm != float('inf') and \ - Wcg != float('nan'): - if dB: - ax_mag.semilogx( - [Wcg, Wcg], [-20.*np.log10(gm), -1e5], + [Wcg, Wcg], [0, math.radians(phase_limit)], color='k', linestyle=':', zorder=-20) - ax_mag.semilogx( - [Wcg, Wcg], [0, -20*np.log10(gm)], - color='k', zorder=-20) - else: - ax_mag.loglog( - [Wcg, Wcg], [1./gm, 1e-8], color='k', - linestyle=':', zorder=-20) - ax_mag.loglog( - [Wcg, Wcg], [1., 1./gm], color='k', zorder=-20) - - if plot_phase: - if deg: - ax_phase.semilogx( - [Wcg, Wcg], [0, phase_limit], - color='k', linestyle=':', zorder=-20) - else: - ax_phase.semilogx( - [Wcg, Wcg], [0, math.radians(phase_limit)], - color='k', linestyle=':', zorder=-20) - - ax_mag.set_ylim(mag_ylim) - ax_phase.set_ylim(phase_ylim) - - if margin_info: - if plot_magnitude: - ax_mag.text( - 0.04, 0.06, - 'G.M.: %.2f %s\nFreq: %.2f %s' % - (20*np.log10(gm) if dB else gm, - 'dB ' if dB else '', - Wcg, 'Hz' if Hz else 'rad/s'), - horizontalalignment='left', - verticalalignment='bottom', - transform=ax_mag.transAxes, - fontsize=8 if int(mpl.__version__[0]) == 1 else 6) - if plot_phase: - ax_phase.text( - 0.04, 0.06, - 'P.M.: %.2f %s\nFreq: %.2f %s' % - (pm if deg else math.radians(pm), - 'deg' if deg else 'rad', - Wcp, 'Hz' if Hz else 'rad/s'), - horizontalalignment='left', - verticalalignment='bottom', - transform=ax_phase.transAxes, - fontsize=8 if int(mpl.__version__[0]) == 1 else 6) - else: - # TODO: gets overwritten below - plt.suptitle( - "Gm = %.2f %s(at %.2f %s), " - "Pm = %.2f %s (at %.2f %s)" % + + ax_mag.set_ylim(mag_ylim) + ax_phase.set_ylim(phase_ylim) + + if margin_info: + if plot_magnitude: + ax_mag.text( + 0.04, 0.06, + 'G.M.: %.2f %s\nFreq: %.2f %s' % (20*np.log10(gm) if dB else gm, 'dB ' if dB else '', - Wcg, 'Hz' if Hz else 'rad/s', - pm if deg else math.radians(pm), + Wcg, 'Hz' if Hz else 'rad/s'), + horizontalalignment='left', + verticalalignment='bottom', + transform=ax_mag.transAxes, + fontsize=8 if int(mpl.__version__[0]) == 1 else 6) + if plot_phase: + ax_phase.text( + 0.04, 0.06, + 'P.M.: %.2f %s\nFreq: %.2f %s' % + (pm if deg else math.radians(pm), 'deg' if deg else 'rad', - Wcp, 'Hz' if Hz else 'rad/s')) + Wcp, 'Hz' if Hz else 'rad/s'), + horizontalalignment='left', + verticalalignment='bottom', + transform=ax_phase.transAxes, + fontsize=8 if int(mpl.__version__[0]) == 1 else 6) + else: + # TODO: gets overwritten below + plt.suptitle( + "Gm = %.2f %s(at %.2f %s), " + "Pm = %.2f %s (at %.2f %s)" % + (20*np.log10(gm) if dB else gm, + 'dB ' if dB else '', + Wcg, 'Hz' if Hz else 'rad/s', + pm if deg else math.radians(pm), + 'deg' if deg else 'rad', + Wcp, 'Hz' if Hz else 'rad/s')) + # + # Finishing handling axes limit sharing + # + # This code handles labels on phase plots and also removes tick labels + # on shared axes. It needs to come *after* the plots are generated, + # in order to handle two things: + # + # * manually generated labels and grids need to reflect the limts for + # shared axes, which we don't know until we have plotted everything; + # + # * the use of loglog and semilog regenerate the labels (not quite sure + # why, since using sharex and sharey in subplots does not have this + # behavior). + # + # Note: as before, if the various share_* keywords are None then a + # previous set of axes are available and no updates are made. + # + + for i in range(noutputs): + for j in range(ninputs): def gen_zero_centered_series(val_min, val_max, period): v1 = np.ceil(val_min / period - 0.2) v2 = np.floor(val_max / period + 0.2) return np.arange(v1, v2 + 1) * period + # TODO: put Nyquist lines here? + # TODO: what is going on here # TODO: fix to use less dense labels, when needed + # TODO: make sure turning sharey on and off makes labels come/go if plot_phase: + ax_phase = ax_array[phase_map[i, j]] + + # Set the labels + # TODO: tighten up code if deg: ylim = ax_phase.get_ylim() + num = np.floor((ylim[1] - ylim[0]) / 45) + factor = max(1, np.round(num / (32 / nrows)) * 2) ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], 45.)) + ylim[0], ylim[1], 45 * factor)) ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], 15.), minor=True) + ylim[0], ylim[1], 15 * factor), minor=True) else: ylim = ax_phase.get_ylim() + num = np.ceil((ylim[1] - ylim[0]) / (math.pi/4)) + factor = max(1, np.round(num / (36 / nrows)) * 2) ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], math.pi / 4.)) + ylim[0], ylim[1], math.pi / 4. * factor)) ax_phase.set_yticks(gen_zero_centered_series( - ylim[0], ylim[1], math.pi / 12.), minor=True) - - ax_phase.grid(grid and not margins, which='both') + ylim[0], ylim[1], math.pi / 12. * factor), minor=True) + + # Turn off y tick labels for shared axes + for i in range(0, noutputs): + for j in range(1, ncols): + if share_magnitude in [True, 'all', 'row']: + ax_array[mag_map[i, j]].tick_params(labelleft=False) + if share_phase in [True, 'all', 'row']: + ax_array[phase_map[i, j]].tick_params(labelleft=False) + + # Turn off x tick labels for shared axes + for i in range(0, nrows-1): + for j in range(0, ncols): + if share_frequency in [True, 'all', 'col']: + ax_array[i, j].tick_params(labelbottom=False) # # Update the plot title (= figure suptitle) @@ -716,10 +878,13 @@ def gen_zero_centered_series(val_min, val_max, period): # list of systems (e.g., "Step response for sys[1], sys[2]"). # - # Set the initial title for the data - sysnames = list(set(sysnames)) # get rid of duplicates + # Set the initial title for the data (unique system names) + sysnames = list(set([response.sysname for response in data])) if title is None: - title = "Bode plot for " + ", ".join(sysnames) + if data[0].title is None: + title = "Bode plot for " + ", ".join(sysnames) + else: + title = data[0].title if fig is not None and title is not None: # Get the current title, if it exists @@ -774,7 +939,7 @@ def gen_zero_centered_series(val_min, val_max, period): ax_mag.set_ylabel("Magnitude (dB)" if dB else "Magnitude") if plot_phase: ax_phase = ax_array[i*2 + 1 if plot_magnitude else i, 0] - ax_phase.set_ylabel("Phase (deg)" if deg else "Phase (rad)") + ax_phase.set_ylabel("Phase [deg]" if deg else "Phase [rad]") if noutputs > 1 or ninputs > 1: if plot_magnitude and plot_phase: @@ -851,7 +1016,8 @@ def gen_zero_centered_series(val_min, val_max, period): ax = ax_array[i, j] # Get the labels to use, removing common strings labels = _make_legend_labels( - [line.get_label() for line in ax.get_lines()]) + [line.get_label() for line in ax.get_lines() + if line.get_label()[0] != '_']) # Generate the label, if needed if len(labels) > 1 and legend_map[i, j] != None: @@ -862,12 +1028,19 @@ def gen_zero_centered_series(val_min, val_max, period): # Legacy return pocessing # if plot is True: # legacy usage; remove in future release + # Process the data to match what we were sent + for i in range(len(mag_data)): + mag_data[i] = _process_frequency_response( + data[i], omega_data[i], mag_data[i], squeeze=data[i].squeeze) + phase_data[i] = _process_frequency_response( + data[i], omega_data[i], phase_data[i], squeeze=data[i].squeeze) + if len(data) == 1: - return mags[0], phases[0], omegas[0] + return mag_data[0], phase_data[0], omega_data[0] else: - return mags, phases, omegas + return mag_data, phase_data, omega_data - return None # TODO: replace with ax + return out # @@ -1602,12 +1775,11 @@ def _compute_curve_offset(resp, mask, max_offset): # # Gang of Four plot # -# TODO: think about how (and whether) to handle lists of systems -def gangof4_plot(P, C, omega=None, **kwargs): - """Plot the "Gang of 4" transfer functions for a system. +def gangof4_response(P, C, omega=None, Hz=False): + """Compute the response of the "Gang of 4" transfer functions for a system. Generates a 2x2 plot showing the "Gang of 4" sensitivity functions - [T, PS; CS, S] + [T, PS; CS, S]. Parameters ---------- @@ -1615,8 +1787,6 @@ def gangof4_plot(P, C, omega=None, **kwargs): Linear input/output systems (process and control) omega : array Range of frequencies (list or bounds) in rad/sec - **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional - Additional keywords (passed to `matplotlib`) Returns ------- @@ -1634,14 +1804,6 @@ def gangof4_plot(P, C, omega=None, **kwargs): raise ControlMIMONotImplemented( "Gang of four is currently only implemented for SISO systems.") - # Get the default parameter values - dB = config._get_param( - 'freqplot', 'dB', kwargs, _freqplot_defaults, pop=True) - Hz = config._get_param( - 'freqplot', 'Hz', kwargs, _freqplot_defaults, pop=True) - grid = config._get_param( - 'freqplot', 'grid', kwargs, _freqplot_defaults, pop=True) - # Compute the senstivity functions L = P * C S = feedback(1, L) @@ -1652,81 +1814,35 @@ def gangof4_plot(P, C, omega=None, **kwargs): if omega is None: omega = _default_frequency_range((P, C, S), Hz=Hz) - # Set up the axes with labels so that multiple calls to - # gangof4_plot will superimpose the data. See details in bode_plot. - plot_axes = {'t': None, 's': None, 'ps': None, 'cs': None} - for ax in plt.gcf().axes: - label = ax.get_label() - if label.startswith('control-gangof4-'): - key = label[len('control-gangof4-'):] - if key not in plot_axes: - raise RuntimeError( - "unknown gangof4 axis type '{}'".format(label)) - plot_axes[key] = ax - - # if any of the axes are missing, start from scratch - if any((ax is None for ax in plot_axes.values())): - plt.clf() - plot_axes = {'s': plt.subplot(221, label='control-gangof4-s'), - 'ps': plt.subplot(222, label='control-gangof4-ps'), - 'cs': plt.subplot(223, label='control-gangof4-cs'), - 't': plt.subplot(224, label='control-gangof4-t')} - # - # Plot the four sensitivity functions + # bode_plot based implementation # - omega_plot = omega / (2. * math.pi) if Hz else omega - # TODO: Need to add in the mag = 1 lines - mag_tmp, phase_tmp, omega = S.frequency_response(omega) - mag = np.squeeze(mag_tmp) - if dB: - plot_axes['s'].semilogx(omega_plot, 20 * np.log10(mag), **kwargs) - else: - plot_axes['s'].loglog(omega_plot, mag, **kwargs) - plot_axes['s'].set_ylabel("$|S|$" + " (dB)" if dB else "") - plot_axes['s'].tick_params(labelbottom=False) - plot_axes['s'].grid(grid, which='both') - - mag_tmp, phase_tmp, omega = (P * S).frequency_response(omega) - mag = np.squeeze(mag_tmp) - if dB: - plot_axes['ps'].semilogx(omega_plot, 20 * np.log10(mag), **kwargs) - else: - plot_axes['ps'].loglog(omega_plot, mag, **kwargs) - plot_axes['ps'].tick_params(labelbottom=False) - plot_axes['ps'].set_ylabel("$|PS|$" + " (dB)" if dB else "") - plot_axes['ps'].grid(grid, which='both') - - mag_tmp, phase_tmp, omega = (C * S).frequency_response(omega) - mag = np.squeeze(mag_tmp) - if dB: - plot_axes['cs'].semilogx(omega_plot, 20 * np.log10(mag), **kwargs) - else: - plot_axes['cs'].loglog(omega_plot, mag, **kwargs) - plot_axes['cs'].set_xlabel( - "Frequency (Hz)" if Hz else "Frequency (rad/sec)") - plot_axes['cs'].set_ylabel("$|CS|$" + " (dB)" if dB else "") - plot_axes['cs'].grid(grid, which='both') - - mag_tmp, phase_tmp, omega = T.frequency_response(omega) - mag = np.squeeze(mag_tmp) - if dB: - plot_axes['t'].semilogx(omega_plot, 20 * np.log10(mag), **kwargs) - else: - plot_axes['t'].loglog(omega_plot, mag, **kwargs) - plot_axes['t'].set_xlabel( - "Frequency (Hz)" if Hz else "Frequency (rad/sec)") - plot_axes['t'].set_ylabel("$|T|$" + " (dB)" if dB else "") - plot_axes['t'].grid(grid, which='both') + # Compute the response of the Gang of 4 + resp_T = T(1j * omega) + resp_PS = (P * S)(1j * omega) + resp_CS = (C * S)(1j * omega) + resp_S = S(1j * omega) + + # Create a single frequency response data object with the underlying data + data = np.empty((2, 2, omega.size), dtype=complex) + data[0, 0, :] = resp_T + data[0, 1, :] = resp_PS + data[1, 0, :] = resp_CS + data[1, 1, :] = resp_S + + 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) - plt.tight_layout() + +def gangof4_plot(P, C, omega=None, **kwargs): + """Legacy Gang of 4 plot; use gangof4_response().plot() instead.""" + return gangof4_response(P, C).plot(**kwargs) # # Singular values plot # - - def singular_values_plot(syslist, omega=None, plot=True, omega_limits=None, omega_num=None, *args, **kwargs): @@ -1855,6 +1971,7 @@ def singular_values_plot(syslist, omega=None, color = color_cycle[(idx_sys + color_offset) % len(color_cycle)] color = kwargs.pop('color', color) + # TODO: copy from above nyquistfrq_plot = None if Hz: omega_plot = omega_sys / (2. * math.pi) diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index 4b723c984..b02d16d53 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -87,6 +87,7 @@ # Functions that are renamed in MATLAB pole, zero = poles, zeros +freqresp = frequency_response # Import functions specific to Matlab compatibility package from .timeresp import * diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 041ca8bd0..59c6cc7f3 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -64,16 +64,27 @@ def bode(*args, **kwargs): """ from ..freqplot import bode_plot - # If first argument is a list, assume python-control calling format - if hasattr(args[0], '__iter__'): - return bode_plot(*args, **kwargs) + # Turn off deprecation warning + with warnings.catch_warnings(): + warnings.filterwarnings( + 'ignore', message='passing systems .* is deprecated', + category=DeprecationWarning) + warnings.filterwarnings( + 'ignore', message='.* return values of .* is deprecated', + category=DeprecationWarning) + + # If first argument is a list, assume python-control calling format + if hasattr(args[0], '__iter__'): + retval = bode_plot(*args, **kwargs) + else: + # Parse input arguments + syslist, omega, args, other = _parse_freqplot_args(*args) + kwargs.update(other) - # Parse input arguments - syslist, omega, args, other = _parse_freqplot_args(*args) - kwargs.update(other) + # Call the bode command + retval = bode_plot(syslist, omega, *args, **kwargs) - # Call the bode command - return bode_plot(syslist, omega, *args, **kwargs) + return retval def nyquist(*args, **kwargs): diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 5ea99d264..48737eaa8 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -89,6 +89,7 @@ def test_default_deprecation(self): assert ct.config.defaults['bode.Hz'] \ == ct.config.defaults['freqplot.Hz'] + @pytest.mark.usefixtures("legacy_plot_signature") def test_fbs_bode(self, mplcleanup): ct.use_fbs_defaults() @@ -133,6 +134,7 @@ def test_fbs_bode(self, mplcleanup): phase_x, phase_y = (((plt.gcf().axes[1]).get_lines())[0]).get_data() np.testing.assert_almost_equal(phase_y[-1], -pi, decimal=2) + @pytest.mark.usefixtures("legacy_plot_signature") def test_matlab_bode(self, mplcleanup): ct.use_matlab_defaults() @@ -177,6 +179,7 @@ def test_matlab_bode(self, mplcleanup): phase_x, phase_y = (((plt.gcf().axes[1]).get_lines())[0]).get_data() np.testing.assert_almost_equal(phase_y[-1], -pi, decimal=2) + @pytest.mark.usefixtures("legacy_plot_signature") def test_custom_bode_default(self, mplcleanup): ct.config.defaults['freqplot.dB'] = True ct.config.defaults['freqplot.deg'] = True @@ -198,6 +201,7 @@ def test_custom_bode_default(self, mplcleanup): np.testing.assert_almost_equal(mag_y[0], 20*log10(10), decimal=3) np.testing.assert_almost_equal(phase_y[-1], -pi, decimal=2) + @pytest.mark.usefixtures("legacy_plot_signature") def test_bode_number_of_samples(self, mplcleanup): # Set the number of samples (default is 50, from np.logspace) mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, omega_num=87) @@ -212,6 +216,7 @@ def test_bode_number_of_samples(self, mplcleanup): mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, omega_num=87) assert len(mag_ret) == 87 + @pytest.mark.usefixtures("legacy_plot_signature") def test_bode_feature_periphery_decade(self, mplcleanup): # Generate a sample Bode plot to figure out the range it uses ct.reset_defaults() # Make sure starting state is correct diff --git a/control/tests/conftest.py b/control/tests/conftest.py index c5ab6cb86..338a7088c 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -9,8 +9,6 @@ import control -TEST_MATRIX_AND_ARRAY = os.getenv("PYTHON_CONTROL_ARRAY_AND_MATRIX") == "1" - # some common pytest marks. These can be used as test decorators or in # pytest.param(marks=) slycotonly = pytest.mark.skipif( @@ -61,6 +59,20 @@ def mplcleanup(): mpl.pyplot.close("all") +@pytest.fixture(scope="function") +def legacy_plot_signature(): + """Turn off warnings for calls to plotting functions with old signatures""" + import warnings + warnings.filterwarnings( + 'ignore', message='passing systems .* is deprecated', + category=DeprecationWarning) + warnings.filterwarnings( + 'ignore', message='.* return values of .* is deprecated', + category=DeprecationWarning) + yield + warnings.resetwarnings() + + # Allow pytest.mark.slow to mark slow tests (skip with pytest -m "not slow") def pytest_configure(config): config.addinivalue_line("markers", "slow: mark test as slow to run") diff --git a/control/tests/convert_test.py b/control/tests/convert_test.py index db173b653..14f3133e1 100644 --- a/control/tests/convert_test.py +++ b/control/tests/convert_test.py @@ -48,6 +48,7 @@ def printSys(self, sys, ind): print("sys%i:\n" % ind) print(sys) + @pytest.mark.usefixtures("legacy_plot_signature") @pytest.mark.parametrize("states", range(1, maxStates)) @pytest.mark.parametrize("inputs", range(1, maxIO)) @pytest.mark.parametrize("outputs", range(1, maxIO)) diff --git a/control/tests/discrete_test.py b/control/tests/discrete_test.py index 4415fac0c..e8a6b5199 100644 --- a/control/tests/discrete_test.py +++ b/control/tests/discrete_test.py @@ -460,6 +460,7 @@ def test_sample_tf(self, tsys): np.testing.assert_array_almost_equal(numd, numd_expected) np.testing.assert_array_almost_equal(dend, dend_expected) + @pytest.mark.usefixtures("legacy_plot_signature") def test_discrete_bode(self, tsys): # Create a simple discrete time system and check the calculation sys = TransferFunction([1], [1, 0.5], 1) diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index aa2fb9dc0..9299181b0 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -10,6 +10,134 @@ from control.tests.conftest import slycotonly pytestmark = pytest.mark.usefixtures("mplcleanup") +# +# Define a system for testing out different sharing options +# + +omega = np.logspace(-2, 2, 5) +fresp1 = np.array([10 + 0j, 5 - 5j, 1 - 1j, 0.5 - 1j, -.1j]) +fresp2 = np.array([1j, 0.5 - 0.5j, -0.5, 0.1 - 0.1j, -.05j]) * 0.1 +fresp3 = np.array([10 + 0j, -20j, -10, 2j, 1]) +fresp4 = np.array([10 + 0j, 5 - 5j, 1 - 1j, 0.5 - 1j, -.1j]) * 0.01 + +fresp = np.empty((2, 2, omega.size), dtype=complex) +fresp[0, 0] = fresp1 +fresp[0, 1] = fresp2 +fresp[1, 0] = fresp3 +fresp[1, 1] = fresp4 +manual_response = ct.FrequencyResponseData( + fresp, omega, sysname="Manual Response") + +@pytest.mark.parametrize( + "sys", [ + ct.tf([1], [1, 2, 1], name='System 1'), # SISO + manual_response, # simple MIMO + ]) +# @pytest.mark.parametrize("pltmag", [True, False]) +# @pytest.mark.parametrize("pltphs", [True, False]) +# @pytest.mark.parametrize("shrmag", ['row', 'all', False, None]) +# @pytest.mark.parametrize("shrphs", ['row', 'all', False, None]) +# @pytest.mark.parametrize("shrfrq", ['col', 'all', False, None]) +# @pytest.mark.parametrize("secsys", [False, True]) +@pytest.mark.parametrize( # combinatorial-style test (faster) + "pltmag, pltphs, shrmag, shrphs, shrfrq, secsys", + [(True, True, None, None, None, False), + (True, False, None, None, None, False), + (False, True, None, None, None, False), + (True, True, None, None, None, True), + (True, True, 'row', 'row', 'col', False), + (True, True, 'row', 'row', 'all', True), + (True, True, 'all', 'row', None, False), + (True, True, 'row', 'all', None, True), + (True, True, 'none', 'none', None, True), + (True, False, 'all', 'row', None, False), + (True, True, True, 'row', None, True), + (True, True, None, 'row', True, False), + (True, True, 'row', None, None, True), + ]) +def test_response_plots( + sys, pltmag, pltphs, shrmag, shrphs, shrfrq, secsys, clear=True): + + # Save up the keyword arguments + kwargs = dict( + plot_magnitude=pltmag, plot_phase=pltphs, + share_magnitude=shrmag, share_phase=shrphs, share_frequency=shrfrq, + # overlay_outputs=ovlout, overlay_inputs=ovlinp + ) + + # Create the response + if isinstance(sys, ct.FrequencyResponseData): + response = sys + else: + response = ct.frequency_response(sys) + + # Look for cases where there are no data to plot + if not pltmag and not pltphs: + return None + + # Plot the frequency response + plt.figure() + out = response.plot(**kwargs) + + # 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 line in ax_lines.item(): + assert isinstance(line, mpl.lines.Line2D) + nlines_plotted += 1 + + # Make sure number of plots is correct + nlines_expected = response.ninputs * response.noutputs * \ + (2 if pltmag and pltphs else 1) + assert nlines_plotted == nlines_expected + + # Save the old axes to compare later + old_axes = plt.gcf().get_axes() + + # Add additional data (and provide info in the title) + if secsys: + newsys = ct.rss( + 4, sys.noutputs, sys.ninputs, strictly_proper=True) + ct.frequency_response(newsys).plot(**kwargs) + + # Make sure we have the same axes + new_axes = plt.gcf().get_axes() + assert new_axes == old_axes + + # Make sure every axes has multiple lines + for ax in new_axes: + 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.suptitle( + fig._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 + fontsize='small') + + # Get rid of the figure to free up memory + if clear: + plt.close('.Figure') + + +# 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) + 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 + assert axs[i*2, 0].get_ylim() == axs[i*2, j].get_ylim() + assert axs[i*2 + 1, 0].get_ylim() == axs[i*2 + 1, j].get_ylim() + # Different rows have different limits + assert axs[0, 0].get_ylim() != axs[2, 0].get_ylim() + assert axs[1, 0].get_ylim() != axs[3, 0].get_ylim() + + # TODO: finish writing tests + def test_basic_freq_plots(savefigs=False): # Basic SISO Bode plot plt.figure() @@ -23,7 +151,7 @@ def test_basic_freq_plots(savefigs=False): # Basic MIMO Bode plot plt.figure() - sys_mimo = ct.tf2ss( + sys_mimo = ct.tf( [[[1], [0.1]], [[0.2], [1]]], [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="MIMO") ct.frequency_response(sys_mimo).plot() @@ -41,6 +169,17 @@ def test_basic_freq_plots(savefigs=False): ct.frequency_response(sys_mimo).plot(plot_magnitude=False) +def test_gangof4_plots(savefigs=False): + proc = ct.tf([1], [1, 1, 1], name="process") + ctrl = ct.tf([100], [1, 5], name="control") + + plt.figure() + ct.gangof4_plot(proc, ctrl) + + if savefigs: + plt.savefig('freqplot-gangof4.png') + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -55,10 +194,36 @@ def test_basic_freq_plots(savefigs=False): # Start by clearing existing figures plt.close('all') + # Define a set of systems to test + sys_siso = ct.tf([1], [1, 2, 1], name="SISO") + sys_mimo = ct.tf( + [[[1], [0.1]], [[0.2], [1]]], + [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="MIMO") + sys_test = manual_response + + # Run through a large number of test cases + test_cases = [ + # sys pltmag pltphs shrmag shrphs shrfrq secsys + (sys_siso, True, True, None, None, None, False), + (sys_siso, True, True, None, None, None, True), + (sys_mimo, True, True, 'row', 'row', 'col', False), + (sys_mimo, True, True, 'row', 'row', 'col', True), + (sys_test, True, True, 'row', 'row', 'col', False), + (sys_test, True, True, 'row', 'row', 'col', True), + (sys_test, True, True, 'none', 'none', 'col', True), + (sys_test, True, True, 'all', 'row', 'col', False), + (sys_test, True, True, 'row', 'all', 'col', True), + (sys_test, True, True, None, 'row', 'col', False), + (sys_test, True, True, 'row', None, 'col', True), + ] + for args in test_cases: + test_response_plots(*args, clear=False) + # Define and run a selected set of interesting tests # TODO: TBD (see timeplot_test.py for format) test_basic_freq_plots(savefigs=True) + test_gangof4_plots(savefigs=True) # # Run a few more special cases to show off capabilities (and save some diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index 746e694be..f788e23ea 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -40,16 +40,26 @@ def ss_mimo(): return StateSpace(A, B, C, D) +@pytest.mark.filterwarnings("ignore:freqresp is deprecated") +def test_freqresp_siso_legacy(ss_siso): + """Test SISO frequency response""" + omega = np.linspace(10e-2, 10e2, 1000) + + # test frequency response + ctrl.frequency_response(ss_siso, omega) + + def test_freqresp_siso(ss_siso): """Test SISO frequency response""" omega = np.linspace(10e-2, 10e2, 1000) # test frequency response - ctrl.freqresp(ss_siso, omega) + ctrl.frequency_response(ss_siso, omega) +@pytest.mark.filterwarnings("ignore:freqresp is deprecated") @slycotonly -def test_freqresp_mimo(ss_mimo): +def test_freqresp_mimo_legacy(ss_mimo): """Test MIMO frequency response calls""" omega = np.linspace(10e-2, 10e2, 1000) ctrl.freqresp(ss_mimo, omega) @@ -57,6 +67,16 @@ def test_freqresp_mimo(ss_mimo): ctrl.freqresp(tf_mimo, omega) +@slycotonly +def test_freqresp_mimo(ss_mimo): + """Test MIMO frequency response calls""" + omega = np.linspace(10e-2, 10e2, 1000) + ctrl.frequency_response(ss_mimo, omega) + tf_mimo = tf(ss_mimo) + ctrl.frequency_response(tf_mimo, omega) + + +@pytest.mark.usefixtures("legacy_plot_signature") def test_bode_basic(ss_siso): """Test bode plot call (Very basic)""" # TODO: proper test @@ -92,6 +112,7 @@ def test_nyquist_basic(ss_siso): assert len(contour) == 10 +@pytest.mark.usefixtures("legacy_plot_signature") @pytest.mark.filterwarnings("ignore:.*non-positive left xlim:UserWarning") def test_superimpose(): """Test superimpose multiple calls. @@ -144,6 +165,7 @@ def test_superimpose(): assert len(ax.get_lines()) == 2 +@pytest.mark.usefixtures("legacy_plot_signature") def test_doubleint(): """Test typcast bug with double int @@ -157,6 +179,7 @@ def test_doubleint(): bode(sys) +@pytest.mark.usefixtures("legacy_plot_signature") @pytest.mark.parametrize( "Hz, Wcp, Wcg", [pytest.param(False, 6.0782869, 10., id="omega"), @@ -241,6 +264,7 @@ def dsystem_type(request, dsystem_dt): return dsystem_dt[systype] +@pytest.mark.usefixtures("legacy_plot_signature") @pytest.mark.parametrize("dsystem_dt", [0.1, True], indirect=True) @pytest.mark.parametrize("dsystem_type", ['sssiso', 'ssmimo', 'tf'], indirect=True) @@ -278,6 +302,7 @@ def test_discrete(dsystem_type): bode((dsys,)) +@pytest.mark.usefixtures("legacy_plot_signature") def test_options(editsdefaults): """Test ability to set parameter values""" # Generate a Bode plot of a transfer function @@ -310,6 +335,7 @@ def test_options(editsdefaults): assert numpoints1 != numpoints3 assert numpoints3 == 13 +@pytest.mark.usefixtures("legacy_plot_signature") @pytest.mark.parametrize( "TF, initial_phase, default_phase, expected_phase", [pytest.param(ctrl.tf([1], [1, 0]), @@ -349,6 +375,7 @@ def test_initial_phase(TF, initial_phase, default_phase, expected_phase): assert(abs(phase[0] - expected_phase) < 0.1) +@pytest.mark.usefixtures("legacy_plot_signature") @pytest.mark.parametrize( "TF, wrap_phase, min_phase, max_phase", [pytest.param(ctrl.tf([1], [1, 0]), @@ -376,6 +403,7 @@ def test_phase_wrap(TF, wrap_phase, min_phase, max_phase): assert(max(phase) <= max_phase) +@pytest.mark.usefixtures("legacy_plot_signature") def test_phase_wrap_multiple_systems(): sys_unstable = ctrl.zpk([],[1,1], gain=1) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 2f111f590..ec20a5a1a 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -139,9 +139,7 @@ def test_unrecognized_kwargs(function, nsssys, ntfsys, moreargs, kwargs, @pytest.mark.parametrize( "function, nsysargs, moreargs, kwargs", - [(control.bode, 1, (), {}), - (control.bode_plot, 1, (), {}), - (control.describing_function_plot, 1, + [(control.describing_function_plot, 1, (control.descfcn.saturation_nonlinearity(1), [1, 2, 3, 4]), {}), (control.gangof4, 2, (), {}), (control.gangof4_plot, 2, (), {}), @@ -168,11 +166,18 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): (control.step_response, control.time_response_plot), (control.step_response, control.TimeResponseData.plot), (control.frequency_response, control.FrequencyResponseData.plot), + (control.frequency_response, control.bode), + (control.frequency_response, control.bode_plot), ]) def test_response_plot_kwargs(data_fcn, plot_fcn): # Create a system for testing response = data_fcn(control.rss(4, 2, 2)) + # Make sure that calling the data function with unknown keyword errs + with pytest.raises((AttributeError, TypeError), + match="(has no property|unexpected keyword)"): + data_fcn(control.rss(2, 1, 1), unknown=None) + # Call the plotting function normally and make sure it works plot_fcn(response) @@ -192,8 +197,8 @@ def test_response_plot_kwargs(data_fcn, plot_fcn): # kwarg_unittest = { - 'bode': test_matplotlib_kwargs, - 'bode_plot': test_matplotlib_kwargs, + 'bode': test_response_plot_kwargs, + 'bode_plot': test_response_plot_kwargs, 'create_estimator_iosystem': stochsys_test.test_estimator_errors, 'create_statefbk_iosystem': statefbk_test.TestStatefbk.test_statefbk_errors, 'describing_function_plot': test_matplotlib_kwargs, diff --git a/control/tests/slycot_convert_test.py b/control/tests/slycot_convert_test.py index edd355b3b..25beeb908 100644 --- a/control/tests/slycot_convert_test.py +++ b/control/tests/slycot_convert_test.py @@ -124,6 +124,7 @@ def testTF(self, states, outputs, inputs, testNum, verbose): # np.testing.assert_array_almost_equal( # tfOriginal_dcoeff, tfTransformed_dcoeff, decimal=3) + @pytest.mark.usefixtures("legacy_plot_signature") @pytest.mark.parametrize("testNum", np.arange(numTests) + 1) @pytest.mark.parametrize("inputs", np.arange(1) + 1) # SISO only @pytest.mark.parametrize("outputs", np.arange(1) + 1) # SISO only From 949dcafe3edbe4262ea7a4193d21e3144b115b94 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 13 Jul 2023 16:28:22 -0700 Subject: [PATCH 0363/1025] updated nyquist limit lines for dtime systems --- control/freqplot.py | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 7cc79d5f1..f29e7ff48 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -20,6 +20,7 @@ # [ ] Add line labels to gangof4 # [ ] Update FRD to allow nyquist_response contours # [ ] Allow frequency range to be overridden in bode_plot +# [ ] Unit tests for discrete time systems with different sample times # # This file contains some standard control system plots: Bode plots, @@ -615,9 +616,6 @@ def _share_axes(ref, share_map, axis): phase = phase_data[index].reshape((noutputs, ninputs, -1)) omega_sys, sysname = response.omega, response.sysname - # Keep track of Nyquist frequency for discrete time systems - nyq_freq = None if response.isctime() else math.pi / response.dt - for i, j in itertools.product(range(noutputs), range(ninputs)): # Get the axes to use for magnitude and phase ax_mag = ax_array[mag_map[i, j]] @@ -625,8 +623,8 @@ def _share_axes(ref, share_map, axis): # Get the frequencies and convert to Hz, if needed omega_plot = omega_sys / (2 * math.pi) if Hz else omega_sys - if nyq_freq is not None and Hz: - nyq_freq = nyq_freq / (2 * math.pi) + if response.isdtime(strict=True): + nyq_freq = 0.5 /response.dt if Hz else math.pi / response.dt # Save the magnitude and phase to plot mag_plot = 20 * np.log10(mag[i, j]) if dB else mag[i, j] @@ -642,14 +640,13 @@ def _share_axes(ref, share_map, axis): omega_plot, mag_plot, *fmt, label=sysname, **kwargs) out[mag_map[i, j]] += lines - # Plot vertical line at Nyquist frequency - # TODO: move this until after all data are plotted - if nyq_freq: - pltfcn( - [nyq_freq, nyq_freq], ax_mag.get_ylim(), - color=lines[0].get_color(), linestyle='--') + # Save the information needed for the Nyquist line + if response.isdtime(strict=True): + ax_mag.axvline( + nyq_freq, color=lines[0].get_color(), linestyle='--', + label='_nyq_mag_' + sysname) - # Add a grid to the plot + labeling + # Add a grid to the plot + labeling (TODO? move to later?) ax_mag.grid(grid and not margins, which='both') # Phase @@ -658,12 +655,11 @@ def _share_axes(ref, share_map, axis): omega_plot, phase_plot, *fmt, label=sysname, **kwargs) out[phase_map[i, j]] += lines - # Plot vertical line at Nyquist frequency - # TODO: move this until after all data are plotted - if nyq_freq: - ax_phase.semilogx( - [nyq_freq, nyq_freq], ax_phase.get_ylim(), - color=lines[0].get_color(), linestyle='--') + # Save the information needed for the Nyquist line + if response.isdtime(strict=True): + ax_phase.axvline( + nyq_freq, color=lines[0].get_color(), linestyle='--', + label='_nyq_phase_' + sysname) # Add a grid to the plot + labeling ax_phase.grid(grid and not margins, which='both') @@ -1015,14 +1011,14 @@ def gen_zero_centered_series(val_min, val_max, period): for j in range(ncols): ax = ax_array[i, j] # Get the labels to use, removing common strings - labels = _make_legend_labels( - [line.get_label() for line in ax.get_lines() - if line.get_label()[0] != '_']) + lines = [line for line in ax.get_lines() + if line.get_label()[0] != '_'] + labels = _make_legend_labels([line.get_label() for line in lines]) # Generate the label, if needed if len(labels) > 1 and legend_map[i, j] != None: with plt.rc_context(freqplot_rcParams): - ax.legend(labels, loc=legend_map[i, j]) + ax.legend(lines, labels, loc=legend_map[i, j]) # # Legacy return pocessing From 4dbb0cb51ad02b67053e67937985fe0b6b5610e1 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 14 Jul 2023 18:33:14 -0700 Subject: [PATCH 0364/1025] refactor singular_values_plot into response/plot --- control/frdata.py | 6 +- control/freqplot.py | 512 ++++++++++++++++++++++------------ control/lti.py | 5 +- control/tests/config_test.py | 3 +- control/tests/nyquist_test.py | 4 +- 5 files changed, 340 insertions(+), 190 deletions(-) diff --git a/control/frdata.py b/control/frdata.py index e3b8a3a33..383529afb 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -218,6 +218,7 @@ def __init__(self, *args, **kwargs): self.return_magphase=kwargs.pop('return_magphase', False) if self.return_magphase not in (True, False): raise ValueError("unknown return_magphase value") + self._return_singvals=kwargs.pop('_return_singvals', False) # Determine whether to squeeze the output self.squeeze=kwargs.pop('squeeze', None) @@ -601,7 +602,10 @@ def __call__(self, s=None, squeeze=None, return_magphase=None): def __iter__(self): fresp = _process_frequency_response( self, self.omega, self.fresp, squeeze=self.squeeze) - if not self.return_magphase: + if self._return_singvals: + # Legacy processing for singular values + return iter((self.fresp[:, 0, :], self.omega)) + elif not self.return_magphase: return iter((self.omega, fresp)) return iter((np.abs(fresp), np.angle(fresp), self.omega)) diff --git a/control/freqplot.py b/control/freqplot.py index f29e7ff48..a4ea90d54 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -24,8 +24,9 @@ # # This file contains some standard control system plots: Bode plots, -# Nyquist plots and pole-zero diagrams. The code for Nichols charts -# is in nichols.py. +# Nyquist plots and other frequency response plots. The code for Nichols +# charts is in nichols.py. The code for pole-zero diagrams is in pzmap.py +# and rlocus.py. # # Copyright (c) 2010 by California Institute of Technology # All rights reserved. @@ -59,33 +60,29 @@ # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $Id$ - -# TODO: clean up imports -import math -from os.path import commonprefix +import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt -import numpy as np +import math import warnings -from math import nan import itertools +from os.path import commonprefix from .ctrlutil import unwrap from .bdalg import feedback from .margins import stability_margins from .exception import ControlMIMONotImplemented from .statesp import StateSpace -from .lti import frequency_response, _process_frequency_response +from .lti import LTI, frequency_response, _process_frequency_response from .xferfcn import TransferFunction from .frdata import FrequencyResponseData from .timeplot import _make_legend_labels from . import config -__all__ = ['bode_plot', 'nyquist_plot', 'singular_values_plot', - 'gangof4_plot', 'gangof4_response', 'bode', 'nyquist', - 'gangof4'] +__all__ = ['bode_plot', 'nyquist_plot', 'singular_values_response', + 'singular_values_plot', 'gangof4_plot', 'gangof4_response', + 'bode', 'nyquist', 'gangof4'] # Default font dictionary _freqplot_rcParams = mpl.rcParams.copy() @@ -112,23 +109,8 @@ 'freqplot.share_magnitude': 'row', 'freqplot.share_phase': 'row', 'freqplot.share_frequency': 'col', - - # deprecations - 'deprecated.bode.dB': 'freqplot.dB', - 'deprecated.bode.deg': 'freqplot.deg', - 'deprecated.bode.Hz': 'freqplot.Hz', - 'deprecated.bode.grid': 'freqplot.grid', - 'deprecated.bode.wrap_phase': 'freqplot.wrap_phase', } - -# -# Main plotting functions -# -# This section of the code contains the functions for generating -# frequency domain plots -# - # # Bode plot # @@ -136,6 +118,8 @@ def bode_plot( data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, plot=None, plot_magnitude=True, plot_phase=None, margins=None, + overlay_outputs=None, overlay_inputs=None, phase_label=None, + magnitude_label=None, margin_info=False, method='best', legend_map=None, legend_loc=None, sharex=None, sharey=None, title=None, relabel=True, **kwargs): """Bode plot for a system. @@ -165,6 +149,7 @@ def bode_plot( Method to use in computing margins (see :func:`stability_margins`). *fmt : :func:`matplotlib.pyplot.plot` format string, optional Passed to `matplotlib` as the format string for all lines in the plot. + The `omega` parameter must be present (use omega=None if needed). **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. @@ -175,9 +160,9 @@ def bode_plot( the array matches the subplots shape and the value of the array is a list of Line2D objects in that subplot. mag : ndarray (or list of ndarray if len(data) > 1)) - If plot=False, magnitude of the respone (deprecated). + 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 respone (deprecated). + 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). @@ -261,8 +246,14 @@ def bode_plot( omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) freqplot_rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + + # Set the default labels freq_label = config._get_param( 'freqplot', 'freq_label', kwargs, _freqplot_defaults, pop=True) + if magnitude_label is None: + magnitude_label = "Magnitude [dB]" if dB else "Magnitude" + if phase_label is None: + phase_label = "Phase [deg]" if deg else "Phase [rad]" # Use sharex and sharey as proxies for share_{magnitude, phase, frequency} if sharey is not None: @@ -454,9 +445,20 @@ def bode_plot( noutputs = max(noutputs, response.noutputs) # Figure how how many rows and columns to use + offsets for inputs/outputs - nrows = (noutputs if plot_magnitude else 0) + \ - (noutputs if plot_phase else 0) - ncols = ninputs + if overlay_outputs and overlay_inputs: + nrows = plot_magnitude + plot_phase + ncols = 1 + elif overlay_outputs: + nrows = plot_magnitude + plot_phase + ncols = ninputs + elif overlay_inputs: + nrows = (noutputs if plot_magnitude else 0) + \ + (noutputs if plot_phase else 0) + ncols = 1 + else: + nrows = (noutputs if plot_magnitude else 0) + \ + (noutputs if plot_phase else 0) + ncols = ninputs # See if we can use the current figure axes fig = plt.gcf() # get current figure (or create new one) @@ -510,7 +512,14 @@ def bode_plot( mag_map = np.empty((noutputs, ninputs), dtype=tuple) for i in range(noutputs): for j in range(ninputs): - mag_map[i, j] = (i, j) + if overlay_outputs and overlay_inputs: + mag_map[i, j] = (0, 0) + elif overlay_outputs: + mag_map[i, j] = (0, j) + elif overlay_inputs: + mag_map[i, j] = (i, 0) + else: + mag_map[i, j] = (i, j) phase_map = np.full((noutputs, ninputs), None) share_phase = False @@ -518,7 +527,14 @@ def bode_plot( phase_map = np.empty((noutputs, ninputs), dtype=tuple) for i in range(noutputs): for j in range(ninputs): - phase_map[i, j] = (i, j) + if overlay_outputs and overlay_inputs: + phase_map[i, j] = (0, 0) + elif overlay_outputs: + phase_map[i, j] = (0, j) + elif overlay_inputs: + phase_map[i, j] = (i, 0) + else: + phase_map[i, j] = (i, j) mag_map = np.full((noutputs, ninputs), None) share_magnitude = False @@ -527,8 +543,18 @@ def bode_plot( phase_map = np.empty((noutputs, ninputs), dtype=tuple) for i in range(noutputs): for j in range(ninputs): - mag_map[i, j] = (i*2, j) - phase_map[i, j] = (i*2 + 1, j) + if overlay_outputs and overlay_inputs: + mag_map[i, j] = (0, 0) + phase_map[i, j] = (1, 0) + elif overlay_outputs: + mag_map[i, j] = (0, j) + phase_map[i, j] = (1, j) + elif overlay_inputs: + mag_map[i, j] = (i*2, 0) + phase_map[i, j] = (i*2 + 1, 0) + else: + mag_map[i, j] = (i*2, j) + phase_map[i, j] = (i*2 + 1, j) # Identity map needed for setting up shared axes ax_map = np.empty((nrows, ncols), dtype=tuple) @@ -563,18 +589,18 @@ def _share_axes(ref, share_map, axis): # Process magnitude, phase, and frequency axes for name, value, map, axis in zip( - ['share_magnitude', 'shape_phase', 'share_frequency'], + ['share_magnitude', 'share_phase', 'share_frequency'], [ share_magnitude, share_phase, share_frequency], [ mag_map, phase_map, ax_map], [ 'y', 'y', 'x']): if value in [True, 'all']: _share_axes(map[0 if axis == 'y' else -1, 0], map, axis) elif axis == 'y' and value in ['row']: - for i in range(noutputs): + for i in range(noutputs if not overlay_outputs else 1): _share_axes(map[i, 0], map[i], 'y') elif axis == 'x' and value in ['col']: for j in range(ncols): - _share_axes(map[-1, j], map[j], 'x') + _share_axes(map[-1, j], map[:, j], 'x') elif value in [False, 'none']: # TODO: turn off any sharing that is on pass @@ -610,6 +636,26 @@ def _share_axes(ref, share_map, axis): for j in range(ncols): out[i, j] = [] # unique list in each element + # Utility function for creating line label + def _make_line_label(response, output_index, input_index): + label = "" # start with an empty label + + # Add the output name if it won't appear as an axes label + if noutputs > 1 and overlay_outputs: + label += response.output_labels[output_index] + + # Add the input name if it won't appear as a column label + if ninputs > 1 and overlay_inputs: + label += ", " if label != "" else "" + label += response.input_labels[input_index] + + # Add the system name (will strip off later if redundant) + label += ", " if label != "" else "" + label += f"{response.sysname}" + + print(label) + return label + for index, response in enumerate(data): # Get the (pre-processed) data in fully indexed form mag = mag_data[index].reshape((noutputs, ninputs, -1)) @@ -630,14 +676,16 @@ def _share_axes(ref, share_map, axis): mag_plot = 20 * np.log10(mag[i, j]) if dB else mag[i, j] phase_plot = phase[i, j] * 180. / math.pi if deg else phase[i, j] + # Generate a label + label = _make_line_label(response, i, j) + # Magnitude if plot_magnitude: pltfcn = ax_mag.semilogx if dB else ax_mag.loglog - convert = (lambda x: 20 * np.log10(x)) if dB else (lambda x: x) # Plot the main data lines = pltfcn( - omega_plot, mag_plot, *fmt, label=sysname, **kwargs) + omega_plot, mag_plot, *fmt, label=label, **kwargs) out[mag_map[i, j]] += lines # Save the information needed for the Nyquist line @@ -652,7 +700,7 @@ def _share_axes(ref, share_map, axis): # Phase if plot_phase: lines = ax_phase.semilogx( - omega_plot, phase_plot, *fmt, label=sysname, **kwargs) + omega_plot, phase_plot, *fmt, label=label, **kwargs) out[phase_map[i, j]] += lines # Save the information needed for the Nyquist line @@ -907,7 +955,7 @@ def gen_zero_centered_series(val_min, val_max, period): fig.suptitle(new_title) # - # Label the axes (including trace labels) + # Label the axes (including header labels) # # Once the data are plotted, we label the axes. The horizontal axes is # always frequency and this is labeled only on the bottom most row. The @@ -919,9 +967,10 @@ def gen_zero_centered_series(val_min, val_max, period): # # Label the columns (do this first to get row labels in the right spot) - for j in range(ninputs): + for j in range(ncols): # If we have more than one column, label the individual responses - if noutputs > 1 or ninputs > 1: + if (noutputs > 1 and not overlay_outputs or ninputs > 1) \ + and not overlay_inputs: with plt.rc_context(_freqplot_rcParams): ax_array[0, j].set_title(f"From {data[0].input_labels[j]}") @@ -929,15 +978,15 @@ def gen_zero_centered_series(val_min, val_max, period): ax_array[-1, j].set_xlabel(freq_label % ("Hz" if Hz else "rad/s",)) # Label the rows - for i in range(noutputs): + for i in range(noutputs if not overlay_outputs else 1): if plot_magnitude: - ax_mag = ax_array[i*2 if plot_phase else i, 0] - ax_mag.set_ylabel("Magnitude (dB)" if dB else "Magnitude") + ax_mag = ax_array[mag_map[i, 0]] + ax_mag.set_ylabel(magnitude_label) if plot_phase: - ax_phase = ax_array[i*2 + 1 if plot_magnitude else i, 0] - ax_phase.set_ylabel("Phase [deg]" if deg else "Phase [rad]") + ax_phase = ax_array[phase_map[i, 0]] + ax_phase.set_ylabel(phase_label) - if noutputs > 1 or ninputs > 1: + if (noutputs > 1 or ninputs > 1) and not overlay_outputs: if plot_magnitude and plot_phase: # Get existing ylabel for left column and add a blank line ax_mag.set_ylabel("\n" + ax_mag.get_ylabel()) @@ -1226,30 +1275,6 @@ def nyquist_plot( 2 """ - # Check to see if legacy 'Plot' keyword was used - if 'Plot' in kwargs: - warnings.warn("'Plot' keyword is deprecated in nyquist_plot; " - "use 'plot'", FutureWarning) - # Map 'Plot' keyword to 'plot' keyword - plot = kwargs.pop('Plot') - - # Check to see if legacy 'labelFreq' keyword was used - if 'labelFreq' in kwargs: - warnings.warn("'labelFreq' keyword is deprecated in nyquist_plot; " - "use 'label_freq'", FutureWarning) - # Map 'labelFreq' keyword to 'label_freq' keyword - label_freq = kwargs.pop('labelFreq') - - # Check to see if legacy 'arrow_width' or 'arrow_length' were used - if 'arrow_width' in kwargs or 'arrow_length' in kwargs: - warnings.warn( - "'arrow_width' and 'arrow_length' keywords are deprecated in " - "nyquist_plot; use `arrow_size` instead", FutureWarning) - kwargs['arrow_size'] = \ - (kwargs.get('arrow_width', 0) + kwargs.get('arrow_length', 0)) / 2 - kwargs.pop('arrow_width', False) - kwargs.pop('arrow_length', False) - # Get values for params (and pop from list to allow keyword use in plot) omega_num_given = omega_num is not None omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) @@ -1839,47 +1864,36 @@ def gangof4_plot(P, C, omega=None, **kwargs): # # Singular values plot # -def singular_values_plot(syslist, omega=None, - plot=True, omega_limits=None, omega_num=None, - *args, **kwargs): - """Singular value plot for a system +def singular_values_response( + sys, omega=None, omega_limits=None, omega_num=None, Hz=False): + """Singular value response for a system. - Plots a singular value plot for the system over a (optional) frequency - range. + Computes the singular values for a system or list of systems over + a (optional) frequency range. Parameters ---------- - syslist : linsys + sys : (list of) LTI systems List of linear systems (single system is OK). omega : array_like List of frequencies in rad/sec to be used for frequency response. plot : bool If True (default), generate the singular values plot. omega_limits : array_like of two values - Limits of the frequency vector to generate. - If Hz=True the limits are in Hz otherwise in rad/s. + Limits of the frequency vector to generate. If Hz=True the + limits are in Hz otherwise in rad/s. omega_num : int Number of samples to plot. Default value (1000) set by config.defaults['freqplot.number_of_samples']. - dB : bool - If True, plot result in dB. Default value (False) set by - config.defaults['freqplot.dB']. Hz : bool - If True, plot frequency in Hz (omega must be provided in rad/sec). - Default value (False) set by config.defaults['freqplot.Hz'] + If True, assume frequencies are given in Hz. Default value + (False) set by config.defaults['freqplot.Hz'] Returns ------- - sigma : ndarray (or list of ndarray if len(syslist) > 1)) - singular values - omega : ndarray (or list of ndarray if len(syslist) > 1)) - frequency in rad/sec - - Other Parameters - ---------------- - grid : bool - If True, plot grid lines on gain and phase plots. Default is set by - `config.defaults['freqplot.grid']`. + response : FrequencyResponseData + Frequency response with the number of outputs equal to the + number of singular values in the response, and a single input. Examples -------- @@ -1887,119 +1901,251 @@ def singular_values_plot(syslist, omega=None, >>> den = [75, 1] >>> G = ct.tf([[[87.8], [-86.4]], [[108.2], [-109.6]]], ... [[den, den], [den, den]]) - >>> sigmas, omegas = ct.singular_values_plot(G, omega=omegas, plot=False) - - >>> sigmas, omegas = ct.singular_values_plot(G, 0.0, plot=False) + >>> response = ct.singular_values_response(G, omega=omegas) """ + # If argument was a singleton, turn it into a tuple + syslist = sys if isinstance(sys, (list, tuple)) else (sys,) + + if any([not isinstance(sys, LTI) for sys in syslist]): + ValueError("singular values can only be computed for LTI systems") + + # Compute the frequency responses for the systems + responses = frequency_response( + syslist, omega=omega, omega_limits=omega_limits, + omega_num=omega_num, Hz=Hz, squeeze=False) + + # Calculate the singular values for each system in the list + svd_responses = [] + for response in responses: + # Compute the singular values (permute indices to make things work) + fresp_permuted = response.fresp.transpose((2, 0, 1)) + sigma = np.linalg.svd(fresp_permuted, compute_uv=False).transpose() + sigma_fresp = sigma.reshape(sigma.shape[0], 1, sigma.shape[1]) + + # Save the singular values as an FRD object + svd_responses.append( + FrequencyResponseData( + sigma_fresp, response.omega, _return_singvals=True, + outputs=[f'$\\sigma_{k}$' for k in range(sigma.shape[0])], + inputs='inputs', dt=response.dt, plot_phase=False, + sysname=response.sysname, + title=f"Singular values for {response.sysname}")) + + # Return the responses in the same form that we received the systems + if isinstance(sys, (list, tuple)): + return svd_responses + else: + return svd_responses[0] - # Make a copy of the kwargs dictionary since we will modify it - kwargs = dict(kwargs) - # Get values for params (and pop from list to allow keyword use in plot) +def singular_values_plot( + data, omega=None, *fmt, plot=None, omega_limits=None, omega_num=None, + title=None, legend_loc='center right', **kwargs): + """Plot the singular values for a system. + + Plot the singular values for a system or list of systems. If + multiple systems are plotted, each system in the list is plotted + in a different color. + + Parameters + ---------- + data : list of `FrequencyResponseData` + List of :class:`FrequencyResponseData` objects. For backward + compatibility, a list of LTI systems can also be given. + omega : array_like + List of frequencies in rad/sec over to plot over. + dB : bool + If True, plot result in dB. Default is False. + Hz : bool + If True, plot frequency in Hz (omega must be provided in rad/sec). + Default value (False) set by config.defaults['freqplot.Hz']. + *fmt : :func:`matplotlib.pyplot.plot` format string, optional + Passed to `matplotlib` as the format string for all lines in the plot. + The `omega` parameter must be present (use omega=None if needed). + **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional + Additional keywords passed to `matplotlib` to specify line properties. + + Returns + ------- + out : 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). + + """ + # If argument was a singleton, turn it into a tuple + data = data if isinstance(data, (list, tuple)) else (data,) + + # Keyword processing dB = config._get_param( 'freqplot', 'dB', kwargs, _freqplot_defaults, pop=True) Hz = config._get_param( 'freqplot', 'Hz', kwargs, _freqplot_defaults, pop=True) grid = config._get_param( 'freqplot', 'grid', kwargs, _freqplot_defaults, pop=True) - plot = config._get_param( - 'freqplot', 'plot', plot, True) omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) + freqplot_rcParams = config._get_param( + 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) - # If argument was a singleton, turn it into a tuple - if not isinstance(syslist, (list, tuple)): - syslist = (syslist,) + # Process legacy system arguments + if any([isinstance(response, (StateSpace, TransferFunction)) + for response in data]): + warnings.warn( + "passing systems to `singular_values_plot` is deprecated; " + "use `singular_values_response()`", DeprecationWarning) + responses = singular_values_response( + data, omega=omega, omega_limits=omega_limits, + omega_num=omega_num) + legacy_usage = True + else: + responses = data + legacy_usage = False - omega, omega_range_given = _determine_omega_vector( - syslist, omega, omega_limits, omega_num, Hz=Hz) + # Process (legacy) plot keyword + if plot is not None: + warnings.warn( + "`singular_values_plot` return values of sigma, omega is " + "deprecated; use singular_values_response()", DeprecationWarning) + legacy_usage = True + else: + plot = True - omega = np.atleast_1d(omega) + # Extract the data we need for plotting + sigmas = [np.real(response.fresp[:, 0, :]) for response in responses] + omegas = [response.omega for response in responses] - if plot: - fig = plt.gcf() - ax_sigma = None + # Legacy processing for no plotting case + if plot is False: + if len(data) == 1: + return sigmas[0], omegas[0] + else: + return sigmas, omegas - # Get the current axes if they already exist - for ax in fig.axes: - if ax.get_label() == 'control-sigma': - ax_sigma = ax + fig = plt.gcf() # get current figure (or create new one) + ax_sigma = None # axes for plotting singular values - # If no axes present, create them from scratch - if ax_sigma is None: - plt.clf() - ax_sigma = plt.subplot(111, label='control-sigma') + # Get the current axes if they already exist + for ax in fig.axes: + if ax.get_label() == 'control-sigma': + ax_sigma = ax - # color cycle handled manually as all singular values - # of the same systems are expected to be of the same color - color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] - color_offset = 0 - if len(ax_sigma.lines) > 0: - last_color = ax_sigma.lines[-1].get_color() - if last_color in color_cycle: - color_offset = color_cycle.index(last_color) + 1 - - sigmas, omegas, nyquistfrqs = [], [], [] - for idx_sys, sys in enumerate(syslist): - omega_sys = np.asarray(omega) - if sys.isdtime(strict=True): - nyquistfrq = math.pi / sys.dt - if not omega_range_given: - # limit up to and including nyquist frequency - omega_sys = np.hstack(( - omega_sys[omega_sys < nyquistfrq], nyquistfrq)) + # If no axes present, create them from scratch + if ax_sigma is None: + if len(fig.axes) > 0: + # Create a new figure to avoid overwriting in the old one + fig = plt.figure() - omega_complex = np.exp(1j * omega_sys * sys.dt) - else: - nyquistfrq = None - omega_complex = 1j*omega_sys + with plt.rc_context(_freqplot_rcParams): + ax_sigma = plt.subplot(111, label='control-sigma') - fresp = sys(omega_complex, squeeze=False) + # Handle color cycle manually as all singular values + # of the same systems are expected to be of the same color + color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] + color_offset = 0 + if len(ax_sigma.lines) > 0: + last_color = ax_sigma.lines[-1].get_color() + if last_color in color_cycle: + color_offset = color_cycle.index(last_color) + 1 - fresp = fresp.transpose((2, 0, 1)) - sigma = np.linalg.svd(fresp, compute_uv=False) + # Create a list of lines for the output + out = np.empty(len(data), dtype=object) - sigmas.append(sigma.transpose()) # return shape is "channel first" - omegas.append(omega_sys) - nyquistfrqs.append(nyquistfrq) + for idx_sys, response in enumerate(responses): + sigma = sigmas[idx_sys].transpose() # frequency first for plotting + omega_sys = omegas[idx_sys] + if response.isdtime(strict=True): + nyquistfrq = math.pi / response.dt + else: + nyquistfrq = None - if plot: - color = color_cycle[(idx_sys + color_offset) % len(color_cycle)] - color = kwargs.pop('color', color) + color = color_cycle[(idx_sys + color_offset) % len(color_cycle)] + color = kwargs.pop('color', color) - # TODO: copy from above - nyquistfrq_plot = None - if Hz: - omega_plot = omega_sys / (2. * math.pi) - if nyquistfrq: - nyquistfrq_plot = nyquistfrq / (2. * math.pi) - else: - omega_plot = omega_sys - if nyquistfrq: - nyquistfrq_plot = nyquistfrq - sigma_plot = sigma - - if dB: - ax_sigma.semilogx(omega_plot, 20 * np.log10(sigma_plot), - color=color, *args, **kwargs) - else: - ax_sigma.loglog(omega_plot, sigma_plot, - color=color, *args, **kwargs) + # TODO: copy from above + nyquistfrq_plot = None + if Hz: + omega_plot = omega_sys / (2. * math.pi) + if nyquistfrq: + nyquistfrq_plot = nyquistfrq / (2. * math.pi) + else: + omega_plot = omega_sys + if nyquistfrq: + nyquistfrq_plot = nyquistfrq + sigma_plot = sigma + + # Decide on the system name + sysname = response.sysname if response.sysname is not None \ + else f"Unknown-{idx_sys}" + + if dB: + with plt.rc_context(freqplot_rcParams): + out[idx_sys] = ax_sigma.semilogx( + omega_plot, 20 * np.log10(sigma_plot), color=color, + label=sysname, *fmt, **kwargs) + else: + with plt.rc_context(freqplot_rcParams): + out[idx_sys] = ax_sigma.loglog( + omega_plot, sigma_plot, color=color, label=sysname, + *fmt, **kwargs) - if nyquistfrq_plot is not None: - ax_sigma.axvline(x=nyquistfrq_plot, color=color) + if nyquistfrq_plot is not None: + ax_sigma.axvline( + nyquistfrq_plot, color=color, linestyle='--', + label='_nyq_freq_' + sysname) # Add a grid to the plot + labeling - if plot: + if grid: ax_sigma.grid(grid, which='both') + with plt.rc_context(freqplot_rcParams): ax_sigma.set_ylabel( - "Singular Values (dB)" if dB else "Singular Values") - ax_sigma.set_xlabel("Frequency (Hz)" if Hz else "Frequency (rad/sec)") + "Singular Values [dB]" if dB else "Singular Values") + ax_sigma.set_xlabel("Frequency [Hz]" if Hz else "Frequency [rad/sec]") + + # List of systems that are included in this plot + labels, lines = [], [] + last_color, counter = None, 0 # label unknown systems + for i, line in enumerate(ax_sigma.get_lines()): + label = line.get_label() + if 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) + + # Add legend if there is more than one system plotted + if len(labels) > 1: + with plt.rc_context(freqplot_rcParams): + ax_sigma.legend(lines, labels, loc=legend_loc) + + # Add the title + if title is None: + title = "Singular values for " + ", ".join(labels) + with plt.rc_context(freqplot_rcParams): + fig.suptitle(title) + + if legacy_usage: + if len(responses) == 1: + return sigmas[0], omegas[0] + else: + return sigmas, omegas + + return out - if len(syslist) == 1: - return sigmas[0], omegas[0] - else: - return sigmas, omegas # # Utility functions # diff --git a/control/lti.py b/control/lti.py index 62eabd69d..da1e1826f 100644 --- a/control/lti.py +++ b/control/lti.py @@ -372,7 +372,8 @@ def evalfr(sys, x, squeeze=None): def frequency_response( - sys, omega=None, omega_limits=None, omega_num=None, squeeze=None): + sys, omega=None, omega_limits=None, omega_num=None, + Hz=None, squeeze=None): """Frequency response of an LTI system at multiple angular frequencies. In general the system may be multiple input, multiple output (MIMO), where @@ -453,7 +454,7 @@ def frequency_response( # Get the common set of frequencies to use omega_syslist, omega_range_given = _determine_omega_vector( - syslist, omega, omega_limits, omega_num) + syslist, omega, omega_limits, omega_num, Hz=Hz) responses = [] for sys_ in syslist: diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 48737eaa8..ce68f5901 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -84,8 +84,7 @@ def test_default_deprecation(self): # assert that reset defaults keeps the custom type ct.config.reset_defaults() - with pytest.warns(FutureWarning, - match='bode.* has been renamed to.*freqplot'): + with pytest.raises(KeyError): assert ct.config.defaults['bode.Hz'] \ == ct.config.defaults['freqplot.Hz'] diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index ca3c813a3..773e7e943 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -317,9 +317,9 @@ def test_nyquist_exceptions(): match="only supports SISO"): ct.nyquist_plot(sys) - # Legacy keywords for arrow size + # Legacy keywords for arrow size (no longer supported) sys = ct.rss(2, 1, 1) - with pytest.warns(FutureWarning, match="use `arrow_size` instead"): + with pytest.raises(AttributeError): ct.nyquist_plot(sys, arrow_width=8, arrow_length=6) # Unknown arrow keyword From 2d6a779247d5a19e2f384c1680014b5b3646603c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 15 Jul 2023 18:36:37 -0700 Subject: [PATCH 0365/1025] implement FrequencyResponseList class with plot() method --- control/frdata.py | 5 +++-- control/freqplot.py | 44 ++++++++++++++++++++++++++++++++++++++++---- control/lti.py | 12 ++++++++---- 3 files changed, 51 insertions(+), 10 deletions(-) diff --git a/control/frdata.py b/control/frdata.py index 383529afb..91e6aa683 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -211,8 +211,9 @@ def __init__(self, *args, **kwargs): self.sysname = kwargs.pop('sysname', None) # Keep track of default properties for plotting - self.plot_phase=kwargs.pop('plot_phase', None) - self.title=kwargs.pop('title', None) + self.plot_phase = kwargs.pop('plot_phase', None) + self.title = kwargs.pop('title', None) + self.plot_type = kwargs.pop('plot_type', 'bode') # Keep track of return type self.return_magphase=kwargs.pop('return_magphase', False) diff --git a/control/freqplot.py b/control/freqplot.py index a4ea90d54..c2e57ef87 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -111,9 +111,41 @@ 'freqplot.share_frequency': 'col', } +# +# Frequency response data list class +# +# This class is a subclass of list that adds a plot() method, enabling +# direct plotting from routines returning a list of FrequencyResponseData +# objects. +# + +class FrequencyResponseList(list): + def plot(self, *args, plot_type=None, **kwargs): + if plot_type == None: + for response in self: + if plot_type is not None and response.plot_type != plot_type: + raise TypeError( + "inconsistent plot_types in data; set plot_type " + "to 'bode', 'svplot', or 'nyquist'") + plot_type = response.plot_type + + if plot_type == 'bode': + bode_plot(self, *args, **kwargs) + elif plot_type == 'svplot': + singular_values_plot(self, *args, **kwargs) + elif plot_type == 'nyquist': + # nyquist_plot(self, *args, **kwargs) + raise NotImplementedError("Nyquist plots not yet supported") + else: + raise ValueError(f"unknown plot type '{plot_type}'") + # # Bode plot # +# This is the default method for plotting frequency responses. There are +# lots of options available for tuning the format of the plot, (hopefully) +# covering most of the common use cases. +# def bode_plot( data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, @@ -653,7 +685,6 @@ def _make_line_label(response, output_index, input_index): label += ", " if label != "" else "" label += f"{response.sysname}" - print(label) return label for index, response in enumerate(data): @@ -1927,14 +1958,14 @@ def singular_values_response( svd_responses.append( FrequencyResponseData( sigma_fresp, response.omega, _return_singvals=True, - outputs=[f'$\\sigma_{k}$' for k in range(sigma.shape[0])], + outputs=[f'$\\sigma_{{{k+1}}}$' for k in range(sigma.shape[0])], inputs='inputs', dt=response.dt, plot_phase=False, - sysname=response.sysname, + sysname=response.sysname, plot_type='svplot', title=f"Singular values for {response.sysname}")) # Return the responses in the same form that we received the systems if isinstance(sys, (list, tuple)): - return svd_responses + return FrequencyResponseList(svd_responses) else: return svd_responses[0] @@ -2017,6 +2048,11 @@ def singular_values_plot( else: plot = True + # Warn the user if we got past something that is not real-valued + if any([not np.allclose(np.imag(response.fresp[:, 0, :]), 0) + for response in responses]): + warnings.warn("data has non-zero imaginary component") + # Extract the data we need for plotting sigmas = [np.real(response.fresp[:, 0, :]) for response in responses] omegas = [response.omega for response in responses] diff --git a/control/lti.py b/control/lti.py index da1e1826f..34de8df88 100644 --- a/control/lti.py +++ b/control/lti.py @@ -119,8 +119,8 @@ def frequency_response(self, omega=None, squeeze=None): # Return the data as a frequency response data object response = self(s) return FrequencyResponseData( - response, omega, return_magphase=True, squeeze=squeeze, dt=self.dt, - sysname=self.name) + response, omega, return_magphase=True, squeeze=squeeze, + dt=self.dt, sysname=self.name, plot_type='bode') def dcgain(self): """Return the zero-frequency gain""" @@ -470,8 +470,12 @@ def frequency_response( # Compute the frequency response responses.append(sys_.frequency_response(omega_sys, squeeze=squeeze)) - - return responses if isinstance(sys, (list, tuple)) else responses[0] + + if isinstance(sys, (list, tuple)): + from .freqplot import FrequencyResponseList + return FrequencyResponseList(responses) + else: + return responses[0] # Alternative name (legacy) def freqresp(sys, omega): From 6ce29da9bf8ab46089b9f7e2d4ccfe39f65522c0 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 15 Jul 2023 22:16:18 -0700 Subject: [PATCH 0366/1025] TMP: update margins processing (display_margins) --- control/config.py | 4 +- control/freqplot.py | 138 ++++++++++++++++----------------- control/sisotool.py | 3 +- control/tests/freqresp_test.py | 17 ++-- 4 files changed, 80 insertions(+), 82 deletions(-) diff --git a/control/config.py b/control/config.py index 1ed8b5dd5..59f0e4825 100644 --- a/control/config.py +++ b/control/config.py @@ -326,13 +326,13 @@ def use_legacy_defaults(version): # # Use this function to handle a legacy keyword that has been renamed. This # function pops the old keyword off of the kwargs dictionary and issues a -# warning. if both the old and new keyword are present, a ControlArgument +# warning. If both the old and new keyword are present, a ControlArgument # exception is raised. # def _process_legacy_keyword(kwargs, oldkey, newkey, newval): if kwargs.get(oldkey) is not None: warnings.warn( - f"keyworld '{oldkey}' is deprecated; use '{newkey}'", + f"keyword '{oldkey}' is deprecated; use '{newkey}'", DeprecationWarning) if newval is not None: raise ControlArgument( diff --git a/control/freqplot.py b/control/freqplot.py index c2e57ef87..08f4729e7 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -149,10 +149,10 @@ def plot(self, *args, plot_type=None, **kwargs): def bode_plot( data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, - plot=None, plot_magnitude=True, plot_phase=None, margins=None, + plot=None, plot_magnitude=True, plot_phase=None, overlay_outputs=None, overlay_inputs=None, phase_label=None, - magnitude_label=None, - margin_info=False, method='best', legend_map=None, legend_loc=None, + magnitude_label=None, display_margins=None, + margins_method='best', legend_map=None, legend_loc=None, sharex=None, sharey=None, title=None, relabel=True, **kwargs): """Bode plot for a system. @@ -173,11 +173,12 @@ def bode_plot( deg : bool If True, plot phase in degrees (else radians). Default value (True) set by config.defaults['freqplot.deg']. - margins : bool - If True, plot gain and phase margin. (TODO: merge with margin_info) - margin_info : bool - If True, plot information about gain and phase margin. - method : str, optional + display_margins : bool or str + If True, draw gain and phase margin lines on the magnitude and phase + graphs and display the margins at the top of the graph. If set to + 'overlay', the values for the gain and phase margin are placed on + the graph. Setting display_margins turns off the axes grid. + margins_method : str, optional Method to use in computing margins (see :func:`stability_margins`). *fmt : :func:`matplotlib.pyplot.plot` format string, optional Passed to `matplotlib` as the format string for all lines in the plot. @@ -269,8 +270,6 @@ def bode_plot( 'freqplot', 'Hz', kwargs, _freqplot_defaults, pop=True) grid = config._get_param( 'freqplot', 'grid', kwargs, _freqplot_defaults, pop=True) - margins = config._get_param( - 'freqplot', 'margins', margins, False) wrap_phase = config._get_param( 'freqplot', 'wrap_phase', kwargs, _freqplot_defaults, pop=True) initial_phase = config._get_param( @@ -300,6 +299,19 @@ def bode_plot( "sharex cannot be present with share_frequency") kwargs['share_frequency'] = sharex + # Legacy keywords for margins + display_margins = config._process_legacy_keyword( + kwargs, 'margins', 'display_margins', display_margins) + if kwargs.pop('margin_info', False): + warnings.warn( + "keyword 'margin_info' is deprecated; " + "use 'display_margins='overlay'") + if display_margins is False: + raise ValueError( + "conflicting_keywords: `display_margins` and `margin_info`") + margins_method = config._process_legacy_keyword( + kwargs, 'method', 'margins_method', margins_method) + if not isinstance(data, (list, tuple)): data = [data] @@ -725,8 +737,8 @@ def _make_line_label(response, output_index, input_index): nyq_freq, color=lines[0].get_color(), linestyle='--', label='_nyq_mag_' + sysname) - # Add a grid to the plot + labeling (TODO? move to later?) - ax_mag.grid(grid and not margins, which='both') + # Add a grid to the plot + ax_mag.grid(grid and not display_margins, which='both') # Phase if plot_phase: @@ -740,22 +752,22 @@ def _make_line_label(response, output_index, input_index): nyq_freq, color=lines[0].get_color(), linestyle='--', label='_nyq_phase_' + sysname) - # Add a grid to the plot + labeling - ax_phase.grid(grid and not margins, which='both') + # Add a grid to the plot + ax_phase.grid(grid and not display_margins, which='both') + print(f"phase_ylim={ax_phase.get_ylim()}") # - # Plot gain and phase margins (SISO only) + # Display gain and phase margins (SISO only) # - # Show the phase and gain margins in the plot - if margins: + if display_margins: if ninputs > 1 or noutputs > 1: raise NotImplementedError( "margins are not available for MIMO systems") # Compute stability margins for the system - margin = stability_margins(response, method=method) - gm, pm, Wcg, Wcp = (margin[i] for i in [0, 1, 3, 4]) + margins = stability_margins(response, method=margins_method) + gm, pm, Wcg, Wcp = (margins[i] for i in [0, 1, 3, 4]) # Figure out sign of the phase at the first gain crossing # (needed if phase_wrap is True) @@ -780,69 +792,47 @@ def _make_line_label(response, output_index, input_index): math.radians(phase_limit), color='k', linestyle=':', zorder=-20) phase_ylim = ax_phase.get_ylim() + print(f"{phase_ylim=}") # Annotate the phase margin (if it exists) if plot_phase and pm != float('inf') and Wcp != float('nan'): - if dB: - ax_mag.semilogx( - [Wcp, Wcp], [0., -1e5], - color='k', linestyle=':', zorder=-20) - else: - ax_mag.loglog( - [Wcp, Wcp], [1., 1e-8], - color='k', linestyle=':', zorder=-20) + # Draw dotted lines marking the gain crossover frequencies + if plot_magnitude: + ax_mag.axvline(Wcp, color='k', linestyle=':', zorder=-30) + ax_phase.axvline(Wcp, color='k', linestyle=':', zorder=-30) + # Draw solid segments indicating the margins if deg: - ax_phase.semilogx( - [Wcp, Wcp], [1e5, phase_limit + pm], - color='k', linestyle=':', zorder=-20) ax_phase.semilogx( [Wcp, Wcp], [phase_limit + pm, phase_limit], color='k', zorder=-20) else: - ax_phase.semilogx( - [Wcp, Wcp], [1e5, math.radians(phase_limit) + - math.radians(pm)], - color='k', linestyle=':', zorder=-20) ax_phase.semilogx( [Wcp, Wcp], [math.radians(phase_limit) + math.radians(pm), math.radians(phase_limit)], color='k', zorder=-20) - ax_phase.set_ylim(phase_ylim) - # Annotate the gain margin (if it exists) if plot_magnitude and gm != float('inf') and \ Wcg != float('nan'): + # Draw dotted lines marking the phase crossover frequencies + ax_mag.axvline(Wcg, color='k', linestyle=':', zorder=-30) + if plot_phase: + ax_phase.axvline(Wcg, color='k', linestyle=':', zorder=-30) + + # Draw solid segments indicating the margins if dB: - ax_mag.semilogx( - [Wcg, Wcg], [-20.*np.log10(gm), -1e5], - color='k', linestyle=':', zorder=-20) ax_mag.semilogx( [Wcg, Wcg], [0, -20*np.log10(gm)], color='k', zorder=-20) else: - ax_mag.loglog( - [Wcg, Wcg], [1./gm, 1e-8], color='k', - linestyle=':', zorder=-20) ax_mag.loglog( [Wcg, Wcg], [1., 1./gm], color='k', zorder=-20) - if plot_phase: - if deg: - ax_phase.semilogx( - [Wcg, Wcg], [0, phase_limit], - color='k', linestyle=':', zorder=-20) - else: - ax_phase.semilogx( - [Wcg, Wcg], [0, math.radians(phase_limit)], - color='k', linestyle=':', zorder=-20) - - ax_mag.set_ylim(mag_ylim) - ax_phase.set_ylim(phase_ylim) - - if margin_info: + if display_margins == 'overlay': + # TODO: figure out how to handle case of multiple lines + # Put the margin information in the lower left corner if plot_magnitude: ax_mag.text( 0.04, 0.06, @@ -854,6 +844,7 @@ def _make_line_label(response, output_index, input_index): verticalalignment='bottom', transform=ax_mag.transAxes, fontsize=8 if int(mpl.__version__[0]) == 1 else 6) + if plot_phase: ax_phase.text( 0.04, 0.06, @@ -865,17 +856,24 @@ def _make_line_label(response, output_index, input_index): verticalalignment='bottom', transform=ax_phase.transAxes, fontsize=8 if int(mpl.__version__[0]) == 1 else 6) + else: - # TODO: gets overwritten below - plt.suptitle( - "Gm = %.2f %s(at %.2f %s), " - "Pm = %.2f %s (at %.2f %s)" % - (20*np.log10(gm) if dB else gm, - 'dB ' if dB else '', - Wcg, 'Hz' if Hz else 'rad/s', - pm if deg else math.radians(pm), - 'deg' if deg else 'rad', - Wcp, 'Hz' if Hz else 'rad/s')) + # Put the title underneath the suptitle (one line per system) + ax = ax_mag if ax_mag else ax_phase + axes_title = ax.get_title() + if axes_title is not None and axes_title != "": + axes_title += "\n" + with plt.rc_context(_freqplot_rcParams): + ax.set_title( + axes_title + f"{sysname}: " + "Gm = %.2f %s(at %.2f %s), " + "Pm = %.2f %s (at %.2f %s)" % + (20*np.log10(gm) if dB else gm, + 'dB ' if dB else '', + Wcg, 'Hz' if Hz else 'rad/s', + pm if deg else math.radians(pm), + 'deg' if deg else 'rad', + Wcp, 'Hz' if Hz else 'rad/s')) # # Finishing handling axes limit sharing @@ -887,12 +885,12 @@ def _make_line_label(response, output_index, input_index): # * manually generated labels and grids need to reflect the limts for # shared axes, which we don't know until we have plotted everything; # - # * the use of loglog and semilog regenerate the labels (not quite sure - # why, since using sharex and sharey in subplots does not have this - # behavior). + # * the loglog and semilog functions regenerate the labels (not quite + # sure why, since using sharex and sharey in subplots does not have + # this behavior). # # Note: as before, if the various share_* keywords are None then a - # previous set of axes are available and no updates are made. + # previous set of axes are available and no updates are made. (TODO: true?) # for i in range(noutputs): diff --git a/control/sisotool.py b/control/sisotool.py index a66160cef..f059c0af3 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -112,8 +112,7 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, 'omega_limits': omega_limits, 'omega_num' : omega_num, 'ax': axes[:, 0:1], - 'margins': margins_bode, - 'margin_info': True, + 'display_margins': 'overlay' if margins_bode else False, } # Check to see if legacy 'PrintGain' keyword was used diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index f788e23ea..e4d981fc1 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -204,27 +204,28 @@ def test_bode_margin(dB, maginfty1, maginfty2, gminv, fig = plt.gcf() allaxes = fig.get_axes() + # TODO: update with better tests for new margin plots mag_to_infinity = (np.array([Wcp, Wcp]), np.array([maginfty1, maginfty2])) - assert_allclose(mag_to_infinity, - allaxes[0].lines[2].get_data(), + assert_allclose(mag_to_infinity[0], + allaxes[0].lines[2].get_data()[0], rtol=1e-5) gm_to_infinty = (np.array([Wcg, Wcg]), np.array([gminv, maginfty2])) - assert_allclose(gm_to_infinty, - allaxes[0].lines[3].get_data(), + assert_allclose(gm_to_infinty[0], + allaxes[0].lines[3].get_data()[0], rtol=1e-5) one_to_gm = (np.array([Wcg, Wcg]), np.array([maginfty1, gminv])) - assert_allclose(one_to_gm, allaxes[0].lines[4].get_data(), + assert_allclose(one_to_gm[0], allaxes[0].lines[4].get_data()[0], rtol=1e-5) pm_to_infinity = (np.array([Wcp, Wcp]), np.array([1e5, pm])) - assert_allclose(pm_to_infinity, - allaxes[1].lines[2].get_data(), + assert_allclose(pm_to_infinity[0], + allaxes[1].lines[2].get_data()[0], rtol=1e-5) pm_to_phase = (np.array([Wcp, Wcp]), @@ -234,7 +235,7 @@ def test_bode_margin(dB, maginfty1, maginfty2, gminv, phase_to_infinity = (np.array([Wcg, Wcg]), np.array([0, p0])) - assert_allclose(phase_to_infinity, allaxes[1].lines[4].get_data(), + assert_allclose(phase_to_infinity[0], allaxes[1].lines[4].get_data()[0], rtol=1e-5) From d07422db2bfbd40103db94454d7dd457f3904714 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 16 Jul 2023 08:10:03 -0700 Subject: [PATCH 0367/1025] update plot handling to allow system arguments --- control/freqplot.py | 85 +++++++++++++++------------------- control/lti.py | 7 ++- control/matlab/wrappers.py | 9 ++-- control/tests/config_test.py | 20 +++++--- control/tests/discrete_test.py | 2 +- control/tests/freqresp_test.py | 9 ++-- 6 files changed, 68 insertions(+), 64 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 08f4729e7..90db65672 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -201,8 +201,10 @@ def bode_plot( Other Parameters ---------------- - plot : bool - If True (default), plot magnitude and phase. + plot : bool, optional + (legacy) If given, `bode_plot` returns the legacy return values + of magnitude, phase, and frequency. If False, just return the + values with no plot. omega_limits : array_like of two values Limits of the to generate frequency vector. If Hz=True the limits are in Hz otherwise in rad/s. @@ -232,9 +234,13 @@ def bode_plot( Notes ----- - 1. Alternatively, you may use the lower-level methods - :meth:`LTI.frequency_response` or ``sys(s)`` or ``sys(z)`` or to - generate the frequency response for a single system. + 1. Starting with python-control version 0.10, `bode_plot`returns an + array of lines instead of magnitude, phase, and frequency. To + recover the # old behavior, call `bode_plot` with `plot=True`, which + will force the legacy return values to be used (with a warning). To + obtain just the frequency response of a system (or list of systems) + without plotting, use the :func:`~control.frequency_response` + command. 2. If a discrete time model is given, the frequency response is plotted along the upper branch of the unit circle, using the mapping ``z = @@ -242,12 +248,6 @@ def bode_plot( is the discrete timebase. If timebase not specified (``dt=True``), `dt` is set to 1. - 3. The legacy version of this function is invoked if instead of passing - frequency response data, a system (or list of systems) is passed as - the first argument, or if the (deprecated) keyword `plot` is set to - True or False. The return value is then given as `mag`, `phase`, - `omega` for the plotted frequency response (SISO only). - Examples -------- >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) @@ -315,18 +315,6 @@ def bode_plot( if not isinstance(data, (list, tuple)): data = [data] - # For backwards compatibility, allow systems in the data list - if all([isinstance( - sys, (StateSpace, TransferFunction)) for sys in data]): - data = frequency_response( - data, omega=omega, omega_limits=omega_limits, - omega_num=omega_num) - warnings.warn( - "passing systems to `bode_plot` is deprecated; " - "use `frequency_response()`", DeprecationWarning) - if plot is None: - plot = True # Keep track of legacy usage (see notes below) - # # Pre-process the data to be plotted (unwrap phase) # @@ -337,6 +325,13 @@ def bode_plot( # the list of lines created, which is the new output for _plot functions. # + # If we were passed a list of systems, convert to data + if all([isinstance( + sys, (StateSpace, TransferFunction)) for sys in data]): + data = frequency_response( + data, omega=omega, omega_limits=omega_limits, + omega_num=omega_num, Hz=Hz) + # If plot_phase is not specified, check the data first, otherwise true if plot_phase is None: plot_phase = True if data[0].plot_phase is None else data[0].plot_phase @@ -409,28 +404,25 @@ def bode_plot( # # There are three possibilities at this stage in the code: # - # * plot == True: either set explicitly by the user or we were passed a - # non-FRD system instead of data. Return mag, phase, omega, with a - # warning. + # * plot == True: set explicitly by the user. Return mag, phase, omega, + # with a warning. # # * plot == False: set explicitly by the user. Return mag, phase, # omega, with a warning. # - # * plot == None: this is the new default setting and if it hasn't been - # changed, then we use the v0.10+ standard of returning an array of + # * plot == None: this is the new default setting. Return an array of # lines that were drawn. # - # The one case that can cause problems is that a user called - # `bode_plot` with an FRD system, didn't set the plot keyword - # explicitly, and expected mag, phase, omega as a return value. This - # is hopefully a rare case (it wasn't in any of our unit tests nor - # examples at the time of v0.10.0). + # If `bode_plot` was called with no `plot` argument and the return + # values were used, the new code will cause problems (you get an array + # of lines instead of magnitude, phase, and frequency). To recover the + # old behavior, call `bode_plot` with `plot=True`. # # All of this should be removed in v0.11+ when we get rid of deprecated # code. # - if plot is True or plot is False: + if plot is not None: warnings.warn( "`bode_plot` return values of mag, phase, omega is deprecated; " "use frequency_response()", DeprecationWarning) @@ -1828,8 +1820,8 @@ def _compute_curve_offset(resp, mask, max_offset): def gangof4_response(P, C, omega=None, Hz=False): """Compute the response of the "Gang of 4" transfer functions for a system. - Generates a 2x2 plot showing the "Gang of 4" sensitivity functions - [T, PS; CS, S]. + Generates a 2x2 frequency response for the "Gang of 4" sensitivity + functions [T, PS; CS, S]. Parameters ---------- @@ -1840,7 +1832,9 @@ def gangof4_response(P, C, omega=None, Hz=False): Returns ------- - None + response : :class:`~control.FrequencyResponseData` + Frequency response with inputs 'r' and 'd' and outputs 'y', and 'u' + representing the 2x2 matrix of transfer functions in the Gang of 4. Examples -------- @@ -1989,6 +1983,10 @@ def singular_values_plot( Hz : bool If True, plot frequency in Hz (omega must be provided in rad/sec). Default value (False) set by config.defaults['freqplot.Hz']. + plot : bool, optional + (legacy) If given, `singular_values_plot` returns the legacy return + values of magnitude, phase, and frequency. If False, just return + the values with no plot. *fmt : :func:`matplotlib.pyplot.plot` format string, optional Passed to `matplotlib` as the format string for all lines in the plot. The `omega` parameter must be present (use omega=None if needed). @@ -2023,28 +2021,20 @@ def singular_values_plot( freqplot_rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) - # Process legacy system arguments + # Convert systems into frequency responses if any([isinstance(response, (StateSpace, TransferFunction)) for response in data]): - warnings.warn( - "passing systems to `singular_values_plot` is deprecated; " - "use `singular_values_response()`", DeprecationWarning) responses = singular_values_response( data, omega=omega, omega_limits=omega_limits, omega_num=omega_num) - legacy_usage = True else: responses = data - legacy_usage = False # Process (legacy) plot keyword if plot is not None: warnings.warn( "`singular_values_plot` return values of sigma, omega is " "deprecated; use singular_values_response()", DeprecationWarning) - legacy_usage = True - else: - plot = True # Warn the user if we got past something that is not real-valued if any([not np.allclose(np.imag(response.fresp[:, 0, :]), 0) @@ -2172,7 +2162,8 @@ def singular_values_plot( with plt.rc_context(freqplot_rcParams): fig.suptitle(title) - if legacy_usage: + # Legacy return processing + if plot is not None: if len(responses) == 1: return sigmas[0], omegas[0] else: diff --git a/control/lti.py b/control/lti.py index 34de8df88..14594f00f 100644 --- a/control/lti.py +++ b/control/lti.py @@ -424,8 +424,11 @@ def frequency_response( Notes ----- - This function is a wrapper for :meth:`StateSpace.frequency_response` and - :meth:`TransferFunction.frequency_response`. + 1. This function is a wrapper for :meth:`StateSpace.frequency_response` + and :meth:`TransferFunction.frequency_response`. + + 2. You can also use the lower-level methods ``sys(s)`` or ``sys(z)`` to + generate the frequency response for a single system. Examples -------- diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 59c6cc7f3..5eb7786fe 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -64,11 +64,14 @@ def bode(*args, **kwargs): """ from ..freqplot import bode_plot + # Use the plot keyword to get legacy behavior + # TODO: update to call frequency_response and then bode_plot + kwargs = dict(kwargs) # make a copy since we modify this + if 'plot' not in kwargs: + kwargs['plot'] = True + # Turn off deprecation warning with warnings.catch_warnings(): - warnings.filterwarnings( - 'ignore', message='passing systems .* is deprecated', - category=DeprecationWarning) warnings.filterwarnings( 'ignore', message='.* return values of .* is deprecated', category=DeprecationWarning) diff --git a/control/tests/config_test.py b/control/tests/config_test.py index ce68f5901..3baff2b21 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -203,36 +203,42 @@ def test_custom_bode_default(self, mplcleanup): @pytest.mark.usefixtures("legacy_plot_signature") def test_bode_number_of_samples(self, mplcleanup): # Set the number of samples (default is 50, from np.logspace) - mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, omega_num=87) + mag_ret, phase_ret, omega_ret = ct.bode_plot( + self.sys, omega_num=87, plot=True) assert len(mag_ret) == 87 # Change the default number of samples ct.config.defaults['freqplot.number_of_samples'] = 76 - mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys) + mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, plot=True) assert len(mag_ret) == 76 # Override the default number of samples - mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, omega_num=87) + mag_ret, phase_ret, omega_ret = ct.bode_plot( + self.sys, omega_num=87, plot=True) assert len(mag_ret) == 87 @pytest.mark.usefixtures("legacy_plot_signature") def test_bode_feature_periphery_decade(self, mplcleanup): # Generate a sample Bode plot to figure out the range it uses ct.reset_defaults() # Make sure starting state is correct - mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, Hz=False) + mag_ret, phase_ret, omega_ret = ct.bode_plot( + self.sys, Hz=False, plot=True) omega_min, omega_max = omega_ret[[0, -1]] # Reset the periphery decade value (should add one decade on each end) ct.config.defaults['freqplot.feature_periphery_decades'] = 2 - mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, Hz=False) + mag_ret, phase_ret, omega_ret = ct.bode_plot( + self.sys, Hz=False, plot=True) np.testing.assert_almost_equal(omega_ret[0], omega_min/10) np.testing.assert_almost_equal(omega_ret[-1], omega_max * 10) # Make sure it also works in rad/sec, in opposite direction - mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, Hz=True) + mag_ret, phase_ret, omega_ret = ct.bode_plot( + self.sys, Hz=True, plot=True) omega_min, omega_max = omega_ret[[0, -1]] ct.config.defaults['freqplot.feature_periphery_decades'] = 1 - mag_ret, phase_ret, omega_ret = ct.bode_plot(self.sys, Hz=True) + mag_ret, phase_ret, omega_ret = ct.bode_plot( + self.sys, Hz=True, plot=True) np.testing.assert_almost_equal(omega_ret[0], omega_min*10) np.testing.assert_almost_equal(omega_ret[-1], omega_max/10) diff --git a/control/tests/discrete_test.py b/control/tests/discrete_test.py index e8a6b5199..96777011e 100644 --- a/control/tests/discrete_test.py +++ b/control/tests/discrete_test.py @@ -465,7 +465,7 @@ def test_discrete_bode(self, tsys): # Create a simple discrete time system and check the calculation sys = TransferFunction([1], [1, 0.5], 1) omega = [1, 2, 3] - mag_out, phase_out, omega_out = bode(sys, omega) + mag_out, phase_out, omega_out = bode(sys, omega, plot=True) H_z = list(map(lambda w: 1./(np.exp(1.j * w) + 0.5), omega)) np.testing.assert_array_almost_equal(omega, omega_out) np.testing.assert_array_almost_equal(mag_out, np.absolute(H_z)) diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index e4d981fc1..f452fe7df 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -360,11 +360,11 @@ def test_options(editsdefaults): ]) def test_initial_phase(TF, initial_phase, default_phase, expected_phase): # Check initial phase of standard transfer functions - mag, phase, omega = ctrl.bode(TF) + mag, phase, omega = ctrl.bode(TF, plot=True) assert(abs(phase[0] - default_phase) < 0.1) # Now reset the initial phase to +180 and see if things work - mag, phase, omega = ctrl.bode(TF, initial_phase=initial_phase) + mag, phase, omega = ctrl.bode(TF, initial_phase=initial_phase, plot=True) assert(abs(phase[0] - expected_phase) < 0.1) # Make sure everything works in rad/sec as well @@ -372,7 +372,8 @@ def test_initial_phase(TF, initial_phase, default_phase, expected_phase): plt.xscale('linear') # avoids xlim warning on next line plt.clf() # clear previous figure (speeds things up) mag, phase, omega = ctrl.bode( - TF, initial_phase=initial_phase/180. * math.pi, deg=False) + TF, initial_phase=initial_phase/180. * math.pi, + deg=False, plot=True) assert(abs(phase[0] - expected_phase) < 0.1) @@ -399,7 +400,7 @@ def test_initial_phase(TF, initial_phase, default_phase, expected_phase): -270, -3*math.pi/2, math.pi/2, id="order5, -270"), ]) def test_phase_wrap(TF, wrap_phase, min_phase, max_phase): - mag, phase, omega = ctrl.bode(TF, wrap_phase=wrap_phase) + mag, phase, omega = ctrl.bode(TF, wrap_phase=wrap_phase, plot=True) assert(min(phase) >= min_phase) assert(max(phase) <= max_phase) From e5360dc0d8073e75481b379ea7c44b6c9a9fb150 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 16 Jul 2023 13:43:03 -0700 Subject: [PATCH 0368/1025] refactoring of nyquist into response/plot + updated unit tests, examples --- control/ctrlutil.py | 13 +- control/descfcn.py | 11 +- control/freqplot.py | 748 +++++++++++++++++--------- control/lti.py | 8 +- control/matlab/wrappers.py | 10 +- control/tests/kwargs_test.py | 34 +- control/tests/nyquist_test.py | 150 +++--- examples/bode-and-nyquist-plots.ipynb | 22 +- examples/singular-values-plot.ipynb | 8 +- 9 files changed, 639 insertions(+), 365 deletions(-) diff --git a/control/ctrlutil.py b/control/ctrlutil.py index aeb0c30f1..6cd32593b 100644 --- a/control/ctrlutil.py +++ b/control/ctrlutil.py @@ -86,18 +86,9 @@ def unwrap(angle, period=2*math.pi): return angle def issys(obj): - """Return True if an object is a Linear Time Invariant (LTI) system, - otherwise False. + """Deprecated function to check if an object is an LTI system. - Examples - -------- - >>> G = ct.tf([1], [1, 1]) - >>> ct.issys(G) - True - - >>> K = np.array([[1, 1]]) - >>> ct.issys(K) - False + Use isinstance(obj, ct.LTI) """ warnings.warn("issys() is deprecated; use isinstance(obj, ct.LTI)", diff --git a/control/descfcn.py b/control/descfcn.py index 985046e19..a5cf0638d 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -18,7 +18,7 @@ import scipy from warnings import warn -from .freqplot import nyquist_plot +from .freqplot import nyquist_response __all__ = ['describing_function', 'describing_function_plot', 'DescribingFunctionNonlinearity', 'friction_backlash_nonlinearity', @@ -259,10 +259,11 @@ def describing_function_plot( warn = omega is None # Start by drawing a Nyquist curve - count, contour = nyquist_plot( - H, omega, plot=True, return_contour=True, - warn_encirclements=warn, warn_nyquist=warn, **kwargs) - H_omega, H_vals = contour.imag, H(contour) + response = nyquist_response( + H, omega, warn_encirclements=warn, warn_nyquist=warn, + check_kwargs=False, **kwargs) + response.plot(**kwargs) + H_omega, H_vals = response.contour.imag, H(response.contour) # Compute the describing function df = describing_function(F, A) diff --git a/control/freqplot.py b/control/freqplot.py index 90db65672..7762db052 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -14,13 +14,14 @@ # [i] Create __main__ in freqplot_test to view results (a la timeplot_test) # [ ] Get sisotool working in iPython and document how to make it work # [i] Allow share_magnitude, share_phase, share_frequency keywords for units -# [ ] Re-implement including of gain/phase margin in the title (?) +# [i] Re-implement including of gain/phase margin in the title (?) # [i] Change gangof4 to use bode_plot(plot_phase=False) w/ proper labels # [ ] Allow use of subplot labels instead of output/input subtitles # [ ] Add line labels to gangof4 # [ ] Update FRD to allow nyquist_response contours # [ ] Allow frequency range to be overridden in bode_plot # [ ] Unit tests for discrete time systems with different sample times +# [ ] Check examples/bode-and-nyquist-plots.ipynb for differences # # This file contains some standard control system plots: Bode plots, @@ -80,9 +81,10 @@ from .timeplot import _make_legend_labels from . import config -__all__ = ['bode_plot', 'nyquist_plot', 'singular_values_response', - 'singular_values_plot', 'gangof4_plot', 'gangof4_response', - 'bode', 'nyquist', 'gangof4'] +__all__ = ['bode_plot', 'nyquist_response', 'nyquist_plot', + 'singular_values_response', 'singular_values_plot', + 'gangof4_plot', 'gangof4_response', 'bode', 'nyquist', + 'gangof4'] # Default font dictionary _freqplot_rcParams = mpl.rcParams.copy() @@ -126,16 +128,13 @@ def plot(self, *args, plot_type=None, **kwargs): if plot_type is not None and response.plot_type != plot_type: raise TypeError( "inconsistent plot_types in data; set plot_type " - "to 'bode', 'svplot', or 'nyquist'") + "to 'bode' or 'svplot'") plot_type = response.plot_type if plot_type == 'bode': bode_plot(self, *args, **kwargs) elif plot_type == 'svplot': singular_values_plot(self, *args, **kwargs) - elif plot_type == 'nyquist': - # nyquist_plot(self, *args, **kwargs) - raise NotImplementedError("Nyquist plots not yet supported") else: raise ValueError(f"unknown plot type '{plot_type}'") @@ -251,7 +250,7 @@ def bode_plot( Examples -------- >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) - >>> Gmag, Gphase, Gomega = ct.bode_plot(G) + >>> out = ct.bode_plot(G) """ # @@ -746,7 +745,6 @@ def _make_line_label(response, output_index, input_index): # Add a grid to the plot ax_phase.grid(grid and not display_margins, which='both') - print(f"phase_ylim={ax_phase.get_ylim()}") # # Display gain and phase margins (SISO only) @@ -784,7 +782,6 @@ def _make_line_label(response, output_index, input_index): math.radians(phase_limit), color='k', linestyle=':', zorder=-20) phase_ylim = ax_phase.get_ylim() - print(f"{phase_ylim=}") # Annotate the phase margin (if it exists) if plot_phase and pm != float('inf') and Wcp != float('nan'): @@ -1130,19 +1127,55 @@ def gen_zero_centered_series(val_min, val_max, period): } -def nyquist_plot( - syslist, omega=None, plot=True, omega_limits=None, omega_num=None, - label_freq=0, color=None, return_contour=False, +class NyquistResponseData: + def __init__( + self, count, contour, response, dt, sysname=None, + return_contour=False): + self.count = count + self.contour = contour + self.response = response + self.dt = dt + self.sysname = sysname + self.return_contour = return_contour + + # Implement iter to allow assigning to a tuple + def __iter__(self): + if self.return_contour: + return iter((self.count, self.contour)) + else: + return iter((self.count, )) + + # Implement (thin) getitem to allow access via legacy indexing + def __getitem__(self, index): + return list(self.__iter__())[index] + + # Implement (thin) len to emulate legacy testing interface + def __len__(self): + return 2 if self.return_contour else 1 + + def plot(self, *args, **kwargs): + return nyquist_plot(self, *args, **kwargs) + + +class NyquistResponseList(list): + def plot(self, *args, **kwargs): + nyquist_plot(self, *args, **kwargs) + + +def nyquist_response( + syslist, omega=None, plot=None, omega_limits=None, omega_num=None, + label_freq=0, color=None, return_contour=False, check_kwargs=True, warn_encirclements=True, warn_nyquist=True, **kwargs): - """Nyquist plot for a system. + """Nyquist response for a system. - Plots a Nyquist plot for the system over a (optional) frequency range. - The curve is computed by evaluating the Nyqist segment along the positive - imaginary axis, with a mirror image generated to reflect the negative - imaginary axis. Poles on or near the imaginary axis are avoided using a - small indentation. The portion of the Nyquist contour at infinity is not - explicitly computed (since it maps to a constant value for any system with - a proper transfer function). + Computes a Nyquist contour for the system over a (optional) frequency + range and evaluates the number of net encirclements. The curve is + computed by evaluating the Nyqist segment along the positive imaginary + axis, with a mirror image generated to reflect the negative imaginary + axis. Poles on or near the imaginary axis are avoided using a small + indentation. The portion of the Nyquist contour at infinity is not + explicitly computed (since it maps to a constant value for any system + with a proper transfer function). Parameters ---------- @@ -1161,18 +1194,9 @@ def nyquist_plot( Number of frequency samples to plot. Defaults to config.defaults['freqplot.number_of_samples']. - plot : boolean, optional - If True (default), plot the Nyquist plot. - - color : string, optional - Used to specify the color of the line and arrowhead. - return_contour : bool, optional If 'True', return the contour used to evaluate the Nyquist plot. - **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional - Additional keywords (passed to `matplotlib`) - Returns ------- count : int (or list of int if len(syslist) > 1) @@ -1186,23 +1210,6 @@ def nyquist_plot( Other Parameters ---------------- - arrows : int or 1D/2D array of floats, optional - Specify the number of arrows to plot on the Nyquist curve. If an - integer is passed. that number of equally spaced arrows will be - plotted on each of the primary segment and the mirror image. If a 1D - array is passed, it should consist of a sorted list of floats between - 0 and 1, indicating the location along the curve to plot an arrow. If - a 2D array is passed, the first row will be used to specify arrow - locations for the primary curve and the second row will be used for - the mirror image. - - arrow_size : float, optional - Arrowhead width and length (in display coordinates). Default value is - 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`). - 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 @@ -1221,43 +1228,6 @@ def nyquist_plot( imaginary axis. Portions of the Nyquist plot corresponding to indented portions of the contour are plotted using a different line style. - label_freq : int, optiona - Label every nth frequency on the plot. If not specified, no labels - are generated. - - 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 - plotted using a different line style. - - max_curve_offset : float, optional - When plotting scaled portion of the Nyquist plot, increase/decrease - the magnitude by this fraction of the max_curve_magnitude to allow - any overlaps between the primary and mirror curves to be avoided. - - mirror_style : [str, str] or False - Linestyles for mirror image of the Nyquist curve. The first element - is used for unscaled portions of the Nyquist curve, the second element - is used for portions that are scaled (using max_curve_magnitude). If - `False` then omit completely. Default linestyle (['--', ':']) is - determined by config.defaults['nyquist.mirror_style']. - - primary_style : [str, str], optional - Linestyles for primary image of the Nyquist curve. The first - element is used for unscaled portions of the Nyquist curve, - the second element is used for portions that are scaled (using - max_curve_magnitude). Default linestyle (['-', '-.']) is - determined by config.defaults['nyquist.mirror_style']. - - 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 - config.defaults['nyquist.start_marker']. - - 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']. - warn_nyquist : bool, optional If set to 'False', turn off warnings about frequencies above Nyquist. @@ -1292,18 +1262,14 @@ def nyquist_plot( Examples -------- >>> G = ct.zpk([], [-1, -2, -3], gain=100) - >>> ct.nyquist_plot(G) - 2 + >>> response = ct.nyquist_response(G) + >>> count = response.count + >>> response.plot() """ # Get values for params (and pop from list to allow keyword use in plot) omega_num_given = omega_num is not None omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) - arrows = config._get_param( - 'nyquist', 'arrows', kwargs, _nyquist_defaults, pop=True) - arrow_size = config._get_param( - 'nyquist', 'arrow_size', kwargs, _nyquist_defaults, pop=True) - arrow_style = config._get_param('nyquist', 'arrow_style', kwargs, None) indent_radius = config._get_param( 'nyquist', 'indent_radius', kwargs, _nyquist_defaults, pop=True) encirclement_threshold = config._get_param( @@ -1313,33 +1279,9 @@ def nyquist_plot( 'nyquist', 'indent_direction', kwargs, _nyquist_defaults, pop=True) indent_points = config._get_param( 'nyquist', 'indent_points', kwargs, _nyquist_defaults, pop=True) - max_curve_magnitude = config._get_param( - 'nyquist', 'max_curve_magnitude', kwargs, _nyquist_defaults, pop=True) - max_curve_offset = config._get_param( - 'nyquist', 'max_curve_offset', kwargs, _nyquist_defaults, pop=True) - start_marker = config._get_param( - 'nyquist', 'start_marker', kwargs, _nyquist_defaults, pop=True) - start_marker_size = config._get_param( - 'nyquist', 'start_marker_size', kwargs, _nyquist_defaults, pop=True) - # Set line styles for the curves - def _parse_linestyle(style_name, allow_false=False): - style = config._get_param( - 'nyquist', style_name, kwargs, _nyquist_defaults, pop=True) - if isinstance(style, str): - # Only one style provided, use the default for the other - style = [style, _nyquist_defaults['nyquist.' + style_name][1]] - warnings.warn( - "use of a single string for linestyle will be deprecated " - " in a future release", PendingDeprecationWarning) - if (allow_false and style is False) or \ - (isinstance(style, list) and len(style) == 2): - return style - else: - raise ValueError(f"invalid '{style_name}': {style}") - - primary_style = _parse_linestyle('primary_style') - mirror_style = _parse_linestyle('mirror_style', allow_false=True) + if check_kwargs and kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) # If argument was a singleton, turn it into a tuple if not isinstance(syslist, (list, tuple)): @@ -1360,8 +1302,8 @@ def _parse_linestyle(style_name, allow_false=False): np.linspace(0, omega[0], indent_points), omega[1:])) # Go through each system and keep track of the results - counts, contours = [], [] - for sys in syslist: + responses = [] + for idx, sys in enumerate(syslist): if not sys.issiso(): # TODO: Add MIMO nyquist plots. raise ControlMIMONotImplemented( @@ -1375,7 +1317,7 @@ def _parse_linestyle(style_name, allow_false=False): # Restrict frequencies for discrete-time systems nyquistfrq = math.pi / sys.dt if not omega_range_given: - # limit up to and including nyquist frequency + # limit up to and including Nyquist frequency omega_sys = np.hstack(( omega_sys[omega_sys < nyquistfrq], nyquistfrq)) @@ -1474,7 +1416,8 @@ def _parse_linestyle(style_name, allow_false=False): # See if we need to indent around it if abs(s - p) < indent_radius: # Figure out how much to offset (simple trigonometry) - offset = np.sqrt(indent_radius ** 2 - (s - p).imag ** 2) \ + offset = np.sqrt( + indent_radius ** 2 - (s - p).imag ** 2) \ - (s - p).real # Figure out which way to offset the contour point @@ -1489,7 +1432,8 @@ def _parse_linestyle(style_name, allow_false=False): splane_contour[i] -= offset else: - raise ValueError("unknown value for indent_direction") + raise ValueError( + "unknown value for indent_direction") # change contour to z-plane if necessary if sys.isctime(): @@ -1548,140 +1492,441 @@ def _parse_linestyle(style_name, allow_false=False): " turned off; results may be meaningless", RuntimeWarning, stacklevel=2) - counts.append(count) - contours.append(contour) - - if plot: - # Parse the arrows keyword - if not arrows: - arrow_pos = [] - elif isinstance(arrows, int): - N = arrows - # Space arrows out, starting midway along each "region" - arrow_pos = np.linspace(0.5/N, 1 + 0.5/N, N, endpoint=False) - elif isinstance(arrows, (list, np.ndarray)): - arrow_pos = np.sort(np.atleast_1d(arrows)) - else: - raise ValueError("unknown or unsupported arrow location") - - # Set the arrow style - if arrow_style is None: - arrow_style = mpl.patches.ArrowStyle( - 'simple', head_width=arrow_size, head_length=arrow_size) - - # Find the different portions of the curve (with scaled pts marked) - reg_mask = np.logical_or( - np.abs(resp) > max_curve_magnitude, - splane_contour.real != 0) - # reg_mask = np.logical_or( - # np.abs(resp.real) > max_curve_magnitude, - # np.abs(resp.imag) > max_curve_magnitude) - - scale_mask = ~reg_mask \ - & np.concatenate((~reg_mask[1:], ~reg_mask[-1:])) \ - & np.concatenate((~reg_mask[0:1], ~reg_mask[:-1])) - - # Rescale the points with large magnitude - rescale = np.logical_and( - reg_mask, abs(resp) > max_curve_magnitude) - resp[rescale] *= max_curve_magnitude / abs(resp[rescale]) - - # Plot the regular portions of the curve (and grab the color) - x_reg = np.ma.masked_where(reg_mask, resp.real) - y_reg = np.ma.masked_where(reg_mask, resp.imag) - p = plt.plot( - x_reg, y_reg, primary_style[0], color=color, **kwargs) - c = p[0].get_color() - - # Figure out how much to offset the curve: the offset goes from - # zero at the start of the scaled section to max_curve_offset as - # we move along the curve - curve_offset = _compute_curve_offset( - resp, scale_mask, max_curve_offset) - - # Plot the scaled sections of the curve (changing linestyle) - x_scl = np.ma.masked_where(scale_mask, resp.real) - y_scl = np.ma.masked_where(scale_mask, resp.imag) + # Decide on system name + sysname = sys.name if sys.name is not None else f"Unknown-{idx}" + + responses.append(NyquistResponseData( + count, contour, resp, sys.dt, sysname=sysname, + return_contour=return_contour)) + + # Return response + if len(responses) == 1: # TODO: update to match input type + return responses[0] + else: + return NyquistResponseList(responses) + + +def nyquist_plot( + data, omega=None, plot=None, omega_limits=None, omega_num=None, + label_freq=0, color=None, return_contour=None, title=None, + legend_loc='upper right', **kwargs): + """Nyquist plot for a system. + + Generates a Nyquist plot for the system over a (optional) frequency + range. The curve is computed by evaluating the Nyqist segment along + the positive imaginary axis, with a mirror image generated to reflect + the negative imaginary axis. Poles on or near the imaginary axis are + avoided using a small indentation. The portion of the Nyquist contour + at infinity is not explicitly computed (since it maps to a constant + value for any system with a proper transfer function). + + Parameters + ---------- + data : list of LTI or NyquistResponseData + List of linear input/output systems (single system is OK) or + Nyquist ersponses (computed using :func:`~control.nyquist_response`). + Nyquist curves for each system are plotted on the same graph. + + omega : array_like, optional + Set of frequencies to be evaluated, in rad/sec. + + omega_limits : array_like of two values, optional + Limits to the range of frequencies. Ignored if omega is provided, and + auto-generated if omitted. + + omega_num : int, optional + Number of frequency samples to plot. Defaults to + config.defaults['freqplot.number_of_samples']. + + color : string, optional + Used to specify the color of the line and arrowhead. + + return_contour : bool, optional + If 'True', return the contour used to evaluate the Nyquist plot. + + **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional + Additional keywords (passed to `matplotlib`) + + Returns + ------- + out : 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: + + 0: unscaled portion of the primary curve + 1: scaled portion of the primary curve + 2: unscaled portion of the mirror curve + 3: scaled portion of the mirror curve + + Other Parameters + ---------------- + arrows : int or 1D/2D array of floats, optional + Specify the number of arrows to plot on the Nyquist curve. If an + integer is passed. that number of equally spaced arrows will be + plotted on each of the primary segment and the mirror image. If a 1D + array is passed, it should consist of a sorted list of floats between + 0 and 1, indicating the location along the curve to plot an arrow. If + a 2D array is passed, the first row will be used to specify arrow + locations for the primary curve and the second row will be used for + the mirror image. + + arrow_size : float, optional + Arrowhead width and length (in display coordinates). Default value is + 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`). + + 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 + be set using config.defaults['nyquist.encirclement_threshold']. + + indent_direction : str, optional + For poles on the imaginary axis, set the direction of indentation to + be 'right' (default), 'left', or 'none'. + + indent_points : int, optional + Number of points to insert in the Nyquist contour around poles that + are at or near the imaginary axis. + + indent_radius : float, optional + 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_freq : int, optiona + Label every nth frequency on the plot. If not specified, no labels + are generated. + + 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 + plotted using a different line style. + + max_curve_offset : float, optional + When plotting scaled portion of the Nyquist plot, increase/decrease + the magnitude by this fraction of the max_curve_magnitude to allow + any overlaps between the primary and mirror curves to be avoided. + + mirror_style : [str, str] or False + Linestyles for mirror image of the Nyquist curve. The first element + is used for unscaled portions of the Nyquist curve, the second element + is used for portions that are scaled (using max_curve_magnitude). If + `False` then omit completely. Default linestyle (['--', ':']) is + determined by config.defaults['nyquist.mirror_style']. + + plot : bool, optional + (legacy) If given, `bode_plot` returns the legacy return values + of magnitude, phase, and frequency. If False, just return the + values with no plot. + + primary_style : [str, str], optional + Linestyles for primary image of the Nyquist curve. The first + element is used for unscaled portions of the Nyquist curve, + the second element is used for portions that are scaled (using + max_curve_magnitude). Default linestyle (['-', '-.']) is + determined by config.defaults['nyquist.mirror_style']. + + 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 + config.defaults['nyquist.start_marker']. + + 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']. + + warn_nyquist : bool, optional + If set to 'False', turn off warnings about frequencies above Nyquist. + + warn_encirclements : bool, optional + If set to 'False', turn off warnings about number of encirclements not + meeting the Nyquist criterion. + + Notes + ----- + 1. If a discrete time model is given, the frequency response is computed + along the upper branch of the unit circle, using the mapping ``z = + exp(1j * omega * dt)`` where `omega` ranges from 0 to `pi/dt` and `dt` + is the discrete timebase. If timebase not specified (``dt=True``), + `dt` is set to 1. + + 2. If a continuous-time system contains poles on or near the imaginary + axis, a small indentation will be used to avoid the pole. The radius + of the indentation is given by `indent_radius` and it is taken to the + right of stable poles and the left of unstable poles. If a pole is + exactly on the imaginary axis, the `indent_direction` parameter can be + used to set the direction of indentation. Setting `indent_direction` + to `none` will turn off indentation. If `return_contour` is True, the + exact contour used for evaluation is returned. + + 3. For those portions of the Nyquist plot in which the contour is + indented to avoid poles, resuling in a scaling of the Nyquist plot, + the line styles are according to the settings of the `primary_style` + and `mirror_style` keywords. By default the scaled portions of the + primary curve use a dotted line style and the scaled portion of the + mirror image use a dashdot line style. + + Examples + -------- + >>> G = ct.zpk([], [-1, -2, -3], gain=100) + >>> out = ct.nyquist_plot(G) + + """ + # Get values for params (and pop from list to allow keyword use in plot) + omega_num_given = omega_num is not None + omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) + arrows = config._get_param( + 'nyquist', 'arrows', kwargs, _nyquist_defaults, pop=True) + arrow_size = config._get_param( + 'nyquist', 'arrow_size', kwargs, _nyquist_defaults, pop=True) + arrow_style = config._get_param('nyquist', 'arrow_style', kwargs, None) + max_curve_magnitude = config._get_param( + 'nyquist', 'max_curve_magnitude', kwargs, _nyquist_defaults, pop=True) + max_curve_offset = config._get_param( + 'nyquist', 'max_curve_offset', kwargs, _nyquist_defaults, pop=True) + start_marker = config._get_param( + 'nyquist', 'start_marker', kwargs, _nyquist_defaults, pop=True) + start_marker_size = config._get_param( + 'nyquist', 'start_marker_size', kwargs, _nyquist_defaults, pop=True) + + # Set line styles for the curves + def _parse_linestyle(style_name, allow_false=False): + style = config._get_param( + 'nyquist', style_name, kwargs, _nyquist_defaults, pop=True) + if isinstance(style, str): + # Only one style provided, use the default for the other + style = [style, _nyquist_defaults['nyquist.' + style_name][1]] + warnings.warn( + "use of a single string for linestyle will be deprecated " + " in a future release", PendingDeprecationWarning) + if (allow_false and style is False) or \ + (isinstance(style, list) and len(style) == 2): + return style + else: + raise ValueError(f"invalid '{style_name}': {style}") + + primary_style = _parse_linestyle('primary_style') + mirror_style = _parse_linestyle('mirror_style', allow_false=True) + + # Parse the arrows keyword + if not arrows: + arrow_pos = [] + elif isinstance(arrows, int): + N = arrows + # Space arrows out, starting midway along each "region" + arrow_pos = np.linspace(0.5/N, 1 + 0.5/N, N, endpoint=False) + elif isinstance(arrows, (list, np.ndarray)): + arrow_pos = np.sort(np.atleast_1d(arrows)) + else: + raise ValueError("unknown or unsupported arrow location") + + # If argument was a singleton, turn it into a tuple + if not isinstance(data, (list, tuple)): + data = (data,) + + # If we are passed a list of systems, compute response first + # If we were passed a list of systems, convert to data + if all([isinstance( + sys, (StateSpace, TransferFunction, FrequencyResponseData)) + for sys in data]): + nyquist_responses = nyquist_response( + data, omega=omega, omega_limits=omega_limits, omega_num=omega_num, + check_kwargs=False, **kwargs) + if not isinstance(nyquist_responses, list): + nyquist_responses = [nyquist_responses] + else: + nyquist_responses = data + + # Legacy return value processing + if plot is not None or return_contour is not None: + warnings.warn( + "`nyquist_plot` return values of count[, contour] is deprecated; " + "use nyquist_response()", DeprecationWarning) + + # Extract out the values that we will eventually return + counts = [response.count for response in nyquist_responses] + contours = [response.contour for response in nyquist_responses] + + if plot is False: + if len(data) == 1: + counts, contours = counts[0], contours[0] + + # Return counts and (optionally) the contour we used + return (counts, contours) if return_contour else counts + + # Create a list of lines for the output + out = np.empty(len(nyquist_responses), dtype=object) + for i in range(out.shape[0]): + out[i] = [] # unique list in each element + + # Set the arrow style + if arrow_style is None: + arrow_style = mpl.patches.ArrowStyle( + 'simple', head_width=arrow_size, head_length=arrow_size) + + for idx, response in enumerate(nyquist_responses): + resp = response.response + if response.dt in [0, None]: + splane_contour = response.contour + else: + splane_contour = np.log(response.contour) / response.dt + + # Find the different portions of the curve (with scaled pts marked) + reg_mask = np.logical_or( + np.abs(resp) > max_curve_magnitude, + splane_contour.real != 0) + # reg_mask = np.logical_or( + # np.abs(resp.real) > max_curve_magnitude, + # np.abs(resp.imag) > max_curve_magnitude) + + scale_mask = ~reg_mask \ + & np.concatenate((~reg_mask[1:], ~reg_mask[-1:])) \ + & np.concatenate((~reg_mask[0:1], ~reg_mask[:-1])) + + # Rescale the points with large magnitude + rescale = np.logical_and( + reg_mask, abs(resp) > max_curve_magnitude) + resp[rescale] *= max_curve_magnitude / abs(resp[rescale]) + + # Plot the regular portions of the curve (and grab the color) + x_reg = np.ma.masked_where(reg_mask, resp.real) + y_reg = np.ma.masked_where(reg_mask, resp.imag) + p = plt.plot( + x_reg, y_reg, primary_style[0], color=color, + label=response.sysname, **kwargs) + c = p[0].get_color() + out[idx] += p + + # Figure out how much to offset the curve: the offset goes from + # zero at the start of the scaled section to max_curve_offset as + # we move along the curve + curve_offset = _compute_curve_offset( + resp, scale_mask, max_curve_offset) + + # Plot the scaled sections of the curve (changing linestyle) + x_scl = np.ma.masked_where(scale_mask, resp.real) + y_scl = np.ma.masked_where(scale_mask, resp.imag) + if x_scl.count() >= 1 and y_scl.count() >= 1: + out[idx] += plt.plot( + x_scl * (1 + curve_offset), + y_scl * (1 + curve_offset), + primary_style[1], color=c, **kwargs) + else: + out[idx] += [None] + + # Plot the primary curve (invisible) for setting arrows + x, y = resp.real.copy(), resp.imag.copy() + x[reg_mask] *= (1 + curve_offset[reg_mask]) + y[reg_mask] *= (1 + curve_offset[reg_mask]) + p = plt.plot(x, y, linestyle='None', color=c, **kwargs) + + # Add arrows + ax = plt.gca() + _add_arrows_to_line2D( + ax, p[0], arrow_pos, arrowstyle=arrow_style, dir=1) + + # Plot the mirror image + if mirror_style is not False: + # Plot the regular and scaled segments + out[idx] += plt.plot( + x_reg, -y_reg, mirror_style[0], color=c, **kwargs) if x_scl.count() >= 1 and y_scl.count() >= 1: - plt.plot( - x_scl * (1 + curve_offset), - y_scl * (1 + curve_offset), - primary_style[1], color=c, **kwargs) + out[idx] += plt.plot( + x_scl * (1 - curve_offset), + -y_scl * (1 - curve_offset), + mirror_style[1], color=c, **kwargs) + else: + out[idx] += [None] - # Plot the primary curve (invisible) for setting arrows + # Add the arrows (on top of an invisible contour) x, y = resp.real.copy(), resp.imag.copy() - x[reg_mask] *= (1 + curve_offset[reg_mask]) - y[reg_mask] *= (1 + curve_offset[reg_mask]) - p = plt.plot(x, y, linestyle='None', color=c, **kwargs) - - # Add arrows - ax = plt.gca() + x[reg_mask] *= (1 - curve_offset[reg_mask]) + y[reg_mask] *= (1 - curve_offset[reg_mask]) + p = plt.plot(x, -y, linestyle='None', color=c, **kwargs) _add_arrows_to_line2D( - ax, p[0], arrow_pos, arrowstyle=arrow_style, dir=1) - - # Plot the mirror image - if mirror_style is not False: - # Plot the regular and scaled segments - plt.plot( - x_reg, -y_reg, mirror_style[0], color=c, **kwargs) - if x_scl.count() >= 1 and y_scl.count() >= 1: - plt.plot( - x_scl * (1 - curve_offset), - -y_scl * (1 - curve_offset), - mirror_style[1], color=c, **kwargs) - - # Add the arrows (on top of an invisible contour) - x, y = resp.real.copy(), resp.imag.copy() - x[reg_mask] *= (1 - curve_offset[reg_mask]) - y[reg_mask] *= (1 - curve_offset[reg_mask]) - p = plt.plot(x, -y, linestyle='None', color=c, **kwargs) - _add_arrows_to_line2D( - ax, p[0], arrow_pos, arrowstyle=arrow_style, dir=-1) - - # Mark the start of the curve - if start_marker: - plt.plot(resp[0].real, resp[0].imag, start_marker, - color=c, markersize=start_marker_size) - - # Mark the -1 point - plt.plot([-1], [0], 'r+') - - # Label the frequencies of the points - if label_freq: - ind = slice(None, None, label_freq) - for xpt, ypt, omegapt in zip(x[ind], y[ind], omega_sys[ind]): - # Convert to Hz - f = omegapt / (2 * np.pi) - - # Factor out multiples of 1000 and limit the - # result to the range [-8, 8]. - pow1000 = max(min(get_pow1000(f), 8), -8) - - # Get the SI prefix. - prefix = gen_prefix(pow1000) - - # Apply the text. (Use a space before the text to - # prevent overlap with the data.) - # - # np.round() is used because 0.99... appears - # instead of 1.0, and this would otherwise be - # truncated to 0. - plt.text(xpt, ypt, ' ' + - str(int(np.round(f / 1000 ** pow1000, 0))) + ' ' + - prefix + 'Hz') - - if plot: - ax = plt.gca() - ax.set_xlabel("Real axis") - ax.set_ylabel("Imaginary axis") - ax.grid(color="lightgray") + ax, p[0], arrow_pos, arrowstyle=arrow_style, dir=-1) + else: + out[idx] += [None, None] + + # Mark the start of the curve + if start_marker: + plt.plot(resp[0].real, resp[0].imag, start_marker, + color=c, markersize=start_marker_size) + + # Mark the -1 point + plt.plot([-1], [0], 'r+') + + # Label the frequencies of the points + if label_freq: + ind = slice(None, None, label_freq) + omega_sys = np.imag(splane_contour[np.real(splane_contour) == 0]) + for xpt, ypt, omegapt in zip(x[ind], y[ind], omega_sys[ind]): + # Convert to Hz + f = omegapt / (2 * np.pi) + + # Factor out multiples of 1000 and limit the + # result to the range [-8, 8]. + pow1000 = max(min(get_pow1000(f), 8), -8) + + # Get the SI prefix. + prefix = gen_prefix(pow1000) + + # Apply the text. (Use a space before the text to + # prevent overlap with the data.) + # + # np.round() is used because 0.99... appears + # instead of 1.0, and this would otherwise be + # truncated to 0. + plt.text(xpt, ypt, ' ' + + str(int(np.round(f / 1000 ** pow1000, 0))) + ' ' + + prefix + 'Hz') + + # Label the axes + fig, ax = plt.gcf(), plt.gca() + ax.set_xlabel("Real axis") + ax.set_ylabel("Imaginary axis") + ax.grid(color="lightgray") - # "Squeeze" the results - if len(syslist) == 1: - counts, contours = counts[0], contours[0] + # List of systems that are included in this plot + labels, lines = [], [] + last_color, counter = None, 0 # label unknown systems + for i, line in enumerate(ax.get_lines()): + label = line.get_label() + if 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 - # Return counts and (optionally) the contour we used - return (counts, contours) if return_contour else counts + if label not in labels: + lines.append(line) + labels.append(label) + + # Add legend if there is more than one system plotted + if len(labels) > 1: + ax.legend(lines, labels, loc=legend_loc) + + # Add the title + if title is None: + title = "Nyquist plot for " + ", ".join(labels) + fig.suptitle(title) + + if plot is True or return_contour is not None: + if len(data) == 1: + counts, contours = counts[0], contours[0] + + # Return counts and (optionally) the contour we used + return (counts, contours) if return_contour else counts + + return out # Internal function to add arrows to a curve @@ -1757,6 +2002,7 @@ def _add_arrows_to_line2D( return arrows + # # Function to compute Nyquist curve offsets # diff --git a/control/lti.py b/control/lti.py index 14594f00f..d7355395d 100644 --- a/control/lti.py +++ b/control/lti.py @@ -13,7 +13,7 @@ from .iosys import InputOutputSystem __all__ = ['poles', 'zeros', 'damp', 'evalfr', 'frequency_response', - 'freqresp', 'dcgain', 'bandwidth'] + 'freqresp', 'dcgain', 'bandwidth', 'LTI'] class LTI(InputOutputSystem): @@ -466,10 +466,8 @@ def frequency_response( if sys_.isdtime(strict=True): nyquistfrq = math.pi / sys_.dt if not omega_range_given: - # limit up to and including nyquist frequency - # TODO: make this optional? - omega_sys = np.hstack(( - omega_sys[omega_sys < nyquistfrq], nyquistfrq)) + # Limit up to the Nyquist frequency + omega_sys = omega_sys[omega_sys < nyquistfrq] # Compute the frequency response responses.append(sys_.frequency_response(omega_sys, squeeze=squeeze)) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 5eb7786fe..04102d497 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -90,7 +90,7 @@ def bode(*args, **kwargs): return retval -def nyquist(*args, **kwargs): +def nyquist(*args, plot=True, **kwargs): """nyquist(syslist[, omega]) Nyquist plot of the frequency response. @@ -114,7 +114,7 @@ def nyquist(*args, **kwargs): frequencies in rad/s """ - from ..freqplot import nyquist_plot + from ..freqplot import nyquist_response, nyquist_plot # If first argument is a list, assume python-control calling format if hasattr(args[0], '__iter__'): @@ -125,8 +125,10 @@ def nyquist(*args, **kwargs): kwargs.update(other) # Call the nyquist command - kwargs['return_contour'] = True - _, contour = nyquist_plot(syslist, omega, *args, **kwargs) + response = nyquist_response(syslist, omega, *args, **kwargs) + contour = response.contour + if plot: + nyquist_plot(response, *args, **kwargs) # Create the MATLAB output arguments freqresp = syslist(contour) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index ec20a5a1a..5e5cc71be 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -110,6 +110,8 @@ def test_kwarg_search(module, prefix): (lambda x, u, params: None, lambda zflag, params: None), {}), (control.InputOutputSystem, 0, 0, (), {'inputs': 1, 'outputs': 1, 'states': 1}), + (control.LTI, 0, 0, (), + {'inputs': 1, 'outputs': 1, 'states': 1}), (control.flatsys.LinearFlatSystem, 1, 0, (), {}), (control.NonlinearIOSystem.linearize, 1, 0, (0, 0), {}), (control.StateSpace.sample, 1, 0, (0.1,), {}), @@ -156,26 +158,32 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): function(*args, **kwargs) # Now add an unrecognized keyword and make sure there is an error - with pytest.raises(AttributeError, - match="(has no property|unexpected keyword)"): + with pytest.raises( + (AttributeError, TypeError), + match="(has no property|unexpected keyword|unrecognized keyword)"): function(*args, **kwargs, unknown=None) @pytest.mark.parametrize( - "data_fcn, plot_fcn", [ - (control.step_response, control.time_response_plot), - (control.step_response, control.TimeResponseData.plot), - (control.frequency_response, control.FrequencyResponseData.plot), - (control.frequency_response, control.bode), - (control.frequency_response, control.bode_plot), + "data_fcn, plot_fcn, mimo", [ + (control.step_response, control.time_response_plot, True), + (control.step_response, control.TimeResponseData.plot, True), + (control.frequency_response, control.FrequencyResponseData.plot, True), + (control.frequency_response, control.bode, True), + (control.frequency_response, control.bode_plot, True), + (control.nyquist_response, control.nyquist_plot, False), ]) -def test_response_plot_kwargs(data_fcn, plot_fcn): +def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): # Create a system for testing - response = data_fcn(control.rss(4, 2, 2)) + if mimo: + response = data_fcn(control.rss(4, 2, 2)) + else: + response = data_fcn(control.rss(4, 1, 1)) # Make sure that calling the data function with unknown keyword errs - with pytest.raises((AttributeError, TypeError), - match="(has no property|unexpected keyword)"): + with pytest.raises( + (AttributeError, TypeError), + match="(has no property|unexpected keyword|unrecognized keyword)"): data_fcn(control.rss(2, 1, 1), unknown=None) # Call the plotting function normally and make sure it works @@ -216,6 +224,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn): 'lqr': test_unrecognized_kwargs, 'nlsys': test_unrecognized_kwargs, 'nyquist': test_matplotlib_kwargs, + 'nyquist_response': test_response_plot_kwargs, 'nyquist_plot': test_matplotlib_kwargs, 'pzmap': test_unrecognized_kwargs, 'rlocus': test_unrecognized_kwargs, @@ -245,6 +254,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn): frd_test.TestFRD.test_unrecognized_keyword, 'FrequencyResponseData.plot': test_response_plot_kwargs, 'InputOutputSystem.__init__': test_unrecognized_kwargs, + 'LTI.__init__': test_unrecognized_kwargs, 'flatsys.LinearFlatSystem.__init__': test_unrecognized_kwargs, 'NonlinearIOSystem.linearize': test_unrecognized_kwargs, 'InterconnectedSystem.__init__': diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index 773e7e943..ad630b71b 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -40,7 +40,7 @@ def _Z(sys): def test_nyquist_basic(): # Simple Nyquist plot sys = ct.rss(5, 1, 1) - N_sys = ct.nyquist_plot(sys) + N_sys = ct.nyquist_response(sys) assert _Z(sys) == N_sys + _P(sys) # Previously identified bug @@ -62,17 +62,17 @@ def test_nyquist_basic(): sys = ct.ss(A, B, C, D) # With a small indent_radius, all should be fine - N_sys = ct.nyquist_plot(sys, indent_radius=0.001) + N_sys = ct.nyquist_response(sys, indent_radius=0.001) assert _Z(sys) == N_sys + _P(sys) # With a larger indent_radius, we get a warning message + wrong answer with pytest.warns(UserWarning, match="contour may miss closed loop pole"): - N_sys = ct.nyquist_plot(sys, indent_radius=0.2) + N_sys = ct.nyquist_response(sys, indent_radius=0.2) assert _Z(sys) != N_sys + _P(sys) # Unstable system sys = ct.tf([10], [1, 2, 2, 1]) - N_sys = ct.nyquist_plot(sys) + N_sys = ct.nyquist_response(sys) assert _Z(sys) > 0 assert _Z(sys) == N_sys + _P(sys) @@ -80,14 +80,14 @@ def test_nyquist_basic(): sys1 = ct.rss(3, 1, 1) sys2 = ct.rss(4, 1, 1) sys3 = ct.rss(5, 1, 1) - counts = ct.nyquist_plot([sys1, sys2, sys3]) + counts = ct.nyquist_response([sys1, sys2, sys3]) for N_sys, sys in zip(counts, [sys1, sys2, sys3]): assert _Z(sys) == N_sys + _P(sys) # Nyquist plot with poles at the origin, omega specified sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0]) omega = np.linspace(0, 1e2, 100) - count, contour = ct.nyquist_plot(sys, omega, return_contour=True) + count, contour = ct.nyquist_response(sys, omega, return_contour=True) np.testing.assert_array_equal( contour[contour.real < 0], omega[contour.real < 0]) @@ -100,50 +100,50 @@ def test_nyquist_basic(): # Make sure that we can turn off frequency modification # # Start with a case where indentation should occur - count, contour_indented = ct.nyquist_plot( + count, contour_indented = ct.nyquist_response( sys, np.linspace(1e-4, 1e2, 100), indent_radius=1e-2, return_contour=True) assert not all(contour_indented.real == 0) with pytest.warns(UserWarning, match="encirclements does not match"): - count, contour = ct.nyquist_plot( + count, contour = ct.nyquist_response( sys, np.linspace(1e-4, 1e2, 100), indent_radius=1e-2, return_contour=True, indent_direction='none') np.testing.assert_almost_equal(contour, 1j*np.linspace(1e-4, 1e2, 100)) # Nyquist plot with poles at the origin, omega unspecified sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0]) - count, contour = ct.nyquist_plot(sys, return_contour=True) + count, contour = ct.nyquist_response(sys, return_contour=True) assert _Z(sys) == count + _P(sys) # Nyquist plot with poles at the origin, return contour sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0]) - count, contour = ct.nyquist_plot(sys, return_contour=True) + count, contour = ct.nyquist_response(sys, return_contour=True) assert _Z(sys) == count + _P(sys) # 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: - count = ct.nyquist_plot(sys, np.linspace(1e-3, 1e1, 1000)) + count = ct.nyquist_response(sys, np.linspace(1e-3, 1e1, 1000)) if len(records) == 0: assert _Z(sys) == count + _P(sys) # 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_plot( + 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_plot(sys, return_contour=True) + count, contour = ct.nyquist_response(sys, return_contour=True) assert _Z(sys) == count + _P(sys) # Nyquist plot with poles at the origin and on imaginary axis sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) * ct.tf([1], [1, 0]) - count, contour = ct.nyquist_plot(sys, return_contour=True) + count, contour = ct.nyquist_response(sys, return_contour=True) assert _Z(sys) == count + _P(sys) @@ -155,34 +155,39 @@ def test_nyquist_fbs_examples(): plt.figure() plt.title("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)) - count = ct.nyquist_plot(sys) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + assert _Z(sys) == response.count + _P(sys) plt.figure() plt.title("Figure 10.4: L(s) = 1/(s + a)^2 with a = 0.6") sys = 1/(s + 0.6)**3 - count = ct.nyquist_plot(sys) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + assert _Z(sys) == response.count + _P(sys) plt.figure() plt.title("Figure 10.6: L(s) = 1/(s (s+1)^2) - pole at the origin") sys = 1/(s * (s+1)**2) - count = ct.nyquist_plot(sys) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + assert _Z(sys) == response.count + _P(sys) plt.figure() plt.title("Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2)") sys = 3 * (s+6)**2 / (s * (s+1)**2) - count = ct.nyquist_plot(sys) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + assert _Z(sys) == response.count + _P(sys) plt.figure() plt.title("Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2) [zoom]") with pytest.warns(UserWarning, match="encirclements does not match"): - count = ct.nyquist_plot(sys, omega_limits=[1.5, 1e3]) + response = ct.nyquist_response(sys, omega_limits=[1.5, 1e3]) + response.plot() # Frequency limits for zoom give incorrect encirclement count - # assert _Z(sys) == count + _P(sys) - assert count == -1 + # assert _Z(sys) == response.count + _P(sys) + assert response.count == -1 @pytest.mark.parametrize("arrows", [ @@ -195,8 +200,9 @@ def test_nyquist_arrows(arrows): sys = ct.tf([1.4], [1, 2, 1]) * ct.tf(*ct.pade(1, 4)) plt.figure(); plt.title("L(s) = 1.4 e^{-s}/(s+1)^2 / arrows = %s" % arrows) - count = ct.nyquist_plot(sys, arrows=arrows) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot(arrows=arrows) + assert _Z(sys) == response.count + _P(sys) def test_nyquist_encirclements(): @@ -205,34 +211,38 @@ def test_nyquist_encirclements(): sys = (0.02 * s**3 - 0.1 * s) / (s**4 + s**3 + s**2 + 0.25 * s + 0.04) plt.figure(); - count = ct.nyquist_plot(sys) - plt.title("Stable system; encirclements = %d" % count) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + plt.title("Stable system; encirclements = %d" % response.count) + assert _Z(sys) == response.count + _P(sys) plt.figure(); - count = ct.nyquist_plot(sys * 3) - plt.title("Unstable system; encirclements = %d" % count) - assert _Z(sys * 3) == count + _P(sys * 3) + response = ct.nyquist_response(sys * 3) + response.plot() + plt.title("Unstable system; encirclements = %d" %response.count) + assert _Z(sys * 3) == response.count + _P(sys * 3) # System with pole at the origin sys = ct.tf([3], [1, 2, 2, 1, 0]) plt.figure(); - count = ct.nyquist_plot(sys) - plt.title("Pole at the origin; encirclements = %d" % count) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + plt.title("Pole at the origin; encirclements = %d" %response.count) + assert _Z(sys) == response.count + _P(sys) # Non-integer number of encirclements plt.figure(); sys = 1 / (s**2 + s + 1) with pytest.warns(UserWarning, match="encirclements was a non-integer"): - count = ct.nyquist_plot(sys, omega_limits=[0.5, 1e3]) + response = ct.nyquist_response(sys, omega_limits=[0.5, 1e3]) with warnings.catch_warnings(): warnings.simplefilter("error") # strip out matrix warnings - count = ct.nyquist_plot( + response = ct.nyquist_response( sys, omega_limits=[0.5, 1e3], encirclement_threshold=0.2) - plt.title("Non-integer number of encirclements [%g]" % count) + response.plot() + plt.title("Non-integer number of encirclements [%g]" %response.count) @pytest.fixture @@ -245,16 +255,17 @@ def indentsys(): def test_nyquist_indent_default(indentsys): plt.figure(); - count = ct.nyquist_plot(indentsys) + response = ct.nyquist_response(indentsys) + response.plot() plt.title("Pole at origin; indent_radius=default") - assert _Z(indentsys) == count + _P(indentsys) + assert _Z(indentsys) == response.count + _P(indentsys) def test_nyquist_indent_dont(indentsys): # first value of default omega vector was 0.1, replaced by 0. for contour # indent_radius is larger than 0.1 -> no extra quater circle around origin with pytest.warns(UserWarning, match="encirclements does not match"): - count, contour = ct.nyquist_plot( + count, contour = ct.nyquist_response( indentsys, omega=[0, 0.2, 0.3, 0.4], indent_radius=.1007, plot=False, return_contour=True) np.testing.assert_allclose(contour[0], .1007+0.j) @@ -264,8 +275,10 @@ def test_nyquist_indent_dont(indentsys): def test_nyquist_indent_do(indentsys): plt.figure(); - count, contour = ct.nyquist_plot( + response = ct.nyquist_response( indentsys, indent_radius=0.01, return_contour=True) + count, contour = response + response.plot() plt.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 @@ -276,10 +289,12 @@ def test_nyquist_indent_do(indentsys): def test_nyquist_indent_left(indentsys): plt.figure(); - count = ct.nyquist_plot(indentsys, indent_direction='left') + response = ct.nyquist_response(indentsys, indent_direction='left') + response.plot() plt.title( - "Pole at origin; indent_direction='left'; encirclements = %d" % count) - assert _Z(indentsys) == count + _P(indentsys, indent='left') + "Pole at origin; indent_direction='left'; encirclements = %d" % + response.count) + assert _Z(indentsys) == response.count + _P(indentsys, indent='left') def test_nyquist_indent_im(): @@ -288,25 +303,30 @@ def test_nyquist_indent_im(): # Imaginary poles with standard indentation plt.figure(); - count = ct.nyquist_plot(sys) - plt.title("Imaginary poles; encirclements = %d" % count) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + plt.title("Imaginary poles; encirclements = %d" % response.count) + assert _Z(sys) == response.count + _P(sys) # Imaginary poles with indentation to the left plt.figure(); - count = ct.nyquist_plot(sys, indent_direction='left', label_freq=300) + response = ct.nyquist_response(sys, indent_direction='left', label_freq=300) + response.plot() plt.title( - "Imaginary poles; indent_direction='left'; encirclements = %d" % count) - assert _Z(sys) == count + _P(sys, indent='left') + "Imaginary poles; indent_direction='left'; encirclements = %d" % + response.count) + assert _Z(sys) == response.count + _P(sys, indent='left') # Imaginary poles with no indentation plt.figure(); with pytest.warns(UserWarning, match="encirclements does not match"): - count = ct.nyquist_plot( + response = ct.nyquist_response( sys, np.linspace(0, 1e3, 1000), indent_direction='none') + response.plot() plt.title( - "Imaginary poles; indent_direction='none'; encirclements = %d" % count) - assert _Z(sys) == count + _P(sys) + "Imaginary poles; indent_direction='none'; encirclements = %d" % + response.count) + assert _Z(sys) == response.count + _P(sys) def test_nyquist_exceptions(): @@ -365,26 +385,26 @@ def test_nyquist_legacy(): sys = (0.02 * s**3 - 0.1 * s) / (s**4 + s**3 + s**2 + 0.25 * s + 0.04) with pytest.warns(UserWarning, match="indented contour may miss"): - count = ct.nyquist_plot(sys) + response = ct.nyquist_plot(sys) def test_discrete_nyquist(): # Make sure we can handle discrete time systems with negative poles sys = ct.tf(1, [1, -0.1], dt=1) * ct.tf(1, [1, 0.1], dt=1) - ct.nyquist_plot(sys, plot=False) + ct.nyquist_response(sys, plot=False) # system with a pole at the origin sys = ct.zpk([1,], [.3, 0], 1, dt=True) - ct.nyquist_plot(sys, plot=False) + ct.nyquist_response(sys) sys = ct.zpk([1,], [0], 1, dt=True) - ct.nyquist_plot(sys, plot=False) + ct.nyquist_response(sys) # only a pole at the origin sys = ct.zpk([], [0], 2, dt=True) - ct.nyquist_plot(sys, plot=False) + ct.nyquist_response(sys) # pole at zero (pure delay) sys = ct.zpk([], [1], 1, dt=True) - ct.nyquist_plot(sys, plot=False) + ct.nyquist_response(sys) if __name__ == "__main__": @@ -432,15 +452,17 @@ def test_discrete_nyquist(): plt.figure() plt.title("Poles: %s" % np.array2string(sys.poles(), precision=2, separator=',')) - count = ct.nyquist_plot(sys) - assert _Z(sys) == count + _P(sys) + response = ct.nyquist_response(sys) + response.plot() + assert _Z(sys) == response.count + _P(sys) print("Discrete time systems") sys = ct.c2d(sys, 0.01) plt.figure() plt.title("Discrete-time; poles: %s" % np.array2string(sys.poles(), precision=2, separator=',')) - count = ct.nyquist_plot(sys) + response = ct.nyquist_response(sys) + response.plot() diff --git a/examples/bode-and-nyquist-plots.ipynb b/examples/bode-and-nyquist-plots.ipynb index 4568f8cd0..b31d39eea 100644 --- a/examples/bode-and-nyquist-plots.ipynb +++ b/examples/bode-and-nyquist-plots.ipynb @@ -1100,7 +1100,7 @@ ], "source": [ "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot(pt1_w001rad, Hz=False)" + "out = ct.bode_plot(pt1_w001rad, Hz=False)" ] }, { @@ -1910,7 +1910,7 @@ ], "source": [ "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot(pt1_w001rads, Hz=False)" + "out = ct.bode_plot(pt1_w001rads, Hz=False)" ] }, { @@ -2720,7 +2720,7 @@ ], "source": [ "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot(pt1_w001hz, Hz=True)" + "out = ct.bode_plot(pt1_w001hz, Hz=True)" ] }, { @@ -3530,7 +3530,7 @@ ], "source": [ "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot(pt1_w001hzs)" + "out = ct.bode_plot(pt1_w001hzs)" ] }, { @@ -4341,7 +4341,7 @@ "source": [ "ct.config.bode_number_of_samples = 1000\n", "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot([pt1_w001hz, pt1_w001hzs])" + "out = ct.bode_plot([pt1_w001hz, pt1_w001hzs])" ] }, { @@ -5151,7 +5151,7 @@ ], "source": [ "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot([pt1_w001hzi, pt1_w001hzis])" + "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis])" ] }, { @@ -5963,7 +5963,7 @@ "ct.config.bode_feature_periphery_decade = 1.\n", "ct.config.bode_number_of_samples = 10000\n", "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot([pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh])" + "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh])" ] }, { @@ -6774,7 +6774,7 @@ "source": [ "ct.config.bode_feature_periphery_decade = 3.5\n", "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot([pt1_w001hzi, pt1_w001hzis], Hz=True)" + "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis], Hz=True)" ] }, { @@ -7584,7 +7584,7 @@ ], "source": [ "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot([pt1_w001hzi, pt1_w001hzis], deg=False)" + "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis], deg=False)" ] }, { @@ -8396,7 +8396,7 @@ "ct.config.bode_feature_periphery_decade = 1.\n", "ct.config.bode_number_of_samples = 1000\n", "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot([pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh], Hz=True,\n", + "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh], Hz=True,\n", " omega_limits=(1.,1000.))" ] }, @@ -9200,7 +9200,7 @@ ], "source": [ "fig = plt.figure()\n", - "mag, phase, omega = ct.bode_plot([pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh], Hz=False,\n", + "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh], Hz=False,\n", " omega_limits=(1.,1000.))" ] }, diff --git a/examples/singular-values-plot.ipynb b/examples/singular-values-plot.ipynb index c95ff3f67..f126c6c3f 100644 --- a/examples/singular-values-plot.ipynb +++ b/examples/singular-values-plot.ipynb @@ -1124,7 +1124,9 @@ "source": [ "omega = np.logspace(-4, 1, 1000)\n", "plt.figure()\n", - "sigma_ct, omega_ct = ct.freqplot.singular_values_plot(G, omega);" + "response = ct.freqplot.singular_values_response(G, omega)\n", + "sigma_ct, omega_ct = response\n", + "response.plot();" ] }, { @@ -2116,7 +2118,9 @@ ], "source": [ "plt.figure()\n", - "sigma_dt, omega_dt = ct.freqplot.singular_values_plot(Gd, omega);" + "response = ct.freqplot.singular_values_response(Gd, omega)\n", + "sigma_dt, omega_dt = response\n", + "response.plot();" ] }, { From 83c9e4e8e80fe09d5b5797dc25cd247ff0fa9f86 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 18 Jul 2023 22:43:28 -0700 Subject: [PATCH 0369/1025] refactoring of describing_function_plot in response/plot + updated unit tests --- control/descfcn.py | 162 ++++++++++++++++++++++++++++------ control/tests/descfcn_test.py | 42 +++++++-- control/tests/kwargs_test.py | 3 + 3 files changed, 173 insertions(+), 34 deletions(-) diff --git a/control/descfcn.py b/control/descfcn.py index a5cf0638d..505d716d5 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -19,10 +19,12 @@ from warnings import warn from .freqplot import nyquist_response +from . import config __all__ = ['describing_function', 'describing_function_plot', - 'DescribingFunctionNonlinearity', 'friction_backlash_nonlinearity', - 'relay_hysteresis_nonlinearity', 'saturation_nonlinearity'] + 'describing_function_response', 'DescribingFunctionNonlinearity', + 'friction_backlash_nonlinearity', 'relay_hysteresis_nonlinearity', + 'saturation_nonlinearity'] # Class for nonlinearities with a built-in describing function class DescribingFunctionNonlinearity(): @@ -205,14 +207,41 @@ def describing_function( # Return the values in the same shape as they were requested return retdf +# +# Describing function response/plot +# -def describing_function_plot( - H, F, A, omega=None, refine=True, label="%5.2g @ %-5.2g", - warn=None, **kwargs): - """Plot a Nyquist plot with a describing function for a nonlinear system. +# Simple class to store the describing function response +class DescribingFunctionResponse: + def __init__(self, response, N_vals, positions, intersections): + self.response = response + self.N_vals = N_vals + self.positions = positions + self.intersections = intersections + + def plot(self, **kwargs): + return describing_function_plot(self, **kwargs) + + # Implement iter, getitem, len to allow recovering the intersections + def __iter__(self): + return iter(self.intersections) + + def __getitem__(self, index): + return list(self.__iter__())[index] + + def __len__(self): + return len(self.intersections) - This function generates a Nyquist plot for a closed loop system consisting - of a linear system with a static nonlinear function in the feedback path. + +# Compute the describing function response + intersections +def describing_function_response( + H, F, A, omega=None, refine=True, warn_nyquist=None, + plot=False, check_kwargs=True, **kwargs): + """Compute the describing function response of a system. + + This function uses describing function analysis to analyze a closed + loop system consisting of a linear system with a static nonlinear + function in the feedback path. Parameters ---------- @@ -226,10 +255,7 @@ def describing_function_plot( List of amplitudes to be used for the describing function plot. omega : list, optional List of frequencies to be used for the linear system Nyquist curve. - 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. - warn : bool, optional + warn_nyquist : bool, optional Set to True to turn on warnings generated by `nyquist_plot` or False to turn off warnings. If not set (or set to None), warnings are turned off if omega is specified, otherwise they are turned on. @@ -249,31 +275,27 @@ def describing_function_plot( >>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> ct.describing_function_plot(H_simple, F_saturation, amp) # doctest: +SKIP + >>> ct.describing_function_response(H_simple, F_saturation, amp) # doctest: +SKIP [(3.343844998258643, 1.4142293090899216)] """ # Decide whether to turn on warnings or not - if warn is None: + if warn_nyquist is None: # Turn warnings on unless omega was specified - warn = omega is None + warn_nyquist = omega is None # Start by drawing a Nyquist curve response = nyquist_response( - H, omega, warn_encirclements=warn, warn_nyquist=warn, - check_kwargs=False, **kwargs) - response.plot(**kwargs) + H, omega, warn_encirclements=warn_nyquist, warn_nyquist=warn_nyquist, + check_kwargs=check_kwargs, **kwargs) H_omega, H_vals = response.contour.imag, H(response.contour) # Compute the describing function df = describing_function(F, A) N_vals = -1/df - # Now add the describing function curve to the plot - plt.plot(N_vals.real, N_vals.imag) - # Look for intersection points - intersections = [] + positions, intersections = [], [] for i in range(N_vals.size - 1): for j in range(H_vals.size - 1): intersect = _find_intersection( @@ -306,17 +328,99 @@ def _cost(x): else: a_final, omega_final = res.x[0], res.x[1] - # Add labels to the intersection points - if isinstance(label, str): - pos = H(1j * omega_final) - plt.text(pos.real, pos.imag, label % (a_final, omega_final)) - elif label is not None or label is not False: - raise ValueError("label must be formatting string or None") + pos = H(1j * omega_final) # Save the final estimate + positions.append(pos) intersections.append((a_final, omega_final)) - return intersections + return DescribingFunctionResponse( + response, N_vals, positions, intersections) + + +def describing_function_plot( + *sysdata, label="%5.2g @ %-5.2g", **kwargs): + """Plot a Nyquist plot with a describing function for a nonlinear system. + + This function generates a Nyquist plot for a closed loop system + consisting of a linear system with a static nonlinear function in the + feedback path. + + Parameters + ---------- + H : LTI system + Linear time-invariant (LTI) system (state space, transfer function, or + FRD) + F : static nonlinear function + A static nonlinearity, either a scalar function or a single-input, + single-output, static input/output system. + A : list + List of amplitudes to be used for the describing function plot. + omega : list, optional + List of frequencies to be used for the linear system Nyquist curve. + refine : bool, optional + 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 + Formatting string used to label intersection points on the Nyquist + plot. Defaults to "%5.2g @ %-5.2g". Set to `None` to omit labels. + + Returns + ------- + intersections : 1D array of 2-tuples or None + A list of all amplitudes and frequencies in which :math:`H(j\\omega) + N(a) = -1`, where :math:`N(a)` is the describing function associated + with `F`, or `None` if there are no such points. Each pair represents + a potential limit cycle for the closed loop system with amplitude + given by the first value of the tuple and frequency given by the + second value. + + Examples + -------- + >>> H_simple = ct.tf([8], [1, 2, 2, 1]) + >>> F_saturation = ct.saturation_nonlinearity(1) + >>> amp = np.linspace(1, 4, 10) + >>> ct.describing_function_plot(H_simple, F_saturation, amp) # doctest: +SKIP + [(3.343844998258643, 1.4142293090899216)] + + """ + # Process keywords + warn_nyquist = config._process_legacy_keyword( + kwargs, 'warn', 'warn_nyquist', kwargs.pop('warn_nyquist', None)) + + if label not in (False, None) and not isinstance(label, str): + raise ValueError("label must be formatting string, False, or None") + + # Get the describing function response + if len(sysdata) == 3: + sysdata = sysdata + (None, ) # set omega to default value + if len(sysdata) == 4: + dfresp = describing_function_response( + *sysdata, refine=kwargs.pop('refine', True), + warn_nyquist=warn_nyquist) + elif len(sysdata) == 1: + 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) + + # Plot the Nyquist response + out[0] = dfresp.response.plot(**kwargs)[0] + + # Add the describing function curve to the plot + lines = plt.plot(dfresp.N_vals.real, dfresp.N_vals.imag) + out[1] = lines + + # Label the intersection points + if 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)) + + return out # Utility function to figure out whether two line segments intersection diff --git a/control/tests/descfcn_test.py b/control/tests/descfcn_test.py index 796ad9034..7b998d084 100644 --- a/control/tests/descfcn_test.py +++ b/control/tests/descfcn_test.py @@ -12,6 +12,7 @@ import numpy as np import control as ct import math +import matplotlib.pyplot as plt from control.descfcn import saturation_nonlinearity, \ friction_backlash_nonlinearity, relay_hysteresis_nonlinearity @@ -137,7 +138,7 @@ def test_describing_function(fcn, amin, amax): ct.describing_function(fcn, -1) -def test_describing_function_plot(): +def test_describing_function_response(): # Simple linear system with at most 1 intersection H_simple = ct.tf([1], [1, 2, 2, 1]) omega = np.logspace(-1, 2, 100) @@ -147,12 +148,12 @@ def test_describing_function_plot(): amp = np.linspace(1, 4, 10) # No intersection - xsects = ct.describing_function_plot(H_simple, F_saturation, amp, omega) - assert xsects == [] + xsects = ct.describing_function_response(H_simple, F_saturation, amp, omega) + assert len(xsects) == 0 # One intersection H_larger = H_simple * 8 - xsects = ct.describing_function_plot(H_larger, F_saturation, amp, omega) + xsects = ct.describing_function_response(H_larger, F_saturation, amp, omega) for a, w in xsects: np.testing.assert_almost_equal( H_larger(1j*w), @@ -163,12 +164,38 @@ def test_describing_function_plot(): omega = np.logspace(-1, 3, 50) F_backlash = ct.descfcn.friction_backlash_nonlinearity(1) amp = np.linspace(0.6, 5, 50) - xsects = ct.describing_function_plot(H_multiple, F_backlash, amp, omega) + xsects = ct.describing_function_response(H_multiple, F_backlash, amp, omega) for a, w in xsects: np.testing.assert_almost_equal( -1/ct.describing_function(F_backlash, a), H_multiple(1j*w), decimal=5) + +def test_describing_function_plot(): + # Simple linear system with at most 1 intersection + H_larger = ct.tf([1], [1, 2, 2, 1]) * 8 + omega = np.logspace(-1, 2, 100) + + # Saturation nonlinearity + F_saturation = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + + # Plot via response + plt.clf() # clear axes + response = ct.describing_function_response( + H_larger, F_saturation, amp, omega) + assert len(response.intersections) == 1 + assert len(plt.gcf().get_axes()) == 0 # make sure there is no plot + + out = 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 + + # Call plot directly + out = ct.describing_function_plot(H_larger, F_saturation, amp, omega) + assert len(out[0]) == 4 and len(out[1]) == 1 + + def test_describing_function_exceptions(): # Describing function with non-zero bias with pytest.warns(UserWarning, match="asymmetric"): @@ -194,3 +221,8 @@ def test_describing_function_exceptions(): amp = np.linspace(1, 4, 10) with pytest.raises(ValueError, match="formatting string"): ct.describing_function_plot(H_simple, F_saturation, amp, label=1) + + # Unrecognized keyword + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.describing_function_response( + H_simple, F_saturation, amp, None, unknown=None) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 5e5cc71be..b3e27fe80 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -27,6 +27,7 @@ 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 @pytest.mark.parametrize("module, prefix", [ (control, ""), (control.flatsys, "flatsys."), (control.optimal, "optimal.") @@ -210,6 +211,8 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'create_estimator_iosystem': stochsys_test.test_estimator_errors, 'create_statefbk_iosystem': statefbk_test.TestStatefbk.test_statefbk_errors, 'describing_function_plot': test_matplotlib_kwargs, + 'describing_function_response': + descfcn_test.test_describing_function_exceptions, 'dlqe': test_unrecognized_kwargs, 'dlqr': test_unrecognized_kwargs, 'drss': test_unrecognized_kwargs, From 9bc5d71e70dbbb2eef57e8e3ca2eb011044f6d22 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 20 Jul 2023 19:01:56 -0700 Subject: [PATCH 0370/1025] regularize sysdata/list processing + small refactor + updated example --- control/freqplot.py | 73 +- control/lti.py | 11 +- control/tests/freqplot_test.py | 24 + examples/bode-and-nyquist-plots.ipynb | 11963 +++++++++++++----------- 4 files changed, 6644 insertions(+), 5427 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 7762db052..2025ab71d 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -5,10 +5,10 @@ # # Functionality to add # [ ] Get rid of this long header (need some common, documented convention) -# [ ] Add mechanisms for storing/plotting margins? (currently forces FRD) -# [ ] Allow line colors/styles to be set in plot() command (also time plots) -# [ ] Allow bode or nyquist style plots from plot() -# [ ] Allow nyquist_response() to generate the response curve (?) +# [x] Add mechanisms for storing/plotting margins? (currently forces FRD) +# [?] Allow line colors/styles to be set in plot() command (also time plots) +# [x] Allow bode or nyquist style plots from plot() +# [i] Allow nyquist_response() to generate the response curve (?) # [i] Allow MIMO frequency plots (w/ mag/phase subplots a la MATLAB) # [i] Update sisotool to use ax= # [i] Create __main__ in freqplot_test to view results (a la timeplot_test) @@ -17,11 +17,11 @@ # [i] Re-implement including of gain/phase margin in the title (?) # [i] Change gangof4 to use bode_plot(plot_phase=False) w/ proper labels # [ ] Allow use of subplot labels instead of output/input subtitles -# [ ] Add line labels to gangof4 -# [ ] Update FRD to allow nyquist_response contours -# [ ] Allow frequency range to be overridden in bode_plot -# [ ] Unit tests for discrete time systems with different sample times -# [ ] Check examples/bode-and-nyquist-plots.ipynb for differences +# [i] Add line labels to gangof4 [done by via bode_plot()] +# [i] Allow frequency range to be overridden in bode_plot +# [i] Unit tests for discrete time systems with different sample times +# [c] Check examples/bode-and-nyquist-plots.ipynb for differences +# [ ] Add unit tests for ct.config.defaults['freqplot_number_of_samples'] # # This file contains some standard control system plots: Bode plots, @@ -704,7 +704,7 @@ def _make_line_label(response, output_index, input_index): # Get the frequencies and convert to Hz, if needed omega_plot = omega_sys / (2 * math.pi) if Hz else omega_sys if response.isdtime(strict=True): - nyq_freq = 0.5 /response.dt if Hz else math.pi / response.dt + nyq_freq = (0.5/response.dt) if Hz else (math.pi/response.dt) # Save the magnitude and phase to plot mag_plot = 20 * np.log10(mag[i, j]) if dB else mag[i, j] @@ -1163,7 +1163,7 @@ def plot(self, *args, **kwargs): def nyquist_response( - syslist, omega=None, plot=None, omega_limits=None, omega_num=None, + sysdata, omega=None, plot=None, omega_limits=None, omega_num=None, label_freq=0, color=None, return_contour=False, check_kwargs=True, warn_encirclements=True, warn_nyquist=True, **kwargs): """Nyquist response for a system. @@ -1179,7 +1179,7 @@ def nyquist_response( Parameters ---------- - syslist : list of LTI + sysdata : LTI or list of LTI List of linear input/output systems (single system is OK). Nyquist curves for each system are plotted on the same graph. @@ -1283,9 +1283,8 @@ def nyquist_response( if check_kwargs and kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) - # If argument was a singleton, turn it into a tuple - if not isinstance(syslist, (list, tuple)): - syslist = (syslist,) + # Convert the first argument to a list + syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] # Determine the range of frequencies to use, based on args/features omega, omega_range_given = _determine_omega_vector( @@ -1499,17 +1498,15 @@ def nyquist_response( count, contour, resp, sys.dt, sysname=sysname, return_contour=return_contour)) - # Return response - if len(responses) == 1: # TODO: update to match input type - return responses[0] - else: + if isinstance(sysdata, (list, tuple)): return NyquistResponseList(responses) + else: + return responses[0] def nyquist_plot( - data, omega=None, plot=None, omega_limits=None, omega_num=None, - label_freq=0, color=None, return_contour=None, title=None, - legend_loc='upper right', **kwargs): + data, omega=None, plot=None, label_freq=0, color=None, + return_contour=None, title=None, legend_loc='upper right', **kwargs): """Nyquist plot for a system. Generates a Nyquist plot for the system over a (optional) frequency @@ -1677,8 +1674,6 @@ def nyquist_plot( """ # Get values for params (and pop from list to allow keyword use in plot) - omega_num_given = omega_num is not None - omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) arrows = config._get_param( 'nyquist', 'arrows', kwargs, _nyquist_defaults, pop=True) arrow_size = config._get_param( @@ -1724,18 +1719,21 @@ def _parse_linestyle(style_name, allow_false=False): else: raise ValueError("unknown or unsupported arrow location") + # Set the arrow style + if arrow_style is None: + arrow_style = mpl.patches.ArrowStyle( + 'simple', head_width=arrow_size, head_length=arrow_size) + # If argument was a singleton, turn it into a tuple if not isinstance(data, (list, tuple)): data = (data,) # If we are passed a list of systems, compute response first - # If we were passed a list of systems, convert to data if all([isinstance( sys, (StateSpace, TransferFunction, FrequencyResponseData)) for sys in data]): nyquist_responses = nyquist_response( - data, omega=omega, omega_limits=omega_limits, omega_num=omega_num, - check_kwargs=False, **kwargs) + data, omega=omega, check_kwargs=False, **kwargs) if not isinstance(nyquist_responses, list): nyquist_responses = [nyquist_responses] else: @@ -1763,11 +1761,6 @@ def _parse_linestyle(style_name, allow_false=False): for i in range(out.shape[0]): out[i] = [] # unique list in each element - # Set the arrow style - if arrow_style is None: - arrow_style = mpl.patches.ArrowStyle( - 'simple', head_width=arrow_size, head_length=arrow_size) - for idx, response in enumerate(nyquist_responses): resp = response.response if response.dt in [0, None]: @@ -1919,6 +1912,7 @@ def _parse_linestyle(style_name, allow_false=False): title = "Nyquist plot for " + ", ".join(labels) fig.suptitle(title) + # Legacy return pocessing if plot is True or return_contour is not None: if len(data) == 1: counts, contours = counts[0], contours[0] @@ -2134,7 +2128,7 @@ def gangof4_plot(P, C, omega=None, **kwargs): # Singular values plot # def singular_values_response( - sys, omega=None, omega_limits=None, omega_num=None, Hz=False): + sysdata, omega=None, omega_limits=None, omega_num=None, Hz=False): """Singular value response for a system. Computes the singular values for a system or list of systems over @@ -2173,8 +2167,8 @@ def singular_values_response( >>> response = ct.singular_values_response(G, omega=omegas) """ - # If argument was a singleton, turn it into a tuple - syslist = sys if isinstance(sys, (list, tuple)) else (sys,) + # Convert the first argument to a list + syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] if any([not isinstance(sys, LTI) for sys in syslist]): ValueError("singular values can only be computed for LTI systems") @@ -2201,8 +2195,7 @@ def singular_values_response( sysname=response.sysname, plot_type='svplot', title=f"Singular values for {response.sysname}")) - # Return the responses in the same form that we received the systems - if isinstance(sys, (list, tuple)): + if isinstance(sysdata, (list, tuple)): return FrequencyResponseList(svd_responses) else: return svd_responses[0] @@ -2554,20 +2547,20 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, if np.any(toreplace): features_ = features_[~toreplace] elif sys.isdtime(strict=True): - fn = math.pi * 1. / sys.dt + fn = math.pi / sys.dt # TODO: What distance to the Nyquist frequency is appropriate? freq_interesting.append(fn * 0.9) features_ = np.concatenate((sys.poles(), sys.zeros())) # Get rid of poles and zeros on the real axis (imag==0) - # * origin and real < 0 + # * origin and real < 0 # * at 1.: would result in omega=0. (logaritmic plot!) toreplace = np.isclose(features_.imag, 0.0) & ( (features_.real <= 0.) | (np.abs(features_.real - 1.0) < 1.e-10)) if np.any(toreplace): features_ = features_[~toreplace] - # TODO: improve + # TODO: improve (mapping pack to continuous time) features_ = np.abs(np.log(features_) / (1.j * sys.dt)) else: # TODO diff --git a/control/lti.py b/control/lti.py index d7355395d..81334f869 100644 --- a/control/lti.py +++ b/control/lti.py @@ -372,7 +372,7 @@ def evalfr(sys, x, squeeze=None): def frequency_response( - sys, omega=None, omega_limits=None, omega_num=None, + sysdata, omega=None, omega_limits=None, omega_num=None, Hz=None, squeeze=None): """Frequency response of an LTI system at multiple angular frequencies. @@ -382,7 +382,7 @@ def frequency_response( Parameters ---------- - sys: LTI system or list of LTI systems + sysdata: LTI system or list of LTI systems Linear system(s) for which frequency response is computed. omega : float or 1D array_like, optional A list of frequencies in radians/sec at which the system should be @@ -452,8 +452,11 @@ def frequency_response( """ from .freqplot import _determine_omega_vector + # Process keyword arguments + omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) + # Convert the first argument to a list - syslist = sys if isinstance(sys, (list, tuple)) else [sys] + syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] # Get the common set of frequencies to use omega_syslist, omega_range_given = _determine_omega_vector( @@ -472,7 +475,7 @@ def frequency_response( # Compute the frequency response responses.append(sys_.frequency_response(omega_sys, squeeze=squeeze)) - if isinstance(sys, (list, tuple)): + if isinstance(sysdata, (list, tuple)): from .freqplot import FrequencyResponseList return FrequencyResponseList(responses) else: diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index 9299181b0..f09d5617d 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -179,6 +179,30 @@ def test_gangof4_plots(savefigs=False): if savefigs: plt.savefig('freqplot-gangof4.png') +@pytest.mark.parametrize("response_cmd, return_type", [ + (ct.frequency_response, ct.FrequencyResponseData), + (ct.nyquist_response, ct.freqplot.NyquistResponseData), + (ct.singular_values_response, ct.FrequencyResponseData), +]) +def test_first_arg_listable(response_cmd, return_type): + sys = ct.rss(2, 1, 1) + + # If we pass a single system, should get back a single system + result = response_cmd(sys) + assert isinstance(result, return_type) + + # If we pass a list of systems, we should get back a list + result = response_cmd([sys, sys, sys]) + assert isinstance(result, list) + assert len(result) == 3 + assert all([isinstance(item, return_type) for item in result]) + + # If we pass a singleton list, we should get back a list + result = response_cmd([sys]) + assert isinstance(result, list) + assert len(result) == 1 + assert isinstance(result[0], return_type) + if __name__ == "__main__": # diff --git a/examples/bode-and-nyquist-plots.ipynb b/examples/bode-and-nyquist-plots.ipynb index b31d39eea..6ac74f34e 100644 --- a/examples/bode-and-nyquist-plots.ipynb +++ b/examples/bode-and-nyquist-plots.ipynb @@ -1,5 +1,15 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Bode and Nyquist plot examples\n", + "\n", + "This notebook has various examples of Bode and Nyquist plots showing how these can be \n", + "customized in different ways." + ] + }, { "cell_type": "code", "execution_count": 1, @@ -17,10 +27,8 @@ "metadata": {}, "outputs": [], "source": [ - "%matplotlib nbagg\n", - "# only needed when developing python-control\n", - "%load_ext autoreload\n", - "%autoreload 2" + "# Enable interactive figures (panning and zooming)\n", + "%matplotlib nbagg" ] }, { @@ -41,10 +49,7 @@ "$$\\frac{1}{s + 1}$$" ], "text/plain": [ - "\n", - " 1\n", - "-----\n", - "s + 1" + "TransferFunction(array([1.]), array([1., 1.]))" ] }, "metadata": {}, @@ -56,10 +61,7 @@ "$$\\frac{1}{0.1592 s + 1}$$" ], "text/plain": [ - "\n", - " 1\n", - "------------\n", - "0.1592 s + 1" + "TransferFunction(array([1.]), array([0.15915494, 1. ]))" ] }, "metadata": {}, @@ -71,10 +73,7 @@ "$$\\frac{1}{0.02533 s^2 + 0.1592 s + 1}$$" ], "text/plain": [ - "\n", - " 1\n", - "--------------------------\n", - "0.02533 s^2 + 0.1592 s + 1" + "TransferFunction(array([1.]), array([0.0253303 , 0.15915494, 1. ]))" ] }, "metadata": {}, @@ -86,10 +85,7 @@ "$$\\frac{s}{0.1592 s + 1}$$" ], "text/plain": [ - "\n", - " s\n", - "------------\n", - "0.1592 s + 1" + "TransferFunction(array([1., 0.]), array([0.15915494, 1. ]))" ] }, "metadata": {}, @@ -98,13 +94,11 @@ { "data": { "text/latex": [ - "$$\\frac{1}{1.021e-10 s^5 + 7.122e-08 s^4 + 4.519e-05 s^3 + 0.003067 s^2 + 0.1767 s + 1}$$" + "$$\\frac{1}{1.021 \\times 10^{-10} s^5 + 7.122 \\times 10^{-8} s^4 + 4.519 \\times 10^{-5} s^3 + 0.003067 s^2 + 0.1767 s + 1}$$" ], "text/plain": [ - "\n", - " 1\n", - "---------------------------------------------------------------------------\n", - "1.021e-10 s^5 + 7.122e-08 s^4 + 4.519e-05 s^3 + 0.003067 s^2 + 0.1767 s + 1" + "TransferFunction(array([1.]), array([1.02117614e-10, 7.12202519e-08, 4.51924626e-05, 3.06749883e-03,\n", + " 1.76661987e-01, 1.00000000e+00]))" ] }, "metadata": {}, @@ -119,20 +113,19 @@ "w010hz = 2*sp.pi*10. # 10 Hz\n", "w100hz = 2*sp.pi*100. # 100 Hz\n", "# First order systems\n", - "pt1_w001rad = ct.tf([1.], [1./w001rad, 1.])\n", + "pt1_w001rad = ct.tf([1.], [1./w001rad, 1.], name='pt1_w001rad')\n", "display(pt1_w001rad)\n", - "pt1_w001hz = ct.tf([1.], [1./w001hz, 1.])\n", + "pt1_w001hz = ct.tf([1.], [1./w001hz, 1.], name='pt1_w001hz')\n", "display(pt1_w001hz)\n", - "pt2_w001hz = ct.tf([1.], [1./w001hz**2, 1./w001hz, 1.])\n", + "pt2_w001hz = ct.tf([1.], [1./w001hz**2, 1./w001hz, 1.], name='pt2_w001hz')\n", "display(pt2_w001hz)\n", - "pt1_w001hzi = ct.tf([1., 0.], [1./w001hz, 1.])\n", + "pt1_w001hzi = ct.tf([1., 0.], [1./w001hz, 1.], name='pt1_w001hzi')\n", "display(pt1_w001hzi)\n", "# Second order system\n", - "pt5hz = ct.tf([1.], [1./w001hz, 1.]) * ct.tf([1.], \n", - " [1./w010hz**2, \n", - " 1./w010hz, 1.]) * ct.tf([1.], \n", - " [1./w100hz**2, \n", - " 1./w100hz, 1.])\n", + "pt5hz = ct.tf(\n", + " ct.tf([1.], [1./w001hz, 1.]) *\n", + " ct.tf([1.], [1./w010hz**2, 1./w010hz, 1.]) *\n", + " ct.tf([1.], [1./w100hz**2, 1./w100hz, 1.]), name='pt5hz')\n", "display(pt5hz)\n" ] }, @@ -174,12 +167,7 @@ "$$\\frac{0.0004998 z + 0.0004998}{z - 0.999}\\quad dt = 0.001$$" ], "text/plain": [ - "\n", - "0.0004998 z + 0.0004998\n", - "-----------------------\n", - " z - 0.999\n", - "\n", - "dt = 0.001" + "TransferFunction(array([0.00049975, 0.00049975]), array([ 1. , -0.9990005]), 0.001)" ] }, "metadata": {}, @@ -191,12 +179,7 @@ "$$\\frac{0.003132 z + 0.003132}{z - 0.9937}\\quad dt = 0.001$$" ], "text/plain": [ - "\n", - "0.003132 z + 0.003132\n", - "---------------------\n", - " z - 0.9937\n", - "\n", - "dt = 0.001" + "TransferFunction(array([0.00313175, 0.00313175]), array([ 1. , -0.99373649]), 0.001)" ] }, "metadata": {}, @@ -208,12 +191,7 @@ "$$\\frac{6.264 z - 6.264}{z - 0.9937}\\quad dt = 0.001$$" ], "text/plain": [ - "\n", - "6.264 z - 6.264\n", - "---------------\n", - " z - 0.9937\n", - "\n", - "dt = 0.001" + "TransferFunction(array([ 6.26350792, -6.26350792]), array([ 1. , -0.99373649]), 0.001)" ] }, "metadata": {}, @@ -222,15 +200,10 @@ { "data": { "text/latex": [ - "$$\\frac{9.839e-06 z^2 + 1.968e-05 z + 9.839e-06}{z^2 - 1.994 z + 0.9937}\\quad dt = 0.001$$" + "$$\\frac{9.839 \\times 10^{-6} z^2 + 1.968 \\times 10^{-5} z + 9.839 \\times 10^{-6}}{z^2 - 1.994 z + 0.9937}\\quad dt = 0.001$$" ], "text/plain": [ - "\n", - "9.839e-06 z^2 + 1.968e-05 z + 9.839e-06\n", - "---------------------------------------\n", - " z^2 - 1.994 z + 0.9937\n", - "\n", - "dt = 0.001" + "TransferFunction(array([9.83859843e-06, 1.96771969e-05, 9.83859843e-06]), array([ 1. , -1.9936972 , 0.99373655]), 0.001)" ] }, "metadata": {}, @@ -239,15 +212,12 @@ { "data": { "text/latex": [ - "$$\\frac{2.091e-07 z^5 + 1.046e-06 z^4 + 2.091e-06 z^3 + 2.091e-06 z^2 + 1.046e-06 z + 2.091e-07}{z^5 - 4.205 z^4 + 7.155 z^3 - 6.212 z^2 + 2.78 z - 0.5182}\\quad dt = 0.001$$" + "$$\\frac{2.091 \\times 10^{-7} z^5 + 1.046 \\times 10^{-6} z^4 + 2.091 \\times 10^{-6} z^3 + 2.091 \\times 10^{-6} z^2 + 1.046 \\times 10^{-6} z + 2.091 \\times 10^{-7}}{z^5 - 4.205 z^4 + 7.155 z^3 - 6.212 z^2 + 2.78 z - 0.5182}\\quad dt = 0.001$$" ], "text/plain": [ - "\n", - "2.091e-07 z^5 + 1.046e-06 z^4 + 2.091e-06 z^3 + 2.091e-06 z^2 + 1.046e-06 z + 2.091e-07\n", - "---------------------------------------------------------------------------------------\n", - " z^5 - 4.205 z^4 + 7.155 z^3 - 6.212 z^2 + 2.78 z - 0.5182\n", - "\n", - "dt = 0.001" + "TransferFunction(array([2.09141504e-07, 1.04570752e-06, 2.09141505e-06, 2.09141504e-06,\n", + " 1.04570753e-06, 2.09141504e-07]), array([ 1. , -4.20491439, 7.15468522, -6.21165862, 2.78011819,\n", + " -0.51822371]), 0.001)" ] }, "metadata": {}, @@ -256,15 +226,12 @@ { "data": { "text/latex": [ - "$$\\frac{2.731e-10 z^5 + 1.366e-09 z^4 + 2.731e-09 z^3 + 2.731e-09 z^2 + 1.366e-09 z + 2.731e-10}{z^5 - 4.815 z^4 + 9.286 z^3 - 8.968 z^2 + 4.337 z - 0.8405}\\quad dt = 0.00025$$" + "$$\\frac{2.731 \\times 10^{-10} z^5 + 1.366 \\times 10^{-9} z^4 + 2.731 \\times 10^{-9} z^3 + 2.731 \\times 10^{-9} z^2 + 1.366 \\times 10^{-9} z + 2.731 \\times 10^{-10}}{z^5 - 4.815 z^4 + 9.286 z^3 - 8.968 z^2 + 4.337 z - 0.8405}\\quad dt = 0.00025$$" ], "text/plain": [ - "\n", - "2.731e-10 z^5 + 1.366e-09 z^4 + 2.731e-09 z^3 + 2.731e-09 z^2 + 1.366e-09 z + 2.731e-10\n", - "---------------------------------------------------------------------------------------\n", - " z^5 - 4.815 z^4 + 9.286 z^3 - 8.968 z^2 + 4.337 z - 0.8405\n", - "\n", - "dt = 0.00025" + "TransferFunction(array([2.73131184e-10, 1.36565426e-09, 2.73131739e-09, 2.73130674e-09,\n", + " 1.36565870e-09, 2.73130185e-10]), array([ 1. , -4.81504111, 9.28609659, -8.96760178, 4.33708442,\n", + " -0.84053811]), 0.00025)" ] }, "metadata": {}, @@ -272,17 +239,17 @@ } ], "source": [ - "pt1_w001rads = ct.sample_system(pt1_w001rad, sampleTime, 'tustin')\n", + "pt1_w001rads = ct.sample_system(pt1_w001rad, sampleTime, 'tustin', name='pt1_w001rads')\n", "display(pt1_w001rads)\n", - "pt1_w001hzs = ct.sample_system(pt1_w001hz, sampleTime, 'tustin')\n", + "pt1_w001hzs = ct.sample_system(pt1_w001hz, sampleTime, 'tustin', name='pt1_w001hzs')\n", "display(pt1_w001hzs)\n", - "pt1_w001hzis = ct.sample_system(pt1_w001hzi, sampleTime, 'tustin')\n", + "pt1_w001hzis = ct.sample_system(pt1_w001hzi, sampleTime, 'tustin', name='pt1_w001hzis')\n", "display(pt1_w001hzis)\n", - "pt2_w001hzs = ct.sample_system(pt2_w001hz, sampleTime, 'tustin')\n", + "pt2_w001hzs = ct.sample_system(pt2_w001hz, sampleTime, 'tustin', name='pt2_w001hzs')\n", "display(pt2_w001hzs)\n", - "pt5s = ct.sample_system(pt5hz, sampleTime, 'tustin')\n", + "pt5s = ct.sample_system(pt5hz, sampleTime, 'tustin', name='pt5s')\n", "display(pt5s)\n", - "pt5sh = ct.sample_system(pt5hz, sampleTime/4, 'tustin')\n", + "pt5sh = ct.sample_system(pt5hz, sampleTime/4, 'tustin', name='pt5sh')\n", "display(pt5sh)" ] }, @@ -303,42 +270,46 @@ { "cell_type": "code", "execution_count": 6, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", + "/* global mpl */\n", "window.mpl = {};\n", "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", + "mpl.get_websocket_type = function () {\n", + " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", + " alert(\n", + " 'Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.'\n", + " );\n", + " }\n", + "};\n", "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", + " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", + " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", + " warnings.textContent =\n", + " 'This browser does not support binary websocket messages. ' +\n", + " 'Performance may be slow.';\n", " }\n", " }\n", "\n", @@ -353,11 +324,11 @@ "\n", " this.image_mode = 'full';\n", "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", + " this.root = document.createElement('div');\n", + " this.root.setAttribute('style', 'display: inline-block');\n", + " this._root_extra_style(this.root);\n", "\n", - " $(parent_element).append(this.root);\n", + " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", @@ -367,285 +338,366 @@ "\n", " this.waiting = false;\n", "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", + " this.ws.onopen = function () {\n", + " fig.send_message('supports_binary', { value: fig.supports_binary });\n", + " fig.send_message('send_image_mode', {});\n", + " if (fig.ratio !== 1) {\n", + " fig.send_message('set_device_pixel_ratio', {\n", + " device_pixel_ratio: fig.ratio,\n", + " });\n", " }\n", + " fig.send_message('refresh', {});\n", + " };\n", "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", + " this.imageObj.onload = function () {\n", + " if (fig.image_mode === 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", "\n", - " this.imageObj.onunload = function() {\n", + " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", - " }\n", + " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", + "};\n", "\n", + "mpl.figure.prototype._init_header = function () {\n", + " var titlebar = document.createElement('div');\n", + " titlebar.classList =\n", + " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", + " var titletext = document.createElement('div');\n", + " titletext.classList = 'ui-dialog-title';\n", + " titletext.setAttribute(\n", + " 'style',\n", + " 'width: 100%; text-align: center; padding: 3px;'\n", + " );\n", + " titlebar.appendChild(titletext);\n", + " this.root.appendChild(titlebar);\n", + " this.header = titletext;\n", + "};\n", "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", - "}\n", + "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", - "mpl.figure.prototype._init_canvas = function() {\n", + "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + " var canvas_div = (this.canvas_div = document.createElement('div'));\n", + " canvas_div.setAttribute(\n", + " 'style',\n", + " 'border: 1px solid #ddd;' +\n", + " 'box-sizing: content-box;' +\n", + " 'clear: both;' +\n", + " 'min-height: 1px;' +\n", + " 'min-width: 1px;' +\n", + " 'outline: 0;' +\n", + " 'overflow: hidden;' +\n", + " 'position: relative;' +\n", + " 'resize: both;'\n", + " );\n", "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", + " function on_keyboard_event_closure(name) {\n", + " return function (event) {\n", + " return fig.key_event(event, name);\n", + " };\n", " }\n", "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", + " canvas_div.addEventListener(\n", + " 'keydown',\n", + " on_keyboard_event_closure('key_press')\n", + " );\n", + " canvas_div.addEventListener(\n", + " 'keyup',\n", + " on_keyboard_event_closure('key_release')\n", + " );\n", + "\n", + " this._canvas_extra_style(canvas_div);\n", + " this.root.appendChild(canvas_div);\n", "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + " var canvas = (this.canvas = document.createElement('canvas'));\n", + " canvas.classList.add('mpl-canvas');\n", + " canvas.setAttribute('style', 'box-sizing: content-box;');\n", "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", + " this.context = canvas.getContext('2d');\n", "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", + " var backingStore =\n", + " this.context.backingStorePixelRatio ||\n", + " this.context.webkitBackingStorePixelRatio ||\n", + " this.context.mozBackingStorePixelRatio ||\n", + " this.context.msBackingStorePixelRatio ||\n", + " this.context.oBackingStorePixelRatio ||\n", + " this.context.backingStorePixelRatio ||\n", + " 1;\n", "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", + " 'canvas'\n", + " ));\n", + " rubberband_canvas.setAttribute(\n", + " 'style',\n", + " 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n", + " );\n", + "\n", + " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", + " if (this.ResizeObserver === undefined) {\n", + " if (window.ResizeObserver !== undefined) {\n", + " this.ResizeObserver = window.ResizeObserver;\n", + " } else {\n", + " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", + " this.ResizeObserver = obs.ResizeObserver;\n", + " }\n", + " }\n", "\n", - " var pass_mouse_events = true;\n", + " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", + " var nentries = entries.length;\n", + " for (var i = 0; i < nentries; i++) {\n", + " var entry = entries[i];\n", + " var width, height;\n", + " if (entry.contentBoxSize) {\n", + " if (entry.contentBoxSize instanceof Array) {\n", + " // Chrome 84 implements new version of spec.\n", + " width = entry.contentBoxSize[0].inlineSize;\n", + " height = entry.contentBoxSize[0].blockSize;\n", + " } else {\n", + " // Firefox implements old version of spec.\n", + " width = entry.contentBoxSize.inlineSize;\n", + " height = entry.contentBoxSize.blockSize;\n", + " }\n", + " } else {\n", + " // Chrome <84 implements even older version of spec.\n", + " width = entry.contentRect.width;\n", + " height = entry.contentRect.height;\n", + " }\n", "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", + " // Keep the size of the canvas and rubber band canvas in sync with\n", + " // the canvas container.\n", + " if (entry.devicePixelContentBoxSize) {\n", + " // Chrome 84 implements new version of spec.\n", + " canvas.setAttribute(\n", + " 'width',\n", + " entry.devicePixelContentBoxSize[0].inlineSize\n", + " );\n", + " canvas.setAttribute(\n", + " 'height',\n", + " entry.devicePixelContentBoxSize[0].blockSize\n", + " );\n", + " } else {\n", + " canvas.setAttribute('width', width * fig.ratio);\n", + " canvas.setAttribute('height', height * fig.ratio);\n", + " }\n", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\n", + "\n", + " rubberband_canvas.setAttribute('width', width);\n", + " rubberband_canvas.setAttribute('height', height);\n", + "\n", + " // And update the size in Python. We ignore the initial 0/0 size\n", + " // that occurs as the element is placed into the DOM, which should\n", + " // otherwise not happen due to the minimum size styling.\n", + " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", + " fig.request_resize(width, height);\n", + " }\n", + " }\n", " });\n", + " this.resizeObserverInstance.observe(canvas_div);\n", "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", + " function on_mouse_event_closure(name) {\n", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", " }\n", "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'dblclick',\n", + " on_mouse_event_closure('dblclick')\n", + " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseleave',\n", + " on_mouse_event_closure('figure_leave')\n", + " );\n", "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", + " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", - " mouse_event_fn(event);\n", + " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + " canvas_div.appendChild(canvas);\n", + " canvas_div.appendChild(rubberband_canvas);\n", "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", + " this.rubberband_context = rubberband_canvas.getContext('2d');\n", + " this.rubberband_context.strokeStyle = '#000000';\n", "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", + " this._resize_canvas = function (width, height, forward) {\n", + " if (forward) {\n", + " canvas_div.style.width = width + 'px';\n", + " canvas_div.style.height = height + 'px';\n", + " }\n", + " };\n", "\n", " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n", + " event.preventDefault();\n", " return false;\n", " });\n", "\n", - " function set_focus () {\n", + " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", + "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", - " var nav_element = $('
')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", + " var toolbar = document.createElement('div');\n", + " toolbar.classList = 'mpl-toolbar';\n", + " this.root.appendChild(toolbar);\n", "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", + " function on_click_closure(name) {\n", + " return function (_event) {\n", + " return fig.toolbar_button_onclick(name);\n", + " };\n", " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", + "\n", + " function on_mouseover_closure(tooltip) {\n", + " return function (event) {\n", + " if (!event.currentTarget.disabled) {\n", + " return fig.toolbar_button_onmouseover(tooltip);\n", + " }\n", + " };\n", " }\n", "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", + " fig.buttons = {};\n", + " var buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", + " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", - " // put a spacer in here.\n", + " /* Instead of a spacer, we start a new button group. */\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", + " }\n", + " buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", + " var status_bar = document.createElement('span');\n", + " status_bar.classList = 'mpl-message pull-right';\n", + " toolbar.appendChild(status_bar);\n", + " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", + " var buttongrp = document.createElement('div');\n", + " buttongrp.classList = 'btn-group inline pull-right';\n", + " button = document.createElement('button');\n", + " button.classList = 'btn btn-mini btn-primary';\n", + " button.href = '#';\n", + " button.title = 'Stop Interaction';\n", + " button.innerHTML = '';\n", + " button.addEventListener('click', function (_evt) {\n", + " fig.handle_close(fig, {});\n", " });\n", - "}\n", + " button.addEventListener(\n", + " 'mouseover',\n", + " on_mouseover_closure('Stop Interaction')\n", + " );\n", + " buttongrp.appendChild(button);\n", + " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", + " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", + "};\n", + "\n", + "mpl.figure.prototype._remove_fig_handler = function (event) {\n", + " var fig = event.data.fig;\n", + " if (event.target !== this) {\n", + " // Ignore bubbled events from children.\n", + " return;\n", + " }\n", + " fig.close_ws(fig, {});\n", + "};\n", + "\n", + "mpl.figure.prototype._root_extra_style = function (el) {\n", + " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", + "};\n", "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", + "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", + " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", + " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", + "};\n", "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", + "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", + " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", " }\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", - "}\n", - "\n", + "};\n", "\n", - "mpl.find_output_cell = function(html_output) {\n", + "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", - " if (data['text/html'] == html_output) {\n", + " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", - "}\n", + "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "if (IPython.notebook.kernel !== null) {\n", + " IPython.notebook.kernel.comm_manager.register_target(\n", + " 'matplotlib',\n", + " mpl.mpl_figure_comm\n", + " );\n", "}\n" ], "text/plain": [ @@ -1898,7 +2237,7 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" @@ -1922,43 +2261,45 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", + "/* global mpl */\n", "window.mpl = {};\n", "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", + "mpl.get_websocket_type = function () {\n", + " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", + " alert(\n", + " 'Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.'\n", + " );\n", + " }\n", + "};\n", "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", + " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", + " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", + " warnings.textContent =\n", + " 'This browser does not support binary websocket messages. ' +\n", + " 'Performance may be slow.';\n", " }\n", " }\n", "\n", @@ -1973,11 +2314,11 @@ "\n", " this.image_mode = 'full';\n", "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", + " this.root = document.createElement('div');\n", + " this.root.setAttribute('style', 'display: inline-block');\n", + " this._root_extra_style(this.root);\n", "\n", - " $(parent_element).append(this.root);\n", + " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", @@ -1987,285 +2328,366 @@ "\n", " this.waiting = false;\n", "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", + " this.ws.onopen = function () {\n", + " fig.send_message('supports_binary', { value: fig.supports_binary });\n", + " fig.send_message('send_image_mode', {});\n", + " if (fig.ratio !== 1) {\n", + " fig.send_message('set_device_pixel_ratio', {\n", + " device_pixel_ratio: fig.ratio,\n", + " });\n", " }\n", + " fig.send_message('refresh', {});\n", + " };\n", "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", + " this.imageObj.onload = function () {\n", + " if (fig.image_mode === 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", "\n", - " this.imageObj.onunload = function() {\n", + " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", - " }\n", + " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", + "};\n", "\n", + "mpl.figure.prototype._init_header = function () {\n", + " var titlebar = document.createElement('div');\n", + " titlebar.classList =\n", + " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", + " var titletext = document.createElement('div');\n", + " titletext.classList = 'ui-dialog-title';\n", + " titletext.setAttribute(\n", + " 'style',\n", + " 'width: 100%; text-align: center; padding: 3px;'\n", + " );\n", + " titlebar.appendChild(titletext);\n", + " this.root.appendChild(titlebar);\n", + " this.header = titletext;\n", + "};\n", "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", - "}\n", + "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", - "mpl.figure.prototype._init_canvas = function() {\n", + "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + " var canvas_div = (this.canvas_div = document.createElement('div'));\n", + " canvas_div.setAttribute(\n", + " 'style',\n", + " 'border: 1px solid #ddd;' +\n", + " 'box-sizing: content-box;' +\n", + " 'clear: both;' +\n", + " 'min-height: 1px;' +\n", + " 'min-width: 1px;' +\n", + " 'outline: 0;' +\n", + " 'overflow: hidden;' +\n", + " 'position: relative;' +\n", + " 'resize: both;'\n", + " );\n", "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", + " function on_keyboard_event_closure(name) {\n", + " return function (event) {\n", + " return fig.key_event(event, name);\n", + " };\n", " }\n", "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", + " canvas_div.addEventListener(\n", + " 'keydown',\n", + " on_keyboard_event_closure('key_press')\n", + " );\n", + " canvas_div.addEventListener(\n", + " 'keyup',\n", + " on_keyboard_event_closure('key_release')\n", + " );\n", + "\n", + " this._canvas_extra_style(canvas_div);\n", + " this.root.appendChild(canvas_div);\n", + "\n", + " var canvas = (this.canvas = document.createElement('canvas'));\n", + " canvas.classList.add('mpl-canvas');\n", + " canvas.setAttribute('style', 'box-sizing: content-box;');\n", "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + " this.context = canvas.getContext('2d');\n", "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", + " var backingStore =\n", + " this.context.backingStorePixelRatio ||\n", + " this.context.webkitBackingStorePixelRatio ||\n", + " this.context.mozBackingStorePixelRatio ||\n", + " this.context.msBackingStorePixelRatio ||\n", + " this.context.oBackingStorePixelRatio ||\n", + " this.context.backingStorePixelRatio ||\n", + " 1;\n", "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", + " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", + " 'canvas'\n", + " ));\n", + " rubberband_canvas.setAttribute(\n", + " 'style',\n", + " 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n", + " );\n", "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", + " if (this.ResizeObserver === undefined) {\n", + " if (window.ResizeObserver !== undefined) {\n", + " this.ResizeObserver = window.ResizeObserver;\n", + " } else {\n", + " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", + " this.ResizeObserver = obs.ResizeObserver;\n", + " }\n", + " }\n", "\n", - " var pass_mouse_events = true;\n", + " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", + " var nentries = entries.length;\n", + " for (var i = 0; i < nentries; i++) {\n", + " var entry = entries[i];\n", + " var width, height;\n", + " if (entry.contentBoxSize) {\n", + " if (entry.contentBoxSize instanceof Array) {\n", + " // Chrome 84 implements new version of spec.\n", + " width = entry.contentBoxSize[0].inlineSize;\n", + " height = entry.contentBoxSize[0].blockSize;\n", + " } else {\n", + " // Firefox implements old version of spec.\n", + " width = entry.contentBoxSize.inlineSize;\n", + " height = entry.contentBoxSize.blockSize;\n", + " }\n", + " } else {\n", + " // Chrome <84 implements even older version of spec.\n", + " width = entry.contentRect.width;\n", + " height = entry.contentRect.height;\n", + " }\n", "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", + " // Keep the size of the canvas and rubber band canvas in sync with\n", + " // the canvas container.\n", + " if (entry.devicePixelContentBoxSize) {\n", + " // Chrome 84 implements new version of spec.\n", + " canvas.setAttribute(\n", + " 'width',\n", + " entry.devicePixelContentBoxSize[0].inlineSize\n", + " );\n", + " canvas.setAttribute(\n", + " 'height',\n", + " entry.devicePixelContentBoxSize[0].blockSize\n", + " );\n", + " } else {\n", + " canvas.setAttribute('width', width * fig.ratio);\n", + " canvas.setAttribute('height', height * fig.ratio);\n", + " }\n", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\n", + "\n", + " rubberband_canvas.setAttribute('width', width);\n", + " rubberband_canvas.setAttribute('height', height);\n", + "\n", + " // And update the size in Python. We ignore the initial 0/0 size\n", + " // that occurs as the element is placed into the DOM, which should\n", + " // otherwise not happen due to the minimum size styling.\n", + " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", + " fig.request_resize(width, height);\n", + " }\n", + " }\n", " });\n", + " this.resizeObserverInstance.observe(canvas_div);\n", "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", + " function on_mouse_event_closure(name) {\n", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", " }\n", "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'dblclick',\n", + " on_mouse_event_closure('dblclick')\n", + " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseleave',\n", + " on_mouse_event_closure('figure_leave')\n", + " );\n", "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", + " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", - " mouse_event_fn(event);\n", + " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", + " canvas_div.appendChild(canvas);\n", + " canvas_div.appendChild(rubberband_canvas);\n", "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", + " this.rubberband_context = rubberband_canvas.getContext('2d');\n", + " this.rubberband_context.strokeStyle = '#000000';\n", "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", + " this._resize_canvas = function (width, height, forward) {\n", + " if (forward) {\n", + " canvas_div.style.width = width + 'px';\n", + " canvas_div.style.height = height + 'px';\n", + " }\n", + " };\n", "\n", " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n", + " event.preventDefault();\n", " return false;\n", " });\n", "\n", - " function set_focus () {\n", + " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", + "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", - " var nav_element = $('
')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", + " var toolbar = document.createElement('div');\n", + " toolbar.classList = 'mpl-toolbar';\n", + " this.root.appendChild(toolbar);\n", "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", + " function on_click_closure(name) {\n", + " return function (_event) {\n", + " return fig.toolbar_button_onclick(name);\n", + " };\n", " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", + "\n", + " function on_mouseover_closure(tooltip) {\n", + " return function (event) {\n", + " if (!event.currentTarget.disabled) {\n", + " return fig.toolbar_button_onmouseover(tooltip);\n", + " }\n", + " };\n", " }\n", "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", + " fig.buttons = {};\n", + " var buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", + " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", - " // put a spacer in here.\n", + " /* Instead of a spacer, we start a new button group. */\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", + " }\n", + " buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", + " var status_bar = document.createElement('span');\n", + " status_bar.classList = 'mpl-message pull-right';\n", + " toolbar.appendChild(status_bar);\n", + " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", + " var buttongrp = document.createElement('div');\n", + " buttongrp.classList = 'btn-group inline pull-right';\n", + " button = document.createElement('button');\n", + " button.classList = 'btn btn-mini btn-primary';\n", + " button.href = '#';\n", + " button.title = 'Stop Interaction';\n", + " button.innerHTML = '';\n", + " button.addEventListener('click', function (_evt) {\n", + " fig.handle_close(fig, {});\n", " });\n", - "}\n", + " button.addEventListener(\n", + " 'mouseover',\n", + " on_mouseover_closure('Stop Interaction')\n", + " );\n", + " buttongrp.appendChild(button);\n", + " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", + " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", + "};\n", "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", + "mpl.figure.prototype._remove_fig_handler = function (event) {\n", + " var fig = event.data.fig;\n", + " if (event.target !== this) {\n", + " // Ignore bubbled events from children.\n", + " return;\n", + " }\n", + " fig.close_ws(fig, {});\n", + "};\n", + "\n", + "mpl.figure.prototype._root_extra_style = function (el) {\n", + " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", + "};\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", + " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", + " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", + "};\n", "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", + "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", + " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", " }\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", - "}\n", + "};\n", "\n", - "\n", - "mpl.find_output_cell = function(html_output) {\n", + "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", - " if (data['text/html'] == html_output) {\n", + " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", - "}\n", + "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "if (IPython.notebook.kernel !== null) {\n", + " IPython.notebook.kernel.comm_manager.register_target(\n", + " 'matplotlib',\n", + " mpl.mpl_figure_comm\n", + " );\n", "}\n" ], "text/plain": [ @@ -3518,7 +4227,7 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" @@ -3530,55 +4239,57 @@ ], "source": [ "fig = plt.figure()\n", - "out = ct.bode_plot(pt1_w001hzs)" + "out = ct.bode_plot(pt1_w001hzs, Hz=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Bode plot with higher resolution" + "### PT1 with additional integrator, continuous and discrete" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", + "/* global mpl */\n", "window.mpl = {};\n", "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", + "mpl.get_websocket_type = function () {\n", + " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", + " alert(\n", + " 'Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.'\n", + " );\n", + " }\n", + "};\n", "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", + " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", + " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", + " warnings.textContent =\n", + " 'This browser does not support binary websocket messages. ' +\n", + " 'Performance may be slow.';\n", " }\n", " }\n", "\n", @@ -3593,11 +4304,11 @@ "\n", " this.image_mode = 'full';\n", "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", + " this.root = document.createElement('div');\n", + " this.root.setAttribute('style', 'display: inline-block');\n", + " this._root_extra_style(this.root);\n", "\n", - " $(parent_element).append(this.root);\n", + " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", @@ -3607,285 +4318,366 @@ "\n", " this.waiting = false;\n", "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", + " this.ws.onopen = function () {\n", + " fig.send_message('supports_binary', { value: fig.supports_binary });\n", + " fig.send_message('send_image_mode', {});\n", + " if (fig.ratio !== 1) {\n", + " fig.send_message('set_device_pixel_ratio', {\n", + " device_pixel_ratio: fig.ratio,\n", + " });\n", " }\n", + " fig.send_message('refresh', {});\n", + " };\n", "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", + " this.imageObj.onload = function () {\n", + " if (fig.image_mode === 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", "\n", - " this.imageObj.onunload = function() {\n", + " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", - " }\n", + " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", + "};\n", "\n", + "mpl.figure.prototype._init_header = function () {\n", + " var titlebar = document.createElement('div');\n", + " titlebar.classList =\n", + " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", + " var titletext = document.createElement('div');\n", + " titletext.classList = 'ui-dialog-title';\n", + " titletext.setAttribute(\n", + " 'style',\n", + " 'width: 100%; text-align: center; padding: 3px;'\n", + " );\n", + " titlebar.appendChild(titletext);\n", + " this.root.appendChild(titlebar);\n", + " this.header = titletext;\n", + "};\n", "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", - "}\n", + "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", - "mpl.figure.prototype._init_canvas = function() {\n", + "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + " var canvas_div = (this.canvas_div = document.createElement('div'));\n", + " canvas_div.setAttribute(\n", + " 'style',\n", + " 'border: 1px solid #ddd;' +\n", + " 'box-sizing: content-box;' +\n", + " 'clear: both;' +\n", + " 'min-height: 1px;' +\n", + " 'min-width: 1px;' +\n", + " 'outline: 0;' +\n", + " 'overflow: hidden;' +\n", + " 'position: relative;' +\n", + " 'resize: both;'\n", + " );\n", "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", + " function on_keyboard_event_closure(name) {\n", + " return function (event) {\n", + " return fig.key_event(event, name);\n", + " };\n", " }\n", "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", + " canvas_div.addEventListener(\n", + " 'keydown',\n", + " on_keyboard_event_closure('key_press')\n", + " );\n", + " canvas_div.addEventListener(\n", + " 'keyup',\n", + " on_keyboard_event_closure('key_release')\n", + " );\n", + "\n", + " this._canvas_extra_style(canvas_div);\n", + " this.root.appendChild(canvas_div);\n", "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + " var canvas = (this.canvas = document.createElement('canvas'));\n", + " canvas.classList.add('mpl-canvas');\n", + " canvas.setAttribute('style', 'box-sizing: content-box;');\n", "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", + " this.context = canvas.getContext('2d');\n", "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", + " var backingStore =\n", + " this.context.backingStorePixelRatio ||\n", + " this.context.webkitBackingStorePixelRatio ||\n", + " this.context.mozBackingStorePixelRatio ||\n", + " this.context.msBackingStorePixelRatio ||\n", + " this.context.oBackingStorePixelRatio ||\n", + " this.context.backingStorePixelRatio ||\n", + " 1;\n", "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", + " 'canvas'\n", + " ));\n", + " rubberband_canvas.setAttribute(\n", + " 'style',\n", + " 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n", + " );\n", "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", + " if (this.ResizeObserver === undefined) {\n", + " if (window.ResizeObserver !== undefined) {\n", + " this.ResizeObserver = window.ResizeObserver;\n", + " } else {\n", + " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", + " this.ResizeObserver = obs.ResizeObserver;\n", + " }\n", + " }\n", "\n", - " var pass_mouse_events = true;\n", + " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", + " var nentries = entries.length;\n", + " for (var i = 0; i < nentries; i++) {\n", + " var entry = entries[i];\n", + " var width, height;\n", + " if (entry.contentBoxSize) {\n", + " if (entry.contentBoxSize instanceof Array) {\n", + " // Chrome 84 implements new version of spec.\n", + " width = entry.contentBoxSize[0].inlineSize;\n", + " height = entry.contentBoxSize[0].blockSize;\n", + " } else {\n", + " // Firefox implements old version of spec.\n", + " width = entry.contentBoxSize.inlineSize;\n", + " height = entry.contentBoxSize.blockSize;\n", + " }\n", + " } else {\n", + " // Chrome <84 implements even older version of spec.\n", + " width = entry.contentRect.width;\n", + " height = entry.contentRect.height;\n", + " }\n", "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", + " // Keep the size of the canvas and rubber band canvas in sync with\n", + " // the canvas container.\n", + " if (entry.devicePixelContentBoxSize) {\n", + " // Chrome 84 implements new version of spec.\n", + " canvas.setAttribute(\n", + " 'width',\n", + " entry.devicePixelContentBoxSize[0].inlineSize\n", + " );\n", + " canvas.setAttribute(\n", + " 'height',\n", + " entry.devicePixelContentBoxSize[0].blockSize\n", + " );\n", + " } else {\n", + " canvas.setAttribute('width', width * fig.ratio);\n", + " canvas.setAttribute('height', height * fig.ratio);\n", + " }\n", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\n", + "\n", + " rubberband_canvas.setAttribute('width', width);\n", + " rubberband_canvas.setAttribute('height', height);\n", + "\n", + " // And update the size in Python. We ignore the initial 0/0 size\n", + " // that occurs as the element is placed into the DOM, which should\n", + " // otherwise not happen due to the minimum size styling.\n", + " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", + " fig.request_resize(width, height);\n", + " }\n", + " }\n", " });\n", + " this.resizeObserverInstance.observe(canvas_div);\n", "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", + " function on_mouse_event_closure(name) {\n", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", " }\n", "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'dblclick',\n", + " on_mouse_event_closure('dblclick')\n", + " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseleave',\n", + " on_mouse_event_closure('figure_leave')\n", + " );\n", "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", + " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", - " mouse_event_fn(event);\n", + " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", + " canvas_div.appendChild(canvas);\n", + " canvas_div.appendChild(rubberband_canvas);\n", "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", + " this.rubberband_context = rubberband_canvas.getContext('2d');\n", + " this.rubberband_context.strokeStyle = '#000000';\n", "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", + " this._resize_canvas = function (width, height, forward) {\n", + " if (forward) {\n", + " canvas_div.style.width = width + 'px';\n", + " canvas_div.style.height = height + 'px';\n", + " }\n", + " };\n", "\n", " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n", + " event.preventDefault();\n", " return false;\n", " });\n", "\n", - " function set_focus () {\n", + " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", + "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", - " var nav_element = $('
')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", + " var toolbar = document.createElement('div');\n", + " toolbar.classList = 'mpl-toolbar';\n", + " this.root.appendChild(toolbar);\n", "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", + " function on_click_closure(name) {\n", + " return function (_event) {\n", + " return fig.toolbar_button_onclick(name);\n", + " };\n", " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", + "\n", + " function on_mouseover_closure(tooltip) {\n", + " return function (event) {\n", + " if (!event.currentTarget.disabled) {\n", + " return fig.toolbar_button_onmouseover(tooltip);\n", + " }\n", + " };\n", " }\n", "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", + " fig.buttons = {};\n", + " var buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", + " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", - " // put a spacer in here.\n", + " /* Instead of a spacer, we start a new button group. */\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", + " }\n", + " buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", - " }\n", - "\n", - " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", - "\n", - " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", - " });\n", - "}\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", - " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", - " // reach out to IPython and tell the keyboard manager to turn it's self\n", - " // off when our div gets focus\n", - "\n", - " // location in version 3\n", - " if (IPython.notebook.keyboard_manager) {\n", - " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", - " // location in version 2\n", - " IPython.keyboard_manager.register_events(el);\n", - " }\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", - " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", - " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", - " }\n", - "}\n", - "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", - " fig.ondownload(fig, null);\n", - "}\n", - "\n", - "\n", - "mpl.find_output_cell = function(html_output) {\n", - " // Return the cell and output element which can be found *uniquely* in the notebook.\n", - " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", - " // IPython event is triggered only after the cells have been serialised, which for\n", - " // our purposes (turning an active figure into a static one), is too late.\n", - " var cells = IPython.notebook.get_cells();\n", - " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", - " data = data.data;\n", - " }\n", - " if (data['text/html'] == html_output) {\n", - " return [cell, data, j];\n", - " }\n", - " }\n", - " }\n", - " }\n", - "}\n", - "\n", - "// Register the function which deals with the matplotlib target/channel.\n", - "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", - "}\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure()\n", - "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Combination of various systems" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " fig.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", + " var status_bar = document.createElement('span');\n", + " status_bar.classList = 'mpl-message pull-right';\n", + " toolbar.appendChild(status_bar);\n", + " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", + " var buttongrp = document.createElement('div');\n", + " buttongrp.classList = 'btn-group inline pull-right';\n", + " button = document.createElement('button');\n", + " button.classList = 'btn btn-mini btn-primary';\n", + " button.href = '#';\n", + " button.title = 'Stop Interaction';\n", + " button.innerHTML = '';\n", + " button.addEventListener('click', function (_evt) {\n", + " fig.handle_close(fig, {});\n", " });\n", - "}\n", + " button.addEventListener(\n", + " 'mouseover',\n", + " on_mouseover_closure('Stop Interaction')\n", + " );\n", + " buttongrp.appendChild(button);\n", + " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", + " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", + "};\n", "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", + "mpl.figure.prototype._remove_fig_handler = function (event) {\n", + " var fig = event.data.fig;\n", + " if (event.target !== this) {\n", + " // Ignore bubbled events from children.\n", + " return;\n", + " }\n", + " fig.close_ws(fig, {});\n", + "};\n", + "\n", + "mpl.figure.prototype._root_extra_style = function (el) {\n", + " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", + "};\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", + " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", + " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", + "};\n", "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", + "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", + " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", " }\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", - "}\n", - "\n", + "};\n", "\n", - "mpl.find_output_cell = function(html_output) {\n", + "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", - " if (data['text/html'] == html_output) {\n", + " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", - "}\n", + "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "if (IPython.notebook.kernel !== null) {\n", + " IPython.notebook.kernel.comm_manager.register_target(\n", + " 'matplotlib',\n", + " mpl.mpl_figure_comm\n", + " );\n", "}\n" ], "text/plain": [ @@ -6761,7 +7216,7 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" @@ -6772,7 +7227,7 @@ } ], "source": [ - "ct.config.bode_feature_periphery_decade = 3.5\n", + "ct.config.defaults['freqplot.feature_periphery_decades'] = 3.5\n", "fig = plt.figure()\n", "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis], Hz=True)" ] @@ -6793,36 +7248,38 @@ "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", + "/* global mpl */\n", "window.mpl = {};\n", "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", + "mpl.get_websocket_type = function () {\n", + " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", + " alert(\n", + " 'Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.'\n", + " );\n", + " }\n", + "};\n", "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", + " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", + " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", + " warnings.textContent =\n", + " 'This browser does not support binary websocket messages. ' +\n", + " 'Performance may be slow.';\n", " }\n", " }\n", "\n", @@ -6837,11 +7294,11 @@ "\n", " this.image_mode = 'full';\n", "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", + " this.root = document.createElement('div');\n", + " this.root.setAttribute('style', 'display: inline-block');\n", + " this._root_extra_style(this.root);\n", "\n", - " $(parent_element).append(this.root);\n", + " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", @@ -6851,285 +7308,366 @@ "\n", " this.waiting = false;\n", "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", + " this.ws.onopen = function () {\n", + " fig.send_message('supports_binary', { value: fig.supports_binary });\n", + " fig.send_message('send_image_mode', {});\n", + " if (fig.ratio !== 1) {\n", + " fig.send_message('set_device_pixel_ratio', {\n", + " device_pixel_ratio: fig.ratio,\n", + " });\n", " }\n", + " fig.send_message('refresh', {});\n", + " };\n", "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", + " this.imageObj.onload = function () {\n", + " if (fig.image_mode === 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", "\n", - " this.imageObj.onunload = function() {\n", + " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", - " }\n", + " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", + "};\n", "\n", + "mpl.figure.prototype._init_header = function () {\n", + " var titlebar = document.createElement('div');\n", + " titlebar.classList =\n", + " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", + " var titletext = document.createElement('div');\n", + " titletext.classList = 'ui-dialog-title';\n", + " titletext.setAttribute(\n", + " 'style',\n", + " 'width: 100%; text-align: center; padding: 3px;'\n", + " );\n", + " titlebar.appendChild(titletext);\n", + " this.root.appendChild(titlebar);\n", + " this.header = titletext;\n", + "};\n", "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", - "}\n", + "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", - "mpl.figure.prototype._init_canvas = function() {\n", + "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + " var canvas_div = (this.canvas_div = document.createElement('div'));\n", + " canvas_div.setAttribute(\n", + " 'style',\n", + " 'border: 1px solid #ddd;' +\n", + " 'box-sizing: content-box;' +\n", + " 'clear: both;' +\n", + " 'min-height: 1px;' +\n", + " 'min-width: 1px;' +\n", + " 'outline: 0;' +\n", + " 'overflow: hidden;' +\n", + " 'position: relative;' +\n", + " 'resize: both;'\n", + " );\n", "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", + " function on_keyboard_event_closure(name) {\n", + " return function (event) {\n", + " return fig.key_event(event, name);\n", + " };\n", " }\n", "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", + " canvas_div.addEventListener(\n", + " 'keydown',\n", + " on_keyboard_event_closure('key_press')\n", + " );\n", + " canvas_div.addEventListener(\n", + " 'keyup',\n", + " on_keyboard_event_closure('key_release')\n", + " );\n", + "\n", + " this._canvas_extra_style(canvas_div);\n", + " this.root.appendChild(canvas_div);\n", + "\n", + " var canvas = (this.canvas = document.createElement('canvas'));\n", + " canvas.classList.add('mpl-canvas');\n", + " canvas.setAttribute('style', 'box-sizing: content-box;');\n", "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + " this.context = canvas.getContext('2d');\n", "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", + " var backingStore =\n", + " this.context.backingStorePixelRatio ||\n", + " this.context.webkitBackingStorePixelRatio ||\n", + " this.context.mozBackingStorePixelRatio ||\n", + " this.context.msBackingStorePixelRatio ||\n", + " this.context.oBackingStorePixelRatio ||\n", + " this.context.backingStorePixelRatio ||\n", + " 1;\n", "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", + " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", + " 'canvas'\n", + " ));\n", + " rubberband_canvas.setAttribute(\n", + " 'style',\n", + " 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n", + " );\n", "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", + " if (this.ResizeObserver === undefined) {\n", + " if (window.ResizeObserver !== undefined) {\n", + " this.ResizeObserver = window.ResizeObserver;\n", + " } else {\n", + " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", + " this.ResizeObserver = obs.ResizeObserver;\n", + " }\n", + " }\n", "\n", - " var pass_mouse_events = true;\n", + " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", + " var nentries = entries.length;\n", + " for (var i = 0; i < nentries; i++) {\n", + " var entry = entries[i];\n", + " var width, height;\n", + " if (entry.contentBoxSize) {\n", + " if (entry.contentBoxSize instanceof Array) {\n", + " // Chrome 84 implements new version of spec.\n", + " width = entry.contentBoxSize[0].inlineSize;\n", + " height = entry.contentBoxSize[0].blockSize;\n", + " } else {\n", + " // Firefox implements old version of spec.\n", + " width = entry.contentBoxSize.inlineSize;\n", + " height = entry.contentBoxSize.blockSize;\n", + " }\n", + " } else {\n", + " // Chrome <84 implements even older version of spec.\n", + " width = entry.contentRect.width;\n", + " height = entry.contentRect.height;\n", + " }\n", "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", + " // Keep the size of the canvas and rubber band canvas in sync with\n", + " // the canvas container.\n", + " if (entry.devicePixelContentBoxSize) {\n", + " // Chrome 84 implements new version of spec.\n", + " canvas.setAttribute(\n", + " 'width',\n", + " entry.devicePixelContentBoxSize[0].inlineSize\n", + " );\n", + " canvas.setAttribute(\n", + " 'height',\n", + " entry.devicePixelContentBoxSize[0].blockSize\n", + " );\n", + " } else {\n", + " canvas.setAttribute('width', width * fig.ratio);\n", + " canvas.setAttribute('height', height * fig.ratio);\n", + " }\n", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\n", + "\n", + " rubberband_canvas.setAttribute('width', width);\n", + " rubberband_canvas.setAttribute('height', height);\n", + "\n", + " // And update the size in Python. We ignore the initial 0/0 size\n", + " // that occurs as the element is placed into the DOM, which should\n", + " // otherwise not happen due to the minimum size styling.\n", + " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", + " fig.request_resize(width, height);\n", + " }\n", + " }\n", " });\n", + " this.resizeObserverInstance.observe(canvas_div);\n", "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", + " function on_mouse_event_closure(name) {\n", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", " }\n", "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'dblclick',\n", + " on_mouse_event_closure('dblclick')\n", + " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseleave',\n", + " on_mouse_event_closure('figure_leave')\n", + " );\n", "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", + " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", - " mouse_event_fn(event);\n", + " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", + " canvas_div.appendChild(canvas);\n", + " canvas_div.appendChild(rubberband_canvas);\n", "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", + " this.rubberband_context = rubberband_canvas.getContext('2d');\n", + " this.rubberband_context.strokeStyle = '#000000';\n", "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", + " this._resize_canvas = function (width, height, forward) {\n", + " if (forward) {\n", + " canvas_div.style.width = width + 'px';\n", + " canvas_div.style.height = height + 'px';\n", + " }\n", + " };\n", "\n", " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n", + " event.preventDefault();\n", " return false;\n", " });\n", "\n", - " function set_focus () {\n", + " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", + "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", - " var nav_element = $('
')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", + " var toolbar = document.createElement('div');\n", + " toolbar.classList = 'mpl-toolbar';\n", + " this.root.appendChild(toolbar);\n", "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", + " function on_click_closure(name) {\n", + " return function (_event) {\n", + " return fig.toolbar_button_onclick(name);\n", + " };\n", " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", + "\n", + " function on_mouseover_closure(tooltip) {\n", + " return function (event) {\n", + " if (!event.currentTarget.disabled) {\n", + " return fig.toolbar_button_onmouseover(tooltip);\n", + " }\n", + " };\n", " }\n", "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", + " fig.buttons = {};\n", + " var buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", + " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", - " // put a spacer in here.\n", + " /* Instead of a spacer, we start a new button group. */\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", + " }\n", + " buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", + " var status_bar = document.createElement('span');\n", + " status_bar.classList = 'mpl-message pull-right';\n", + " toolbar.appendChild(status_bar);\n", + " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", + " var buttongrp = document.createElement('div');\n", + " buttongrp.classList = 'btn-group inline pull-right';\n", + " button = document.createElement('button');\n", + " button.classList = 'btn btn-mini btn-primary';\n", + " button.href = '#';\n", + " button.title = 'Stop Interaction';\n", + " button.innerHTML = '';\n", + " button.addEventListener('click', function (_evt) {\n", + " fig.handle_close(fig, {});\n", " });\n", - "}\n", + " button.addEventListener(\n", + " 'mouseover',\n", + " on_mouseover_closure('Stop Interaction')\n", + " );\n", + " buttongrp.appendChild(button);\n", + " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", + " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", + "};\n", + "\n", + "mpl.figure.prototype._remove_fig_handler = function (event) {\n", + " var fig = event.data.fig;\n", + " if (event.target !== this) {\n", + " // Ignore bubbled events from children.\n", + " return;\n", + " }\n", + " fig.close_ws(fig, {});\n", + "};\n", + "\n", + "mpl.figure.prototype._root_extra_style = function (el) {\n", + " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", + "};\n", "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", + "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", + " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", + " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", + "};\n", "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", + "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", + " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", " }\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", - "}\n", - "\n", + "};\n", "\n", - "mpl.find_output_cell = function(html_output) {\n", + "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", - " if (data['text/html'] == html_output) {\n", + " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", - "}\n", + "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "if (IPython.notebook.kernel !== null) {\n", + " IPython.notebook.kernel.comm_manager.register_target(\n", + " 'matplotlib',\n", + " mpl.mpl_figure_comm\n", + " );\n", "}\n" ], "text/plain": [ @@ -8382,7 +9207,7 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" @@ -8393,11 +9218,12 @@ } ], "source": [ - "ct.config.bode_feature_periphery_decade = 1.\n", + "ct.config.defaults['bode_feature_periphery_decades'] = 1\n", "ct.config.bode_number_of_samples = 1000\n", "fig = plt.figure()\n", - "out = ct.bode_plot([pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh], Hz=True,\n", - " omega_limits=(1.,1000.))" + "out = ct.bode_plot(\n", + " [pt1_w001hzi, pt1_w001hzis, pt2_w001hz, pt2_w001hzs, pt5hz, pt5s, pt5sh], \n", + " Hz=True, omega_limits=(1.,1000.))" ] }, { @@ -8409,36 +9235,38 @@ "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", + "/* global mpl */\n", "window.mpl = {};\n", "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", + "mpl.get_websocket_type = function () {\n", + " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", + " alert(\n", + " 'Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.'\n", + " );\n", + " }\n", + "};\n", "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", + " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", + " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", + " warnings.textContent =\n", + " 'This browser does not support binary websocket messages. ' +\n", + " 'Performance may be slow.';\n", " }\n", " }\n", "\n", @@ -8453,11 +9281,11 @@ "\n", " this.image_mode = 'full';\n", "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", + " this.root = document.createElement('div');\n", + " this.root.setAttribute('style', 'display: inline-block');\n", + " this._root_extra_style(this.root);\n", "\n", - " $(parent_element).append(this.root);\n", + " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", @@ -8467,285 +9295,366 @@ "\n", " this.waiting = false;\n", "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", + " this.ws.onopen = function () {\n", + " fig.send_message('supports_binary', { value: fig.supports_binary });\n", + " fig.send_message('send_image_mode', {});\n", + " if (fig.ratio !== 1) {\n", + " fig.send_message('set_device_pixel_ratio', {\n", + " device_pixel_ratio: fig.ratio,\n", + " });\n", " }\n", + " fig.send_message('refresh', {});\n", + " };\n", "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", + " this.imageObj.onload = function () {\n", + " if (fig.image_mode === 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", "\n", - " this.imageObj.onunload = function() {\n", + " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", - " }\n", + " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", + "};\n", "\n", + "mpl.figure.prototype._init_header = function () {\n", + " var titlebar = document.createElement('div');\n", + " titlebar.classList =\n", + " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", + " var titletext = document.createElement('div');\n", + " titletext.classList = 'ui-dialog-title';\n", + " titletext.setAttribute(\n", + " 'style',\n", + " 'width: 100%; text-align: center; padding: 3px;'\n", + " );\n", + " titlebar.appendChild(titletext);\n", + " this.root.appendChild(titlebar);\n", + " this.header = titletext;\n", + "};\n", "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", - "}\n", + "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", - "mpl.figure.prototype._init_canvas = function() {\n", + "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + " var canvas_div = (this.canvas_div = document.createElement('div'));\n", + " canvas_div.setAttribute(\n", + " 'style',\n", + " 'border: 1px solid #ddd;' +\n", + " 'box-sizing: content-box;' +\n", + " 'clear: both;' +\n", + " 'min-height: 1px;' +\n", + " 'min-width: 1px;' +\n", + " 'outline: 0;' +\n", + " 'overflow: hidden;' +\n", + " 'position: relative;' +\n", + " 'resize: both;'\n", + " );\n", "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", + " function on_keyboard_event_closure(name) {\n", + " return function (event) {\n", + " return fig.key_event(event, name);\n", + " };\n", " }\n", "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", + " canvas_div.addEventListener(\n", + " 'keydown',\n", + " on_keyboard_event_closure('key_press')\n", + " );\n", + " canvas_div.addEventListener(\n", + " 'keyup',\n", + " on_keyboard_event_closure('key_release')\n", + " );\n", + "\n", + " this._canvas_extra_style(canvas_div);\n", + " this.root.appendChild(canvas_div);\n", + "\n", + " var canvas = (this.canvas = document.createElement('canvas'));\n", + " canvas.classList.add('mpl-canvas');\n", + " canvas.setAttribute('style', 'box-sizing: content-box;');\n", "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + " this.context = canvas.getContext('2d');\n", "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", + " var backingStore =\n", + " this.context.backingStorePixelRatio ||\n", + " this.context.webkitBackingStorePixelRatio ||\n", + " this.context.mozBackingStorePixelRatio ||\n", + " this.context.msBackingStorePixelRatio ||\n", + " this.context.oBackingStorePixelRatio ||\n", + " this.context.backingStorePixelRatio ||\n", + " 1;\n", "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", + " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", + " 'canvas'\n", + " ));\n", + " rubberband_canvas.setAttribute(\n", + " 'style',\n", + " 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n", + " );\n", "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", + " if (this.ResizeObserver === undefined) {\n", + " if (window.ResizeObserver !== undefined) {\n", + " this.ResizeObserver = window.ResizeObserver;\n", + " } else {\n", + " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", + " this.ResizeObserver = obs.ResizeObserver;\n", + " }\n", + " }\n", "\n", - " var pass_mouse_events = true;\n", + " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", + " var nentries = entries.length;\n", + " for (var i = 0; i < nentries; i++) {\n", + " var entry = entries[i];\n", + " var width, height;\n", + " if (entry.contentBoxSize) {\n", + " if (entry.contentBoxSize instanceof Array) {\n", + " // Chrome 84 implements new version of spec.\n", + " width = entry.contentBoxSize[0].inlineSize;\n", + " height = entry.contentBoxSize[0].blockSize;\n", + " } else {\n", + " // Firefox implements old version of spec.\n", + " width = entry.contentBoxSize.inlineSize;\n", + " height = entry.contentBoxSize.blockSize;\n", + " }\n", + " } else {\n", + " // Chrome <84 implements even older version of spec.\n", + " width = entry.contentRect.width;\n", + " height = entry.contentRect.height;\n", + " }\n", "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", + " // Keep the size of the canvas and rubber band canvas in sync with\n", + " // the canvas container.\n", + " if (entry.devicePixelContentBoxSize) {\n", + " // Chrome 84 implements new version of spec.\n", + " canvas.setAttribute(\n", + " 'width',\n", + " entry.devicePixelContentBoxSize[0].inlineSize\n", + " );\n", + " canvas.setAttribute(\n", + " 'height',\n", + " entry.devicePixelContentBoxSize[0].blockSize\n", + " );\n", + " } else {\n", + " canvas.setAttribute('width', width * fig.ratio);\n", + " canvas.setAttribute('height', height * fig.ratio);\n", + " }\n", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\n", + "\n", + " rubberband_canvas.setAttribute('width', width);\n", + " rubberband_canvas.setAttribute('height', height);\n", + "\n", + " // And update the size in Python. We ignore the initial 0/0 size\n", + " // that occurs as the element is placed into the DOM, which should\n", + " // otherwise not happen due to the minimum size styling.\n", + " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", + " fig.request_resize(width, height);\n", + " }\n", + " }\n", " });\n", + " this.resizeObserverInstance.observe(canvas_div);\n", "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", + " function on_mouse_event_closure(name) {\n", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", " }\n", "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'dblclick',\n", + " on_mouse_event_closure('dblclick')\n", + " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseleave',\n", + " on_mouse_event_closure('figure_leave')\n", + " );\n", "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", + " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", - " mouse_event_fn(event);\n", + " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", + " canvas_div.appendChild(canvas);\n", + " canvas_div.appendChild(rubberband_canvas);\n", "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + " this.rubberband_context = rubberband_canvas.getContext('2d');\n", + " this.rubberband_context.strokeStyle = '#000000';\n", "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", + " this._resize_canvas = function (width, height, forward) {\n", + " if (forward) {\n", + " canvas_div.style.width = width + 'px';\n", + " canvas_div.style.height = height + 'px';\n", + " }\n", + " };\n", "\n", " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n", + " event.preventDefault();\n", " return false;\n", " });\n", "\n", - " function set_focus () {\n", + " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", + "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", - " var nav_element = $('
')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", + " var toolbar = document.createElement('div');\n", + " toolbar.classList = 'mpl-toolbar';\n", + " this.root.appendChild(toolbar);\n", "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", + " function on_click_closure(name) {\n", + " return function (_event) {\n", + " return fig.toolbar_button_onclick(name);\n", + " };\n", " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", + "\n", + " function on_mouseover_closure(tooltip) {\n", + " return function (event) {\n", + " if (!event.currentTarget.disabled) {\n", + " return fig.toolbar_button_onmouseover(tooltip);\n", + " }\n", + " };\n", " }\n", "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", + " fig.buttons = {};\n", + " var buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", + " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", - " // put a spacer in here.\n", + " /* Instead of a spacer, we start a new button group. */\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", + " }\n", + " buttonGroup = document.createElement('div');\n", + " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", + " if (buttonGroup.hasChildNodes()) {\n", + " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", + " var status_bar = document.createElement('span');\n", + " status_bar.classList = 'mpl-message pull-right';\n", + " toolbar.appendChild(status_bar);\n", + " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", + " var buttongrp = document.createElement('div');\n", + " buttongrp.classList = 'btn-group inline pull-right';\n", + " button = document.createElement('button');\n", + " button.classList = 'btn btn-mini btn-primary';\n", + " button.href = '#';\n", + " button.title = 'Stop Interaction';\n", + " button.innerHTML = '';\n", + " button.addEventListener('click', function (_evt) {\n", + " fig.handle_close(fig, {});\n", " });\n", - "}\n", + " button.addEventListener(\n", + " 'mouseover',\n", + " on_mouseover_closure('Stop Interaction')\n", + " );\n", + " buttongrp.appendChild(button);\n", + " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", + " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", + "};\n", + "\n", + "mpl.figure.prototype._remove_fig_handler = function (event) {\n", + " var fig = event.data.fig;\n", + " if (event.target !== this) {\n", + " // Ignore bubbled events from children.\n", + " return;\n", + " }\n", + " fig.close_ws(fig, {});\n", + "};\n", "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", + "mpl.figure.prototype._root_extra_style = function (el) {\n", + " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", + "};\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", + " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", + " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", + "};\n", "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", + "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", + " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", " }\n", - "}\n", + "};\n", "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", - "}\n", - "\n", + "};\n", "\n", - "mpl.find_output_cell = function(html_output) {\n", + "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", - " if (data['text/html'] == html_output) {\n", + " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", - "}\n", + "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "if (IPython.notebook.kernel !== null) {\n", + " IPython.notebook.kernel.comm_manager.register_target(\n", + " 'matplotlib',\n", + " mpl.mpl_figure_comm\n", + " );\n", "}\n" ], "text/plain": [ @@ -9999,7 +11196,7 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" @@ -10011,7 +11208,7 @@ ], "source": [ "fig = plt.figure()\n", - "ct.nyquist_plot([pt1_w001hzis, pt2_w001hz])" + "ct.nyquist_plot([pt1_w001hzis, pt2_w001hz]);" ] }, { @@ -10024,7 +11221,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -10038,7 +11235,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.10.6" } }, "nbformat": 4, From f865c8cb2f64be2b063ff35cef7a7e5bc98eca2d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 21 Jul 2023 19:41:30 -0700 Subject: [PATCH 0371/1025] updated docstrings, userdocs + fixes along the way --- control/descfcn.py | 98 ++++++++++---- control/frdata.py | 29 ++++- control/freqplot.py | 188 +++++++++++++++++---------- control/lti.py | 40 ++++-- control/matlab/wrappers.py | 6 +- control/tests/descfcn_test.py | 5 + control/tests/freqplot_test.py | 21 ++- control/tests/kwargs_test.py | 14 +- control/tests/nyquist_test.py | 4 +- control/timeplot.py | 4 +- doc/Makefile | 8 +- doc/classes.rst | 2 + doc/descfcn.rst | 15 ++- doc/freqplot-gangof4.png | Bin 0 -> 41695 bytes doc/freqplot-mimo_bode-default.png | Bin 0 -> 53147 bytes doc/freqplot-mimo_bode-magonly.png | Bin 0 -> 48186 bytes doc/freqplot-mimo_svplot-default.png | Bin 0 -> 32370 bytes doc/freqplot-siso_bode-default.png | Bin 0 -> 46705 bytes doc/plotting.rst | 169 +++++++++++++++++++++--- examples/mrac_siso_lyapunov.py | 5 +- examples/mrac_siso_mit.py | 6 +- examples/pvtol-nested-ss.py | 47 ++----- 22 files changed, 475 insertions(+), 186 deletions(-) create mode 100644 doc/freqplot-gangof4.png create mode 100644 doc/freqplot-mimo_bode-default.png create mode 100644 doc/freqplot-mimo_bode-magonly.png create mode 100644 doc/freqplot-mimo_svplot-default.png create mode 100644 doc/freqplot-siso_bode-default.png diff --git a/control/descfcn.py b/control/descfcn.py index 505d716d5..6586e6f20 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -22,9 +22,9 @@ from . import config __all__ = ['describing_function', 'describing_function_plot', - 'describing_function_response', 'DescribingFunctionNonlinearity', - 'friction_backlash_nonlinearity', 'relay_hysteresis_nonlinearity', - 'saturation_nonlinearity'] + 'describing_function_response', 'DescribingFunctionResponse', + 'DescribingFunctionNonlinearity', 'friction_backlash_nonlinearity', + 'relay_hysteresis_nonlinearity', 'saturation_nonlinearity'] # Class for nonlinearities with a built-in describing function class DescribingFunctionNonlinearity(): @@ -213,13 +213,46 @@ def describing_function( # Simple class to store the describing function response class DescribingFunctionResponse: + """Results of describing function analysis. + + Describing functions allow analysis of a linear I/O systems with a + static nonlinear feedback function. The DescribingFunctionResponse + class is used by the :func:`~control.describing_function_response` + function to return the results of a describing function analysis. The + response object can be used to obtain information about the describing + function analysis or generate a Nyquist plot showing the frequency + response of the linear systems and the describing function for the + nonlinear element. + + Attributes + ---------- + response : :class:`~control.FrequencyResponseData` + Frequency response of the linear system component of the system. + intersections : 1D array of 2-tuples or None + A list of all amplitudes and frequencies in which + :math:`H(j\\omega) N(a) = -1`, where :math:`N(a)` is the describing + function associated with `F`, or `None` if there are no such + points. Each pair represents a potential limit cycle for the + closed loop system with amplitude given by the first value of the + tuple and frequency given by the second value. + N_vals : complex array + Complex value of the describing function. + positions : list of complex + Location of the intersections in the complex plane. + + """ def __init__(self, response, N_vals, positions, intersections): + """Create a describing function response data object.""" self.response = response self.N_vals = N_vals self.positions = positions self.intersections = intersections def plot(self, **kwargs): + """Plot the results of a describing function analysis. + + See :func:`~control.describing_function_plot` for details. + """ return describing_function_plot(self, **kwargs) # Implement iter, getitem, len to allow recovering the intersections @@ -262,21 +295,27 @@ def describing_function_response( Returns ------- - intersections : 1D array of 2-tuples or None - A list of all amplitudes and frequencies in which :math:`H(j\\omega) - N(a) = -1`, where :math:`N(a)` is the describing function associated - with `F`, or `None` if there are no such points. Each pair represents - a potential limit cycle for the closed loop system with amplitude - given by the first value of the tuple and frequency given by the - second value. + response : :class:`~control.DescribingFunctionResponse` object + Response object that contains the result of the describing function + analysis. The following information can be retrieved from this + object: + response.intersections : 1D array of 2-tuples or None + A list of all amplitudes and frequencies in which + :math:`H(j\\omega) N(a) = -1`, where :math:`N(a)` is the describing + function associated with `F`, or `None` if there are no such + points. Each pair represents a potential limit cycle for the + closed loop system with amplitude given by the first value of the + tuple and frequency given by the second value. Examples -------- >>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> ct.describing_function_response(H_simple, F_saturation, amp) # doctest: +SKIP + >>> response = ct.describing_function_response(H_simple, F_saturation, amp) + >>> response.intersections # doctest: +SKIP [(3.343844998258643, 1.4142293090899216)] + >>> lines = response.plot() """ # Decide whether to turn on warnings or not @@ -340,14 +379,29 @@ def _cost(x): def describing_function_plot( *sysdata, label="%5.2g @ %-5.2g", **kwargs): - """Plot a Nyquist plot with a describing function for a nonlinear system. + """describing_function_plot(data, *args, **kwargs) + + Plot a Nyquist plot with a describing function for a nonlinear system. This function generates a Nyquist plot for a closed loop system consisting of a linear system with a static nonlinear function in the feedback path. + The function may be called in one of two forms: + + describing_function_plot(response[, options]) + + describing_function_plot(H, F, A[, omega[, options]]) + + In the first form, the response should be generated using the + :func:`~control.describing_function_response` function. In the second + form, that function is called internally, with the listed arguments. + Parameters ---------- + data : :class:`~control.DescribingFunctionData` + A describing function response data object created by + :func:`~control.describing_function_response`. H : LTI system Linear time-invariant (LTI) system (state space, transfer function, or FRD) @@ -357,7 +411,9 @@ def describing_function_plot( A : list List of amplitudes to be used for the describing function plot. omega : list, optional - List of frequencies to be used for the linear system Nyquist curve. + List of frequencies to be used for the linear system Nyquist + curve. If not specified (or None), frequencies are computed + automatically based on the properties of the linear system. refine : bool, optional If True (default), refine the location of the intersection of the Nyquist curve for the linear system and the describing function to @@ -368,21 +424,19 @@ def describing_function_plot( Returns ------- - intersections : 1D array of 2-tuples or None - A list of all amplitudes and frequencies in which :math:`H(j\\omega) - N(a) = -1`, where :math:`N(a)` is the describing function associated - with `F`, or `None` if there are no such points. Each pair represents - a potential limit cycle for the closed loop system with amplitude - given by the first value of the tuple and frequency given by the - second value. + 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. Examples -------- >>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> ct.describing_function_plot(H_simple, F_saturation, amp) # doctest: +SKIP - [(3.343844998258643, 1.4142293090899216)] + >>> lines = ct.describing_function_plot(H_simple, F_saturation, amp) """ # Process keywords diff --git a/control/frdata.py b/control/frdata.py index 91e6aa683..c677dd7f7 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -66,7 +66,9 @@ class FrequencyResponseData(LTI): A class for models defined by frequency response data (FRD). The FrequencyResponseData (FRD) class is used to represent systems in - frequency response data form. + frequency response data form. It can be created manually using the + class constructor, using the :func:~~control.frd` factory function + (preferred), or via the :func:`~control.frequency_response` function. Parameters ---------- @@ -654,12 +656,27 @@ def feedback(self, other=1, sign=-1): return FRD(fresp, other.omega, smooth=(self.ifunc is not None)) # Plotting interface - def plot(self, *args, **kwargs): - from .freqplot import bode_plot + def plot(self, plot_type=None, *args, **kwargs): + """Plot the frequency response using a Bode plot. - # For now, only support Bode plots - # TODO: add 'kind' keyword and Nyquist plots (?) - return bode_plot(self, *args, **kwargs) + Plot the frequency response using either a standard Bode plot + (default) or using a singular values plot (by setting `plot_type` + to 'svplot'). See :func:`~control.bode_plot` and + :func:`~control.singular_values_plot` for more detailed + descriptions. + + """ + from .freqplot import bode_plot, singular_values_plot + + if plot_type is None: + plot_type = self.plot_type + + if plot_type == 'bode': + return bode_plot(self, *args, **kwargs) + elif plot_type == 'svplot': + return singular_values_plot(self, *args, **kwargs) + else: + raise ValueError(f"unknown plot type '{plot_type}'") # Convert to pandas def to_pandas(self): diff --git a/control/freqplot.py b/control/freqplot.py index 2025ab71d..89294a40a 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -81,10 +81,10 @@ from .timeplot import _make_legend_labels from . import config -__all__ = ['bode_plot', 'nyquist_response', 'nyquist_plot', - 'singular_values_response', 'singular_values_plot', - 'gangof4_plot', 'gangof4_response', 'bode', 'nyquist', - 'gangof4'] +__all__ = ['bode_plot', 'NyquistResponseData', 'nyquist_response', + 'nyquist_plot', 'singular_values_response', + 'singular_values_plot', 'gangof4_plot', 'gangof4_response', + 'bode', 'nyquist', 'gangof4'] # Default font dictionary _freqplot_rcParams = mpl.rcParams.copy() @@ -132,9 +132,9 @@ def plot(self, *args, plot_type=None, **kwargs): plot_type = response.plot_type if plot_type == 'bode': - bode_plot(self, *args, **kwargs) + return bode_plot(self, *args, **kwargs) elif plot_type == 'svplot': - singular_values_plot(self, *args, **kwargs) + return singular_values_plot(self, *args, **kwargs) else: raise ValueError(f"unknown plot type '{plot_type}'") @@ -155,15 +155,20 @@ def bode_plot( sharex=None, sharey=None, title=None, relabel=True, **kwargs): """Bode plot for a system. - Bode plot of a frequency response over a (optional) frequency range. + Plot the magnitude and phase of the frequency response over a + (optional) frequency range. Parameters ---------- - data : list of `FrequencyResponseData` - List of :class:`FrequencyResponseData` objects. For backward - compatibility, a list of LTI systems can also be given. - omega : array_like - List of frequencies in rad/sec over to plot over. + data : list of `FrequencyResponseData` or `LTI` + List of LTI systems or :class:`FrequencyResponseData` objects. A + single system or frequency response can also be passed. + omega : array_like, optoinal + List of frequencies in rad/sec over to plot over. If not specified, + this will be determined from the proporties of the systems. + *fmt : :func:`matplotlib.pyplot.plot` format string, optional + Passed to `matplotlib` as the format string for all lines in the plot. + The `omega` parameter must be present (use omega=None if needed). dB : bool If True, plot result in dB. Default is False. Hz : bool @@ -179,24 +184,15 @@ def bode_plot( the graph. Setting display_margins turns off the axes grid. margins_method : str, optional Method to use in computing margins (see :func:`stability_margins`). - *fmt : :func:`matplotlib.pyplot.plot` format string, optional - Passed to `matplotlib` as the format string for all lines in the plot. - The `omega` parameter must be present (use omega=None if needed). **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - out : array of Line2D + 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. - 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). Other Parameters ---------------- @@ -235,11 +231,11 @@ def bode_plot( ----- 1. Starting with python-control version 0.10, `bode_plot`returns an array of lines instead of magnitude, phase, and frequency. To - recover the # old behavior, call `bode_plot` with `plot=True`, which - will force the legacy return values to be used (with a warning). To - obtain just the frequency response of a system (or list of systems) - without plotting, use the :func:`~control.frequency_response` - command. + recover the old behavior, call `bode_plot` with `plot=True`, which + will force the legacy values (mag, phase, omega) to be returned + (with a warning). To obtain just the frequency response of a system + (or list of systems) without plotting, use the + :func:`~control.frequency_response` command. 2. If a discrete time model is given, the frequency response is plotted along the upper branch of the unit circle, using the mapping ``z = @@ -1128,6 +1124,36 @@ def gen_zero_centered_series(val_min, val_max, period): class NyquistResponseData: + """Nyquist response data object. + + Nyquist contour analysis allows the stability and robustness of a + closed loop linear system to be evaluated using the open loop response + of the loop transfer function. The NyquistResponseData class is used + by the :func:`~control.nyquist_response` function to return the + response of a linear system along the Nyquist 'D' contour. The + response object can be used to obtain information about the Nyquist + response or to generate a Nyquist plot. + + Attributes + ---------- + count : integer + Number of encirclements of the -1 point by the Nyquist curve for + a system evaluated along the Nyquist contour. + contour : complex array + The Nyquist 'D' contour, with appropriate indendtations to avoid + open loop poles and zeros near/on the imaginary axis. + response : complex array + The value of the linear system under study along the Nyquist contour. + dt : None or float + The system timebase. + sysname : str + The name of the system being analyzed. + return_contour: bool + If true, when the object is accessed as an iterable return two + elements": `count` (number of encirlements) and `contour`. If + false (default), then return only `count`. + + """ def __init__( self, count, contour, response, dt, sysname=None, return_contour=False): @@ -1164,8 +1190,8 @@ def plot(self, *args, **kwargs): def nyquist_response( sysdata, omega=None, plot=None, omega_limits=None, omega_num=None, - label_freq=0, color=None, return_contour=False, check_kwargs=True, - warn_encirclements=True, warn_nyquist=True, **kwargs): + return_contour=False, warn_encirclements=True, warn_nyquist=True, + check_kwargs=True, **kwargs): """Nyquist response for a system. Computes a Nyquist contour for the system over a (optional) frequency @@ -1194,19 +1220,18 @@ def nyquist_response( Number of frequency samples to plot. Defaults to config.defaults['freqplot.number_of_samples']. - return_contour : bool, optional - If 'True', return the contour used to evaluate the Nyquist plot. - Returns ------- - count : int (or list of int if len(syslist) > 1) + responses : list of :class:`~control.NyquistResponseData` + For each system, a Nyquist response data object is returned. If + sysdata is a single system, a single elemeent is returned (not a list). + For each response, the following information is available: + response.count : int Number of encirclements of the point -1 by the Nyquist curve. If multiple systems are given, an array of counts is returned. - - contour : ndarray (or list of ndarray if len(syslist) > 1)), optional - The contour used to create the primary Nyquist curve segment, returned - if `return_contour` is Tue. To obtain the Nyquist curve values, - evaluate system(s) along contour. + response.contour : ndarray + The contour used to create the primary Nyquist curve segment. To + obtain the Nyquist curve values, evaluate system(s) along contour. Other Parameters ---------------- @@ -1259,15 +1284,19 @@ def nyquist_response( primary curve use a dotted line style and the scaled portion of the mirror image use a dashdot line style. + 4. If the legacy keyword `return_contour` is specified as True, the + response object can be iterated over to return `count, contour`. + This behavior is deprecated and will be removed in a future release. + Examples -------- >>> G = ct.zpk([], [-1, -2, -3], gain=100) >>> response = ct.nyquist_response(G) >>> count = response.count - >>> response.plot() + >>> lines = response.plot() """ - # Get values for params (and pop from list to allow keyword use in plot) + # Get values for params omega_num_given = omega_num is not None omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) indent_radius = config._get_param( @@ -1546,16 +1575,16 @@ def nyquist_plot( Returns ------- - out : array of Line2D + 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: - 0: unscaled portion of the primary curve - 1: scaled portion of the primary curve - 2: unscaled portion of the mirror curve - 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 Other Parameters ---------------- @@ -1673,6 +1702,21 @@ def nyquist_plot( >>> out = ct.nyquist_plot(G) """ + # + # Keyword processing + # + # Keywords for the nyquist_plot function can either be keywords that + # are unique to this function, keywords that are intended for use by + # nyquist_response (if data is a list of systems), or keywords that + # are intended for the plotting commands. + # + # We first pop off all keywords that are used directly by this + # function. If data is a list of systems, when then pop off keywords + # that correspond to nyquist_response() keywords. The remaining + # keywords are passed to matplotlib (and will generate an error if + # unrecognized). + # + # Get values for params (and pop from list to allow keyword use in plot) arrows = config._get_param( 'nyquist', 'arrows', kwargs, _nyquist_defaults, pop=True) @@ -1726,18 +1770,21 @@ def _parse_linestyle(style_name, allow_false=False): # If argument was a singleton, turn it into a tuple if not isinstance(data, (list, tuple)): - data = (data,) + data = [data] # If we are passed a list of systems, compute response first if all([isinstance( sys, (StateSpace, TransferFunction, FrequencyResponseData)) for sys in data]): + # Get the response, popping off keywords used there nyquist_responses = nyquist_response( - data, omega=omega, check_kwargs=False, **kwargs) - if not isinstance(nyquist_responses, list): - nyquist_responses = [nyquist_responses] - else: - nyquist_responses = data + data, omega=omega, return_contour=return_contour, + omega_limits=kwargs.pop('omega_limits', None), + omega_num=kwargs.pop('omega_num', None), + warn_encirclements=kwargs.pop('warn_encirclements', True), + warn_nyquist=kwargs.pop('warn_nyquist', True), + check_kwargs=False, **kwargs) + else: nyquist_responses = data # Legacy return value processing if plot is not None or return_contour is not None: @@ -1750,6 +1797,10 @@ def _parse_linestyle(style_name, allow_false=False): contours = [response.contour for response in nyquist_responses] if plot is False: + # Make sure we used all of the keywrods + if kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) + if len(data) == 1: counts, contours = counts[0], contours[0] @@ -2080,7 +2131,8 @@ def gangof4_response(P, C, omega=None, Hz=False): -------- >>> P = ct.tf([1], [1, 1]) >>> C = ct.tf([2], [1]) - >>> ct.gangof4_plot(P, C) + >>> response = ct.gangof4_response(P, C) + >>> lines = response.plot() """ if not P.issiso() or not C.issiso(): @@ -2140,17 +2192,15 @@ def singular_values_response( List of linear systems (single system is OK). omega : array_like List of frequencies in rad/sec to be used for frequency response. - plot : bool - If True (default), generate the singular values plot. omega_limits : array_like of two values - Limits of the frequency vector to generate. If Hz=True the - limits are in Hz otherwise in rad/s. + Limits of the frequency vector to generate, in rad/s. omega_num : int Number of samples to plot. Default value (1000) set by config.defaults['freqplot.number_of_samples']. - Hz : bool - If True, assume frequencies are given in Hz. Default value - (False) set by config.defaults['freqplot.Hz'] + Hz : bool, optional + If True, when computing frequency limits automatically set + limits to full decades in Hz instead of rad/s. Omega is always + returned in rad/sec. Returns ------- @@ -2206,9 +2256,9 @@ def singular_values_plot( title=None, legend_loc='center right', **kwargs): """Plot the singular values for a system. - Plot the singular values for a system or list of systems. If - multiple systems are plotted, each system in the list is plotted - in a different color. + Plot the singular values as a function of frequency for a system or + list of systems. If multiple systems are plotted, each system in the + list is plotted in a different color. Parameters ---------- @@ -2217,6 +2267,9 @@ def singular_values_plot( compatibility, a list of LTI systems can also be given. omega : array_like List of frequencies in rad/sec over to plot over. + *fmt : :func:`matplotlib.pyplot.plot` format string, optional + Passed to `matplotlib` as the format string for all lines in the plot. + The `omega` parameter must be present (use omega=None if needed). dB : bool If True, plot result in dB. Default is False. Hz : bool @@ -2226,15 +2279,12 @@ def singular_values_plot( (legacy) If given, `singular_values_plot` returns the legacy return values of magnitude, phase, and frequency. If False, just return the values with no plot. - *fmt : :func:`matplotlib.pyplot.plot` format string, optional - Passed to `matplotlib` as the format string for all lines in the plot. - The `omega` parameter must be present (use omega=None if needed). **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - out : array of Line2D + 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. @@ -2246,9 +2296,6 @@ def singular_values_plot( If plot=False, frequency in rad/sec (deprecated). """ - # If argument was a singleton, turn it into a tuple - data = data if isinstance(data, (list, tuple)) else (data,) - # Keyword processing dB = config._get_param( 'freqplot', 'dB', kwargs, _freqplot_defaults, pop=True) @@ -2260,6 +2307,9 @@ def singular_values_plot( freqplot_rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + # If argument was a singleton, turn it into a tuple + data = data if isinstance(data, (list, tuple)) else (data,) + # Convert systems into frequency responses if any([isinstance(response, (StateSpace, TransferFunction)) for response in data]): diff --git a/control/lti.py b/control/lti.py index 81334f869..e74563c49 100644 --- a/control/lti.py +++ b/control/lti.py @@ -106,7 +106,7 @@ def frequency_response(self, omega=None, squeeze=None): """ from .frdata import FrequencyResponseData - + omega = np.sort(np.array(omega, ndmin=1)) if self.isdtime(strict=True): # Convert the frequency to discrete time @@ -388,13 +388,13 @@ def frequency_response( A list of frequencies in radians/sec at which the system should be evaluated. The list can be either a Python list or a numpy array and will be sorted before evaluation. If None (default), a common - set of frequencies that works across all systems is computed. - squeeze : bool, optional - If squeeze=True, remove single-dimensional entries from the shape of - the output even if the system is not SISO. If squeeze=False, keep all - indices (output, input and, if omega is array_like, frequency) even if - the system is SISO. The default value can be set using - config.defaults['control.squeeze_frequency_response']. + set of frequencies that works across all given systems is computed. + omega_limits : array_like of two values, optional + Limits to the range of frequencies, in rad/sec. Ignored if + omega is provided, and auto-generated if omitted. + omega_num : int, optional + Number of frequency samples to plot. Defaults to + config.defaults['freqplot.number_of_samples']. Returns ------- @@ -417,10 +417,23 @@ def frequency_response( Returns a list of :class:`FrequencyResponseData` objects if sys is a list of systems. + Other Parameters + ---------------- + Hz : bool, optional + If True, when computing frequency limits automatically set + limits to full decades in Hz instead of rad/s. Omega is always + returned in rad/sec. + squeeze : bool, optional + If squeeze=True, remove single-dimensional entries from the shape of + the output even if the system is not SISO. If squeeze=False, keep all + indices (output, input and, if omega is array_like, frequency) even if + the system is SISO. The default value can be set using + config.defaults['control.squeeze_frequency_response']. + See Also -------- evalfr - bode + bode_plot Notes ----- @@ -430,6 +443,15 @@ def frequency_response( 2. You can also use the lower-level methods ``sys(s)`` or ``sys(z)`` to generate the frequency response for a single system. + 3. All frequency data should be given in rad/sec. If frequency limits + are computed automatically, the `Hz` keyword can be used to ensure + that limits are in factors of decades in Hz, so that Bode plots with + `Hz=True` look better. + + 4. The frequency response data can be plotted by calling the + :func:`~control_bode_plot` function or using the `plot` method of + the :class:`~control.FrequencyResponseData` class. + Examples -------- >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 04102d497..b63b19c7e 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -124,10 +124,12 @@ def nyquist(*args, plot=True, **kwargs): syslist, omega, args, other = _parse_freqplot_args(*args) kwargs.update(other) - # Call the nyquist command - response = nyquist_response(syslist, omega, *args, **kwargs) + # Get the Nyquist response (and pop keywords used there) + response = nyquist_response( + syslist, omega, *args, omega_limits=kwargs.pop('omega_limits', None)) contour = response.contour if plot: + # Plot the result nyquist_plot(response, *args, **kwargs) # Create the MATLAB output arguments diff --git a/control/tests/descfcn_test.py b/control/tests/descfcn_test.py index 7b998d084..ceeff1123 100644 --- a/control/tests/descfcn_test.py +++ b/control/tests/descfcn_test.py @@ -226,3 +226,8 @@ def test_describing_function_exceptions(): with pytest.raises(TypeError, match="unrecognized keyword"): ct.describing_function_response( H_simple, F_saturation, amp, None, unknown=None) + + # Unrecognized keyword + with pytest.raises(AttributeError, match="no property|unexpected keyword"): + response = ct.describing_function_response(H_simple, F_saturation, amp) + response.plot(unknown=None) diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index f09d5617d..7c65d269e 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -82,7 +82,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 line in ax_lines.item(): + for line in ax_lines.item() or []: assert isinstance(line, mpl.lines.Line2D) nlines_plotted += 1 @@ -142,10 +142,10 @@ def test_basic_freq_plots(savefigs=False): # Basic SISO Bode plot plt.figure() # ct.frequency_response(sys_siso).plot() - sys1 = ct.tf([1], [1, 2, 1], name='System 1') - sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='System 2') + sys1 = ct.tf([1], [1, 2, 1], name='sys1') + sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') response = ct.frequency_response([sys1, sys2]) - ct.bode_plot(response) + ct.bode_plot(response, initial_phase=0) if savefigs: plt.savefig('freqplot-siso_bode-default.png') @@ -153,14 +153,15 @@ def test_basic_freq_plots(savefigs=False): plt.figure() sys_mimo = ct.tf( [[[1], [0.1]], [[0.2], [1]]], - [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="MIMO") + [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="sys_mimo") ct.frequency_response(sys_mimo).plot() if savefigs: plt.savefig('freqplot-mimo_bode-default.png') - # Magnitude only plot + # Magnitude only plot, with overlayed inputs and outputs plt.figure() - ct.frequency_response(sys_mimo).plot(plot_phase=False) + ct.frequency_response(sys_mimo).plot( + plot_phase=False, overlay_inputs=True, overlay_outputs=True) if savefigs: plt.savefig('freqplot-mimo_bode-magonly.png') @@ -168,6 +169,12 @@ def test_basic_freq_plots(savefigs=False): plt.figure() ct.frequency_response(sys_mimo).plot(plot_magnitude=False) + # Singular values plot + plt.figure() + ct.singular_values_response(sys_mimo).plot() + if savefigs: + plt.savefig('freqplot-mimo_svplot-default.png') + def test_gangof4_plots(savefigs=False): proc = ct.tf([1], [1, 1, 1], name="process") diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index b3e27fe80..22df360ac 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -194,8 +194,15 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): with pytest.raises(AttributeError, match="(has no property|unexpected keyword)"): plot_fcn(response, unknown=None) - - + + # Call the plotting function via the response and make sure it works + response.plot() + + # Now add an unrecognized keyword and make sure there is an error + with pytest.raises(AttributeError, + match="(has no property|unexpected keyword)"): + response.plot(unknown=None) + # # List of all unit tests that check for unrecognized keywords # @@ -256,10 +263,13 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'FrequencyResponseData.plot': test_response_plot_kwargs, + 'DescribingFunctionResponse.plot': + descfcn_test.test_describing_function_exceptions, 'InputOutputSystem.__init__': test_unrecognized_kwargs, 'LTI.__init__': test_unrecognized_kwargs, 'flatsys.LinearFlatSystem.__init__': test_unrecognized_kwargs, 'NonlinearIOSystem.linearize': test_unrecognized_kwargs, + 'NyquistResponseData.plot': test_response_plot_kwargs, 'InterconnectedSystem.__init__': interconnect_test.test_interconnect_exceptions, 'StateSpace.__init__': diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index ad630b71b..18d7e8fb1 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -310,8 +310,8 @@ def test_nyquist_indent_im(): # Imaginary poles with indentation to the left plt.figure(); - response = ct.nyquist_response(sys, indent_direction='left', label_freq=300) - response.plot() + response = ct.nyquist_response(sys, indent_direction='left') + response.plot(label_freq=300) plt.title( "Imaginary poles; indent_direction='left'; encirclements = %d" % response.count) diff --git a/control/timeplot.py b/control/timeplot.py index c2a384888..169e73431 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -102,8 +102,8 @@ def time_response_plot( the array matches the subplots shape and the value of the array is a list of Line2D objects in that subplot. - Additional Parameters - --------------------- + Other Parameters + ---------------- add_initial_zero : bool Add an initial point of zero at the first time point for all inputs with type 'step'. Default is True. diff --git a/doc/Makefile b/doc/Makefile index 88a1b7bad..a5f7ec5aa 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -15,11 +15,15 @@ help: .PHONY: help Makefile # Rules to create figures -FIGS = classes.pdf timeplot-mimo_step-pi_cs.png +FIGS = classes.pdf timeplot-mimo_step-default.png \ + freqplot-siso_bode-default.png classes.pdf: classes.fig fig2dev -Lpdf $< $@ -timeplot-mimo_step-pi_cs.png: ../control/tests/timeplot_test.py +timeplot-mimo_step-default.png: ../control/tests/timeplot_test.py + PYTHONPATH=.. python $< + +freqplot-siso_bode-default.png: ../control/tests/freqplot_test.py PYTHONPATH=.. python $< # Catch-all target: route all unknown targets to Sphinx using the new diff --git a/doc/classes.rst b/doc/classes.rst index df72b1ab7..3bf8492ee 100644 --- a/doc/classes.rst +++ b/doc/classes.rst @@ -15,6 +15,7 @@ user should normally not need to instantiate these directly. :template: custom-class-template.rst InputOutputSystem + LTI StateSpace TransferFunction FrequencyResponseData @@ -36,6 +37,7 @@ Additional classes :nosignatures: DescribingFunctionNonlinearity + DescribingFunctionResponse flatsys.BasisFamily flatsys.FlatSystem flatsys.LinearFlatSystem diff --git a/doc/descfcn.rst b/doc/descfcn.rst index cc3b8668d..1e4a2f3fd 100644 --- a/doc/descfcn.rst +++ b/doc/descfcn.rst @@ -42,13 +42,18 @@ amplitudes :math:`a` and frequencies :math`\omega` such that H(j\omega) = \frac{-1}{N(A)} -These points can be determined by generating a Nyquist plot in which the -transfer function :math:`H(j\omega)` intersections the negative +These points can be determined by generating a Nyquist plot in which +the transfer function :math:`H(j\omega)` intersections the negative reciprocal of the describing function :math:`N(A)`. The -:func:`~control.describing_function_plot` function generates this plot -and returns the amplitude and frequency of any points of intersection:: +:func:`~control.describing_function_response` function computes the +amplitude and frequency of any points of intersection:: - ct.describing_function_plot(H, F, amp_range[, omega_range]) + response = ct.describing_function_response(H, F, amp_range[, omega_range]) + response.intersections # frequency, amplitude pairs + +A Nyquist plot showing the describing function and the intersections +with the Nyquist curve can be generated using `response.plot()`, which +calls the :func:`~control.describing_function_plot` function. Pre-defined nonlinearities diff --git a/doc/freqplot-gangof4.png b/doc/freqplot-gangof4.png new file mode 100644 index 0000000000000000000000000000000000000000..538284a0f2123c93792ef09c10d5172a4c192d96 GIT binary patch literal 41695 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 xt)W$;c_VO44!JQ*WQ7WDQDd~E@oAp{Axm%ac1 literal 0 HcmV?d00001 diff --git a/doc/freqplot-mimo_bode-default.png b/doc/freqplot-mimo_bode-default.png new file mode 100644 index 0000000000000000000000000000000000000000..99520333639d3c6386d77fb29ad6e9dc4a586e7e GIT binary patch literal 53147 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%0DwY3ZUC+@~7L9N-Jy*X% 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 Bl)?Z2 literal 0 HcmV?d00001 diff --git a/doc/freqplot-mimo_bode-magonly.png b/doc/freqplot-mimo_bode-magonly.png new file mode 100644 index 0000000000000000000000000000000000000000..106620b9599953853250ccf22a04b2124a8ba223 GIT binary patch literal 48186 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 Y_lz{3W#6oT|2yjHWi^Ela>kGTAKGG(9{>OV literal 0 HcmV?d00001 diff --git a/doc/freqplot-siso_bode-default.png b/doc/freqplot-siso_bode-default.png new file mode 100644 index 0000000000000000000000000000000000000000..f07ee416446b13bbd3a394319dd1173cf1161ac3 GIT binary patch literal 46705 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

Vp@epsA1nH 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 D+QHxY literal 0 HcmV?d00001 diff --git a/doc/plotting.rst b/doc/plotting.rst index d762a6755..f7734ed3e 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -6,19 +6,40 @@ Plotting data The Python Control Toolbox contains a number of functions for plotting input/output responses in the time and frequency domain, root locus -diagrams, and other standard charts used in control system analysis. While -some legacy functions do both analysis and plotting, the standard pattern -used in the toolbox is to provide a function that performs the basic -computation (e.g., time or frequency response) and returns and object -representing the output data. A separate plotting function, typically -ending in `_plot` is then used to plot the data. The plotting function is -also available via the `plot()` method of the analysis object, allowing the -following type of calls:: +diagrams, and other standard charts used in control system analysis, for +example:: + + bode_plot(sys) + nyquist_plot([sys1, sys2]) + +.. root_locus_plot(sys) # not yet implemented + +While plotting functions can be called directly, the standard pattern used +in the toolbox is to provide a function that performs the basic computation +or analysis (e.g., computation of the time or frequency response) and +returns and object representing the output data. A separate plotting +function, typically ending in `_plot` is then used to plot the data, +resulting in the following standard pattern:: + + response = nyquist_response([sys1, sys2]) + count = response.count # number of encirclements of -1 + lines = 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. + +The plotting function is also available via the `plot()` method of the +analysis object, allowing the following type of calls:: step_response(sys).plot() - frequency_response(sys).plot() # implementation pending - nyquist_curve(sys).plot() # implementation pending - rootlocus_curve(sys).plot() # implementation pending + frequency_response(sys).plot() + nyquist_response(sys).plot() + rootlocus_response(sys).plot() # implementation pending + +The remainder of this chapter provides additional documentation on how +these response and plotting functions can be customized. + Time response data ================== @@ -36,7 +57,7 @@ response for a two-input, two-output can be plotted using the commands:: 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") + [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="sys_mimo") response = step_response(sys) response.plot() @@ -70,7 +91,7 @@ following plot:: ct.step_response(sys_mimo).plot( plot_inputs=True, overlay_signals=True, - title="Step response for 2x2 MIMO system " + + title="Step response for 2x2 MIMO system " + "[plot_inputs, overlay_signals]") .. image:: timeplot-mimo_step-pi_cs.png @@ -91,7 +112,7 @@ keyword:: legend_map=np.array([['lower right'], ['lower right']]), title="I/O response for 2x2 MIMO system " + "[plot_inputs='overlay', legend_map]") - + .. image:: timeplot-mimo_ioresp-ov_lm.png Another option that is available is to use the `transpose` keyword so that @@ -110,7 +131,7 @@ following figure:: transpose=True, title="I/O responses for 2x2 MIMO system, multiple traces " "[transpose]") - + .. image:: timeplot-mimo_ioresp-mt_tr.png This figure also illustrates the ability to create "multi-trace" plots @@ -131,12 +152,128 @@ and styles for various signals and traces:: .. image:: timeplot-mimo_step-linestyle.png +Frequency response data +======================= + +Linear time invariant (LTI) systems can be analyzed in terms of their +frequency response and python-control provides a variety of tools for +carrying out frequency response analysis. The most basic of these is +the :func:`~control.frequency_response` function, which will compute +the frequency response for one or more linear systems:: + + sys1 = ct.tf([1], [1, 2, 1], name='sys1') + sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') + response = ct.frequency_response([sys1, sys2]) + +A Bode plot provide a graphical view of the response an LTI system and can +be generated using the :func:`~control.bode_plot` function:: + + ct.bode_plot(response, initial_phase=0) + +.. image:: freqplot-siso_bode-default.png + +Computing the response for multiple systems at the same time yields a +common frequency range that covers the features of all listed systems. + +Bode plots can also be created directly using the +:meth:`~control.FrequencyResponseData.plot` method:: + + sys_mimo = ct.tf( + [[[1], [0.1]], [[0.2], [1]]], + [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="sys_mimo") + ct.frequency_response(sys_mimo).plot() + +.. image:: freqplot-mimo_bode-default.png + +A variety of options are available for customizing Bode plots, for +example allowing the display of the phase to be turned off or +overlaying the inputs or outputs:: + + ct.frequency_response(sys_mimo).plot( + plot_phase=False, overlay_inputs=True, overlay_outputs=True) + +.. image:: freqplot-mimo_bode-magonly.png + +The :func:`~ct.singular_values_response` function can be used to +generate Bode plots that show the singular values of a transfer +function:: + + ct.singular_values_response(sys_mimo).plot() + +.. image:: freqplot-mimo_svplot-default.png + +Another response function that can be used to generate Bode plots is +the :func:`~ct.gangof4` function, which computes the four primary +sensitivity functions for a feedback control system in standard form:: + + proc = ct.tf([1], [1, 1, 1], name="process") + ctrl = ct.tf([100], [1, 5], name="control") + response = rect.gangof4_response(proc, ctrl) + ct.bode_plot(response) # or response.plot() + +.. image:: freqplot-gangof4.png + + +Response and plotting functions +=============================== + +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). + +.. autosummary:: + :toctree: generated/ + + ~control.describing_function_response + ~control.frequency_response + ~control.forced_response + ~control.gangof4_response + ~control.impulse_response + ~control.initial_response + ~control.input_output_response + ~control.nyquist_response + ~control.singular_values_response + ~control.step_response + Plotting functions -================== +------------------ .. autosummary:: :toctree: generated/ + ~control.bode_plot + ~control.describing_function_plot + ~control.nyquist_plot + ~control.singular_values_plot ~control.time_response_plot + + +Utility functions +----------------- + +These additional functions can be used to manipulate response data or +returned values from plotting routines. + +.. autosummary:: + :toctree: generated/ + ~control.combine_time_responses ~control.get_plot_axes + + +Response classes +---------------- + +The following classes are used in generating response data. + +.. autosummary:: + :toctree: generated/ + + ~control.DescribingFunctionResponse + ~control.FrequencyResponseData + ~control.NyquistResponseData + ~control.TimeResponseData diff --git a/examples/mrac_siso_lyapunov.py b/examples/mrac_siso_lyapunov.py index 00dbf63aa..60550a8d9 100644 --- a/examples/mrac_siso_lyapunov.py +++ b/examples/mrac_siso_lyapunov.py @@ -12,6 +12,7 @@ import numpy as np import scipy.signal as signal import matplotlib.pyplot as plt +import os import control as ct @@ -154,7 +155,6 @@ def adaptive_controller_output(_t, xc, uc, params): plt.plot(tout3, yout3[1,:], label=r'$u_{\gamma = 5.0}$') plt.legend(loc=4, fontsize=14) plt.title(r'control $u$') -plt.show() plt.figure(figsize=(16,8)) plt.subplot(2,1,1) @@ -171,4 +171,5 @@ def adaptive_controller_output(_t, xc, uc, params): plt.hlines(kx_star, 0, Tend, label=r'$k_x^{\ast}$', color='black', linestyle='--') plt.legend(loc=4, fontsize=14) plt.title(r'control gain $k_x$ (feedback)') -plt.show() +if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: + plt.show() diff --git a/examples/mrac_siso_mit.py b/examples/mrac_siso_mit.py index 1f87dd5f6..f901478cb 100644 --- a/examples/mrac_siso_mit.py +++ b/examples/mrac_siso_mit.py @@ -12,6 +12,7 @@ import numpy as np import scipy.signal as signal import matplotlib.pyplot as plt +import os import control as ct @@ -162,7 +163,6 @@ def adaptive_controller_output(t, xc, uc, params): plt.plot(tout3, yout3[1,:], label=r'$u_{\gamma = 5.0}$') plt.legend(loc=4, fontsize=14) plt.title(r'control $u$') -plt.show() plt.figure(figsize=(16,8)) plt.subplot(2,1,1) @@ -179,4 +179,6 @@ def adaptive_controller_output(t, xc, uc, params): plt.hlines(kx_star, 0, Tend, label=r'$k_x^{\ast}$', color='black', linestyle='--') plt.legend(loc=4, fontsize=14) plt.title(r'control gain $k_x$ (feedback)') -plt.show() \ No newline at end of file + +if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: + plt.show() diff --git a/examples/pvtol-nested-ss.py b/examples/pvtol-nested-ss.py index 1af49e425..f53ac70f1 100644 --- a/examples/pvtol-nested-ss.py +++ b/examples/pvtol-nested-ss.py @@ -12,6 +12,8 @@ import matplotlib.pyplot as plt # MATLAB plotting functions from control.matlab import * # MATLAB-like functions import numpy as np +import math +import control as ct # System parameters m = 4 # mass of aircraft @@ -73,7 +75,6 @@ plt.figure(4) plt.clf() -plt.subplot(221) bode(Hi) # Now design the lateral control system @@ -87,7 +88,7 @@ Lo = -m*g*Po*Co plt.figure(5) -bode(Lo) # margin(Lo) +bode(Lo, display_margins=True) # margin(Lo) # Finally compute the real outer-loop loop gain + responses L = Co*Hi*Po @@ -100,48 +101,17 @@ plt.figure(6) plt.clf() -bode(L, logspace(-4, 3)) +out = ct.bode(L, logspace(-4, 3), initial_phase=-math.pi/2) +axs = ct.get_plot_axes(out) # Add crossover line to magnitude plot -for ax in plt.gcf().axes: - if ax.get_label() == 'control-bode-magnitude': - break -ax.semilogx([1e-4, 1e3], 20*np.log10([1, 1]), 'k-') - -# Re-plot phase starting at -90 degrees -mag, phase, w = freqresp(L, logspace(-4, 3)) -phase = phase - 360 - -for ax in plt.gcf().axes: - if ax.get_label() == 'control-bode-phase': - break -ax.semilogx([1e-4, 1e3], [-180, -180], 'k-') -ax.semilogx(w, np.squeeze(phase), 'b-') -ax.axis([1e-4, 1e3, -360, 0]) -plt.xlabel('Frequency [deg]') -plt.ylabel('Phase [deg]') -# plt.set(gca, 'YTick', [-360, -270, -180, -90, 0]) -# plt.set(gca, 'XTick', [10^-4, 10^-2, 1, 100]) +axs[0, 0].semilogx([1e-4, 1e3], 20*np.log10([1, 1]), 'k-') # # Nyquist plot for complete design # plt.figure(7) -plt.clf() -plt.axis([-700, 5300, -3000, 3000]) -nyquist(L, (0.0001, 1000)) -plt.axis([-700, 5300, -3000, 3000]) - -# Add a box in the region we are going to expand -plt.plot([-400, -400, 200, 200, -400], [-100, 100, 100, -100, -100], 'r-') - -# Expanded region -plt.figure(8) -plt.clf() -plt.subplot(231) -plt.axis([-10, 5, -20, 20]) nyquist(L) -plt.axis([-10, 5, -20, 20]) # set up the color color = 'b' @@ -163,10 +133,11 @@ plt.plot(Tvec.T, Yvec.T) #TODO: PZmap for statespace systems has not yet been implemented. -plt.figure(10) -plt.clf() +# plt.figure(10) +# plt.clf() # P, Z = pzmap(T, Plot=True) # print("Closed loop poles and zeros: ", P, Z) +# plt.suptitle("This figure intentionally blank") # Gang of Four plt.figure(11) From c3cc5047e167af8883401388b22835e78db53603 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 21 Jul 2023 22:09:03 -0700 Subject: [PATCH 0372/1025] updated unit tests --- control/freqplot.py | 2 +- control/tests/freqplot_test.py | 109 ++++++++++++++++++++++++++++----- control/tests/matlab_test.py | 6 ++ 3 files changed, 99 insertions(+), 18 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 89294a40a..0e75330d8 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -1185,7 +1185,7 @@ def plot(self, *args, **kwargs): class NyquistResponseList(list): def plot(self, *args, **kwargs): - nyquist_plot(self, *args, **kwargs) + return nyquist_plot(self, *args, **kwargs) def nyquist_response( diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index 7c65d269e..5120ca839 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -31,7 +31,7 @@ @pytest.mark.parametrize( "sys", [ ct.tf([1], [1, 2, 1], name='System 1'), # SISO - manual_response, # simple MIMO + manual_response, # simple MIMO ]) # @pytest.mark.parametrize("pltmag", [True, False]) # @pytest.mark.parametrize("pltphs", [True, False]) @@ -40,29 +40,30 @@ # @pytest.mark.parametrize("shrfrq", ['col', 'all', False, None]) # @pytest.mark.parametrize("secsys", [False, True]) @pytest.mark.parametrize( # combinatorial-style test (faster) - "pltmag, pltphs, shrmag, shrphs, shrfrq, secsys", - [(True, True, None, None, None, False), - (True, False, None, None, None, False), - (False, True, None, None, None, False), - (True, True, None, None, None, True), - (True, True, 'row', 'row', 'col', False), - (True, True, 'row', 'row', 'all', True), - (True, True, 'all', 'row', None, False), - (True, True, 'row', 'all', None, True), - (True, True, 'none', 'none', None, True), - (True, False, 'all', 'row', None, False), - (True, True, True, 'row', None, True), - (True, True, None, 'row', True, False), - (True, True, 'row', None, None, True), + "pltmag, pltphs, shrmag, shrphs, shrfrq, ovlout, ovlinp, secsys", + [(True, True, None, None, None, False, False, False), + (True, False, None, None, None, True, False, False), + (False, True, None, None, None, False, True, False), + (True, True, None, None, None, False, False, True), + (True, True, 'row', 'row', 'col', False, False, False), + (True, True, 'row', 'row', 'all', False, False, True), + (True, True, 'all', 'row', None, False, False, False), + (True, True, 'row', 'all', None, False, False, True), + (True, True, 'none', 'none', None, False, False, True), + (True, False, 'all', 'row', None, False, False, False), + (True, True, True, 'row', None, False, False, True), + (True, True, None, 'row', True, False, False, False), + (True, True, 'row', None, None, False, False, True), ]) def test_response_plots( - sys, pltmag, pltphs, shrmag, shrphs, shrfrq, secsys, clear=True): + sys, pltmag, pltphs, shrmag, shrphs, shrfrq, ovlout, ovlinp, + secsys, clear=True): # Save up the keyword arguments kwargs = dict( plot_magnitude=pltmag, plot_phase=pltphs, share_magnitude=shrmag, share_phase=shrphs, share_frequency=shrfrq, - # overlay_outputs=ovlout, overlay_inputs=ovlinp + overlay_outputs=ovlout, overlay_inputs=ovlinp ) # Create the response @@ -79,6 +80,16 @@ def test_response_plots( plt.figure() out = response.plot(**kwargs) + # Check the shape + if ovlout and ovlinp: + assert out.shape == (pltmag + pltphs, 1) + elif ovlout: + assert out.shape == (pltmag + pltphs, sys.ninputs) + elif ovlinp: + assert out.shape == (sys.noutputs * (pltmag + pltphs), 1) + else: + assert out.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"]): @@ -198,12 +209,24 @@ def test_first_arg_listable(response_cmd, return_type): result = response_cmd(sys) assert isinstance(result, return_type) + # Save the results from a single plot + lines_single = result.plot() + # If we pass a list of systems, we should get back a list result = response_cmd([sys, sys, sys]) assert isinstance(result, list) assert len(result) == 3 assert all([isinstance(item, return_type) for item in result]) + # Make sure that plot works + lines_list = result.plot() + if response_cmd == ct.frequency_response: + assert lines_list.shape == lines_single.shape + assert len(lines_list.reshape(-1)[0]) == \ + 3 * len(lines_single.reshape(-1)[0]) + else: + assert lines_list.shape[0] == 3 * lines_single.shape[0] + # If we pass a singleton list, we should get back a list result = response_cmd([sys]) assert isinstance(result, list) @@ -211,6 +234,58 @@ def test_first_arg_listable(response_cmd, return_type): assert isinstance(result[0], return_type) +def test_bode_share_options(): + # Default sharing should share along rows and cols for mag and phase + lines = ct.bode_plot(manual_response) + axs = ct.get_plot_axes(lines) + for i in range(axs.shape[0]): + for j in range(axs.shape[1]): + # Share y limits along rows + assert axs[i, j].get_ylim() == axs[i, 0].get_ylim() + + # Share x limits along columns + assert axs[i, j].get_xlim() == axs[-1, j].get_xlim() + + # 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) + for i in range(int(axs.shape[0] / 2)): + for j in range(axs.shape[1]): + if i != 0: + # Different rows are different + assert axs[i*2 + 1, 0].get_ylim() != axs[1, 0].get_ylim() + elif j != 0: + # Different columns are different + assert axs[i*2 + 1, j].get_ylim() != axs[i*2 + 1, 0].get_ylim() + + # Turn off sharing for magnitude and phase + plt.figure() + lines = ct.bode_plot(manual_response, sharey='none') + axs = ct.get_plot_axes(lines) + for i in range(int(axs.shape[0] / 2)): + for j in range(axs.shape[1]): + if i != 0: + # Different rows are different + assert axs[i*2, 0].get_ylim() != axs[0, 0].get_ylim() + assert axs[i*2 + 1, 0].get_ylim() != axs[1, 0].get_ylim() + elif j != 0: + # Different columns are different + assert axs[i*2, j].get_ylim() != axs[i*2, 0].get_ylim() + assert axs[i*2 + 1, j].get_ylim() != axs[i*2 + 1, 0].get_ylim() + + # Turn off sharing in x axes + plt.figure() + lines = ct.bode_plot(manual_response, sharex='none') + # TODO: figure out what to check + + +def test_bode_errors(): + # Turning off both magnitude and phase + with pytest.raises(ValueError, match="no data to plot"): + ct.bode_plot(manual_response, plot_magnitude=False, plot_phase=False) + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing diff --git a/control/tests/matlab_test.py b/control/tests/matlab_test.py index 9ba793f70..e01abcca1 100644 --- a/control/tests/matlab_test.py +++ b/control/tests/matlab_test.py @@ -415,6 +415,12 @@ def testBode(self, siso, mplcleanup): # Not yet implemented # bode(siso.ss1, '-', siso.tf1, 'b--', siso.tf2, 'k.') + # Pass frequency range as a tuple + mag, phase, freq = bode(siso.ss1, (0.2e-2, 0.2e2)) + assert np.isclose(min(freq), 0.2e-2) + assert np.isclose(max(freq), 0.2e2) + assert len(freq) > 2 + @pytest.mark.parametrize("subsys", ["ss1", "tf1", "tf2"]) def testRlocus(self, siso, subsys, mplcleanup): """Call rlocus()""" From 33ca68b672c63ef938e5c0dc06ebabc9b5630f77 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 22 Jul 2023 09:18:27 -0700 Subject: [PATCH 0373/1025] refactoring of nichols into response/plot + updated unit tests, examples --- LICENSE | 1 + control/frdata.py | 3 + control/freqplot.py | 138 ++++++++------------------ control/nichols.py | 133 ++++++++++++++----------- control/tests/freqplot_test.py | 25 ++++- control/tests/kwargs_test.py | 4 + doc/freqplot-siso_bode-default.png | Bin 46705 -> 46693 bytes doc/freqplot-siso_nichols-default.png | Bin 0 -> 69964 bytes doc/plotting.rst | 10 +- 9 files changed, 153 insertions(+), 161 deletions(-) create mode 100644 doc/freqplot-siso_nichols-default.png diff --git a/LICENSE b/LICENSE index 6b6706ca6..5c84d3dcd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,5 @@ Copyright (c) 2009-2016 by California Institute of Technology +Copyright (c) 2016-2023 by python-control developers All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/control/frdata.py b/control/frdata.py index c677dd7f7..e0f7fdcc6 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -667,12 +667,15 @@ def plot(self, plot_type=None, *args, **kwargs): """ from .freqplot import bode_plot, singular_values_plot + from .nichols import nichols_plot if plot_type is None: plot_type = self.plot_type if plot_type == 'bode': return bode_plot(self, *args, **kwargs) + elif plot_type == 'nichols': + return nichols_plot(self, *args, **kwargs) elif plot_type == 'svplot': return singular_values_plot(self, *args, **kwargs) else: diff --git a/control/freqplot.py b/control/freqplot.py index 0e75330d8..0a8522437 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -1,67 +1,21 @@ # freqplot.py - frequency domain plots for control systems # -# Author: Richard M. Murray +# Initial author: Richard M. Murray # Date: 24 May 09 # -# Functionality to add -# [ ] Get rid of this long header (need some common, documented convention) -# [x] Add mechanisms for storing/plotting margins? (currently forces FRD) +# This file contains some standard control system plots: Bode plots, +# Nyquist plots and other frequency response plots. The code for Nichols +# charts is in nichols.py. The code for pole-zero diagrams is in pzmap.py +# and rlocus.py. +# +# Functionality to add/check (Jul 2023, working list) # [?] Allow line colors/styles to be set in plot() command (also time plots) -# [x] Allow bode or nyquist style plots from plot() -# [i] Allow nyquist_response() to generate the response curve (?) -# [i] Allow MIMO frequency plots (w/ mag/phase subplots a la MATLAB) -# [i] Update sisotool to use ax= -# [i] Create __main__ in freqplot_test to view results (a la timeplot_test) # [ ] Get sisotool working in iPython and document how to make it work -# [i] Allow share_magnitude, share_phase, share_frequency keywords for units -# [i] Re-implement including of gain/phase margin in the title (?) -# [i] Change gangof4 to use bode_plot(plot_phase=False) w/ proper labels # [ ] Allow use of subplot labels instead of output/input subtitles -# [i] Add line labels to gangof4 [done by via bode_plot()] # [i] Allow frequency range to be overridden in bode_plot # [i] Unit tests for discrete time systems with different sample times -# [c] Check examples/bode-and-nyquist-plots.ipynb for differences # [ ] Add unit tests for ct.config.defaults['freqplot_number_of_samples'] -# -# This file contains some standard control system plots: Bode plots, -# Nyquist plots and other frequency response plots. The code for Nichols -# charts is in nichols.py. The code for pole-zero diagrams is in pzmap.py -# and rlocus.py. -# -# Copyright (c) 2010 by California Institute of Technology -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Neither the name of the California Institute of Technology nor -# the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CALTECH -# OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# - import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt @@ -128,15 +82,12 @@ def plot(self, *args, plot_type=None, **kwargs): if plot_type is not None and response.plot_type != plot_type: raise TypeError( "inconsistent plot_types in data; set plot_type " - "to 'bode' or 'svplot'") + "to 'bode', 'nichols', or 'svplot'") plot_type = response.plot_type - if plot_type == 'bode': - return bode_plot(self, *args, **kwargs) - elif plot_type == 'svplot': - return singular_values_plot(self, *args, **kwargs) - else: - raise ValueError(f"unknown plot type '{plot_type}'") + # Use FRD plot method, which can handle lists via plot functions + return FrequencyResponseData.plot( + self, plot_type=plot_type, *args, **kwargs) # # Bode plot @@ -1936,23 +1887,7 @@ def _parse_linestyle(style_name, allow_false=False): ax.grid(color="lightgray") # List of systems that are included in this plot - labels, lines = [], [] - last_color, counter = None, 0 # label unknown systems - for i, line in enumerate(ax.get_lines()): - label = line.get_label() - if 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) + lines, labels = _get_line_labels(ax) # Add legend if there is more than one system plotted if len(labels) > 1: @@ -2279,6 +2214,9 @@ def singular_values_plot( (legacy) If given, `singular_values_plot` returns the legacy return values of magnitude, phase, and frequency. If False, just return the values with no plot. + 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. **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. @@ -2400,8 +2338,8 @@ def singular_values_plot( if dB: with plt.rc_context(freqplot_rcParams): out[idx_sys] = ax_sigma.semilogx( - omega_plot, 20 * np.log10(sigma_plot), color=color, - label=sysname, *fmt, **kwargs) + omega_plot, 20 * np.log10(sigma_plot), *fmt, color=color, + label=sysname, **kwargs) else: with plt.rc_context(freqplot_rcParams): out[idx_sys] = ax_sigma.loglog( @@ -2422,26 +2360,10 @@ def singular_values_plot( ax_sigma.set_xlabel("Frequency [Hz]" if Hz else "Frequency [rad/sec]") # List of systems that are included in this plot - labels, lines = [], [] - last_color, counter = None, 0 # label unknown systems - for i, line in enumerate(ax_sigma.get_lines()): - label = line.get_label() - if 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) + lines, labels = _get_line_labels(ax_sigma) # Add legend if there is more than one system plotted - if len(labels) > 1: + if len(labels) > 1 and legend_loc is not False: with plt.rc_context(freqplot_rcParams): ax_sigma.legend(lines, labels, loc=legend_loc) @@ -2649,6 +2571,28 @@ 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 + # # Utility functions to create nice looking labels (KLD 5/23/11) # diff --git a/control/nichols.py b/control/nichols.py index 1f83ae407..1a5043cd4 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -1,3 +1,8 @@ +# nichols.py - Nichols plot +# +# Contributed by Allan McInnes +# + """nichols.py Functions for plotting Black-Nichols charts. @@ -8,53 +13,16 @@ nichols.nichols_grid """ -# nichols.py - Nichols plot -# -# Contributed by Allan McInnes -# -# This file contains some standard control system plots: Bode plots, -# Nyquist plots, Nichols plots and pole-zero diagrams -# -# Copyright (c) 2010 by California Institute of Technology -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Neither the name of the California Institute of Technology nor -# the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CALTECH -# OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# $Id: freqplot.py 139 2011-03-30 16:19:59Z murrayrm $ - import numpy as np import matplotlib.pyplot as plt import matplotlib.transforms from .ctrlutil import unwrap -from .freqplot import _default_frequency_range +from .freqplot import _default_frequency_range, _freqplot_defaults, \ + _get_line_labels +from .lti import frequency_response +from .statesp import StateSpace +from .xferfcn import TransferFunction from . import config __all__ = ['nichols_plot', 'nichols', 'nichols_grid'] @@ -65,53 +33,81 @@ } -def nichols_plot(sys_list, omega=None, grid=None): +def nichols_plot( + data, omega=None, *fmt, grid=None, title=None, + legend_loc='upper left', **kwargs): """Nichols plot for a system. Plots a Nichols plot for the system over a (optional) frequency range. Parameters ---------- - sys_list : list of LTI, or LTI - List of linear input/output systems (single system is OK) + data : list of `FrequencyResponseData` or `LTI` + List of LTI systems or :class:`FrequencyResponseData` objects. A + single system or frequency response can also be passed. omega : array_like Range of frequencies (list or bounds) in rad/sec + *fmt : :func:`matplotlib.pyplot.plot` format string, optional + Passed to `matplotlib` as the format string for all lines in the 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. + 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. + **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional + Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - None + 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. """ # Get parameter values grid = config._get_param('nichols', 'grid', grid, True) - + freqplot_rcParams = config._get_param( + 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) # If argument was a singleton, turn it into a list - if not getattr(sys_list, '__iter__', False): - sys_list = (sys_list,) + if not isinstance(data, (tuple, list)): + data = [data] + + # If we were passed a list of systems, convert to data + if all([isinstance( + sys, (StateSpace, TransferFunction)) for sys in data]): + data = frequency_response(data, omega=omega) - # Select a default range if none is provided - if omega is None: - omega = _default_frequency_range(sys_list) + # Make sure that all systems are SISO + if any([resp.ninputs > 1 or resp.noutputs > 1 for resp in data]): + raise NotImplementedError("MIMO Nichols plots not implemented") - for sys in sys_list: + # Create a list of lines for the output + out = np.empty(len(data), dtype=object) + + for idx, response in enumerate(data): # Get the magnitude and phase of the system - mag_tmp, phase_tmp, omega = sys.frequency_response(omega) - mag = np.squeeze(mag_tmp) - phase = np.squeeze(phase_tmp) + mag = np.squeeze(response.magnitude) + phase = np.squeeze(response.phase) + omega = response.omega # Convert to Nichols-plot format (phase in degrees, # and magnitude in dB) x = unwrap(np.degrees(phase), 360) y = 20*np.log10(mag) + # Decide on the system name + sysname = response.sysname if response.sysname is not None \ + else f"Unknown-{idx_sys}" + # Generate the plot - plt.plot(x, y) + with plt.rc_context(freqplot_rcParams): + out[idx] = plt.plot(x, y, *fmt, label=sysname, **kwargs) - plt.xlabel('Phase (deg)') - plt.ylabel('Magnitude (dB)') - plt.title('Nichols Plot') + # Label the plot axes + plt.xlabel('Phase [deg]') + plt.ylabel('Magnitude [dB]') # Mark the -180 point plt.plot([-180], [0], 'r+') @@ -120,6 +116,23 @@ def nichols_plot(sys_list, omega=None, grid=None): if grid: nichols_grid() + # List of systems that are included in this plot + ax_nichols = plt.gca() + 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: + with plt.rc_context(freqplot_rcParams): + ax_nichols.legend(lines, labels, loc=legend_loc) + + # Add the title + if title is None: + title = "Nichols plot for " + ", ".join(labels) + with plt.rc_context(freqplot_rcParams): + plt.suptitle(title) + + return out + def _inner_extents(ax): # intersection of data and view extents diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index 5120ca839..f064b1315 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -56,8 +56,8 @@ (True, True, 'row', None, None, False, False, True), ]) def test_response_plots( - sys, pltmag, pltphs, shrmag, shrphs, shrfrq, ovlout, ovlinp, - secsys, clear=True): + sys, pltmag, pltphs, shrmag, shrphs, shrfrq, secsys, + ovlout, ovlinp, clear=True): # Save up the keyword arguments kwargs = dict( @@ -186,6 +186,12 @@ def test_basic_freq_plots(savefigs=False): if savefigs: plt.savefig('freqplot-mimo_svplot-default.png') + # Nichols chart + plt.figure() + ct.nichols_plot(response) + if savefigs: + plt.savefig('freqplot-siso_nichols-default.png') + def test_gangof4_plots(savefigs=False): proc = ct.tf([1], [1, 1, 1], name="process") @@ -280,6 +286,19 @@ def test_bode_share_options(): # TODO: figure out what to check +@pytest.mark.parametrize("plot_type", ['bode', 'svplot', 'nichols']) +def test_freqplot_plot_type(plot_type): + if plot_type == 'svplot': + 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) + if plot_type == 'bode': + assert lines.shape == (2, 1) + else: + assert lines.shape == (1, ) + + def test_bode_errors(): # Turning off both magnitude and phase with pytest.raises(ValueError, match="no data to plot"): @@ -323,7 +342,7 @@ def test_bode_errors(): (sys_test, True, True, 'row', None, 'col', True), ] for args in test_cases: - test_response_plots(*args, clear=False) + test_response_plots(*args, ovlinp=False, ovlout=False, clear=False) # Define and run a selected set of interesting tests # TODO: TBD (see timeplot_test.py for format) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 22df360ac..0d13e6391 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -146,6 +146,8 @@ def test_unrecognized_kwargs(function, nsssys, ntfsys, moreargs, kwargs, (control.descfcn.saturation_nonlinearity(1), [1, 2, 3, 4]), {}), (control.gangof4, 2, (), {}), (control.gangof4_plot, 2, (), {}), + (control.nichols, 1, (), {}), + (control.nichols_plot, 1, (), {}), (control.nyquist, 1, (), {}), (control.nyquist_plot, 1, (), {}), (control.singular_values_plot, 1, (), {})] @@ -232,6 +234,8 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'linearize': test_unrecognized_kwargs, 'lqe': test_unrecognized_kwargs, 'lqr': test_unrecognized_kwargs, + 'nichols_plot': test_matplotlib_kwargs, + 'nichols': test_matplotlib_kwargs, 'nlsys': test_unrecognized_kwargs, 'nyquist': test_matplotlib_kwargs, 'nyquist_response': test_response_plot_kwargs, diff --git a/doc/freqplot-siso_bode-default.png b/doc/freqplot-siso_bode-default.png index f07ee416446b13bbd3a394319dd1173cf1161ac3..924de66f44e7ddd74174751dc393ec18be25d4c6 100644 GIT binary patch literal 46693 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

Z*{xR8mBBsoF&7F31_m#9Y@n>7 zx_S)$N+*XQCWr}-<^Jn9L010^W(I^kDXTteijL|Lw=Q8vM=s0+&^a#J)#khsi1}^0 z7=)%fw1<_IrK_OWCV5Qbg0Ha8cE75s>8#@Y86hZQGLe(b5)^40{jte-yw2U>6hRW- z#!8K`p+*S9Wu|C)+(PG(n)p#Q?I&*a&BsKPJo4+;jd0YqqAnzsTRl5>Rr5Da38P$H z?B5fFSrEGXVV@!Gy1=k;p7SSzp;1p~>OEkD5MDq(jvvasbsw4e z36ww3TR3<|5mzP@N#|(t)0S(Is=>T`^jV~(nbLR8onQSGNiF~WW8b4~MA|^DzSqWq zwFG%6BanltAV8TOaF6`&==o1<+wp19{VZTasM5XYJ)3Lhy{+b#WLtaDILXIH+_gpZ ziZ_N-vCf@%AN`nl*1aG`;qqJ*J!vG(^Kqx=->vBH!bu&rVCLvPZ`>TBn1g|EKy3PL zrVpw&Y$DQB(?M_Ir&#-TqUKz8gEvxn+nt4%xI-?sUCv2~dti}N*C~If3}lD0JB()# zn06p~l%>eP&5iF3wd`b(MaJj7s|fSQ^SK(2E1HC0ucU}BZ@{ri|O z!qWtXDu)X5!}GlKh`1`l)V7&UCy4K6bYXnD`|1TxKq<#}gQT{8iq%82lz^9k+r{Ja z1ACHH!H-cJk)vW~XAQxQ37^U}m_`b-dqLf@61GUQ4dA~`ptSHf{no|8#s(zc+&fv? zkNOe-ivmZspy#O|j6P<@7uzL(BfzYD3l?vc_i~uohBjtefmzpc4Vl``f`YE%kHs}A zEp;ijKUXL$4>vxy5XT5yXg5eYCp<>I1LMA7GrxZ0#!v8K!MxOMkeU$@5X{2$OP{u4 z6;>}&a@FlVgp3fZIHJfX0ip;*cRXM4$4A+Ol$4#o6YGV$atPEuDr@Bh<<#~f8I5{6dU(w2GkJiB=Fu>P1cvdFV5L#a4A zs7kSLbsWpLmviZMt>iytSC%daFaWz{U6q~#s03RO5)%hz)tp>;P{+ZzQAcy{u!$Nc zZZvcpLl^+F3w;L|A07{|xRD|QWf=PlMzYqYC2BDj$a%SNbG57No)oM@fb)0!l`b*` z^II}6VBr!vW+(^(I3=42lbcSclyu7+p;k)z6ImZPPnAV+20!AwR;M7hWgMLCd51k9 zsM~|Kyi3to*0-&cBAx_fBiLhQz*hnSIz{+{)Kq%Y1c|P;#X zd+6PH2C^4jlMY|?Bx?wGM-s#@UEHL-T#BXO;_+R$f&?SN=yu69g}EgwTq%)uJ755z zSAZq*QCJ@j)J6rkm)(7CRtP9po5U-Lg3*xLioYo z*l3~LLh(-xuW%8?%8X*Ce`zd2y(6<-{O${9=6L18fJu|PlK6y-uc}$(7S>PDOBPia z%J?&3`h@t6gN0Ii11{?isMV{b#BKX>EF8ryYnA^!DRMQMiUnr>XjR)AgPsydX`-UA zU5i-369m5hFgl4|U@mzH$F&2 zUy-=0Wyz)(7#`TNQI-5a|z5t7I zvZACUD)^&nfr^!On~E zy&Pl7tz=X~<1vpOikZ(xjLc1WXk(?Jwl zc;vPQ^JAw6YFoH=r{=u9y=Cz4gV3-_)sQLVf^wwpa-P0)*_js(mKMHr%pJu*N@-sl z;kEG7LJDo zWL2IJY|cO2DRFg=Oz(dtetGWUrk9$rJEnBjhtz-=z=%&1KHr_BQkW><%{5yobN zgBg1z?;M0?Ad8+?BvX>KuwV!O9KZ?is0Hbfg|81+Q~@L=E*|LUas%-dug1^%I{woE zVaG&qRTL`w+g82mImHuw=f6mzz7Meb{;*~mP2yCW6bX4N- z>!Imqvxoo1W`z9T^}o~Uzwyrv*e9;P*cWb)sJ~mYtPCNzg&GD&W$&xyFg$CjJ22LW z&S`P8!GIU}wA9s_J|uVAQ#Sb~{hVA>(EQ#%w_PwP($GvFzDWh>*SgiPiPHaK0f#1G z^uObQijiJQ4MRPZ`%3}&bB5iNFz*BjKdy8dO4C^VK0UMv`z2%RF?d|^l_)qM{RuN_ zT@%#k&I>+x@nVC?W+Oonim`zc4u7ZReljwFlmuySaMsHc-)ywFPl2hXE=rryW&!_JjkmlIF@kHi-`l zm|^}`uv2Hy_BU>1HGME`G_kgO1R37>Ms8UC*^Y{Mvh#Ju&#h@gY*u|7KdNn=1~#Ii zM8#||U>MIz9i9H`tTt`Dy?Hwt0PSL(z)o1SK_HnJ-^B+3x89# z59|FzCU)zPu+^VO~uSZSttHlh-_M8S>=H*F`MSD2D&E|K8y zFO$D~PA#yjm})Ek<#MEA7gFC0Ih`vf{_Hps+6rAwq%9u6u^(Uz{Mwoo@L)Qj>Y;1> zJr4>lP*m`GvhYjSbNS_IzA^Eo3R9y%Q|exlF#@55VrJzQ+iEOnbyL)OOo=G*TkIa` z)?d0L7@BcwqcJwEN=izA*9%ffTW>IfGxH9anGY%|NjA3{skTh< zO9B~_OKKeS>C0WOv80U&-b&jMw>wdjM5)Tq7+)2bB0w3x%z?&8jAd-u^-%sG%kneR z2Hn7Y>on_lez_N3g*P-K6L&q-B0ib8xtaE$Sbd9aHZoj^+5EntYC5_J$T=HL zOH-98ixI6pT)h5;L|nxEjb66BV6^$HR+i6Fy`1r#d-O)OYhQBo?QE`Js`8g~cIkvsGX)pPV|lfTd7X6*gcuBb&PK!~1wHST^B3kr_7k zr=VK`0maAXD5smd_esOodu)YIjQFJ<>WE`YNc6rXsc~Mfig<~^{Z{j-)xZ`eiX%IM z&Sm~8(szqAJAiVesCF9*g3CoXh%00dG=_(Vr@*xXwvi7iY%nK0_mexEUVedr=|jI> z2L=5ACSeH|47q2O&m=6+u=GHdvkQNMZhQ{4`MAaJ;7-~r##O_moq~#Ajykvp_;2RR zB=DbXOwI6k?c(lY4;k^anEOVU)(hTUdogp%We-1JS(v*u)$EpI7fK>vpTG-Utm!m* z+iL74va*bhOQ~k64F|Nc*dB3xeSM<1NBmq%AQ2UnLW;Nt0?yaKu9^2R4!If6^-I&3 zS0fqklhK`MUSEL_^I-N={?m`N_k@9yRFeT2z=1xvwVe&KN?wb44 zOUi8r8OpEmA}R2)$co*Et^_nxMIJV6EM{_kWHR80Frd5I^E8In8{Ali6XoUz0O15` zmzksuTez&1v^IeA=sd_sgtUBx>=V9TaLe zx*dk%su>y;ZM}G#0AnCB_cZYu#!VKMfb3+~AV^yv6FuB)!SCqn%Qo#x21U*7&nbX) z0R4#GMky3iiVd4y8K8S6p>CSO&`Ty^;m_X_R3X>t14O-N&-$8P9BKLJM5(!dK4g%Fl_LM@1;SAI^UW|OrI0$i!l%3 zm@a9OPti_zyCzy{1T7z4k&|m*jNf%iOtAhH`-@n}8>;N+WhOn%Lqn0EMW^!aNf02S zqnpX_tgsq?8a}5Lr^wQqEcSSVCv*GQ!0VgYZL{0)!W$y$Sy7RZ)QyXKb2f1r1#+b$ zR<;|1Lf)f89+z;E(A>@g+OzI0yYn6f3KS_*-Cmfn*PS8waU5XCpCFW^*WCNf$}wxv z?xtAE&e4MVX3J&q!#UJsTKV(r7YM1(l}0L+^vC|cwp6ZL?k(87DC4B&O_(gw!)i>h zt*`FIr33TC)4>e6{pEU6KnR`v$Qv-r`0xRhn_D5`7^-|d0BHpl91@2QFjyocppg)5 z2nGi?x3ma(9N+GW=46D?o4^0;E+1r0FZZtdDO~sznKXIO`Tm$_m|5i@#=0yfd^nKq zONWoUD)Xi!-ow;>{9SxY;WsOuVD>RDuJE&^ZSO~Be6(L=(0Ok1c&|L{DvHKDFsdYv zg|gfx6#gS)Vl-EKGk`GGrk{XFg^zzk#EtRVHAMd8WVt!fi>2Po($WaP@$dWy=H_wT zHT#o-c^pj3K6%0bl^4Zi(KwhDUK6GSjt}fdALsCGo2h)~y7}*)W7;GxFRSv!Y5csa zn-cbA@7HV4&{;jWa?-cBbw;6ZRZC63bw6_4N+J%|d2=K#3FkNIJ*#K*XN;)J!>WPu zzfS#&%xG(fy^#hHmR{MFUF}s!g45l#ACo}fX;FGnPLnA-Qh~A*FAax{}X{DJfpeOwTFoM-9ZJbnffHK za-5!>Y1cS%f_-uhkU1r?2eA9yTczN^4)Z`CZ-25QTD8h48~)Yiz5Hblsl8p?VP0z$ z)A~~jB8CB9!C2KVUOZTWiK=%>O5&%p?Z-Si?TND6m93ARuFMJ~p)HdYvVNPP^2gSt zB^xz~LA@yD4Q%+G%YCdCknq0b*z3SiCs>#jDBnD}1bvxw05{SnrX?t0)z z+(DI7e;wt;Qj_CM+b}hsfVzCut$SS;4p$J@a&E;5z0CBxct&i;mi`v`pUknZ;bd4x zTapZK(eH>DDBIu+U8Tv*Hi%7LR-r)=PktaFFgbW@=(;_^$jInuN#deINnrY(t}eAy zARb5scK{$`2WiowbS3qg;jIv z9IbFGfnf%7DTpM4KIw{QSl79| z>C8wfEq#@*;e;wH_GG;wG^J{A>bA!4+X(gUfnaIsIy3sChgZ#AjQ0vBRkP;;9(eAq zEVtv*oGnkw$vS%rbXrb5yVl;__9BS7G0!WZ(rM#6JPOma)56R#9p(0@f3M03SC#v7 zRVzG0k6oH4UxtcZxN?*F(mp>Ib;cO;6489_U;R-d@6Gy(wAJYT$U#tNuAuA3w=KVp ztS&aLV{I}+eRr)m950sy zz0O73!)Vf>z&>(9#QOO==Po>mmk?;Q-clQPdgaE>1YR5bUcM^CTo)dnrn*i+KBs(d zTn^C0^3u48-Rz5BjM1*gp+DrJ5{y$;AlVYaq22o)l6l#^cf&+<&hDLAoiia_LyV;(8Gp?#4s@6G zYG}VURMnCTC=$7Q)5J5c-OYGrf6svqsXvEjf zMIq?ep^_~j5sHyC>GIQD&33s1v-N-jCYq4;A_-0625-D!7SGI z5GQNtZ1*cCV_8n(Q@AongP1R-qcrlAqaNOsO(IJ}`R;ewnTT{&N>)Odi{$!pq=C$m zqo=cLm93B23zXQTBx?_G+wY>Zz~e+FT|h&%EFhz%wmMl(d<)UJ;=i1{DCKo^H4BK5 zfi$|@WFwUB~_Np#us>EXxBrR0sl>Z(@LdhoDdLZ!9yeH|MyLH;m7{!o9DvJ^%V8I1#_@bc~Q zoh|x294z_HEB*W)5|a*isSiKiOH;9{Tg38z6(3KTfU$(bgaIb!OWqaNA|ESvOZmi! zsbYT}-M8C)`-LyITSeEn<7Rgr0Q{~Tkzj3yzO_|TG4#uIEyY<)SB)QVd-Z*2TQeJ7 zLYddo!qZhN*>bo)ULtJ`qJrOdVDD4@?{}`*sbkq8&WzFTm|J9;cDjY8IEVHz?lf~@ zyO`$d6xdMQqQLcZXS#x~@1C)~Nlk^9Ba{=Sm=&tJdfSPl4+R%+^lGgYSGq-B(8 zeW$4*6`j_s!?Z|B)xoc3$McgAi<`zJGYSM7I-Y!)p@z|jjnINP-Hu06g*9>baQKlB7oVz5dCjaWJcA4gbkyiMANX>P>t4WC` zRE|CD2oO#HFAA~yf0cIS;Z&~gdLfCOp(qk!Q&C$oWXKdkC81K8l?)k{Idg<&(k?8@ zP>D7&gk_#94W=Z-lA#i{Ol2tZxj*fFuIsnY`Rg3lwfaMswZ8Se@Ap2>b3gZU-(TCV z&Cdsxt^Vo{7p}Uk$#0i9N1+y;3OyxctGSp0whWpwuACcHCf&Ssix89lSQlwt>~?-~ z(o4xq0>b)V0vS)fNQoU(j@62E>J^mgK9bK?jorzC0Rn)@Xta1+Zr!}O(+3s? zQnX`sq(9U4^l3MIixeEz5fPta&B!8~H#3JoV%!72ZLJCpMw8?>-W{L9IEMo^R^i4g zxKFGecj06{_QlV>aWxGKI^U9U&{#l0NiaO5rDI&;Qc1PgVIN=cDv!_i}B*6TFZP~v0<|4o0L4l!A$X&T4HpN zR9`y5GSHL9}GAez5=6J3LnCB&ES)2zm}? zQY?h_q`Xmv^@D-3&-3G3c&yxqeZw8ZDBDR$FVCntflOjVU)=-bo)}*;K+lKhJ`rn` ztR@&TG~_^_afFQ(Fbxb0qyFs`nG?pwXaAzaU%PUT@rL1ZEiEZ)?i(e1UF&88k0~q9 zPUua)D{}4KMFDSXflw=(-V}{J{3F${`i1s*51-;B$7=r-jG}_7+eEVK2bzes71yDy z9^%NS54Pn_ZP1Ou8mwYZ*`q|*vn5t zYgkWiW+vn|TGk$Q{P{$^=E-kO&KH7m6#e&Vo_J|dtuLnWn*EmW5Ng@%dudr3wP#&i zr8Hj4vqfmG`EguDzOiop{b5H<7Hf`cS^2mB{?bQ6@0!J}(7@($Sf3xi^wKvhH2&9cF%@`f^$Z) zGrx^bQg_6boCyf<0dtkhYrAKeVXNJZ zz31*QIC$^@&U$E}wBXDIF5zNP=s9>O`oLz>toB)SwxUGOYGHNCzN&C7j&He(#J4(a zYw9WJ5vYYc zih@Mr?o$c`@R(oeQ&Zf*z$_40zm~@(HeydpDK0c3GSU{J3`0}?fk8p>YC*dZLfQv# zg5JlmCmwSEihm(RMGA2F@aVgY?|a$5TaNYIQpSMa8+D@~dBN25H;--BlAoozGIkcZ zZi0hAx{nDa>2O+k!3V890L3-l91Xe#M0ca~qf>?8d14Bi?i5x-!f9x;d?NnGzx#K{MNlQN`u5%>^-H{+ljAlZ5Cho##9xA0qg7T?M9? zk46va7w+@`fgwS~?Y0HJjs+0}Wa*1{ZGAGRIa!4YU|ZZRju9xv{{JeHnJfBWuzY|MKml3YM&IY<8(E zX=ceaJabid9ZFmsOO}D`2KgAKV(7W7?0EU=)rUeF*#^Fk-dEK_bTL)b&!wI{Ig z184E53@K744E`Atm8VU2{TtuL2Z@NZIFFS?_Zpvz{QimeuR_(ZZQk77C2K=Xr=9OA zH#HWzHF#wTRKt)6PG<4Y$^a+BFp<~*A8Y;7aB=FtgzN zbBVlh?)%tk*5uk2 z&XcrL;wqe*48nqPYIC>Vdp_cQPUq0&v>Tm-37?|q1;*L;Oi@CiYYf7=SY$Y#%mzqO zF5XhV$j=*Dy@q4(FeW|E|1VX^CsN@f`slS7=OtWR~5wH zs?QpCPL|p0-ZU*OG9idum}-+o`%Ef~g-}->>>!b*D0+X5UfzIi;@;j8f0ocLH*{V- zP94x?YY>0YuI(vp&1EvnhnveGlpotPW~0*LJ-Kcc6<`RZGJ zan7o1GB!C=F8P;uKaaY{k$V^%+AaUQkA4>~m48-0 zSH;7?tdiSz*oMc?-Y{XFap0xYo-YiEEE;cJxYluw1ejKuInd?JPN@&S?RkGazH#LE zuK?1FE_-)`WU*34-ty? zn%y(p^FlvXw>$qv^2&!r)#R9&fgCGcma%XL z_QT5|+{M^htb0Cpz{r?^!l6;8_Tt^O8O^n~GuA4WHGcmYZ?$#Ei`#36y{6(`kW~E! zov2dvsBPwyH9cG0w)bIX@#Z(YZ80e~W~^Q)F+8J4Mjh#$e{<|! zXmvJMAk&JeTouk?M~R(O!LNZihKlMEq&xfmNnL-T@C06k$ZZy@^*L?7#ywYsh=uIZ zBh);eXE8S7dDnqo@F=B=dl=mROFXo^HTHQ8luJo$#J?OVrUukEW=&%9*usTt@pi;pA~xPW)5b5x@_IQ}$TL4n zZa=Eo@5jUZMV#%;&Vj_ugAGw$vBT#UM9=*)_>oY`bK>!|Lz`Z zKT=x8HV$&vQ#5^y(%TFzSf9lkdaH~HuRy?UqOa`zTCGgLcZS->`P^)O8L%)bg`%e z8Hw*&!7Hfi-m|IPn@Y(Hs(w`Pjmb%MhcPKFElmb8LLf4PXxDV5EjnSOkU$kZH8CaLvpIB&A?Ky0vl zT3m9Iu%({x_gNz%vWsAMZ%n{4s>X^*%#k32J2 z;FGlfUC-0eJ7+~L16yT|&xBC5aEParg-uDQaqW)H!j;F$xkJFLTFcE%WFDw&iE|sliXd5B8oq|} zSH$_jcT%tLID74*sJ^Reyc3Zrl9UHIDWw@#K_8Qzo%Vg3#-``)Aa{c8>8rzkZM*PF z#_<(s^QTXGup|#?)c2=h)d}=w^5Hf z1@gKfDzecVet`qr9^)nnK77m~tV>I9fSJp8YY#Sq)uAKN!QL zE+@3zk%yW2gX<&3rgj<|yKgBIRlV32yd^I!_P(Y~D|X@N zLvQj0VL}A&wZz|ds;VZ!HQMdl2kp?XFa|y)4>9O$qpQM@8|apllmu2%Yh}=T`UI*o zLZZpLhw|$YP&7rkk@$7BHGplPAK5;g*kmVitszr%<_w|o2sfUNfR%3Wszdtp%5!mKL?02>@&@*{#CEuF6|iI+?w%i z`CcI}tamSYL|y;&hzBY0S4~Wl&M#Tm9c`7_<>G0 z%XIPbk|T^Q0FO~WlbVv%t6FG_GnqF#lm|?WjkRGdwKA-~lp>o=J!I2W#;7}TsiMd! zYSH;iii8V)8Ci?I%cmsM?diFKr}B4b_Il0rb=gwS8?2V0I{+BL*}BdZF;8q=8PB-z zN?D45Y1i_Ecxb|NOWpbzPo6xfPu|LGEsAC!Wc=W?s^y+&R?4!PuNrLR99jppeP%|7 z$j9D!=|;((X&CHdqfvE(3nyEmBr$u9{ioGf=9p7m&$zpz}ie3Wi= zmOo-{eh}Q>1GcSIErW+CA%gqUkIHA%9!o#UzWAK%AeeY)@HT_8txu0_D4z1}AM zGp+BuH=5>1FTCjXN^+4eYK~2!L|Rx~kFUD%cNO(@%Kr|n^sT;db{}}YkL!15HyO=2 zjE!`qsGH3?9Jo`LO?&M>x>Kq~daiRV&6%7msVcRxtWrQWScCu)5$<+F(r_<^dHgGS zJ{#(am|ktr?~gcb$!0&m=6R%vw0jM-Pa%QuwQ&;zfX#KZ(USJ{7`Ch0XQJ3wMhu~*-u}SUV{{5^dGwx+%yb`H8Aoeszi6(uRZ4WOuKfhx|mU-5(l*8!)D!+^T0rmFr zA3uC1cZOSo_KAm&Ed+?JJ4RAiqV}y?{@8c5>m^P1qJ}cs76WIC%Jw{vS_sdBz`(#E z$elud&LU+_HSp(7$ihsHzNhtQtta14{hY=%eY##n5`FiJV^|k7>`jBZ@4Gnt_S|4b zvTyzRb?cs~FMi`(zr*~5eJ7#Vg3W+;aPG{z0J@>u^sos?a!@Tb$nvI|N?HX?ts~(} zt4zPMA!J{(@;L9iI9@4{2(RdrF<4kwfZ|-p0Plu`FORM{Y;=yNFfcH1@O|-))6V2m z3oQ0~U+Uf70euTQbh|w5?9!$xP?6s51^JaeeZi+KYY8#Cvi zACNbvcp<>)m5Qp@(2bdUmxLg2W;X$;xdwIAS(#DCi&@OBCpURSMC(;^c%Uc&e3`i0 zJFl`M$4VVs)pPI95Tx% z3O|KecT0C-mS<~y{Wb8VseLcPe`;$@OoCfZUeI7I@~QCq;{1G{64Q_{QR557BqNV6 zFwF|n5evsd+0S-5iOv4gfeGvqmMicy29gE=NPwEx1@0Lnt8oa#aLFiKaJu2QE#c4Y zjd~I!vlB4X#ZTP9G}C4*P}S1Hm`Q=d8W5l{#K25kM zr!05R?uafVqg=AP+m3Th&@R8zxv8m1ereRFN;V)M;7-c@`weDAWba|?3ub?oNSL2* zIMN@{Ra<@(hR>dKN+NMSan&0A67c`ehl{|0R`uKcLW;uOWPfGnn#CI=K;gvSbw~Wl zxw*(X%T>bvct*{uF+*gO+2%F;u7w;#%-;Z@S4eMsWRi~+NduAc?8Zx6_owy)a&p@M zmhaD>KQTQ4v~};^y^8+(vc8^Y5fa|MJyW}=rO4IlO>1jT$vjp7b~u%1TBM<0o{#{~@~hJfK8=>Mf>XP+&rHC^Q+hSQ@qm8f_vEBvJ~#u6GD zN~r9LLj)4J8hnHsRrr`av*gCWL0LT8Hzu$e-FFf zc*G(AAYLO~F`$4om-Y~x_EIkiu$y%swz^|-@UV%=8H+{Gw%*{v345sP*SA2Cl2FHW z=_)X#ZIn5^Dj7VllxbCXYpvUU>~+4q0WA2~t1$^_kHJwKBU_QL#&!1lc zrY;LqKgst4D*`NvR35-V^K-pRpW*+z!Wy{+G0VF+??;S^0w3rd8X=ey<(t1F;D%I!_(s z7;ivk_`m@+!0Y76IAZV`7VOZ!UD=0@ML&i-PTSh9!OgdcQeC;n)^;;tm*NL2$Cvf> zDQHa$(~5GAS=~`^-GX!*b1=l%5M(N`+9%Ow^f+dCS$=u{>6MHW(s0|JgC~e|grV=_ z$0t^c-+A9U?t-rlVYP<=JJzgYdN>$m?Hc-!S*-j+y9;RycrHW_2je61j%7F$3DOJZ zV>u#qvf@V{m*e=hDD@JNk;!YZS*uADs~5O-*h0FSXZ?B@^SrQHnmtb1 z?fo_UKq{l~)~%P&n1Ny6Nl6}JpXKG}GZY8T$N+qAU(7ytPIa(3`62c>!l%ic1>Ap+ zXPZCH21Cs`X!PSpEyO$P8L|b8%IG5sp!xW39VHC&a3^fk*+`&ZI#yU#1}b6t1^XSA z+)5oj3UQV*A)S8q{5gx2l@;MBVsl2A}k;7`$qqZ&lQZ$wA$g@GB`piUos61wIp;kOIZuV?W5(*n{;z@WB> zDIah$QM)V`W(Vu5)Hka7%b_1K_$E~k>+;yGzjjNc-m3m?;^ZrkIFNc1JL5Z;!-gkL zTz+{P+CJRvryMZVN9dk@_;3o-N;B{&b8(>oo&Em(`#Y)=FWM}aZ*DLBLryN5fobJ< zgKV?mv12;k-n-CO*|K?aYK`=JbTrDp)omQ^t=a^;G?3&eQdTR4;b{cC(-UTjvJkzd z#~(BUhvZ{_zed^F5phXLThwOlwgi>9ygUJU{t;v2XJ}Dm*@Sc{gqW9jTp&inu=Mbn zQBzZETRJ-5I0A;2%c`^LZLz~)gR&WXF z-_f0e!&=Ly`l_n4a6grWS8J))7fs~fn4BuyF)=v_5n;9dvEU_T!b2XILHhti>Iudn zdPSszTet}YGQxOJQ85k*zoNn>>fEymtK+sAdJe-k0C4p?G?7VvJ$Jkb2 zwqPP!dM2W1{Wd?*41Z^w8Y{LS~IOH#aw7$%>BYBX5=hu3GByQR#Gj z2MHMpAuCLX2Q1FdaBO&jb6*d)eWXAqY<_ZBmSib?G6GlJK)%`_SHOP3zGA0w*)6 A(*OVf literal 46705 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

Vp@epsA1nH z6_oXOb!#+)xD5ko`?dp=Jv7uxTfdZh0&5@i&ZD} z715XdA0^Du$BsFfDTg?TI@Xfi+%NjAYdyh5f&NJn0fgC<|CC1T*D$~Z*+%NlPS{c4 z&Nc#H-Rit7D9^ZIgCS$`-`ad5yuUM??P4?b4dTi#A6Zz>eqVR?sP=Ej&%O4n|LW$W z!v?ipv~E_9xcM+)ecBr0+Ll|<-Y{G+7UWg{BguN^@!&z2;Ae}=|Lu`W$X_$35hWNK zx|w9f{`yz1e_P9@ZPT8h!ySFqh9$W@Zuf6!d8Q38tF}BfVWjvPJyt2(FraAMfz?8 zCsx+}k2AXMN1`T&%mdD@FJxL z+lI#q8NkVFJ1!5J{w~ooAr$gifM;XXyjJU-koSKMZlPFO>uJ1{pi`?MOIq_F)n#?$ z{DGw$R_NI=*|?g)hc^q%m}gZlEjIGGcQ=z>e`cojRa{c8%QdMxH_WG(xn|YWZu$

;9Ct#$|rPh&BC+n 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

@1~gG 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 D+QHxY diff --git a/doc/freqplot-siso_nichols-default.png b/doc/freqplot-siso_nichols-default.png new file mode 100644 index 0000000000000000000000000000000000000000..687afdd51f3c9de67078c5e56af0ac939c1af046 GIT binary patch literal 69964 zcmdSBX*iZ`8#a0yLP(M%vjz!?LP%zkBqUSj%po($JSG`Rs7xUwA*9Jnk`&35BvXb+ zNFw9fubyvx>-&DJA8Xsz`muU?dmC=<>$=YKJdS-j?kFwI6I*E6Xh|f}mXm7AIwTT# z5Q#)KNJE9c5pVzU4gV+Qp<>{1_L7Z9mE1i{m8^M|(>iFKah<`%BJ8gvEtL zg?Q{dJY3wR4;^y)pDz%;RJdrAhbydvU(V|Kk@Mj;+qc1%@?Sy{+&&b&4)vxg$e(GPUp7rKaSX)ln7B3ld{j zPR|bw)`dzgPh@B62G&{jr+F~ZQ&F%+ z1h@Y3?~vdb6Orpy;FcIg#(Dl}bf8rf9T^(Cyq!teVjv--kk zUtfM3PmgwyyuLUP$UU&~b#ZomWo9I5e|l}EQl!hz7vo9)>$~Ko`wBQXIJk_bd5;Mt zyfQpWJ%0D@-C5j`#Poce>@tnnQvJ?* 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 O4~5SRd4~7=jsF5upT@)h literal 0 HcmV?d00001 diff --git a/doc/plotting.rst b/doc/plotting.rst index f7734ed3e..be7ae7a55 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -202,6 +202,14 @@ function:: .. image:: freqplot-mimo_svplot-default.png +Different types of plots can also be specified for a given frequency +response. For example, to plot the frequency response using a a Nichols +plot, use `plot_type='nichols'`:: + + response.plot(plot_type='nichols') + +.. image:: freqplot-siso_nichols-default.png + Another response function that can be used to generate Bode plots is the :func:`~ct.gangof4` function, which computes the four primary sensitivity functions for a feedback control system in standard form:: @@ -247,7 +255,7 @@ Plotting functions ~control.bode_plot ~control.describing_function_plot - ~control.nyquist_plot + ~control.nichols_plot ~control.singular_values_plot ~control.time_response_plot From 9e326dda314b7ee5fd37c0f27cbcf17cfa4341f2 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 23 Jul 2023 14:41:40 -0700 Subject: [PATCH 0374/1025] add frequency_limit and line style processing + unit tests, fixes --- control/freqplot.py | 162 ++++++++++++++++++++------------- control/sisotool.py | 2 +- control/tests/freqplot_test.py | 73 +++++++++++++-- control/tests/nyquist_test.py | 17 +++- 4 files changed, 179 insertions(+), 75 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 0a8522437..b7f80c64a 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -7,14 +7,6 @@ # Nyquist plots and other frequency response plots. The code for Nichols # charts is in nichols.py. The code for pole-zero diagrams is in pzmap.py # and rlocus.py. -# -# Functionality to add/check (Jul 2023, working list) -# [?] Allow line colors/styles to be set in plot() command (also time plots) -# [ ] Get sisotool working in iPython and document how to make it work -# [ ] Allow use of subplot labels instead of output/input subtitles -# [i] Allow frequency range to be overridden in bode_plot -# [i] Unit tests for discrete time systems with different sample times -# [ ] Add unit tests for ct.config.defaults['freqplot_number_of_samples'] import numpy as np import matplotlib as mpl @@ -103,7 +95,7 @@ def bode_plot( overlay_outputs=None, overlay_inputs=None, phase_label=None, magnitude_label=None, display_margins=None, margins_method='best', legend_map=None, legend_loc=None, - sharex=None, sharey=None, title=None, relabel=True, **kwargs): + sharex=None, sharey=None, title=None, **kwargs): """Bode plot for a system. Plot the magnitude and phase of the frequency response over a @@ -116,7 +108,8 @@ def bode_plot( single system or frequency response can also be passed. omega : array_like, optoinal List of frequencies in rad/sec over to plot over. If not specified, - this will be determined from the proporties of the systems. + this will be determined from the proporties of the systems. Ignored + if `data` is not a list of systems. *fmt : :func:`matplotlib.pyplot.plot` format string, optional Passed to `matplotlib` as the format string for all lines in the plot. The `omega` parameter must be present (use omega=None if needed). @@ -147,16 +140,6 @@ def bode_plot( Other Parameters ---------------- - plot : bool, optional - (legacy) If given, `bode_plot` returns the legacy return values - of magnitude, phase, and frequency. If False, just return the - values with no plot. - omega_limits : array_like of two values - Limits of the to generate frequency vector. If Hz=True the limits - are in Hz otherwise in rad/s. - omega_num : int - Number of samples to plot. Defaults to - config.defaults['freqplot.number_of_samples']. grid : bool If True, plot grid lines on gain and phase plots. Default is set by `config.defaults['freqplot.grid']`. @@ -166,6 +149,20 @@ def bode_plot( 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. + 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. + omega_num : int + Number of samples to use for the frequeny range. Defaults to + config.defaults['freqplot.number_of_samples']. Ignore if data is + not a list of systems. + plot : bool, optional + (legacy) If given, `bode_plot` returns the legacy return values + of magnitude, phase, and frequency. If False, just return the + values with no plot. + rcParams : dict + Override the default parameters used for generating plots. + Default is set up config.default['freqplot.rcParams']. 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 @@ -220,7 +217,6 @@ def bode_plot( 'freqplot', 'wrap_phase', kwargs, _freqplot_defaults, pop=True) initial_phase = config._get_param( 'freqplot', 'initial_phase', kwargs, None, pop=True) - omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) freqplot_rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) @@ -262,7 +258,7 @@ def bode_plot( data = [data] # - # Pre-process the data to be plotted (unwrap phase) + # Pre-process the data to be plotted (unwrap phase, limit frequencies) # # To maintain compatibility with legacy uses of bode_plot(), we do some # initial processing on the data, specifically phase unwrapping and @@ -277,6 +273,17 @@ def bode_plot( data = frequency_response( data, omega=omega, omega_limits=omega_limits, omega_num=omega_num, Hz=Hz) + else: + # Generate warnings if frequency keywords were given + if omega_num is not None: + warnings.warn("`omega_num` ignored when passed response data") + elif omega is not None: + warnings.warn("`omega` ignored when passed response data") + + # Check to make sure omega_limits is sensible + if omega_limits is not None and \ + (len(omega_limits) != 2 or omega_limits[1] <= omega_limits[0]): + raise ValueError(f"invalid limits: {omega_limits=}") # If plot_phase is not specified, check the data first, otherwise true if plot_phase is None: @@ -288,7 +295,6 @@ def bode_plot( mag_data, phase_data, omega_data = [], [], [] for response in data: - phase = response.phase.copy() noutputs, ninputs = response.noutputs, response.ninputs if initial_phase is None: @@ -306,9 +312,9 @@ def bode_plot( raise ValueError("initial_phase must be a number.") # Reshape the phase to allow standard indexing - phase = phase.reshape((noutputs, ninputs, -1)) + phase = response.phase.copy().reshape((noutputs, ninputs, -1)) - # Shift and wrap + # Shift and wrap the phase for i, j in itertools.product(range(noutputs), range(ninputs)): # Shift the phase if needed if abs(phase[i, j, 0] - initial_phase_value) > math.pi: @@ -641,7 +647,7 @@ def _make_line_label(response, output_index, input_index): # Get the (pre-processed) data in fully indexed form mag = mag_data[index].reshape((noutputs, ninputs, -1)) phase = phase_data[index].reshape((noutputs, ninputs, -1)) - omega_sys, sysname = response.omega, response.sysname + omega_sys, sysname = omega_data[index], response.sysname for i, j in itertools.product(range(noutputs), range(ninputs)): # Get the axes to use for magnitude and phase @@ -831,21 +837,17 @@ def _make_line_label(response, output_index, input_index): for i in range(noutputs): for j in range(ninputs): + # Utility function to generate phase labels def gen_zero_centered_series(val_min, val_max, period): v1 = np.ceil(val_min / period - 0.2) v2 = np.floor(val_max / period + 0.2) return np.arange(v1, v2 + 1) * period - # TODO: put Nyquist lines here? - - # TODO: what is going on here - # TODO: fix to use less dense labels, when needed - # TODO: make sure turning sharey on and off makes labels come/go + # Label the phase axes using multiples of 45 degrees if plot_phase: ax_phase = ax_array[phase_map[i, j]] # Set the labels - # TODO: tighten up code if deg: ylim = ax_phase.get_ylim() num = np.floor((ylim[1] - ylim[0]) / 45) @@ -877,6 +879,11 @@ def gen_zero_centered_series(val_min, val_max, period): if share_frequency in [True, 'all', 'col']: ax_array[i, j].tick_params(labelbottom=False) + # If specific omega_limits were given, use them + if omega_limits is not None: + for i, j in itertools.product(range(nrows), range(ncols)): + ax_array[i, j].set_xlim(omega_limits) + # # Update the plot title (= figure suptitle) # @@ -895,7 +902,7 @@ def gen_zero_centered_series(val_min, val_max, period): else: title = data[0].title - if fig is not None and title is not 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 new_title = title @@ -1294,11 +1301,11 @@ def nyquist_response( # Determine the contour used to evaluate the Nyquist curve if sys.isdtime(strict=True): # Restrict frequencies for discrete-time systems - nyquistfrq = math.pi / sys.dt + nyq_freq = math.pi / sys.dt if not omega_range_given: # limit up to and including Nyquist frequency omega_sys = np.hstack(( - omega_sys[omega_sys < nyquistfrq], nyquistfrq)) + omega_sys[omega_sys < nyq_freq], nyq_freq)) # Issue a warning if we are sampling above Nyquist if np.any(omega_sys * sys.dt > np.pi) and warn_nyquist: @@ -1817,7 +1824,7 @@ def _parse_linestyle(style_name, allow_false=False): x, y = resp.real.copy(), resp.imag.copy() x[reg_mask] *= (1 + curve_offset[reg_mask]) y[reg_mask] *= (1 + curve_offset[reg_mask]) - p = plt.plot(x, y, linestyle='None', color=c, **kwargs) + p = plt.plot(x, y, linestyle='None', color=c) # Add arrows ax = plt.gca() @@ -2210,10 +2217,6 @@ def singular_values_plot( Hz : bool If True, plot frequency in Hz (omega must be provided in rad/sec). Default value (False) set by config.defaults['freqplot.Hz']. - plot : bool, optional - (legacy) If given, `singular_values_plot` returns the legacy return - values of magnitude, phase, and frequency. If False, just return - the values with no plot. 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. @@ -2233,6 +2236,26 @@ def singular_values_plot( omega : ndarray (or list of ndarray if len(data) > 1)) If plot=False, frequency in rad/sec (deprecated). + Other Parameters + ---------------- + grid : bool + If True, plot grid lines on gain and phase plots. Default is set by + `config.defaults['freqplot.grid']`. + 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. + omega_num : int + Number of samples to use for the frequeny range. Defaults to + config.defaults['freqplot.number_of_samples']. Ignore if data is + not a list of systems. + plot : bool, optional + (legacy) If given, `singular_values_plot` returns the legacy return + values of magnitude, phase, and frequency. If False, just return + the values with no plot. + rcParams : dict + Override the default parameters used for generating plots. + Default is set up config.default['freqplot.rcParams']. + """ # Keyword processing dB = config._get_param( @@ -2241,7 +2264,6 @@ def singular_values_plot( 'freqplot', 'Hz', kwargs, _freqplot_defaults, pop=True) grid = config._get_param( 'freqplot', 'grid', kwargs, _freqplot_defaults, pop=True) - omega_num = config._get_param('freqplot', 'number_of_samples', omega_num) freqplot_rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) @@ -2255,6 +2277,17 @@ def singular_values_plot( data, omega=omega, omega_limits=omega_limits, omega_num=omega_num) else: + # Generate warnings if frequency keywords were given + if omega_num is not None: + warnings.warn("`omega_num` ignored when passed response data") + elif omega is not None: + warnings.warn("`omega` ignored when passed response data") + + # Check to make sure omega_limits is sensible + if omega_limits is not None and \ + (len(omega_limits) != 2 or omega_limits[1] <= omega_limits[0]): + raise ValueError(f"invalid limits: {omega_limits=}") + responses = data # Process (legacy) plot keyword @@ -2308,48 +2341,49 @@ def singular_values_plot( # Create a list of lines for the output out = np.empty(len(data), dtype=object) + # Plot the singular values for each response for idx_sys, response in enumerate(responses): sigma = sigmas[idx_sys].transpose() # frequency first for plotting - omega_sys = omegas[idx_sys] + omega = omegas[idx_sys] / (2 * math.pi) if Hz else omegas[idx_sys] + if response.isdtime(strict=True): - nyquistfrq = math.pi / response.dt + nyq_freq = (0.5/response.dt) if Hz else (math.pi/response.dt) else: - nyquistfrq = None + nyq_freq = None - color = color_cycle[(idx_sys + color_offset) % len(color_cycle)] - color = kwargs.pop('color', color) - - # TODO: copy from above - nyquistfrq_plot = None - if Hz: - omega_plot = omega_sys / (2. * math.pi) - if nyquistfrq: - nyquistfrq_plot = nyquistfrq / (2. * math.pi) + # See if the color was specified, otherwise rotate + if kwargs.get('color', None) or any( + [isinstance(arg, str) and + any([c in arg for c in "bgrcmykw#"]) for arg in fmt]): + color_arg = {} # color set by *fmt, **kwargs else: - omega_plot = omega_sys - if nyquistfrq: - nyquistfrq_plot = nyquistfrq - sigma_plot = sigma + color_arg = {'color': color_cycle[ + (idx_sys + color_offset) % len(color_cycle)]} # Decide on the system name sysname = response.sysname if response.sysname is not None \ else f"Unknown-{idx_sys}" + # Plot the data if dB: with plt.rc_context(freqplot_rcParams): out[idx_sys] = ax_sigma.semilogx( - omega_plot, 20 * np.log10(sigma_plot), *fmt, color=color, - label=sysname, **kwargs) + omega, 20 * np.log10(sigma), *fmt, + label=sysname, **color_arg, **kwargs) else: with plt.rc_context(freqplot_rcParams): out[idx_sys] = ax_sigma.loglog( - omega_plot, sigma_plot, color=color, label=sysname, - *fmt, **kwargs) + omega, sigma, label=sysname, *fmt, **color_arg, **kwargs) - if nyquistfrq_plot is not None: + # Plot the Nyquist frequency + if nyq_freq is not None: ax_sigma.axvline( - nyquistfrq_plot, color=color, linestyle='--', - label='_nyq_freq_' + sysname) + nyq_freq, linestyle='--', label='_nyq_freq_' + sysname, + **color_arg) + + # If specific omega_limits were given, use them + if omega_limits is not None: + ax_sigma.set_xlim(omega_limits) # Add a grid to the plot + labeling if grid: diff --git a/control/sisotool.py b/control/sisotool.py index f059c0af3..9af5268b9 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -149,7 +149,7 @@ def _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect=None): # Update the bodeplot bode_plot_params['data'] = frequency_response(sys_loop*K.real) - bode_plot(**bode_plot_params) + bode_plot(**bode_plot_params, title=False) # Set the titles and labels ax_mag.set_title('Bode magnitude',fontsize = title_font_size) diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index f064b1315..5383f28a7 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -147,7 +147,28 @@ def test_manual_response_limits(): assert axs[0, 0].get_ylim() != axs[2, 0].get_ylim() assert axs[1, 0].get_ylim() != axs[3, 0].get_ylim() - # TODO: finish writing tests + +@pytest.mark.parametrize( + "plt_fcn", [ct.bode_plot, ct.nichols_plot, ct.singular_values_plot]) +def test_line_styles(plt_fcn): + # Define a couple of systems for testing + sys1 = ct.tf([1], [1, 2, 1], name='sys1') + sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') + sys3 = ct.tf([0.2, 0.1], [1, 0.1, 0.3, 0.1, 0.1], name='sys3') + + # Create a plot for the first system, with custom styles + lines_default = plt_fcn(sys1) + + # Now create a plot using *fmt customization + lines_fmt = plt_fcn(sys2, None, 'r--') + assert lines_fmt.reshape(-1)[0][0].get_color() == 'r' + assert lines_fmt.reshape(-1)[0][0].get_linestyle() == '--' + + # Add a third plot using keyword customization + lines_kwargs = plt_fcn(sys3, color='g', linestyle=':') + assert lines_kwargs.reshape(-1)[0][0].get_color() == 'g' + assert lines_kwargs.reshape(-1)[0][0].get_linestyle() == ':' + def test_basic_freq_plots(savefigs=False): # Basic SISO Bode plot @@ -203,6 +224,7 @@ def test_gangof4_plots(savefigs=False): if savefigs: plt.savefig('freqplot-gangof4.png') + @pytest.mark.parametrize("response_cmd, return_type", [ (ct.frequency_response, ct.FrequencyResponseData), (ct.nyquist_response, ct.freqplot.NyquistResponseData), @@ -298,11 +320,50 @@ def test_freqplot_plot_type(plot_type): else: assert lines.shape == (1, ) - -def test_bode_errors(): - # Turning off both magnitude and phase - with pytest.raises(ValueError, match="no data to plot"): - ct.bode_plot(manual_response, plot_magnitude=False, plot_phase=False) +@pytest.mark.parametrize("plt_fcn", [ct.bode_plot, ct.singular_values_plot]) +def test_freqplot_omega_limits(plt_fcn): + # Utility function to check visible limits + def _get_visible_limits(ax): + xticks = np.array(ax.get_xticks()) + limits = ax.get_xlim() + return np.array([min(xticks[xticks >= limits[0]]), + max(xticks[xticks <= limits[1]])]) + + # Generate a test response with a fixed set of limits + response = ct.singular_values_response( + 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) + 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) + np.testing.assert_allclose( + _get_visible_limits(ax.reshape(-1)[0]), np.array([1, 100])) + + +@pytest.mark.parametrize("plt_fcn", [ct.bode_plot, ct.singular_values_plot]) +def test_freqplot_errors(plt_fcn): + if plt_fcn == ct.bode_plot: + # Turning off both magnitude and phase + with pytest.raises(ValueError, match="no data to plot"): + ct.bode_plot( + manual_response, plot_magnitude=False, plot_phase=False) + + # Specifying frequency parameters with response data + response = ct.singular_values_response(ct.rss(2, 1, 1)) + with pytest.warns(UserWarning, match="`omega_num` ignored "): + plt_fcn(response, omega_num=100) + with pytest.warns(UserWarning, match="`omega` ignored "): + plt_fcn(response, omega=np.logspace(-2, 2)) + + # Bad frequency limits + with pytest.raises(ValueError, match="invalid limits"): + plt_fcn(response, omega_limits=[1e2, 1e-2]) if __name__ == "__main__": diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index 18d7e8fb1..1100eb01e 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -359,11 +359,20 @@ def test_nyquist_exceptions(): def test_linestyle_checks(): - sys = ct.rss(2, 1, 1) + sys = ct.tf([100], [1, 1, 1]) + + # Set the line styles + lines = ct.nyquist_plot( + sys, primary_style=[':', ':'], mirror_style=[':', ':']) + assert all([line.get_linestyle() == ':' for line in lines[0]]) + + # Set the line colors + lines = ct.nyquist_plot(sys, color='g') + assert all([line.get_color() == 'g' for line in lines[0]]) - # Things that should work - ct.nyquist_plot(sys, primary_style=['-', '-'], mirror_style=['-', '-']) - ct.nyquist_plot(sys, mirror_style=None) + # Turn off the mirror image + lines = ct.nyquist_plot(sys, mirror_style=False) + assert lines[0][2:] == [None, None] with pytest.raises(ValueError, match="invalid 'primary_style'"): ct.nyquist_plot(sys, primary_style=False) From 8e84d002e7f5fee85ecfa2ef8b71b9bfe7467a67 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 2 Aug 2023 21:39:25 -0700 Subject: [PATCH 0375/1025] code style and docstring tweaks --- control/freqplot.py | 14 ++++++-------- control/lti.py | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index b7f80c64a..164ec28a2 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -1166,14 +1166,11 @@ def nyquist_response( sysdata : LTI or list of LTI List of linear input/output systems (single system is OK). Nyquist curves for each system are plotted on the same graph. - omega : array_like, optional Set of frequencies to be evaluated, in rad/sec. - omega_limits : array_like of two values, optional Limits to the range of frequencies. Ignored if omega is provided, and auto-generated if omitted. - omega_num : int, optional Number of frequency samples to plot. Defaults to config.defaults['freqplot.number_of_samples']. @@ -1182,8 +1179,8 @@ def nyquist_response( ------- responses : list of :class:`~control.NyquistResponseData` For each system, a Nyquist response data object is returned. If - sysdata is a single system, a single elemeent is returned (not a list). - For each response, the following information is available: + `sysdata` is a single system, a single elemeent is returned (not a + list). For each response, the following information is available: response.count : int Number of encirclements of the point -1 by the Nyquist curve. If multiple systems are given, an array of counts is returned. @@ -1742,7 +1739,8 @@ def _parse_linestyle(style_name, allow_false=False): warn_encirclements=kwargs.pop('warn_encirclements', True), warn_nyquist=kwargs.pop('warn_nyquist', True), check_kwargs=False, **kwargs) - else: nyquist_responses = data + else: + nyquist_responses = data # Legacy return value processing if plot is not None or return_contour is not None: @@ -2130,8 +2128,8 @@ def singular_values_response( Parameters ---------- - sys : (list of) LTI systems - List of linear systems (single system is OK). + sysdata : LTI or list of LTI + List of linear input/output systems (single system is OK). omega : array_like List of frequencies in rad/sec to be used for frequency response. omega_limits : array_like of two values diff --git a/control/lti.py b/control/lti.py index e74563c49..cccb44a63 100644 --- a/control/lti.py +++ b/control/lti.py @@ -382,7 +382,7 @@ def frequency_response( Parameters ---------- - sysdata: LTI system or list of LTI systems + sysdata : LTI system or list of LTI systems Linear system(s) for which frequency response is computed. omega : float or 1D array_like, optional A list of frequencies in radians/sec at which the system should be From 21d00432a942158acf0f81afa5fae29b2592bde6 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 10 Sep 2023 14:56:51 -0700 Subject: [PATCH 0376/1025] allow create_statefbk_iosystem to use iosys, pass through keywords in create_mpc_iosystem --- control/iosys.py | 5 +++++ control/optimal.py | 17 ++++++++++---- control/statefbk.py | 41 +++++++++++++++++++++++++++++++--- control/tests/optimal_test.py | 10 ++++++++- control/tests/statefbk_test.py | 20 ++++++++++++----- 5 files changed, 80 insertions(+), 13 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 53cda7d19..52262250d 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -127,6 +127,11 @@ def __init__( if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) + # Keep track of the keywords that we recognize + kwargs_list = [ + 'name', 'inputs', 'outputs', 'states', 'input_prefix', + 'output_prefix', 'state_prefix', 'dt'] + # # Functions to manipulate the system name # diff --git a/control/optimal.py b/control/optimal.py index 8b7a54713..2cafe3d09 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -1123,8 +1123,9 @@ def create_mpc_iosystem( List of constraints that should hold at the end of the trajectory. Same format as `constraints`. - kwargs : dict, optional - Additional parameters (passed to :func:`scipy.optimal.minimize`). + **kwargs + Additional parameters, passed to :func:`scipy.optimal.minimize` and + :class:`NonlinearIOSystem`. Returns ------- @@ -1149,14 +1150,22 @@ def create_mpc_iosystem( :func:`OptimalControlProblem` for more information. """ + from .iosys import InputOutputSystem + + # Grab the keyword arguments known by this function + iosys_kwargs = {} + for kw in InputOutputSystem.kwargs_list: + if kw in kwargs: + iosys_kwargs[kw] = kwargs.pop(kw) + # Set up the optimal control problem ocp = OptimalControlProblem( sys, timepts, cost, trajectory_constraints=constraints, terminal_cost=terminal_cost, terminal_constraints=terminal_constraints, - log=log, kwargs_check=False, **kwargs) + log=log, **kwargs) # Return an I/O system implementing the model predictive controller - return ocp.create_mpc_iosystem(**kwargs) + return ocp.create_mpc_iosystem(**iosys_kwargs) # diff --git a/control/statefbk.py b/control/statefbk.py index 43cdbdf23..a29e86ef7 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -613,7 +613,7 @@ def create_statefbk_iosystem( The I/O system that represents the process dynamics. If no estimator is given, the output of this system should represent the full state. - gain : ndarray or tuple + gain : ndarray, tuple, or I/O system If an array is given, it represents the state feedback gain (`K`). This matrix defines the gains to be applied to the system. If `integral_action` is None, then the dimensions of this array @@ -627,6 +627,9 @@ def create_statefbk_iosystem( gains are computed. The `gainsched_indices` parameter should be used to specify the scheduling variables. + If an I/O system is given, the error e = x - xd is passed to the + system and the output is used as the feedback compensation term. + xd_labels, ud_labels : str or list of str, optional Set the name of the signals to use for the desired state and inputs. If a single string is specified, it should be a format @@ -813,7 +816,15 @@ def create_statefbk_iosystem( # Stack gains and points if past as a list gains = np.stack(gains) points = np.stack(points) - gainsched=True + gainsched = True + + elif isinstance(gain, NonlinearIOSystem): + if controller_type not in ['iosystem', None]: + raise ControlArgument( + f"incompatible controller type '{controller_type}'") + fbkctrl = gain + controller_type = 'iosystem' + gainsched = False else: raise ControlArgument("gain must be an array or a tuple") @@ -825,7 +836,7 @@ def create_statefbk_iosystem( " gain scheduled controller") elif controller_type is None: controller_type = 'nonlinear' if gainsched else 'linear' - elif controller_type not in {'linear', 'nonlinear'}: + elif controller_type not in {'linear', 'nonlinear', 'iosystem'}: raise ControlArgument(f"unknown controller_type '{controller_type}'") # Figure out the labels to use @@ -919,6 +930,30 @@ def _control_output(t, states, inputs, params): _control_update, _control_output, name=name, inputs=inputs, outputs=outputs, states=states, params=params) + elif controller_type == 'iosystem': + # Use the passed system to compute feedback compensation + def _control_update(t, states, inputs, params): + # Split input into desired state, nominal input, and current state + xd_vec = inputs[0:sys_nstates] + x_vec = inputs[-sys_nstates:] + + # Compute the integral error in the xy coordinates + return fbkctrl.updfcn(t, states, (x_vec - xd_vec), params) + + def _control_output(t, states, inputs, params): + # Split input into desired state, nominal input, and current state + xd_vec = inputs[0:sys_nstates] + ud_vec = inputs[sys_nstates:sys_nstates + sys_ninputs] + x_vec = inputs[-sys_nstates:] + + # Compute the control law + return ud_vec + fbkctrl.outfcn(t, states, (x_vec - xd_vec), params) + + # TODO: add a way to pass parameters + ctrl = NonlinearIOSystem( + _control_update, _control_output, name=name, inputs=inputs, + outputs=outputs, states=fbkctrl.state_labels, dt=fbkctrl.dt) + elif controller_type == 'linear' or controller_type is None: # Create the matrices implementing the controller if isctime(sys): diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index 0ee4b7dfe..d4a2b1d8c 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -238,6 +238,14 @@ def test_mpc_iosystem_rename(): assert mpc_relabeled.state_labels == state_relabels assert mpc_relabeled.name == 'mpc_relabeled' + # Change the optimization parameters (check by passing bad value) + mpc_custom = opt.create_mpc_iosystem( + sys, timepts, cost, minimize_method='unknown') + with pytest.raises(ValueError, match="Unknown solver unknown"): + # Optimization problem is implicit => check that an error is generated + mpc_custom.updfcn( + 0, np.zeros(mpc_custom.nstates), np.zeros(mpc_custom.ninputs), {}) + # Make sure that unknown keywords are caught # Unrecognized arguments with pytest.raises(TypeError, match="unrecognized keyword"): @@ -659,7 +667,7 @@ def final_point_eval(x, u): "method, npts, initial_guess, fail", [ ('shooting', 3, None, 'xfail'), # doesn't converge ('shooting', 3, 'zero', 'xfail'), # doesn't converge - ('shooting', 3, 'u0', None), # github issue #782 + # ('shooting', 3, 'u0', None), # github issue #782 ('shooting', 3, 'input', 'endpoint'), # doesn't converge to optimal ('shooting', 5, 'input', 'endpoint'), # doesn't converge to optimal ('collocation', 3, 'u0', 'endpoint'), # doesn't converge to optimal diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index dc72c0723..4c5fc3c17 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -506,6 +506,7 @@ def test_lqr_discrete(self): (2, 0, 1, 0, 'nonlinear'), (4, 0, 2, 2, 'nonlinear'), (4, 3, 2, 2, 'nonlinear'), + (2, 0, 1, 0, 'iosystem'), ]) def test_statefbk_iosys( self, nstates, ninputs, noutputs, nintegrators, type_): @@ -551,17 +552,26 @@ def test_statefbk_iosys( K, _, _ = ct.lqr(aug, np.eye(nstates + nintegrators), np.eye(ninputs)) Kp, Ki = K[:, :nstates], K[:, nstates:] - # Create an I/O system for the controller - ctrl, clsys = ct.create_statefbk_iosystem( - sys, K, integral_action=C_int, estimator=est, - controller_type=type_, name=type_) + if type_ == 'iosystem': + # Create an I/O system for the controller + A_fbk = np.zeros((nintegrators, nintegrators)) + B_fbk = np.eye(nintegrators, sys.nstates) + fbksys = ct.ss(A_fbk, B_fbk, -Ki, -Kp) + ctrl, clsys = ct.create_statefbk_iosystem( + sys, fbksys, integral_action=C_int, estimator=est, + controller_type=type_, name=type_) + + else: + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, integral_action=C_int, estimator=est, + controller_type=type_, name=type_) # Make sure the name got set correctly if type_ is not None: assert ctrl.name == type_ # If we used a nonlinear controller, linearize it for testing - if type_ == 'nonlinear': + if type_ == 'nonlinear' or type_ == 'iosystem': clsys = clsys.linearize(0, 0) # Make sure the linear system elements are correct From 5729b220a21f56dfd83bd815655faabab05751b9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 10 Sep 2023 15:53:40 -0700 Subject: [PATCH 0377/1025] add unit test for statefbk w/ iosystem and integrator --- control/tests/statefbk_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 4c5fc3c17..d605c9be7 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -507,6 +507,7 @@ def test_lqr_discrete(self): (4, 0, 2, 2, 'nonlinear'), (4, 3, 2, 2, 'nonlinear'), (2, 0, 1, 0, 'iosystem'), + (2, 0, 1, 1, 'iosystem'), ]) def test_statefbk_iosys( self, nstates, ninputs, noutputs, nintegrators, type_): From a40906e17e215c45e8abb2d442244caaa567a949 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 15 Sep 2023 21:24:54 -0700 Subject: [PATCH 0378/1025] add documentation for discrete time optimal control problems --- control/optimal.py | 59 +++++++++++++++++++++++++++++++++++----------- doc/optimal.rst | 7 ++++++ 2 files changed, 52 insertions(+), 14 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 2cafe3d09..811c8e518 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -66,7 +66,7 @@ class OptimalControlProblem(): `(fun, lb, ub)`. The constraints will be applied at each time point along the trajectory. terminal_cost : callable, optional - Function that returns the terminal cost given the current state + Function that returns the terminal cost given the final state and input. Called as terminal_cost(x, u). trajectory_method : string, optional Method to use for carrying out the optimization. Currently supported @@ -287,12 +287,16 @@ def __init__( # time point and we use a trapezoidal approximation to compute the # integral cost, then add on the terminal cost. # - # For shooting methods, given the input U = [u[0], ... u[N]] we need to + # For shooting methods, given the input U = [u[t_0], ... u[t_N]] we need to # compute the cost of the trajectory generated by that input. This # means we have to simulate the system to get the state trajectory X = - # [x[0], ..., x[N]] and then compute the cost at each point: + # [x[t_0], ..., x[t_N]] and then compute the cost at each point: # - # cost = sum_k integral_cost(x[k], u[k]) + terminal_cost(x[N], u[N]) + # cost = sum_k integral_cost(x[t_k], u[t_k]) + # + terminal_cost(x[t_N], u[t_N]) + # + # The actual calculation is a bit more complex: for continuous time + # systems, we use a trapezoidal approximation for the integral cost. # # The initial state used for generating the simulation is stored in the # class parameter `x` prior to calling the optimization algorithm. @@ -325,8 +329,8 @@ def _cost_function(self, coeffs): # Sum the integral cost over the time (second) indices # cost += self.integral_cost(states[:,i], inputs[:,i]) cost = sum(map( - self.integral_cost, np.transpose(states[:, :-1]), - np.transpose(inputs[:, :-1]))) + self.integral_cost, states[:, :-1].transpose(), + inputs[:, :-1].transpose())) # Terminal cost if self.terminal_cost is not None: @@ -954,7 +958,22 @@ def solve_ocp( transpose=None, return_states=True, print_summary=True, log=False, **kwargs): - """Compute the solution to an optimal control problem + """Compute the solution to an optimal control problem. + + The optimal trajectory (states and inputs) is computed so as to + approximately mimimize a cost function of the following form (for + continuous time systems): + + J(x(.), u(.)) = \int_0^T L(x(t), u(t)) dt + V(x(T)), + + where T is the time horizon. + + Discrete time systems use a similar formulation, with the integral + replaced by a sum: + + J(x[.], u[.]) = \sum_0^{N-1} L(x_k, u_k) + V(x_N), + + where N is the time horizon (corresponding to timepts[-1]). Parameters ---------- @@ -968,7 +987,7 @@ def solve_ocp( Initial condition (default = 0). cost : callable - Function that returns the integral cost given the current state + Function that returns the integral cost (L) given the current state and input. Called as `cost(x, u)`. trajectory_constraints : list of tuples, optional @@ -990,8 +1009,10 @@ def solve_ocp( The constraints are applied at each time point along the trajectory. terminal_cost : callable, optional - Function that returns the terminal cost given the current state - and input. Called as terminal_cost(x, u). + Function that returns the terminal cost (V) given the final state + and input. Called as terminal_cost(x, u). (For compatibility with + the form of the cost function, u is passed even though it is often + not part of the terminal cost.) terminal_constraints : list of tuples, optional List of constraints that should hold at the end of the trajectory. @@ -1044,9 +1065,19 @@ def solve_ocp( Notes ----- - Additional keyword parameters can be used to fine-tune the behavior of - the underlying optimization and integration functions. See - :func:`OptimalControlProblem` for more information. + 1. For discrete time systems, the final value of the timepts vector + specifies the final time t_N, and the trajectory cost is computed + from time t_0 to t_{N-1}. Note that the input u_N does not affect + the state x_N and so it should always be returned as 0. Further, if + neither a terminal cost nor a terminal constraint is given, then the + input at time point t_{N-1} does not affect the cost function and + hence u_{N-1} will also be returned as zero. If you want the + trajectory cost to include state costs at time t_{N}, then you can + set `terminal_cost` to be the same function as `cost`. + + 2. Additional keyword parameters can be used to fine-tune the behavior + of the underlying optimization and integration functions. See + :func:`OptimalControlProblem` for more information. """ # Process keyword arguments @@ -1116,7 +1147,7 @@ def create_mpc_iosystem( See :func:`~control.optimal.solve_ocp` for more details. terminal_cost : callable, optional - Function that returns the terminal cost given the current state + Function that returns the terminal cost given the final state and input. Called as terminal_cost(x, u). terminal_constraints : list of tuples, optional diff --git a/doc/optimal.rst b/doc/optimal.rst index dc6d3a45b..5f5f7678c 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -65,6 +65,13 @@ can be on the input, the state, or combinations of input and state, depending on the form of :math:`g_i`. Furthermore, these constraints are intended to hold at all instants in time along the trajectory. +For a discrete time system, the same basic formulation applies except +that the cost function is given by + +.. math:: + + J(x, u) = \sum_{k=0}^{N-1} L(x_k, u_k)\, dt + V \bigl( x_N \bigr). + A common use of optimization-based control techniques is the implementation of model predictive control (also called receding horizon control). In model predictive control, a finite horizon optimal control problem is solved, From 7abb6e9e9cb0a3ab5d42871bc0f08f4952d76bf5 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 21 Oct 2023 21:57:04 -0700 Subject: [PATCH 0379/1025] small doc fix as pointed out by @sawyerfuller --- doc/optimal.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/optimal.rst b/doc/optimal.rst index 5f5f7678c..4df8d4861 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -70,7 +70,7 @@ that the cost function is given by .. math:: - J(x, u) = \sum_{k=0}^{N-1} L(x_k, u_k)\, dt + V \bigl( x_N \bigr). + J(x, u) = \sum_{k=0}^{N-1} L(x_k, u_k)\, dt + V(x_N). A common use of optimization-based control techniques is the implementation of model predictive control (also called receding horizon control). In From 5e217ee7316771e698722cb42ace5bba8b35b5b9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 21 Oct 2023 22:20:48 -0700 Subject: [PATCH 0380/1025] set python version in .github/workflows/install_examples.yml --- .github/workflows/install_examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/install_examples.yml b/.github/workflows/install_examples.yml index a9a88eb78..a2190e0fb 100644 --- a/.github/workflows/install_examples.yml +++ b/.github/workflows/install_examples.yml @@ -18,7 +18,7 @@ jobs: --channel conda-forge \ --strict-channel-priority \ --quiet --yes \ - pip setuptools setuptools-scm \ + python=3.11 pip \ numpy matplotlib scipy \ slycot pmw jupyter From fe8888f94e2f126599cc28dfdec22926f0b28984 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 21 Oct 2023 22:48:58 -0700 Subject: [PATCH 0381/1025] add unit test illustrating issue #935 + add keyword for tf2ss --- control/statesp.py | 22 +++++++++++++++------- control/tests/statesp_test.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index 38dd2388d..8ec7f0fc4 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -60,7 +60,7 @@ from scipy.signal import StateSpace as signalStateSpace from warnings import warn -from .exception import ControlSlycot +from .exception import ControlSlycot, slycot_check from .frdata import FrequencyResponseData from .lti import LTI, _process_frequency_response from .iosys import InputOutputSystem, common_timebase, isdtime, \ @@ -1615,10 +1615,13 @@ def ss(*args, **kwargs): warn("state labels specified for " "non-unique state space realization") + # Allow method to be specified (eg, tf2ss) + method = kwargs.pop('method', None) + # Create a state space system from an LTI system sys = StateSpace( _convert_to_statespace( - sys, + sys, method=method, use_prefix_suffix=not sys._generic_name_check()), **kwargs) @@ -2189,7 +2192,7 @@ def _f2s(f): return s -def _convert_to_statespace(sys, use_prefix_suffix=False): +def _convert_to_statespace(sys, use_prefix_suffix=False, method=None): """Convert a system to state space form (if needed). If sys is already a state space, then it is returned. If sys is a @@ -2213,13 +2216,17 @@ def _convert_to_statespace(sys, use_prefix_suffix=False): raise ValueError("transfer function is non-proper; can't " "convert to StateSpace system") - try: + if method is None and slycot_check() or method == 'slycot': + if not slycot_check(): + raise ValueError("method='slycot' requires slycot") + from slycot import td04ad # Change the numerator and denominator arrays so that the transfer # function matrix has a common denominator. # matrices are also sized/padded to fit td04ad num, den, denorder = sys.minreal()._common_den() + num, den, denorder = sys._common_den() # transfer function to state space conversion now should work! ssout = td04ad('C', sys.ninputs, sys.noutputs, @@ -2230,9 +2237,8 @@ def _convert_to_statespace(sys, use_prefix_suffix=False): ssout[1][:states, :states], ssout[2][:states, :sys.ninputs], ssout[3][:sys.noutputs, :states], ssout[4], sys.dt) - except ImportError: - # No Slycot. Scipy tf->ss can't handle MIMO, but static - # MIMO is an easy special case we can check for here + elif method in [None, 'scipy']: + # Scipy tf->ss can't handle MIMO, but SISO is OK maxn = max(max(len(n) for n in nrow) for nrow in sys.num) maxd = max(max(len(d) for d in drow) @@ -2250,6 +2256,8 @@ def _convert_to_statespace(sys, use_prefix_suffix=False): A, B, C, D = \ sp.signal.tf2ss(squeeze(sys.num), squeeze(sys.den)) newsys = StateSpace(A, B, C, D, sys.dt) + else: + raise ValueError(f"unknown {method=}") # Copy over the signal (and system) names newsys._copy_names( diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 20fd62ca2..1c1a050aa 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -1203,3 +1203,37 @@ def test_params_warning(): sys.output(0, [0], [0], {'k': 5}) +# Check that tf2ss returns stable system (see issue #935) +@pytest.mark.parametrize("method", [ + # pytest.param(None), # use this one when SLICOT bug is sorted out + pytest.param( # remove this one when SLICOT bug is sorted out + None, marks=pytest.mark.xfail( + ct.slycot_check(), reason="tf2ss SLICOT bug")), + pytest.param( + 'slycot', marks=[ + pytest.mark.xfail( + not ct.slycot_check(), reason="slycot not installed"), + pytest.mark.xfail( # remove this one when SLICOT bug is sorted out + ct.slycot_check(), reason="tf2ss SLICOT bug")]), + pytest.param('scipy') +]) +def test_tf2ss_unstable(method): + num = np.array([ + 9.94004350e-13, 2.67602795e-11, 2.31058712e-10, 1.15119493e-09, + 5.04635153e-09, 1.34066064e-08, 2.11938725e-08, 2.39940325e-08, + 2.05897777e-08, 1.17092854e-08, 4.71236875e-09, 1.19497537e-09, + 1.90815347e-10, 1.00655454e-11, 1.47388887e-13, 8.40314881e-16, + 1.67195685e-18]) + den = np.array([ + 9.43513863e-11, 6.05312352e-08, 7.92752628e-07, 5.23764693e-06, + 1.82502556e-05, 1.24355899e-05, 8.68206174e-06, 2.73818482e-06, + 4.29133144e-07, 3.85554417e-08, 1.62631575e-09, 8.41098151e-12, + 9.85278302e-15, 4.07646645e-18, 5.55496497e-22, 3.06560494e-26, + 5.98908988e-31]) + + tf_sys = ct.tf(num, den) + ss_sys = ct.tf2ss(tf_sys, method=method) + + tf_poles = np.sort(tf_sys.poles()) + ss_poles = np.sort(ss_sys.poles()) + np.testing.assert_allclose(tf_poles, ss_poles, rtol=1e-4) From 2580d1862e5bbcb6b7d4e4ca03299332b0cf69db Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 22 Oct 2023 13:13:07 -0700 Subject: [PATCH 0382/1025] add some documentation and notes --- control/statesp.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/control/statesp.py b/control/statesp.py index 8ec7f0fc4..eb52e848e 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1583,6 +1583,13 @@ def ss(*args, **kwargs): -------- tf, ss2tf, tf2ss + Notes + ----- + If a transfer function is passed as the sole positional argument, the + system will be converted to state space form in the same way as calling + :func:`~control.tf2ss`. The `method` keyword can be used to select the + method for conversion. + Examples -------- Create a Linear I/O system object from matrices. @@ -1768,6 +1775,10 @@ def tf2ss(*args, **kwargs): name : string, optional System name. If unspecified, a generic name is generated with a unique integer id. + method : str, optional + Set the method used for computing the result. Current methods are + 'slycot' and 'scipy'. If set to None (default), try 'slycot' first + and then 'scipy' (SISO only). Raises ------ @@ -1784,6 +1795,13 @@ def tf2ss(*args, **kwargs): tf ss2tf + Notes + ----- + The ``slycot`` routine used to convert a transfer function into state + space form appears to have a bug and in some (rare) instances may not + return a system with the same poles as the input transfer function. + For SISO systems, setting ``method=scipy`` can be used as an alternative. + Examples -------- >>> num = [[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]]] From 31793e6d4a75faa9f81d730df5f100b4eb79ccd1 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 7 Nov 2023 22:17:59 -0800 Subject: [PATCH 0383/1025] updated MIMO not implemented w/ unit test, per @sawyerbfuller --- control/statesp.py | 9 +++++---- control/tests/convert_test.py | 4 ++-- control/tests/statesp_test.py | 12 ++++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/control/statesp.py b/control/statesp.py index eb52e848e..e14a8358a 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -60,10 +60,10 @@ from scipy.signal import StateSpace as signalStateSpace from warnings import warn -from .exception import ControlSlycot, slycot_check +from .exception import ControlSlycot, slycot_check, ControlMIMONotImplemented from .frdata import FrequencyResponseData from .lti import LTI, _process_frequency_response -from .iosys import InputOutputSystem, common_timebase, isdtime, \ +from .iosys import InputOutputSystem, common_timebase, isdtime, issiso, \ _process_iosys_keywords, _process_dt_keyword, _process_signal_list from .nlsys import NonlinearIOSystem, InterconnectedSystem from . import config @@ -2268,8 +2268,9 @@ def _convert_to_statespace(sys, use_prefix_suffix=False, method=None): D[i, j] = sys.num[i][j][0] / sys.den[i][j][0] newsys = StateSpace([], [], [], D, sys.dt) else: - if sys.ninputs != 1 or sys.noutputs != 1: - raise TypeError("No support for MIMO without slycot") + if not issiso(sys): + raise ControlMIMONotImplemented( + "MIMO system conversion not supported without Slycot") A, B, C, D = \ sp.signal.tf2ss(squeeze(sys.num), squeeze(sys.den)) diff --git a/control/tests/convert_test.py b/control/tests/convert_test.py index 14f3133e1..7975bbe5a 100644 --- a/control/tests/convert_test.py +++ b/control/tests/convert_test.py @@ -21,7 +21,7 @@ from control import rss, ss, ss2tf, tf, tf2ss from control.statefbk import ctrb, obsv from control.freqplot import bode -from control.exception import slycot_check +from control.exception import slycot_check, ControlMIMONotImplemented from control.tests.conftest import slycotonly @@ -167,7 +167,7 @@ def testConvertMIMO(self): # Convert to state space and look for an error if (not slycot_check()): - with pytest.raises(TypeError): + with pytest.raises(ControlMIMONotImplemented): tf2ss(tsys) else: ssys = tf2ss(tsys) diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 1c1a050aa..59f441456 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -1237,3 +1237,15 @@ def test_tf2ss_unstable(method): tf_poles = np.sort(tf_sys.poles()) ss_poles = np.sort(ss_sys.poles()) np.testing.assert_allclose(tf_poles, ss_poles, rtol=1e-4) + + +def test_tf2ss_mimo(): + sys_tf = ct.tf([[[1], [1, 1, 1]]], [[[1, 1, 1], [1, 2, 1]]]) + + if ct.slycot_check(): + sys_ss = ct.ss(sys_tf) + np.testing.assert_allclose( + np.sort(sys_tf.poles()), np.sort(sys_ss.poles())) + else: + with pytest.raises(ct.ControlMIMONotImplemented): + sys_ss = ct.ss(sys_tf) From d4a8a59a506c2c13458d33627e765eb89fe3cf23 Mon Sep 17 00:00:00 2001 From: urpok23 <70227979+urpok23@users.noreply.github.com> Date: Wed, 8 Nov 2023 20:53:59 +0300 Subject: [PATCH 0384/1025] vectorize cost calculation --- control/optimal.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/control/optimal.py b/control/optimal.py index 811c8e518..81372705c 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -319,11 +319,9 @@ def _cost_function(self, coeffs): dt = np.diff(self.timepts) # Integrate the cost - # TODO: vectorize - cost = 0 - for i in range(self.timepts.size-1): - # Approximate the integral using trapezoidal rule - cost += 0.5 * (costs[i] + costs[i+1]) * dt[i] + costs = np.array(costs) + # Approximate the integral using trapezoidal rule + cost = np.sum(0.5 * (costs[:-1] + costs[1:]) * dt) else: # Sum the integral cost over the time (second) indices From 5692317725ca5bf30560f738621a856f2347d0de Mon Sep 17 00:00:00 2001 From: Joshua Date: Sat, 25 Nov 2023 01:34:34 -0500 Subject: [PATCH 0385/1025] improved speed to construct observability matrix by reducing matrix exponentiation following the MATLAB implimentation of obsv --- control/statefbk.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index a29e86ef7..78fe50b97 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -1024,7 +1024,7 @@ def ctrb(A, B): return _ssmatrix(ctrb) -def obsv(A, C): +def obsv(A, C, t=None): """Observability matrix. Parameters @@ -1050,10 +1050,17 @@ def obsv(A, C): amat = _ssmatrix(A) cmat = _ssmatrix(C) n = np.shape(amat)[0] + + if t is None: + t = n # Construct the observability matrix - obsv = np.vstack([cmat] + [cmat @ np.linalg.matrix_power(amat, i) - for i in range(1, n)]) + obsv = np.zeros((t * ny, n)) + obsv[:ny, :] = c + + for k in range(1, t): + obsv[k * ny:(k + 1) * ny, :] = np.dot(obsv[(k - 1) * ny:k * ny, :], a) + return _ssmatrix(obsv) From 95ab229ff4a92aa782abe0bdd554f039ce3756e3 Mon Sep 17 00:00:00 2001 From: Joshua Date: Sat, 25 Nov 2023 01:42:07 -0500 Subject: [PATCH 0386/1025] improved time to create controllability matrix, fix to obsv function + parameters --- control/statefbk.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 78fe50b97..050b95dbe 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -990,13 +990,15 @@ def _control_output(t, states, inputs, params): return ctrl, closed -def ctrb(A, B): +def ctrb(A, B, t=None): """Controllabilty matrix. Parameters ---------- A, B : array_like or string Dynamics and input matrix of the system + t : None or integer + maximum time horizon of the controllability matrix, max = n Returns ------- @@ -1016,11 +1018,17 @@ def ctrb(A, B): amat = _ssmatrix(A) bmat = _ssmatrix(B) n = np.shape(amat)[0] + m = np.shape(bmat)[1] + + if t is None or t > n: + t = n # Construct the controllability matrix - ctrb = np.hstack( - [bmat] + [np.linalg.matrix_power(amat, i) @ bmat - for i in range(1, n)]) + ctrb = np.zeros((n, t * m)) + ctrb[:, :m] = cmat + for k in range(1, t): + ctrb[:, k * m:(k + 1) * m] = np.dot(amat, obsv[:, (k - 1) * m:k * m]) + return _ssmatrix(ctrb) @@ -1031,7 +1039,9 @@ def obsv(A, C, t=None): ---------- A, C : array_like or string Dynamics and output matrix of the system - + t : None or integer + maximum time horizon of the controllability matrix, max = n + Returns ------- O : 2D array (or matrix) @@ -1050,16 +1060,17 @@ def obsv(A, C, t=None): amat = _ssmatrix(A) cmat = _ssmatrix(C) n = np.shape(amat)[0] + p = np.shape(cmat)[0] - if t is None: + if t is None or t > n: t = n # Construct the observability matrix - obsv = np.zeros((t * ny, n)) - obsv[:ny, :] = c + obsv = np.zeros((t * p, n)) + obsv[:p, :] = cmat for k in range(1, t): - obsv[k * ny:(k + 1) * ny, :] = np.dot(obsv[(k - 1) * ny:k * ny, :], a) + obsv[k * p:(k + 1) * p, :] = np.dot(obsv[(k - 1) * p:k * p, :], amat) return _ssmatrix(obsv) From 7feeb2c964196cc0010251c908400adda2ec98d3 Mon Sep 17 00:00:00 2001 From: Joshua Date: Sat, 25 Nov 2023 01:52:45 -0500 Subject: [PATCH 0387/1025] fixed differentce between ctrb and obsv --- control/statefbk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 050b95dbe..97e419ade 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -1025,9 +1025,9 @@ def ctrb(A, B, t=None): # Construct the controllability matrix ctrb = np.zeros((n, t * m)) - ctrb[:, :m] = cmat + ctrb[:, :m] = bmat for k in range(1, t): - ctrb[:, k * m:(k + 1) * m] = np.dot(amat, obsv[:, (k - 1) * m:k * m]) + ctrb[:, k * m:(k + 1) * m] = np.dot(amat, ctrb[:, (k - 1) * m:k * m]) return _ssmatrix(ctrb) From bfc7e6b895bf8158627aea39b4c29d950c5e5c23 Mon Sep 17 00:00:00 2001 From: Joshua Pickard Date: Mon, 27 Nov 2023 15:04:29 -0500 Subject: [PATCH 0388/1025] Update control/statefbk.py Co-authored-by: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com> --- control/statefbk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/statefbk.py b/control/statefbk.py index 97e419ade..fb8b877c6 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -1027,7 +1027,7 @@ def ctrb(A, B, t=None): ctrb = np.zeros((n, t * m)) ctrb[:, :m] = bmat for k in range(1, t): - ctrb[:, k * m:(k + 1) * m] = np.dot(amat, ctrb[:, (k - 1) * m:k * m]) + ctrb[:, k * m:(k + 1) * m] = amat @ ctrb[:, (k - 1) * m:k * m] return _ssmatrix(ctrb) From 44d57ac92044f90fe6f8fe1a0ec541a02d3e47f6 Mon Sep 17 00:00:00 2001 From: Joshua Pickard Date: Mon, 27 Nov 2023 15:04:43 -0500 Subject: [PATCH 0389/1025] Update control/statefbk.py Co-authored-by: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com> --- control/statefbk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/statefbk.py b/control/statefbk.py index fb8b877c6..69a58708a 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -1070,7 +1070,7 @@ def obsv(A, C, t=None): obsv[:p, :] = cmat for k in range(1, t): - obsv[k * p:(k + 1) * p, :] = np.dot(obsv[(k - 1) * p:k * p, :], amat) + obsv[k * p:(k + 1) * p, :] = obsv[(k - 1) * p:k * p, :] @ amat return _ssmatrix(obsv) From cb4f7d90559a38a6b6a81de6c2c1267e06a6320f Mon Sep 17 00:00:00 2001 From: Joshua Date: Mon, 27 Nov 2023 15:05:52 -0500 Subject: [PATCH 0390/1025] changed doc string --- control/statefbk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 97e419ade..3d2ef6d9c 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -998,7 +998,7 @@ def ctrb(A, B, t=None): A, B : array_like or string Dynamics and input matrix of the system t : None or integer - maximum time horizon of the controllability matrix, max = n + maximum time horizon of the controllability matrix, max = A.shape[0] Returns ------- @@ -1040,7 +1040,7 @@ def obsv(A, C, t=None): A, C : array_like or string Dynamics and output matrix of the system t : None or integer - maximum time horizon of the controllability matrix, max = n + maximum time horizon of the controllability matrix, max = A.shape[0] Returns ------- From f8ba0d9caf54d41623118cfd48f8afe041b46b15 Mon Sep 17 00:00:00 2001 From: Joshua Date: Mon, 27 Nov 2023 15:25:42 -0500 Subject: [PATCH 0391/1025] test cases added for t < A.shape[0] --- control/statefbk.py | 4 ++-- control/tests/statefbk_test.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/control/statefbk.py b/control/statefbk.py index 5c4ad7659..3d2ef6d9c 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -1027,7 +1027,7 @@ def ctrb(A, B, t=None): ctrb = np.zeros((n, t * m)) ctrb[:, :m] = bmat for k in range(1, t): - ctrb[:, k * m:(k + 1) * m] = amat @ ctrb[:, (k - 1) * m:k * m] + ctrb[:, k * m:(k + 1) * m] = np.dot(amat, ctrb[:, (k - 1) * m:k * m]) return _ssmatrix(ctrb) @@ -1070,7 +1070,7 @@ def obsv(A, C, t=None): obsv[:p, :] = cmat for k in range(1, t): - obsv[k * p:(k + 1) * p, :] = obsv[(k - 1) * p:k * p, :] @ amat + obsv[k * p:(k + 1) * p, :] = np.dot(obsv[(k - 1) * p:k * p, :], amat) return _ssmatrix(obsv) diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index d605c9be7..cb677b40a 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -49,6 +49,14 @@ def testCtrbMIMO(self): Wc = ctrb(A, B) np.testing.assert_array_almost_equal(Wc, Wctrue) + def testCtrbT(self): + A = np.array([[1., 2.], [3., 4.]]) + B = np.array([[5., 6.], [7., 8.]]) + t = 1 + Wctrue = np.array([[5., 6.], [7., 8.]]) + Wc = ctrb(A, B, t=t) + np.testing.assert_array_almost_equal(Wc, Wctrue) + def testObsvSISO(self): A = np.array([[1., 2.], [3., 4.]]) C = np.array([[5., 7.]]) @@ -62,6 +70,14 @@ def testObsvMIMO(self): Wotrue = np.array([[5., 6.], [7., 8.], [23., 34.], [31., 46.]]) Wo = obsv(A, C) np.testing.assert_array_almost_equal(Wo, Wotrue) + + def testObsvT(self): + A = np.array([[1., 2.], [3., 4.]]) + C = np.array([[5., 6.], [7., 8.]]) + t = 1 + Wotrue = np.array([[5., 6.], [7., 8.]]) + Wo = obsv(A, C, t=t) + np.testing.assert_array_almost_equal(Wo, Wotrue) def testCtrbObsvDuality(self): A = np.array([[1.2, -2.3], [3.4, -4.5]]) From 6b19c2b1260b4b31b3382d36ab721b728f52cdd1 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 2 Dec 2023 17:40:46 -0800 Subject: [PATCH 0392/1025] fix sphinx bug (erroneous use of class template) --- doc/conventions.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/conventions.rst b/doc/conventions.rst index 8f4d86c7c..2844fd47a 100644 --- a/doc/conventions.rst +++ b/doc/conventions.rst @@ -139,7 +139,6 @@ state) response of an LTI systems: .. autosummary:: :toctree: generated/ - :template: custom-class-template.rst initial_response step_response From a57bb4f5ec1ce00496b1f9db37a128223cb7f863 Mon Sep 17 00:00:00 2001 From: James Forbes Date: Thu, 14 Dec 2023 15:37:06 -0500 Subject: [PATCH 0393/1025] Fix typo in Hinf synthesis example header --- examples/scherer_etal_ex7_Hinf_hinfsyn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/scherer_etal_ex7_Hinf_hinfsyn.py b/examples/scherer_etal_ex7_Hinf_hinfsyn.py index bdbdba01f..bac4338af 100644 --- a/examples/scherer_etal_ex7_Hinf_hinfsyn.py +++ b/examples/scherer_etal_ex7_Hinf_hinfsyn.py @@ -1,6 +1,6 @@ """Hinf design using hinfsyn. -Demonstrate Hinf design for a SISO plant using h2syn. Based on [1], Ex. 7. +Demonstrate Hinf design for a SISO plant using hinfsyn. Based on [1], Ex. 7. [1] Scherer, Gahinet, & Chilali, "Multiobjective Output-Feedback Control via LMI Optimization", IEEE Trans. Automatic Control, Vol. 42, No. 7, July 1997. From 3fb1a516501ce154cd818135d4fd0cf5687ff77e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 26 Dec 2023 08:28:36 -0800 Subject: [PATCH 0394/1025] fix bug in matched transformation + address other issues in #950 --- control/dtime.py | 9 ++++---- control/freqplot.py | 6 ++++-- control/tests/discrete_test.py | 39 ++++++++++++++++++++++++++++++---- control/xferfcn.py | 15 ++++++++----- 4 files changed, 53 insertions(+), 16 deletions(-) diff --git a/control/dtime.py b/control/dtime.py index 2ae482811..9b91eabd3 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -55,8 +55,7 @@ # Sample a continuous time system def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, name=None, copy_names=True, **kwargs): - """ - Convert a continuous time system to discrete time by sampling. + """Convert a continuous time system to discrete time by sampling. Parameters ---------- @@ -67,9 +66,9 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, method : string Method to use for conversion, e.g. 'bilinear', 'zoh' (default) alpha : float within [0, 1] - The generalized bilinear transformation weighting parameter, which - should only be specified with method="gbt", and is ignored - otherwise. See :func:`scipy.signal.cont2discrete`. + The generalized bilinear transformation weighting parameter, which + should only be specified with method="gbt", and is ignored + otherwise. See :func:`scipy.signal.cont2discrete`. prewarp_frequency : float within [0, infinity) The frequency [rad/s] at which to match with the input continuous- time system's magnitude and phase (only valid for method='bilinear', diff --git a/control/freqplot.py b/control/freqplot.py index 164ec28a2..533515415 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -894,8 +894,10 @@ def gen_zero_centered_series(val_min, val_max, period): # list of systems (e.g., "Step response for sys[1], sys[2]"). # - # Set the initial title for the data (unique system names) - sysnames = list(set([response.sysname for response in data])) + # Set the initial title for the data (unique system names, preserving order) + 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) diff --git a/control/tests/discrete_test.py b/control/tests/discrete_test.py index 96777011e..cccb53708 100644 --- a/control/tests/discrete_test.py +++ b/control/tests/discrete_test.py @@ -5,11 +5,12 @@ import numpy as np import pytest +import cmath -from control import (StateSpace, TransferFunction, bode, common_timebase, - feedback, forced_response, impulse_response, - isctime, isdtime, rss, c2d, sample_system, step_response, - timebase) +import control as ct +from control import StateSpace, TransferFunction, bode, common_timebase, \ + feedback, forced_response, impulse_response, isctime, isdtime, rss, \ + c2d, sample_system, step_response, timebase class TestDiscrete: @@ -526,3 +527,33 @@ def test_signal_names(self, tsys): assert sysd_newnames.find_input('u') is None assert sysd_newnames.find_output('y') == 0 assert sysd_newnames.find_output('x') is None + + +@pytest.mark.parametrize("num, den", [ + ([1], [1, 1]), + ([1, 2], [1, 3]), + ([1, 2], [3, 4, 5]) +]) +@pytest.mark.parametrize("dt", [True, 0.1, 2]) +@pytest.mark.parametrize("method", ['zoh', 'bilinear', 'matched']) +def test_c2d_matched(num, den, dt, method): + sys_ct = ct.tf(num, den) + sys_dt = ct.sample_system(sys_ct, dt, method=method) + assert sys_dt.dt == dt # make sure sampling time is OK + assert cmath.isclose(sys_ct(0), sys_dt(1)) # check zero frequency gain + assert cmath.isclose( + sys_ct.dcgain(), sys_dt.dcgain()) # another way to check + + if method in ['zoh', 'matched']: + # Make sure that poles were properly matched + zpoles = sys_dt.poles() + for cpole in sys_ct.poles(): + zpole = zpoles[(np.abs(zpoles - cmath.exp(cpole * dt))).argmin()] + assert cmath.isclose(cmath.exp(cpole * dt), zpole) + + if method in ['matched']: + # Make sure that zeros were properly matched + zzeros = sys_dt.zeros() + for czero in sys_ct.zeros(): + zzero = zzeros[(np.abs(zzeros - cmath.exp(czero * dt))).argmin()] + assert cmath.isclose(cmath.exp(czero * dt), zzero) diff --git a/control/xferfcn.py b/control/xferfcn.py index b5334b7b8..8f56c96a0 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1181,7 +1181,9 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, if not self.issiso(): raise ControlMIMONotImplemented("Not implemented for MIMO systems") if method == "matched": - return _c2d_matched(self, Ts) + if prewarp_frequency is not None: + warn('prewarp_frequency ignored: incompatible conversion') + return _c2d_matched(self, Ts, name=name, **kwargs) sys = (self.num[0][0], self.den[0][0]) if prewarp_frequency is not None: if method in ('bilinear', 'tustin') or \ @@ -1284,9 +1286,12 @@ def _isstatic(self): # c2d function contributed by Benjamin White, Oct 2012 -def _c2d_matched(sysC, Ts): +def _c2d_matched(sysC, Ts, **kwargs): + if sysC.ninputs > 1 or sysC.noutputs > 1: + raise ValueError("MIMO transfer functions not supported") + # Pole-zero match method of continuous to discrete time conversion - szeros, spoles, sgain = tf2zpk(sysC.num[0][0], sysC.den[0][0]) + szeros, spoles, _ = tf2zpk(sysC.num[0][0], sysC.den[0][0]) zzeros = [0] * len(szeros) zpoles = [0] * len(spoles) pregainnum = [0] * len(szeros) @@ -1302,9 +1307,9 @@ def _c2d_matched(sysC, Ts): zpoles[idx] = z pregainden[idx] = 1 - z zgain = np.multiply.reduce(pregainnum) / np.multiply.reduce(pregainden) - gain = sgain / zgain + gain = sysC.dcgain() / zgain sysDnum, sysDden = zpk2tf(zzeros, zpoles, gain) - return TransferFunction(sysDnum, sysDden, Ts) + return TransferFunction(sysDnum, sysDden, Ts, **kwargs) # Utility function to convert a transfer function polynomial to a string From d4525a1dac0de5e7f9c84e1ada6a7e48cfd276af Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 26 Dec 2023 11:11:31 -0800 Subject: [PATCH 0395/1025] Update control/xferfcn.py Co-authored-by: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com> --- control/xferfcn.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 8f56c96a0..59923fff9 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1287,7 +1287,8 @@ def _isstatic(self): # c2d function contributed by Benjamin White, Oct 2012 def _c2d_matched(sysC, Ts, **kwargs): - if sysC.ninputs > 1 or sysC.noutputs > 1: + if not sysC.issiso(): + raise ControlMIMONotImplemented("Not implemented for MIMO systems") raise ValueError("MIMO transfer functions not supported") # Pole-zero match method of continuous to discrete time conversion From e4bcec01cda450ab12a44b456c8351d8af1d83ce Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 26 Dec 2023 11:18:44 -0800 Subject: [PATCH 0396/1025] fixed botched pathc from github --- control/xferfcn.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/control/xferfcn.py b/control/xferfcn.py index 59923fff9..206f0bc92 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1288,8 +1288,7 @@ def _isstatic(self): # c2d function contributed by Benjamin White, Oct 2012 def _c2d_matched(sysC, Ts, **kwargs): if not sysC.issiso(): - raise ControlMIMONotImplemented("Not implemented for MIMO systems") - raise ValueError("MIMO transfer functions not supported") + raise ControlMIMONotImplemented("Not implemented for MIMO systems") # Pole-zero match method of continuous to discrete time conversion szeros, spoles, _ = tf2zpk(sysC.num[0][0], sysC.den[0][0]) From d4aa22d01584f467a564366dcc8e23286170b350 Mon Sep 17 00:00:00 2001 From: AleksWork Date: Sat, 9 Dec 2023 21:57:55 +0100 Subject: [PATCH 0397/1025] chore: fix typo --- examples/stochresp.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/stochresp.ipynb b/examples/stochresp.ipynb index 224d7f208..74d744b0f 100644 --- a/examples/stochresp.ipynb +++ b/examples/stochresp.ipynb @@ -92,7 +92,7 @@ "id": "b4629e2c", "metadata": {}, "source": [ - "Note that the magnitude of the signal seems to be much larger than $Q$. This is because we have a Guassian process $\\implies$ the signal consists of a sequence of \"impulse-like\" functions that have magnitude that increases with the time step $dt$ as $1/\\sqrt{dt}$ (this gives covariance $\\mathbb{E}(V(t_1) V^T(t_2)) = Q \\delta(t_2 - t_1)$." + "Note that the magnitude of the signal seems to be much larger than $Q$. This is because we have a Gaussian process $\\implies$ the signal consists of a sequence of \"impulse-like\" functions that have magnitude that increases with the time step $dt$ as $1/\\sqrt{dt}$ (this gives covariance $\\mathbb{E}(V(t_1) V^T(t_2)) = Q \\delta(t_2 - t_1)$." ] }, { From 6b5cafc5078aa3adc9ad610e66f96165e38c9844 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 2 Aug 2023 22:22:39 -0700 Subject: [PATCH 0398/1025] refactoring of pzmap into response/plot + unit test changes --- control/pzmap.py | 281 +++++++++++++++++++++++++---------- control/rlocus.py | 47 ------ control/tests/kwargs_test.py | 1 + control/tests/pzmap_test.py | 14 +- control/tests/rlocus_test.py | 7 - 5 files changed, 212 insertions(+), 138 deletions(-) diff --git a/control/pzmap.py b/control/pzmap.py index 5ee3d37c7..47a021a2b 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -1,85 +1,118 @@ # pzmap.py - computations involving poles and zeros # -# Author: Richard M. Murray +# Original author: Richard M. Murray # Date: 7 Sep 2009 # # This file contains functions that compute poles, zeros and related # quantities for a linear system. # -# Copyright (c) 2009 by California Institute of Technology -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Neither the name of the California Institute of Technology nor -# the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CALTECH -# OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# +import numpy as np from numpy import real, imag, linspace, exp, cos, sin, sqrt +import matplotlib.pyplot as plt from math import pi +import itertools +import warnings + from .lti import LTI from .iosys import isdtime, isctime from .grid import sgrid, zgrid, nogrid +from .statesp import StateSpace +from .xferfcn import TransferFunction +from .freqplot import _freqplot_defaults, _get_line_labels from . import config -__all__ = ['pzmap'] +__all__ = ['pzmap_response', 'pzmap_plot', 'pzmap'] # Define default parameter values for this module _pzmap_defaults = { 'pzmap.grid': False, # Plot omega-damping grid - 'pzmap.plot': True, # Generate plot using Matplotlib + 'pzmap.marker_size': 6, # Size of the markers + 'pzmap.marker_width': 1.5, # Width of the markers } +# Classes for keeping track of pzmap plots +class PoleZeroResponseList(list): + def plot(self, *args, **kwargs): + return pzmap_plot(self, *args, **kwargs) + + +class PoleZeroResponseData: + def __init__( + self, poles, zeros, gains=None, loci=None, dt=None, sysname=None): + self.poles = poles + self.zeros = zeros + self.gains = gains + self.loci = loci + self.dt = dt + self.sysname = sysname + + # Implement functions to allow legacy assignment to tuple + def __iter__(self): + return iter((self.poles, self.zeros)) + + def plot(self, *args, **kwargs): + return pzmap_plot(self, *args, **kwargs) + + +# pzmap response funciton +def pzmap_response(sysdata): + # Convert the first argument to a list + syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] + + responses = [] + for idx, sys in enumerate(syslist): + responses.append( + PoleZeroResponseData( + sys.poles(), sys.zeros(), dt=sys.dt, sysname=sys.name)) + + if isinstance(sysdata, (list, tuple)): + return PoleZeroResponseList(responses) + else: + return responses[0] + + # TODO: Implement more elegant cross-style axes. See: -# http://matplotlib.sourceforge.net/examples/axes_grid/demo_axisline_style.html -# http://matplotlib.sourceforge.net/examples/axes_grid/demo_curvelinear_grid.html -def pzmap(sys, plot=None, grid=None, title='Pole Zero Map', **kwargs): +# https://matplotlib.org/2.0.2/examples/axes_grid/demo_axisline_style.html +# https://matplotlib.org/2.0.2/examples/axes_grid/demo_curvelinear_grid.html +def pzmap_plot( + data, plot=None, grid=None, title=None, marker_color=None, + marker_size=None, marker_width=None, legend_loc='upper right', + **kwargs): """Plot a pole/zero map for a linear system. Parameters ---------- - sys: LTI (StateSpace or TransferFunction) - Linear system for which poles and zeros are computed. - plot: bool, optional - If ``True`` a graph is generated with Matplotlib, - otherwise the poles and zeros are only computed and returned. + sysdata: List of PoleZeroResponseData objects or LTI systems + List of pole/zero response data objects generated by pzmap_response + or rootlocus_response() that are to be plotted. If a list of systems + is given, the poles and zeros of those systems will be plotted. grid: boolean (default = False) If True plot omega-damping grid. + plot: bool, optional + (legacy) If ``True`` a graph is generated with Matplotlib, + otherwise the poles and zeros are only computed and returned. + If this argument is present, the legacy value of poles and + zero is returned. Returns ------- - poles: array - The systems poles - zeros: array - The system's zeros. + lines : 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 Nyquist responses passed to the function. The second + index specifies the pzmap object type: + + * lines[idx, 0]: poles + * lines[idx, 1]: zeros + + poles, zeros: list of arrays + (legacy) If the `plot` keyword is given, the system poles and zeros + are returned. - Notes + Notes (TODO: update) ----- The pzmap function calls matplotlib.pyplot.axis('equal'), which means that trying to reset the axis limits may not behave as expected. To @@ -87,47 +120,143 @@ def pzmap(sys, plot=None, grid=None, title='Pole Zero Map', **kwargs): then set the axis limits to the desired values. """ - # Check to see if legacy 'Plot' keyword was used - if 'Plot' in kwargs: - import warnings - warnings.warn("'Plot' keyword is deprecated in pzmap; use 'plot'", - FutureWarning) - plot = kwargs.pop('Plot') - - # Make sure there were no extraneous keywords - if kwargs: - raise TypeError("unrecognized keywords: ", str(kwargs)) - # Get parameter values - plot = config._get_param('pzmap', 'plot', plot, True) grid = config._get_param('pzmap', 'grid', grid, False) + marker_size = config._get_param('pzmap', 'marker_size', marker_size, 6) + marker_width = config._get_param('pzmap', 'marker_width', marker_width, 1.5) + freqplot_rcParams = config._get_param( + 'freqplot', 'rcParams', kwargs, _freqplot_defaults, + pop=True, last=True) + + # If argument was a singleton, turn it into a tuple + if not isinstance(data, (list, tuple)): + data = [data] - if not isinstance(sys, LTI): - raise TypeError('Argument ``sys``: must be a linear system.') + # If we are passed a list of systems, compute response first + if all([isinstance( + sys, (StateSpace, TransferFunction)) for sys in data]): + # Get the response, popping off keywords used there + pzmap_responses = pzmap_response(data) + elif all([isinstance(d, PoleZeroResponseData) for d in data]): + pzmap_responses = data + else: + raise TypeError("unknown system data type") - poles = sys.poles() - zeros = sys.zeros() + # Legacy return value processing + if plot is not None: + warnings.warn( + "`pzmap_plot` return values of poles, zeros is deprecated; " + "use pzmap_response()", DeprecationWarning) + + # Extract out the values that we will eventually return + poles = [response.poles for response in pzmap_responses] + zeros = [response.zeros for response in pzmap_responses] + + if plot is False: + if len(data) == 1: + return poles[0], zeros[0] + else: + return poles, zeros - if (plot): - import matplotlib.pyplot as plt + # Initialize the figure + # TODO: turn into standard utility function + fig = plt.gcf() + axs = fig.get_axes() + if len(axs) > 1: + # Need to generate a new figure + fig, axs = plt.figure(), [] + with plt.rc_context(freqplot_rcParams): if grid: - if isdtime(sys, strict=True): + plt.clf() + if all([response.isctime() for response in data]): + ax, fig = sgrid() + elif all([response.isdtime() for response in data]): ax, fig = zgrid() else: - ax, fig = sgrid() - else: + ValueError( + "incompatible time responses; don't know how to grid") + elif len(axs) == 0: ax, fig = nogrid() + else: + # Use the existing axes + ax = axs[0] + + # Handle color cycle manually as all singular values + # of the same systems are expected to be of the same color + color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] + color_offset = 0 + if len(ax.lines) > 0: + last_color = ax.lines[-1].get_color() + if last_color in color_cycle: + color_offset = color_cycle.index(last_color) + 1 + + # Create a list of lines for the output + out = np.empty((len(pzmap_responses), 2), dtype=object) + for i, j in itertools.product(range(out.shape[0]), range(out.shape[1])): + out[i, j] = [] # unique list in each element + + for idx, response in enumerate(pzmap_responses): + poles = response.poles + zeros = response.zeros + + # Get the color to use for this system + if marker_color is None: + color = color_cycle[(color_offset + idx) % len(color_cycle)] + else: + color = maker_color # Plot the locations of the poles and zeros if len(poles) > 0: - ax.scatter(real(poles), imag(poles), s=50, marker='x', - facecolors='k') + out[idx, 0] = ax.plot( + real(poles), imag(poles), marker='x', linestyle='', + markeredgecolor=color, markerfacecolor=color, + markersize=marker_size, markeredgewidth=marker_width, + label=response.sysname) if len(zeros) > 0: - ax.scatter(real(zeros), imag(zeros), s=50, marker='o', - facecolors='none', edgecolors='k') + out[idx, 1] = ax.plot( + real(zeros), imag(zeros), marker='o', linestyle='', + markeredgecolor=color, markerfacecolor='none', + markersize=marker_size, markeredgewidth=marker_width) + + # List of systems that are included in this plot + lines, labels = _get_line_labels(ax) + + # Update the lines to use tuples for poles and zeros + from matplotlib.lines import Line2D + from matplotlib.legend_handler import HandlerTuple + line_tuples = [] + for pole_line in lines: + zero_line = Line2D( + [0], [0], marker='o', linestyle='', + markeredgecolor=pole_line.get_markerfacecolor(), + markerfacecolor='none', markersize=marker_size, + markeredgewidth=marker_width) + handle = (pole_line, zero_line) + line_tuples.append(handle) + print(line_tuples) + + # Add legend if there is more than one system plotted + if len(labels) > 1 and legend_loc is not False: + with plt.rc_context(freqplot_rcParams): + ax.legend( + line_tuples, labels, loc=legend_loc, + handler_map={tuple: HandlerTuple(ndivide=None)}) + + # Add the title + if title is None: + title = "Pole/zero map for " + ", ".join(labels) + with plt.rc_context(freqplot_rcParams): + fig.suptitle(title) + + # Legacy processing: return locations of poles and zeros as a tuple + if plot is True: + if len(data) == 1: + return poles, zeros + else: + TypeError("system lists not supported with legacy return values") + + return out - plt.title(title) - # Return locations of poles and zeros as a tuple - return poles, zeros +pzmap = pzmap_plot diff --git a/control/rlocus.py b/control/rlocus.py index 41cdec058..4f6203189 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -1,38 +1,6 @@ # rlocus.py - code for computing a root locus plot # Code contributed by Ryan Krauss, 2010 # -# Copyright (c) 2010 by Ryan Krauss -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Neither the name of the California Institute of Technology nor -# the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior -# written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CALTECH -# OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# # RMM, 17 June 2010: modified to be a standalone piece of code # * Added BSD copyright info to file (per Ryan) # * Added code to convert (num, den) to poly1d's if they aren't already. @@ -46,7 +14,6 @@ # Sawyer B. Fuller (minster@uw.edu) 21 May 2020: # * added compatibility with discrete-time systems. # -# $Id$ # Packages used by this module from functools import partial @@ -127,20 +94,6 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, then set the axis limits to the desired values. """ - # Check to see if legacy 'Plot' keyword was used - if 'Plot' in kwargs: - warnings.warn("'Plot' keyword is deprecated in root_locus; " - "use 'plot'", FutureWarning) - # Map 'Plot' keyword to 'plot' keyword - plot = kwargs.pop('Plot') - - # Check to see if legacy 'PrintGain' keyword was used - if 'PrintGain' in kwargs: - warnings.warn("'PrintGain' keyword is deprecated in root_locus; " - "use 'print_gain'", FutureWarning) - # Map 'PrintGain' keyword to 'print_gain' keyword - print_gain = kwargs.pop('PrintGain') - # Get parameter values plotstr = config._get_param('rlocus', 'plotstr', plotstr, _rlocus_defaults) grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 0d13e6391..4e85b9852 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -241,6 +241,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'nyquist_response': test_response_plot_kwargs, 'nyquist_plot': test_matplotlib_kwargs, 'pzmap': test_unrecognized_kwargs, + 'pzmap_plot': test_unrecognized_kwargs, 'rlocus': test_unrecognized_kwargs, 'root_locus': test_unrecognized_kwargs, 'rss': test_unrecognized_kwargs, diff --git a/control/tests/pzmap_test.py b/control/tests/pzmap_test.py index 8d41807b8..56eb699de 100644 --- a/control/tests/pzmap_test.py +++ b/control/tests/pzmap_test.py @@ -44,20 +44,23 @@ def test_pzmap(kwargs, setdefaults, dt, editsdefaults, mplcleanup): pzkwargs = kwargs.copy() if setdefaults: - for k in ['plot', 'grid']: + for k in ['grid']: if k in pzkwargs: v = pzkwargs.pop(k) config.set_defaults('pzmap', **{k: v}) + if kwargs.get('plot', None) is None: + pzkwargs['plot'] = True # use to get legacy return values P, Z = pzmap(T, **pzkwargs) np.testing.assert_allclose(P, Pref, rtol=1e-3) np.testing.assert_allclose(Z, Zref, rtol=1e-3) if kwargs.get('plot', True): - ax = plt.gca() + fig, ax = plt.gcf(), plt.gca() - assert ax.get_title() == kwargs.get('title', 'Pole Zero Map') + assert fig._suptitle.get_text().startswith( + kwargs.get('title', 'Pole/zero map')) # FIXME: This won't work when zgrid and sgrid are unified children = ax.get_children() @@ -78,11 +81,6 @@ def test_pzmap(kwargs, setdefaults, dt, editsdefaults, mplcleanup): assert not plt.get_fignums() -def test_pzmap_warns(): - with pytest.warns(FutureWarning): - pzmap(TransferFunction([1], [1, 2]), Plot=True) - - def test_pzmap_raises(): with pytest.raises(TypeError): # not an LTI system diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index e61f0c8fe..3ce511c15 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -78,13 +78,6 @@ def test_root_locus_plot_grid(self, sys, grid): assert n_gridlines > 2 # TODO check validity of grid - def test_root_locus_warnings(self): - sys = TransferFunction([1000], [1, 25, 100, 0]) - with pytest.warns(FutureWarning, match="Plot.*deprecated"): - rlist, klist = root_locus(sys, Plot=True) - with pytest.warns(FutureWarning, match="PrintGain.*deprecated"): - rlist, klist = root_locus(sys, PrintGain=True) - def test_root_locus_neg_false_gain_nonproper(self): """ Non proper TranferFunction with negative gain: Not implemented""" with pytest.raises(ValueError, match="with equal order"): From 1451f3a35baebc5f49febaef7d2538483443d9fd Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 8 Aug 2023 21:45:58 -0700 Subject: [PATCH 0399/1025] pz -> pole_zero + add loci plotting --- control/pzmap.py | 148 +++++++++++++++++++++++++---------- control/tests/kwargs_test.py | 2 +- 2 files changed, 108 insertions(+), 42 deletions(-) diff --git a/control/pzmap.py b/control/pzmap.py index 47a021a2b..5693a1c29 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -22,7 +22,7 @@ from .freqplot import _freqplot_defaults, _get_line_labels from . import config -__all__ = ['pzmap_response', 'pzmap_plot', 'pzmap'] +__all__ = ['pole_zero_map', 'root_locus_map', 'pole_zero_plot', 'pzmap'] # Define default parameter values for this module @@ -34,18 +34,21 @@ # Classes for keeping track of pzmap plots -class PoleZeroResponseList(list): +class RootLocusList(list): def plot(self, *args, **kwargs): - return pzmap_plot(self, *args, **kwargs) + return pole_zero_plot(self, *args, **kwargs) -class PoleZeroResponseData: +class RootLocusData: def __init__( - self, poles, zeros, gains=None, loci=None, dt=None, sysname=None): + self, poles, zeros, gains=None, loci=None, xlim=None, ylim=None, + dt=None, sysname=None): self.poles = poles self.zeros = zeros self.gains = gains self.loci = loci + self.xlim = xlim + self.ylim = ylim self.dt = dt self.sysname = sysname @@ -54,22 +57,62 @@ def __iter__(self): return iter((self.poles, self.zeros)) def plot(self, *args, **kwargs): - return pzmap_plot(self, *args, **kwargs) + return pole_zero_plot(self, *args, **kwargs) -# pzmap response funciton -def pzmap_response(sysdata): +# Pole/zero map +def pole_zero_map(sysdata): # Convert the first argument to a list syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] responses = [] for idx, sys in enumerate(syslist): responses.append( - PoleZeroResponseData( + RootLocusData( sys.poles(), sys.zeros(), dt=sys.dt, sysname=sys.name)) if isinstance(sysdata, (list, tuple)): - return PoleZeroResponseList(responses) + return RootLocusList(responses) + else: + return responses[0] + + +# Root locus map +def root_locus_map(sysdata, gains=None, xlim=None, ylim=None): + # Convert the first argument to a list + syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] + + responses = [] + for idx, sys in enumerate(syslist): + from .rlocus import _systopoly1d, _default_gains + from .rlocus import _RLFindRoots, _RLSortRoots + + if not sys.issiso(): + raise ControlMIMONotImplemented( + "sys must be single-input single-output (SISO)") + + # Convert numerator and denominator to polynomials if they aren't + nump, denp = _systopoly1d(sys[0, 0]) + + if xlim is None and sys.isdtime(strict=True): + xlim = (-1.2, 1.2) + if ylim is None and sys.isdtime(strict=True): + xlim = (-1.3, 1.3) + + if gains is None: + kvect, root_array, xlim, ylim = _default_gains( + nump, denp, xlim, ylim) + else: + kvect = np.atleast_1d(gains) + root_array = _RLFindRoots(nump, denp, kvect) + root_array = _RLSortRoots(root_array) + + responses.append(RootLocusData( + sys.poles(), sys.zeros(), kvect, root_array, + dt=sys.dt, sysname=sys.name, xlim=xlim, ylim=ylim)) + + if isinstance(sysdata, (list, tuple)): + return RootLocusList(responses) else: return responses[0] @@ -77,15 +120,15 @@ def pzmap_response(sysdata): # TODO: Implement more elegant cross-style axes. See: # https://matplotlib.org/2.0.2/examples/axes_grid/demo_axisline_style.html # https://matplotlib.org/2.0.2/examples/axes_grid/demo_curvelinear_grid.html -def pzmap_plot( +def pole_zero_plot( data, plot=None, grid=None, title=None, marker_color=None, marker_size=None, marker_width=None, legend_loc='upper right', - **kwargs): + xlim=None, ylim=None, **kwargs): """Plot a pole/zero map for a linear system. Parameters ---------- - sysdata: List of PoleZeroResponseData objects or LTI systems + sysdata: List of RootLocusData objects or LTI systems List of pole/zero response data objects generated by pzmap_response or rootlocus_response() that are to be plotted. If a list of systems is given, the poles and zeros of those systems will be plotted. @@ -124,6 +167,7 @@ def pzmap_plot( grid = config._get_param('pzmap', 'grid', grid, False) 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( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True, last=True) @@ -136,8 +180,8 @@ def pzmap_plot( if all([isinstance( sys, (StateSpace, TransferFunction)) for sys in data]): # Get the response, popping off keywords used there - pzmap_responses = pzmap_response(data) - elif all([isinstance(d, PoleZeroResponseData) for d in data]): + pzmap_responses = pole_zero_map(data) + elif all([isinstance(d, RootLocusData) for d in data]): pzmap_responses = data else: raise TypeError("unknown system data type") @@ -145,8 +189,8 @@ def pzmap_plot( # Legacy return value processing if plot is not None: warnings.warn( - "`pzmap_plot` return values of poles, zeros is deprecated; " - "use pzmap_response()", DeprecationWarning) + "`pole_zero_plot` return values of poles, zeros is deprecated; " + "use pole_zero_map()", DeprecationWarning) # Extract out the values that we will eventually return poles = [response.poles for response in pzmap_responses] @@ -169,9 +213,9 @@ def pzmap_plot( with plt.rc_context(freqplot_rcParams): if grid: plt.clf() - if all([response.isctime() for response in data]): + if all([response.dt in [0, None] for response in data]): ax, fig = sgrid() - elif all([response.isdtime() for response in data]): + elif all([response.dt > 0 for response in data]): ax, fig = zgrid() else: ValueError( @@ -192,10 +236,11 @@ def pzmap_plot( color_offset = color_cycle.index(last_color) + 1 # Create a list of lines for the output - out = np.empty((len(pzmap_responses), 2), dtype=object) + out = np.empty((len(pzmap_responses), 3), dtype=object) for i, j in itertools.product(range(out.shape[0]), range(out.shape[1])): out[i, j] = [] # unique list in each element + xlim, ylim = ax.get_xlim(), ax.get_ylim() for idx, response in enumerate(pzmap_responses): poles = response.poles zeros = response.zeros @@ -208,44 +253,65 @@ def pzmap_plot( # Plot the locations of the poles and zeros if len(poles) > 0: + label = response.sysname if response.loci is None else None out[idx, 0] = ax.plot( real(poles), imag(poles), marker='x', linestyle='', markeredgecolor=color, markerfacecolor=color, markersize=marker_size, markeredgewidth=marker_width, - label=response.sysname) + 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) + # Plot the loci, if present + if response.loci is not None: + for locus in response.loci.transpose(): + out[idx, 2] += ax.plot( + real(locus), imag(locus), color=color, + label=response.sysname) + + # Compute the axis limits to use + xlim = (min(xlim[0], response.xlim[0]), max(xlim[1], response.xlim[1])) + ylim = (min(ylim[0], response.ylim[0]), max(ylim[1], response.ylim[1])) + + # Set up the limits for the plot + ax.set_xlim(xlim if xlim_user is None else xlim_user) + ax.set_ylim(ylim if ylim_user is None else ylim_user) + # List of systems that are included in this plot lines, labels = _get_line_labels(ax) - # Update the lines to use tuples for poles and zeros - from matplotlib.lines import Line2D - from matplotlib.legend_handler import HandlerTuple - line_tuples = [] - for pole_line in lines: - zero_line = Line2D( - [0], [0], marker='o', linestyle='', - markeredgecolor=pole_line.get_markerfacecolor(), - markerfacecolor='none', markersize=marker_size, - markeredgewidth=marker_width) - handle = (pole_line, zero_line) - line_tuples.append(handle) - print(line_tuples) - # Add legend if there is more than one system plotted if len(labels) > 1 and legend_loc is not False: - with plt.rc_context(freqplot_rcParams): - ax.legend( - line_tuples, labels, loc=legend_loc, - handler_map={tuple: HandlerTuple(ndivide=None)}) + if response.loci is None: + # Use "x o" for the system label, via matplotlib tuple handler + from matplotlib.lines import Line2D + from matplotlib.legend_handler import HandlerTuple + + line_tuples = [] + for pole_line in lines: + zero_line = Line2D( + [0], [0], marker='o', linestyle='', + markeredgecolor=pole_line.get_markerfacecolor(), + markerfacecolor='none', markersize=marker_size, + markeredgewidth=marker_width) + handle = (pole_line, zero_line) + line_tuples.append(handle) + + with plt.rc_context(freqplot_rcParams): + 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) # Add the title if title is None: - title = "Pole/zero map for " + ", ".join(labels) + title = "Pole/zero plot for " + ", ".join(labels) with plt.rc_context(freqplot_rcParams): fig.suptitle(title) @@ -259,4 +325,4 @@ def pzmap_plot( return out -pzmap = pzmap_plot +pzmap = pole_zero_plot diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 4e85b9852..4fe965e70 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -241,7 +241,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'nyquist_response': test_response_plot_kwargs, 'nyquist_plot': test_matplotlib_kwargs, 'pzmap': test_unrecognized_kwargs, - 'pzmap_plot': test_unrecognized_kwargs, + 'pole_zero_plot': test_unrecognized_kwargs, 'rlocus': test_unrecognized_kwargs, 'root_locus': test_unrecognized_kwargs, 'rss': test_unrecognized_kwargs, From 1390e3771f76a964b63730a8fb6cae02ad648186 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 11 Aug 2023 22:23:38 -0700 Subject: [PATCH 0400/1025] remove sisotool dependencies in rlocus --- control/pzmap.py | 8 +++- control/rlocus.py | 72 ++++++++++++++-------------------- control/sisotool.py | 42 ++++++++++++++++---- control/tests/pzmap_test.py | 2 +- control/tests/sisotool_test.py | 10 ++--- 5 files changed, 77 insertions(+), 57 deletions(-) diff --git a/control/pzmap.py b/control/pzmap.py index 5693a1c29..474f86919 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -273,8 +273,12 @@ def pole_zero_plot( label=response.sysname) # Compute the axis limits to use - xlim = (min(xlim[0], response.xlim[0]), max(xlim[1], response.xlim[1])) - ylim = (min(ylim[0], response.ylim[0]), max(ylim[1], response.ylim[1])) + if response.xlim is not None: + xlim = (min(xlim[0], response.xlim[0]), + max(xlim[1], response.xlim[1])) + if response.ylim is not None: + ylim = (min(ylim[0], response.ylim[0]), + max(ylim[1], response.ylim[1])) # Set up the limits for the plot ax.set_xlim(xlim if xlim_user is None else xlim_user) diff --git a/control/rlocus.py b/control/rlocus.py index 4f6203189..e87caf8e8 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -25,7 +25,6 @@ from .iosys import isdtime from .xferfcn import _convert_to_transfer_function from .exception import ControlMIMONotImplemented -from .sisotool import _SisotoolUpdate from .grid import sgrid, zgrid from . import config import warnings @@ -76,7 +75,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, ax : :class:`matplotlib.axes.Axes` Axes on which to create root locus plot initial_gain : float, optional - Used by :func:`sisotool` to indicate initial gain. + Specify the initial gain to use when marking current gain. [TODO: update] Returns ------- @@ -100,17 +99,12 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, print_gain = config._get_param( 'rlocus', 'print_gain', print_gain, _rlocus_defaults) - # Check for sisotool mode - sisotool = kwargs.get('sisotool', False) - - # make sure siso. sisotool has different requirements - if not sys.issiso() and not sisotool: + if not sys.issiso(): raise ControlMIMONotImplemented( 'sys must be single-input single-output (SISO)') - sys_loop = sys[0,0] # Convert numerator and denominator to polynomials if they aren't - (nump, denp) = _systopoly1d(sys_loop) + nump, denp = _systopoly1d(sys) # if discrete-time system and if xlim and ylim are not given, # that we a view of the unit circle @@ -128,31 +122,30 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, root_array = _RLSortRoots(root_array) recompute_on_zoom = False - if sisotool: - start_roots = _RLFindRoots(nump, denp, initial_gain) - # Make sure there were no extraneous keywords - if not sisotool and kwargs: + if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) # Create the Plot if plot: - if sisotool: - fig = kwargs['fig'] - ax = fig.axes[1] - else: - if ax is None: - ax = plt.gca() - fig = ax.figure + if ax is None: + ax = plt.gca() ax.set_title('Root Locus') + fig = ax.figure + + # TODO: get rid of extra variable start_roots + if initial_gain is not None: + start_roots = _RLFindRoots(nump, denp, initial_gain) + else: + start_roots = None - if print_gain and not sisotool: + if print_gain and start_roots is None: fig.canvas.mpl_connect( 'button_release_event', partial(_RLClickDispatcher, sys=sys, fig=fig, - ax_rlocus=fig.axes[0], plotstr=plotstr)) - elif sisotool: - fig.axes[1].plot( + ax_rlocus=ax, plotstr=plotstr)) + elif start_roots is not None: + ax.plot( [root.real for root in start_roots], [root.imag for root in start_roots], marker='s', markersize=6, zorder=20, color='k', label='gain_point') @@ -165,14 +158,6 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, "Clicked at: %10.4g%+10.4gj gain: %10.4g damp: %10.4g" % (s.real, s.imag, initial_gain, zeta), fontsize=12 if int(mpl.__version__[0]) == 1 else 10) - fig.canvas.mpl_connect( - 'button_release_event', - partial(_RLClickDispatcher, sys=sys, fig=fig, - ax_rlocus=fig.axes[1], plotstr=plotstr, - sisotool=sisotool, - bode_plot_params=kwargs['bode_plot_params'], - tvect=kwargs['tvect'])) - if recompute_on_zoom: # update gains and roots when xlim/ylim change. Only then are @@ -526,7 +511,7 @@ def _RLZoomDispatcher(event, sys, ax_rlocus, plotstr): scalex=False, scaley=False) -def _RLClickDispatcher(event, sys, fig, ax_rlocus, plotstr, sisotool=False, +def _RLClickDispatcher(event, sys, fig, ax_rlocus, plotstr, bode_plot_params=None, tvect=None): """Rootlocus plot click dispatcher""" @@ -536,15 +521,14 @@ def _RLClickDispatcher(event, sys, fig, ax_rlocus, plotstr, sisotool=False, {'zoom rect', 'pan/zoom'}: # if a point is clicked on the rootlocus plot visually emphasize it - K = _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool) - if sisotool and K is not None: - _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect) + K = _RLFeedbackClicksPoint( + event, sys, fig, ax_rlocus, show_clicked=False) # Update the canvas fig.canvas.draw() -def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool=False): +def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, show_clicked=False): """Display root-locus gain feedback point for clicks on root-locus plot""" sys_loop = sys[0,0] (nump, denp) = _systopoly1d(sys_loop) @@ -591,16 +575,20 @@ def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, sisotool=False): # Remove the previous line _removeLine(label='gain_point', ax=ax_rlocus) - # Visualise clicked point, display all roots for sisotool mode - if sisotool: + if show_clicked: + # Visualise clicked point, display all roots root_array = _RLFindRoots(nump, denp, K.real) ax_rlocus.plot( [root.real for root in root_array], [root.imag for root in root_array], - marker='s', markersize=6, zorder=20, label='gain_point', color='k') + marker='s', markersize=6, zorder=20, label='gain_point', + color='k') else: - ax_rlocus.plot(s.real, s.imag, 'k.', marker='s', markersize=8, - zorder=20, label='gain_point') + # Just show the clicked point + # TODO: should we keep this? + ax_rlocus.plot( + s.real, s.imag, 'k.', marker='s', markersize=8, zorder=20, + label='gain_point') return K.real diff --git a/control/sisotool.py b/control/sisotool.py index 9af5268b9..ce77c0954 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -1,5 +1,10 @@ __all__ = ['sisotool', 'rootlocus_pid_designer'] +import numpy as np +import matplotlib.pyplot as plt +import warnings +from functools import partial + from control.exception import ControlMIMONotImplemented from .freqplot import bode_plot from .timeresp import step_response @@ -11,9 +16,6 @@ from .nlsys import interconnect from control.statesp import _convert_to_statespace from . import config -import numpy as np -import matplotlib.pyplot as plt -import warnings _sisotool_defaults = { 'sisotool.initial_gain': 1 @@ -123,13 +125,39 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, initial_gain = config._get_param('sisotool', 'initial_gain', initial_gain, _sisotool_defaults) - # First time call to setup the bode and step response plots + # First time call to setup the Bode and step response plots _SisotoolUpdate(sys, fig, initial_gain, bode_plot_params) - # Setup the root-locus plot window - root_locus(sys, initial_gain=initial_gain, xlim=xlim_rlocus, + root_locus( + sys[0, 0], initial_gain=initial_gain, xlim=xlim_rlocus, ylim=ylim_rlocus, plotstr=plotstr_rlocus, grid=rlocus_grid, - fig=fig, bode_plot_params=bode_plot_params, tvect=tvect, sisotool=True) + ax=fig.axes[1]) + + # Reset the button release callback so that we can update all plots + fig.canvas.mpl_connect( + 'button_release_event', + partial(_click_dispatcher, sys=sys, fig=fig, + ax_rlocus=fig.axes[1], plotstr=plotstr_rlocus, + bode_plot_params=bode_plot_params, tvect=tvect)) + + +def _click_dispatcher(event, sys, fig, ax_rlocus, plotstr, + bode_plot_params=None, tvect=None): + from .rlocus import _RLFeedbackClicksPoint + + # Zoom is handled by specialized callback in rlocus, only handle gain plot + if event.inaxes == ax_rlocus.axes and \ + plt.get_current_fig_manager().toolbar.mode not in \ + {'zoom rect', 'pan/zoom'}: + # if a point is clicked on the rootlocus plot visually emphasize it + K = _RLFeedbackClicksPoint( + event, sys, fig, ax_rlocus, show_clicked=True) + if K is not None: + _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect) + + # Update the canvas + fig.canvas.draw() + def _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect=None): diff --git a/control/tests/pzmap_test.py b/control/tests/pzmap_test.py index 56eb699de..dc2ab5c27 100644 --- a/control/tests/pzmap_test.py +++ b/control/tests/pzmap_test.py @@ -60,7 +60,7 @@ def test_pzmap(kwargs, setdefaults, dt, editsdefaults, mplcleanup): fig, ax = plt.gcf(), plt.gca() assert fig._suptitle.get_text().startswith( - kwargs.get('title', 'Pole/zero map')) + kwargs.get('title', 'Pole/zero plot')) # FIXME: This won't work when zgrid and sgrid are unified children = ax.get_children() diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index 5a86c73d0..8b29b5438 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -7,7 +7,7 @@ import pytest from control.sisotool import sisotool, rootlocus_pid_designer -from control.rlocus import _RLClickDispatcher +from control.sisotool import _click_dispatcher from control.xferfcn import TransferFunction from control.statesp import StateSpace from control import c2d @@ -93,8 +93,8 @@ def test_sisotool(self, tsys): event = type('test', (object,), {'xdata': 2.31206868287, 'ydata': 15.5983051046, 'inaxes': ax_rlocus.axes})() - _RLClickDispatcher(event=event, sys=tsys, fig=fig, - ax_rlocus=ax_rlocus, sisotool=True, plotstr='-', + _click_dispatcher(event=event, sys=tsys, fig=fig, + ax_rlocus=ax_rlocus, plotstr='-', bode_plot_params=bode_plot_params, tvect=None) # Check the moved root locus plot points @@ -143,8 +143,8 @@ def test_sisotool_tvect(self, tsys): event = type('test', (object,), {'xdata': 2.31206868287, 'ydata': 15.5983051046, 'inaxes': ax_rlocus.axes})() - _RLClickDispatcher(event=event, sys=tsys, fig=fig, - ax_rlocus=ax_rlocus, sisotool=True, plotstr='-', + _click_dispatcher(event=event, sys=tsys, fig=fig, + ax_rlocus=ax_rlocus, plotstr='-', bode_plot_params=dict(), tvect=tvect) assert_array_almost_equal(tvect, ax_step.lines[0].get_data()[0]) From 6e335981ec98adde55385dcbf24b0aac4f5e9dea Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 20 Aug 2023 17:47:32 -0700 Subject: [PATCH 0401/1025] update xlim, ylim handling in pzmap + other supporting changes --- control/grid.py | 17 +++++--- control/iosys.py | 46 +++++++++++++++------ control/pzmap.py | 80 +++++++++++++++++++++++------------- control/rlocus.py | 27 +++++++++--- control/tests/rlocus_test.py | 61 +++++++++++++++++++++++++++ 5 files changed, 180 insertions(+), 51 deletions(-) diff --git a/control/grid.py b/control/grid.py index 785ec2743..232f65527 100644 --- a/control/grid.py +++ b/control/grid.py @@ -8,6 +8,8 @@ from matplotlib.projections import PolarAxes from matplotlib.transforms import Affine2D +from .iosys import isdtime + class FormatterDMS(object): '''Transforms angle ticks to damping ratios''' @@ -142,17 +144,22 @@ def sgrid(): def _final_setup(ax): ax.set_xlabel('Real') ax.set_ylabel('Imaginary') - ax.axhline(y=0, color='black', lw=1) - ax.axvline(x=0, color='black', lw=1) + ax.axhline(y=0, color='black', lw=0.5) + ax.axvline(x=0, color='black', lw=0.5) plt.axis('equal') -def nogrid(): - f = plt.gcf() +def nogrid(dt=None): + fig = plt.gcf() ax = plt.axes() + # Draw the unit circle for discrete time systems + if isdtime(dt=dt, strict=True): + s = np.linspace(0, 2*pi, 100) + ax.plot(np.cos(s), np.sin(s), 'k--', lw=0.5, dashes=(5, 5)) + _final_setup(ax) - return ax, f + return ax, fig def zgrid(zetas=None, wns=None, ax=None): diff --git a/control/iosys.py b/control/iosys.py index 52262250d..7e4978938 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -503,42 +503,64 @@ def common_timebase(dt1, dt2): raise ValueError("Systems have incompatible timebases") # Check to see if a system is a discrete time system -def isdtime(sys, strict=False): +def isdtime(sys=None, dt=None, strict=False): """ Check to see if a system is a discrete time system. Parameters ---------- - sys : I/O or LTI system - System to be checked + sys : I/O system, optional + System to be checked. + dt : None or number, optional + Timebase to be checked. strict: bool (default = False) - If strict is True, make sure that timebase is not None + If strict is True, make sure that timebase is not None. """ - # Check to see if this is a constant + # See if we were passed a timebase instead of a system + if sys is None: + if dt is None: + return True if not strict else False + else: + return dt > 0 + elif dt is not None: + raise TypeError("passing both system and timebase not allowed") + + # Check timebase of the system if isinstance(sys, (int, float, complex, np.number)): - # OK as long as strict checking is off + # Constants OK as long as strict checking is off return True if not strict else False else: return sys.isdtime(strict) # Check to see if a system is a continuous time system -def isctime(sys, strict=False): +def isctime(sys=None, dt=None, strict=False): """ Check to see if a system is a continuous-time system. Parameters ---------- - sys : I/O or LTI system - System to be checked + sys : I/O system, optional + System to be checked. + dt : None or number, optional + Timebase to be checked. strict: bool (default = False) - If strict is True, make sure that timebase is not None + If strict is True, make sure that timebase is not None. """ - # Check to see if this is a constant + # See if we were passed a timebase instead of a system + if sys is None: + if dt is None: + return True if not strict else False + else: + return dt == 0 + elif dt is not None: + raise TypeError("passing both system and timebase not allowed") + + # Check timebase of the system if isinstance(sys, (int, float, complex, np.number)): - # OK as long as strict checking is off + # Constants OK as long as strict checking is off return True if not strict else False else: return sys.isctime(strict) diff --git a/control/pzmap.py b/control/pzmap.py index 474f86919..cc831b0a9 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -4,7 +4,9 @@ # Date: 7 Sep 2009 # # This file contains functions that compute poles, zeros and related -# quantities for a linear system. +# quantities for a linear system, as well as the main functions for +# storing and plotting pole/zero and root locus diagrams. (The actual +# computation of root locus diagrams is in rlocus.py.) # import numpy as np @@ -41,14 +43,11 @@ def plot(self, *args, **kwargs): class RootLocusData: def __init__( - self, poles, zeros, gains=None, loci=None, xlim=None, ylim=None, - dt=None, sysname=None): + self, poles, zeros, gains=None, loci=None, dt=None, sysname=None): self.poles = poles self.zeros = zeros self.gains = gains self.loci = loci - self.xlim = xlim - self.ylim = ylim self.dt = dt self.sysname = sysname @@ -78,7 +77,8 @@ def pole_zero_map(sysdata): # Root locus map -def root_locus_map(sysdata, gains=None, xlim=None, ylim=None): +# TODO: use rlocus.py computation instead +def root_locus_map(sysdata, gains=None): # Convert the first argument to a list syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] @@ -94,14 +94,8 @@ def root_locus_map(sysdata, gains=None, xlim=None, ylim=None): # Convert numerator and denominator to polynomials if they aren't nump, denp = _systopoly1d(sys[0, 0]) - if xlim is None and sys.isdtime(strict=True): - xlim = (-1.2, 1.2) - if ylim is None and sys.isdtime(strict=True): - xlim = (-1.3, 1.3) - if gains is None: - kvect, root_array, xlim, ylim = _default_gains( - nump, denp, xlim, ylim) + kvect, root_array, _, _ = _default_gains(nump, denp, None, None) else: kvect = np.atleast_1d(gains) root_array = _RLFindRoots(nump, denp, kvect) @@ -109,7 +103,7 @@ def root_locus_map(sysdata, gains=None, xlim=None, ylim=None): responses.append(RootLocusData( sys.poles(), sys.zeros(), kvect, root_array, - dt=sys.dt, sysname=sys.name, xlim=xlim, ylim=ylim)) + dt=sys.dt, sysname=sys.name)) if isinstance(sysdata, (list, tuple)): return RootLocusList(responses) @@ -203,7 +197,7 @@ def pole_zero_plot( return poles, zeros # Initialize the figure - # TODO: turn into standard utility function + # TODO: turn into standard utility function (from plotutil.py?) fig = plt.gcf() axs = fig.get_axes() if len(axs) > 1: @@ -213,21 +207,22 @@ def pole_zero_plot( with plt.rc_context(freqplot_rcParams): if grid: plt.clf() - if all([response.dt in [0, None] for response in data]): + if all([isctime(dt=response.dt) for response in data]): ax, fig = sgrid() - elif all([response.dt > 0 for response in data]): + elif all([isdtime(dt=response.dt) for response in data]): ax, fig = zgrid() else: ValueError( "incompatible time responses; don't know how to grid") elif len(axs) == 0: - ax, fig = nogrid() + ax, fig = nogrid(data[0].dt) # use first response timebase else: - # Use the existing axes + # Use the existing axes and any grid that is there + # TODO: allow axis to be overriden via parameter ax = axs[0] - # Handle color cycle manually as all singular values - # of the same systems are expected to be of the same color + # Handle color cycle manually as all root locus segments + # of the same system are expected to be of the same color color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] color_offset = 0 if len(ax.lines) > 0: @@ -240,6 +235,7 @@ def pole_zero_plot( for i, j in itertools.product(range(out.shape[0]), range(out.shape[1])): out[i, j] = [] # unique list in each element + # Plot the responses (and keep track of axes limits) xlim, ylim = ax.get_xlim(), ax.get_ylim() for idx, response in enumerate(pzmap_responses): poles = response.poles @@ -272,13 +268,14 @@ def pole_zero_plot( real(locus), imag(locus), color=color, label=response.sysname) - # Compute the axis limits to use - if response.xlim is not None: - xlim = (min(xlim[0], response.xlim[0]), - max(xlim[1], response.xlim[1])) - if response.ylim is not None: - ylim = (min(ylim[0], response.ylim[0]), - max(ylim[1], response.ylim[1])) + # Compute the axis limits to use based on the response + resp_xlim, resp_ylim = _compute_root_locus_limits(response.loci) + + # Keep track of the current limits + xlim = [min(xlim[0], resp_xlim[0]), max(xlim[1], resp_xlim[1])] + ylim = [min(ylim[0], resp_ylim[0]), max(ylim[1], resp_ylim[1])] + + # TODO: add arrows to root loci (reuse Nyquist arrow code?) # Set up the limits for the plot ax.set_xlim(xlim if xlim_user is None else xlim_user) @@ -329,4 +326,31 @@ def pole_zero_plot( return out +# Utility function to compute limits for root loci +def _compute_root_locus_limits(loci): + # Go through each locus + xlim, ylim = [0, 0], 0 + for locus in loci.transpose(): + # Include all starting points + xlim = [min(xlim[0], locus[0].real), max(xlim[1], locus[0].real)] + ylim = max(ylim, locus[0].imag) + + # Find the local maxima of root locus curve + xpeaks = np.where( + np.diff(np.abs(locus.real)) < 0, locus.real[0:-1], 0) + xlim = [min(xlim[0], np.min(xpeaks)), max(xlim[1], np.max(xpeaks))] + + ypeaks = np.where( + np.diff(np.abs(locus.imag)) < 0, locus.imag[0:-1], 0) + ylim = max(ylim, np.max(ypeaks)) + + # Adjust the limits to include some space around features + rho = 1.5 + xlim[0] = rho * xlim[0] if xlim[0] < 0 else 0 + xlim[1] = rho * xlim[1] if xlim[1] > 0 else 0 + ylim = rho * ylim if ylim > 0 else np.max(np.abs(xlim)) + + return xlim, [-ylim, ylim] + + pzmap = pole_zero_plot diff --git a/control/rlocus.py b/control/rlocus.py index e87caf8e8..219211b6c 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -32,6 +32,7 @@ __all__ = ['root_locus', 'rlocus'] # Default values for module parameters +# TODO: merge these with pzmap parameters (?) _rlocus_defaults = { 'rlocus.grid': True, 'rlocus.plotstr': 'b' if int(mpl.__version__[0]) == 1 else 'C0', @@ -41,15 +42,16 @@ # Main function: compute a root locus diagram +# TODO: update to use pzmap data structures and plotting def root_locus(sys, kvect=None, xlim=None, ylim=None, plotstr=None, plot=True, print_gain=None, grid=None, ax=None, initial_gain=None, **kwargs): """Root locus plot. - Calculate the root locus by finding the roots of 1+k*TF(s) - where TF is self.num(s)/self.den(s) and each k is an element - of kvect. + Calculate the root locus by finding the roots of 1 + k * G(s) where G + is a linear system with transfer function num(s)/den(s) and each k is + an element of kvect. Parameters ---------- @@ -127,6 +129,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, raise TypeError("unrecognized keywords: ", str(kwargs)) # Create the Plot + # TODO: replace with pole_zero_plot and move additional functionality there if plot: if ax is None: ax = plt.gca() @@ -139,6 +142,7 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, else: start_roots = None + # TODO: don't rely on `start_roots` (sisotool holdover) if print_gain and start_roots is None: fig.canvas.mpl_connect( 'button_release_event', @@ -148,7 +152,8 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, ax.plot( [root.real for root in start_roots], [root.imag for root in start_roots], - marker='s', markersize=6, zorder=20, color='k', label='gain_point') + marker='s', markersize=6, zorder=20, color='k', + label='gain_point') s = start_roots[0][0] if isdtime(sys, strict=True): zeta = -np.cos(np.angle(np.log(s))) @@ -219,16 +224,23 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): Saddle River, NJ : New Delhi: Prentice Hall.. """ + # Compute the break points on the real axis for the root locus plot k_break, real_break = _break_points(num, den) + + # Decide on the maximum gain to use and create the gain vector kmax = _k_max(num, den, real_break, k_break) kvect = np.hstack((np.linspace(0, kmax, 50), np.real(k_break))) kvect.sort() + # Find the roots for all of the gains and sort them root_array = _RLFindRoots(num, den, kvect) root_array = _RLSortRoots(root_array) + + # Keep track of the open loop poles and zeros open_loop_poles = den.roots open_loop_zeros = num.roots + # ??? if open_loop_zeros.size != 0 and \ open_loop_zeros.size < open_loop_poles.size: open_loop_zeros_xl = np.append( @@ -283,7 +295,8 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): tolerance = x_tolerance else: tolerance = np.min([x_tolerance, y_tolerance]) - indexes_too_far = _indexes_filt(root_array, tolerance, zoom_xlim, zoom_ylim) + indexes_too_far = _indexes_filt( + root_array, tolerance, zoom_xlim, zoom_ylim) # Add more points into the root locus for points that are too far apart while len(indexes_too_far) > 0 and kvect.size < 5000: @@ -295,7 +308,8 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): root_array = np.insert(root_array, index + 1, new_points, axis=0) root_array = _RLSortRoots(root_array) - indexes_too_far = _indexes_filt(root_array, tolerance, zoom_xlim, zoom_ylim) + indexes_too_far = _indexes_filt( + root_array, tolerance, zoom_xlim, zoom_ylim) new_gains = kvect[-1] * np.hstack((np.logspace(0, 3, 4))) new_points = _RLFindRoots(num, den, new_gains[1:4]) @@ -601,6 +615,7 @@ def _removeLine(label, ax): del line +# TODO: remove and replace with sgid()? def _sgrid_func(ax, zeta=None, wn=None): # Get locator function for x-axis, y-axis tick marks xlocator = ax.get_xaxis().get_major_locator() diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index 3ce511c15..d69e413db 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -134,3 +134,64 @@ def test_rlocus_default_wn(self): [-1e-2, 1-1e7j, 1+1e7j], [0, -1e7j, 1e7j], 1)) ct.root_locus(sys) + + +# TODO: add additional test cases +@pytest.mark.parametrize( + "sys, grid, xlim, ylim", [ + (ct.tf([1], [1, 2, 1]), None, None, None), + ]) +def test_root_locus_plots(sys, grid, xlim, ylim): + ct.root_locus_map(sys).plot(grid=grid, xlim=xlim, ylim=ylim) + # TODO: add tests to make sure everything "looks" OK + + +if __name__ == "__main__": + # + # Interactive mode: generate plots for manual viewing + # + # Running this script in python (or better ipython) will show a + # collection of figures that should all look OK on the screeen. + # + + # In interactive mode, turn on ipython interactive graphics + plt.ion() + + # Start by clearing existing figures + plt.close('all') + + # Define systems to be tested + sys_secord = ct.tf([1], [1, 1, 1], name="2P") + sys_seczero = ct.tf([1, 0, -1], [1, 1, 1], name="2P, 2Z") + sys_fbs_a = ct.tf([1, 1], [1, 0, 0], name="FBS 12_19a") + sys_fbs_b = ct.tf( + ct.tf([1, 1], [1, 2, 0]) * ct.tf([1], [1, 2 ,4]), name="FBS 12_19b") + sys_fbs_c = ct.tf([1, 1], [1, 0, 1, 0], name="FBS 12_19c") + sys_fbs_d = ct.tf([1, 2, 2], [1, 0, 1, 0], name="FBS 12_19d") + sys_poles = sys_fbs_d.poles() + sys_zeros = sys_fbs_d.zeros() + sys_discrete = ct.zpk( + sys_zeros / 3, sys_poles / 3, 1, dt=True, name="discrete") + + # Run through a large number of test cases + test_cases = [ + # sys grid xlim ylim + (sys_secord, None, None, None), + (sys_seczero, None, None, None), + (sys_fbs_a, None, None, None), + (sys_fbs_b, None, None, None), + (sys_fbs_c, None, None, None), + (sys_fbs_c, None, None, [-2, 2]), + (sys_fbs_c, True, [-3, 3], None), + (sys_fbs_d, None, None, None), + (ct.zpk(sys_zeros * 10, sys_poles * 10, 1, name="12_19d * 10"), + None, None, None), + (ct.zpk(sys_zeros / 10, sys_poles / 10, 1, name="12_19d / 10"), + True, None, None), + (sys_discrete, None, None, None), + (sys_discrete, True, None, None), + ] + + for sys, grid, xlim, ylim in test_cases: + plt.figure() + test_root_locus_plots(sys, grid=grid, xlim=xlim, ylim=ylim) From 1c4322cac20ec823c423d12468ca0bd3f2e6e3b2 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 19 Sep 2023 20:58:36 -0700 Subject: [PATCH 0402/1025] reorder ct.isdtime parameters for backward compatibility --- control/iosys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/iosys.py b/control/iosys.py index 7e4978938..fbd5c1dba 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -503,7 +503,7 @@ def common_timebase(dt1, dt2): raise ValueError("Systems have incompatible timebases") # Check to see if a system is a discrete time system -def isdtime(sys=None, dt=None, strict=False): +def isdtime(sys=None, strict=False, dt=None): """ Check to see if a system is a discrete time system. @@ -513,7 +513,7 @@ def isdtime(sys=None, dt=None, strict=False): System to be checked. dt : None or number, optional Timebase to be checked. - strict: bool (default = False) + strict: bool, default=False If strict is True, make sure that timebase is not None. """ From 57dac87da3c5885ef4912fa4484a0dff811e0b9c Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 22 Sep 2023 20:36:47 -0700 Subject: [PATCH 0403/1025] initial refactoring of root_locus_{map,plot} --- control/grid.py | 11 +- control/pzmap.py | 223 ++++++++++++----- control/rlocus.py | 424 ++++----------------------------- control/sisotool.py | 50 ++-- control/tests/kwargs_test.py | 2 + control/tests/rlocus_test.py | 45 ++-- control/tests/sisotool_test.py | 34 ++- 7 files changed, 308 insertions(+), 481 deletions(-) diff --git a/control/grid.py b/control/grid.py index 232f65527..302f3595b 100644 --- a/control/grid.py +++ b/control/grid.py @@ -99,15 +99,19 @@ def sgrid(): ax.axis[:].major_ticklabels.set_visible(visible) ax.axis[:].major_ticks.set_visible(False) ax.axis[:].invert_ticklabel_direction() + ax.axis[:].major_ticklabels.set_color('gray') ax.axis["wnxneg"] = axis = ax.new_floating_axis(0, 180) axis.set_ticklabel_direction("-") axis.label.set_visible(False) + ax.axis["wnxpos"] = axis = ax.new_floating_axis(0, 0) axis.label.set_visible(False) + ax.axis["wnypos"] = axis = ax.new_floating_axis(0, 90) axis.label.set_visible(False) - axis.set_axis_direction("left") + axis.set_axis_direction("right") + ax.axis["wnyneg"] = axis = ax.new_floating_axis(0, 270) axis.label.set_visible(False) axis.set_axis_direction("left") @@ -149,9 +153,10 @@ def _final_setup(ax): plt.axis('equal') -def nogrid(dt=None): +def nogrid(dt=None, ax=None): fig = plt.gcf() - ax = plt.axes() + if ax is None: + ax = fig.gca() # Draw the unit circle for discrete time systems if isdtime(dt=dt, strict=True): diff --git a/control/pzmap.py b/control/pzmap.py index cc831b0a9..773c6df95 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -8,6 +8,16 @@ # storing and plotting pole/zero and root locus diagrams. (The actual # computation of root locus diagrams is in rlocus.py.) # +# TODO (Sep 2023): +# * Test out ability to set line styles +# - Make compatible with other plotting (and refactor?) +# - Allow line fmt to be overwritten (including color=CN for different +# colors for each segment?) +# * Add ability to set style of root locus click point +# - Sort out where default parameter values should live (pzmap vs rlocus) +# * Decide whether click functionality should be in rlocus.py +# * Add back print_gain option to sisotool (and any other options) +# import numpy as np from numpy import real, imag, linspace, exp, cos, sin, sqrt @@ -24,32 +34,44 @@ from .freqplot import _freqplot_defaults, _get_line_labels from . import config -__all__ = ['pole_zero_map', 'root_locus_map', 'pole_zero_plot', 'pzmap'] +__all__ = ['pole_zero_map', 'pole_zero_plot', 'pzmap'] # Define default parameter values for this module _pzmap_defaults = { - 'pzmap.grid': False, # Plot omega-damping grid - 'pzmap.marker_size': 6, # Size of the markers - 'pzmap.marker_width': 1.5, # Width of the markers + 'pzmap.grid': False, # Plot omega-damping grid + 'pzmap.marker_size': 6, # Size of the markers + 'pzmap.marker_width': 1.5, # Width of the markers + 'pzmap.expansion_factor': 2, # Amount to scale plots beyond features } - +# # Classes for keeping track of pzmap plots -class RootLocusList(list): - def plot(self, *args, **kwargs): - return pole_zero_plot(self, *args, **kwargs) - - -class RootLocusData: +# +# The PoleZeroData class keeps track of the information that is on a +# pole-zero plot. +# +# In addition to the locations of poles and zeros, you can also save a set +# of gains and loci for use in generating a root locus plot. The gain +# variable is a 1D array consisting of a list of increasing gains. The +# loci variable is a 2D array indexed by [gain_idx, root_idx] that can be +# plotted using the `pole_zero_plot` function. +# +# The PoleZeroList class is used to return a list of pole-zero plots. It +# is a lightweight wrapper on the built-in list class that includes a +# `plot` method, allowing plotting a set of root locus diagrams. +# +class PoleZeroData: def __init__( - self, poles, zeros, gains=None, loci=None, dt=None, sysname=None): + self, poles, zeros, gains=None, loci=None, dt=None, sysname=None, + sys=None): self.poles = poles self.zeros = zeros self.gains = gains self.loci = loci self.dt = dt self.sysname = sysname + self.sys = sys # Implement functions to allow legacy assignment to tuple def __iter__(self): @@ -59,54 +81,25 @@ def plot(self, *args, **kwargs): return pole_zero_plot(self, *args, **kwargs) +class PoleZeroList(list): + def plot(self, *args, **kwargs): + return pole_zero_plot(self, *args, **kwargs) + + # Pole/zero map def pole_zero_map(sysdata): + # TODO: add docstring (from old pzmap?) # Convert the first argument to a list syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] responses = [] for idx, sys in enumerate(syslist): responses.append( - RootLocusData( + PoleZeroData( sys.poles(), sys.zeros(), dt=sys.dt, sysname=sys.name)) if isinstance(sysdata, (list, tuple)): - return RootLocusList(responses) - else: - return responses[0] - - -# Root locus map -# TODO: use rlocus.py computation instead -def root_locus_map(sysdata, gains=None): - # Convert the first argument to a list - syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] - - responses = [] - for idx, sys in enumerate(syslist): - from .rlocus import _systopoly1d, _default_gains - from .rlocus import _RLFindRoots, _RLSortRoots - - if not sys.issiso(): - raise ControlMIMONotImplemented( - "sys must be single-input single-output (SISO)") - - # Convert numerator and denominator to polynomials if they aren't - nump, denp = _systopoly1d(sys[0, 0]) - - if gains is None: - kvect, root_array, _, _ = _default_gains(nump, denp, None, None) - else: - kvect = np.atleast_1d(gains) - root_array = _RLFindRoots(nump, denp, kvect) - root_array = _RLSortRoots(root_array) - - responses.append(RootLocusData( - sys.poles(), sys.zeros(), kvect, root_array, - dt=sys.dt, sysname=sys.name)) - - if isinstance(sysdata, (list, tuple)): - return RootLocusList(responses) + return PoleZeroList(responses) else: return responses[0] @@ -117,12 +110,14 @@ def root_locus_map(sysdata, gains=None): 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, **kwargs): + xlim=None, ylim=None, interactive=False, ax=None, + initial_gain=None, **kwargs): + # TODO: update docstring (see other response/plot functions for style) """Plot a pole/zero map for a linear system. Parameters ---------- - sysdata: List of RootLocusData objects or LTI systems + sysdata: List of PoleZeroData objects or LTI systems List of pole/zero response data objects generated by pzmap_response or rootlocus_response() that are to be plotted. If a list of systems is given, the poles and zeros of those systems will be plotted. @@ -165,6 +160,7 @@ def pole_zero_plot( freqplot_rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True, last=True) + user_ax = ax # If argument was a singleton, turn it into a tuple if not isinstance(data, (list, tuple)): @@ -175,7 +171,7 @@ def pole_zero_plot( sys, (StateSpace, TransferFunction)) for sys in data]): # Get the response, popping off keywords used there pzmap_responses = pole_zero_map(data) - elif all([isinstance(d, RootLocusData) for d in data]): + elif all([isinstance(d, PoleZeroData) for d in data]): pzmap_responses = data else: raise TypeError("unknown system data type") @@ -198,8 +194,13 @@ def pole_zero_plot( # Initialize the figure # TODO: turn into standard utility function (from plotutil.py?) - fig = plt.gcf() - axs = fig.get_axes() + if user_ax is None: + fig = plt.gcf() + axs = fig.get_axes() + else: + fig = ax.figure + axs = [ax] + if len(axs) > 1: # Need to generate a new figure fig, axs = plt.figure(), [] @@ -275,6 +276,10 @@ def pole_zero_plot( xlim = [min(xlim[0], resp_xlim[0]), max(xlim[1], resp_xlim[1])] ylim = [min(ylim[0], resp_ylim[0]), max(ylim[1], resp_ylim[1])] + # Plot the initial gain, if given + if initial_gain is not None: + _mark_root_locus_gain(ax, response.sys, initial_gain) + # TODO: add arrows to root loci (reuse Nyquist arrow code?) # Set up the limits for the plot @@ -313,8 +318,36 @@ def pole_zero_plot( # Add the title if title is None: title = "Pole/zero plot for " + ", ".join(labels) - with plt.rc_context(freqplot_rcParams): - fig.suptitle(title) + if user_ax is None: + with plt.rc_context(freqplot_rcParams): + fig.suptitle(title) + + # Add dispather to handle choosing a point on the diagram + if interactive: + if len(pzmap_responses) > 1: + raise NotImplementedError( + "interactive mode only allowed for single system") + elif pzmap_responses[0].sys == None: + raise SystemError("missing system information") + else: + sys = pzmap_responses[0].sys + + # Define function to handle mouse clicks + def _click_dispatcher(event): + # Find the gain corresponding to the clicked point + K, s = _find_root_locus_gain(event, sys, ax) + + if K is not None: + # Mark the gain on the root locus diagram + _mark_root_locus_gain(ax, sys, K) + + # Display the parameters in the axes title + with plt.rc_context(freqplot_rcParams): + ax.set_title(_create_root_locus_label(sys, K, s)) + + ax.figure.canvas.draw() + + fig.canvas.mpl_connect('button_release_event', _click_dispatcher) # Legacy processing: return locations of poles and zeros as a tuple if plot is True: @@ -326,7 +359,82 @@ def pole_zero_plot( return out +# Utility function to find gain corresponding to a click event +# TODO: project onto the root locus plot (here or above?) +def _find_root_locus_gain(event, sys, ax): + # Get the current axis limits to set various thresholds + xlim, ylim = ax.get_xlim(), ax.get_ylim() + + # Catch type error when event click is in the figure but not in an axis + try: + s = complex(event.xdata, event.ydata) + K = -1. / sys(s) + K_xlim = -1. / sys( + complex(event.xdata + 0.05 * abs(xlim[1] - xlim[0]), event.ydata)) + K_ylim = -1. / sys( + complex(event.xdata, event.ydata + 0.05 * abs(ylim[1] - ylim[0]))) + + except TypeError: + K = float('inf') + K_xlim = float('inf') + K_ylim = float('inf') + + # + # Compute tolerances for deciding if we clicked on the root locus + # + # This is a bit of black magic that sets some limits for how close we + # need to be to the root locus in order to consider it a click on the + # actual curve. Otherwise, we will just ignore the click. + + x_tolerance = 0.1 * abs((xlim[1] - xlim[0])) + y_tolerance = 0.1 * abs((ylim[1] - ylim[0])) + gain_tolerance = np.mean([x_tolerance, y_tolerance]) * 0.1 + \ + 0.1 * max([abs(K_ylim.imag/K_ylim.real), abs(K_xlim.imag/K_xlim.real)]) + + # Decide whether to pay attention to this event + if abs(K.real) > 1e-8 and abs(K.imag / K.real) < gain_tolerance and \ + event.inaxes == ax.axes and K.real > 0.: + return K.real, s + + else: + return None, s + + +# Mark points corresponding to a given gain on root locus plot +def _mark_root_locus_gain(ax, sys, K): + from .rlocus import _systopoly1d, _RLFindRoots + + # Remove any previous gain points + for line in reversed(ax.lines): + if line.get_label() == '_gain_point': + line.remove() + del line + + # Visualise clicked point, displaying all roots + # TODO: allow marker parameters to be set + nump, denp = _systopoly1d(sys) + root_array = _RLFindRoots(nump, denp, K.real) + ax.plot( + [root.real for root in root_array], [root.imag for root in root_array], + marker='s', markersize=6, zorder=20, label='_gain_point', color='k') + + +# Return a string identifying a clicked point +# TODO: project onto the root locus plot (here or above?) +def _create_root_locus_label(sys, K, s): + # Figure out the damping ratio + if isdtime(sys, strict=True): + zeta = -np.cos(np.angle(np.log(s))) + else: + zeta = -1 * s.real / abs(s) + + return "Clicked at: %.4g%+.4gj gain = %.4g damping = %.4g" % \ + (s.real, s.imag, K.real, zeta) + + # Utility function to compute limits for root loci +# TODO: compare to old code and recapture functionality (especially asymptotes) +# TODO: (note that sys is now available => code here may not be needed) def _compute_root_locus_limits(loci): # Go through each locus xlim, ylim = [0, 0], 0 @@ -345,7 +453,8 @@ def _compute_root_locus_limits(loci): ylim = max(ylim, np.max(ypeaks)) # Adjust the limits to include some space around features - rho = 1.5 + # TODO: use _k_max and project out to max k for all value? + rho = config._get_param('pzmap', 'expansion_factor') xlim[0] = rho * xlim[0] if xlim[0] < 0 else 0 xlim[1] = rho * xlim[1] if xlim[1] > 0 else 0 ylim = rho * ylim if ylim > 0 else np.max(np.abs(xlim)) diff --git a/control/rlocus.py b/control/rlocus.py index 219211b6c..07c6b67c6 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -18,7 +18,6 @@ # Packages used by this module from functools import partial import numpy as np -import matplotlib as mpl import matplotlib.pyplot as plt from numpy import array, poly1d, row_stack, zeros_like, real, imag import scipy.signal # signal processing toolbox @@ -29,24 +28,54 @@ from . import config import warnings -__all__ = ['root_locus', 'rlocus'] +__all__ = ['root_locus_map', 'root_locus_plot', 'root_locus', 'rlocus'] # Default values for module parameters # TODO: merge these with pzmap parameters (?) _rlocus_defaults = { 'rlocus.grid': True, - 'rlocus.plotstr': 'b' if int(mpl.__version__[0]) == 1 else 'C0', + 'rlocus.plotstr': 'C0', # default color cycle [TODO: not used?] 'rlocus.print_gain': True, 'rlocus.plot': True } -# Main function: compute a root locus diagram -# TODO: update to use pzmap data structures and plotting -def root_locus(sys, kvect=None, xlim=None, ylim=None, - plotstr=None, plot=True, print_gain=None, grid=None, ax=None, - initial_gain=None, **kwargs): +# Root locus map +# TODO: add docstring +def root_locus_map(sysdata, gains=None): + from .pzmap import PoleZeroData, PoleZeroList + # Convert the first argument to a list + syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] + + responses = [] + for idx, sys in enumerate(syslist): + if not sys.issiso(): + raise ControlMIMONotImplemented( + "sys must be single-input single-output (SISO)") + + # Convert numerator and denominator to polynomials if they aren't + nump, denp = _systopoly1d(sys[0, 0]) + + if gains is None: + kvect, root_array, _, _ = _default_gains(nump, denp, None, None) + else: + kvect = np.atleast_1d(gains) + root_array = _RLFindRoots(nump, denp, kvect) + root_array = _RLSortRoots(root_array) + + responses.append(PoleZeroData( + sys.poles(), sys.zeros(), kvect, root_array, + dt=sys.dt, sysname=sys.name, sys=sys)) + + if isinstance(sysdata, (list, tuple)): + return PoleZeroList(responses) + else: + return responses[0] + + +def root_locus_plot( + sysdata, kvect=None, grid=None, plot=True, **kwargs): """Root locus plot. Calculate the root locus by finding the roots of 1 + k * G(s) where G @@ -95,126 +124,22 @@ def root_locus(sys, kvect=None, xlim=None, ylim=None, then set the axis limits to the desired values. """ - # Get parameter values - plotstr = config._get_param('rlocus', 'plotstr', plotstr, _rlocus_defaults) - grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) - print_gain = config._get_param( - 'rlocus', 'print_gain', print_gain, _rlocus_defaults) - - if not sys.issiso(): - raise ControlMIMONotImplemented( - 'sys must be single-input single-output (SISO)') - - # Convert numerator and denominator to polynomials if they aren't - nump, denp = _systopoly1d(sys) - - # if discrete-time system and if xlim and ylim are not given, - # that we a view of the unit circle - if xlim is None and isdtime(sys, strict=True): - xlim = (-1.2, 1.2) - if ylim is None and isdtime(sys, strict=True): - xlim = (-1.3, 1.3) - - if kvect is None: - kvect, root_array, xlim, ylim = _default_gains(nump, denp, xlim, ylim) - recompute_on_zoom = True - else: - kvect = np.atleast_1d(kvect) - root_array = _RLFindRoots(nump, denp, kvect) - root_array = _RLSortRoots(root_array) - recompute_on_zoom = False + from .pzmap import pole_zero_plot - # Make sure there were no extraneous keywords - if kwargs: - raise TypeError("unrecognized keywords: ", str(kwargs)) + # Set default parameters + # TODO: move this to pole_zero_plot() + grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) - # Create the Plot - # TODO: replace with pole_zero_plot and move additional functionality there + responses = root_locus_map(sysdata, gains=kvect) + # TODO: update to include legacy keyword processing (use pole_zero_plot?) if plot: - if ax is None: - ax = plt.gca() - ax.set_title('Root Locus') - fig = ax.figure - - # TODO: get rid of extra variable start_roots - if initial_gain is not None: - start_roots = _RLFindRoots(nump, denp, initial_gain) - else: - start_roots = None - - # TODO: don't rely on `start_roots` (sisotool holdover) - if print_gain and start_roots is None: - fig.canvas.mpl_connect( - 'button_release_event', - partial(_RLClickDispatcher, sys=sys, fig=fig, - ax_rlocus=ax, plotstr=plotstr)) - elif start_roots is not None: - ax.plot( - [root.real for root in start_roots], - [root.imag for root in start_roots], - marker='s', markersize=6, zorder=20, color='k', - label='gain_point') - s = start_roots[0][0] - if isdtime(sys, strict=True): - zeta = -np.cos(np.angle(np.log(s))) - else: - zeta = -1 * s.real / abs(s) - fig.suptitle( - "Clicked at: %10.4g%+10.4gj gain: %10.4g damp: %10.4g" % - (s.real, s.imag, initial_gain, zeta), - fontsize=12 if int(mpl.__version__[0]) == 1 else 10) - - if recompute_on_zoom: - # update gains and roots when xlim/ylim change. Only then are - # data on available. I.e., cannot combine with _RLClickDispatcher - dpfun = partial( - _RLZoomDispatcher, sys=sys, ax_rlocus=ax, plotstr=plotstr) - # TODO: the next too lines seem to take a long time to execute - # TODO: is there a way to speed them up? (RMM, 6 Jun 2019) - ax.callbacks.connect('xlim_changed', dpfun) - ax.callbacks.connect('ylim_changed', dpfun) - - # plot open loop poles - poles = array(denp.r) - ax.plot(real(poles), imag(poles), 'x') - - # plot open loop zeros - zeros = array(nump.r) - if zeros.size > 0: - ax.plot(real(zeros), imag(zeros), 'o') - - # Now plot the loci - for index, col in enumerate(root_array.T): - ax.plot(real(col), imag(col), plotstr, label='rootlocus') - - # Set up plot axes and labels - ax.set_xlabel('Real') - ax.set_ylabel('Imaginary') - - # Set up the limits for the plot - # Note: need to do this before computing grid lines - if xlim: - ax.set_xlim(xlim) - if ylim: - ax.set_ylim(ylim) - - # Draw the grid - if grid: - if isdtime(sys, strict=True): - zgrid(ax=ax) - else: - _sgrid_func(ax) - else: - ax.axhline(0., linestyle=':', color='k', linewidth=.75, zorder=-20) - ax.axvline(0., linestyle=':', color='k', linewidth=.75, zorder=-20) - if isdtime(sys, strict=True): - ax.add_patch(plt.Circle( - (0, 0), radius=1.0, linestyle=':', edgecolor='k', - linewidth=0.75, fill=False, zorder=-20)) + responses.plot(grid=grid, **kwargs) - return root_array, kvect + # TODO: legacy return value; update + return responses.loci, responses.gains +# TODO: get rid of zoom functionality? def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): """Unsupervised gains calculation for root locus plot. @@ -320,7 +245,7 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): def _indexes_filt(root_array, tolerance, zoom_xlim=None, zoom_ylim=None): - """Calculate the distance between points and return the indexes. + """Calculate the distance between points and return the indices. Filter the indexes so only the resolution of points within the xlim and ylim is improved when zoom is used. @@ -510,253 +435,6 @@ def _RLSortRoots(roots): return sorted -def _RLZoomDispatcher(event, sys, ax_rlocus, plotstr): - """Rootlocus plot zoom dispatcher""" - sys_loop = sys[0,0] - nump, denp = _systopoly1d(sys_loop) - xlim, ylim = ax_rlocus.get_xlim(), ax_rlocus.get_ylim() - - kvect, root_array, xlim, ylim = _default_gains( - nump, denp, xlim=None, ylim=None, zoom_xlim=xlim, zoom_ylim=ylim) - _removeLine('rootlocus', ax_rlocus) - - for i, col in enumerate(root_array.T): - ax_rlocus.plot(real(col), imag(col), plotstr, label='rootlocus', - scalex=False, scaley=False) - - -def _RLClickDispatcher(event, sys, fig, ax_rlocus, plotstr, - bode_plot_params=None, tvect=None): - """Rootlocus plot click dispatcher""" - - # Zoom is handled by specialized callback above, only do gain plot - if event.inaxes == ax_rlocus.axes and \ - plt.get_current_fig_manager().toolbar.mode not in \ - {'zoom rect', 'pan/zoom'}: - - # if a point is clicked on the rootlocus plot visually emphasize it - K = _RLFeedbackClicksPoint( - event, sys, fig, ax_rlocus, show_clicked=False) - - # Update the canvas - fig.canvas.draw() - - -def _RLFeedbackClicksPoint(event, sys, fig, ax_rlocus, show_clicked=False): - """Display root-locus gain feedback point for clicks on root-locus plot""" - sys_loop = sys[0,0] - (nump, denp) = _systopoly1d(sys_loop) - - xlim = ax_rlocus.get_xlim() - ylim = ax_rlocus.get_ylim() - x_tolerance = 0.1 * abs((xlim[1] - xlim[0])) - y_tolerance = 0.1 * abs((ylim[1] - ylim[0])) - gain_tolerance = np.mean([x_tolerance, y_tolerance])*0.1 - - # Catch type error when event click is in the figure but not in an axis - try: - s = complex(event.xdata, event.ydata) - K = -1. / sys_loop(s) - K_xlim = -1. / sys_loop( - complex(event.xdata + 0.05 * abs(xlim[1] - xlim[0]), event.ydata)) - K_ylim = -1. / sys_loop( - complex(event.xdata, event.ydata + 0.05 * abs(ylim[1] - ylim[0]))) - - except TypeError: - K = float('inf') - K_xlim = float('inf') - K_ylim = float('inf') - - gain_tolerance += 0.1 * max([abs(K_ylim.imag/K_ylim.real), - abs(K_xlim.imag/K_xlim.real)]) - - if abs(K.real) > 1e-8 and abs(K.imag / K.real) < gain_tolerance and \ - event.inaxes == ax_rlocus.axes and K.real > 0.: - - if isdtime(sys, strict=True): - zeta = -np.cos(np.angle(np.log(s))) - else: - zeta = -1 * s.real / abs(s) - - # Display the parameters in the output window and figure - print("Clicked at %10.4g%+10.4gj gain %10.4g damp %10.4g" % - (s.real, s.imag, K.real, zeta)) - fig.suptitle( - "Clicked at: %10.4g%+10.4gj gain: %10.4g damp: %10.4g" % - (s.real, s.imag, K.real, zeta), - fontsize=12 if int(mpl.__version__[0]) == 1 else 10) - - # Remove the previous line - _removeLine(label='gain_point', ax=ax_rlocus) - - if show_clicked: - # Visualise clicked point, display all roots - root_array = _RLFindRoots(nump, denp, K.real) - ax_rlocus.plot( - [root.real for root in root_array], - [root.imag for root in root_array], - marker='s', markersize=6, zorder=20, label='gain_point', - color='k') - else: - # Just show the clicked point - # TODO: should we keep this? - ax_rlocus.plot( - s.real, s.imag, 'k.', marker='s', markersize=8, zorder=20, - label='gain_point') - - return K.real - - -def _removeLine(label, ax): - """Remove a line from the ax when a label is specified""" - for line in reversed(ax.lines): - if line.get_label() == label: - line.remove() - del line - - -# TODO: remove and replace with sgid()? -def _sgrid_func(ax, zeta=None, wn=None): - # Get locator function for x-axis, y-axis tick marks - xlocator = ax.get_xaxis().get_major_locator() - ylocator = ax.get_yaxis().get_major_locator() - - # Decide on the location for the labels (?) - ylim = ax.get_ylim() - ytext_pos_lim = ylim[1] - (ylim[1] - ylim[0]) * 0.03 - xlim = ax.get_xlim() - xtext_pos_lim = xlim[0] + (xlim[1] - xlim[0]) * 0.0 - - # Create a list of damping ratios, if needed - if zeta is None: - zeta = _default_zetas(xlim, ylim) - - # Figure out the angles for the different damping ratios - angles = [] - for z in zeta: - if (z >= 1e-4) and (z <= 1): - angles.append(np.pi/2 + np.arcsin(z)) - else: - zeta.remove(z) - y_over_x = np.tan(angles) - - # zeta-constant lines - for index, yp in enumerate(y_over_x): - ax.plot([0, xlocator()[0]], [0, yp * xlocator()[0]], color='gray', - linestyle='dashed', linewidth=0.5) - ax.plot([0, xlocator()[0]], [0, -yp * xlocator()[0]], color='gray', - linestyle='dashed', linewidth=0.5) - an = "%.2f" % zeta[index] - if yp < 0: - xtext_pos = 1/yp * ylim[1] - ytext_pos = yp * xtext_pos_lim - if np.abs(xtext_pos) > np.abs(xtext_pos_lim): - xtext_pos = xtext_pos_lim - else: - ytext_pos = ytext_pos_lim - ax.annotate(an, textcoords='data', xy=[xtext_pos, ytext_pos], - fontsize=8) - ax.plot([0, 0], [ylim[0], ylim[1]], - color='gray', linestyle='dashed', linewidth=0.5) - - # omega-constant lines - angles = np.linspace(-90, 90, 20) * np.pi/180 - if wn is None: - wn = _default_wn(xlocator(), ylocator()) - - for om in wn: - if om < 0: - # Generate the lines for natural frequency curves - yp = np.sin(angles) * np.abs(om) - xp = -np.cos(angles) * np.abs(om) - - # Plot the natural frequency contours - ax.plot(xp, yp, color='gray', linestyle='dashed', linewidth=0.5) - - # Annotate the natural frequencies by listing on x-axis - # Note: need to filter values for proper plotting in Jupyter - if (om > xlim[0]): - an = "%.2f" % -om - ax.annotate(an, textcoords='data', xy=[om, 0], fontsize=8) - - -def _default_zetas(xlim, ylim): - """Return default list of damping coefficients - - This function computes a list of damping coefficients based on the limits - of the graph. A set of 4 damping coefficients are computed for the x-axis - and a set of three damping coefficients are computed for the y-axis - (corresponding to the normal 4:3 plot aspect ratio in `matplotlib`?). - - Parameters - ---------- - xlim : array_like - List of x-axis limits [min, max] - ylim : array_like - List of y-axis limits [min, max] - - Returns - ------- - zeta : list - List of default damping coefficients for the plot - - """ - # Damping coefficient lines that intersect the x-axis - sep1 = -xlim[0] / 4 - ang1 = [np.arctan((sep1*i)/ylim[1]) for i in np.arange(1, 4, 1)] - - # Damping coefficient lines that intersection the y-axis - sep2 = ylim[1] / 3 - ang2 = [np.arctan(-xlim[0]/(ylim[1]-sep2*i)) for i in np.arange(1, 3, 1)] - - # Put the lines together and add one at -pi/2 (negative real axis) - angles = np.concatenate((ang1, ang2)) - angles = np.insert(angles, len(angles), np.pi/2) - - # Return the damping coefficients corresponding to these angles - zeta = np.sin(angles) - return zeta.tolist() - - -def _default_wn(xloc, yloc, max_lines=7): - """Return default wn for root locus plot - - This function computes a list of natural frequencies based on the grid - parameters of the graph. - - Parameters - ---------- - xloc : array_like - List of x-axis tick values - ylim : array_like - List of y-axis limits [min, max] - max_lines : int, optional - Maximum number of frequencies to generate (default = 7) - - Returns - ------- - wn : list - List of default natural frequencies for the plot - - """ - sep = xloc[1]-xloc[0] # separation between x-ticks - - # Decide whether to use the x or y axis for determining wn - if yloc[-1] / sep > max_lines*10: - # y-axis scale >> x-axis scale - wn = yloc # one frequency per y-axis tick mark - else: - wn = xloc # one frequency per x-axis tick mark - - # Insert additional frequencies to span the y-axis - while np.abs(wn[0]) < yloc[-1]: - wn = np.insert(wn, 0, wn[0]-sep) - - # If there are too many values, cut them in half - while len(wn) > max_lines: - wn = wn[0:-1:2] - - return wn - - -rlocus = root_locus +# Alternative ways to call these functions +root_locus = root_locus_plot +rlocus = root_locus_plot diff --git a/control/sisotool.py b/control/sisotool.py index ce77c0954..fad1cb68d 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -88,7 +88,7 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, >>> ct.sisotool(G) # doctest: +SKIP """ - from .rlocus import root_locus + from .rlocus import root_locus_map # sys as loop transfer function if SISO if not sys.issiso(): @@ -128,35 +128,47 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, # First time call to setup the Bode and step response plots _SisotoolUpdate(sys, fig, initial_gain, bode_plot_params) - root_locus( - sys[0, 0], initial_gain=initial_gain, xlim=xlim_rlocus, - ylim=ylim_rlocus, plotstr=plotstr_rlocus, grid=rlocus_grid, - ax=fig.axes[1]) + # root_locus( + # sys[0, 0], initial_gain=initial_gain, xlim=xlim_rlocus, + # ylim=ylim_rlocus, plotstr=plotstr_rlocus, grid=rlocus_grid, + # 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, + initial_gain=initial_gain, ax=ax_rlocus) + if rlocus_grid is False: + # Need to generate grid manually, since root_locus_plot() won't + from .grid import nogrid + nogrid(sys.dt, ax=ax_rlocus) # Reset the button release callback so that we can update all plots fig.canvas.mpl_connect( - 'button_release_event', - partial(_click_dispatcher, sys=sys, fig=fig, - ax_rlocus=fig.axes[1], plotstr=plotstr_rlocus, - bode_plot_params=bode_plot_params, tvect=tvect)) + 'button_release_event', partial( + _click_dispatcher, sys=sys, ax=fig.axes[1], + bode_plot_params=bode_plot_params, tvect=tvect)) -def _click_dispatcher(event, sys, fig, ax_rlocus, plotstr, - bode_plot_params=None, tvect=None): - from .rlocus import _RLFeedbackClicksPoint - - # Zoom is handled by specialized callback in rlocus, only handle gain plot - if event.inaxes == ax_rlocus.axes and \ +def _click_dispatcher(event, sys, ax, bode_plot_params, tvect): + # Zoom handled by specialized callback in rlocus, only handle gain plot + if event.inaxes == ax.axes and \ plt.get_current_fig_manager().toolbar.mode not in \ {'zoom rect', 'pan/zoom'}: + fig = ax.figure + # if a point is clicked on the rootlocus plot visually emphasize it - K = _RLFeedbackClicksPoint( - event, sys, fig, ax_rlocus, show_clicked=True) + # K = _RLFeedbackClicksPoint( + # event, sys, fig, ax_rlocus, show_clicked=True) + from .pzmap import _find_root_locus_gain, _mark_root_locus_gain, \ + _create_root_locus_label + + K, s = _find_root_locus_gain(event, sys, ax) if K is not None: + _mark_root_locus_gain(ax, sys, K) + fig.suptitle(_create_root_locus_label(sys, K, s), fontsize=10) _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect) - # Update the canvas - fig.canvas.draw() + # Update the canvas + fig.canvas.draw() def _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect=None): diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 4fe965e70..bdcae1885 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -97,6 +97,7 @@ def test_kwarg_search(module, prefix): (control.pzmap, 1, 0, (), {}), (control.rlocus, 0, 1, (), {}), (control.root_locus, 0, 1, (), {}), + (control.root_locus_plot, 0, 1, (), {}), (control.rss, 0, 0, (2, 1, 1), {}), (control.set_defaults, 0, 0, ('control',), {'default_dt': True}), (control.ss, 0, 0, (0, 0, 0, 0), {'dt': 1}), @@ -244,6 +245,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'pole_zero_plot': test_unrecognized_kwargs, 'rlocus': test_unrecognized_kwargs, 'root_locus': test_unrecognized_kwargs, + 'root_locus_plot': test_unrecognized_kwargs, 'rss': test_unrecognized_kwargs, 'set_defaults': test_unrecognized_kwargs, 'singular_values_plot': test_matplotlib_kwargs, diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index d69e413db..12486cb5b 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -9,7 +9,7 @@ import pytest import control as ct -from control.rlocus import root_locus, _RLClickDispatcher +from control.rlocus import root_locus from control.xferfcn import TransferFunction from control.statesp import StateSpace from control.bdalg import feedback @@ -64,6 +64,7 @@ def test_without_gains(self, sys): roots, kvect = root_locus(sys, plot=False) self.check_cl_poles(sys, roots, kvect) + @pytest.mark.skip("TODO: update test for rlocus gridlines") @pytest.mark.slow @pytest.mark.parametrize('grid', [None, True, False]) def test_root_locus_plot_grid(self, sys, grid): @@ -85,6 +86,7 @@ def test_root_locus_neg_false_gain_nonproper(self): # TODO: cover and validate negative false_gain branch in _default_gains() + @pytest.mark.skip("TODO: update test to check click dispatcher") @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, reason="Requires the zoom toolbar") def test_root_locus_zoom(self): @@ -138,11 +140,12 @@ def test_rlocus_default_wn(self): # TODO: add additional test cases @pytest.mark.parametrize( - "sys, grid, xlim, ylim", [ - (ct.tf([1], [1, 2, 1]), None, None, None), + "sys, grid, xlim, ylim, interactive", [ + (ct.tf([1], [1, 2, 1]), None, None, None, False), ]) -def test_root_locus_plots(sys, grid, xlim, ylim): - ct.root_locus_map(sys).plot(grid=grid, xlim=xlim, ylim=ylim) +def test_root_locus_plots(sys, grid, xlim, ylim, interactive): + ct.root_locus_map(sys).plot( + grid=grid, xlim=xlim, ylim=ylim, interactive=interactive) # TODO: add tests to make sure everything "looks" OK @@ -175,23 +178,25 @@ def test_root_locus_plots(sys, grid, xlim, ylim): # Run through a large number of test cases test_cases = [ - # sys grid xlim ylim - (sys_secord, None, None, None), - (sys_seczero, None, None, None), - (sys_fbs_a, None, None, None), - (sys_fbs_b, None, None, None), - (sys_fbs_c, None, None, None), - (sys_fbs_c, None, None, [-2, 2]), - (sys_fbs_c, True, [-3, 3], None), - (sys_fbs_d, None, None, None), + # sys grid xlim ylim inter + (sys_secord, None, None, None, None), + (sys_seczero, None, None, None, None), + (sys_fbs_a, None, None, None, None), + (sys_fbs_b, None, None, None, None), + (sys_fbs_c, None, None, None, None), + (sys_fbs_c, None, None, [-2, 2], None), + (sys_fbs_c, True, [-3, 3], None, None), + (sys_fbs_d, None, None, None, None), (ct.zpk(sys_zeros * 10, sys_poles * 10, 1, name="12_19d * 10"), - None, None, None), + None, None, None, None), (ct.zpk(sys_zeros / 10, sys_poles / 10, 1, name="12_19d / 10"), - True, None, None), - (sys_discrete, None, None, None), - (sys_discrete, True, None, None), + True, None, None, None), + (sys_discrete, None, None, None, None), + (sys_discrete, True, None, None, None), + (sys_fbs_d, True, None, None, True), ] - for sys, grid, xlim, ylim in test_cases: + for sys, grid, xlim, ylim, interactive in test_cases: plt.figure() - test_root_locus_plots(sys, grid=grid, xlim=xlim, ylim=ylim) + test_root_locus_plots( + sys, grid=grid, xlim=xlim, ylim=ylim, interactive=interactive) diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index 8b29b5438..b5aaeb900 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -57,11 +57,11 @@ def test_sisotool(self, tsys): initial_point_0 = (np.array([-22.53155977]), np.array([0.])) initial_point_1 = (np.array([-1.23422011]), np.array([-6.54667031])) initial_point_2 = (np.array([-1.23422011]), np.array([6.54667031])) - assert_array_almost_equal(ax_rlocus.lines[0].get_data(), + assert_array_almost_equal(ax_rlocus.lines[4].get_data(), initial_point_0, 4) - assert_array_almost_equal(ax_rlocus.lines[1].get_data(), + assert_array_almost_equal(ax_rlocus.lines[5].get_data(), initial_point_1, 4) - assert_array_almost_equal(ax_rlocus.lines[2].get_data(), + assert_array_almost_equal(ax_rlocus.lines[6].get_data(), initial_point_2, 4) # Check the step response before moving the point @@ -93,9 +93,8 @@ def test_sisotool(self, tsys): event = type('test', (object,), {'xdata': 2.31206868287, 'ydata': 15.5983051046, 'inaxes': ax_rlocus.axes})() - _click_dispatcher(event=event, sys=tsys, fig=fig, - ax_rlocus=ax_rlocus, plotstr='-', - bode_plot_params=bode_plot_params, tvect=None) + _click_dispatcher(event=event, sys=tsys, ax=ax_rlocus, + bode_plot_params=bode_plot_params, tvect=None) # Check the moved root locus plot points moved_point_0 = (np.array([-29.91742755]), np.array([0.])) @@ -143,9 +142,8 @@ def test_sisotool_tvect(self, tsys): event = type('test', (object,), {'xdata': 2.31206868287, 'ydata': 15.5983051046, 'inaxes': ax_rlocus.axes})() - _click_dispatcher(event=event, sys=tsys, fig=fig, - ax_rlocus=ax_rlocus, plotstr='-', - bode_plot_params=dict(), tvect=tvect) + _click_dispatcher(event=event, sys=tsys, ax=ax_rlocus, + bode_plot_params=dict(), tvect=tvect) assert_array_almost_equal(tvect, ax_step.lines[0].get_data()[0]) @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, @@ -202,3 +200,21 @@ def test_pid_designer_1(self, plant, gain, sign, input_signal, Kp0, Ki0, Kd0, de def test_pid_designer_2(self, plant, kwargs): rootlocus_pid_designer(plant, **kwargs) + +if __name__ == "__main__": + # + # Interactive mode: generate plots for manual viewing + # + # Running this script in python (or better ipython) will show a + # collection of figures that should all look OK on the screeen. + # + import control as ct + + # In interactive mode, turn on ipython interactive graphics + plt.ion() + + # Start by clearing existing figures + plt.close('all') + + tsys = ct.tf([1000], [1, 25, 100, 0]) + ct.sisotool(tsys) From ee46ac6a2fa1f7375706d28b135ac07cdfd6156f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Mon, 25 Dec 2023 19:59:40 -0800 Subject: [PATCH 0404/1025] adjust root locus spacing and add scaling keyword --- control/grid.py | 55 ++++++++++++++++++++++++++-------------------- control/pzmap.py | 57 +++++++++++++++++++++++++++++++----------------- 2 files changed, 68 insertions(+), 44 deletions(-) diff --git a/control/grid.py b/control/grid.py index 302f3595b..b1447f1a3 100644 --- a/control/grid.py +++ b/control/grid.py @@ -1,6 +1,14 @@ +# grid.py - code to add gridlines to root locus and pole-zero diagrams +# +# This code generates grids for pole-zero diagrams (including root locus +# diagrams). Rather than just draw a grid in place, it uses the AxisArtist +# package to generate a custom grid that will scale with the figure. +# + import numpy as np from numpy import cos, sin, sqrt, linspace, pi, exp import matplotlib.pyplot as plt + from mpl_toolkits.axisartist import SubplotHost from mpl_toolkits.axisartist.grid_helper_curvelinear \ import GridHelperCurveLinear @@ -67,14 +75,15 @@ def __call__(self, transform_xy, x1, y1, x2, y2): return lon_min, lon_max, lat_min, lat_max -def sgrid(): +def sgrid(scaling=None): # From matplotlib demos: # https://matplotlib.org/gallery/axisartist/demo_curvelinear_grid.html # https://matplotlib.org/gallery/axisartist/demo_floating_axis.html # PolarAxes.PolarTransform takes radian. However, we want our coordinate - # system in degree + # system in degrees tr = Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform() + # polar projection, which involves cycle, and also has limits in # its coordinates, needs a special method to find the extremes # (min, max of the coordinate within the view). @@ -91,6 +100,7 @@ def sgrid(): tr, extreme_finder=extreme_finder, grid_locator1=grid_locator1, tick_formatter1=tick_formatter1) + # Set up an axes with a specialized grid helper fig = plt.gcf() ax = SubplotHost(fig, 1, 1, 1, grid_helper=grid_helper) @@ -101,6 +111,7 @@ def sgrid(): ax.axis[:].invert_ticklabel_direction() ax.axis[:].major_ticklabels.set_color('gray') + # Set up internal tickmarks and labels along the real/imag axes ax.axis["wnxneg"] = axis = ax.new_floating_axis(0, 180) axis.set_ticklabel_direction("-") axis.label.set_visible(False) @@ -125,35 +136,26 @@ def sgrid(): ax.axis["bottom"].get_helper().nth_coord_ticks = 0 fig.add_subplot(ax) - - # RECTANGULAR X Y AXES WITH SCALE - # par2 = ax.twiny() - # par2.axis["top"].toggle(all=False) - # par2.axis["right"].toggle(all=False) - # new_fixed_axis = par2.get_grid_helper().new_fixed_axis - # par2.axis["left"] = new_fixed_axis(loc="left", - # axes=par2, - # offset=(0, 0)) - # par2.axis["bottom"] = new_fixed_axis(loc="bottom", - # axes=par2, - # offset=(0, 0)) - # FINISH RECTANGULAR - ax.grid(True, zorder=0, linestyle='dotted') - _final_setup(ax) + _final_setup(ax, scaling=scaling) return ax, fig -def _final_setup(ax): +# 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.5) ax.axvline(x=0, color='black', lw=0.5) - plt.axis('equal') + + # Set up the scaling for the axes + scaling = 'equal' if scaling is None else scaling + plt.axis(scaling) -def nogrid(dt=None, ax=None): +# If not grid is given, at least separate stable/unstable regions +def nogrid(dt=None, ax=None, scaling=None): fig = plt.gcf() if ax is None: ax = fig.gca() @@ -163,11 +165,12 @@ def nogrid(dt=None, ax=None): s = np.linspace(0, 2*pi, 100) ax.plot(np.cos(s), np.sin(s), 'k--', lw=0.5, dashes=(5, 5)) - _final_setup(ax) + _final_setup(ax, scaling=scaling) return ax, fig - -def zgrid(zetas=None, wns=None, ax=None): +# Grid for discrete time system (drawn, not rendered by AxisArtist) +# TODO (at some point): think about using customized grid generator? +def zgrid(zetas=None, wns=None, ax=None, scaling=None): """Draws discrete damping and frequency grid""" fig = plt.gcf() @@ -218,5 +221,9 @@ def zgrid(zetas=None, wns=None, ax=None): ax.annotate(r"$\frac{"+num+r"\pi}{T}$", xy=(an_x, an_y), xytext=(an_x, an_y), size=9) - _final_setup(ax) + # Set default axes to allow some room around the unit circle + ax.set_xlim([-1.1, 1.1]) + ax.set_ylim([-1.1, 1.1]) + + _final_setup(ax, scaling=scaling) return ax, fig diff --git a/control/pzmap.py b/control/pzmap.py index 773c6df95..eaf3897fd 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -42,7 +42,8 @@ 'pzmap.grid': False, # Plot omega-damping grid 'pzmap.marker_size': 6, # Size of the markers 'pzmap.marker_width': 1.5, # Width of the markers - 'pzmap.expansion_factor': 2, # Amount to scale plots beyond features + 'pzmap.expansion_factor': 1.8, # Amount to scale plots beyond features + 'pzmap.buffer_factor': 1.05, # Buffer to leave around plot peaks } # @@ -110,7 +111,7 @@ def pole_zero_map(sysdata): 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=False, ax=None, + xlim=None, ylim=None, interactive=False, ax=None, scaling=None, initial_gain=None, **kwargs): # TODO: update docstring (see other response/plot functions for style) """Plot a pole/zero map for a linear system. @@ -144,7 +145,7 @@ def pole_zero_plot( (legacy) If the `plot` keyword is given, the system poles and zeros are returned. - Notes (TODO: update) + Notes (TODO: update, including scaling) ----- The pzmap function calls matplotlib.pyplot.axis('equal'), which means that trying to reset the axis limits may not behave as expected. To @@ -209,14 +210,15 @@ def pole_zero_plot( if grid: plt.clf() if all([isctime(dt=response.dt) for response in data]): - ax, fig = sgrid() + ax, fig = sgrid(scaling=scaling) elif all([isdtime(dt=response.dt) for response in data]): - ax, fig = zgrid() + ax, fig = zgrid(scaling=scaling) else: ValueError( "incompatible time responses; don't know how to grid") elif len(axs) == 0: - ax, fig = nogrid(data[0].dt) # use first response timebase + # use first response timebase + ax, fig = nogrid(data[0].dt, scaling=scaling) else: # Use the existing axes and any grid that is there # TODO: allow axis to be overriden via parameter @@ -270,7 +272,7 @@ def pole_zero_plot( label=response.sysname) # Compute the axis limits to use based on the response - resp_xlim, resp_ylim = _compute_root_locus_limits(response.loci) + resp_xlim, resp_ylim = _compute_root_locus_limits(response) # Keep track of the current limits xlim = [min(xlim[0], resp_xlim[0]), max(xlim[1], resp_xlim[1])] @@ -433,11 +435,22 @@ def _create_root_locus_label(sys, K, s): # Utility function to compute limits for root loci -# TODO: compare to old code and recapture functionality (especially asymptotes) # TODO: (note that sys is now available => code here may not be needed) -def _compute_root_locus_limits(loci): - # Go through each locus - xlim, ylim = [0, 0], 0 +def _compute_root_locus_limits(response): + loci = response.loci + + # Start with information about zeros, if present + if response.sys is not None and response.sys.zeros().size > 0: + xlim = [ + min(0, np.min(response.sys.zeros().real)), + max(0, np.max(response.sys.zeros().real)) + ] + ylim = max(0, np.max(response.sys.zeros().imag)) + else: + xlim, ylim = [0, 0], 0 + + # Go through each locus and look for features + rho = config._get_param('pzmap', 'buffer_factor') for locus in loci.transpose(): # Include all starting points xlim = [min(xlim[0], locus[0].real), max(xlim[1], locus[0].real)] @@ -446,18 +459,22 @@ def _compute_root_locus_limits(loci): # Find the local maxima of root locus curve xpeaks = np.where( np.diff(np.abs(locus.real)) < 0, locus.real[0:-1], 0) - xlim = [min(xlim[0], np.min(xpeaks)), max(xlim[1], np.max(xpeaks))] + xlim = [ + min(xlim[0], np.min(xpeaks) * rho), + max(xlim[1], np.max(xpeaks) * rho) + ] ypeaks = np.where( np.diff(np.abs(locus.imag)) < 0, locus.imag[0:-1], 0) - ylim = max(ylim, np.max(ypeaks)) - - # Adjust the limits to include some space around features - # TODO: use _k_max and project out to max k for all value? - rho = config._get_param('pzmap', 'expansion_factor') - xlim[0] = rho * xlim[0] if xlim[0] < 0 else 0 - xlim[1] = rho * xlim[1] if xlim[1] > 0 else 0 - ylim = rho * ylim if ylim > 0 else np.max(np.abs(xlim)) + ylim = max(ylim, np.max(ypeaks) * rho) + + if isctime(dt=response.dt): + # Adjust the limits to include some space around features + # TODO: use _k_max and project out to max k for all value? + rho = config._get_param('pzmap', 'expansion_factor') + xlim[0] = rho * xlim[0] if xlim[0] < 0 else 0 + xlim[1] = rho * xlim[1] if xlim[1] > 0 else 0 + ylim = rho * ylim if ylim > 0 else np.max(np.abs(xlim)) return xlim, [-ylim, ylim] From 0d23598ce89bb0d8af7187a952351a7c63ce3fdb Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 27 Dec 2023 22:03:25 -0800 Subject: [PATCH 0405/1025] tweak grid processing, add documentation, interactive by default --- control/grid.py | 4 +-- control/pzmap.py | 72 ++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 59 insertions(+), 17 deletions(-) diff --git a/control/grid.py b/control/grid.py index b1447f1a3..d56585aca 100644 --- a/control/grid.py +++ b/control/grid.py @@ -146,8 +146,8 @@ def sgrid(scaling=None): def _final_setup(ax, scaling=None): ax.set_xlabel('Real') ax.set_ylabel('Imaginary') - ax.axhline(y=0, color='black', lw=0.5) - ax.axvline(x=0, color='black', lw=0.5) + 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 diff --git a/control/pzmap.py b/control/pzmap.py index eaf3897fd..b4cc2fec8 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -39,7 +39,7 @@ # Define default parameter values for this module _pzmap_defaults = { - 'pzmap.grid': False, # Plot omega-damping grid + 'pzmap.grid': None, # Plot omega-damping grid 'pzmap.marker_size': 6, # Size of the markers 'pzmap.marker_width': 1.5, # Width of the markers 'pzmap.expansion_factor': 1.8, # Amount to scale plots beyond features @@ -111,20 +111,28 @@ def pole_zero_map(sysdata): 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=False, ax=None, scaling=None, + xlim=None, ylim=None, interactive=None, ax=None, scaling=None, initial_gain=None, **kwargs): # TODO: update docstring (see other response/plot functions for style) """Plot a pole/zero map for a linear system. + If the system data include root loci, a root locus diagram for the + system is plotted. When the root locus for a single system is plotted, + clicking on a location on the root locus will mark the gain on all + branches of the diagram and show the system gain and damping for the + given pole in the axes title. Set to False to turn off this behavior. + Parameters ---------- - sysdata: List of PoleZeroData objects or LTI systems + sysdata : List of PoleZeroData objects or LTI systems List of pole/zero response data objects generated by pzmap_response or rootlocus_response() that are to be plotted. If a list of systems is given, the poles and zeros of those systems will be plotted. - grid: boolean (default = False) - If True plot omega-damping grid. - plot: bool, optional + grid : boolean (default = None) + If True plot omega-damping grid, otherwise show imaginary axis for + continuous time systems, unit circle for discrete time systems. If + `False`, do not draw any additonal lines. + plot : bool, optional (legacy) If ``True`` a graph is generated with Matplotlib, otherwise the poles and zeros are only computed and returned. If this argument is present, the legacy value of poles and @@ -145,16 +153,42 @@ def pole_zero_plot( (legacy) If the `plot` keyword is given, the system poles and zeros are returned. - Notes (TODO: update, including scaling) + 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]. + title : str, optional + Set the title of the plot. Defaults plot type and system name(s). + marker_color : str, optional + Set the color of the markers used for poles and zeros. + marker_color : 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. + 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 ----- - The pzmap function calls matplotlib.pyplot.axis('equal'), which means - that trying to reset the axis limits may not behave as expected. To - change the axis limits, use matplotlib.pyplot.gca().axis('auto') and - then set the axis limits to the desired values. + By default, the pzmap function calls matplotlib.pyplot.axis('equal'), + which means that trying to reset the axis limits may not behave as + expected. To change the axis limits, use the `scaling` keyword of use + matplotlib.pyplot.gca().axis('auto') and then set the axis limits to + the desired values. """ # Get parameter values - grid = config._get_param('pzmap', 'grid', grid, False) + grid = config._get_param('pzmap', 'grid', grid, None) 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 @@ -177,6 +211,11 @@ def pole_zero_plot( else: raise TypeError("unknown system data type") + # Turn on interactive mode by default, if allowed + if interactive is None and len(pzmap_responses) == 1 \ + and pzmap_responses[0].sys is not None: + interactive = True + # Legacy return value processing if plot is not None: warnings.warn( @@ -217,11 +256,14 @@ def pole_zero_plot( ValueError( "incompatible time responses; don't know how to grid") elif len(axs) == 0: - # use first response timebase - ax, fig = nogrid(data[0].dt, scaling=scaling) + if grid is False: + # Leave off grid entirely + ax = plt.axes() + else: + # use first response timebase + ax, fig = nogrid(data[0].dt, scaling=scaling) else: # Use the existing axes and any grid that is there - # TODO: allow axis to be overriden via parameter ax = axs[0] # Handle color cycle manually as all root locus segments From 0137056dace0476f6663f20cd099753f70e79e74 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 27 Dec 2023 22:27:19 -0800 Subject: [PATCH 0406/1025] add legacy processing for root_locus --- control/rlocus.py | 29 +++++++++++++++++++++++------ control/tests/rlocus_test.py | 10 +++++----- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/control/rlocus.py b/control/rlocus.py index 07c6b67c6..970c7b98c 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -75,7 +75,7 @@ def root_locus_map(sysdata, gains=None): def root_locus_plot( - sysdata, kvect=None, grid=None, plot=True, **kwargs): + sysdata, kvect=None, grid=None, plot=None, **kwargs): """Root locus plot. Calculate the root locus by finding the roots of 1 + k * G(s) where G @@ -131,12 +131,29 @@ def root_locus_plot( grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) responses = root_locus_map(sysdata, gains=kvect) - # TODO: update to include legacy keyword processing (use pole_zero_plot?) - if plot: - responses.plot(grid=grid, **kwargs) - # TODO: legacy return value; update - return responses.loci, responses.gains + # + # Process `plot` keyword + # + # See bode_plot for a description of how this keyword is handled to + # support legacy implementatoins of root_locus. + # + if plot is not None: + warnings.warn( + "`root_locus` return values of loci, gains is deprecated; " + "use root_locus_map()", DeprecationWarning) + + if plot is False: + return responses.loci, responses.gains + + # Plot the root loci + out = 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 # TODO: get rid of zoom functionality? diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index 12486cb5b..7f36c035b 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -55,7 +55,7 @@ def testRootLocus(self, sys): self.check_cl_poles(sys, roots, klist) # now check with plotting - roots, k_out = root_locus(sys, klist) + roots, k_out = root_locus(sys, klist, plot=True) np.testing.assert_equal(len(roots), len(klist)) np.testing.assert_allclose(klist, k_out) self.check_cl_poles(sys, roots, klist) @@ -68,7 +68,7 @@ def test_without_gains(self, sys): @pytest.mark.slow @pytest.mark.parametrize('grid', [None, True, False]) def test_root_locus_plot_grid(self, sys, grid): - rlist, klist = root_locus(sys, grid=grid) + rlist, klist = root_locus(sys, plot=True, grid=grid) ax = plt.gca() n_gridlines = sum([int(line.get_linestyle() in [':', 'dotted', '--', 'dashed']) @@ -82,7 +82,7 @@ def test_root_locus_plot_grid(self, sys, grid): def test_root_locus_neg_false_gain_nonproper(self): """ Non proper TranferFunction with negative gain: Not implemented""" with pytest.raises(ValueError, match="with equal order"): - root_locus(TransferFunction([-1, 2], [1, 2])) + root_locus(TransferFunction([-1, 2], [1, 2]), plot=True) # TODO: cover and validate negative false_gain branch in _default_gains() @@ -93,7 +93,7 @@ def test_root_locus_zoom(self): """Check the zooming functionality of the Root locus plot""" system = TransferFunction([1000], [1, 25, 100, 0]) plt.figure() - root_locus(system) + root_locus(system, plot=True) fig = plt.gcf() ax_rlocus = fig.axes[0] @@ -135,7 +135,7 @@ def test_rlocus_default_wn(self): sys = ct.tf(*sp.signal.zpk2tf( [-1e-2, 1-1e7j, 1+1e7j], [0, -1e7j, 1e7j], 1)) - ct.root_locus(sys) + ct.root_locus(sys, plot=True) # TODO: add additional test cases From 08e55b133dbe9a15f23108c80caaa4a5a50a0932 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 27 Dec 2023 23:01:51 -0800 Subject: [PATCH 0407/1025] add backward compatibility for matlab.{rlocus,pzmap} + suppress warnings --- control/matlab/wrappers.py | 103 ++++++++++++++++++++++++++++++++++- control/rlocus.py | 4 +- control/tests/matlab_test.py | 3 +- control/tests/pzmap_test.py | 1 + control/tests/rlocus_test.py | 4 ++ 5 files changed, 110 insertions(+), 5 deletions(-) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index b63b19c7e..64743c953 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -12,14 +12,14 @@ from ..lti import LTI from ..exception import ControlArgument -__all__ = ['bode', 'nyquist', 'ngrid', 'dcgain', 'connect'] +__all__ = ['bode', 'nyquist', 'ngrid', 'rlocus', 'pzmap', 'dcgain', 'connect'] def bode(*args, **kwargs): """bode(syslist[, omega, dB, Hz, deg, ...]) Bode plot of the frequency response. - Plots a bode gain and phase diagram + Plots a bode gain and phase diagram. Parameters ---------- @@ -195,6 +195,104 @@ def _parse_freqplot_args(*args): return syslist, omega, plotstyle, other +def rlocus(*args, **kwargs): + """rlocus(sys[, klist, xlim, ylim, ...]) + + Root locus diagram. + + Calculate the root locus by finding the roots of 1 + k * G(s) where G + is a linear system with transfer function num(s)/den(s) and each k is + an element of kvect. + + Parameters + ---------- + sys : LTI object + Linear input/output systems (SISO only, for now). + kvect : array_like, optional + Gains to use in computing plot of closed-loop poles. + xlim : tuple or list, optional + Set limits of x axis, normally with tuple + (see :doc:`matplotlib:api/axes_api`). + ylim : tuple or list, optional + Set limits of y axis, normally with tuple + (see :doc:`matplotlib:api/axes_api`). + + Returns + ------- + roots : ndarray + Closed-loop root locations, arranged in which each row corresponds + to a gain in gains. + gains : ndarray + Gains used. Same as kvect keyword argument if provided. + + Notes + ----- + This function is a wrapper for :func:`~control.root_locus_plot`, + with legacy return arguments. + + """ + from ..rlocus import root_locus_plot + + # Use the plot keyword to get legacy behavior + kwargs = dict(kwargs) # make a copy since we modify this + if 'plot' not in kwargs: + kwargs['plot'] = True + + # Turn off deprecation warning + with warnings.catch_warnings(): + warnings.filterwarnings( + 'ignore', message='.* return values of .* is deprecated', + category=DeprecationWarning) + retval = root_locus_plot(*args, **kwargs) + + return retval + + +def pzmap(*args, **kwargs): + """pzmap(sys[, grid, plot]) + + Plot a pole/zero map for a linear system. + + Parameters + ---------- + sys: LTI (StateSpace or TransferFunction) + Linear system for which poles and zeros are computed. + plot: bool, optional + If ``True`` a graph is generated with Matplotlib, + otherwise the poles and zeros are only computed and returned. + grid: boolean (default = False) + If True plot omega-damping grid. + + Returns + ------- + poles: array + The system's poles. + zeros: array + The system's zeros. + + Notes + ----- + This function is a wrapper for :func:`~control.pole_zero_plot`, + with legacy return arguments. + + """ + from ..pzmap import pole_zero_plot + + # Use the plot keyword to get legacy behavior + kwargs = dict(kwargs) # make a copy since we modify this + if 'plot' not in kwargs: + kwargs['plot'] = True + + # Turn off deprecation warning + with warnings.catch_warnings(): + warnings.filterwarnings( + 'ignore', message='.* return values of .* is deprecated', + category=DeprecationWarning) + retval = pole_zero_plot(*args, **kwargs) + + return retval + + from ..nichols import nichols_grid def ngrid(): return nichols_grid() @@ -254,6 +352,7 @@ def dcgain(*args): from ..bdalg import connect as ct_connect def connect(*args): + """Index-based interconnection of an LTI system. The system `sys` is a system typically constructed with `append`, with diff --git a/control/rlocus.py b/control/rlocus.py index 970c7b98c..339225750 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -112,7 +112,7 @@ def root_locus_plot( ------- roots : ndarray Closed-loop root locations, arranged in which each row corresponds - to a gain in gains + to a gain in gains. gains : ndarray Gains used. Same as kvect keyword argument if provided. @@ -140,7 +140,7 @@ def root_locus_plot( # if plot is not None: warnings.warn( - "`root_locus` return values of loci, gains is deprecated; " + "`root_locus` return values of roots, gains is deprecated; " "use root_locus_map()", DeprecationWarning) if plot is False: diff --git a/control/tests/matlab_test.py b/control/tests/matlab_test.py index e01abcca1..2ba3d5df8 100644 --- a/control/tests/matlab_test.py +++ b/control/tests/matlab_test.py @@ -424,7 +424,8 @@ def testBode(self, siso, mplcleanup): @pytest.mark.parametrize("subsys", ["ss1", "tf1", "tf2"]) def testRlocus(self, siso, subsys, mplcleanup): """Call rlocus()""" - rlocus(getattr(siso, subsys)) + rlist, klist = rlocus(getattr(siso, subsys)) + np.testing.assert_equal(len(rlist), len(klist)) def testRlocus_list(self, siso, mplcleanup): """Test rlocus() with list""" diff --git a/control/tests/pzmap_test.py b/control/tests/pzmap_test.py index dc2ab5c27..ed021f05a 100644 --- a/control/tests/pzmap_test.py +++ b/control/tests/pzmap_test.py @@ -15,6 +15,7 @@ from control import TransferFunction, config, pzmap +@pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") @pytest.mark.parametrize("kwargs", [pytest.param(dict(), id="default"), pytest.param(dict(plot=False), id="plot=False"), diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index 7f36c035b..13d36c017 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -45,6 +45,7 @@ def check_cl_poles(self, sys, pole_list, k_list): poles = np.sort(poles) np.testing.assert_array_almost_equal(poles, poles_expected) + @pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") def testRootLocus(self, sys): """Basic root locus (no plot)""" klist = [-1, 0, 1] @@ -60,6 +61,7 @@ def testRootLocus(self, sys): np.testing.assert_allclose(klist, k_out) self.check_cl_poles(sys, roots, klist) + @pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") def test_without_gains(self, sys): roots, kvect = root_locus(sys, plot=False) self.check_cl_poles(sys, roots, kvect) @@ -79,6 +81,7 @@ def test_root_locus_plot_grid(self, sys, grid): assert n_gridlines > 2 # TODO check validity of grid + @pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") def test_root_locus_neg_false_gain_nonproper(self): """ Non proper TranferFunction with negative gain: Not implemented""" with pytest.raises(ValueError, match="with equal order"): @@ -116,6 +119,7 @@ def test_root_locus_zoom(self): assert_array_almost_equal(zoom_x, zoom_x_valid) assert_array_almost_equal(zoom_y, zoom_y_valid) + @pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") @pytest.mark.timeout(2) def test_rlocus_default_wn(self): """Check that default wn calculation works properly""" From 8776875cda88692746792abf87bcc247e3c2b8c4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 28 Dec 2023 12:42:52 -0800 Subject: [PATCH 0408/1025] updated grid handling (add 'empty') --- control/freqplot.py | 2 +- control/matlab/wrappers.py | 2 ++ control/pzmap.py | 23 ++++++++----- control/rlocus.py | 66 +++++++----------------------------- control/tests/rlocus_test.py | 42 ++++++++++++++++------- 5 files changed, 60 insertions(+), 75 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 533515415..57f24f8d2 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -162,7 +162,7 @@ def bode_plot( values with no plot. rcParams : dict Override the default parameters used for generating plots. - Default is set up config.default['freqplot.rcParams']. + Default is set by config.default['freqplot.rcParams']. 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 diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 64743c953..0384215a8 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -195,6 +195,7 @@ def _parse_freqplot_args(*args): return syslist, omega, plotstyle, other +# TODO: rewrite to call root_locus_map, without using legacy plot keyword def rlocus(*args, **kwargs): """rlocus(sys[, klist, xlim, ylim, ...]) @@ -248,6 +249,7 @@ def rlocus(*args, **kwargs): return retval +# TODO: rewrite to call pole_zero_map, without using legacy plot keyword def pzmap(*args, **kwargs): """pzmap(sys[, grid, plot]) diff --git a/control/pzmap.py b/control/pzmap.py index b4cc2fec8..f30cbbc76 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -125,13 +125,14 @@ def pole_zero_plot( Parameters ---------- sysdata : List of PoleZeroData objects or LTI systems - List of pole/zero response data objects generated by pzmap_response + List of pole/zero response data objects generated by pzmap_response() or rootlocus_response() that are to be plotted. If a list of systems is given, the poles and zeros of those systems will be plotted. - grid : boolean (default = None) - If True plot omega-damping grid, otherwise show imaginary axis for - continuous time systems, unit circle for discrete time systems. If - `False`, do not draw any additonal lines. + grid : bool or str, optional + If `True` plot omega-damping grid, if `False` show imaginary axis + 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['pzmap.grid'] or config.default['rlocus.grid']. plot : bool, optional (legacy) If ``True`` a graph is generated with Matplotlib, otherwise the poles and zeros are only computed and returned. @@ -188,7 +189,7 @@ def pole_zero_plot( """ # Get parameter values - grid = config._get_param('pzmap', 'grid', grid, None) + 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 @@ -246,7 +247,7 @@ def pole_zero_plot( fig, axs = plt.figure(), [] with plt.rc_context(freqplot_rcParams): - if grid: + if grid and grid != 'empty': plt.clf() if all([isctime(dt=response.dt) for response in data]): ax, fig = sgrid(scaling=scaling) @@ -256,16 +257,20 @@ def pole_zero_plot( ValueError( "incompatible time responses; don't know how to grid") elif len(axs) == 0: - if grid is False: + if grid == 'empty': # Leave off grid entirely ax = plt.axes() else: - # use first response timebase + # draw stability boundary; use first response timebase ax, fig = nogrid(data[0].dt, scaling=scaling) else: # Use the existing axes and any grid that is there ax = axs[0] + # Issue a warning if the user tried to set the grid type + if grid: + 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 color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] diff --git a/control/rlocus.py b/control/rlocus.py index 339225750..45dd9f2d2 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -24,7 +24,6 @@ from .iosys import isdtime from .xferfcn import _convert_to_transfer_function from .exception import ControlMIMONotImplemented -from .grid import sgrid, zgrid from . import config import warnings @@ -96,19 +95,25 @@ def root_locus_plot( (see :doc:`matplotlib:api/axes_api`). plotstr : :func:`matplotlib.pyplot.plot` format string, optional plotting style specification + TODO: check plot : boolean, optional If True (default), plot root locus diagram. + TODO: legacy print_gain : bool If True (default), report mouse clicks when close to the root locus branches, calculate gain, damping and print. - grid : bool - If True plot omega-damping grid. Default is False. + TODO: update + grid : bool or str, optional + If `True` plot omega-damping grid, if `False` show imaginary axis + 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 Specify the initial gain to use when marking current gain. [TODO: update] - Returns + Returns (TODO: update) ------- roots : ndarray Closed-loop root locations, arranged in which each row corresponds @@ -156,8 +161,7 @@ def root_locus_plot( return out -# TODO: get rid of zoom functionality? -def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): +def _default_gains(num, den, xlim, ylim): """Unsupervised gains calculation for root locus plot. References @@ -237,8 +241,7 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): tolerance = x_tolerance else: tolerance = np.min([x_tolerance, y_tolerance]) - indexes_too_far = _indexes_filt( - root_array, tolerance, zoom_xlim, zoom_ylim) + indexes_too_far = _indexes_filt(root_array, tolerance) # Add more points into the root locus for points that are too far apart while len(indexes_too_far) > 0 and kvect.size < 5000: @@ -250,8 +253,7 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): root_array = np.insert(root_array, index + 1, new_points, axis=0) root_array = _RLSortRoots(root_array) - indexes_too_far = _indexes_filt( - root_array, tolerance, zoom_xlim, zoom_ylim) + indexes_too_far = _indexes_filt(root_array, tolerance) new_gains = kvect[-1] * np.hstack((np.logspace(0, 3, 4))) new_points = _RLFindRoots(num, den, new_gains[1:4]) @@ -261,7 +263,7 @@ def _default_gains(num, den, xlim, ylim, zoom_xlim=None, zoom_ylim=None): return kvect, root_array, xlim, ylim -def _indexes_filt(root_array, tolerance, zoom_xlim=None, zoom_ylim=None): +def _indexes_filt(root_array, tolerance): """Calculate the distance between points and return the indices. Filter the indexes so only the resolution of points within the xlim and @@ -270,48 +272,6 @@ def _indexes_filt(root_array, tolerance, zoom_xlim=None, zoom_ylim=None): """ distance_points = np.abs(np.diff(root_array, axis=0)) indexes_too_far = list(np.unique(np.where(distance_points > tolerance)[0])) - - if zoom_xlim is not None and zoom_ylim is not None: - x_tolerance_zoom = 0.05 * (zoom_xlim[1] - zoom_xlim[0]) - y_tolerance_zoom = 0.05 * (zoom_ylim[1] - zoom_ylim[0]) - tolerance_zoom = np.min([x_tolerance_zoom, y_tolerance_zoom]) - indexes_too_far_zoom = list( - np.unique(np.where(distance_points > tolerance_zoom)[0])) - indexes_too_far_filtered = [] - - for index in indexes_too_far_zoom: - for point in root_array[index]: - if (zoom_xlim[0] <= point.real <= zoom_xlim[1]) and \ - (zoom_ylim[0] <= point.imag <= zoom_ylim[1]): - indexes_too_far_filtered.append(index) - break - - # Check if zoom box is not overshot & insert points where neccessary - if len(indexes_too_far_filtered) == 0 and len(root_array) < 500: - limits = [zoom_xlim[0], zoom_xlim[1], zoom_ylim[0], zoom_ylim[1]] - for index, limit in enumerate(limits): - if index <= 1: - asign = np.sign(real(root_array)-limit) - else: - asign = np.sign(imag(root_array) - limit) - signchange = ((np.roll(asign, 1, axis=0) - - asign) != 0).astype(int) - signchange[0] = np.zeros((len(root_array[0]))) - if len(np.where(signchange == 1)[0]) > 0: - indexes_too_far_filtered.append( - np.where(signchange == 1)[0][0]-1) - - if len(indexes_too_far_filtered) > 0: - if indexes_too_far_filtered[0] != 0: - indexes_too_far_filtered.insert( - 0, indexes_too_far_filtered[0]-1) - if not indexes_too_far_filtered[-1] + 1 >= len(root_array) - 2: - indexes_too_far_filtered.append( - indexes_too_far_filtered[-1] + 1) - - indexes_too_far.extend(indexes_too_far_filtered) - - indexes_too_far = list(np.unique(indexes_too_far)) indexes_too_far.sort() return indexes_too_far diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index 13d36c017..c88be7b3a 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -66,20 +66,38 @@ def test_without_gains(self, sys): roots, kvect = root_locus(sys, plot=False) self.check_cl_poles(sys, roots, kvect) - @pytest.mark.skip("TODO: update test for rlocus gridlines") - @pytest.mark.slow - @pytest.mark.parametrize('grid', [None, True, False]) + @pytest.mark.parametrize("grid", [None, True, False, 'empty']) def test_root_locus_plot_grid(self, sys, grid): - rlist, klist = root_locus(sys, plot=True, grid=grid) + import mpl_toolkits.axisartist as AA + + # Generate the root locus plot + plt.clf() + ct.root_locus_plot(sys, grid=grid) + + # Count the number of dotted/dashed lines in the plot ax = plt.gca() - n_gridlines = sum([int(line.get_linestyle() in [':', 'dotted', - '--', 'dashed']) - for line in ax.lines]) - if grid is False: - assert n_gridlines == 2 - else: + n_gridlines = sum([int( + line.get_linestyle() in [':', 'dotted', '--', 'dashed'] or + line.get_linewidth() < 1 + ) for line in ax.lines]) + + # Make sure they line up with what we expect + if grid == 'empty': + assert n_gridlines == 0 + assert not isinstance(ax, AA.Axes) + elif grid is False: + assert n_gridlines == 2 if sys.isctime() else 3 + assert not isinstance(ax, AA.Axes) + elif sys.isdtime(strict=True): assert n_gridlines > 2 - # TODO check validity of grid + assert not isinstance(ax, AA.Axes) + else: + # Continuous time, with grid => check that AxisArtist was used + assert isinstance(ax, AA.Axes) + for spine in ['wnxneg', 'wnxpos', 'wnyneg', 'wnypos']: + assert spine in ax.axis + + # TODO: check validity of grid @pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") def test_root_locus_neg_false_gain_nonproper(self): @@ -89,7 +107,7 @@ def test_root_locus_neg_false_gain_nonproper(self): # TODO: cover and validate negative false_gain branch in _default_gains() - @pytest.mark.skip("TODO: update test to check click dispatcher") + @pytest.mark.skip("Zooming functionality no longer implemented") @pytest.mark.skipif(plt.get_current_fig_manager().toolbar is None, reason="Requires the zoom toolbar") def test_root_locus_zoom(self): From 416dff8b4a46fb3e595c9a92590b068d6d4f9825 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 28 Dec 2023 21:58:24 -0800 Subject: [PATCH 0409/1025] updated rlocus/pzmap docs, docstrings, tests --- control/pzmap.py | 114 ++++++++++++++++++++++------ control/rlocus.py | 83 +++++++++++++------- control/tests/kwargs_test.py | 13 +++- control/tests/rlocus_test.py | 40 +++++++++- doc/Makefile | 5 +- doc/plotting.rst | 71 +++++++++++++++-- doc/pzmap-siso_ctime-default.png | Bin 0 -> 15186 bytes doc/rlocus-siso_ctime-clicked.png | Bin 0 -> 86287 bytes doc/rlocus-siso_ctime-default.png | Bin 0 -> 81401 bytes doc/rlocus-siso_dtime-default.png | Bin 0 -> 90229 bytes doc/rlocus-siso_multiple-nogrid.png | Bin 0 -> 24271 bytes 11 files changed, 264 insertions(+), 62 deletions(-) create mode 100644 doc/pzmap-siso_ctime-default.png create mode 100644 doc/rlocus-siso_ctime-clicked.png create mode 100644 doc/rlocus-siso_ctime-default.png create mode 100644 doc/rlocus-siso_dtime-default.png create mode 100644 doc/rlocus-siso_multiple-nogrid.png diff --git a/control/pzmap.py b/control/pzmap.py index f30cbbc76..6b9013508 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -8,16 +8,6 @@ # storing and plotting pole/zero and root locus diagrams. (The actual # computation of root locus diagrams is in rlocus.py.) # -# TODO (Sep 2023): -# * Test out ability to set line styles -# - Make compatible with other plotting (and refactor?) -# - Allow line fmt to be overwritten (including color=CN for different -# colors for each segment?) -# * Add ability to set style of root locus click point -# - Sort out where default parameter values should live (pzmap vs rlocus) -# * Decide whether click functionality should be in rlocus.py -# * Add back print_gain option to sisotool (and any other options) -# import numpy as np from numpy import real, imag, linspace, exp, cos, sin, sqrt @@ -34,7 +24,7 @@ from .freqplot import _freqplot_defaults, _get_line_labels from . import config -__all__ = ['pole_zero_map', 'pole_zero_plot', 'pzmap'] +__all__ = ['pole_zero_map', 'pole_zero_plot', 'pzmap', 'PoleZeroData'] # Define default parameter values for this module @@ -50,7 +40,7 @@ # Classes for keeping track of pzmap plots # # The PoleZeroData class keeps track of the information that is on a -# pole-zero plot. +# pole/zero plot. # # In addition to the locations of poles and zeros, you can also save a set # of gains and loci for use in generating a root locus plot. The gain @@ -58,14 +48,55 @@ # loci variable is a 2D array indexed by [gain_idx, root_idx] that can be # plotted using the `pole_zero_plot` function. # -# The PoleZeroList class is used to return a list of pole-zero plots. It +# The PoleZeroList class is used to return a list of pole/zero plots. It # is a lightweight wrapper on the built-in list class that includes a # `plot` method, allowing plotting a set of root locus diagrams. # class PoleZeroData: + """Pole/zero data object. + + This class is used as the return type for computing pole/zero responses + and root locus diagrams. It contains information on the location of + system poles and zeros, as well as the gains and loci for root locus + diagrams. + + Attributes + ---------- + poles : ndarray + 1D array of system poles. + zeros : ndarray + 1D array of system zeros. + gains : ndarray, optional + 1D array of gains for root locus plots. + loci : ndarray, optiona + 2D array of poles, with each row corresponding to a gain. + sysname : str, optional + System name. + sys : StateSpace or TransferFunction + System corresponding to the data. + + """ def __init__( self, poles, zeros, gains=None, loci=None, dt=None, sysname=None, sys=None): + """Create a pole/zero map object. + + Parameters + ---------- + poles : ndarray + 1D array of system poles. + zeros : ndarray + 1D array of system zeros. + gains : ndarray, optional + 1D array of gains for root locus plots. + loci : ndarray, optiona + 2D array of poles, with each row corresponding to a gain. + sysname : str, optional + System name. + sys : StateSpace or TransferFunction + System corresponding to the data. + + """ self.poles = poles self.zeros = zeros self.gains = gains @@ -79,17 +110,51 @@ def __iter__(self): return iter((self.poles, self.zeros)) def plot(self, *args, **kwargs): + """Plot the pole/zero data. + + See :func:`~control.pole_zero_plot` for description of arguments + 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) class PoleZeroList(list): + """List of PoleZeroData objects.""" def plot(self, *args, **kwargs): + """Plot pole/zero data. + + See :func:`~control.pole_zero_plot` for description of arguments + and keywords. + + """ return pole_zero_plot(self, *args, **kwargs) # Pole/zero map def pole_zero_map(sysdata): - # TODO: add docstring (from old pzmap?) + """Compute the pole/zero map for an LTI system. + + Parameters + ---------- + sys : LTI system (StateSpace or TransferFunction) + Linear system for which poles and zeros are computed. + + Returns + ------- + pzmap_data : PoleZeroMap + Pole/zero map containing the poles and zeros of the system. Use + `pzmap_data.plot()` or `pole_zero_plot(pzmap_data)` to plot the + pole/zero map. + + """ # Convert the first argument to a list syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] @@ -113,7 +178,6 @@ def pole_zero_plot( marker_size=None, marker_width=None, legend_loc='upper right', xlim=None, ylim=None, interactive=None, ax=None, scaling=None, initial_gain=None, **kwargs): - # TODO: update docstring (see other response/plot functions for style) """Plot a pole/zero map for a linear system. If the system data include root loci, a root locus diagram for the @@ -137,7 +201,7 @@ def pole_zero_plot( (legacy) If ``True`` a graph is generated with Matplotlib, otherwise the poles and zeros are only computed and returned. If this argument is present, the legacy value of poles and - zero is returned. + zeros is returned. Returns ------- @@ -287,6 +351,7 @@ def pole_zero_plot( # Plot the responses (and keep track of axes limits) xlim, ylim = ax.get_xlim(), ax.get_ylim() + loci_count = 0 for idx, response in enumerate(pzmap_responses): poles = response.poles zeros = response.zeros @@ -331,9 +396,17 @@ def pole_zero_plot( # TODO: add arrows to root loci (reuse Nyquist arrow code?) - # Set up the limits for the plot - ax.set_xlim(xlim if xlim_user is None else xlim_user) - ax.set_ylim(ylim if ylim_user is None else ylim_user) + # Set the axis limits to something reasonable + if any([response.loci is not None for response in pzmap_responses]): + # Set up the limits for the plot using information from loci + ax.set_xlim(xlim if xlim_user is None else xlim_user) + ax.set_ylim(ylim if ylim_user is None else ylim_user) + else: + # No root loci => only set axis limits if users specified them + if xlim_user is not None: + ax.set_xlim(xlim_user) + if ylim_user is not None: + ax.set_ylim(ylim_user) # List of systems that are included in this plot lines, labels = _get_line_labels(ax) @@ -409,7 +482,6 @@ def _click_dispatcher(event): # Utility function to find gain corresponding to a click event -# TODO: project onto the root locus plot (here or above?) def _find_root_locus_gain(event, sys, ax): # Get the current axis limits to set various thresholds xlim, ylim = ax.get_xlim(), ax.get_ylim() @@ -469,7 +541,6 @@ def _mark_root_locus_gain(ax, sys, K): # Return a string identifying a clicked point -# TODO: project onto the root locus plot (here or above?) def _create_root_locus_label(sys, K, s): # Figure out the damping ratio if isdtime(sys, strict=True): @@ -482,7 +553,6 @@ def _create_root_locus_label(sys, K, s): # Utility function to compute limits for root loci -# TODO: (note that sys is now available => code here may not be needed) def _compute_root_locus_limits(response): loci = response.loci diff --git a/control/rlocus.py b/control/rlocus.py index 45dd9f2d2..eac21f1e0 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -25,23 +25,46 @@ from .xferfcn import _convert_to_transfer_function from .exception import ControlMIMONotImplemented from . import config +from .lti import LTI import warnings __all__ = ['root_locus_map', 'root_locus_plot', 'root_locus', 'rlocus'] # Default values for module parameters -# TODO: merge these with pzmap parameters (?) _rlocus_defaults = { 'rlocus.grid': True, - 'rlocus.plotstr': 'C0', # default color cycle [TODO: not used?] - 'rlocus.print_gain': True, - 'rlocus.plot': True } # Root locus map -# TODO: add docstring def root_locus_map(sysdata, gains=None): + """Compute the root locus map for an LTI system. + + Calculate the root locus by finding the roots of 1 + k * G(s) where G + is a linear system with transfer function num(s)/den(s) and each k is + an element of kvect. + + Parameters + ---------- + sys : LTI system or list of LTI systems + Linear input/output systems (SISO only, for now). + kvect : array_like, optional + Gains to use in computing plot of closed-loop poles. + + Returns + ------- + rldata : PoleZeroData or list of PoleZeroData + Root locus data object(s) corresponding to the . The loci of + the root locus diagram are available in the array + `rldata.loci`, indexed by the gain index and the locus index, + and the gains are in the array `rldata.gains`. + + Notes + ----- + For backward compatibility, the `rldata` return object can be + assigned to the tuple `roots, gains`. + + """ from .pzmap import PoleZeroData, PoleZeroList # Convert the first argument to a list @@ -75,6 +98,7 @@ def root_locus_map(sysdata, gains=None): def root_locus_plot( sysdata, kvect=None, grid=None, plot=None, **kwargs): + """Root locus plot. Calculate the root locus by finding the roots of 1 + k * G(s) where G @@ -83,7 +107,7 @@ def root_locus_plot( Parameters ---------- - sys : LTI object + sysdata : PoleZeroMap or LTI object or list Linear input/output systems (SISO only, for now). kvect : array_like, optional Gains to use in computing plot of closed-loop poles. @@ -93,16 +117,9 @@ def root_locus_plot( ylim : tuple or list, optional Set limits of y axis, normally with tuple (see :doc:`matplotlib:api/axes_api`). - plotstr : :func:`matplotlib.pyplot.plot` format string, optional - plotting style specification - TODO: check - plot : boolean, optional - If True (default), plot root locus diagram. - TODO: legacy - print_gain : bool - If True (default), report mouse clicks when close to the root locus - branches, calculate gain, damping and print. - TODO: update + plot : bool, optional + (legacy) If given, `root_locus_plot` returns the legacy return values + of roots and gains. If False, just return the values with no plot. grid : bool or str, optional If `True` plot omega-damping grid, if `False` show imaginary axis for continuous time systems, unit circle for discrete time systems. @@ -111,19 +128,29 @@ def root_locus_plot( ax : :class:`matplotlib.axes.Axes` Axes on which to create root locus plot initial_gain : float, optional - Specify the initial gain to use when marking current gain. [TODO: update] + Mark the point on the root locus diagram corresponding to the + given gain. - Returns (TODO: update) + Returns ------- - roots : ndarray - Closed-loop root locations, arranged in which each row corresponds - to a gain in gains. - gains : ndarray - Gains used. Same as kvect keyword argument if provided. + lines : 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 Nyquist responses passed to the function. The second + index specifies the pzmap object type: + + * lines[idx, 0]: poles + * lines[idx, 1]: zeros + + roots, gains : ndarray + (legacy) If the `plot` keyword is given, returns the + closed-loop root locations, arranged such that each row + corresponds to a gain in gains, and the array of gains (ame as + kvect keyword argument if provided). Notes ----- - The root_locus function calls matplotlib.pyplot.axis('equal'), which + The root_locus_plot function calls matplotlib.pyplot.axis('equal'), which means that trying to reset the axis limits may not behave as expected. To change the axis limits, use matplotlib.pyplot.gca().axis('auto') and then set the axis limits to the desired values. @@ -132,10 +159,14 @@ def root_locus_plot( from .pzmap import pole_zero_plot # Set default parameters - # TODO: move this to pole_zero_plot() grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) - responses = root_locus_map(sysdata, gains=kvect) + if isinstance(sysdata, list) and all( + [isinstance(sys, LTI) for sys in sysdata]) or \ + isinstance(sysdata, LTI): + responses = root_locus_map(sysdata, gains=kvect) + else: + responses = sysdata # # Process `plot` keyword diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index bdcae1885..53cc0076b 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -176,6 +176,8 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): (control.frequency_response, control.bode, True), (control.frequency_response, control.bode_plot, True), (control.nyquist_response, control.nyquist_plot, False), + (control.pole_zero_map, control.pole_zero_plot, False), + (control.root_locus_map, control.root_locus_plot, False), ]) def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): # Create a system for testing @@ -194,16 +196,18 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): plot_fcn(response) # Now add an unrecognized keyword and make sure there is an error - with pytest.raises(AttributeError, - match="(has no property|unexpected keyword)"): + with pytest.raises( + (AttributeError, TypeError), + match="(has no property|unexpected keyword|unrecognized keyword)"): plot_fcn(response, unknown=None) # Call the plotting function via the response and make sure it works response.plot() # Now add an unrecognized keyword and make sure there is an error - with pytest.raises(AttributeError, - match="(has no property|unexpected keyword)"): + with pytest.raises( + (AttributeError, TypeError), + match="(has no property|unexpected keyword|unrecognized keyword)"): response.plot(unknown=None) # @@ -277,6 +281,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'flatsys.LinearFlatSystem.__init__': test_unrecognized_kwargs, 'NonlinearIOSystem.linearize': test_unrecognized_kwargs, 'NyquistResponseData.plot': test_response_plot_kwargs, + 'PoleZeroData.plot': test_response_plot_kwargs, 'InterconnectedSystem.__init__': interconnect_test.test_interconnect_exceptions, 'StateSpace.__init__': diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index c88be7b3a..198515fed 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -160,7 +160,6 @@ def test_rlocus_default_wn(self): ct.root_locus(sys, plot=True) -# TODO: add additional test cases @pytest.mark.parametrize( "sys, grid, xlim, ylim, interactive", [ (ct.tf([1], [1, 2, 1]), None, None, None, False), @@ -171,6 +170,40 @@ def test_root_locus_plots(sys, grid, xlim, ylim, interactive): # TODO: add tests to make sure everything "looks" OK +# Generate plots used in documentation +def test_root_locus_documentation(savefigs=False): + plt.figure() + sys = ct.tf([1, 2], [1, 2, 3], name='SISO transfer function') + response = ct.pole_zero_map(sys) + ct.pole_zero_plot(response) + plt.savefig('pzmap-siso_ctime-default.png') + + plt.figure() + ct.root_locus_map(sys).plot() + plt.savefig('rlocus-siso_ctime-default.png') + + # TODO: generate event in order to generate real title + plt.figure() + out = ct.root_locus_map(sys).plot(initial_gain=2) + ax = ct.get_plot_axes(out)[0, 0] + freqplot_rcParams = ct.config._get_param('freqplot', 'rcParams') + with plt.rc_context(freqplot_rcParams): + ax.set_title( + "Clicked at: -2.729+1.511j gain = 3.506 damping = 0.8748") + plt.savefig('rlocus-siso_ctime-clicked.png') + + plt.figure() + sysd = sys.sample(0.1) + ct.root_locus_plot(sysd) + plt.savefig('rlocus-siso_dtime-default.png') + + plt.figure() + 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=False) + plt.savefig('rlocus-siso_multiple-nogrid.png') + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -204,7 +237,7 @@ def test_root_locus_plots(sys, grid, xlim, ylim, interactive): (sys_secord, None, None, None, None), (sys_seczero, None, None, None, None), (sys_fbs_a, None, None, None, None), - (sys_fbs_b, None, None, None, None), + (sys_fbs_b, None, None, None, False), (sys_fbs_c, None, None, None, None), (sys_fbs_c, None, None, [-2, 2], None), (sys_fbs_c, True, [-3, 3], None, None), @@ -222,3 +255,6 @@ def test_root_locus_plots(sys, grid, xlim, ylim, interactive): plt.figure() test_root_locus_plots( sys, grid=grid, xlim=xlim, ylim=ylim, interactive=interactive) + + # Run tests that generate plots for the documentation + test_root_locus_documentation(savefigs=True) diff --git a/doc/Makefile b/doc/Makefile index a5f7ec5aa..71e493f23 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -16,7 +16,7 @@ help: # Rules to create figures FIGS = classes.pdf timeplot-mimo_step-default.png \ - freqplot-siso_bode-default.png + freqplot-siso_bode-default.png rlocus-siso_ctime-default.png classes.pdf: classes.fig fig2dev -Lpdf $< $@ @@ -26,6 +26,9 @@ timeplot-mimo_step-default.png: ../control/tests/timeplot_test.py freqplot-siso_bode-default.png: ../control/tests/freqplot_test.py PYTHONPATH=.. python $< +rlocus-siso_ctime-default.png: ../control/tests/rlocus_test.py + PYTHONPATH=.. python $< + # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). html pdf clean doctest: Makefile $(FIGS) diff --git a/doc/plotting.rst b/doc/plotting.rst index be7ae7a55..2f6857c35 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -4,15 +4,15 @@ Plotting data ************* -The Python Control Toolbox contains a number of functions for plotting -input/output responses in the time and frequency domain, root locus -diagrams, and other standard charts used in control system analysis, for -example:: +The Python Control Systems Toolbox contains a number of functions for +plotting input/output responses in the time and frequency domain, root +locus diagrams, and other standard charts used in control system analysis, +for example:: bode_plot(sys) nyquist_plot([sys1, sys2]) - -.. root_locus_plot(sys) # not yet implemented + pole_zero_plot(sys) + root_locus_plot(sys) While plotting functions can be called directly, the standard pattern used in the toolbox is to provide a function that performs the basic computation @@ -35,7 +35,7 @@ analysis object, allowing the following type of calls:: step_response(sys).plot() frequency_response(sys).plot() nyquist_response(sys).plot() - rootlocus_response(sys).plot() # implementation pending + root_locus_map(sys).plot() The remainder of this chapter provides additional documentation on how these response and plotting functions can be customized. @@ -222,6 +222,58 @@ sensitivity functions for a feedback control system in standard form:: .. image:: freqplot-gangof4.png +Pole/zero data +============== + +Pole/zero maps and root locus diagrams provide insights into system +response based on the locations of system poles and zeros in the complex +plane. The :func:`~control.pole_zero_map` function returns the poles and +zeros and can be used to generate a pole/zero plot:: + + sys = ct.tf([1, 2], [1, 2, 3], name='SISO transfer function') + response = ct.pole_zero_map(sys) + ct.pole_zero_plot(response) + +.. image:: pzmap-siso_ctime-default.png + +A root locus plot shows the location of the closed loop poles of a system +as a function of the loop gain:: + + ct.root_locus_map(sys).plot() + +.. image:: rlocus-siso_ctime-default.png + +The grid in the left hand plane shows lines of constant damping ratio as +well as arcs corresponding to the frequency of the complex pole. The grid +can be turned off using the `grid` keyword. Setting `grid` to `False` will +turn off the grid but show the real and imaginary axis. To completely +remove all lines except the root loci, use `grid='empty'`. + +On systems that support interactive plots, clicking on a location on the +root locus diagram will mark the pole locations on all branches of the +diagram and display the gain and damping ratio for the clicked point below +the plot title: + +.. image:: rlocus-siso_ctime-clicked.png + +Root locus diagrams are also supported for discrete time systems, in which +case the grid is show inside the unit circle:: + + sysd = sys.sample(0.1) + ct.root_locus_plot(sysd) + +.. image:: rlocus-siso_dtime-default.png + +Lists of systems can also be given, in which case the root locus diagram +for each system is plotted in different colors:: + + sys1 = ct.tf([1], [1, 2, 1], name='sys1') + sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') + ct.root_locus_plot([sys1, sys2], grid=False) + +.. image:: rlocus-siso_multiple-nogrid.png + + Response and plotting functions =============================== @@ -244,6 +296,8 @@ number of encirclements for a Nyquist plot) as well as plotting (via the ~control.initial_response ~control.input_output_response ~control.nyquist_response + ~control.pole_zero_map + ~control.root_locus_map ~control.singular_values_response ~control.step_response @@ -256,6 +310,8 @@ Plotting functions ~control.bode_plot ~control.describing_function_plot ~control.nichols_plot + ~control.pole_zero_plot + ~control.root_locus_plot ~control.singular_values_plot ~control.time_response_plot @@ -284,4 +340,5 @@ The following classes are used in generating response data. ~control.DescribingFunctionResponse ~control.FrequencyResponseData ~control.NyquistResponseData + ~control.PoleZeroData ~control.TimeResponseData diff --git a/doc/pzmap-siso_ctime-default.png b/doc/pzmap-siso_ctime-default.png new file mode 100644 index 0000000000000000000000000000000000000000..1caa7cadfd014e8c075891676d42ed64aef0d98e GIT binary patch literal 15186 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